====== Matériel ====== 2 [[http://www.sun.com/servers/entry/v210/|sun V210]] ====== Configuration Système ====== | OS | Gentoo | | MTA | Postfix | | Base de données | MySQL | | Greylisting | Postgrey | | Antivirus | clamav | | Antispam | dspam | | POP/IMAP | dovecot | | Serveur web | Lighttpd | | Webmail | roundcube | ====== Architecture ====== ===== make.conf ===== CFLAGS="-O2 -mcpu=ultrasparc -pipe" CXXFLAGS="-O2 -mcpu=ultrasparc -pipe" # WARNING: Changing your CHOST is not something that should be done lightly. # Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing. CHOST="sparc-unknown-linux-gnu" MAKEOPTS="-j4" USE="-X ipv6 ssl perl slang unicode mysql vhosts php5 iproute2 png" FEATURES="parallel-fetch distcc" VIDEO_CARDS="" # faire les mises a jour lorsque la machine sera en prod #PORTAGE_NICENESS=15 ===== packages.use ===== mail-mta/postfix mysql sasl dev-db/mysql latin1 net-mail/dovecot pop3d dev-lang/php ctype pcre session unicode cgi xml gd imap sockets www-servers/lighttpd rrdtools fastcgi php mail-filter/dspam mysql logrotate clamav daemon ====== HowTo Non terminé : Redaction bragon et Mr_Smoke ====== GeekMail, ou GeekMX pour reprendre son nom officiel, a maintenant dépassé le stade du projet. Néanmoins, il est temps de créer un petit "HOWTO créer un mx à la GeekMX". ====== Introduction ====== Le but de ce document est de vous guider pas-à-pas dans la réalisation d'un serveur mail complet, capable de gérer des comptes virtuels et locaux, sécurisé, et relativement facile à administrer. Par ailleurs, plutôt que de vous proposer une marche à suivre sans réfléchir, nous expliquerons les différentes étapes, sans forcément rentrer dans le détail, mais suffisamment pour donner une vue d'ensemble assez claire du système global et des interactions entre les différents éléments. Si les versions des logiciels que vous installez sont (beaucoup) plus récentes ou plus vieilles que les versions utilisées ici, il est possible que vous rencontriez des différences (parfois significatives) dans la syntaxe de certains fichiers de configuration. Nous nous efforcerons de tenir ce document le plus à jour possible afin de minimiser le problème. __CHANGELOG :__ * 02-10-2008 : Création du document * 03-10-2008 : Ajout de fichiers de configuration Postfix * 06-10-2008 : Documentation Postfix : ajouts (infos sur SASL, TLS) et mise en forme. Ajout de la configuration MySQL, lighty et PostfixAdmin. ====== Logiciels utilisés ====== * MTA : [[http://www.postfix.org|Postfix]] 2.2.0 * POP/IMAP : [[http://www.dovecot.org|Dovecot]] 1.1.1-r1 * SASL : [[http://www.dovecot.org|Dovecot]] 1.1.1-r1 et [[http://cyrusimap.web.cmu.edu|Cyrus]] 2.1.22-r2 * saslauthd //à voir// * Greylisting : [[http://postgrey.schweikert.ch|Postgrey]] 1.31 (Tuons le Spam !) * Antivirus et Antispam : [[http://www.ijs.si/software/amavisd|Amavisd]] 2.5.2 (Tuons encore plus le Spam !) * Backend : [[http://www.mysql.com|MySQL]] 5.0.60-r1 * Gestion : [[http://postfixadmin.sourceforge.net|PostfixAdmin]] 2.2.1.1 * Serveur HTTP : [[http://www.lighttpd.net|Lighttpd]] dit "Lighty" 1.4.19-r2 * sans oublier ... Linux : [[http://www.gentoo.org|Gentoo]] (hardened/x86/2.6 dans le cas qui nous intéresse) Pourquoi ces choix ? Il se trouve que ces différents logiciels s'intègrent très bien les uns aux autres sans que le tout deviennent une usine à gaz. Notons au passage qu'il est possible d'utiliser PostgreSQL en lieu et place de MySQL ou de remplacer Lighty par Apache2 sans trop de problèmes. Pour ce qui est des autres distributions, les différences se situeront principalement au niveau de la gestion des paquetages. Si vous suivez ce HOWTO et que vous voulez l'adapter à votre distribution, il faudra bien évidemment utiliser le gestionnaire de paquetages idoine (rpm, apt-get ...), mais aussi parfois improviser un peu quant aux noms des paquetages. Par exemple, si sous Gentoo il suffit d'activer le USE flag "mysql" pour compiler Postfix avec le support MySQL, sous Debian il faudra installer un paquetage séparé (postfix-mysql), tandis que si vous installez depuis des tarballs, il faudra mettre la main au cambouis et taper quelque chose du genre ''make -f Makefile.init makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include' 'AUXLIBS=-L/usr/local/mysql/lib -lmysqlclient -lz -lm'''. Enfin, nous n'entrerons pas dans les détails du système de log choisi, car c'est un choix très général qui aura des implications bien en dehors du cadre d'un simple serveur mail. ====== Installation des logiciels - Première partie : le coeur du serveur ====== Avant de passer à l'installation de chaque logiciel (qui se résumera en général à une commande ''emerge''), il convient de choisir les USE flags dont nous auront besoin dans les différentes applications. Notez que ces flags constituent un minimum nécessaire (mais pas forcément suffisant) au bon fonctionnement de notre futur serveur mail. Certains sont peut-être déjà activés sur votre serveur. Par ailleurs, nous partons du principe que les applications seront installés sur une machine configurée en profil "server" ou "hardened", ce qui active certains flags par défaut. * ''cgi'' : nécessaire au fonctionnement de PHP (alternative : apache2 si vous décidez de remplacer lighttpd par apache2) ; * ''dovecot-sasl'' : compile postfix avec le support du SASL côté serveur fourni par dovecot (le flag ''sasl'' est facultatif, nous verrons plus loin pourquoi) * ''imap pop3d mbox'' : support des protocoles nécessaires et du stockage mbox pour les mails * ''ipv6'' : support IPv6 parce que c'est le bien ;) * ''mysql, mysqli'' : support MySQL dans toutes les applications qui nous intéressent * ''php'' : support de PHP pour Lighty * ''vda'' : support des quota pour les comptes virtuels dans Postfix * ''session ctype pcre unicode'' : flags nécessaire au bon fonctionnement de PHP ===== Tout en un ===== Si vous êtes pressés ou que vous nous faites une confiance aveugle sur les logiciels à installer, vous pouvez lancer la compilation de toutes les applications d'une seule commande : echo "www-apps/postfixadmin" >> /etc/portage/package.keywords && emerge -av postfix dovecot lighttpd postfixadmin Si vous avez choisi les bons USE flags, l'installation de ces quatre paquetage suffira, le jeu des dépendances se chargeant du reste. ===== Postfix ===== Le MTA (Mail Transfer Agent) est le coeur du serveur de messagerie. C'est lui qui reçoit et délivre les mails qu'il est censé gérer (votre domaine par exemple), et qui envoie les mails en provenance des clients autorisés. C'est le serveur par défaut de plusieurs systèmes UNIX et distributions Linux. USE flags : ''dovecot-sasl ipv6 mbox mysql pam ssl vda''. Rajoutez ''hardened'' au besoin si par exemple vous tournez en vserver. Pour l'installation en elle-même, rien que du très classique. emerge -av postfix Si vous avez activé les flags ci-dessus, l'installation de Postfix entraînera celle de MySQL, OpenSSL et Cyrus-SASL. ===== Dovecot ===== En général, quand Postfix reçoit les mails pour votre domaine, il les stocke localement (nous verrons où dans la section Configuration). Cela dit, il faut bien donner un moyen aux utilisateurs de récupérer leur courrier. C'est là qu'intervient Dovecot : il nous fournira les services POP et IMAP nécessaires, ainsi qu'une couche SASL pour Postfix. USE flags : ''ipv6 mbox mysql pam pop3d ssl'' Encore une fois, l'installation à la Gentoo reste simple : emerge -av dovecot Cette fois-ci, l'installation n'amène rien de bien intéressant au niveau des dépendances (MySQL et OpenSSL ont été installés à l'étape du dessus). ===== LightTPD ===== Pour administrer notre serveur mail, on peut bien sûr créer nos données à la main dans les bases MySQL. Bon courage si vous choisissez cette voie :-) Heureusement, il existe une interface Web de gestion des comptes mails qui nous simplifiera beaucoup la vie. Pour la faire tourner, il faut donc un serveur Web. Nous allons donc installer LightTPD, plus léger et simple à maintenir qu'un Apache complet. USE flags : ''bzip2 ipv6 mysql pcre php ssl''. Rajoutez ''fastcgi'' si le coeur vous en dit, mais vous devrez le configurer pour qu'il fonctionne correctement avec PHP. emerge -av lighttpd Lighty va entraîner PHP dans son sillage, ce qui nous arrange bien. ===== PostfixAdmin ===== La voilà, notre interface WWW de gestion des comptes mails. Vu que tous les pré-requis sont déjà installés, il n'y a plus qu'à : emerge -av postfixadmin ===== A compléter ===== Amavisd et postgrey ====== Configuration des logiciels ====== ===== Postfix avec SASL et TLS ===== Dans la configuration de Postfix, il faut : * définir les options de configuration "générales" (configuration réseau notamment) ; * "dire" à Postfix d'aller chercher la configuration des domaines et comptes virtuels dans MySQL ; * définir les options permettant l'utilisation de SASL pour authentifier les clients et de TLS pour sécuriser les transactions Le support **SASL** de Postfix existe côté **serveur** et côté **client**. Dans la plupart des cas, vous n'aurez besoin que du **SASL serveur**, qui permettra à Postfix de demander aux clients de s'identifier avant de pouvoir envoyer un message. C'est ce que nous allons faire ici. Le **SASL client** n'est nécessaire que si votre serveur Postfix doit relayer des messages en s'adressant à un autre serveur mail qui requiert l'identification ; si c'est votre cas, vous devrez compiler Postfix avec le flag ''sasl'' et définir des options d'identification particulières que nous ne verrons pas dans ce document. Le **TLS** permet de chiffrer les échanges entre Postfix et les clients mail ou les autres serveurs mail à qui il transmet des messages. Cependant, tout le monde n'utilise pas forcément TLS. Nous allons donc faire du TLS dit //opportuniste//. Postfix acceptera les communications en clair, en se gardant la possibilité de chiffrer la transaction si l'interlocuteur le permet ou le demande. La plupart des options figureront dans le ''main.cf'' de Postfix ; les options MySQL seront quant à elles définies dans des fichiers séparés, appelés depuis ''main.cf''. Cet exemple suppose que vous ayez un serveur MySQL à l'adresse 192.168.1.2. Remplacez cette adresse par celle de votre serveur MySQL, ou par ''localhost'' si tout est installé sur le même serveur. De même, nous avons choisi ici le couple UID/GID 1001/1001 comme propriétaire du répertoire contenant les mails des comptes virtuels ; libre à vous de modifier ce paramètre au besoin. Enfin, une brève remarque avant de commencer : Postfix refusera de démarrer tant que les alias ne seront pas créés. Pour cela, il suffit de lancer la commande newaliases et tout rentrera dans l'ordre. ==== /etc/postfix/main.cf ==== # Configuration générale. A modifier selon vos besoins et désirs myhostname = mail.gplmail.org mydomain = gplmail.org inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, localhost local_recipient_maps = proxy:unix:passwd.byname $alias_maps mynetworks = $config_directory/mynetworks # Réglages standard alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases # Réglages comptes virtuels et références aux confs MySQL relay_domains = mysql:/etc/postfix/mysql_relay_domains_maps.cf virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf virtual_uid_maps = static:1001 virtual_gid_maps = static:1001 virtual_mailbox_base = /var/spool/mail virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf virtual_mailbox_limit = 25600000 virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf virtual_minimum_uid = 1001 virtual_transport = virtual # Support des quota virtual_create_maildirsize = yes virtual_mailbox_extended = yes virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf virtual_mailbox_limit_override = yes virtual_maildir_limit_message = Sorry, the user has exceeded his current quota. Please try again later. vacation_destination_recipient_limit = 1 maildrop_destination_recipient_limit = 1 # Support sasl (serveur) smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes broken_sasl_auth_enable = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_sasl_security_options = noanonymous smtpd_sasl_type = dovecot # Support TLS smtp_tls_security_level = may smtpd_tls_security_level = may smtpd_tls_auth_only = no smtpd_tls_key_file = /etc/postfix/postfix-ssl.key smtpd_tls_cert_file = /etc/postfix/postfix-ssl.crt smtpd_tls_session_cache_database = btree:/etc/postfix/tls_smtpd_scache smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes Nous allons maintenant générer les clés nécessaires au bon fonctionnement de TLS : cd /etc/postfix openssl genrsa -out postfix-ssl.key 1024 Il est important de **NE PAS ENTRER DE MOT DE PASSE** à cette étape, sans quoi Postfix sera incapable de lire la clé et ne pourra pas accepter de transaction TLS. openssl req -new -key postfix-ssl.key -out postfix-ssl.csr openssl x509 -req -days 3650 -in postfix-ssl.csr -signkey postfix-ssl.key -out postfix-ssl.crt chmod 0600 postfix-ssl.* ==== mysql_relay_domains_maps.cf ==== Domaines pour lesquels notre Postfix va relayer les messages ; ici, il s'agira des domaines pour lesquels notre serveur agit en tant que MX de secours. user = **** password = **** hosts = 192.168.1.2 dbname = mail query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '1' ==== mysql_virtual_domains_maps.cf ==== Domaines mails virtuels user = **** password = **** hosts = 192.168.1.2 dbname = mail query = SELECT domain FROM domain WHERE domain='%s' ==== mysql_virtual_mailbox_limit_maps.cf ==== Table des quotas user = **** password = **** hosts = 192.168.1.2 dbname = mail query = SELECT quota FROM mailbox WHERE username='%s' ==== mysql_virtual_alias_maps.cf ==== Table des alias user = **** password = **** hosts = 192.168.1.2 dbname = mail query = SELECT goto FROM alias WHERE address='%s' AND active = 1 ==== mysql_virtual_mailbox_maps.cf ==== Table des comptes mail user = **** password = **** hosts = 192.168.1.2 dbname = mail query = SELECT maildir FROM mailbox WHERE username='%s' AND active = 1 ===== Dovecot POP/IMAP et SASL ===== Comme nous l'avons dit plus haut, Dovecot fournira à nos clients de quoi récupérer leurs messages via POP ou IMAP, de façon sécurisée. Il permettra aussi aux clients de s'identifier lors de l'envoi de mails via Postfix, en fournissant le mécanisme SASL. Pour que tout cela fonctionne correctement, Dovecot a besoin d'accéder aux mêmes tables que Postfix. C'est ce que nous allons configurer. ==== dovecot.conf ==== Fichier de configuration principal de Dovecot. Nous avons ici ajouté les workarounds pour des bugs connus dans les clients mails les plus répandus, la configuration spécifique à notre serveur, et les réglages SSL. Le reste est conforme aux réglages par défaut de Dovecot. Le mécanisme d'identification choisi est ''plain''. Les autres méthodes (chiffrées) ne sont pas toutes bien supportées par les clients mails, et le choix de plusieurs méthodes nous forcerait à stocker les mots de passe en clair dans la base (pas souhaitable du tout !). Cela dit, le mécanisme ''plain'' cesse d'être un problème de sécurité dès lors que l'on utilise SSL pour chiffrer la communication. C'est donc ce que nous allons faire :) protocols = imap pop3 imaps pop3s disable_plaintext_auth = no mail_location = maildir:/var/spool/vmail/%u/ mmap_disable=yes mail_access_groups = users verbose_proctitle = yes first_valid_uid = 1001 first_valid_gid = 1001 protocol imap { imap_client_workarounds = delay-newmail outlook-idle netscape-eoh tb-extra-mailbox-sep } protocol pop3 { pop3_uidl_format = %08Xu%08Xv } auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@ auth_debug = no auth_verbose = yes ssl_cert_file = /usr/local/ssl/mail.gplmail.org.pem ssl_key_file = /usr/local/ssl/mail.gplmail.org.pem ssl_ca_file = /usr/local/ssl/mail.gplmail.org.pem auth default { mechanisms = plain passdb sql { args = /etc/dovecot/dovecot-sql.conf } userdb sql { args = /etc/dovecot/dovecot-sql.conf } } Si le certificat que vous utilisez n'est pas signé par une CA reconnue par le logiciel mail client, vos utilisateurs auront probablement à acquitter certains avertissements. ==== dovecot-sql.conf ==== C'est ici que l'on "explique" à Dovecot comment vérifier les noms d'utilisateur et mots de passe, tant pour ses besoins propres que pour Postfix/SASL. Comme expliqué précédemment, nous ne voulons pas stocker les mots de passe en clair dans la base de données. Nous avons donc choisi le schéma de stockage MD5-CRYPT, qui est supporté par l'interface de gestion PostfixAdmin. driver = mysql default_pass_scheme = MD5-CRYPT # Database options connect = host=localhost dbname=mail user=**** password=**** # Variante pour l'utilisation de socket (pas de communication réseau) # connect = host=/var/run/mysqld/mysqld.sock dbname=mail user=**** password=**** password_query = SELECT password FROM mailbox WHERE username = '%u' AND active = '1' user_query = SELECT maildir, 1001 AS uid, 1001 AS gid FROM mailbox WHERE username = '%u' AND active = '1' ===== MySQL, backend de stockage ===== Nous avons décidé de stocker tous les paramètres des comptes mails dans une base MySQL. Encore faut-il que MySQL nous y autorise. Pour ce faire, c'est assez simple. Avant tout, il faut initialiser la base où MySQL stocke ses propres données : /usr/bin/mysql_install_db Ceci fait, lancez votre serveur MySQL (''/etc/init.d/mysql start'') puis créez la table et l'utilisateur idoines : mysql -u root -p create database mail; GRANT ALL PRIVILEGES ON mail.* TO postfix@localhost IDENTIFIED BY 'MotDePasse'; flush privileges; Encore une fois, libre à vous de choisir un autre nom d'utilisateur, ou de spécifier autre chose que ''localhost'' si votre base MySQL et votre Dovecot ne résident pas sur la même machine. ===== LightTPD ===== Lighty ne requiert pas de configuration particulière dans notre cas. Cependant, comme la sécurité doit rester une préoccupation constante, il serait judicieux de chiffrer l'accès à notre PostfixAdmin, afin d'éviter que les mots de passe ne circulent en clair. Modifiez /etc/lighttpd/lighttpd.conf : # {{{ mod_ssl # see ssl.txt # ssl.engine = "enable" ssl.pemfile = "server.pem" # }}} Avec cette modifications, toutes les pages servies par Lighty seront accessibles **UNIQUEMENT** en SSL. Dans notre cas, c'est parfait. Si toutefois vous envisagez d'étendre l'usage de Lighty, il vous faudra certainement établir un paramétrage plus fin. ===== Au niveau de l'OS ===== Avant de passer au paramétrage de PostfixAdmin, il nous faut créer le répertoire qui servira à abriter les comptes mails. Voici ce qu'il faut faire, en tant que root : mkdir /home/vmail chown 1001: /home/vmail ===== PostfixAdmin ===== Le fichier de configuration de PostfixAdmin est par défaut ''/var/www/localhost/htdocs/postfixadmin/config.inc.php''. Voici les paramètres nécessaires : $CONF['configured'] = true; $CONF['postfix_admin_url'] = ‘votredomaine.tld/postfixadmin’; // Connexion à la base de données $CONF['database_type'] = ‘mysqli’; $CONF['database_host'] = ‘localhost’; $CONF['database_user'] = ‘postfix’; $CONF['database_password'] = ‘MotDePasse’; $CONF['database_name'] = ‘mail’; $CONF['database_prefix'] = ”; // Adresse email de l'administrateur $CONF['admin_email'] = ‘postmaster@votredomaine.tld’; // Alias créés par défaut pour chaque domaine $CONF['default_aliases'] = array ( ‘abuse’ => ‘abuse@votredomaine.tld’, ‘hostmaster’ => ‘hostmaster@votredomaine.tld’, ‘postmaster’ => ‘postmaster@votredomaine.tld’, ‘webmaster’ => ‘webmaster@votredomaine.tld’ ); // Ceci permet d'obtenir une structure /domain/user dans votre répertoire /home/vmail créé plus haut $CONF['domain_path'] = ‘NO’; $CONF['domain_in_mailbox'] = ‘YES’; // Cryptage compatible avec Dovecot $CONF['encrypt'] = 'md5crypt'; Un petit mot sur le paramètre ''$[CONF]['default_aliases']''. Ce paramètre permet, lorsque vous ajoutez un domaine, de faire automatiquement pointer les adresses définies vers un domaine en particulier (ici ''votredomaine.tld''). Au minimum, vous **DEVEZ** avoir un compte ''postmaster'' valid pour **CHAQUE DOMAINE** ([[http://www.ietf.org/rfc/rfc1123.txt|RFC 1123]] section 5.2.7). Par conséquent, après la configuration de PostfixAdmin, vous **DEVEZ** créer le compte ''postmaster@votredomaine.tld'' afin que votredomaine.tld et tous les nouveaux domaines aient dès le départ un compte ''postmaster'' valide. ===== Sasl ===== Pour dire à saslauthd d'utiliser pam il suffit d'éditer le fichier saslauthd qui se trouve dans /etc/conf.d/saslauthd et de commenter la ligne : #SASLAUTHD_OPTS="${SASLAUTHD_OPTS} -a pam" et de rajouter a la fin de ce même fichier ces deux lignes ci : SASLAUTHD_OPTS="${SASLAUTH_MECH} -a rimap -r" SASLAUTHD_OPTS="${SASLAUTHD_OPTS} -O localhost" ===== Dernière étape ===== Si vous en êtes arrivés là, le plus dur est fait. Il reste maintenant à lancer les services et terminer la configuration de PostfixAdmin. MySQL a déjà dû être démarré, inutile de le relancer ici. /etc/init.d/postfix start /etc/init.d/dovecot start /etc/init.d/lighttpd start Un petit coup d'oeil à ''/var/log/messages'' permet de s'assurer que les services ont bien démarré : postfix/postfix-script[14481]: starting the Postfix mail system postfix/master[14482]: daemon started -- version 2.5.5, configuration /etc/postfix dovecot: Dovecot v1.1.1 starting up dovecot: auth-worker(default): mysql: Connected to /var/run/mysqld/mysqld.sock (mail) Il ne vous reste plus qu'à vous rendre à l'adresse ''https://votredomaine.tld/postfixadmin/setup.php''. Le script vérifiera l'état de votre installation, et si tout est correct vous allez créer un compte administrateur. Entrez votre adresse email et un mot de passe, et validez. Une fois le compte administrateur ajouté, vous devez supprimer le fichier ''setup.php'' ou empêcher que l'on puisse y accéder : cd /var/www/localhost/htdocs/postfixadmin mv setup.php setup.php.disabled Vous pouvez maintenant aller à l'adresse ''http://votredomaine.tld/postfixadmin/'' et entrer votre login administrateur fraîchement créé pour commencer à administrer vos domaines mail ! ===== Pour plus tard ===== Ce paragraphe contient des infos qui ne sont pas encore à leur place .... ==== auth smtp pam_mysql /etc/pam.d/smtp (pas pour le moment en prod) ==== # File autogenerated by pamd_mimic in pam eclass #auth include system-auth #account include system-auth auth required pam_mysql.so user=**** passwd=**** host=127.0.0.1 db=mail table=mailbox usercolumn=username passwdcolumn=password crypt=1 auth required pam_nologin.so auth required pam_env.so account sufficient pam_mysql.so user=**** passwd=**** host=127.0.0.1 db=mail table=mailbox usercolumn=username passwdcolumn=password crypt=1 account required pam_unix.so ==== Mise a jour de l'antivirus regulierement ==== ajoutez ceci au crontab de root. 33 */2 * * * /usr/bin/freshclam --quiet ==== master.cf (pour gerer l'antispam) ==== # # Postfix master process configuration file. For details on the format # of the file, see the master(5) manual page (command: "man 5 master"). # # ========================================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) # ========================================================================== smtp inet n - n - - smtpd submission inet n - n - - smtpd # -o smtpd_enforce_tls=yes # -o smtpd_sasl_auth_enable=yes # -o smtpd_client_restrictions=permit_sasl_authenticated,reject smtpd inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes # -o smtpd_client_restrictions=permit_sasl_authenticated,reject #628 inet n - n - - qmqpd pickup fifo n - n 60 1 pickup cleanup unix n - n - 0 cleanup qmgr fifo n - n 300 1 qmgr #qmgr fifo n - n 300 1 oqmgr tlsmgr unix - - n 1000? 1 tlsmgr rewrite unix - - n - - trivial-rewrite bounce unix - - n - 0 bounce defer unix - - n - 0 bounce trace unix - - n - 0 bounce verify unix - - n - 1 verify flush unix n - n 1000? 0 flush proxymap unix - - n - - proxymap smtp unix - - n - - smtp # When relaying mail as backup MX, disable fallback_relay to avoid MX loops relay unix - - n - - smtp -o fallback_relay= # -o smtp_helo_timeout=5 -o smtp_connect_timeout=5 showq unix n - n - - showq error unix - - n - - error retry unix - - n - - error discard unix - - n - - discard local unix - n n - - local virtual unix - n n - - virtual lmtp unix - - n - - lmtp anvil unix - - n - 1 anvil scache unix - - n - 1 scache maildrop unix - n n - - pipe flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient} # amavisd (sur gn1) smtp-amavis unix - - y - 8 smtp -o smtp_data_done_timeout=1200 -o disable_dns_lookups=yes -o smtp_send_xforward_command=yes 81.93.248.68:10025 inet n - y - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks=128.0.0.0/8,192.168.1.0/24,81.93.248.0/24 -o strict_rfc821_envelopes=yes ==== /etc/postfix/sasl/smtpd.conf ==== Uniquement si l'on utilise cyrus-sasl pwcheck_method: saslauthd mech_list: plain login allow_plaintext: true auxprop_plugin: mysql sql_hostnames: 192.168.1.2 sql_user: **** sql_passwd: **** sql_database: mail sql_select: select password from users where email = '%u' ==== /etc/mail/spamassassin/local.cf ==== # This is the right place to customize your installation of SpamAssassin. # # See 'perldoc Mail::SpamAssassin::Conf' for details of what can be # tweaked. # # Only a small subset of options are listed below # ########################################################################### # Add *****SPAM***** to the Subject header of spam e-mails # rewrite_header Subject ***SPAM*** # Save spam messages as a message/rfc822 MIME attachment instead of # modifying the original message (0: off, 2: use text/plain instead) # # report_safe 1 # Set which networks or hosts are considered 'trusted' by your mail # server (i.e. not spammers) # trusted_networks 81.93.248. # Set file-locking method (flock is not safe over NFS, but is faster) # # lock_method flock # Set the threshold at which a message is considered spam (default: 5.0) # required_score 5.0 # Use Bayesian classifier (default: 1) # use_bayes 1 # Bayesian classifier auto-learning (default: 1) # bayes_auto_learn 1 bayes_auto_learn_threshold_nonspam 1 bayes_auto_learn_threshold_spam 14.00 # Set headers which may provide inappropriate cues to the Bayesian # classifier # # bayes_ignore_header X-Bogosity bayes_ignore_header X-Spam-Flag # bayes_ignore_header X-Spam-Status # Filtrage amavis content_filter = smtp-amavis:[127.0.0.1]:10024 # Greylisting via postgrey check_policy_service = inet:127.0.0.1:10030