====== Postfix ====== Liens: *http://nicolas.dutertry.com/ecran-noir/index.php?post/2009/03/19/Installation-de-Postfix-sur-Debian * DomU (non expliqué) * Dans un reseau local (donc derrière une box) * 64 bit * Debian/Squeeze * Postfix * Courier * PostGrey * SpamAssassin ===== Systeme ===== On va utiliser une machine virtualisé... avec peu de mémoire, peu de disk... ==== Fichiers altérés ==== **''/etc/hosts''** 127.0.0.1 localhost 127.0.1.1 mail.thierry-jaouen.local mail ==== Pas d'ipv6 ==== J'aime avoir 10 ans de retard :) **''/etc/sysctl.conf''** # Desactiver Ipv6 (sous Squeeze) net.ipv6.conf.all.disable_ipv6=1 net.ipv6.conf.all.autoconf=0 net.ipv6.conf.default.disable_ipv6=1 net.ipv6.conf.default.autoconf=0 Appliquer modif: # sysctl -p ==== Au 1er boot ==== # dpkg-reconfigure tzdata # dpkg-reconfigure locales ==== DNS ==== Il serait recommandé d'avoir un DNS super rapide... plus que bind ? Le mieux serait: **''dnscache-run''** Lien: http://www.djbdnsrocks.org/ Mais je ne le ferais pas. ===== smtp ===== Et donc, "postfix" ! ==== introduction ==== # cat /etc/mailname tjaouen.fr # cat /etc/aliases postmaster: root root: # aptitude install postfix Et eventuellement: # aptitude install mailutils Ca peut être utile... ==== simple ==== Editer le fichier **''/etc/postfix/main.cf''**, et avoir au moins: ... myhostname = mail.thierry-jaouen.local alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = tjaouen.fr, thierry-jaouen.fr, mail.thierry-jaouen.local, localhost relayhost = [smtp.live-free-box.fr] #mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mynetworks = 127.0.0.0/8 192.168.0.0/24 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all inet_protocols = ipv4 | :!: "relayhost=" devrait être vide, mais "gmail.com" n'aime pas mon serveur avec une IP de particulier... donc, j'utilise "smtp.live-free-box.fr" en relai | Test: $ echo TEST | mail -s TEST root@localhost Ca marche. Mais on n'a pas vraiment de comptes locaux ! ==== virtual ==== Préalable: installer "courier" pour avoir quelques outils supplémentaires: # aptitude install courier-pop courier-pop-ssl courier-imap-ssl courier-imap procmail | :!: En fait, c'est juste pour récuperer le script "maildirmake" ! lol | Donc, on va créer des comptes locaux... On aura 1 compte local = 1 ou plusieurs comptes mail. Dans **''/etc/skel''** créé un *squelette* de home, applicable pour tous. # cd /etc/skel Simple (trop?): # maildirmake . Plus complet : # maildirmake.courier Maildir && maildirmake.courier Maildir/.Sent && maildirmake.courier Maildir/.Trash && maildirmake.courier Maildir/.Drafts && maildirmake.courier Maildir/.Lists Dans **''/etc/adduser.conf''** , verifier qu'on a au moins: DSHELL=/bin/false USERGROUPS=no Ce qui est desactive l'accès au "shell" et met les comptes dans le groupe "user". # adduser toto # cd /etc/postfix Dans **''virtual''** : toto-pas-de-spam@tjaouen.fr toto Faire: # postmap virtual (ce qui créé un ".db") Ajouter dans **''main.cf''** : # Adresses virtuelles virtual_alias_maps = hash:/etc/postfix/virtual # Repertoire dans lequel on stocke le courrier /home/$user/ # le "/" de fin précise que l'on stocke en maildir home_mailbox = Maildir/ Et puis: # postfix reload Un test (en local ou a partir d'un autre poste, dont le smtp est ce serveur). $ echo TEST | mail -s TEST toto-pas-de-spam@tjaouen.fr Et voila: le mail est livré dans le "Maildir" du compte. ==== smtp tls ==== But: chiffrement TLS sur port SMTP 25 Lien: *http://wiki.debian.org/SSLkeys#GenericPEMGeneration # cd /etc/ssl/private # openssl genrsa 1024 > ssl-cert-smtp-thierry-jaouen-fr.key # cd /etc/ssl/certs # openssl req -new -key ../private/ssl-cert-smtp-thierry-jaouen-fr.key -x509 -days 3650 -out ssl-cert-smtp-thierry-jaouen-fr.pem Remplir: Country Name: FR State or Province: France Locality: Paris Organisation Name: Thierry Jaouen Organisation Unit Name: mail Common Name: smtp.thierry-jaouen.fr Email Address: postmaster_nospam@tjaouen.fr On peut changer la conf de postfix dans main.cf : # TLS parameters smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-smtp-thierry-jaouen-fr.pem smtpd_tls_key_file=/etc/ssl/private/ssl-cert-smtp-thierry-jaouen-fr.key smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache # /etc/init.d/postfix restart ===== pop et imap ===== Ce que ne gère pas "postfix" ! ==== pop3 ==== Port par defaut: 110 | :!: Aucun chiffrement | # cd /etc/courier # egrep -v "^(#|$)" pop3d PIDFILE=/var/run/courier/pop3d.pid MAXDAEMONS=40 MAXPERIP=10 POP3AUTH="LOGIN CRAM-MD5 CRAM-SHA1" POP3AUTH_ORIG="PLAIN LOGIN CRAM-MD5 CRAM-SHA1 CRAM-SHA256" POP3AUTH_TLS="" POP3AUTH_TLS_ORIG="LOGIN PLAIN" POP3_PROXY=0 PORT=110 ADDRESS=0.0.0.0 TCPDOPTS="-nodnslookup -noidentlookup" LOGGEROPTS="-name=pop3d" POP3DSTART=YES MAILDIRPATH=Maildir ==== imap ==== Port par defaut: 143 | :!: Aucun chiffrement | Aucune modification: # egrep -v "^(#|$)" imapd ADDRESS=0.0.0.0 PORT=143 MAXDAEMONS=40 MAXPERIP=20 PIDFILE=/var/run/courier/imapd.pid TCPDOPTS="-nodnslookup -noidentlookup" LOGGEROPTS="-name=imapd" IMAP_CAPABILITY="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE" IMAP_KEYWORDS=1 IMAP_ACL=1 IMAP_CAPABILITY_ORIG="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=CRAM-SHA256 IDLE" IMAP_PROXY=0 IMAP_PROXY_FOREIGN=0 IMAP_IDLE_TIMEOUT=60 IMAP_MAILBOX_SANITY_CHECK=1 IMAP_CAPABILITY_TLS="$IMAP_CAPABILITY AUTH=PLAIN" IMAP_CAPABILITY_TLS_ORIG="$IMAP_CAPABILITY_ORIG AUTH=PLAIN" IMAP_DISABLETHREADSORT=0 IMAP_CHECK_ALL_FOLDERS=0 IMAP_OBSOLETE_CLIENT=0 IMAP_UMASK=022 IMAP_ULIMITD=131072 IMAP_USELOCKS=1 IMAP_SHAREDINDEXFILE=/etc/courier/shared/index IMAP_ENHANCEDIDLE=0 IMAP_TRASHFOLDERNAME=Trash IMAP_EMPTYTRASH=Trash:7 IMAP_MOVE_EXPUNGE_TO_TRASH=0 SENDMAIL=/usr/sbin/sendmail HEADERFROM=X-IMAP-Sender IMAPDSTART=YES MAILDIRPATH=Maildir ==== pop3s ==== Port par defaut: 995 # egrep -v "^(#|$)" pop3d-ssl SSLPORT=995 SSLADDRESS=0.0.0.0 SSLPIDFILE=/var/run/courier/pop3d-ssl.pid SSLLOGGEROPTS="-name=pop3d-ssl" POP3DSSLSTART=YES POP3_STARTTLS=YES POP3_TLS_REQUIRED=0 COURIERTLS=/usr/bin/couriertls TLS_STARTTLS_PROTOCOL=TLS1 TLS_KX_LIST=ALL TLS_COMPRESSION=ALL TLS_CERTS=X509 TLS_CERTFILE=/etc/courier/ssl-key-pop3-tjaouen-fr.pem TLS_TRUSTCERTS=/etc/ssl/certs TLS_VERIFYPEER=NONE TLS_CACHEFILE=/var/lib/courier/couriersslcache TLS_CACHESIZE=524288 MAILDIRPATH=Maildir Je ne touche a rien de **''pop3d.cnf''**. # cd /etc/ssl/private # openssl genrsa 1024 > ssl-cert-pop3-tjaouen-fr.key # cd /etc/ssl/certs # openssl req -new -key ../private/ssl-cert-pop3-tjaouen-fr.key -x509 -days 3650 -out ssl-cert-pop3-tjaouen-fr.pem … fournir les champs … Exemple: ... Country Name (2 letter code) [AU]:FR State or Province Name (full name) [Some-State]: Locality Name (eg, city) []:Paris Organization Name (eg, company) [Internet Widgits Pty Ltd]:Thierry JAOUEN Organizational Unit Name (eg, section) []:mail Common Name (eg, YOUR name) []:pop.thierry-jaouen.fr Email Address []:postmaster@tjaouen.fr et puis: # openssl gendh >> ssl-cert-pop3-tjaouen-fr.pem et puis, on va là ou son les certificats “courier” : # cd /etc/courier … on va tout mettre dans un seul fichier ”.pem” : # cp /etc/ssl/private/ssl-cert-pop3-tjaouen-fr.key ssl-key-pop3-tjaouen-fr.pem # cat /etc/ssl/certs/ssl-cert-pop3-tjaouen-fr.pem >> ssl-key-pop3-tjaouen-fr.pem # chmod 0600 ssl-key-pop3-tjaouen-fr.pem # chown root: ssl-key-pop3-tjaouen-fr.pem Dans le fichier /etc/courier/pop3-ssl : ... # TJ ------------- #TLS_CERTFILE=/etc/courier/pop3d.pem TLS_CERTFILE=/etc/courier/ssl-key-pop3-tjaouen-fr.pem # ---------------- Et puis: /etc/init.d/courier-pop-ssl restart On peut arreter le daemon "pop3" : trop hasardeux de laisser un service sans chiffrement. === DISABLE pop3 === # vi /etc/courier/pop3d # TJ ------------ #POP3DSTART=YES POP3DSTART=NO # --------------- # /etc/init.d/courier-pop stop Voila ==== imaps ==== Faire comme pour le "pop" (en adaptant les noms de fichiers bien sur!) ==== problemes ==== === filesystem ... === Lien: http://www.tutorialnut.com/index.php/2010/05/18/quick-fix-filesystem-notification-initialization-error-contact-your-mail-administrator-check-for-configuration-errors-with-the-famgamin-library/ Thunderbird dit: Filesystem notification initialization error -- contact your mail administrator (check for configuration errors with the FAM/Gamin library) Voir le lien ci-dessus. ===== SMTP authentifié ===== But: servir de relay mail, uniquement si l'envoyeur est authentifié. Liens: *http://www.oqube.com/services/system/postfix.html *http://www.lxtreme.nl/index.pl/docs/linux/dovecot_postfix_pam#configuringsasl2 *http://wiki.auf.org/wikiteki/Postfix/Authentification Avec Cyrius SASL... ==== Installer ==== # aptitude install sasl2-bin On voit : ... To enable saslauthd, edit /etc/default/saslauthd and set START=yes (warning). ... D'apres la doc : **''/usr/share/doc/sasl2-bin/README.Debian.gz''** On utilise un postfix "chrooter" ? (je suppose que oui) * Donc il faut creer une socket "mux" dans son environnement "chroot" * faire bien ca en en causant avec "dpkg-statoverride" * ajouter le user "postfix" dans le groupe "sasl" En pratique:\\ Pour mettre la socket saslauthd dans le chroot Postfix, editer **''/etc/default/saslauthd''** et fixer **''OPTIONS''** comme cela (vous pouvez omettre -c): OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd" Et aussi, mettre/modifier: # TJ ----------- #START=no START=yes # -------------- "To set the run directory using dpkg-statoverride, run this command as root" : # dpkg-statoverride --add root sasl 710 /var/spool/postfix/var/run/saslauthd (J'ai aussi vu: ''dpkg-statoverride --force --update --add root sasl 755 /var/spool/postfix/var/run/saslauthd'' mais pas dans la doc du package) Et pour finir, ajouter le user Postfix au groupe sasl : # adduser postfix sasl Les lib sasl sont là: /usr/lib/sasl2/ ... et c'est bien. Par defaut, on a dans la conf: # postconf -d | grep smtpd_sasl smtpd_sasl_auth_enable = no smtpd_sasl_authenticated_header = no smtpd_sasl_exceptions_networks = smtpd_sasl_local_domain = smtpd_sasl_path = smtpd smtpd_sasl_security_options = noanonymous smtpd_sasl_tls_security_options = $smtpd_sasl_security_options smtpd_sasl_type = cyrus et c'est globalement bien (sauf que c'est encore disable), et notamment: smtpd_sasl_path = smtpd smtpd_sasl_security_options = noanonymous smtpd_sasl_type = cyrus La conf du daemon "sasl" doit être dans : /etc/postfix/sasl/smtpd.conf ... ce qui est en adéquation avec ça: # postconf -d | grep smtpd_sasl_path smtpd_sasl_path = smtpd Donc, dans **''/etc/postfix/sasl/smtpd.conf''** on a : pwcheck_method: saslauthd saslauthd_path: /var/run/saslauthd/mux mech_list: login plain | :!: le parametre "saslauthd_path" est relatif au chroot. | | :!: faire pointer "saslauthd_path" sur la socket "mux" !!! (et non pas le répertoire! grrr...) | Et enfin, enfin : # /etc/init.d/saslauthd start (parce que le daemon n'avait pas encore demarré ...) Curieusement: nul besoin de creer "var/run/saslauthd" dans "/var/spool/postfix" ... ca doit être fait pas "saslauthd" (bah oui banane!) ==== Tester ==== # testsaslauthd -u -p -f /var/spool/postfix/var/run/saslauthd/mux Si Ok: 0: OK "Success." Sinon: 0: NO "authentication failed" | :!: Eviter de créer un compte **''test''** avec le mot de passe **''test''** (ou autres evidences) .\\ En moins de 24h, ce compte sera exploité par des intrus !!! (Expérience vécu! lol) | ==== Postfix ==== Pour la configuration de Postfix... Par defaut, Postfix est prêt a causer avec "Cyrius" (on la vu plus haut): c'est bien. Bug avec certains clients Outlook: ( lien: http://www.postfix.org/SASL_README.html ) . Dans ce cas, prévoir d'ajouter dans **''/etc/postfix/main.cf''** : broken_sasl_auth_clients = yes ... ce que je fais, puisque dixit la doc: ca ne casse rien pour les autres clients. Mais surtout, il faut activer le SASL dans **''/etc/postfix/main.cf''** : ############################ # SASL # smtp authentifié ############################ smtp_sasl_auth_enable = no smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = $mydomain unknown_local_recipient_reject_code = 450 smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination broken_sasl_auth_clients = yes ... et dans aussi : # avec SASL devient: smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated Installer les modules qui vont bien: # aptitude install libsasl2-modules Et enfin: # postfix reload Sinon: Oups: ca marche pas ! ... ns postfix/smtpd[9916]: warning: xsasl_cyrus_server_get_mechanism_list: no applicable SASL mechanisms ... ns postfix/smtpd[9916]: fatal: no SASL authentication mechanisms On test vite: $ telnet 0 25 On tape: EHLO titi.localdomain On devrait voir la ligne: ... 250-AUTH PLAIN LOGIN ... ... ainsi que **''250-AUTH=PLAIN LOGIN''** , si on a appliqué le **''broken_sasl_auth_clients = yes''** vu plus haut. Si ca ne marche toujours pas: ... ns postfix/smtpd[4367]: warning: SASL authentication failure: cannot connect to saslauthd server: Permission denied Verifier que **''saslauthd_path''** (dans **''sasl/smtpd.conf''**) pointe bien sur la socker "mux", que les droits sont corrects, et que "postfix" est dans le groupe "sasl". Quand ca marche: ... ns postfix/smtpd[6880]: 8EE724FF1D: client=milf94-7-xxxxx.livebox.net[xxxxxx], sasl_method=PLAIN, sasl_username=xxxxx@tjaouen.fr ===== spam ===== FIXME ==== postgrey ==== Lien: http://www.system-linux.eu/index.php?post/2010/03/31/postgrey-liste-pour-Postfix Mais je ne le ferais pas, parce que mon serveur mail est tout petit... ==== spamassassin ==== === installer === # aptitude install spamassassin (ce qui installe aussi "spamc" en passant) === spamc === "spamc" devra etre executé en un équivalent de "nobody", et avec une home. On va donc faire: # adduser spamc-nobody --system --ingroup nogroup --disabled-login Verifions: # id spamc-nobody uid=103(spamc-nobody) gid=65534(nogroup) groupes=65534(nogroup) Le répertoire **''/home/spamc-nobody''** pourra servir par la suite a d'autres fins. Dans les logs, cette avertissement: Mar 12 00:13:10 mailmachine spamc[8725]: skipped message, greater than max message size (512000 bytes) On peut augmenter la limite en creant, ou modifiant le fichier: **''/etc/spamassassin/spamc.conf''** # TJ --------------------- -s 1024000 # ------------------------ === spamassassin === Activer le daemon dans **''/etc/default/spamassassin''** ... # Change to one to enable spamd # TJ ----------- #ENABLED=0 ENABLED=1 # -------------- ... # TJ ----------- #OPTIONS="--create-prefs --max-children 5 --helper-home-dir" OPTIONS="--create-prefs --max-children 5 --helper-home-dir --ipv4only" # -------------- ... et puis: # /etc/init.d/spamassassin start | :!: le répertoire **'' /home/spamc-nobody/.spamassassin/''** se peuple... | === postfix === Modifier le fichier **''/etc/postfix/master.cf''** pour avoir: # TJ ------------ spamassassin unix - n n - - pipe user=spamc-nobody argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient} smtp inet n - - - - smtpd -o content_filter=spamassassin -o smtpd_client_connection_count_limit=60 -o smtpd_authorized_xforward_hosts=127.0.0.0/8 # --------------- # TJ ---------- #smtp inet n - - - - smtpd # ------------- ... sans oublier de mettre en commentaire la ligne ci-dessus. | :!: Ne pas oublier \\ Source: http://wiki.apache.org/spamassassin/IntegratedSpamdInPostfix | Dans **''main.cf''** ajouter une ligne comme cela: spamassassin_destination_recipient_limit = 1 Sinon, lorsque **''spamc''** doit traiter beaucoup de destinataire, il va caler avec ce message: ... local configuration error. Command output: Exceeded max number of arguments (24) in /etc/spamassassin/spamc.conf La limite de "24" est en dur dans le source... et doit être vraissemblablement respecté. # postfix reload Dans les logs (entre autres choses): ... mail postfix/pipe[5345]: 739CB6C0DF: to=, relay=spamassassin, delay=2, delays=0.04/0.02/0/2, dsn=2.0.0, status=sent (delivered via spamassassin service) Dans les sources des messages passé par spamassassin: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.thierry-jaouen.local X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 | :!: A ce stade: il reste encore des trucs a personnaliser ! | ==== spamassassin configuration ==== === général === Personnaliser a minima: Dans **''/etc/spamassassin/local.cf''** : rewrite_header Subject [SPAM] report_safe 1 trusted_networks # Exemple: trusted_networks 192.168.0. required_score 5.0 ok_languages fr ok_locales all add_header all Checker-Version SpamAssassin _VERSION_ (_SUBVERSION_) sur _HOSTNAME_ Dans **''/etc/spamassassin/v310.pre''** : loadplugin Mail::SpamAssassin::Plugin::TextCat # /etc/init.d/spamassassin reload === bayes === Deja actif par defaut, voir dans **''/home/spamc-nobody/.spamassassin/''** et aussi dans les entêtes des mails. J'ai quand même ça dans **''local.cf''** : use_bayes 1 bayes_auto_learn 1 bayes_ignore_header X-Bogosity bayes_ignore_header X-Spam-Flag bayes_ignore_header X-Spam-Status === pizor === Lien: http://wiki.apache.org/spamassassin/UsingPyzor # aptitude install pyzor On va installer pyzor dans l'environnement "spamc-nobody" # su -s "/bin/bash" spamc-nobody $ pyzor discover Un repertoire ".pyzor" est créé dans **''/home/spamc-nobody/''** Dans **''/etc/spamassassin/local.cf''** : use_pyzor 1 Verifier aussi le chargement du module dans **''v310.pre''** ... Et enfin: # /etc/init.d/spamassassin reload | :!: Ca fonctionne , et ca ne laisse une trace dans les entetes que lorsque "pyzor" a trouvé quelque chose | Exemple: 1.4 PYZOR_CHECK Message listé par Pyzor, voir http://pyzor.sf.net/ === razor === Lien: http://wiki.apache.org/spamassassin/InstallingRazor?highlight=%28%28UsingRazor%29%29 # aptitude install razor Lien: http://www.raygibson.net/kb/amavis/ # su -s "/bin/bash" spamc-nobody $ razor-admin -d -create -home=/home/spamc-nobody/.razor $ razor-admin -d -register Dans local.cf , j'ai : ... # Razor use_razor2 1 score RAZOR2_CHECK 2.500 Verifier aussi le chargement du module dans **''v310.pre''** ... Et enfin: # /etc/init.d/spamassassin reload == LOG == Ajouter le traitement de la rotation des log de **''/home/spamc-nobody/.razor/razor-agent.log''** ... par exemple dans **''/etc/logrotate.d/razor''** : /var/log/razor-agent.log /home/spamc-nobody/.razor/razor-agent.log { weekly rotate 3 compress nomail notifempty missingok } === dcc === Il faut installer des trucs ! Pré-requis (squeeze?): # aptitude install libmilter-dev $ cd /usr/local/src/ $ wget http://www.rhyolite.com/anti-spam/dcc/source/dcc.tar.Z $ tar xvzf dcc.tar.Z $ cd dcc-1.3.131 $ ./configure $ make $ su # make install Le binaire **''cdcc''** se retrouve la: **''/usr/local/bin/cdcc''** Ainsi que: **''/usr/local/bin/dccproc''** Mais ca ne suffit pas ! Dans **''/etc/spamassassin/local.cf''** bien ajouter: use_dcc 1 add_header all DCC _DCCB_: _DCCR_ S'il n'y a pas "add_header", alors bien que le test soit fait, il n'est pas enregistré dans les entêtes. :!: En fait, ca ne semble pas fonctionner ! avec "spamd" il faut préciser le chemin vers "dccproc" : # which dccproc /usr/local/bin/dccproc et ajouter dans **''local.cf''** dcc_path /usr/local/bin/dccproc Source: http://wiki.apache.org/spamassassin/UsingDcc Ne pas oublier de d'avoir dans **''v310.pre''** : loadplugin Mail::SpamAssassin::Plugin::DCC # /etc/init.d/spamassassin reload un petit test montre dans les entête mails: X-Spam-DCC: dcc1.aftenposten.no: mail 1215; Body=1 Fuz1=1 Fuz2=1 Ca marche ! == LOG == Si vous avez un serveur mail fortement sollicité, vous aurez sans doute le repertoire **''/var/dcc/log''** remplit de log (et autres?). Il faut executer chaque jour le script: /var/dcc/libexec/cron-dccd Ainsi, dans le cron, ajouter par exemple: 15 2 * * * /var/dcc/libexec/cron-dccd === language === Un peu trop sévere pour les langues etrangeres... Donc editer le fichier "local.cf" et mettre: # TextCat score UNWANTED_LANGUAGE_BODY 0.500 ==== ClamAV ou ClamSMTP ==== === Installer === Lien: http://www.moroblog.info/Securiser-Postfix-avec-Amavis-et.html Clamav et postfix: http://www.debian-administration.org/articles/259 # aptitude install clamsmtp clamav-freshclam Oups ?\\ Attention : le répertoire personnel « /var/spool/clamsmtp » que vous avez indiqué n'est pas accessible : Aucun fichier ou répertoire de ce type Lien: http://www.ubuntuupdates.org/packages/show/172206 Ca n'a pas d'incidence par la suite. Oups 2 ? LibClamAV Warning: ************************************************** LibClamAV Warning: *** The virus database is older than 7 days! *** LibClamAV Warning: *** Please update it as soon as possible. *** LibClamAV Warning: ************************************************** lol? === Postfix === A savoir: la conf par defaut de "ClamSMTP" dit:\\ **''clamsmtp''** ecoute sur le port 10026 et renvoi le mail traité par le port 10025. Ce qu'on peut bien croire en voyant ça: # netstat -anp | grep clam tcp 0 0 127.0.0.1:10026 0.0.0.0:* LISTEN 2140/clamsmtpd Dans **''/etc/postfix/main.cf''** ajouter: # TJ ------------ # clamav via clamsmtp # source: /usr/share/doc/clamsmtp/postfix.html content_filter = antivirus:127.0.0.1:10026 receive_override_options = no_address_mappings Dans **''/etc/postfix/master.cf''** faire les modifs: # TJ ------------ # ANTIVIRUS clamav # AV scan filter (used by content_filter) # (renommer "antivirus") antivirus unix - - n - 32 smtp -o smtp_send_xforward_command=yes # For injecting mail back into postfix from the filter 127.0.0.1:10025 inet n - n - - smtpd -o content_filter= -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks -o smtpd_helo_restrictions= -o smtpd_client_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks_style=host -o smtpd_authorized_xforward_hosts=127.0.0.0/8 # postfix reload On n'a bien "master" (de Postfix) qui ecoute le port 10025: # netstat -anp | egrep "^tcp.*master" tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 23620/master tcp 0 0 127.0.0.1:10025 0.0.0.0:* LISTEN 23620/master === Test === Test avec ce [[http://www.eicar.org/download/eicar_com.zip|fichier]] en piece jointe… (Ce n'est pas un virus, mais le fichier va faire réagir l'antivirus comme si il en était un.) Test entre 2 comptes locaux. Dans les logs: Jun 7 13:00:47 mail postfix/cleanup[2177]: B253E6C0F4: message-id=<4DEE04C6.8010405@tjaouen.fr> Jun 7 13:00:47 mail postfix/qmgr[2164]: B253E6C0F4: from=, size=1654, nrcpt=1 (queue active) Jun 7 13:00:47 mail clamsmtpd: 100000: accepted connection from: 127.0.0.1 Jun 7 13:00:47 mail postfix/smtpd[2186]: connect from localhost[127.0.0.1] Jun 7 13:00:47 mail postfix/smtpd[2186]: DCA7F6C0F5: client=localhost[127.0.0.1] Jun 7 13:00:47 mail spamd[32545]: prefork: child states: II Jun 7 13:00:48 mail postfix/smtp[2184]: B253E6C0F4: to=, relay=127.0.0.1[127.0.0.1]:10026, delay=0.3, delays=0.03/0.06/0.11/0.11, dsn=2.0.0, status=sent (250 Virus Detected; Discarded Email) Jun 7 13:00:48 mail postfix/qmgr[2164]: B253E6C0F4: removed Jun 7 13:00:48 mail clamsmtpd: 100000: from=xxxxNOSPAM@tjaouen.fr, to=yyyyNOSPAM@tjaouen.fr, status=VIRUS:Eicar-Test-Signature Jun 7 13:00:48 mail postfix/smtpd[2186]: disconnect from localhost[127.0.0.1] ca marche aussi si le virus est envoyé de l'exterieur de notre reseau. ===== submission ===== Lien: http://wiki.auf.org/wikiteki/Postfix/Authentification L'avenir du port 25, c'est le port "submission". Il permet aux clients authentifiés de livrer des mails. Le port 25 reste en usage, mais seulement pour les clients non authentifiés, comme les clients/serveurs qui livrent les mails. Port 587 pour le smtp, mais qui est forcement crypté. Il ne faut pas oublier de faire passer les mails via spamassassin (et autres modules, si existant)... ==== Pour le serveur final ==== Dans **''master.cf''** , par exemple: # source: http://wiki.auf.org/wikiteki/Postfix/Authentification # TJ --------- # port 587 # source: http://wiki.auf.org/wikiteki/Postfix/Authentification submission inet n - - - - smtpd -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes On force l'encrytage et l'authentification "sasl". # postfix reload ==== Pour un "frontal" (en relay) ==== Dans **''master.cf''** , par exemple: # TJ --------- # port 587 # source: http://wiki.auf.org/wikiteki/Postfix/Authentification submission inet n - - - - smtpd -o smtpd_tls_security_level=encrypt -o content_filter=spamassassin -o smtpd_client_connection_count_limit=60 -o smtpd_authorized_xforward_hosts=127.0.0.0/8 # ------------ Remarqué le "smtpd_tls_security_level=encrypt" qui force le chiffrement. # postfix reload ===== Anti-Spam en sortie ===== Liens: *http://michauko.org/blog/2011/11/29/ralentir-le-debit-de-postfix-pour-wanadooorange/ ===== PostScreen ===== Seulement dispo a partir de postfix 2.8 (pour le wheezy ou backports?) , permet de filtrer les spammeurs dés le debut de la communication. Voir Linux Magazine de MARS 2012 , page 64 et suivante.