samedi19mai2007partonio LesystmesurlequelestbascedocumentestuneDEBIANTesting (Lenny).LaversionStable(Etch)ladatederdactionprsentequelques diffrencessurcertainspaquets(changementdenomlorsdesmontesde version:voirlesitedebianpourlesversionsquivalentes)maiscela nentraneaucunproblmedanslesfonctionnalits. Parsoucideclart,onadetaillchaqueactionleplusprcisementpossible,etce,pournepas rduireletutounesimplesuccessiondecommande.Maiscelapeutservelerparfoisfastidieuxde crerunfichierencopier/collerpuisdemodifierlemotdepasse.(surtoutquandilfautmodifier plusieursoccurences). Cestpourcelaquelontrouveraennoteenpieddepagelescommandesrapidespourexcuter certainesactionslongues. Unhyperlienavecunnumroestlesignedelexistencedunecommanderapide.Pratiquelorsque lonrefaitletuto(oupourlesfaineants!) CetutofonctionneaussisousUbuntumaiscertainspaquetsprsententdelgresdiffrences.On essaieradelesindiquersipossible. OnutiliseracommeserveurIMAPceluideCourier,maispourceuxquilesouhaitentnous prciseronslamarchesuivrepourinstallerDovecotlaplace. Onprendracommebasepourlexempleledomainestarbridge.orgetlehostnameduserveurde mailseraspike. Onmetlesystmejour: aptitude update aptitude dist-upgrade
Onvrifielesfichiers:
/etc/hostname:
spike.starbridge.org
/etc/hosts:
spike.starbridge.orglocalhost.localdomainlocalhostspike
127.0.0.1
CacheDNSLocal
LefonctionnementdunserveurdemailncessitelutilisationintensivederequtesDNS.Pourdes raisonsdeperformances,ilesttrsfortementconseilldinstalleruncacheDNSlocal. aptitude install bind9 LaconfigurationdebasesousDebianfournieunserveurcache(onpeutbiensurleconfigurerpour grersondomainelocalvoiresondomainepublicmaiscenestpaslesujetdecetarticle). Onmodifiele/etc/resolv.confpourpointerenlocal:
nameserver127.0.0.1 searchstarbridge.org
onrelanceleserveurDNS: /etc/init.d/bind9 restart Puisontestelarsolutionavecnslookupoudig Nslookup >server doitretourner: Default server: 127.0.0.1 Address: 127.0.0.1#53 puis: > yahoo.fr Larsolutiondoitsefairecorrectement.
PostfixetMysql
aptitude install postfix postfix-mysql mysql-client-5.0 mysqlserver-5.0 courier-imap courier-imap-ssl courier-authdaemon courier-authlib-mysql libsasl2-2 libsasl2-modules sasl2-bin libpam-mysql openssl ntp fam tmpreaper Dautrepaquetsvontsinstallerenmmetemps.LancienMTAexim4seradsintall. Pourinstallerdovecotlaplacedecourierremplacercourierimapetcourierimapsslpar dovecotimapd
Note:pourlesquestionsdelinstalleurDebian:
courierbase:Fautilcrerlesrpertoiresncessairesladministrationweb=NON. postfixconfiguration:SITEINTERNET.Pourleresteonrpondpardfaut.
Oninstalleapache+php5pourgrerplustardletoutaveclinterfacepostfixadmin. aptitude install apache2 libapache2-mod-php5 php5-mysql Note:IlestfortementconseilldinstallerleSSLavecapachepourscuriserleschanges.Cette configurationseradtaillplusloinlorsdelinstallationdepostfixadmin. Pourceuxquileprfre,onpeuttoutdesuiteinstallerphpmyadminpoureffectuerltapesuivante. (onnedtaillerapascetteinstallation,endehorsduscopedecedocument) OnpassedonclacrationdelabasePostfix: Note:Silonamisunpasswordlorsdelinstallationdupaquetsmysql,ilfautsauterlapremire commandecidessousetexcuterdirectementlaseconde. mysqladmin -u root password '*****' mysqladmin -u root --password='*****' create postfix Crationdeluserpostfix: $ mysql -u root -p Enter password: GRANT ALL PRIVILEGES ON postfix.* TO "postfix"@"localhost" IDENTIFIED BY '******'; Oncrelestablessuivantesdanslabasepostfix:
USEpostfix; CREATETABLEadmin( usernamevarchar(255)NOTNULLdefault'', passwordvarchar(255)NOTNULLdefault'', createddatetimeNOTNULLdefault'0000000000:00:00', modifieddatetimeNOTNULLdefault'0000000000:00:00', activetinyint(1)NOTNULLdefault'1', PRIMARYKEY(username) )TYPE=MyISAMCOMMENT='PostfixAdminVirtualAdmins'; ##########Tablestructurefortablealias########################## CREATETABLEalias( addressvarchar(255)NOTNULLdefault'', gototextNOTNULL, domainvarchar(255)NOTNULLdefault'', createddatetimeNOTNULLdefault'0000000000:00:00', modifieddatetimeNOTNULLdefault'0000000000:00:00', activetinyint(1)NOTNULLdefault'1', PRIMARYKEY(address) )TYPE=MyISAMCOMMENT='PostfixAdminVirtualAliases';
############Tablestructurefortabledomain##################### CREATETABLEdomain( domainvarchar(255)NOTNULLdefault'', descriptionvarchar(255)NOTNULLdefault'', aliasesint(10)NOTNULLdefault'0', mailboxesint(10)NOTNULLdefault'0', maxquotaint(10)NOTNULLdefault'0', quotaint(10)NOTNULLdefault'0', transportvarchar(255)defaultNULL, backupmxtinyint(1)NOTNULLdefault'0', createddatetimeNOTNULLdefault'0000000000:00:00', modifieddatetimeNOTNULLdefault'0000000000:00:00', activetinyint(1)NOTNULLdefault'1', PRIMARYKEY(domain) )TYPE=MyISAMCOMMENT='PostfixAdminVirtualDomains'; ##########Tablestructurefortabledomain_admins################ CREATETABLEdomain_admins( usernamevarchar(255)NOTNULLdefault'', domainvarchar(255)NOTNULLdefault'', createddatetimeNOTNULLdefault'0000000000:00:00', activetinyint(1)NOTNULLdefault'1', KEYusername(username) )TYPE=MyISAMCOMMENT='PostfixAdminDomainAdmins'; ############Tablestructurefortablelog######################## CREATETABLElog( timestampdatetimeNOTNULLdefault'0000000000:00:00', usernamevarchar(255)NOTNULLdefault'', domainvarchar(255)NOTNULLdefault'', actionvarchar(255)NOTNULLdefault'', datavarchar(255)NOTNULLdefault'', KEYtimestamp(timestamp) )TYPE=MyISAMCOMMENT='PostfixAdminLog'; ##########Tablestructurefortablemailbox####################### CREATETABLEmailbox( usernamevarchar(255)NOTNULLdefault'', passwordvarchar(255)NOTNULLdefault'', namevarchar(255)NOTNULLdefault'', maildirvarchar(255)NOTNULLdefault'', quotavarchar(20)NOTNULLdefault'0', domainvarchar(255)NOTNULLdefault'', createddatetimeNOTNULLdefault'0000000000:00:00', modifieddatetimeNOTNULLdefault'0000000000:00:00', activetinyint(1)NOTNULLdefault'1', PRIMARYKEY(username) )TYPE=MyISAMCOMMENT='PostfixAdminVirtualMailboxes';
############Tablestructurefortablevacation##################### CREATETABLEvacation( emailvarchar(255)NOTNULLdefault'', subjectvarchar(255)NOTNULLdefault'', bodytextNOTNULL, cachetextNOTNULL, domainvarchar(255)NOTNULLdefault'', createddatetimeNOTNULLdefault'0000000000:00:00', activetinyint(4)NOTNULLdefault'1', PRIMARYKEY(email) )ENGINE=InnoDBDEFAULTCHARSET=utf8COLLATE=utf8_general_ciTYPE=InnoDBCOMMENT='PostfixAdminVirtualVacation'; #############vacation_notificationtable####################### CREATETABLEvacation_notification( on_vacationvarchar(255)NOTNULL, notifiedvarchar(255)NOTNULL, notified_attimestampNOTNULLdefaultnow(), CONSTRAINTvacation_notification_pkeyPRIMARYKEY(on_vacation,notified), FOREIGNKEY(on_vacation)REFERENCESvacation(email)ONDELETECASCADE )ENGINE=InnoDBDEFAULTCHARSET=utf8COLLATE=utf8_general_ciTYPE=InnoDBCOMMENT='PostfixAdminVirtualVacation Notifications';
INSERTINTOdomain(domain,description)VALUES('starbridge.org','TestDomain'); INSERTINTOalias(address,goto,domain)VALUES('user@starbridge.org','user@starbridge.org','starbridge.org'); INSERTINTOalias(address,goto,domain)VALUES('admin@starbridge.org','admin@starbridge.org','starbridge.org'); INSERTINTOalias(address,goto,domain)VALUES('alias@starbridge.org','user@starbridge.org','starbridge.org'); INSERTINTOalias(address,goto,domain)VALUES('root@starbridge.org','admin@starbridge.org','starbridge.org'); INSERTINTOalias(address,goto,domain)VALUES('postmaster@starbridge.org','admin@starbridge.org','starbridge.org'); INSERTINTOmailbox(username,password,name,maildir,domain)VALUES ('user@starbridge.org','$1$caea3837$gPafod/Do/8Jj5M9HehhM.','MailboxUser','user@starbridge.org/','starbridge.org'); INSERTINTOmailbox(username,password,name,maildir,domain)VALUES ('admin@starbridge.org','$1$caea3837$gPafod/Do/8Jj5M9HehhM.','MailboxAdmin','admin@starbridge.org/','starbridge.org'); INSERTINTOdomain_admins(username,domain,active)VALUES('admin@starbridge.org','ALL','1'); INSERTINTO`admin`(`username`,`password`,`created`,`modified`,`active`)VALUES ('admin@starbridge.org','$1$caea3837$gPafod/Do/8Jj5M9HehhM.','0000000000:00:00','0000000000:00:00',1);
Evidemmentonmodifiestarbridge.orgparsondomaine. Explications:Seules3tablessontncessairesPostfix.Leresteestpourlinterfacepostfixadmin queloninstalleraplustard. Lepassword(MD5)est"secret"($1$caea3837$gPafod/Do/8Jj5M9HehhM.) LepremierINSERTpermetPostfixdesavoirquecedomaineestvirtueletquildoitdonclegrer. Le3meINSERTestunaliasvirtuelpointantversunuserdelatablemailbox.Cetaliasverslui mmeserautilisparpostfixadmin. le4meINSERTestluiunsimplealiasvirtuel. Le7meINSERTestuncompte(boiteemail)virtuel,quiutiliseunmotdepasseencryptenMD5. LesdeuxderniersINSERTpermettentdecrerlesuperadministrateurquelonutiliseraplustard dansPostfixadmin.
ParamtragedePostfix
Note:onremarqueraquelonlaissePostfixchroot(plussecure)etquelonutiliseledaemon proxypourcommuniqueraveclesocketdemysql. Onremplacetoutle/etc/postfix/main.cfparlecontenucidessous:
smtpd_banner=$myhostnameESMTP$mail_name(Debian/GNU) biff=no append_dot_mydomain=no myhostname=spike.starbridge.org alias_maps=hash:/etc/aliases alias_database=hash:/etc/aliases myorigin=$mydomain mydestination=$myhostname,localhost.$mydomain,localhost mynetworks=127.0.0.0/8 recipient_delimiter=+ home_mailbox=Maildir/ notify_classes=2bounce,bounce,delay,policy,protocol,resource,software smtpd_helo_required=yes strict_rfc821_envelopes=yes virtual_alias_maps=proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf virtual_gid_maps=static:20001 virtual_mailbox_base=/home/virtual virtual_mailbox_domains=proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf virtual_mailbox_maps=proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf virtual_minimum_uid=20001 virtual_uid_maps=static:20001 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 message_size_limit=50240000 smtpd_recipient_restrictions= permit_mynetworks, reject_unauth_destination, permit smtpd_data_restrictions= reject_unauth_pipelining, permit
Onmodifiele/etc/postfix/master.cfcommecidessous:
#Postfixmasterprocessconfigurationfile.Fordetailsontheformat #ofthefile,seethemaster(5)manualpage(command:"man5master"). #========================================================================== #servicetypeprivateunprivchrootwakeupmaxproccommand+args #(yes)(yes)(yes)(never)(100) #========================================================================== smtpinetnsmtpd 587 inet n smtpd osmtpd_tls_security_level=encrypt osmtpd_sasl_auth_enable=yes osmtpd_etrn_restrictions=reject osmtpd_client_restrictions=permit_sasl_authenticated,reject #smtpsinetnsmtpd #osmtpd_tls_wrappermode=yes #osmtpd_sasl_auth_enable=yes #osmtpd_client_restrictions=permit_sasl_authenticated,reject #628inetnqmqpd pickupfifon601pickup oreceive_override_options=no_header_body_checks ocontent_filter= cleanupunixn0cleanup qmgrfifonn3001qmgr #qmgrfifon3001oqmgr tlsmgrunix1000?1tlsmgr rewriteunixtrivialrewrite bounceunix0bounce deferunix0bounce traceunix0bounce verifyunix1verify flushunixn1000?0flush proxymapunixnproxymap proxywriteunixn1proxymap smtpunixsmtp #WhenrelayingmailasbackupMX,disablefallback_relaytoavoidMXloops relayunixsmtp ofallback_relay= #osmtp_helo_timeout=5osmtp_connect_timeout=5 showqunixnshowq
errorunixerror retryunixerror discardunixdiscard localunixnnlocal virtualunixnnvirtual lmtpunixlmtp anvilunix1anvil scacheunix1scache # #==================================================================== #InterfacestononPostfixsoftware.Besuretoexaminethemanual #pagesofthenonPostfixsoftwaretofindoutwhatoptionsitwants. # #ManyofthefollowingservicesusethePostfixpipe(8)delivery #agent.Seethepipe(8)manpageforinformationabout${recipient} #andothermessageenvelopeoptions. #==================================================================== # #maildrop.SeethePostfixMAILDROP_READMEfilefordetails. #Alsospecifyinmain.cf:maildrop_destination_recipient_limit=1 # maildropunixnnpipe flags=DRhuuser=vmailargv=/usr/bin/maildropd${recipient} # #SeethePostfixUUCP_READMEfileforconfigurationdetails. # uucpunixnnpipe flags=Fqhuuser=uucpargv=uuxrnza$sender$nexthop!rmail($recipient) # #Otherexternaldeliverymethods. # ifmailunixnnpipe flags=Fuser=ftnargv=/usr/lib/ifmail/ifmailr$nexthop($recipient) bsmtpunixnnpipe flags=Fq.user=bsmtpargv=/usr/lib/bsmtp/bsmtpt$nexthopf$sender$recipient scalemailbackendunixnn2pipe flags=Ruser=scalemailargv=/usr/lib/scalemail/bin/scalemailstore${nexthop}${user}${extension} mailmanunixnnpipe flags=FRuser=listargv=/usr/lib/mailman/bin/postfixtomailman.py ${nexthop}${user}
Oncrelegroupeetleuservmailavecluidetgid20001,ainsiquelerpertoiredesmails: groupadd -g 20001 vmail useradd -g vmail -u 20001 vmail -d /home/virtual -m Onscurise: chown -R vmail: /home/virtual chmod 770 /home/virtual OncrelesfichiersdappeldestablesparPostfix: vi /etc/postfix/mysql_virtual_alias_maps.cf etoncolle:
user=postfix password=**** hosts=localhost dbname=postfix query=SELECTgotoFROMaliasWHEREaddress='%s'andactive='1'
vi /etc/postfix/mysql_virtual_domains_maps.cf
vi /etc/postfix/mysql_virtual_mailbox_maps.cf
user=postfix password=**** hosts=localhost dbname=postfix query=SELECTmaildirFROMmailboxWHEREusername='%s'andactive='1'
Maildrop
NousavonsbesoindunMDA(maildeliveryagent)pourlivrerlesmailsdanslesbotes. LeservicedelivraisonVirtualdePostfixneconvientpastotalementpournotreusage. EneffetnousallonsavoirbesoindecapacitdefiltragesurleMDAainsiquelapossibilitdegrer lesquotas,cequenesaitpasfaireVirtual. Procmailesttrsbienpourlefiltrage,maisnesupportepaslesusers/domainesvirtuelscarilnesait pascommuniqueravecunebasededonnes. UnemthoderpanduepourlesquotasestlapplicationdupatchVDAsurPostfix,optionquenous nechoisironspaspourdesraisonsdefiabilit. Maildroprpondluinosbesoins: Ilsoccuperadoncdelalivraisondesmailsdansleshome. aptitude install bzip2 gcc libpcre3-dev libpcre++-dev courierauthlib-dev g++ libtool libmysqlclient15-dev make libssl-dev Oninstalledabordlesoutilspourlacompilation: Ontlchargelessources: cd ~ wget http://switch.dl.sourceforge.net/sourceforge/courier/maildrop-2.0. 4.tar.bz2 tar jxf maildrop-2.0.4.tar.bz2 cd maildrop-2.0.4 ./configure -prefix=/usr/local/courier --withetcdir=directory=/etc/courier --enable-maildrop-uid=20001 --enable-maildrop-gid=20001 --enable-maildirquota --without-db make && make install Notes: PourEtch,lepaquetlibpcre++devnexistepasetaptitudelesignale:Nepasentenircompte Le./configureestparticulirementlongetdonnelimpressiondetournerenboucle.Ceciest normal,ilfautattendrelafinduprocessus. Alafindumakeinstallaveclaversion2.0.4,ilsepeutquelonobtienneunmessagederreursur undescomposants.MemesicelanempcherapasMaildropdefonctionneronpeutrglerle problmecommececi: cd makedat ln -s makedatprog.c makedatprog cd .. make install Onappliquelespermissionscorrectementsurlesexcutablesetsur/var/run/courier/authdaemaon: chown vmail: /usr/local/courier/bin/* chown vmail:daemon /var/run/courier/authdaemon/ chmod 750 /var/run/courier/authdaemon/ Note:PourUbuntuilfautmodifierenpluslefichier/etc/init.d/courierauthdaemonetremplacer
devraitdonner: maildrop 2.0.4 Copyright 1998-2005 Double Precision, Inc. Courier Authentication Library extension enabled. Maildir quota extension enabled. This program is distributed under the terms of the GNU General Public License. See COPYING for additional information. Onvoitquelauthentificationestactive,ainsiquelagestiondesquotasquenousconfigurerons plustard. Onditelefichier/etc/courier/authdaemonrcpourremplacerauthmodulelist="authpam"par authmodulelist="authpamauthmysql": cd /etc/courier mv authdaemonrc authdaemonrc-orig wget http://www.starbridge.org/spip/doc/Procmail/courier/authdaemonrc chown daemon: authdaemonrc chmod 660 authdaemonrc
Onexcutelescommandessuivantespourcrerlefichierauthmysqlrc(tototantvotrepassword): cd /etc/courier mv authmysqlrc authmysqlrc-orig wget http://www.starbridge.org/spip/doc/Procmail/courier/authmysqlrc chown daemon: authmysqlrc chmod 660 authmysqlrc sed -i 's/\*\*\*\*\*/toto/g' authmysqlrc
Onscurisecefichier: chown vmail: /home/virtual/.mailfilter chmod 600 /home/virtual/.mailfilter onredmarreledaemondauthentificationetPostfix /etc/init.d/courier-authdaemon restart /etc/init.d/postfix restart
Ontestecettepremireconfigurationdebase: authtest user@starbridge.org doitdonner: Authentication succeeded. Authenticated: user@starbridge.org (uid 20001, gid 20001) Home Directory: /home/virtual Maildir: user@starbridge.org/ Quota: 0S Encrypted Password: $1$caea3837$gPafod/Do/8Jj5M9HehhM. Cleartext Password: (none) Options: (none) Encasderreur,ilestfortprobablequelefichierauthmysqlrcsoitencause. Regarderleslogs:/var/log/mail.log. Puis: /usr/local/courier/bin/maildrop -V 7 -d user@starbridge.org celadevraitdonner: maildrop: authlib: groupid=20001 maildrop: authlib: userid=20001 maildrop: authlib: logname=user@starbridge.org, home=/home/virtual, mail=user@starbridge.org/ maildrop: Changing to /home/virtual
CTRL+Cpoursortir Onvrifiequelonpeutenvoyerunmailuser@starbridge.org: mail user@starbridge.org note:ilfauttaperun.(unpointseulsurlaligne)pourterminerlemessage. Onregardeleslogspourleserreurs.Sitoutafonctionnondevraittrouverdansuneligne: ...status=sent (delivered via maildrop service)...
Puisontesteendirectsurleport25: (cequilfauttaperestprcdde>,lerestecestleretourduserveur):
>telnetlocalhost25 220[127.0.0.1]ESMTPPostfix >HELOlocalhost 250[127.0.0.1] >MAILFROM:<> 2502.1.0SenderOK >RCPTTO:<user@starbridge.org> 2502.1.5OK >DATA 354Enddatawith<CR><LF>.<CR><LF> >. 2502.0.0Ok:queuedas079474CE44 >QUIT 2212.0.0Bye Connectionclosedbyforeignhost
Onregardeleslogspourvrifier.
Exempledefichier.mailfilterpersonnel:
#eliminelesmessagesenprovenancedel'adressecidessous if(\ /^From:.*actu@b\.linternaute\.com/:h\ ) exception{ to"/dev/null" } #####annonces##### if(\ /^From:.*alerte@avendrealouer\.fr/:h\ ||/^From:.*mailing_pap@pap\.fr/:h\ ||/^Sender:.*alertemail@pap\.fr/:h\ ) exception{ to"${DEFAULT}/.annonces/" }
Note:Pourlacrationassisteetautonome(parlesutilisateurseuxmmes)desfichiersmailfilter personnelsonpourrautiliserunmoduleduWebmailhorde. LarticlesurlinstallationduWebmailtraiteendtaildecepoint. Biensuronappliqueralesmmesdroitsquepourlefichier.mailfiltergnralcefichier personnel: chown vmail: /home/virtual/user@starbridge.org/.mailfilter chmod 600 /home/virtual/user@starbridge.org/.mailfilter
CourierImap
Note:PourintalleretconfigurerDovecotsionachoisiceluici,suivrecelienDovecotetnepas executerlesinstructionsdecettesection. Onadjconfigurlapartielaplusimportantedecourierimap,cestdirelauthentification mysql,danslapartiesurMaildrop. OnvasimplementajouterunefonctionnalittrsutileCourierIMAP: leENHANCEDIDLE Celapermetderafrachirentempsrellabotederceptiondansleclientdemessageriesans besoindelaplanifierouautre. Unnouveaumessageapparatrainstantanmentdansleclient. Attention:
ilfautqueleclientdemessageriesupportecettefonction.CestlecasdOutlooketde Thunderbird. PourfonctionnercettefonctionutiliseFAM,leFileAlterationMonitor. Surdesserveursavecdetrsnombreusesbotesemailcelapeuttreunproblmepourles performances. Ilfautdoncactivercettefonctionenconnaissancedecauseetsurveillerlachargeaufildu temps. DeplusFAMatendanceplantersurdetrsgrossesmanipulationssurlesbotes(avec plusieursmilliersdemail). Danscecasdefigure,CourierImapcontinuerafonctionnersansproblme(maissansle tempsrelbiensur)etdesmessagesderreursapparatrontdansmail.logjusquau redmarragedeFAM. IlpeutdonctrejudicieuxdesurveillerleprocessFAMetdelerelancerautomatiquement encasdarrt.(unmoduleWebminfaitcelatrscorrectement)
Pouractiverlafonction,recherchercesparamtresdans/etc/courier/imapdetmettreleurvaleur1 (IMAP_USELOCKSdevraitdjtresur1pardfaut)
IMAP_USELOCKS=1 IMAP_ENHANCEDIDLE=1
Onredmarreensuiteledaemondauthentificationetcourierimap: /etc/init.d/courier-authdaemon restart /etc/init.d/courier-imap restart Ontestelaconnectiondepuisunclientmail(outlook,thunderbird..) Nepasoublierdespcifieruser@starbridge.orgcommelogindelaboiteetnonusertout seul. Onrappellequelepasswordestsecret. ParamtrerleSMTPsansauthentificationpourlemoment. Ondoitpouvoirconsulterlesmailenvoyslocalementtoutlheure. Ontesteunenvoidemaildepuisleclientsursapropreadresse.Onvrifieleslogsetlarrivedu nouveaumaildanslabote. Notes: PardfautIMAPestconfigurpourdmarreraumaximum40serveursIMAP.Celapermettra 40utilisateursdeseconnectersimultanment.(MAXDAEMONS=40)Pardfault,illimite galement20lenombredutilisateurssimultansdepuislammeIP.(MAXPERIP=20) Onmodifieradonccesparamtresenfonctiondunombredeboitesemail. /etc/courier/imapdcontientdesparamtresgnrauxdeconfigurationquisappliqueront galementimapssl.(parexempleleENHANCEDIDLE).Cependantlenombrededaemonsetde connectionsparIPseconfigureindpendammentdans/etc/courier/imapdet/etc/courier/imapdssl.
AuthentificationSASL
PourlemomentPostfixutiliseladresseIPduclientquiseconnectepourdterminersiilpeut relayerounonlesmails(ouaccepterseulementdesmailspourlesuserslocaux). Pourpouvoirutilisersonserveurmaildepuislextrieur(casdeslaptops)ondoitpermettreune authentificationscurise: Oncrelefichier/etc/pam.d/smtp: vi /etc/pam.d/smtp etoncollelecontenusuivant:
auth requiredpam_mysql.souser=postfixpasswd=*****host=127.0.0.1 db=postfixtable=mailboxusercolumn=usernamepasswdcolumn=password crypt=1md5=1 accountsufficientpam_mysql.souser=postfixpasswd=****** host=127.0.0.1db=postfixtable=mailboxusercolumn=username passwdcolumn=passwordcrypt=1md5=1
"*****"estlepassworddaccslatablePostfixparleuserpostfix
Onditele/etc/default/saslauthdcommececi(nepasmodifierlesautresparamtresdjprsents danslefichieroriginal):
START=yes MECHANISMS="pam" OPTIONS="crm/var/spool/postfix/var/run/saslauthd"
Oncrelerpertoiredusocketetonluidonnelesdroitsadapts: mkdir /var/spool/postfix/var/ mkdir /var/spool/postfix/var/run/ mkdir /var/spool/postfix/var/run/saslauthd chown -R root:sasl /var/spool/postfix/var/ chmod 710 /var/spool/postfix/var/run/saslauthd adduser postfix sasl Oncreunliensymboliqueaucaso: ln -s /var/spool/postfix/var/run/saslauthd /var/run/saslauthd
Onajoutececiau/etc/postfix/main.cf:
smtpd_sasl_auth_enable=yes smtpd_sasl_security_options=noanonymous smtpd_sasl_local_domain= broken_sasl_auth_clients=yes smtpd_sasl_authenticated_header=yes
Onajoutegalement"permit_sasl_authenticated"dans"smtpd_recipient_restrictions"pourvalider lesrestrictions(attentionbienplacerleparamtreexactementlendroitindiqu):
Ondite/etc/init.d/postfix,onrecherchelavariableFILESetonajouteetc/postfix/sasl/smtpd.conf laliste:
FILES="etc/localtime etc/servicesetc/resolv.confetc/hosts\etc/nsswitch.conf etc/nss_mdns.configetc/postfix/sasl/smtpd.conf"
OnvrifiequelesparamtressontbienpasssaudaemonSaslauthd: ps waux | grep saslauthd doitdonnerplusieurslignesaveccommeparamtres: /usr/sbin/saslauthd -a pam -c -r -m /var/spool/postfix/var/run/saslauthd -n 5 Note:CettesectionSASLetantsouventsujetteproblmelorsdelaconfiguration,ontrouveraici latotalitdescommandesalancerenunefoispourtoutconfigurer:
ActivationduTLS
Pourunserveurenproduction,ilseraitprfrabledutiliserunvritablecertificatfourniet signparuneautoritdecertificationdeconfiance.(payant). Onditelaconfigurationdesslpourpouvoirsignerdescertificatssur10ans,aulieud1anpar dfaut: vi /etc/ssl/openssl.cnfonchangelalignedefault_daysen
default_days=3650
OncreleCertificatRacine:
CertificateDetails: SerialNumber: 84:7c:ce:d2:f7:cf:df:6c Validity NotBefore:Nov1316:44:332007GMT NotAfter:Nov1216:44:332010GMT Subject: countryName=FR stateOrProvinceName=Paris organizationName=Starbridge commonName=starbridge.org emailAddress=tonio@starbridge.org X509v3extensions: X509v3SubjectKeyIdentifier: B9:04:A3:81:E5:5D:D6:82:72:F4:6E:0C:FB:3F:E2:62:1B:EF:B9:57 X509v3AuthorityKeyIdentifier: keyid:B9:04:A3:81:E5:5D:D6:82:72:F4:6E:0C:FB:3F:E2:62:1B:EF:B9:57 DirName:/C=FR/ST=Paris/O=Starbridge/CN=starbridge.org/emailAddress=tonio@starbridge.org serial:84:7C:CE:D2:F7:CF:DF:6C X509v3BasicConstraints: CA:TRUE CertificateistobecertifieduntilNov1216:44:332010GMT(1095days) Writeoutdatabasewith1newentries DataBaseUpdated
Cecertificatracinesertsignerlescertificats.Ilestlocalisdanslerpertoire/demoCA. Oncremaintenantuneclprivepourleserveurainsiquuncertificatpublicnonsign. mkdir ~/CERT cd ~/CERT openssl req -new -nodes -keyout starbridge-key.pem -out starbridge-req.pem -days 3650
etonentrelesparametrescommecidessous: Generatinga1024bitRSAprivatekey .............++++++ .............++++++ writingnewprivatekeyto'starbridgekey.pem' Youareabouttobeaskedtoenterinformationthatwillbeincorporated intoyourcertificaterequest. WhatyouareabouttoenteriswhatiscalledaDistinguishedNameoraDN. Therearequiteafewfieldsbutyoucanleavesomeblank Forsomefieldstherewillbeadefaultvalue, Ifyouenter'.',thefieldwillbeleftblank. CountryName(2lettercode)[AU]:FR StateorProvinceName(fullname)[SomeState]:Paris LocalityName(eg,city)[]:Paris OrganizationName(eg,company)[InternetWidgitsPtyLtd]:Starbridge OrganizationalUnitName(eg,section)[]: CommonName(eg,YOURname)[]:spike.starbridge.org EmailAddress[]:tonio@starbridge.org Pleaseenterthefollowing'extra'attributes tobesentwithyourcertificaterequest Achallengepassword[]: Anoptionalcompanyname[]:
Oncopiemaintenantlecertificatetlacldanspostfix: mkdir /etc/postfix/tls cp demoCA/cacert.pem CERT/starbridge-key.pem CERT/starbridgecert.pem /etc/postfix/tls/ chmod 644 /etc/postfix/tls/starbridge-cert.pem /etc/postfix/tls/cacert.pem chmod 400 /etc/postfix/tls/starbridge-key.pem chmod 400 ~/CERT/*
Onajoutececiau/etc/postfix/main.cf:
smtp_tls_CAfile=/etc/postfix/tls/cacert.pem smtp_tls_security_level=may smtp_tls_session_cache_database=btree:${data_directory}/smtp_tls_session_cache smtpd_tls_security_level=may smtpd_tls_auth_only=yes smtpd_tls_key_file=/etc/postfix/tls/starbridgekey.pem smtpd_tls_cert_file=/etc/postfix/tls/starbridgecert.pem smtpd_tls_CAfile=/etc/postfix/tls/cacert.pem smtpd_tls_loglevel=1 smtpd_tls_received_header=yes smtpd_tls_session_cache_database=btree:${data_directory}/smtpd_tls_session_cache tls_random_source=dev:/dev/urandom
Note:PourunPostfixinfrieurlaversion2.5(danslecadreduneinstallationdansEtch parexemple),ilfautmodifierles2paramtresbtree:$data_directory...parbtree: $queue_directory... OnredmarrePostfix: /etc/init.d/postfix restart OnvrifielefonctionnementdepuisunclientmailconfigurpourlauthentificationSASLsurun chiffrementTLSaveclesmmesidentifiantsquepourlaconnexionIMAP(nepasoublierle @starbridge.org). Note:silonainstallDovecotilfaudratesterleTLSltapesuivante Pourletypedauthentication,ilfautslectionner"enclair"(letermedpendduclientmail). CestlechiffragedelaconnexionparleTLSquiscuriseraletransfertdupassword. CestpourcelaquilnefautpasdissocierTLSetauthentification. Note:ladirectivesmtpd_tls_auth_only=yesimposelusageduneconnexionscurisepour lauthentificationSASL,cequilimiteraleserreursdeconfigurationdesutilisateurs.
IMAPDSSL: Note:sionachoisiDovecotsuivrecelien:Dovecotetnepassuivrecettesection: Maintenantquelonauncertificatsignonvaremplacerlecertificatpardfautdecourierimapssl parlenotre: cd ~/CERT cat starbridge-key.pem starbridge-cert.pem >certkey.pem cp certkey.pem starbridge-certkey.pem openssl gendh >> starbridge-certkey.pem chmod 400 ~/CERT/* cp starbridge-certkey.pem /etc/courier/ chmod 600 /etc/courier/starbridge-certkey.pem chown daemon /etc/courier/starbridge-certkey.pem Onditelefichierdeconfigurationdimapdssl: vi /etc/courier/imapd-ssl etonmodifielaligne:
TLS_CERTFILE=/etc/courier/imapd.pem
par
TLS_CERTFILE=/etc/courier/starbridgecertkey.pem
InstallationPostfixAdmin
Pourfaciliterlacrationdesusersetlagestiondesbotesetdescomptes,onutilisePostfixadmin. Ladernireversionestla2.1.0maiselleprsentedenombreuxbugs.Nousutiliseronslaversion SVN. ActivationduSSLdansApache LeSSLestindispensablepourscuriserleschanges,enparticulierlesmotsdepasseutilisateurs. OnactiveleSSLparlacommande: a2enmod ssl Puisoncrelevirtualhost: vi /etc/apache2/sites-available/ssl
Etoncolle:
NameVirtualHost*:443 <VirtualHost*:443> ServerAdminwebmaster@starbridge.org ServerNamewww.starbridge.org DocumentRoot/var/www/ <Directory/> OptionsFollowSymLinks AllowOverrideNone </Directory> <Directory/var/www/> OptionsIndexesFollowSymLinksMultiViews AllowOverrideAll Orderallow,deny allowfromall #Thisdirectiveallowsustohaveapache2'sdefaultstartpage #in/apache2default/,butstillhave/gototherightplace #CommentedoutforUbuntu #RedirectMatch^/$/apache2default/ </Directory>
ErrorLog/var/log/apache2/error.log
CustomLog/var/log/apache2/access.logcombined ServerSignatureOn
SSLEngineOn SSLCertificateFile/etc/apache2/ssl/starbridgecertkeywww.pem
SetEnvIfUserAgent".*MSIE.*"nokeepalivessluncleanshutdown </VirtualHost>
puisonactivelevirtualhost: a2ensite ssl Gnrationdescertificats: Ilestimportantdecreuncertificataveclememenomqueceluiutilispourlaconnection.Par exemplesionseconnecteauserveurwebparwww.starbridge.orgilfautcreruncertificatavecun CommonNameenwww.starbridge.org. Onpartduprincipequelonutilisewww.starbridge.org. Oncredoncuncertificatpublicnonsignetunecl,puisonlesigneavecleCA: cd ~/CERT openssl req -new -nodes -keyout starbridge-key-www.pem -out starbridge-req-www.pem -days 3650 OnentrelesinformationsenprenantsoindebienspecifierleCommonNameen www.starbridge.org.IlfautegalementrespecterlesinformationsentresdansleCAplustot. cd ~ openssl ca -out CERT/starbridge-cert-www.pem -infiles CERT/starbridge-req-www.pem chmod 400 ~/CERT/* cd CERT/ cat starbridge-key-www.pem starbridge-cert-www.pem >starbridgecertkey-www.pem mkdir /etc/apache2/ssl cp starbridge-certkey-www.pem /etc/apache2/ssl/ chmod 600 /etc/apache2/ssl/starbridge-certkey-www.pem chmod 400 ~/CERT/* OnredmarreApache:/etc/init.d/apache2 restart Ontestelaconnexionpar https://www.starbridge.org Lenavigateurvademanderlavalidationducertificatcarceluicinestpasreconnuparuneautorit deconfiance.Ceciestnormal(cestuncertificatselfsigned). Pourunserveurenproduction,ilseraitdoncprfrabledutiliserunvritablecertificat(payant).
aptitude install subversion cd /var/www svn -r 358 co https://postfixadmin.svn.sourceforge.net/svnroot/postfixadmin/trun k postfixadmin chown -R www-data: /var/www/postfixadmin cd postfixadmin chmod 640 *.php cd /var/www/postfixadmin/admin/ chmod 640 *.php cd /var/www/postfixadmin/images/ chmod 640 *.png cd /var/www/postfixadmin/languages/ chmod 640 *.lang cd /var/www/postfixadmin/templates/ chmod 640 *.php cd /var/www/postfixadmin/users/ chmod 640 *.php cd /var/www/postfixadmin/ onremplaceleconfig.inc.phppardfautparceluici: Note:Ilfautremplacertouteslesentresstarbridgedanscefichierparcellecorrespondantevotre domaine.(totoestlepasswordpourlabasesqlpostfixettoto.comvotredomaine): mv config.inc.php config.inc.php-orig wget http://www.starbridge.org/spip/doc/Procmail/config.inc.txt mv config.inc.txt config.inc.php sed -i "s/password'] = '\*\*\*\*\*'/password'] = 'toto'/" config.inc.php sed -i 's/www.starbridge.org/www.toto.com/g' config.inc.php sed -i 's/starbridge.org/toto.com/g' config.inc.php ]] Onscurisecefichier: chown www-data: /var/www/postfixadmin/config.inc.php chmod 640 config.inc.php
LagestiondesQuotas
Onlavu,onacompilmaildropaveclagestiondesquotasetonaparamtrdanslabaseSQLdes champspourlesgrer.Ilfautmaintenantlesparamtrer: Oncreunmessagedalertegnriquepourledpassementdequotas:(onpenseraladapterases besoinsmaisilfautetreprudentdanslamiseenformedufichier) mkdir /usr/local/courier/etc/ cd /usr/local/courier/etc/ wget http://www.starbridge.org/spip/doc/Procmail/usr/local/courier/etc/ quotawarnmsg chown -R vmail: /usr/local/courier/etc/ chmod 644 /usr/local/courier/etc/quotawarnmsg ln -s /usr/local/courier/etc/quotawarnmsg /usr/local/etc/
Antispam/Antivirus
ParametragedePostfix: Unegrandemajoritdesspamsnerespectentpaslesrglesdenvoidemail:HELOincorrect, MAILFROMdundomaineinconnu,etc,etc... Ilesttrsfortementconseilldeliredesdocumentssurcesujet,notammentlesRFCpourbien comprendrelefonctionnement. LapremirechosefaireestderenforcerPostfixpourquilsoitbeaucoupplusrestrictif. Pourcelaonvautiliserlessmtpd_recipient_restrictions. Onnedtaillerapasicilesactionsprcisesdechaquergle.(ladocumentationdePostfixesttrs prcisesurlesujetetlarticlesurlagestionduserveurdemailrevientsurtouslespointsenles dtaillant).
smtpd_recipient_restrictions= reject_non_fqdn_recipient, reject_unknown_sender_domain, reject_non_fqdn_sender, reject_unknown_recipient_domain, reject_invalid_helo_hostname, reject_unlisted_recipient, reject_unlisted_sender, permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_helo_hostname, reject_unauth_destination, check_client_accesshash:/etc/postfix/internal_networks, check_sender_accesshash:/etc/postfix/not_our_domain_as_sender, check_helo_accessproxy:mysql:/etc/postfix/mysqlhello.cf, check_sender_accessproxy:mysql:/etc/postfix/mysqlsender.cf, check_client_accessproxy:mysql:/etc/postfix/mysqlclient.cf, reject_rbl_clientlist.dsbl.org, reject_rbl_clientzen.spamhaus.org, permit
Oncrelefichier/etc/postfix/internal_networks:
Ensuiteoncrelefichier/etc/postfix/mysqlhello.cfquiappelleunetableSQL.
Oncreensuitelefichier/etc/postfix/mysqlsender.cf.
Oncrelefichier/etc/postfix/mysqlclient.cf.
vi /etc/postfix/mysql-client.cf Ilsertblacklisterouwhitelisterlesclientsparleurconnection(ip/domaine):
user=postfix password=***** hosts=localhost dbname=postfix query=SELECTaccessFROMpostfix_accessWHEREsource='%s'ANDtype='client'
Oncrelefichier/etc/postfix/mysqlsaslsendercheck.cf.
Onscurisecefichier:
Oncrelefichier/etc/postfix/our_domain_as_sender.
Oncreenfinlefichier/etc/postfix/not_our_domain_as_sender.
Oncrelestablesenquestion:
mysqlurootp usepostfix; CREATETABLE`postfix_hello`(`id`int(10)unsignedNOTNULL auto_increment,`source`varchar(128)NOTNULLdefault'',`access` varchar(128)NOTNULLdefault'',PRIMARYKEY(`id`) )ENGINE=MyISAMAUTO_INCREMENT=1DEFAULTCHARSET=latin1; INSERTINTO`postfix_hello`(`source`,`access`)VALUES ('starbridge.org','REJECTyouarenotme'); CREATETABLE`postfix_access`(`id`int(10)unsignedNOTNULL auto_increment,`source`varchar(128)NOTNULLdefault'',`access` varchar(128)NOTNULLdefault'',`type` enum('recipient','sender','client')NOTNULLdefault'sender',PRIMARY KEY(`id`) )ENGINE=MyISAMAUTO_INCREMENT=1DEFAULTCHARSET=latin1; INSERTINTO`postfix_access`(`source`,`access`,`type`)VALUES ('yahoo.com','OK','client'),('newsletter@lesechos.fr','554Spamnot toleratedhere','sender');
NotezbienleINSERTsurlatablepostfix_helloetlemodifierpourvotredomaine.
VrificationdesHeaders,duBodyetduTypeMimeparPostfix.
Postfixpeutvrifierlesmailsentrantstrssimplementenanalysantleheader,lebodyetletype mimedespicesjointes. Cetypedeblocageesttrsefficace,plusrapidequedelaisserfaireAmavisdouSA,maismanque desouplesse. Ilsavrecependanttrsefficacepourbloquerdestypesdefichiersparexemplesansquelemailne soitenvoyauserveurpuistrait(conomiedebandepassanteetdeCPU). Cependantunetropgrandequantitderglesetunforttraficauraitleffetinversesurles performances. Ilfautdoncutilisercesrglesavecprcaution. Oncrelesfichiersncessaires: cd /etc/postfix/ wget http://www.starbridge.org/spip/doc/Procmail/postfix/body_checks.cf wget http://www.starbridge.org/spip/doc/Procmail/postfix/header_checks. cf wget http://www.starbridge.org/spip/doc/Procmail/postfix/mime_headers_c hecks.cf
Onditele/etc/postfix/main.cfetonajouteleslignes:
header_checks=regexp:/etc/postfix/header_checks.cf body_checks=regexp:/etc/postfix/body_checks.cf mime_header_checks=regexp:/etc/postfix/mime_headers_checks.cf
InstallationAmavisd
oninstallelesprrequis: aptitude install libdb4.4-dev OnlanceCPANenconsole: perl -MCPAN -e shell Sicestlapremirefois,onrpondpardfautauxquestionsquilposepourlaconfigurationde linterface. PuisonmetjourCpanetoninstallelesmodules: install Bundle::CPAN reload cpan install install install install install install install install install install install install Archive::Zip Convert::TNEF Convert::UUlib Net::Server Time::HiRes Unix::Syslog BerkeleyDB Mail::Sendmail Email::Valid Mail::DKIM MIME::Charset MIME::EncWords
Oninstalleaussilessoftsncessaires(lesdecoders)siilsnesontpasdjinstalls: aptitude install file libcompress-bzip2-perl nomarch arc p7zipfull arj zoo lzop tnef pax cabextract
IlesttrsimportantgalementdinstallerRARdepuislesitederarlabs.Suivrelesinstructions dinstallationsurlesite. Tlchargerlessourceschezamavisd: cd ~ wget http://www.ijs.si/software/amavisd/amavisd-new-2.6.0.tar.gz tar xvzf amavisd-new-2.6.0.tar.gz cd amavisd-new-2.6.0 Crerleuseretlegroupeamavis: addgroup amavis adduser --disabled-password --home /var/amavis --ingroup amavis amavis
Note:Latailledeceslecteurstmpfsestmodifierselonlachargeduserveur,laconfigurationet biensurlaquantitdeRAMdisponible.Poursimplifier/var/amavis/tmpestdpendantdunombre dinstancesdamavisdetdelataillemaximaledunmessage.Lesparamtresmisicisontokpour5 instancesetunmessage_size_limitde10Mo,cequiestlargementsuffisantdanslaconfigpar dfautdamavisd(2instances) Puis: mount /var/amavis/tmp mount /var/amavis/db onvrifieparunmount -l Copierlexcutable: cp amavisd /usr/local/sbin/ chown root /usr/local/sbin/amavisd chmod 755 /usr/local/sbin/amavisd Copierlefichierdeconf: cd /etc/ wget http://www.starbridge.org/spip/doc/Procmail/amavisd/amavisd.conf chown root:amavis /etc/amavisd.conf chmod 640 /etc/amavisd.conf
127.0.0.1:10025inetnysmtpd ocontent_filter= olocal_recipient_maps= orelay_recipient_maps= osmtpd_restriction_classes= osmtpd_client_restrictions= osmtpd_helo_restrictions= osmtpd_sender_restrictions= osmtpd_recipient_restrictions=permit_mynetworks,reject osmtpd_data_restrictions=reject_unauth_pipelining osmtpd_end_of_data_restrictions= omynetworks=127.0.0.0/8 ostrict_rfc821_envelopes=yes osmtpd_error_sleep_time=0 osmtpd_soft_error_limit=1001 osmtpd_hard_error_limit=1000 osmtpd_client_connection_count_limit=0 osmtpd_client_connection_rate_limit=0 oreceive_override_options=no_address_mappings,no_header_body_checks,no_unknown_recipient_checks
etonmodifietoujoursdanslemaster.cflasectionsurleport587commececi:
587inetnsmtpd osmtpd_tls_security_level=encrypt osmtpd_sasl_auth_enable=yes osmtpd_etrn_restrictions=reject ocontent_filter=smtpamavis:[127.0.0.1]:10026 osmtpd_client_restrictions=permit_sasl_authenticated,reject
Relancerpostfix: postfix reload Surveillerleslogs: tail -f /var/log/mail.log Sitoutestok,lancernouveauamavisddebug /usr/local/sbin/amavisd debug ettaperenconsole: telnet 127.0.0.1 10024 Ildoitrpondre: Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. 220 [127.0.0.1] ESMTP amavisd-new service ready
quitpoursortir PareilpourtesterleretourdePostfix: telnet 127.0.0.1 10025 Ildoitrpondreuntrucdustyle: Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. 220 spike.starbridge.org ESMTP Postfix (Debian/GNU)
>telnetlocalhost10024 220[127.0.0.1]ESMTPamavisdnewserviceready >HELOlocalhost 250[127.0.0.1] >MAILFROM:<> 2502.1.0Sender<>OK >RCPTTO:<admin@starbridge.org> 2502.1.5Recipient<admin@starbridge.org>OK >DATA 354Enddatawith<CR><LF>.<CR><LF> >From:virustester >To:undisclosedrecipients:; >Subject:amavisdtestsimplenospamtestpattern >Thisisasimpletestmessagefromtheamavisdnewtestmessages. >. 2502.6.0Ok,id=3089702,fromMTA([127.0.0.1]:10025):2502.0.0Ok:queuedas079474CE44 >QUIT 2212.0.0[127.0.0.1]amavisdnewclosingtransmissionchannel
Lallerretourpostfix/amavisdfonctionnebien!
(onpeutarrterledebugdamavisdparunCTRL+C)
InstallationClamav
Prrequis: aptitude install zlib1g zlib1g-dev libgmpxx4ldbl libgmp3-dev Note:SousEtch,aptitudesignalequaucunpaquetnecorrespondlibgmpxx4ldbl.Cest normal,ilsagitdunpaquetLenny.Nepasentenircompte
Oncompiledepuislessources: cd ~ wget http://mesh.dl.sourceforge.net/sourceforge/clamav/clamav-0.93.tar. gz tar xvzf clamav-0.93.tar.gz cd clamav-0.93 ./configure --sysconfdir=/etc --with-user=amavis --withgroup=amavis --with-dbdir=/var/lib/clamav make make install ldconfig mkdir /var/run/clamav chown -R amavis: /var/run/clamav chmod -R 750 /var/run/clamav mkdir /var/lib/clamav chown -R amavis: /var/lib/clamav chmod -R 770 /var/lib/clamav
Onmetajourlesfichiersdeconfiguration: cd /etc mv clamd.conf clamd.conf.orig mv freshclam.conf freshclam.conf.orig wget http://www.starbridge.org/spip/doc/Procmail/clamd.conf wget http://www.starbridge.org/spip/doc/Procmail/freshclam.conf
Crer: mkdir /var/log/clamav chown -R amavis:amavis /var/log/clamav Crerunfichier/etc/init.d/clamd cd /etc/init.d/ wget http://www.starbridge.org/spip/doc/Procmail/clamd chmod 755 /etc/init.d/clamd update-rc.d clamd defaults
Onfaitlamisejourdelabasevirale: freshclam Onvrifiequelesfichierssoientbienprsentsdanslerpertoire: ls -la /var/lib/clamav Onlanceclamd: /etc/init.d/clamd start Etonvrifieleslogs: tail -f /var/log/clamav/clamd.log EtonvrifiebienqueClamtourne: ps aux | grep clam Ontestelefonctionnement(ledossier"test"estdanslerpertoireclamav0.93): cd /root/clamav-0.93/test/ clamdscan -l scan.txt clam-x.yz
clamavx.yzetantundesfichiersdetestprsentsdanslerpertoiretest InstallationdessignaturesadditionnellespourClam(dtectionduspam,phising...) Ilsagitdefichierssupplmentairesquelonplacedansledossier/var/lib/clamav aptitude install curl rsync mkdir /var/tmp/clamdb chown amavis: /var/tmp/clamdb chmod 770 /var/tmp/clamdb cd /usr/sbin wget http://www.starbridge.org/spip/doc/Procmail/usr/sbin/UpdateSaneSec urity.sh chmod 755 UpdateSaneSecurity.sh Onlancelescript: su -c '/usr/sbin/UpdateSaneSecurity.sh' amavis
Ondoittrouverlesfichierssuivantsenplusdesfichiersclassiques: MSRBL-Images.hdb MSRBL-SPAM.ndb phish.ndb phish.ndb.gz scam.ndb scam.ndb.gz Oncreunetachecronpourmettrejourcesfichiers: crontab -e -u amavis
5*/4***/usr/sbin/UpdateSaneSecurity.sh
InstallationdeClamdMonpourlasurveillancedudemonclam: installerlescriptdesurveillancefournidanslessourcesdeclam: cd /root/clamav-0.93/contrib/clamdmon tar xvzf clamdmon-1.0.tar.gz cd clamdmon-1.0 make make install Ondite/usr/local/sbin/clamdmon.shcommececi:
#!/bin/sh /usr/local/sbin/clamdmon p/var/run/clamav/clamd.ctl&&(killallclamd;sleep5; killall9clamd;sleep1;/usr/local/bin/freshclam;sleep1; /usr/local/sbin/clamd)
Spamassassin
OninstalleSAparCPAN perl -MCPAN -e shell o conf prerequisites_policy ask install HTML::Parser install LWP install IO::Zlib install Archive::Tar install DB_File install Net::SMTP install Net::DNS install Net::DNS::Resolver::Programmable install Error install NetAddr::IP install IP::Country::Fast install Mail::SPF install DBI install DBD::mysql force install Encode::Detect force install Mail::SpamAssassin
lock_method flock required_score4.3 rewrite_headerSubject*****SPAM***** report_safe0 clear_internal_networks clear_trusted_networks #trustednetworksdoitTOUJOURScontenirlesmemesentresque internal.Onajouteraeventuellementdesrseauxdeconfiancedansce paramtre. internal_networks82.239.58.13110.0.0/24192.168.1/24 trusted_networks82.239.58.13110.0.0/24192.168.1/24 use_bayes1 bayes_auto_expire0 bayes_store_moduleMail::SpamAssassin::BayesStore::MySQL bayes_sql_dsnDBI:mysql:spam:localhost bayes_sql_usernamespam bayes_sql_password***** bayes_sql_override_usernameamavis bayes_auto_learn1 bayes_auto_learn_threshold_nonspam0.1 bayes_auto_learn_threshold_spam7.0 #use_auto_whitelist0 auto_whitelist_factoryMail::SpamAssassin::SQLBasedAddrList user_awl_dsnDBI:mysql:spam:localhost user_awl_sql_usernamespam user_awl_sql_password***** skip_rbl_checks0 dns_availableyes ##OptionalScoreIncreases scoreBAYES_994.300 scoreBAYES_803.000 scoreMISSING_MIMEOLE0.5010.5010.2410.200 scoreBAYES_60002.5022.502 scoreNO_RELAYS3.2
SAfonctionnesur2typesdetests:
Heuristiques(ensembledergles) Bayesiens(apprentissageetstatistiques)
onimportelabasesql: wget http://starbridge.org/spip/doc/Procmail/spamassassin/bayes_awl.sql wget http://spamassassin.apache.org/gtube/gtube.txt mysql -u root -p spam < bayes_awl.sql
Oninitialiselabase: su amavis -c 'sa-learn -D --spam gtube.txt' Onpeutvrifieravecphpmyadminquelabasesestbienremplie. Pouramliorerlesperformances,onadsactivle"opportunistic(automatic)Bayesautoexpiry"en spcifiant"bayes_auto_expire0"dans/etc/mail/spamassassin/local.cf. Ilfautdonccrerunetachecronquotidiennepoureffectuerlexpiration: Uncrontabdeluseramavisferalaffaire: crontab -e -u amavis etonajoute
163***/usr/local/bin/salearnsyncforceexpire
OnaactivlAutoWhitelistdansSA.ContrairementaBayes,lAWLnapasdemcanisme dexpiration,quivitelabasedegrossirindefiniment.
MisejourdesRulesdeSAetajoutdesRulesSARE: OnvamettretoutdesuitejourlesrglesdeSAeteninstallerdenouvellesdepuislesitede SARE: OnlancelupdatedesrglesdeSA: sa-update -D Celaaurapoureffetdetlchargerlesrglesjour.Ellesserontinstallsdansundossierdiffrent desrglesdorigine:/var/lib/spamassassin/3.002004.(cequicorrespondlaversion3.2.4deSA) SAconsidreradsormaiscedossiercommeceluipardfaut. OnvrifiequetoutsoitOK: su -c "spamassassin -D --lint" amavis Ilnedoitpasilyavoirdemessagederreurlafindelexcution. OnprparelinstallationdesrulesSARE: cd /etc/mail/spamassassin/ wget http://daryl.dostech.ca/sa-update/sare/GPG.KEY sa-update --import GPG.KEY
Lesfichiersserontplacsdans/var/lib/spamassassin: ls -la /var/lib/spamassassin/3.002004/ OnvrifienouveauquetoutsoitOK: su -c "spamassassin -D --lint" amavis Pourunemisejourrgulire(1foisparjourmaximum)onpourracrerunetachecronen noubliantpasderelanceramavisdlafinduscript. Pourcela,oncreunfichiersaupdate.sh: cd /etc/ wget http://www.starbridge.org/spip/doc/Procmail/spamassassin/saupdate.sh chmod 755 /etc/sa-update.sh Onditelacrontab: crontab -e
etonajoutelaligne:
152***/etc/saupdate.sh
CompilationdesRulesets Depuislaversion3.2,SAestunpeupluslentdansletraitementdesmessages.Enrevancheune nouvellefonctionnalitestapparue:lacompilationdesrgles. Pourcellesquilepermettent,celaacclresensiblementletraitement.Pourcelailfautinstallerau pralablelepaquetre2c: aptitude install re2c onlanceensuitelacommande sa-compile -D
onvrifiequetoutsoitok: su -c 'spamassassin -D --lint' amavis Ilfautmaintenantplanifierunecompilationhebdomadairedesrgles. Oncreunfichier/etc/cron.weekly/sacompile cd /etc/cron.weekly/ wget http://www.starbridge.org/spip/doc/Procmail/spamassassin/sacompile chmod 755 /etc/cron.weekly/sa-compile
SAestprtetfonctionnel!!
IlfautmaintenantactiverSAdansamavisd: Onditeamavisd.confetoncommentelaligne: #@bypass_spam_checks_maps=(1); Ondmarreendebugsa: /usr/local/sbin/amavisd debug-sa ondoittrouverdanslalistececi: dbg: bayes: using username: amavis [30527] dbg: bayes: database connection established [30527] dbg: bayes: found bayes db version 3 [30527] dbg: bayes: Using userid: 1 [30527] dbg: bayes: not available for scanning, only 1 spam(s) in bayes DB < 200
Bayesnestpasencoredisponiblecarilnapasanalysassezdemailspourfonctionner.Ceciest normal. Onenvoieunmailetondoitvoirdansledebuglebonfonctionnement. OnarrteamavisdparunCTRL+C. PardfautAmavisdmetslesspamsenquarantaine,maiscenestpaslecomportementquenous dsirons. Leamavisd.conffournidanscetutointegrelesmodificationsncessaires. Pourinfosvoicilesparamtresmodifis: $sa_tag_level_deflt=9999.9;#addspaminfoheadersifat,orabovethatlevel $sa_tag2_level_deflt=4.3;#add'spamdetected'headersatthatlevel $sa_kill_level_deflt=9999.9;#triggersspamevasiveactions $sa_mail_body_size_limit=400*1024;#don'twastetimeonSAifmailislarger $sa_spam_subject_tag='***SPAM_SCORE_***'; $sa_spam_report_header=1; $final_spam_destiny=D_PASS;
Aveccettemodification,onditamavisddelaisserpasserlespammaisdeletagguerdansle headerdumail.LalimiteSpamestfixeunscorede4.3 OntraiteralemailplusloinparMaildrop. Oncreunfichier/etc/init.d/amavis: cd /etc/init.d/ wget http://www.starbridge.org/spip/doc/Procmail/init.d/amavis chmod 755 /etc/init.d/amavis update-rc.d amavis defaults
Ondite/home/virtual/.mailfilteretonlemodifiecommececi:
logfile "/home/virtual/.maildrop.log"`[d$DEFAULT]||(maildirmake$DEFAULT &&maildirmakefSpam$DEFAULT&&maildirmakef sentmail$DEFAULT&&maildirmakefSpamToLearn$DEFAULT &&maildirmakefSpamFalse$DEFAULT)` if(/^XSpamLevel:\*\*\*\*\*\*\*\*\*\*/) {log">XSpamtoohigh." exception{to/home/virtual/spamtrap@starbridge.org/} } if(/^XSpamFlag:YES/) {log">XSpamFlaged."to$HOME/$DEFAULT.Spam } `testr$HOME/$DEFAULT.mailfilter` if($RETURNCODE==0){log"(==)Including$HOME/$DEFAULT.mailfilter" exception{include$HOME/$DEFAULT.mailfilter}}
Oncredaborddeuxrpertoiresspciauxdetransit: mkdir chown chmod mkdir chown chmod /home/spamtrap amavis: /home/spamtrap 777 /home/spamtrap /home/hamtrap amavis: /home/hamtrap 777 /home/hamtrap
etonajoute(onchangelafrquencesincessaire):
303,10,15,22***/etc/salearn
Toutseraautomatique.Ilsuffiradindiquerauxutilisateursdedplacerlesemailsnondtects commeSpamdansledossierSpamToLearnetdecopierlesemaillgitimesdtectstortcomme SpamdansleDossierSpamFalse.Lescriptdplaceralorsdesonexcutiontouscesemailseten feralapprentissagesoitcommespamsoitcommeham(nonspam). Attention:TOUSlesmailsdpossdanslesdossiersSpamTolearnetSpamFalsesontdplacscest direquilserontEFFACESdecesdossiers. Parscuritonpeutconserverlesmailsdelaboitespamtrap(nonconsultablesparlesutilisateurs) uncertaintemps.Pourcelailsuffiradechangerles2premireslignesencopieaulieudun dplacement(cp).Onverraplusloinpourunscriptdenettoyagebassurlgedesfichiers. Onpeutgalementenleverle-Ddes2lignessalearnpourlimiterlasortieduscript(debug).Cron envoieunmaillexcutiondelacommande,contenantlasortie. ActivationdeClamdansAmavisd Lefichieramavisd.conffournidanscetutoestmodifipourneprendreenchargequelantivirus Clamav. Pourinfovoicilesparamtresmodifis(lafindufichier):
@av_scanners=( ####http://www.clamav.net/ ['ClamAVclamd', \&ask_daemon,["CONTSCAN{}\n","/var/run/clamav/clamd.ctl"], qr/\bOK$/,qr/\bFOUND$/, qr/^.*?:(?!InfectedArchive)(.*)FOUND$/], ); @av_scanners_backup=( ###http://www.clamav.net/backsupclamdorMail::ClamAV ['ClamAVclamscan','clamscan', "stdoutnosummaryrtempdir=$TEMPBASE{}", [0],qr/:.*\sFOUND$/,qr/^.*?:(?!InfectedArchive)(.*)FOUND$/], ); 1;#insureadefinedreturn
PouractiverClamoncommenteaudbutdufichier:
@bypass_virus_checks_maps=(1);
>telnet127.0.0.110024 Trying127.0.0.1... Connectedto127.0.0.1. Escapecharacteris'^]'. 220[127.0.0.1]ESMTPamavisdnewserviceready >MAILFROM:<test@example.com> 2502.1.0Sendertest@example.comOK >RCPTTO:<postmaster> 2502.1.5RecipientpostmasterOK >DATA 354Enddatawith<CR><LF>.<CR><LF> >Subject:test2virustestpattern > >X5O!P%@AP[4\PZX54(P^)7CC)7}$EICARSTANDARDANTIVIRUSTESTFILE!$H+H* >. >QUIT 2212.0.0[127.0.0.1](amavisd)closingtransmissionchannel Connectionclosedbyforeignhost.
Ondoitvoirdansleslogs: Blocked INFECTED (Eicar-Test-Signature) Onpeutaussitesterlenvoidunmailinfectdansunearchive(pourtesterletravailde dcompression)enrcuprantdesfichiersdetestsureicar.cometenlesenvoyantparemail. MaintenancedeClametdeSpamassassin: Ilfautpenserpurgerrgulirementlecontenudelaboitespamtrapetlaquarantainedeclam,cest direledossier/home/virtual/spamtrap@starbridge.org/new/.etle/var/virusmails. Pourcelaonpeututiliserunoutildugenretmpreaper. Ilseconfiguretrssimplementdans/etc/tmpreaper.conf Onmodifielalignesuivantecommececi:
TMPREAPER_DIRS='/tmp/./var/virusmails/./home/virtual/spamtrap@starbridge.org/new/.'
Dspam
BeaucoupconsidreDspamcommeunealternativeplusperformantedeSA. Jetrouvequilssontpluttcomplmentaires. Amavisdpermetdegrerles2enparallle. cd ~ wget http://dspam.nuclearelephant.com/sources/dspam-3.8.0.tar.gz tar xvzf dspam-3.8.0.tar.gz cd dspam-3.8.0 ./configure --with-dspam-home=/var/amavis/dspam --enablesignature-headers --without-delivery-agent --without-quarantineagent --with-storage-driver=mysql_drv --with-mysqlincludes=/usr/include/mysql make make install Crerlabasesql:
mysqlurootp createdatabasedspam; GRANTSELECT,INSERT,UPDATE,DELETEONdspam.*TO'dspam'@'localhost'IDENTIFIEDBY'******'; FLUSHPRIVILEGES; quit
Onimportelabasesql: mysql -u root -p dspam < /root/dspam-3.8.0/src/tools.mysql_drv/mysql_objects-4.1.sql Onmodifielefichierdeconfdspam.conforiginal(tototantvotrepassworddaccesalabasesql dspamquevousvenezdeparamtrer): cd /usr/local/etc/ mv dspam.conf dspam.conf-orig wget http://www.starbridge.org/spip/doc/Procmail/dspam.conf sed -i 's/\*\*\*\*\*\*/toto/g' dspam.conf
Modifierlesdroitssurlesexcutables(mmeuserquamavisd)etledspam.conf chown chown chmod chmod amavis: /usr/local/bin/dspam* amavis: /usr/local/etc/dspam.conf 750 /usr/local/bin/dspam* 640 /usr/local/etc/dspam.conf
Pouractiverdspam,ilfautdcommenterlalignesuivantedansamavisd.conf:
#$dspam='dspam';
Onrelanceamavisd: /etc/init.d/amavis stop && /etc/init.d/amavis start Onvrifieleslogs.Ondoitvoir: Found $dspam Onenvoieunemail: Onvrifieleslogs,lesheadersdesemailpourlestagsXDSPAMetleremplissagedelabasede donnes. Principedefontionnement: Danscetteconfiguration,Dspammarquesimplementlesmails(ilajouteuntagdansleheader). Pourquelefiltragedevienneeffectif,ilfautdoncindiquerSpamassasssinlescoreattribueren fonctiondelavaleurdutagXDSPAMdansleheader. Deprfrence,ilvautmieuxattendrequelquesjoursaprslinstallationdedspamafindelelaisser apprendresurunvolumedemailconsquent,avantdactivercesrulesSA. Dsquelonestimequelestagssontpertinentsdanslesheaders(cestdirequeDspamdtecte bienduspametdunonspam(ham)correctement),onpeutajouterceciau /etc/mail/spamassassin/local.cf:
headerDSPAM_SPAMXDSPAMResult=~/^Spam$/ describeDSPAM_SPAMDSPAMclaimsitisspam scoreDSPAM_SPAM2.8 headerDSPAM_HAMXDSPAMResult=~/^Innocent$/ describeDSPAM_HAMDSPAMclaimsitisham scoreDSPAM_HAM0.2
at /usr/local/bin/dspam
OnpeutamliorerlesperformancesdelabaseenchangeantlemoteurenInnoDB
mysqlurootp USEdspam; ALTERTABLEdspam_preferencesTYPE=InnoDB; ALTERTABLEdspam_signature_dataTYPE=InnoDB; ALTERTABLEdspam_statsTYPE=InnoDB; ALTERTABLEdspam_token_dataTYPE=InnoDB; ANALYZETABLEdspam_preferences; ANALYZETABLEdspam_signature_data; ANALYZETABLEdspam_stats; ANALYZETABLEdspam_token_data;
FonctionsAvancesdamavisd:PenpalsetSQL
MaintenantquelonaunsystemefonctionnelarticulautourdAmavis,onpeutajouterdes2 fonctionsinteressantes: Penpals:quipermetdemaintenirunelistedesmessagesauquelsunuseradejareponduetainsi modulerlesscoresenfonction GestionsdesusersdansamavisdparMysql:celapermetdegererparutilisateurlesgrandes fonctionsdamavisd(desactivationdelantivrus,delantispam,maintiendewhitelistetdeblacklist personnelles...) PourcelailfautquelonassocieAmavisdaunebaseSQL. Oncrelabase:
mysqlurootp createdatabaseamavis; GRANTSELECT,INSERT,UPDATE,DELETEONamavis.*TO'amavis'@'localhost'IDENTIFIEDBY'******'; FLUSHPRIVILEGES; quit
Onediteamavisd.confetonajoute/modifieleslignessuivantes:
@storage_sql_dsn=(['DBI:mysql:database=amavis;host=127.0.0.1;port=3306','amavis','****']); @lookup_sql_dsn=@storage_sql_dsn;
Icionacreunparametrepourunuserdenotredomainetest@starbridge.org.Onvoitdanslatable usersquonluidonnelid1etonluiassocielapolicy1.Unepolicyreprendtouslesparametres presentsdansamavisd.conf.onlesretrouvedanslatablepolicy.SilavaleurestNULLalorscest celledufichieramavisd.confquiserautilise.Sinoncestcelledelatable.Icionamodifilescore dedetectionspam(5aulieude4.3) Ensuiteonaunetablemailaddroulonspecifiedesexpediteursparexempletoto@toto.comavec lid1etgracealatablewblistonpourramaintenirunelistedescoreaattribuerenfonctiondeces adressesdexpediteursETdeusers(ledestinatairedansnotrereseau),cequirendceslistes entierementpersonnelles. Ainsidansnotreexemple,wblistpourrid1(recipientid1=test@starbridge.org)etlesid1(sender id1=toto@toto.com)onattribueunscorepositifde15. Cestlquivalentdanslefichieramavisd.confdusoftwhitelisting/blacklistingmaiscettefois uniquementpourunutilisateuretnontouslesautres. OnverralemodulehordeSAMpourlaissergrerfacilementcesoptionsparlutilisateurluimme.
VerificationetsignaturesdesmessagesparDKIM Cettetechniqueatendanceasedevelopper,etdepuislaversion2.6,amavisdproposedesormais dexecuterlintegralitdestachesDKIM:Verificationdesmessagesrecusetsignaturesdes messagesentrants. Depuislaversion2.6damavisd,celuiciestcapabledegenererunesignatureDKIM LaverificationDKIMdesmailsrecusetfaitespardefautdansamavisd Ongnrelacl: mkdir /var/amavis/dkim cd /var/amavis/dkim amavisd genrsa /var/amavis/dkim/starbridge.key.pem
onfaituncopier/collerduresultatpourledomaineetonlecolletelqueldanslazoneDNS. LeserveurDNSBindgerebiensurcetenregistrement(TXT)etilsuffiradelneregistrerdansle fichierdezoneetderechargerbind. SilesDNSsontgrsparlhbergeur,laplupartproposedemodifierleschampsTXT,maiscenest paslecasdetous.Ilfaudradoncverifiercepoint. ontestelenregistrmeentavecunecommandedamavisd: amavisd testkeys onrelanceamavisd. Pourpouvoirsignerlesmessagesilfautquececiproviennepouramavisddunesourcede confiance,cestdireenprovenancedureseauspecifierdansamavisdcommeetantlocal(policy bankMYNETS),oubiendepuisleport587danspostfixenTLS+SASL(policybank ORIGINATING). Ontesteenenvoyantunmailetonverifiedansleslogsquelasignaturesappliquebien. Onretrouveracettesignaturedanslesheadersdumessageenvoy. Notes: OnpeutallerplusloindanslaconfigurationdAmavisdmaispournepassurchargerletutonous naborderonspascespointsici. Laconfigurationdamavisddoitgalementtremodifieenfonctiondelachargeduserveur.Par dfaut2instancessontactives($max_servers=2;).Lecalculdunombredinstancesncessaires demandecertainsajustementslusageetdoittreconsidrcommeunprrequissurlamiseen productiondunserveursusceptibledetraiterdesvolumesconsquents.Onpeutconsulterladoc damavisdsurcepoint. Dansnotreconfigurationonfiltre(antispam,antivirus)surlesmailsentrantsETsortants.Onpeut conomiserdesressourcessystmesendsactivantlantispamsurlesmailssortantsenprovenance dutilisateursauthentifis.Voirlaconfigurationdanscetarticle Pourinfo,lesmailssoumislocalement(pickup)bypassenttouslestests:spams,AV,header/body. Cestlecaspourlesmailssystmecommeceuxdecron,logwatchouautres.Cetteconfigurationa tfaitedanslapartiepickupendbutdetuto.
Policyd
PolicydestunpolicyservicedePostfixquipermetentreautresdecontrlerlesclientsquise connectentsurleserveurdemail(nombredemail/heures....),encontrlantlevolumedesemail envoys. TouslesdtailsdecespossibilitssontdansleREADMEdanslessources. Policydestsurtouttrsutilepourluttercontrelesmailbombing,lesddos,lesspywaresetlesabus entoutgenre(limitationentres/sorties) Oncreunuserpolicyd: groupadd -g 20002 policyd useradd -g policyd -u 20002 policyd Oncompile: cd /root wget http://switch.dl.sourceforge.net/sourceforge/policyd/policyd-1.82. tar.gz tar xvzf policyd-1.82.tar.gz cd policyd-1.82 make build make install
Crerlabasesql:
mysqlurootp GRANTSELECT,INSERT,UPDATE,DELETEONpolicyd.*TO'policyd'@'localhost'IDENTIFIEDBY'*****'; FLUSHPRIVILEGES; quit
Onimportelabasesql: mysql -u root -p < DATABASE.mysql Oninstallele/usr/local/policyd/policyd.conf: cd /usr/local/policyd/ mv policyd.conf policyd.conf-orig wget http://www.starbridge.org/spip/doc/Procmail/policyd.conf Toutestdocumentdanslefichier,onpeutdoncadaptersesbesoins.
Oncreunfichier/etc/init.d/policyd: cd /etc/init.d/ wget http://www.starbridge.org/spip/doc/Procmail/init.d/policyd chmod 755 /etc/init.d/policyd update-rc.d policyd defaults
Onlanceledaemon: /etc/init.d/policyd start Onvrifiequiltournebienetaveclebonuser: ps aux | grep policyd policyd 2740 0.7 0.2 32896 1416 ? S 11:35 0:00 / usr/local/policyd/policyd -c /usr/local/policyd/policyd.conf
Cestpourcelaquelesfonctionsenquestionsontdesactivesdansmonfichierdeconfiguration.
Dexpriencejenaijamaiseudeproblmesdecestyleavecpolicydquiesttrsfiable.
VacationAutoReply
Onpeutventuellementactiverunsystmederponseautomatiqueencasabsence.Cest Postfixadminquigreracepoint. Note:Ilestdeplusenplusdconseilldutilisercegenredautorponsecarilpeutgnrerun traficillgitime.(BackscatterMails). Voirceslienspourplusdinformations: http://www.spamcop.net/fomserve/cache/329.html http://www.rfceditor.org/rfc/rfc3834.txt Surunsitedetaillerduitecelaneposerapasdeproblmes. addgroup vacation adduser --disabled-password --ingroup vacation vacation mkdir /var/spool/vacation touch /var/log/vacation.log touch /var/log/vacation.debug chown vacation: /var/log/vacation.* cd /var/spool/vacation/ wget http://www.starbridge.org/spip/doc/Procmail/vacation.txt mv vacation.txt vacation.pl chown -R vacation: /var/spool/vacation chmod 770 -R /var/spool/vacation Onditelefichier/var/spool/vacation/vacation.pletonparamtrelesidentifiantsMysql. Onditele/etc/postfix/master.cfetonajoutejusteavantuucp:
vacationunixnnpipe flags=Rquser=vacationargv=/var/spool/vacation/vacation.plf${sender}${recipient}
reportingetanalysesdeslogs
Poursuivreleslogsquegnrentleserveurdemail,ilestconseilldutiliserdesoutilsparticuliers. oninstalle:aptitude install logcheck logwatch awstats Logcheck:Sonutilisationestautomatiqueaprslinstallationsousdebian.Touteslesheuresil envoieunrapportdeslogsduserveursnecontenantquelespointsquidoiventattirerlattention. Logwatch:soninstallationestgalementautomatisparladebian.Ilenvoieunrapportjournalier surleslogs. Pourdesrsultatspertinentavecpostfix/amavis,ilfautajouterlesmodificationssuivantes: cd ~ wget http://www.mikecappella.com/logwatch/release/amavislogwatch-1.48.27.tgz tar xvzf amavis-logwatch-1.48.27.tgz cd amavis-logwatch-1.48.27 cp amavis-logwatch /usr/share/logwatch/scripts/services/amavis cp amavis-logwatch.conf /usr/share/logwatch/default.conf/services/ amavis.conf cd .. wget http://www.mikecappella.com/logwatch/release/postfixlogwatch-1.36.12.tgz tar xvzf postfix-logwatch-1.36.12.tgz cd postfix-logwatch-1.36.12 cp postfix-logwatch /usr/share/logwatch/scripts/services/postfix cp postfix-logwatch.conf /usr/share/logwatch/default.conf/services/postfix.conf
Mailgraph:Mailgraphgnredesgraphiquessurlutilisationdelamessagerie aptitude install mailgraph sed -i 's/IGNORE_LOCALHOST=false/IGNORE_LOCALHOST=true/' /etc/default/mailgraph sed -i 's!) SPAM\\!) (SPAM|SPAMMY)\\!' /usr/sbin/mailgraph /etc/init.d/mailgraph restart note:lederniersedestpourlaversionstabledupaquetmailgraph.Sionalaversiontestingcenest pasnecessaire.
Firewall
Ilestcapitaldeprotgerleserveurparunfirewall. Onutiliseraiptables..Cidessousunexemplepourunserveurstandalone. Ilfaudrabiensurladapterlatopologiedurseau. exemplefirewall nepasoublierdactivercescriptaudmarrage!
VersionsduDocument(ChangeLog) *4.3.102/05/2008 Postfixadmin:Remplacementdansletutoduconfig.inc.phpparunfichierpreconfigura tlcharger. Postfixadmin:misejourenversion3.5.8.Cetteversioncorrespondalarelease2.2 *4.3.023/04/2008 Amavisd:Misejourenversion2.6.0.Misejourdufichieramavisd.confpourajouterle parametredactivationdelasignaturedkim *4.2.822/04/2008 Gnral:Uniformisationdunomduserveurdansletuto:dansle/etc/hostsretraitdudomaine seul(starbridge.org).DanslapartieTLS,modificationduCNenspike.starbridge.orgaulieude starbridge.org *4.2.720/04/2008 Amavisd:Misejourenversion2.6.0rc2.Misejourduscriptsqletdufichieramavisd.conf. *4.2.614/04/2008 Clamd:Misejourenversion0.93.Misejourdesfichiersdeconfiguration. *4.2.59/04/2008 Maildrop:misejourdelurlpourrcuprerlessources *4.2.41/04/2008 Amavisd:modificationdututopourfaireensortederecupererlefichierdeconfdamavisd correctementmodifiaudbutdelinstallationetdeviterainsileserreursdeconf. *4.2.328/03/2008 Amavisd:prerequisMail::DKIMdeplacdelapartieSAversamavisddansletutocarcest dsormaisunprrequispouramavisd *4.2.226/03/2008 Reporting:Ajoutdemailgraphpourgnrerdesgraphiques. *4.2.126/03/2008 Policyd:FIXpourlepbdemultiplerecipient:Suppressiondelaverificationdepolicydsur lesrecipient.(policyd.confmisajour) *4.2.021/03/2008 Postfix:NettoyageduneACLinutiledanslestagesmtpd_sender_restrictions (reject_unknown_sender_domain)carprsenteensuitedanslestagesmtpd_recipient_restrictions. Policyd:Dplacementdelargledappeldepolicyddanslemain.cfdustage smtpd_recipient_restrictionssmtpd_end_of_data_restrictions.CelapermetPolicyddeconnaitre latailledunmessage,maisaussicelapermetdefairepasserautraversdepolicydlessenders locaux.Celapermettradoncuncontroledefluxpourlesusersinternes.Miseajourdudocumentde gestionduserveurpourrefletercechangement. *4.1.121/03/2008
Amavisd:Activationdansamavisdduport10026pourutiliserlapolicybankORIGINATING etpermettreauxutilisateurspassantparleport587etauthentifisparSASLdetreconsidrs commelocauxparamavisd,memesiilssontendehorsduLAN. *4.1.020/03/2008 Amavisd:Misejouren2.6.0rc1.MisejourduscriptSQLdamavisd.Ajoutdunesection pourconfigurerlasignatureDKIMparamavisd. *4.0.419/03/2008 Gnral:ajoutdelienpoursuivrelinstallationdeDovecotlaplacedeCourierimapdansle tuto *4.0.313/03/2008 Amavisd:misejourenamavisdnew2.5.4 *4.0.211/03/2008 Postfix:Misejourdumaster.cfdebasepourlaversion2.5(ajoutdeproxywrite). Postfixadmin:Miseenjouren311 *4.0.110/03/2008 Postfix:Misejourdescheminsbtreedanslemain.cfpourprendreencompteunchangement danslaversion2.5depostfix.($queue_directory==>$data_directory).Ajoutdunenotepourla compatibilitavecPostfix<2.5 *4.0.026/02/2008 FIX:Maildrop:lemaildewarninglorsdelapprocheduquota(90%)nefonctionnaitplus ==>Modificationdelamthodedinstallationdufichierquotawarnmsgetsurtoutdesa localisation. *3.9.812/02/2008 Clam:Misejourenversion0.92.1 *3.9.731/01/2008 Clam:MisejourduscriptUpdateSaneSecurity.sh. *3.9.630/01/2008 Logwatch:Misejourenamavislogwatch1.48.27 *3.9.529/01/2008 Courier:ajoutduneclausedansauthmysqlrcpourvrifierlestatutactifducompteetrendre leloginimapimpossiblesiceluiciestdesactiv *3.9.429/01/2008 Dspam:passagedufichierdeconfigurationenwgetetsedpourmodificationdupassword. *3.9.328/01/2008 firewall:lescriptdefirewallattransformenlienpourlimiterlatailledelapagedututo. policyd:passagedufichierdeconfigurationenwget,modificationduuid/gidduuserpolicyd en20002pourmatcherlefichierdeconf.passagedufichierinitenwget
*3.9.221/01/2008 Postfixadmin:Misejourenrvision298 *3.9.114/01/2008 Gnral:modificationdelaprocduredecrationdenombreuxscriptenwgetpourfaciliterla miseenoeuvre(salearn,saupdate,sacompile,dspam.....) *3.9.011/01/2008 Postfixadmin:Misejourenrvision291.Ajoutdunimportwgetpourleconfig.inc.phpet dunecommandedesubstititiondunomdedomainepourfaciliterleditiondecefichierdeconfig. Postfix:ajoutdunscriptpourimporterlatablesqletcommanderapidepourlechangement dudomaine. Maildrop:ajoutdunwgetpourimporterdirectementlefichierauthmysqlrcetviterainsiles erreursdesaisie.Ajputdelacommandepourmodifierlepassworddanslefichier. *3.8.99/1/2008 SA:Misejourenversion3.2.4. *3.8.831/12/2007 Postfixadmin:Misejourenrvision283. *3.8.718/12/2007 Clam:Misejourenversion0.92 *3.8.6.118/12/2007 SA:FIX:Correctiondelerreursurlenomdufichiersqldelabasesuitelamisejour 3.8.4 *3.8.617/12/2007 Amavisd/Postfix:Modificationdudestinatairedutesttelnet(postmaster> admin@starbridge.org)quinefonctionnaitplusdepuislamisejourdututo3.8.1 Gnral:modificationdelacommandedecrationduuservmail.Crationautomatiquedu home"virtual". Maildrop:Prcisionpourlepaquetlibpcre++devsousetch. *3.8.514/12/2007 Postfixadmin:Misejourenrvision268.Adaptationduconfig.inc.php. *3.8.412/12/2007 SA:ajoutdusupportdelAutoWhitelist(AWL):ajoutdelatablesql,modificationdulocal.cf etajoutdunscriptdepurge. SA:modificationdelimportSQL:modificationduscriptpourprendreencomptelacreation directedestablesInnoDB.RetraitdelasectiondeconversionenInnoDB. Amavisd:Misejourenversion2.5.3 *3.8.309/12/2007 Clam:modificationdufichierclamdmon.shpourajouterlescheminsverslesbinaires. *3.8.206/12/2007
Postfix:ajoutdunparagraphedanslasectionanalysedeslogssurlancessitdedesactiver lenvoidemailaupostmasterpourlesbounces,unefoislapriodedetesttermine. *3.8.130/11/2007 PostfixAmavisd:Retraitduparamtrereceive_override=no_address_mappingsdansle main.cfpourledplacerdanslemaster.cfsurleport10025.Celapermettradutiliserpleinementles rglesparutilisateursdansamavisd. amavisd:Changementdudestinatairedesmailsdalertevirus(virusalert==>admin) *3.8.0.127/11/2007 Postfixadmin:svn:miseajourenversion248 typos *3.8.025/11/2007 Amavisd:ajoutdunesectionsurlaconfigurationdePenpalsetdeslookupsSQLpourune gestionparutilisateurs *3.7.423/11/2007 SA:/etc/saupdate.sh,ajoutdescheminsendurverslesbinaires,poureviterlesproblmes avecUbuntu. SA:ajoutduchemindanslacrontabpourlesalearn *3.7.322/11/2007 policyd:ajoutdesINSERTdanslatableblacklist_helo *3.7.220/11/2007 Postfix:Activationdanslemaster.cfduport587(submission). Postfix:Prparationduport465(smtps)maisnonactiv(comment).Ilpeutetrencessaire suivantlescasdefigure.Ceportestconsidrcommeobsolte. Firewall:Ouvertureduport587. Amavisd:ajoutdenotesetdunlienversunautrearticledusitesurlutilisationduport587 pourbypasserlantispampourlesmailssortants. *3.7.115/11/2007 Postfixadmin:passageenrvision227. *3.7.013/11/2007 TLS:RefontetotaledelacrationdescertificatsetdelaCA. PostfixTLS:modificationdesoptionsrelativesdanslemain.cf Imapdssl:AjoutdelacreationduncertificatpersonnalisetsignparlaCA PostfixadminApacheSSL:Modificationducertificat. UpdateSaneSecurity:Changementpourla1ereexecutionduscript:cestleuseramavisquila lance,alidentiqueducron. Postfix:Nettoyagedumain.cforiginal(celuidudebutdututo).retraitdeparametresinutiles. Pasdechangementdanslesfonctionnalits. *3.6.612/11/2007 Maildrop:ajoutduneprcisionsurlepointpourterminerunmailenlignedecommande. Maildrop:Ajoutduneprcisionsurlesdroitsappliqueraufichierpersonnel.mailfilter. Postfixsql:Nettoyagedesscriptsdecrationdestablespostfix_helloetpostfix_access.
(AUTOINCREMENT) Postfixadmin:passageenrvision215. Postfixadmin:Retraitduparagraphesurle.htaccessdanslerpertoireadmincarceluici nexisteplusdanscetteversion.(ilestvide) Postfixadmin:Retraitduparagraphesurlacorrectiondelaffichage. Postfixadmin:Misejourduconfig.inc.php Amavisd:retraitdumkdir/var/amavis,djcreparlacommandeadduser. salearn:prcisionsurlesdeplacementsdesemailsdanslesdossiersSpamFalseet SpamToLearn Typo *3.6.508/11/2007 Vacation.pl:modificationduscriptpournepasenvoyerdautoreplypourmessagesmarqus commespamparSA. *3.6.407/11/2007 Maildrop:modificationdesdroitsappliqussurle/var/run/courier/authdaemon.(775==> 750) *3.6.3.130/10/2007 FIXclam:Modificationduchmodsurledossier/var/tmp/clamdbpoureviteruneerreurde droitslorsdelexcutionduscript. *3.6.328/10/2007 Clam:modificationdansletutopourautomatiquementtelechargerlesfichiersde configurationclamd.confetfreshclam.conf.Plusbesoindeleseditermanuellement. Freshclam:Modificationducroneneditiondelacrontabpluttqueparunfichierdans /etc/cron.d SA:ajoutde2modulesperloptionnels:Mail::DKIMetEncode::Detect.Ajoutdupackage libssldevnecessairealacompilation,endbutdetuto. SA:Editiondufichier/etc/mail/spamassassin/v312.prepouractivationdupluginMail::Dkim *3.6.227/10/2007 Clam:modificationducrontabdeUpdateSaneSecurity.Ilseraexcutparleuseramavis.(au lieuderoot) Clam:DplacementduparagraphedeUpdateSaneSecuritydansceluidelinstalldeclamd. Clam:retraitdelacrationduRamDisk/var/lib/clamavpourviterleproblmeau redmarrage. clam:ajoutdulancementdefreshclamlorsdelinit.ddeclam. Freshclam:Retraitdulancementdefreshclamencronauboot.Retraitdunlogverboseen tropdanslaligne. Clamav:installationdeclamdmonpoursurveillerClam. *3.6.125/10/2007 vacation.pl:ajoutdumoduleMail::Sendmaildanslesprrequis(ilssetrouventdanslapartie amavisddututo)pourviterunproblmededpendances. *3.624/10/2007 postfixadmin:modificationduscriptdescurisationdesfichiers,effacementdusetup.php plusttdansletuto.Rappeldupassworddusuperadmin
postfixadmin:ajoutdelamodificationpourlamiseenpageenfrancais logwatch:misejourdeslienspourletlchargementsuiteauxchangementssurlesite original. typos *3.5.917/10/2007 postfixadmin:passageenrvision157 postfixadmin:misejourvacation.pl *3.5.804/10/2007 postfixadmin:passageenrvision132.Modificationduconfig.inc.php postfixadmin:misejourvacation.pl *3.5.703/10/2007 policyd:misejourdelaversionen1.82.Modificationdesliens. *3.5.626/09/2007 postfixadmin:onpasseleSVNlarvision99. Typo *3.5.623/09/2007 postfixadmin:retraitdelamodificationduEHLOenHELOdanslefichierfunction.inc.php= bugsdenvoidumailcrationdeboitefix. postfixadmin:onfixetemporairementleSVNlarvision66,pourdesbugsdanslesversions suprieuresladatedaujourdhui. *3.5.5.120/09/2007 postfixadminvacation:nouvelleversiondevacation.pl postfixadminvacation:ajoutdesmodulesperlncessaires. *3.5.519/09/2007 Postfixadminvacation:Modificationdufichiervacation.plfourni Postfixadminvacation:modificationdelatablevacation:champactiveINT(1)enactiveINT (4)etconversiondelatableenInnoDB Postfixadminvacation:Ajoutdelatablevacation_notification. Postfixadmin:ModificationdelatableDomain:ajoutduchampquota PostfixAdminconfig.inc.php:ajoutdeparamtresoptionnels *3.5.409/09/2007 maildrop:retraitdeGDBMextensionsenabled.delexemplederetourdunmaildropvcar cetteextensionatdsactivdansleconfigure. maildrop:modificationduconfigure:retraitdeenablemaildropmysqletwith mysqlconfig=/etc/courier/maildropmysql.configdevenuentobsoltes. maildrop:ajoutdunworkaroundpourlerreuralafindumakeinstalldelaversion2.0.4. *3.5.305/09/2007 Postfixadmin:ajoutdelacommandederedmarragedapachelafindelaconfiguration SSL. SASL:modificationdesdroitssurle/var/spool/postfix/run/saslauthdde770en710.
*3.5.202/09/2007 salearn:modificationduscriptpourliminerlesmessagesdalertesinutilesparemail. *3.5.129/08/2007 Vacation:correctionduneerreurdanslefichier/etc/postfix/transport:oublidu: *3.528/08/2007 PostfixMysql:correctionduneerreurdanslefichier/etc/postfix/virtual_domains_maps.cf: laplacedeSELECTdescriptionilfallaitlireSELECTdomain *3.4.224/08/2007 Postfixadmin:correctionduneerreursurlacommandesvn(merciARk0!)(uninutile devantleco *3.4.123/08/2007 Gnral:Modificationdelabasedebian::onprenddsormaislaversiontestingcomme rfrence. Clamav:modificationdesprrequisdecompilation:paquetrenommdanslaversionlenny: libgmpxx4ldbl *3.421/08/2007 Maildrop:modificationdelaversionen2.0.4. Maildrop:Ajoutdemakelalistedepackagesncessaireslinstallation. Maildrop:Explicationsurlemessagederreurlafindumakeinstalletsurletemps ncessaireau./configure. Maildrop:retraitduparagraphesurlefichierobsoltemaildropmysqlconfig Maildrop:ajoutdeprcisionssurlaprocduredetest. TLS:ajoutdunchmodsurledossier/etc/postfix/tls SASL:modificationdufichier/etc/init.d/postfixpourtenircomptedesmisesjourdebian. (danslaligneFILE,lefichieretc/nss_mdns.configatajoutparlinstalleur) Postfix:misejourdumaster.cforiginalpourcorrespondreladernireversionde linstalleur. Postfixadmin:refontetotale.InstallationdelaversionSVN.Misejourdescommentaires. Postfixadmin:ajoutdunesectionsurlinstallationduSSLdansapache Clamav:Misejourversion0.91.2etmisejourdesfichiersdeconfigurationdexemple. Clamav:modificationdesprrequisdecompilation.(changementdeversiondupaquetdebian libgmpxx4) Ramdisk:modificationdumountpourlesramdisk(mounttmfs) Vacation:modification/simplificationdelaprocdure(ajoutdewget)etmodificationdulien verspostfixadmindanscettesectionenhttps://(ajoutdussl) *3.319/08/2007 retraitdescoresobsoltesdanslocal.cfpourSA:(HTML_60_70etHTML_SHOUTING3) *3.211/08/2007 modificationdelastructuredestablesSQLdepostfixadmin:correctiondesindex. ajoutdesacompiledanslinstallationdeSA *3.108/08/2007 ajoutdelasectionsurlesmisesjourdesrglesSAetinstallationdesrglesSARE.
ajoutdelasectionsurlinstallationdessignaturessupplmentairesdeClam:sanesecurity. misejourduficheramavisd.confdexemple(lien) *3.006/08/2007 ajoutdunesectionFirewallavecunexemple. modificationdeslienspointantsurletutowebmail(tutocrecejour) *2.830/07/2007 retraitduparagraphesurlamodificationdamavisd2.50etantrieurespourfonctionneravec dspam3.8.0.Onutiliseamavisd2.52pardfautdsormais.Sincessaire,lamodification effectueresttoujoursdocumentedanslarticlespcifiquesurDSPAM. typos prcisionsurlefichiermaildropmysql.configdanslapartiesurMaildrop *2.727/07/2007 retraitdescommandespostmapinutilessurlesfichiersdelookupMysql misejourdecertainslookupsqlquitaientnotsaveclanciennesyntaxedepostfix. *2.618/07/2007 Misejourdulienpourclamav0.91.1 *2.509/07/2007 Modificationdumaster.cfpoureviterlefiltrageetlesbody/headercheckssurlepickup. *2.403/07/2007 ajoutdelamodificationde/etc/init.d/courierauthdaemonsousubuntupourviterle changementdesdroitschaquelancement. simplificationduparagraphesurlesRBL.Seules2listesrestentenfonctionpardfaut. *2.330/06/2007 modificationduliendeclamdpourlaversion0.91rc2enraisondubugdedemarragedela version0.90.3. *2.229/06/2007 ajoutdunparagraphedanscourierimapsurlutilisationdeENHANCEDIDLE. ajoutdunparagraphedanscourierimapsurlenombredeprocessmaximum ajoutdunparagraphedanscourierimapsurlefonctionnementdesfichiersdeconfiguration imapdetimapdssl *2.128/06/2007 Typo *2.027/06/2007 Partieantispam,paramtragedepostfix(stmd_recipient_restrictions..):Refontecompltedu paragraphepourajouterdesrglespourviterlespoofingdesadressesexpditrices. Postfixmain.cf(audbutdututo):ajoutde$smtpd_sender_login_mapsdans proxy_read_maps. MisejourdeslienspourAmavisd2.5.2 *1.326/06/2007MerciGuillainpoursonaide!
Typos:typeMime Headers/body/tymeMime:modificationdesnomsdefichierspourquilsaienttousla terminaison.cf SASL:AjoutduSTART=yesdansle/etc/default/saslauthd Maildrop:ajoutdelibpcre3devdanslespaquetsncessairesinstaller(compatibilitUbuntu) Maildrop:ajoutdelinstallationdelacommandemailpourlessystmesUbuntu *1.206/06/2007 ModificationduscriptdapprentissageSA ajoutdesbotesemaildapprentissageSpametHam ajoutdesrpertoirespardfautdanslesbotesimap:SpamToLearnetSpamFalse *1.131/05/2007 ModificationduMain.cfetdplacementdureject_unauth_pipeliningsous smtpd_data_restrictions. Modificationdepostfixadminpourcorrigerlebugdenvoidelemaildeconfirmationliala restrictionsurlepipelining. *1.0ArticleOriginal