Outils personnels

Install Mailany sur Debian : Différence entre versions

De wikiGite

 
(16 révisions intermédiaires par un autre utilisateur non affichées)
Ligne 1 : Ligne 1 :
Install de base Debian dans une VM<br/>
+
== Installation du serveur Postfix et de son environnement ==
 +
 
 +
=== Install de base Debian dans une VM<br/> ===
 
Chargement d'une iso Debian
 
Chargement d'une iso Debian
 
  wget ftp://ftp.proxad.net/mirrors/cdimage.debian.org/debian-cd/current/i386/iso-cd/debian-40r5-i386-netinst.iso
 
  wget ftp://ftp.proxad.net/mirrors/cdimage.debian.org/debian-cd/current/i386/iso-cd/debian-40r5-i386-netinst.iso
Ligne 6 : Ligne 8 :
 
Install de base, on verra exactement ensuite ce qui est nécessaire.
 
Install de base, on verra exactement ensuite ce qui est nécessaire.
  
On commence par installer ssh
+
On commence par installer et paramétrer ssh
 
  apt-get install openssh-server
 
  apt-get install openssh-server
 +
pour pouvoir se connecter via un terminal plus convivial que la console vmware.
 +
 
Puis apache et mysql
 
Puis apache et mysql
 
  apt-get install apache2 mysql-server mysql-common mysql-client
 
  apt-get install apache2 mysql-server mysql-common mysql-client
Puis Postfix
+
On donne un mot de passe à l'admin mysql, et on crée tout de suite une base pour Mailany
  apt-get install postfix
+
mysqladmin -u root password '<mot_de_passe>'
 +
mysqladmin -u root --password='<mot_de_passe>' create mailany
 +
 
 +
Puis Postfix (sur MySQL, avec support SMTP-Auth et TLS), et procmail
 +
  apt-get install postfix postfix-mysql procmail libsasl2 sasl2-bin libsasl2-modules libdb3-util
 
Installer Postfix en "site internet" et donner le nom du serveur.
 
Installer Postfix en "site internet" et donner le nom du serveur.
 +
 +
Modifier /etc/postfix/main.cf.<br/>
 +
*Pour le support MySQL :
 +
postconf -e 'relay_domains = proxy:mysql:/etc/postfix/mysql_relay_domains_maps.cf'
 +
postconf -e 'virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf'
 +
postconf -e 'virtual_gid_maps = static:20001'
 +
postconf -e 'virtual_mailbox_base = /home/virtual'
 +
postconf -e 'virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf'
 +
postconf -e 'virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf'
 +
postconf -e 'virtual_minimum_uid = 20001'
 +
postconf -e 'virtual_uid_maps = static:20001'
 +
postconf -e 'proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps '$virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_recipient_restrictions $smtpd_sender_login_maps'
 +
 +
*Pour l'envoi de mails, si l'utilisateur qui passe par ce serveur pour envoyer ses mails a une adresse IP fixe, il suffit de préciser son adresse dans l'option "mynetworks" du main.cf. S'il est en adressage dynamique, il faut mettre en place une authentification de type TLS.<br/>
 +
SASL et TLS dans main.cf:
 +
postconf -e 'smtpd_sasl_local_domain ='
 +
postconf -e 'smtpd_sasl_auth_enable = yes'
 +
postconf -e 'smtpd_sasl_security_options = noanonymous'
 +
postconf -e 'broken_sasl_auth_clients = yes'
 +
postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
 +
 +
postconf -e 'inet_interfaces = all'
 +
postconf -e 'smtp_use_tls = yes'
 +
postconf -e 'smtpd_use_tls = yes'
 +
postconf -e 'smtp_tls_note_starttls_offer = yes'
 +
postconf -e 'smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key'
 +
postconf -e 'smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt'
 +
postconf -e 'smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem'
 +
postconf -e 'smtpd_tls_loglevel = 1'
 +
postconf -e 'smtpd_tls_received_header = yes'
 +
postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
 +
postconf -e 'tls_random_source = dev:/dev/urandom'
 +
postconf -e 'myhostname = server1.example.com'
 +
 +
Décommenter aussi ces lignes dans master.cf :
 +
submission   inet n - - - - smtpd
 +
    -o smtpd_tls_security_level=encrypt
 +
    -o smtpd_sasl_auth_enable=yes
 +
    -o smtpd_etrn_restrictions=reject
 +
    -o smtpd_client_restrictions=permit_sasl_authenticated,reject
 +
'''Note 1''' : "submission" correspond au port 587, vérifier qu'il est bien référencé comme tel dans /etc/services<br/>
 +
'''Note 2''' : l'option smtpd_etrn_restrictions peut manquer, penser à l'ajouter.<br/>
 +
'''Note 3''' : Le port 587 n'est pas standard pour certains client mails (exemple : Evolution). Dans le paramétrage du serveur d'envoi de mail, il faut forcer ce port en l'ajoutant au nom du serveur (sous la forme "nom_serveur.mail:587"), et choisir l'authentification TLS en plain text.
 +
 +
Créer également le fichier /etc/postfix/sasl/smtpd.conf :
 +
echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf
 +
echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.confpostconf -e 'smtpd_tls_auth_only = no'
 +
 +
*Maintenant un peu de sécurité :
 +
postconf -e 'message_size_limit = 50240000'
 +
postconf -e 'smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, permit'
 +
postconf -e 'smtpd_data_restrictions = reject_unauth_pipelining, permit'
 +
*Et le minimum pour un bon serveur de mail sous linux :
 +
postconf -e 'home_mailbox = Maildir/'
 +
 +
 +
[[Media:postfix.sql|Télécharger]] postfix.sql
 +
 +
  
 
Les outils complémentaires :
 
Les outils complémentaires :
Ligne 19 : Ligne 86 :
 
Faire pointer le resolv.conf en local
 
Faire pointer le resolv.conf en local
 
  nameserver 127.0.0.1
 
  nameserver 127.0.0.1
  search systea.net
+
  search example.net
 +
Puis on teste la résolution
 +
ping www.google.fr
 +
* Les quotas
 +
apt-get install quota
 +
Editer /etc/fstab, ajouter la gestion des quotas sur la partition /home
 +
/dev/mapper/mailserver1-home /home          ext3    defaults,usrquota,grpquota        0      2
 +
 
 +
 
 +
 
 +
 
 +
 
  
 
  apt-get install spamassassin
 
  apt-get install spamassassin
  
 
clamav
 
clamav

Version actuelle datée du 18 mars 2009 à 18:47

Installation du serveur Postfix et de son environnement

Install de base Debian dans une VM

Chargement d'une iso Debian

wget ftp://ftp.proxad.net/mirrors/cdimage.debian.org/debian-cd/current/i386/iso-cd/debian-40r5-i386-netinst.iso

Création de la VM en bootant sur l'ISO. Le disque (10G) est partitionné en LVM, avec /home séparé (en prévision des quotas).
Install de base, on verra exactement ensuite ce qui est nécessaire.

On commence par installer et paramétrer ssh

apt-get install openssh-server

pour pouvoir se connecter via un terminal plus convivial que la console vmware.

Puis apache et mysql

apt-get install apache2 mysql-server mysql-common mysql-client

On donne un mot de passe à l'admin mysql, et on crée tout de suite une base pour Mailany

mysqladmin -u root password '<mot_de_passe>'
mysqladmin -u root --password='<mot_de_passe>' create mailany

Puis Postfix (sur MySQL, avec support SMTP-Auth et TLS), et procmail

apt-get install postfix postfix-mysql procmail libsasl2 sasl2-bin libsasl2-modules libdb3-util

Installer Postfix en "site internet" et donner le nom du serveur.

Modifier /etc/postfix/main.cf.

  • Pour le support MySQL :
postconf -e 'relay_domains = proxy:mysql:/etc/postfix/mysql_relay_domains_maps.cf'
postconf -e 'virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf'
postconf -e 'virtual_gid_maps = static:20001'
postconf -e 'virtual_mailbox_base = /home/virtual'
postconf -e 'virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf'
postconf -e 'virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf'
postconf -e 'virtual_minimum_uid = 20001'
postconf -e 'virtual_uid_maps = static:20001'
postconf -e 'proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps '$virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_recipient_restrictions $smtpd_sender_login_maps'
  • Pour l'envoi de mails, si l'utilisateur qui passe par ce serveur pour envoyer ses mails a une adresse IP fixe, il suffit de préciser son adresse dans l'option "mynetworks" du main.cf. S'il est en adressage dynamique, il faut mettre en place une authentification de type TLS.

SASL et TLS dans main.cf:

postconf -e 'smtpd_sasl_local_domain ='
postconf -e 'smtpd_sasl_auth_enable = yes'
postconf -e 'smtpd_sasl_security_options = noanonymous'
postconf -e 'broken_sasl_auth_clients = yes'
postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
postconf -e 'inet_interfaces = all'
postconf -e 'smtp_use_tls = yes'
postconf -e 'smtpd_use_tls = yes'
postconf -e 'smtp_tls_note_starttls_offer = yes'
postconf -e 'smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key'
postconf -e 'smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt'
postconf -e 'smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem'
postconf -e 'smtpd_tls_loglevel = 1'
postconf -e 'smtpd_tls_received_header = yes'
postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
postconf -e 'tls_random_source = dev:/dev/urandom'
postconf -e 'myhostname = server1.example.com'

Décommenter aussi ces lignes dans master.cf :

submission	  inet	n	-	-	-	-	smtpd 
   -o smtpd_tls_security_level=encrypt
   -o smtpd_sasl_auth_enable=yes
   -o smtpd_etrn_restrictions=reject
   -o smtpd_client_restrictions=permit_sasl_authenticated,reject

Note 1 : "submission" correspond au port 587, vérifier qu'il est bien référencé comme tel dans /etc/services
Note 2 : l'option smtpd_etrn_restrictions peut manquer, penser à l'ajouter.
Note 3 : Le port 587 n'est pas standard pour certains client mails (exemple : Evolution). Dans le paramétrage du serveur d'envoi de mail, il faut forcer ce port en l'ajoutant au nom du serveur (sous la forme "nom_serveur.mail:587"), et choisir l'authentification TLS en plain text.

Créer également le fichier /etc/postfix/sasl/smtpd.conf :

echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf
echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.confpostconf -e 'smtpd_tls_auth_only = no'
  • Maintenant un peu de sécurité :
postconf -e 'message_size_limit = 50240000'
postconf -e 'smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, permit'
postconf -e 'smtpd_data_restrictions = reject_unauth_pipelining, permit'
  • Et le minimum pour un bon serveur de mail sous linux :
postconf -e 'home_mailbox = Maildir/'


Télécharger postfix.sql


Les outils complémentaires :

  • Cache DNS, le serveur mail faisant une utilisation abondante des DNS. L'installation de base sous Debian propose un serveur cache, on a donc rien à faire :
apt-get install bind9

Faire pointer le resolv.conf en local

nameserver 127.0.0.1
search example.net

Puis on teste la résolution

ping www.google.fr
  • Les quotas
apt-get install quota

Editer /etc/fstab, ajouter la gestion des quotas sur la partition /home

/dev/mapper/mailserver1-home /home           ext3    defaults,usrquota,grpquota        0       2




apt-get install spamassassin

clamav