PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

RaspbianFrance : La Raspberry Pi 3, vive le Wi-Fi !

lundi 29 février 2016 à 12:40

Aujourd’hui la fondation Raspberry Pi fête les quatre ans de la carte mère. La Raspberry a bien changé depuis ses début, la première version, la Raspberry Pi Model B, ne possédait que 256Mo de RAM ainsi qu’un processeur de simple cœur cadencé à 700Mhz ! La fondation profite de cette journée pour annoncer le nombre d’exemplaires vendu depuis 2012, soit huit millions d’unités dont 3 millions de Raspberry Pi 2 !

Pour célébrer cette date importante, la fondation vient d’officialiser la Raspberry Pi 3 ! Une nouvelle carte mère vendu pour la maudite somme de 35€ (prix d’annonce).

Les caractéristiques de la Raspberry Pi 3

Qui dit nouvelle carte Raspberry, dit nouveautés, et cette carte est pleines de surprises.

Pour les plus pressés, voici une tableau comparatif de la nouvelle Raspberry 3 avec sa grande sœur la Raspberry Pi 2.

Raspberry Pi 2

35€
35€
  • Processeur : 32-bit quad-core ARM Cortex-A7
  • Cadance : 1000MHz
  • RAM : 1024Mo
  • Wi-Fi : Non
  • Bluetooth : Non
  • Alimentation : 5v 2A
  • Stockage : Carte MicroSD
  • Carte réseau : Carte réseau Ethernet
  • Ports USB : 4
  • USB 2.5A : Non

Raspberry Pi 3

35€
35€
  • Processeur : 64-bit quad-core ARM Cortex-A53
  • Cadance : 1200MHz
  • RAM : 1024Mo
  • Wi-Fi : Oui
  • Bluetooth : Oui, 4.1
  • Alimentation : 5v 2.5A
  • Stockage : Carte MicroSD
  • Carte réseau : Carte réseau Ethernet
  • Ports USB : 4
  • USB 2.5A : Oui

Un nouveau processeur pour la Raspberry Pi 3

Comme vous pouvez le voir avec le tableau, la Raspberry Pi 3 apporte son lot de nouveautés, à commencer par le processeur. Fini le processeur ARM7, la Raspberry embarque maintenant un processeur ARM8. Grâce à cette nouvelle puce, la Raspberry Pi découvre le monde du 64 bits !

Avec sa cadence à 1,2Ghz, la Raspberry Pi 3 est 10 fois plus rapide que la Raspberry 1 model B, elle est également environ 50 % plus rapide que la Raspberry Pi 2 !

 

Le Wi-Fi enfin intégré à la Raspberry Pi

Il est enfin là, le port Wi-Fi fait maintenant partie de la carte. Avec la Raspberry Pi 3, vous n’aurez donc plus besoin du dongle Wi-Fi que nous utilisions sur la Raspberry Pi 2. La puce Wi-Fi est couplé avec la technologie Bluetooth 4.1 ! Vous pouvez donc maintenant utiliser la Raspberry 3 directement en Wi-Fi mais également utiliser la fonctionnalité Bluetooth pour de la domotique, du média-center, etc.

Il est important de souligner que la Wi-Fi utilise la norme 802.11n, elle permet d’obtenir des débits allant de 7Mbit/s à 70Mbit/s.

 

Une alimentation USB améliorée

La Raspberry Pi 3 améliore également la connectivité USB, en améliorant la puissance des ports ! Cette amélioration de la Raspberry Pi va permettre d’alimenter plus facilement les disques dur externes.

La Raspberry Pi 3 demande un peu plus de puissance que son ainée, la fondation recommande une alimentation de 5V, 2.5A comme celle-ci, contre 5V, 2A pour la Raspberry Pi 2.

La fondation profite de cette nouvelle Raspberry pour améliorer son VideoCore. Cette amélioration va de paire avec les récentes mises à jours de Raspbian.

Les emplacements restent les mêmes, ce qui signifie que vous pourrez toujours utiliser le boitier de la raspberry pi 2.

La fondation nous informe que la version 64bit de Raspbian sera disponible prochainement, il faut donc pour l’instant se contenter de la version 32bit datant du 9 février.

 

Conclusion

La Raspberry Pi 3 est une belle surprise, elle ajoute son lot de nouveautés, nouveau processeur, ajout d’une puce Wi-Fi et Bluetooth.

La fondation améliore également l’existant, à savoir l’alimentation des ports USB, et le VideoCore.

Nous regretterons néanmoins que la fondation n’ai pas améliorer le port ethernet pour lui offrir une débit à 1 Gb/s.

Cet article La Raspberry Pi 3, vive le Wi-Fi ! est apparu en premier sur Raspbian-France.

Gravatar de RaspbianFrance
Original post of RaspbianFrance.Votez pour ce billet sur Planet Libre.

Articles similaires

Progi1984 : Docker, un environnement de développement versionnable

lundi 29 février 2016 à 10:00

Docker est un logiciel libre qui permet d’embarquer dans un container virtuel une application. Cela permet ainsi non plus de virtualiser un système mais de virtualiser un processus, et c’est pourquoi on parle parfois de virtualisation légère. Dans notre exemple, nous allons mettre en place Docker ainsi qu’un environnement de développement basé sur Nginx, PHP-fpm et MySQL.

Logo Docker

Pour une explication approfondie de Docker, je vous conseille l’article de Nicolargo : Virtualisation légère avec Docker.

Installation & Configuration de Docker

Sous Windows, l’installation se fait via un installeur standard. Dans mon cas, le seul truc que je n’ai pas coché est Git, car je l’avais déjà installé.
Après installation, on lance une ligne de commande, on se déplace dans dossier et on tape quelques commandes.

  1. On vérifie les machines présentes sur le système :
    c:\\wamp\\www\\myProject>docker-machine ls
    NAME   ACTIVE   DRIVER   STATE   URL   SWARM   DOCKER   ERRORS

    Normalement, cela devrait être vide.

  2. On crée la machine par défaut :
    c:\\wamp\\www\\myProject>docker-machine create --driver virtualbox default
    Running pre-create checks...
    Creating machine...
    (default) Copying C:\\Users\\\\.docker\\machine\\cache\\boot2docker.iso to C:\\Users\\\\.docker\\machine\\machines\\default\\boot2docker.iso...
    (default) Creating VirtualBox VM...
    (default) Creating SSH key...
    (default) Starting the VM...
    (default) Check network to re-create if needed...
    (default) Waiting for an IP...
    Waiting for machine to be running, this may take a few minutes...
    Detecting operating system of created instance...
    Waiting for SSH to be available...
    Detecting the provisioner...
    Provisioning with boot2docker...
    Copying certs to the local machine directory...
    Copying certs to the remote machine...
    Setting Docker configuration on the remote daemon...
    Checking connection to Docker...
    Docker is up and running!
    To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env default

  3. On définit les variables d’environnements :
    c:\\wamp\\www\\myProject>docker-machine env --shell cmd default
    SET DOCKER_TLS_VERIFY=1
    SET DOCKER_HOST=tcp://192.168.99.100:2376
    SET DOCKER_CERT_PATH=C:\\Users\\\\.docker\\machine\\machines\\default
    SET DOCKER_MACHINE_NAME=default
    REM Run this command to configure your shell:
    REM     FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd default') DO %i

    A ce niveau, on copie et exécute dans l’invite de commandes les lignes commençant par « SET ».

    Référence : https://docs.docker.com/machine/reference/env/

Configuration de notre environnement via Docker Compose

Notre environnement sera composé d’un fichier

docker-compose.yml
.

La base de notre environnement sera :

Un article suivra pour configurer d’autres outils comme SASS, PHPMyAdmin, MailDev ou Sentry.

Configurer MySQL

Dans le fichier YAML, nous allons ajouter ces lignes :

## MySQL
db:
  image: mysql
  restart: always
  ports:
    - "3306:3306"
  environment:
    MYSQL_ROOT_PASSWORD: rootpassword
    MYSQL_DATABASE: myprojet
    MYSQL_USER: user
    MYSQL_PASSWORD: pass

Nous allons utiliser l’image Docker fourni officiellement : https://hub.docker.com/_/mysql/.
Pour pouvoir se connecter au port 3306 de MySQL, il faut définir le port de sortie qui sera le même.
Ensuite, l’image MySQL a des variables d’environnements que l’on peut définir :

Configurer Nginx

Après MySQL, nous allons configurer le serveur Web. A la fin du fichier

docker-compose.yml
, nous allons ajouter ces lignes :

## Server Nginx
web:
  image: nginx
  restart: always
  ports:
    - "80:80"
  volumes:
    - ./:/var/www/local.dev
    - ./.docker/nginx:/etc/nginx/conf.d
  links:
    - php:php

Pareil, nous partons sur l’image officielle fourni par Docker : https://hub.docker.com/_/nginx/.
Pour utiliser le port 80 de Nginx, il faudra que l’on définisse un port de sortie, et qui comme MySQL sera le même.
Nous allons passer aux volumes : ce sont des dossiers un peu spéciaux qui permettent de connecter un lien dans le container vers un dossier soit d’un autre container, soit sur le système hôte.
Nous allons en configurer deux :

Précisons que certains containers ont besoin de fichier de configuration ou emplacement de stockage. Dans notre cas, Nginx a besoin d’un fichier de configuration :

default.conf
qui est censé se trouver dans le dossier « /etc/nginx/conf.d » du container, soit au niveau de notre dossier : « ./.docker/nginx ».

Le fichier

default.conf
est simple. Je n’irais pas plus dans les détails le concernant si ce n’est le
fastcgi_pass
: celui pointe vers le port 9000 du container
php
que l’on lie via le noeud « links ».

server {
    listen 80;
    server_name localhost;
    root /var/www/local.dev/www;
    index index.php index.html index.htm;
    sendfile off;

	location / {
        # try to serve file directly, fallback to front controller
        try_files $uri /index.php$is_args$args;
    }

    # location ~ ^/index\\.php(/|$) {
    location ~ ^/(index|index_dev)\\.php(/|$) {
        fastcgi_pass    php:9000;

        fastcgi_split_path_info ^(.+\\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS off;
    }

    # Return 404 for all php files as we do have a front controller
    location ~ \\.php$ {
        return 404;
    }
}

Configurer PHP

On a notre serveur Web et une base de données : il ne nous manque plus que PHP pour pouvoir compléter notre environnement.

Pour PHP, nous allons compiler nous-même PHP afin de pouvoir utiliser les extensions que l’on souhaite.

Modifions tout d’abord le fichier

docker-compose.yml
:

## PHP
php:
  build: .docker/php
  restart: always
  volumes:
    - ./:/var/www/local.dev
    - ./.docker/php/ini:/usr/local/etc/php
  links:
    - db:db

Contrairement aux deux autres containers, nous n’allons pas passer par une image mais un build. Le noeud build a besoin du chemin, relatif à l’emplacement du fichier

docker-compose.yml
, du dossier où se trouvera le fichier Dockerfile pour builder le container.

Les volumes liés sont :

Le container lié est cette fois le container « db » pour que le container « php » puisse faire une requête MySQL vers celui-ci.

Il nous reste deux fichiers à définir : le fichier Dockerfile pour générer le container PHP, et le fichier php.ini (à placer dans le dossier « ./.docker/php/ini/ ») qui contiendra la configuration de PHP.

Le fichier Dockerfile de PHP est le suivant :

## On se base sur le container officiel PHP en version 5.6-fpm
FROM php:5.6-fpm

## On met à jour, on installe les pré-requis et on installe les extensions PHP
RUN apt-get update && apt-get install -y \\
        libfreetype6-dev \\
        libjpeg62-turbo-dev \\
        libmcrypt-dev \\
        libpng12-dev \\
        libsqlite3-dev \\
        libssl-dev \\
        libcurl3-dev \\
        libxml2-dev \\
        libzzip-dev \\
    && docker-php-ext-install iconv json mcrypt mbstring mysql mysqli pdo_mysql pdo_sqlite phar curl ftp hash session simplexml tokenizer xml xmlrpc zip \\
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \\
    && docker-php-ext-install gd

## On installe XDebug et on crée le fichier de configuration
RUN pecl install xdebug \\
    && touch $PHP_INI_DIR/conf.d/xdebug.ini \\
    && echo 'zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so' >> $PHP_INI_DIR/conf.d/xdebug.ini \\
    && echo 'xdebug.remote_enable=1' >> $PHP_INI_DIR/conf.d/xdebug.ini \\
    && echo 'xdebug.remote_connect_back=1' >> $PHP_INI_DIR/conf.d/xdebug.ini \\
    && echo 'xdebug.var_display_max_depth=10' >> $PHP_INI_DIR/conf.d/xdebug.ini \\
    && echo 'xdebug.cli_color=1' >> $PHP_INI_DIR/conf.d/xdebug.ini \\
    && echo 'xdebug.show_local_vars=1' >> $PHP_INI_DIR/conf.d/xdebug.ini

## On définit le dossier de travail	
WORKDIR /var/www

## On build PHP en mode FPM
CMD ["php-fpm"]

Avant de lancer notre serveur, nous allons générer notre container PHP. Pour cela, on lance la commande :

c:\\wamp\\www\\myProject>docker-compose build php

Je ne vous affiche pas le log car avec la génération de PHP, cela prend un nombre conséquent de lignes.

Le fichier php.ini est le suivant :

display_errors=1
error_reporting=E_ALL
;upload_max_filesize = 200M
;post_max_size = 40M

Configurer le partage avec Boot2Docker

Attention, ce chapitre est pour les utilisateurs de Windows.

On va configurer le partage entre le système hôte (votre ordinateur) et Boot2Docker.
Pour cela, il faut ajouter un partage au niveau de la machine virtuelle de Boot2Docker :

c:\\wamp\\www\\myProject>"C:\\Program Files\\Oracle\\VirtualBox\\VBoxManage.exe" sharedfolder add "default" --name "c/wamp" --hostpath "C:\\wamp"

Via cette ligne de commande, on ajoute un dossier partagé à la machine virtuelle nommé « default » sous le nom « c/wamp » du dossier « C:\\wamp » présent sur le système hôte.

Autoriser les ports de Boot2Docker

Attention, ce chapitre est pour les utilisateurs de Windows.

On va faire de la translation de ports en mappant le port 80 de la VM vers le port 80 sur le réseau local.

c:\\wamp\\www\\myProject>"C:\\Program Files\\Oracle\\VirtualBox\\VBoxManage.exe" modifyvm "default" --natpf1 "web,tcp,,80,,80"

Via cette ligne de commande, on redirige le port 80 vers le port 80 de la VM.
Il faut le faire pour chaque port venant de nos containers que l’on sort sur le réseau.

Utiliser notre environnement de développement

Maintenant que tout est configuré dans notre fichier

docker-compose.yml
, on va lancer notre environnement.

Pour les utilisateurs de Windows, on vérifie que Boot2Docker est lancé et sinon on le lance.

c:\\wamp\\www\\myProject>docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL   SWARM   DOCKER    ERRORS
default   -        virtualbox   Stopped                 Unknown

c:\\wamp\\www\\myProject>docker-machine start default
Starting "default"...
(default) Check network to re-create if needed...
(default) Waiting for an IP...
Machine "default" was started.
Waiting for SSH to be available...
Detecting the provisioner...
Started machines may have new IP addresses. You may need to re-run the `docker-machine env` command.

c:\\wamp\\www\\myProject>docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
default   -        virtualbox   Running   tcp://192.168.99.100:2376           v1.10.0

On lance la commande suivante pour enregistrer les variables d’environnement :

c:\\wamp\\www\\myProject>FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd default') DO %i

On se connecte en SSH à Boot2Docker pour activer le partage de dossiers :

c:\\wamp\\www\\Github\\myProject>docker-machine ssh
                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \\______ o           __/
             \\    \\         __/
              \\____\\_______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \\ __| | ___   ___| | _____ _ __
| '_ \\ / _ \\ / _ \\| __| __) / _` |/ _ \\ / __| |/ / _ \\ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \\___/ \\___/ \\__|_____\\__,_|\\___/ \\___|_|\\_\\___|_|
Boot2Docker version 1.10.0, build master : b09ed60 - Thu Feb  4 20:16:08 UTC 2016
Docker version 1.10.0, build 590d5108
docker@default:~$ sudo su
root@default:/home/docker# mount -t vboxsf -o uid=1000,gid=50 "c/wamp" /c/wamp
root@default:/home/docker# exit
docker@default:~$ exit

Ou en plus court :

c:\\wamp\\www\\Github\\myProject>docker-machine ssh default "sudo mount -t vboxsf -o uid=1000,gid=50 \\"c/wamp\\" /c/wamp"

On récupère l’IP de Boot2Docker :

c:\\wamp\\www\\myProject>docker-machine ip
192.168.99.100

Après cela, il ne manque plus qu’à lancer la machine :

c:\\wamp\\www\\myProject>docker-compose up

Et d’aller dans votre navigateur pour tester l’IP :
Résultat final de Docker Compose

Conclusion

Les plus perspicaces d’entre vous auront remarqué le mot « versionnable » d’entre vous. Grâce au fait que notre environnement de développement n’est basé que sur des fichiers avec principalement le fichier

docker-compose.yml
, tout devient versionnable et vous pouvez ainsi votre les évolutions de votre environnement pour tester des outils et revenir en arrière.
Le seul souci qui me reste à traiter reste le fait de voir à chaque démarrage de Boot2Docker de de voir gèrer les variables d’environnement et monter le point de montage. Mais peut-être que Docker nous aidera dans une prochaine version, ou qu’un des lecteurs a une solution à me proposer. N’étant pas un expert Docker, je reste ouvert à tous commentaires.

Cet article Docker, un environnement de développement versionnable est apparu en premier sur RootsLabs.

Gravatar de Progi1984
Original post of Progi1984.Votez pour ce billet sur Planet Libre.

nIQnutn : Afficher les notifications de mises à jours sous XFCE

lundi 29 février 2016 à 09:03

Depuis longtemps, je ne trouvais pas de solution pour avoir une notification des mises à jour disponibles sous XFCE avec Debian. Avec la version stable de Debian, il n'y a pas de mises à jour tous les matins mais il est préférable de garder son système à jour et autant les installer quand elles arrivent. XFCE ne dispose pas dans Jessie d'un utilitaire permettant simplement d'afficher les mises à jour (pas à ma connaissance).

Personnelement, je ne comprends pas comment un truc aussi basic n'est pas présent sur un environnement de bureau comme XFCE. Heureusement, j'ai trouvé une solution avec le paquet qui va bien: pk-update-icon.

Instalation

Pour les utilisateurs de Jessie, il faudra utiliser les dépôts backports. Ce paquet est disponible dans les versions supérieure (strectch et sid).

Pour installer le paquet depuis les dépôts Debian:

#root
apt-get install pk-update-icon 
pk-update-icon 2.0.0-1~bpo8+1
Debian 8.3 Jessie

Utilisation

L'utilitaire n'a besoin d'aucune configuration et devrait se lancer automatiquement. Il vérifiera tous les jours la présence de nouveaux paquets dans les dépôts.

Quand une mise à jour est disponible, on reçoit une notification sur le bureau et une icône s'affiche dans la zone de notification.

En cliquant sur la notification ou l'icône, on se retrouvera sur un utilitaire graphique (gpk-update viewer) pour mettre à jour les derniers paquets.

Personnellement, je préfère encore utiliser les utilitaires en ligne de commande comme apt et suivre les changements effectués.

Même si que pk-update-icon ne nécessite aucune configuration il est paramétrable.
Pour plus d'infos, il faut regarder l'aide:

$user
pk-update-icon -h 

Il existe différentes solutions pour afficher les mises à jour disponibles.
Jusqu'à maintenant, j'utilisais conky pour d'afficher les mises à jour disponible. On peut éventuellement ajouter un greffon (Moniteur Générique) dans le tableau de bord de XFCE pour afficher le nombre de mises à jour.

La commande à utiliser dans ce cas:

$user
aptitude search "~U" | wc -l | tail 

Ressources

Plus d'information sur pk-update-icon:

$user
man pk-update-icon 

Si vous connaissez d'autres solutions pour afficher les mises à jour sous XFCE, n'hésitez pas à les partager dans les commentaires.


2016 nIQnutn CC-BY

Gravatar de nIQnutn
Original post of nIQnutn.Votez pour ce billet sur Planet Libre.

Journal du hacker : Liens intéressants Journal du hacker semaine #8

lundi 29 février 2016 à 00:01

Pour la 8ème semaine de 2016, voici 5 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker ou bien dans les commentaires de ce billet :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

pointroot.org : Auto-hébergement de la messagerie : Debian Jessie, Postfix, Dovecot, Postgrey…

dimanche 28 février 2016 à 18:00

Auto-hébergement de la messagerie : Debian Jessie, Postfix, Dovecot, Postgrey…

Cet article répond à la question : comment installer simplement, un serveur de mail, qui soit un minimum sécurisé et capable de limiter un peu le SPAM ?

La configuration proposée permet de gérer les boites mails (BAL) des utilisateurs systèmes sur un ou plusieurs domaines. Les utilisateurs sont ceux ajoutés sur le système (/etc/passwd). Pas besoin de gérer les comptes mails avec des « Virtuals » dans une configuration basique (pour quelques personnes, cette option est amplement suffisante).

Prérequis

Avant tout, il faut que l’enregistrement MX soit configuré sur le DNS du domaine traité.

exemple.com.         3w   IN      MX  10   mail.exemple.com.

Ajouter aussi le champs Sender Policy Framework (SPF) dans la zone DNS, car certains serveurs de mails vérifient cette information pour qualifier les serveurs SPAMmeurs.

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

Une dernière chose, pensez à mettre à jour le Reverse (enregistrement PTR dans la zone Reverse du DNS). Cette information est également vérifiée pour savoir si c’est vraiment sérieux de recevoir des mails de votre serveur.

Installation de la messagerie

Je pars du principe que le système est déjà installé et à jour (Debian Jessie). Les configurations ont été faites sur un VPS Cloud OVH, mais le serveur peut être hébergé n’importe où, il faut juste s’assurer que les ports nécessaires au fonctionnement de la messagerie ne soient pas filtrés ou bloqués (TCP 25, 993, 587).

Les paquets à installer :

$ sudo apt install postfix dovecot-imapd postgrey

Aux questions :

Configuration type, répondre : Internet Site
Nom du système de mail, répondre : exemple.com (ou levotre !)

La configuration par défaut après l’installation de Postfix

$ postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = all
mailbox_size_limit = 0
mydestination = exemple.com, localhost.localdomain, localhost
myhostname =  mx2.exemple.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes

Il faut y ajouter :

## TLS smtp Opportuniste

smtpd_tls_security_level = may

## Dovecot (SASL) Simple Authentication and Security Layer
## http://wiki2.dovecot.org/HowTo/PostfixAndDovecotSASL

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
# On Debian Wheezy path must be relative and queue_directory defined
queue_directory = /var/spool/postfix
# and the common settings to enable SASL:
smtpd_sasl_auth_enable = yes

## local delivery agent (LDA) celui qui délivre le mail dans la BAL, avec la commande qui va bien

mailbox_command = /usr/lib/dovecot/dovecot-lda -f "$SENDER" -a "$RECIPIENT"

## Format des BAL : Maildir
home_mailbox = Maildir/

## Quelques restrictions pour éviter les clandestins et les spammeurs 
## Bien évidement ces restrictions sont personnelles et sont tout à fait ajustable en fonction des besoins

smtpd_client_restrictions = permit_mynetworks,
    reject_unauth_pipelining,
    reject_rbl_client sbl-xbl.spamhaus.org,
    reject_rbl_client list.dsbl.org

smtpd_helo_required = yes

smtpd_helo_restrictions = permit_mynetworks,
    reject_invalid_hostname,
    reject_non_fqdn_hostname,
    warn_if_reject reject_unknown_hostname

smtpd_sender_restrictions = permit_mynetworks,
    reject_non_fqdn_sender,
    reject_unlisted_sender,
    reject_unknown_sender_domain

smtpd_recipient_restrictions =
    # General rules
    reject_non_fqdn_recipient,
    reject_unknown_recipient_domain,
    # Our users
    permit_mynetworks,
    permit_sasl_authenticated,
    # Spam filters
    reject_rbl_client zen.spamhaus.org,
    reject_rbl_client dnsbl.sorbs.net,
    reject_rhsbl_reverse_client dbl.spamhaus.org,
    reject_rhsbl_helo dbl.spamhaus.org,
    reject_rhsbl_sender dbl.spamhaus.org,
    # This should be next-to-last
    check_policy_service inet:127.0.0.1:10023
    reject_unauth_destination, reject_unlisted_recipient,
    permit

Authentification de l’expéditeur et chiffrement

Pour éviter que n’importe qui envoie des mails depuis notre serveur de mail, il vaut mieux s’assurer de l’identité et vérifier les habilitations de l’expéditeur.

# vi /etc/postfix/master.cf
~
submission inet n       -       -       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
  -o smtpd_recipient_restrictions=
  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
~

Recharge la configuration et relance le service

service postfix restart

A ce stade

# netstat -lnpt

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:10023         0.0.0.0:*               LISTEN      4787/postgrey.pid -
tcp        0      0 0.0.0.0:587             0.0.0.0:*               LISTEN      5133/master     
tcp        0      0 0.0.0.0:143             0.0.0.0:*               LISTEN      5191/dovecot    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      539/sshd        
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      5133/master     
tcp6       0      0 :::587                  :::*                    LISTEN      5133/master     
tcp6       0      0 :::143                  :::*                    LISTEN      5191/dovecot    
tcp6       0      0 :::22                   :::*                    LISTEN      539/sshd        
tcp6       0      0 :::25                   :::*                    LISTEN      5133/master

On remarque que « postgrey » écoute sur le port 10023. Ce service va rejeter dans un premier temps, les serveurs mails qu’il ne connaît pas, puis acceptera de laisser passer le mail à la seconde tentative.

Théoriquement, avec le « Greylisted » et les quelques règles de restrictions, une bonne partie des SPAM seront rejetés.

Fini pour Postfix

Maintenant configuration de Dovecot

A modifier dans /etc/dovecot/conf.d/10-mail.conf

## Emplacement des BAL
#mail_location = mbox:~/mail:INBOX=/var/mail/%u
mail_location = maildir:~/Maildir

A modifier dans /etc/dovecot/conf.d/10-ssl.conf

## Activation du TLS
# SSL/TLS support: yes, no, required.
#ssl = no
ssl = required
ssl_cert = 

A modifier dans /etc/dovecot/conf.d/10-master.conf

# Gestion de l'authentification des utilisateurs 
# Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666 }

Relance le service

# service dovecot restart

Création d’un utilisateur

# adduser alex 

Création des alias

A modifier dans /etc/aliases

# See man 5 aliases for format
postmaster:    root
root: alex

Recharge la base des alias

# newaliases

Test

A configurer sur un client comme Thunderbird

Attention, le certificat TLS est auto signé, donc, une exception est nécessaire.

IMAP
Server Name: mx2.exemple.com
Port: 993
Connection security: SSL/TLS
Authentication method: Normal password
User Name: alex
SMTP
Server Name: mx2.exemple.com
Port: 587
Connection security: STARTTLS
Authentication method: Normal password
User Name: alex

Conclusion

Bon ben, voila ! Un serveur de mail de plus.

Cette configuration est suffisante pour passer la plus part des mécanismes de répudiation mis en place anarchiquement par certains serveurs de mail (pour lutter contre le SPAM).

Cet article Auto-hébergement de la messagerie : Debian Jessie, Postfix, Dovecot, Postgrey… est apparu en premier sur PointRoot.org.

Gravatar de pointroot.org
Original post of pointroot.org.Votez pour ce billet sur Planet Libre.