Retour en enfance avec Recalbox

Noël 1990, je n’ai pas encore 7 ans et je n’ai jamais cru au père noël. Cela ne m’empêchera pas de demander comme cadeau ma première console de jeu, une Master System II.

Master System II

Le gros point fort de cette console par rapport à sa concurrente, la NES de chez Nintendo : le bouton pause qui permet de laisser tourner une partie pour la reprendre le lendemain dès les devoirs finis.

Son gros point faible : le boutons du pousse gauche de la manette est super fragile. C’est pour cela que ma console est rangée depuis des années à la cave.

25 ans plus tard, j’ai envie de faire découvrir le plaisir des jeux 8-bit à mon ainé. C’est là que je découvre Recalbox.

Recalbox est un OS pour RaspberryPi qui contient tout une série d’émulateur de consoles rétro.

L’installation est simplissime : Il suffit de télécharger et de décompresser un fichier zip sur une carte microSD, puis de mettre la carte dans la RPi et de brancher. Automatiquement l’OS s’installe (je crois que c’est basé sur le NOOBS).

Un câble HDMI vers la télé, 1 dongle Wi-Fi sur un port USB, en 5 minutes je suis sur l’écran d’accueil.

Je dépoussière la manette de jeu -jusque là- inutile livrée avec la Freebox et c’est parti.

Et c’est là que je reprends mon age réel en me disant que c’est chiant de devoir aller chercher les roms (des jeux que je possède en cartouche bien entendu) sur le web pour les passer via le réseau dans les dossiers partagés de la recalbox. En plus la carte SD pourrait ne pas être assez grande pour héberger tout ce petit monde. Du coup un petit coup de geekage pour simplifier tout cela.

Sur le disque dur de la freebox j’ai crée un dossier ROM.

Ensuite je me connecte en SSH sur la recalbox (et j’en profite pour changer le mot de passe par défaut).

Je crée un dossier freebox dans /mnt :

mkdir /mnt/freebox

Puis je monte le disque réseau :

mount -t cifs //192.168.0.254/Disque\ dur/ROM /mnt/freebox -o user=freebox,password=password,uid=0,gid=0,rw

Je déplace le contenu du dossier de la RPI qui contient les ROM sur la freebox

mv /recalbox/share/roms/* /mnt/freebox/

Et j’attends le temps de la copie.

une fois terminé, j’éjecte la freebox

umount /mnt/freebox

J’édite le fichier qui lance le logiciel d’émulation au boot :

nano /etc/init.d/S31emulationstation

pour y ajouter la commande de montage du disque réseau :

if [ "$enabled" != "0" ];then
settings_lang="`$systemsetting -command load -key system.language`"
# mount freebox rom directory at startup
mount -t cifs //192.168.0.254/Disque\ dur/ROM /recalbox/share/roms/ -o user=freebox,password=password,uid=0,gid=0,rw >> $log 2>$1
echo "`logtime` : starting emulationstation with lang = $settings_lang" >> $log

Il faut ensuite renommer le script pour qu’il ne soit appelé qu’après que le réseau est démarré :

mv /etc/init.d/S31emulationstation /etc/init.d/S45emulationstation

un petit redémarrage est c’est fini !

Sender Policy Framework

Ou comment ne plus être vu comme un spammeur lorsqu’on auto-héberge ses mails.

Explication

SPF est un enregistrement de type TXT dans les entrées DNS d’un domaine qui indique les serveurs qui ont le droit d’envoyer des mails pour ce domaine.

Quand le serveur de votre destinataire reçoit un mail d’un domaine qu’il ne connait pas, il se montre -à juste titre- méfiant. Il va donc regarder dans le DNS du domaine de l’expéditeur s’il y a une entrée SPF.

  • S’il n’y en a pas il dit que c’est neutral : il n’utilisera pas ce critère pour juger si le mail est légitime.
  • S’il y en a une et qu’elle indique le serveur émetteur du mail il indique pass : le mail a de grandes chances d’être légitime.
  • S’il y en a une qui n’indique pas le serveur émetteur, bein ça dépend de ce qu’on a mis dans l’entrée ! C’est soit neutral soit fail.

Application

Il suffit d’ajouter l’entrée DNS suivante :

domaine.com    IN    TXT    "v=spf1 mx -all"

Ainsi tout les mails envoyés depuis nos serveurs de mail (MX) sont acceptés (pass) et tous ceux d’autres serveurs sont interdit (fail).

Une règle plus souple qui laisse les autres mail en neutral

domaine.com    IN    TXT    "v=spf1 mx ~all"

C’est simple et ça évite de passer en spam !

Un site sécurisé par SSL

Commençons simple

Lorsque l’on envoie des informations sur un site web, on met dans pleins de petites enveloppes les informations (payload) et on inscrits les informations d’adresses de l’expéditeur et du destinataire dessus (metadata).

Le problème c’est que ces enveloppes sont transparentes. Tous ceux qui voient passer l’enveloppe peuvent voir son contenu.

Du coup, c’est pas pratique pour réaliser des achats sur Internet, puisque n’importe qui pourrait lire notre numéro de carte bleu à travers l’enveloppe.

C’est là qu’intervient SSL.

Lorsque l’on se connecte au site en https, le serveur commence par distribuer des enveloppes opaques que lui seul peut ouvrir. C’est le chiffrement asymétrique qui garantit que personne ne peut ouvrir l’enveloppe.

En terme technique :

  • Le serveur distribue une clef publique, qui sert à chiffrer les messages qu’on lui envoie.
  • Il possède une clef privée qui est la seule à pouvoir déchiffrer les messages.
  • Il est a noter que plusieurs clef publiques peuvent être générée à partir de la clef privée, alors que celle-ci est unique.

Maintenant que seul le serveur peut voir les infos que nous lui envoyons, il faut être sur de pouvoir lui faire confiance. C’est là qu’intervient l’autorité de certification. C’est un organisme qui vérifie que les enveloppes opaques sont bien distribuée par le site web en qui on fait confiance. Il délivre alors un certificat au serveur pour le prouver.

Et c’est là que le chiffrement asymétrique est magique : l’opération de chiffrement est commutative. Derrière ce mot barbare, se cache tout simplement le principe qu’un message qui a été chiffré par la clef privée peut être déchiffré par la clef privée. Nous pouvons donc être sur que le certificat provient bien de l’autorité de certification.

Allons y

Côté serveur

Sur le serveur Linux, nous installons openssl :

#> apt-get install openssl

Ensuite on crée la clef privée pour notre serveur :

#> openssl genrsa -out /etc/ssl/private/sub.domaine.com.key 2048

Puis nous créons une demande de vérification (csr) pour l’autorité de certification :

#> openssl req -new -sha1 -key /etc/ssl/private/sub.domaine.com.key -out sub.domaine.com.csr

Il faut répondre aux questions :

  • Country Name (2 letter code) [AU]: FR
  • State or Province Name (full name) [Some-State]:France
  • Locality Name (eg, city) []:Paris
  • Organization Name (eg, company) [Internet Widgits Pty Ltd]:Domaine
  • Organizational Unit Name (eg, section) []:rien
  • Common Name (e.g. server FQDN or YOUR name) []:sub.domaine.com
  • Email Address []:hostmaster@domaine.com
  • A challenge password []:azerty1234
  • An optional company name []:domaine.com

Demande de certificat

J’utilise personnellement StartSSL. Ils fournissent gratuitement des certificats de class 1 (validation d’un sous domaine seulement) pour une durée de 1an. Cette autorité de certification est reconnue par les navigateurs Internet ce qui est rassurant pour les utilisateurs.

CAcert est également une bonne option, mais la dernière fois que je m’y suis penché certains navigateur ne le reconnaissaient pas.

Dans l’espace personnel StartSSL, cliquer sur Certificates Wizard.

Espace personelle StartSSL

Espace personelle StartSSL

Puis sélectionner Web Server SSL/TLS Certificate et appuyer sur continue

Assistant de certification

Assistant de certification

Comme nous avons déjà la clef privée, on peut directement passer l’étape en cliquant sur Skip

Génération de clef privée, à sauter

Génération de clef privée, à sauter

Il faut ensuite coller le contenu du fichier csr généré précédemment dans la boite puis clique sur continue.

Écran de saisie de la demande de certification

Écran de saisie de la demande de certification

Il faut ensuite choisir pour quel domaine on souhaite un certificat :

Choix du domaine

Choix du domaine

Un certificat de class 1 n’est valable que pour 1 sous domaine qu’il faut renseigner ensuite.

sous domaine

sous domaine

Un écran de confirmation rassemble les informations que nous venons de saisir (ici, j’ai réutilisé une image d’un autre certificat pour mon sous domaine git.)

Écran de résumé

Écran de résumé

Une fois envoyé, StartSSL nous informe qu’ils doivent vérifier les informations que nous avons soumises. Ils annoncent 3heures mais d’expérience un email arrive dans l’heure qui suit nous invitant à aller retirer le certificat.

Dans l’espace personnel, il faut aller dans l’onglet Tool Box puis cliquer sur « Retrieve Certificate« . Il faut choisir le certificat que l’on veut récupérer, ici : git.beudot07.net de class 1

Récupération du certificat

Récupération du certificat

Il faut alors copier tout le texte contenu dans la textbox au dessous de certificate.

Installation du certificat côté serveur

On ouvre un éditeur de texte pour écrire le certificat :

#> nano /etc/ssl/certs/sub.domaine.com.crt

Si le certificat est toujours dans le presse papier, un simple clique-droit permet de coller tout le texte dans l’éditeur.

Ctrl+O pour sauvegarder, Ctrl+X pour sortir

Mise à jour d’Apache

Editer le fichier virtualhost : /etc/apache2/sites-available/sub.domaine.com.conf

    serveradmin admin@domain.com 
    servername sub.domaine.com
    redirect / https://sub.domaine.com
 
 
 
    DocumentRoot /var/www/com.domain/sub/
    servername sub.domaine.com
    errorlog /var/log/apache2/domaine.com/sub-error.log.http 
    customlog /var/log/apache2/domaine.com/sub-access.log.http combined 
 
    SSLEngine on 
    SSLProtocol all -SSLv2 
    SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM 
    SSLCertificateFile /etc/ssl/certs/sub.domaine.com.crt 
    SSLCertificateKeyFile /etc/ssl/private/sub.domaine.com.key 
    SSLCertificateChainFile /etc/ssl/certs/sub.class1.server.ca.pem 
    SSLCACertificateFile /etc/ssl/certs/ca.pem

Activer le module SSL

#> a2enmod ssl

Redémarrer Apache :

#> service apache restart

Il peut arriver que la chaine de certification ne soit pas installée sur le serveur, dans ce cas là, on peut les récupérer à l’adresse suivante : http://www.startssl.com/certs/

Créer des images réduites rapidement

Aujourd’hui, j’avais besoin de créer des miniatures d’images. Mon dossier comportait une vingtaine d’images au format jpg issues de l’appareil photo de mon smartphone.

Reprendre à la main m’aurait pris une bonne heure, plus le temps de les monter sur le serveur, j’ai donc cherché un peu ce que linux peut faire pour moi.

Et encore une fois c’est simple, rapide et efficace, la solution s’appelle imagemagick.

Pour l’installer, rien de plus simple, on est sous linux :

#> apt-get install imagemagick

Ensuite la commande qui nous intéresse est l’option -resize :

$> convert -resize 20% fichier.jpg fichier_petit.jpg

Et on veut faire cette action sur l’ensemble des fichiers d’un dossier source pour avoir les miniature dans un dossier dest (existant ou à créer avant de tapper la commande) :

$> for file in source/*.jpg; do convert -resize 20% $file dest/'basename $file .jpg'_small.jpg; done

Je n’ai pas pris le temps de chercher les autres choses possibles avec imagemagick mais je sens que c’est puissant.

Protéger son serveur mail avec Fail2ban

Et c’est la suite des articles sur l’auto-hébergement !

Comme je le disant dans mon article sur l’auto-hébergement de mail, auto-héberger ses mails c’est prendre le risque d’être attaqué régulièrement par des utilisateurs malveillants.

Protégeons nous un peu.

Fail2ban

Fail2ban est un service qui surveille les tentatives de connexion échouées sur les différents logiciels du serveur. Ainsi après un certain nombre d’échec d’authentification, une IP est bannie et ne pourra plus voir le serveur.

Pour l’installer rien de plus simple :

$> apt-get install fail2ban

Il faut ensuite créer les règles de surveillance, pour cela on copie le fichier des règles par défaut dans un fichier jail.local qui ne sera pas modifié par les mise à jours :

$> cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

On édite ensuite ce fichier /etc/fail2ban/jail.local.
Bannir pour toujours :

bantime  = -1

Adresse mail de l’administrateur :

destemail = admin@domaine.com

Envoyer un mail à chaque ban (facultatif mais permet de se rendre compte du nombre d’attaque) :

action = %(action_mw)s

Pour les services [apache], [apache-multiport], [apache-noscript], [apache-overflows], [postfix], [sasl], [dovecot], passer le champs « enabled » à « true ». Exemple :

[apache]
 
enabled  = true
port     = http,https
filter   = apache-auth
logpath  = /var/log/apache*/*error.log

Puis redémarrer fail2ban

$> service fail2ban restart

Protéger RoundCube

Par défaut RoundCube ne garde pas de trace des connexions, un plugin a été développé pour générer un fichier contenant les tentative de connexion échouées. Il se trouve sur github, pour l’installer avec un nom compatible avec RoundCube et les bons droits pour être exécuté par Apache :

$> cd /var/www/com.domaine/mail/roundcube/plugin/
$> git clone https://github.com/mattrude/rc-plugin-fail2ban.git
$> mv rc-plugin-fail2ban fail2ban
$> chown -R www-data:www-data fail2ban

Il faut ensuite activer le plugin dans RoundCube en éditant le fichier /var/www/com.domaine/mail/roundcube/config/config.inc.php :

$config['plugins'] = array('fail2ban');

On va ensuite créer le filtre dans fail2ban.
Créer un fichier /etc/fail2ban/filter.d/roundcube.conf :

# Fail2Ban configuration file for roundcube
#
 
[INCLUDES]
before = common.conf
 
[Definition]
failregex = FAILED login for .*. from <HOST>
ignoreregex =

Editer le fichier /etc/fail2ban/jail.local en ajoutant à la fin l’activation du filtre :

[roundcube]
 
enabled  = true
port     = http,https
filter   = roundcube
logpath  = /var/www/com.domaine/mail/roundcube/logs/userlogins

Puis redémarrer fail2ban

$> service fail2ban restart

Postfixadmin

On va refaire la même démarche pour PostfixAdmin.
Créer le filtre dans /etc/fail2ban/filter.d/postfixadmin.conf

# Fail2Ban configuration file for postfixadmin
#
 
[INCLUDES]
before = common.conf
 
[Definition]
failregex = [[]client <HOST>[:]\d+[]] PostfixAdmin login failed
ignoreregex =

Editer le fichier /etc/fail2ban/jail.local en ajoutant à la fin l’activation du filtre :

[postfixadmin]
 
enabled  = true
port     = http,https
filter   = postfixadmin
logpath  = /var/log/apache2/error.log

Puis redémarrer fail2ban

$> service fail2ban restart

Débannir une IP

J’ai du faire pas mal d’essais pour mettre en place la regex pour postfixadmin (en m’aidant de regexpal) et puis ça a fini par marcher … et donc me bannir !
Voir la liste des IP bannies :

$> iptables -L

Cela sort une liste triée par catégorie, par exemple :

...
 
Chain fail2ban-postfix (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere
 
Chain fail2ban-postfixadmin (1 references)
target     prot opt source               destination
REJECT     all  --  6.233.66.123.rev.sfr.net  anywhere             reject-with icmp-port-unreachable
RETURN     all  --  anywhere             anywhere
 
Chain fail2ban-roundcube (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere
 
...

Le bannissement que je veux lever est le 1er enregistrement de la catégorie fail2ban-postfixadmin, je tape donc la commande :

$> iptables -D fail2ban-postfixadmin 1

Auto-héberger ses mail

Plusieurs mois après le cloud, je continue dans ma démarche d’auto-hébergement avec les mails.

Mon objectif est de sortir progressivement de l’Internet Google. Cela ne marchera qu’à moitié pour les mails puisqu’ils auront ceux de mes correspondants.

Mais avant de commencer, prennez conscience qu’auto-héberger ses mail est un GROS boulot. Cela s’adresse qu’à des utilisateurs avancés. Héberger ses mails c’est prendre le risque de louper des messages si le serveur tombe ou de servir de relais à des spammeurs si le serveur n’est pas assez sécurisé. Un ami (coucou PAC) a fait le choix de prendre un nom de domaine chez Gandi ce qui lui permet d’utiliser le webmail de l’hébergeur. Je ne doute pas que d’autres hébergeurs fournissent à peu de frais le même service. C’est la solution à privilégier si vous n’êtes pas sûr de vous.

Je me suis basé fortement sur ce tutoriel en anglais qui est très bien fait pour configurer mon serveur la première fois. Malheureusement, la licence CC-BY-ND m’interdit de reprendre cet article en traduisant et modifiant que les endroits qui m’intéressent.

Vocabulaire

Mail Transmit Agent (MTA) : c’est le service qui s’occupe de l’interface entre l’Internet et le serveur pour les mails. C’est lui qui filtre les courriers arrivant et qui envois les courriers sortants.

Mail Delivery Agent (MDA) : c’est le service qui gère la boite aux lettres : où et comment sont stockés les mails sur le serveur.

Mail User Agent (MUA) : c’est le service qui s’occupe de l’interface avec l’utilisateur une personne physique ou un webmail.

Webmail : c’est un site web classique qui permet à un utilisateur de consulter et d’envoyer des email.

Recevoir un email

Un ami m’envoie un email, voilà ce qu’il se passe :

  1. Son MTA recherche dans les enregistrements DNS quel est le serveur de mail pour mon domaine. Cet enregistrement est une entrée MX dans la table.
  2. Le mail est envoyé sur mon serveur, le MTA regarde s’il doit accepter un courrier pour le destinataire.
  3. Le MTA accepte le courrier et le donne au MDA pour le stocker.

Consulter mes mail

Je veux consulter mes mails :

  1. Je me connecte au MUA avec des identifiants.
  2. Le MUA demande au MDA les emails contenus dans la boite.
  3. Il me sert mes email.

Envoyer un email

J’envoie un email a un ami :

  1. Je me connecte au MTA.
  2. Il demande au MUA de vérifier mes identifiants.
  3. Il accepte le mail et l’envoie.

C’est parti !

Mettons un logiciel derrière chaque service.

MTA : PostFix. Rapide et sécurisé, il est probablement le MTA le plus utilisé.

MDA et MUA : Dovecot il fait les 2 vite et bien.

Stockage des utilisateurs et des adresses pour lesquelles dont on accepte de recevoir le courier : MariaDB. C’est un fork de MySQL depuis que Oracle gère le projet. Pour ne pas avoir à gérer les règles en SQL à la main et permettre aux utilisateurs de changer de mot de passe, j’utilise PostFixAdmin comme interface web.

Serveur Web : Apache. Plus besoin de le présenter.

Webmail : roundcube. Il est beau et intuitif, j’ai choisi en observant les screenshots et j’ai pu le mettre en place rapidement.

L’OS de mon serveur est une Ubuntu 14.04 LTS 64-bit.

Enregistrements DNS

Il faut identifier le serveur envoyant les mails pour domain.com . Pour l’exemple, je vais l’appeler mailserver, mais s’il ne fait pas que ça il est recommandé de lui donner un joli nom.Identifier un serveur dans un domaine en DNS ça se traduit par une entré A :

mailserver       IN A 123.456.789.159

Les courriers pour domain.com doivent être envoyés sur mailserver :

                 IN MX 10 mailserver.domain.com.

Il faut rediriger les différents services sur mailserver :

mail             IN CNAME mailserver.domain.com.
smtp             IN CNAME mail.domain.com.
pop              IN CNAME mail.domain.com.
imap             IN CNAME mail.domain.com.

Si votre serveur est chez un hébergeur, il faut renseigner le reverse DNS chez cet hébergeur, sans quoi les mails seront reconnu comme du SPAM. Je ne sais pas comment comment cela se configure en cas de serveur à la maison.

Configurer le serveur

Pour une raison que j’ignore, le serveur doit parfaitement connaitre comme on l’appelle sur le réseau, pour cela il faut éditer le fichier /etc/hosts/

127.0.0.1 localhost.domain.com localhost
123.456.789.159 mailserver.domain.com mailserver

Ensuite, il est possible de vérifier cela en entrant la commande :

$> hostname -f
mailserver.domain.com

MariaDB

Installer un logiciel sous linux, c’est simple, c’est toujours pareil :

$> apt-get install mariadb-server

Répondre oui et répondre à la questions de mot de passe (2 fois).

Pour les distributions n’ayant pas encore MariaDB dans leur dépôts, il est possible d’utiliser MySQL ou de suivre ce qui est indiqué sur le site du projet : https://downloads.mariadb.org/mariadb/repositories/

Se connecteur au serveur SQL:

$> mysql -uroot -p

Créer deux bases de données et deux utilisateurs avec les droits dessus.

CREATE DATABASE postfix;
CREATE DATABASE roundcube;
 
GRANT ALL PRIVILEGES ON postfix.* TO 'postfix'@'localhost' IDENTIFIED BY 'postfixpassword';
GRANT ALL PRIVILEGES ON roundcube.* TO 'roundcube'@'localhost' IDENTIFIED BY 'roundcubepassword';
FLUSH PRIVILEGES;
 
exit;

Apache et PHP

Installer Apache, PHP avec les modules nécessaires :

$> apt-get install apache2 php5 php5-mysql php5-imap php5-mcrypt php5-intl

Editer dans /etc/php5/apache2/php.ini

date.timezone = "Europe/Paris"

Postfix et Dovecot

$> apt-get install postfix dovecot dovecot-mysql postfix-mysql dovecot-imapd dovecot-pop3d dovecot-lmtpd

A l’écran de choix de configuration, sélectionner « Site Internet », ensuite modifier mailserver.domaine.com en domain.com. Il faut également créer un certificat auto-signé pour domain.com .

Après une mise en jambe tranquillou, on attaque le dur du sujet !

Configuration de Postfix

Editer le fichier /etc/postfix/main.cf

Remplacer les 5 lignes après #TLS parameters par

smtpd_tls_cert_file=/etc/ssl/certs/dovecot.pem
smtpd_tls_key_file=/etc/ssl/private/dovecot.pem
smtpd_use_tls=yes smtpd_tls_auth_only = yes
 
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
 
smtpd_recipient_restrictions = 
        permit_sasl_authenticated, 
        permit_mynetworks, 
        reject_unauth_destination

Le premier bloc active la connexion sécurisée par TLS. Le second l’authentification à travers dovecot et le troisième interdit aux utilisateurs extérieurs à la machine d’utiliser postfix s’ils ne se sont pas authentifiés.

Éditer la ligne mydestination :

mydestination = localhost

Rajouter la règle de communication avec Dovecot :

virtual_transport = lmtp:unix:private/dovecot-lmtp

Puis les règles pour filtrer les messages entrants:

virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf

Edition des règles des filtres de message entrants

Créer un fichier contenant les alias de compte : /etc/postfix/mysql-virtual-alias-maps.cf

user = postfix
password = postfixpassword
hosts = 127.0.0.1
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active=1

Créer un fichier contenant les domaines qui sont acceptés : /etc/postfix/mysql-virtual-mailbox-domains.cf

user = postfix
password = postfixpassword
hosts = 127.0.0.1
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s' AND backupmx=0 AND active=1

Créer un fichier contenant les boites acceptées : /etc/postfix/mysql-virtual-mailbox-maps.cf

user = postfix
password = postfixpassword
hosts = 127.0.0.1
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username='%s' AND active=1

Activer l’envoi par SMTP

Dans le fichier /etc/postfix/master.cf, dé-commenter les lignes :

submission inet n       -       -       -       -       smtpd
smtps     inet  n       -       -       -       -       smtpd

Configuration de Dovecot

Déplacer les certificats crées par dovecot dans les dossiers prévus pour :

$> cp /etc/dovecot/private/dovecot.pem /etc/ssl/private/
$> cp /etc/dovecot/dovecot.pem /etc/ssl/certs/

Editer /etc/dovecot/dovecot.conf :

Vérifier que la ligne suivante est décommentée :

!include conf.d/*.conf

Rajouter à la fin du fichier :

# Enable installed protocols
!include_try /usr/share/dovecot/protocols.d/*.protocol
protocols = imap pop3 lmtp

Editer le fichier /etc/dovecot/conf.d/10-mail.conf qui défini comment sont stockés les mails

mail_location = maildir:/var/mail/%d/%n

Décommenter la ligne et éditer :

mail_privileged_group = mail

Editer le fichier /etc/dovecot/conf.d/10-auth.conf qui définit l’authentification

Décommenter la ligne

disable_plaintext_auth = yes

Editer :

auth_mechanisms = plain login

Commenter :

#!include auth-system.conf.ext

Et décommenter

!include auth-sql.conf.ext

Cela décrit une authentification par id/mot de passe, en clair (mais on a déjà établi une connection sécurisée) avec vérification dans une base de données.

Editer le fichier /etc/dovecot/conf.d/auth-sql.conf.ext

passdb {
        driver = sql
        args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
        driver = static
        args = uid=vmail gid=vmail home=/var/mail/%d/%n
}

Ajouter à la fin du fichier /etc/dovecot/dovecot-sql.conf.ext les infos de connexion SQL :

driver = mysql
connect = host=127.0.0.1 dbname=postfix user=postfix password=postfixpassword
default_pass_scheme = SHA512
password_query = SELECT username, password FROM mailbox WHERE username='%u';

Editer le fichier /etc/dovecot/conf.d/10-master.conf pour configurer les sockets ouverts.

Interdire les authentifications non sécurisées par imap ou pop en mettant le port à 0

service imap-login {
    inet_listener imap {
      port = 0
    }
  ...
  }
 
  service pop3-login {
    inet_listener pop3 {
      port = 0
    }
  ...
  }

Ouvrir le port de communication pour postfix :

service lmtp {
   unix_listener /var/spool/postfix/private/dovecot-lmtp {
     mode = 0600
     user = postfix
     group = postfix
    }

Mettre à jour le service auth :

service auth {
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }
 
  unix_listener auth-userdb {
    mode = 0600
    user = vmail
  }
 
  user = dovecot
}

Et le service auth-worker en éditant

service auth-worker {
  user = vmail
}

Editer le fichier /etc/dovecot/conf.d/10-ssl.conf qui contient les paramètres SSL.

ssl_cert = /etc/ssl/certs/dovecot.pem
ssl_key = /etc/ssl/private/dovecot.pem

Décommenter la ligne :

ssl = required

Créer le dossier de stockage des emails :

$> mkdir /var/mail/exemple.com/

Créer un utilisateur ayant les droits sur le dossier de email :

$> groupadd vmail
$> useradd -g vmail vmail -d /var/mail/

Et lui donner les droits sur le dossier de stockage :

$> chown -R vmail:vmail /var/mail

Changer les droits de /etc/dovecot :

$> chown -R vmail:dovecot /etc/dovecot

Redémarrer les services

$> service dovecot restart
$> service postfix restart

Administration via Postfixadmin

A partir de là on a un serveur près à recevoir des mails mails ils seront tous rejeté faute d’enregistrement dans la base de donnée.

Récuperer la dernière version de postfixadmin, au moment où j’écrit, c’est la version 2.91

$> wget -O PostfixAdmin.tgz http://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-2.91/postfixadmin-2.91.tar.gz

Puis extraire

$> tar xzf PostfixAdmin.tgz

Créer un dossier pour Postfixadmin dans lequel on verse ce qui est décompressé :

$> mkdir -p /var/www/com.domain/mail/postfixadmin/
$> cp -R postfixadmin-2.91/* /var/www/com.domain/mail/postfixadmin/

Récuperer la dernière version de roundcube, au moment où j’écrit, c’est la version 1.0.3

$> wget -O RoundCube.tgz http://downloads.sourceforge.net/project/roundcubemail/roundcubemail/1.0.3/roundcubemail-1.0.3.tar.gz

Puis extraire

$> tar xzf RoundCube.tgz

Créer un dossier pour RoundCube dans lequel on verse ce qui est décompressé :

$> mkdir -p /var/www/com.domain/mail/roundcube/
$> cp -R roundcubemail-1.0.3/* /var/www/com.domain/mail/roundcube/

Donner les droits à Apache d’interpreter les fichiers web :

$> chown -R www-data:www-data /var/www/

Créer le virtualhost Apache qui appellera postfixadmin : /etc/apache2/site-available/mail.exemple.com.conf

<VirtualHost *:80>
    ServerName mail.exemple.com
 
    DocumentRoot /var/www/com.exemple/mail/roundcube
    Alias /admin /var/www/com.exemple/mail/postfixadmin/
    Alias /users /var/www/com.exemple/mail/postfixadmin/users/
 
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Activer le site web :

$> a2ensite mail.exemple.com
$> service apache2 reload

Editer la configuration de postfixadmin pour qu’elle corresponde à la configuration serveur /var/www/com.exemple/mail/postfixadmin/config.ing.php

$CONF['configured'] = true;
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'postfixpassword';
$CONF['database_name'] = 'postfix';
$CONF['admin_email'] = 'postmaster@domaine.com';
$CONF['encrypt'] = 'dovecot:SHA512';
$CONF['dovecotpw'] = "/usr/bin/doveadm pw";
 
$CONF['footer_text'] = 'Return to mail.domaine.com';
$CONF['footer_link'] = 'http://mail.domaine.com';
 
$CONF['welcome_text'] = &lt;&lt;

Avec un navigateur aller sur http://mail.exemple.com/admin/setup.php

Le script s’occupe de remplir la base de donnée de tables. Il demande de saisir un mot de passe pour en générer le Hash qu’il faut ensuite copier dans /var/www/com.exemple/mail/postfixadmin/config.inc.php sous cette forme :

// In order to setup Postfixadmin, you MUST specify a hashed password here.
// To create the hash, visit setup.php in a browser and type a password into the field,
// on submission it will be echoed out to you as a hashed value.
$CONF['setup_password'] = '89ec0bd...f66d';

Il faut ensuite paramétrer le webmail. En premier lieu, initialiser la base de données :

$> cd /vaw/www/com.domain/mail/roundcube/
$> mysql roundcube &lt; SQL/mysql.initial.sql -p

Copier la config par défaut puis l’éditer :

$> cp config/config.inc.php.sample config/config.inc.php
$config['db_dsnw'] = 'mysql://roundcube:roundcubepassword@localhost/roundcube';
 
$config['default_host'] = 'ssl://imap.domaine.com';
$config['default_port'] = 993;
 
$config['smtp_server'] = 'tls://smtp.domaine.com';
$config['smtp_port'] = 587;
 
$config['smtp_user'] = '%u';
$config['smtp_pass'] = '%p';
 
$config['default_folders'] = array('INBOX', 'Drafts', 'Sent', 'Spam', 'Trash');

Ajouter en fin de fichier

$config['enable_installer'] = true;

Visiter ensuite le site http://mail.domaine.com/installer/ pour tester la config.

Notez que l’étape 2 – Create config est sautée si on a bien renseigné le tout. Il est intéressant d’y revenir dessus pour paramétrer d’autres choses (comme par exemple personnaliser le titre de la page) ou si la configuration ne fonctionne pas.

Une fois la config terminées, il faut de nouveau éditer config/config.inc.php pour interdire à un utilisateur malintentionné de changer la config :

$config['enable_installer'] = false;

Enfin au bout

C’est terminé, vous pouvez vous connecter sur mail.domaine.com pour accéder à votre webmail. Le message de bienvenue doit s’y trouver.

C’est à la fois la fin et le début de pleins d’autres choses facultatives à faire :

Se faire rembourser son OS

Que penseriez-vous si vous ne pouviez faire le plein que chez Total (ou Elf ou Esso, je m’en fiche) parce que votre voiture n’est pas compatible avec les autres stations ? Si votre machine à laver refusait la marque d’adoucissant que vous avez choisie ? Si vos chaussettes vous empêchaient d’enfiler vos chaussures ?

Pourtant ces problèmes de compatibilité nous les acceptons souvent dès que le produit devient « technique » :

  • Machine à café Nespresso (r).
  • Téléphone bloqué chez un opérateur.
  • Téléphone bloqué avec un unique « appstore ».
  • Et le cas qui m’intéresse aujourd’hui le système d’exploitation d’un ordinateur.

Oui un système d’exploitation est nécessaire pour utiliser un ordinateur, mais comme quand je me fais couler un bon café, je veux pouvoir choisir ma drogue.

Et cela est théoriquement possible, tous les jugement récents vont dans le sens des demandeurs ; il est possible de demander le remboursement des logiciels que vous n’utilisez pas : http://non.aux.racketiciels.info/documentation/jurisprudence

J’ai donc voulu regarder l’information qui est donnée aux utilisateurs. Et la bonne surprise vient de la FNAC, dans la fiche de chaque produit on peut lire :

** Système d’exploitation soumis à l’acceptation d’une licence. Voir conditions ici : http://www.fnac.com/os

Je suis donc aller voir par marque.

Acer

Les 3 liens fournis ne fonctionnent pas.

ASUS

Il faut remplir un document par ordinateur alors que ce n’est pas un PDF éditable.

Le montant du remboursement est indiqué pour Win7 Home Premium alors que cet OS est dépassé.

Fujitsu Siemens

Pire qu’au dessus, là c’est pour le remboursement de Vista.

HP

Erreur 404 la page n’existe plus.

Lenovo

Pas de procédure pour ce fabriquant.

Packard Bell

Ils demandent le renvoi de l’ordinateur pour retirer les logiciels.

Samsung

Pas de lien, mais un numéro de service client.

Sony

Pas de procédure pour ce fabriquant.

Toshiba

Pas de lien, mais un numéro de service client.

Au final

Ce que je pensais aller dans le bon sens pour l’utilisateur s’avère inutilisable. Les procédures ne sont pas à jour et c’est bien dommage.

Les derniers arrêts jugent les montants proposés (entre 15 et 40€) dérisoires, j’estime pour ma part que c’est raisonnable puisque cela doit être le prix que les fabricants payent les licences à Microsoft.

Edit :

Même problème de page non à jour chez d’autres vendeurs d’informatique :

Boulanger : http://www.boulanger.fr/content/bfr/assistance/remboursement-windows.html

Darty : http://www.darty.com/webapp/wcs/stores/servlet/DartyPopupContenuView?storeId=10001&u=0&element_id=30060

 

Ces entreprises que je boycotte – FNAC

J’aimais bien la FNAC !

C’est d’ailleurs vers cette enseigne que je me suis spontanément tourné aujourd’hui quand j’ai eu besoin d’acheter un livre technique.

Cette commande sera vraisemblablement la dernière, vu le foutage de gueule qu’elle m’a proposé. Je m’en vais détailler ce qui ne me convient pas !

Probablement dans le but de contourner la loi absurde censée protéger les petit libraire en engraissant Auchan, la fnac propose un service nommé Express+ qui permet une livraison expresse et illimitée des commandes que l’on passe sur le site, moyennant une cotisation annuelle de 49€. Sur le principe, je trouve ça intéressant, même si je ne suis pas la cible, moi qui passe une commande tous les 2 ans.

Mais revenons à ma commande de ce matin. Une fois le livre trouvé, je l’ajoute à mon panier et au moment de valider ma commande, on me propose l’offre suivante :

Offre d'essai Express+

Offre d’essai Express+

Je me dis que si le bouquin arrive avant le WE c’est pas plus mal. Premier hic, voici ce qui s’affiche lorsqu’on clique sur « En savoir plus » :

Le sans engagement qui engage

Express+ : le sans engagement qui engage

La bonne blague. On essaie pendant 30 jours sans engagement mais en fait on est engagé pour 1an. Il faut aller résilier sur le site.

Bon, je ne me ferai pas avoir, j’irai résilier mon engagement sans engagement d’ici la date butoir, je continue ma commande. Comme d’habitude je décoche la case d’enregistrement automatique de mes coordonnées bancaires par ce que je me dis que si leur base de données est un jour piratée, c’est ma CB qui se retrouve à poil sur Internet.

Et je reçois mon mail de confirmation d’adhésion à Express+ :

Adhésion à Express plus

Adhésion à Express plus

Non non, vous ne rêvez pas, après le sans engagement qui engage, la FNAC invente … l’illimité limité à une seule fois par utilisateur.

Il ne m’en faut pas plus pour que j’aille résilier sur le champ, l’occasion d’avoir la cerise sur le gâteau, mes coordonnées bancaires ont été enregistrées !

La cerise sur le gâteau

La cerise sur le gâteau

Bravo la FNAC, vous aviez un client fidèle, puisque je boycotte Amazon, ce ne sera plus le cas.

Convertisseur PPM / TOR

Cet article inaugure la catégorie électronique. C’est une passion que j’ai depuis longtemps et que j’aime partager, seulement je ne suis pas très doué pour l’expliquer simplement !

Je m’attèle aujourd’hui à un montage complexe qu’idem a trouvé sur internet alors qu’il cherchait comment piloter des LED via sa télécommande d’aéromodélisme.

Préambule

Une télécommande d’aéromodélisme transmet à distance (c’est le but !) plusieurs informations de type analogique. Chaque information constitue une voie. En sortie de récepteur chaque voie est disponible  sur un connecteur 3-points. L’information analogique est codée sous la forme d’un signal PPM qu’il ne faut pas confondre avec un signal proche PWM.

PWM

Un signal PWM est un signal dont l’information analogique est contenue dans le rapport cyclique. Le rapport cycliques est le quotient du temps à l’état haut par la période.

//Insérer ici une image avec 2 signaux PWM

PPM

Un signal PPM est un signal dont l’information analogique est contenue dans le temps à l’état haut.

// Insérer ici une image avec 2 signaux PPM

C’est ce genre de signaux qui sont lus par les servomoteurs de modélisme. L’information analogique est codée de la façon suivante :

    • temps haut = 1 ms => 0%.
    • temps haut = 2ms => 100%.

actualisation de l’information environ 50 fois par seconde. La confusion PWM/PPM est courante car les montage PWM à base de NE555 ont souvent été utilisés en robotique pour commander des servomoteurs.

Porte logique de type NOR

Porte logique NOR

Porte logique NOR

La sortie vaut ‘1’ par défaut et passe à ‘0’ si au moins l’une une des entrées est à ‘1’.

Objectif

L’objectif du montage est de transférer une information tout ou rien dans un signal PPM. De nombreuse télécommande proposent des interrupteurs pour envoyer cette information. Dans ce cas, l’information en sortie de récepteur est :

  • Interrupteur ouvert : état OFF : temps haut environ 1ms.
  • Interrupteur fermé : état ON : temps haut environ 2ms.

Le montage doit donc regarder si le temps haut du signal est supérieur ou non à 1,5ms et ainsi déterminer l’état.

Le montage

PPM2TOR

Montage convertisseur PPM vers tout ou rien

 La nomenclature ne comprend que 7 composants :

  • CD4001 : quadruple porte logique NOR non trigée.
  • 3 résistances dont nous allons calculer les valeurs.
  • 2 condensateurs dont nous allons calculer les valeurs.
  • 1 transistor N-MOS à choisir en fonction de la charge à commander.

Explication

Comme souvent sur des montages mixant composants logiques et discrets, il est plus simple d’étudier le montage sous forme de boites.

NOR A1 + C1 + R1 : montage détecteur de front descendant

Lorsque l’on couple les 2 entrées d’une porte NOR (marche aussi avec NAND), on obtient en sortie l’inverse de l’entrée. D’où le nom de porte inverseuse. Le schéma redessiné devient donc :

falling_edge_detector

Détecteur de front descendant

Il devient donc intéressant de regarder ce qu’il se passe à l’entrée de la porte, entre la résistance et la capacité (point rouge de ce montage), appelons la tension à ce point U.

A t=0, l’entrée est à ‘1’ (Vcc) et U vaut Vcc, la sortie est donc à ‘0’.

Lorsque l’entrée passe à ‘0’, U suit subitement à 0V, puis le condensateur C1 se charge à travers la résistance R1. La sortie passe donc à ‘1’.

Je n’explique pas ici comment on obtient la tension aux bornes d’un condensateur (la tension U qui nous intéresse) qui se charge, c’est expliqué sur des dizaines de sites car au programme de terminale S.

Nous notons \tau = R_{1}C_{1}

U\left(t\right) = Vcc \left( 1 - e^{-\frac{t}{\tau}} \right)

Le condensateur se charge, donc la tension U augmente avec le temps. Lorsqu’elle vaut plus de VCC/2, U est vue par la porte inverseuse comme un niveau logique ‘1’, la sortie repasse à ‘0’. Attention : ce seuil n’est valable que par ce qu’on utilise une porte de technologie CMOS et non trigée.

Cherchons l’instant θ pour lequel il y a commutation :

U\left(\theta\right) = Vcc \left( 1 - e^{-\frac{\theta}{\tau}} \right) = \frac{Vcc}{2}

\left( 1 - e^{-\frac{\theta}{\tau}} \right) = \frac{1}{2}

e^{-\frac{\theta}{\tau}} = \frac{1}{2}

\frac{\theta}{\tau} = \ln\left(2\right)

\theta = R_{1}C_{1}\ln\left(2\right)

Nous voulons que cette commutation apparaisse après 1.5ms. Nous choisissons :

  • C1 = 100nF
  • R1 = 22kΩ

Pour une durée de commutation réelle de 1,54ms. Chronogramme :

chronogramme détecteur de front descendant

chronogramme détecteur de front descendant

A chaque fois qu’il va y avoir un front descendant sur l’entrée, on produira une « pulse » à ‘1’ pendant 1,54ms.

NOR A2

La seconde porte NOR réalise une opération MAX : sa sortie sera à ‘0’ pendant un temps égal au maximum entre le signal PPM en entrée du montage et le signal créé par le détecteur de front.

En faisant cette opération, on assure que le signal en entrée du montage détecteur de front ne remonte jamais à ‘1’ avant la fin de la « pulse » générée. En effet, cela aurait pour effet de raccourcir la pulse. Remettons à jour le chronogramme dans ce cas :

cas ON

Premier cas, le PPM dure plus de 1,54ms

cas OFF

Second cas, le PPM dure moins de 1,54ms

NOR A3 et A4 : bascule RS

Les NOR A3 et A4 sont couplées pour réaliser une bascule Reset / Set dont voici le fonctionnement :

  • Si R = ‘1’ et S = ‘0’, la sortie de la bascule Q = ‘0’.
  • Si R = ‘0’ et S = ‘1’, la sortie de la bascule Q = ‘1’.
  • Si les deux valent ‘0’, l’état reste inchangé.
  • Si les deux valent ‘1, la sortie est ‘0’.

Dans ce montage R vient du détecteur de front et S est le signal PPM. Nous avons donc le chronogramme suivant dans le cas d’un PPM de moins que θ :

RS OFF

S dure moins longtemps que R, la sortie est toujours à ‘0’

Nous avons donc le chronogramme suivant dans le cas d’un PPM de plus de θ :

RS ON

S dure plus longtemps que R, la sortie devient ‘1’ quand R « retombe »

T1 : commande de puissance

Le choix du transistor se détermine en fonction de la tension et du courant de la charge que l’on pilote.

Pour le cas qui nous intéresse, ce sont des bandeaux de LED alimentés en 12V. Chaque LED est traversée par un courant de 45mA (note pour moi-même, il faudra que j’explique qu’une LED fonctionne en courant et pas en tension). On compte commander simultanément 28 LED soit un courant total de 28*45mA = 1,3A. Il faut donc choisir un transistor N-MOS acceptant une tension Vds supérieure à 12V et acceptant un courant Id supérieur à 1,3A.

Pour des raison d’approvisionnement, nous avons choisi le BUZ90 qui est largement surdimensionné puisqu’il accepte 400V et 4A. Ce transistor va être utilisée en bloqué saturé, ce qui nous intéresse à  présent est donc comment il va chauffer lorsqu’il est passant et quelle est la tension Vgs_th de saturation.

rds_on = 1.6Ω. Vgs_th = 4V (On prend la valeur max de la datasheet pour tenir compte des dispersions qu’il y a à la fabrication).

En fonctionnement le transistor va être traversé par un courant de 1,3A, il va donc devoir dissiper une puissance Pt = rds_on * Id * Id = 1.6 * 1.3 * 1.3 = 2.7W. Il faudra ajouter un radiateur au MOS pour dissiper cette puissance.

R2, R3 et C2 : maintient d’état.

On a vu que le montage à bascule donne une sortie à ‘0’ pour l’état OFF. Pour l’état ON, la sortie vaut ‘0’ pendant 1,54ms et ‘1’ sur le reste de la période (environ 20ms).

Le but des résistance R2/R3 et du condensateur C2 est de maintenir le transistor MOS passant sur la durée de l’état ON.

La résolution des équations du circuit donne les équations suivantes.

Pour simplifier : \tau =\frac{R_{2}R_{3}}{R_{2}+R_{3}} C_{2} et K =\frac{R_{3}}{R_{2}+R_{3}}

Charge du condensateur : Vgs(t) = K Vcc \left( 1 - e^{-\frac{t}{\tau}}\right).

Décharge du condensateur : Vgs(t) = K Vcc e^{-\frac{t}{\tau}}.

On veux que la tension reste supérieure à Vgs_th même après une décharge de 1,54 ms.

Pour les montage à faible temps de réponse, j’ai pour l’habitude d’utiliser une paire de résistance R_{2} = 1k\Omega,R_{3} = 1k\Omega. Notons que 1K permet d’avoir un courant d’appel de Vcc/1K = 5mA, parfaitement compatible avec la sortance d’une porte logique CMOS.

On cherche la valeur du condensateur à utiliser A = 4/5 dans notre cas. :

K Vcc e^{-\frac{t}{\tau}} > A Vcc

Ce qui donne τ supérieur à 12ms donc une capacité de plus de 13μF. Je choisi C2 = 22μF électrolytique en 16V.

Bilan

Le montage ne demande pas beaucoup de composant. Il a un interet éducatif certain puisqu’il associe la logique booléenne, les bascules et des composants discrets.

Nomenclature finale :

  • R1 = 22kΩ
  • R2 = 1kΩ
  • R3 = 10kΩ
  • C1 = 100nF
  • C2 = 22μF
  • T1 = BUZ90
  • U1 = CD4001
  • Rajouter une paire de condensateur réservoir (1μF) + découplage (10nF) sur l’alimentation des portes logique.

Ces entreprises que je boycotte – Amazon

Logo Amazon

Logo de la société Amazon.

On m’a plusieurs fois demandé pourquoi je refuse d’acheter chez Amazon, voici un début de réponse.

Conditions de travail

Les rares témoignages que nous avons d’employé d’Amazon font états de flicage permanent et d’un très fort pression managériale. Morceaux choisis dans un article chez Rue89 :

Si le scanner est inactif pendant 20 secondes, un message s’affiche sur l’ordinateur des chefs.

Une bonne productivité, c’est 110 lots uniques emballés par heure, presque un toutes les 30 secondes en flux tendu.

Si les témoignages sont rares, c’est qu’il est interdit aux employés de parler de leurs conditions de travail. Cette atteinte à la liberté d’expression n’est malheureusement pas la seul atteinte au droit, puisque les accidents du travail ne sont pas déclarés :

Dans les derniers mois, un seul accident a été officiellement déclaré sur le site. En réalité, c’est au minimum un par semaine. Ils jouent beaucoup avec les “presqu’accidents” et stigmatisent les gens qui ont eu un accident au travail. Ils proposent aux blessés des postes aménagés en bureau plutôt que de se déclarer.

Le même article fait également apparaitre que les employés malades ne seraient pas indemnisés par la sécurité sociale puisqu’Amazon ne rempli pas le formulaire qu’ils doivent transmettre à la sécu.

Optimisation fiscale

Bien que les plateformes logistiques soient implantées en France et qu’il y ait un site Internet d’Amazon spécifique pour la France, lorsque l’on commande sur Amazon, c’est en fait au Luxembourg que l’on achète :
Extrait des Conditions Générales de Vente :

Les présentes conditions générales d’utilisation sont soumises au droit luxembourgeois, et l’application de la Convention de Vienne sur les contrats de vente internationale de marchandises est expressément exclue.

Amazon bénéficie donc d’un taux d’imposition sur les sociétés et de TVA réduits qui ne profitent pas à l’économie du pays.

Emplois sponsorisés

Alors que c’est présenté comme une victoire pour les politique (Montebourg en premier), c’est pour moi le plan le plus fourbe de cette société.

Pour qu’Amazon s’implante à Chalon sur Saône, le conseil général de Saône-et-Loire verse à la société une aide de 4500€ par employé, somme à laquelle s’ajoute la prime d’aménagement du territoire, estimée entre 1000 et 2000€. (source : www.tracesecritesnews.fr ).

Les emplois sont donc payés à 25% par l’état et les collectivités locales. L’argument pour cela est que la société crée de l’emploi, alors qu’il en est rien ! Amazon avait besoin de s’implanter en France, pour fournir un service rapide à ses clients. Si cela n’avait pas été à Chalon, cela aurait été à un autre endroit mais le nombre d’emploi créés aurait été le même.

Blocage technique

Ce point est plus anecdotique mais je tiens à le rappeler.

Lorsque l’on achète un livre numérique ou de la musique au format numérique chez Amazon, il y a systématiquement un DRM dedans.

Cela signifie que :

  • Je ne peux pas transférer le titre que j’ai acheté sur mon téléphone portable pour l’écouter dans le train.
  • Je ne peux pas prêter le livre que j’ai aimé à un amis.
  • Je ne peux pas revendre le bien que j’ai acheté.
  • Le jour où le serveur d’Amazon ne marche pas/plus j’ai perdu le bien que j’ai acheté.

Conclusions

Est-ce qu’il y a vraiment besoin d’une conclusion ?

Je ne pense pas que la loi « Anti Amazon » du 9 Février 2014 soit la bonne solution. Le progrès passe par le commerce en ligne et je pense qu’il faut laisser la libre concurrence si elle est loyale.

Aujourd’hui, cette concurrence est déloyale, elle se fait au détriment des employés et des consommateurs. Je vote avec mon portefeuille : j’achète chez les autres !