<?xml 
version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://info.lesbarques.fr/spip.php?page=backend.xslt" ?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel xml:lang="fr">
	<title>INFO les barques</title>
	<link>https://info.lesbarques.fr/</link>
	<description></description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="http://info.lesbarques.fr/spip.php?id_rubrique=80&amp;page=backend" rel="self" type="application/rss+xml" />




<item xml:lang="fr">
		<title>MAIL : 6&#232;me Etape - Installation AMAVISD</title>
		<link>http://info.lesbarques.fr/spip.php?article97</link>
		<guid isPermaLink="true">http://info.lesbarques.fr/spip.php?article97</guid>
		<dc:date>2008-07-25T09:11:50Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Georges Charpenay</dc:creator>


		<dc:subject>DEBIAN</dc:subject>
		<dc:subject>LINUX</dc:subject>
		<dc:subject>POSTFIX</dc:subject>
		<dc:subject>AMAVISD</dc:subject>

		<description>
&lt;p&gt;Alors, l&#224; attention ! Pr&#233;parez la cafeti&#232;re !... &lt;br class='autobr' /&gt;
Article quasi-litt&#233;ralement tir&#233; du tr&#232;s c&#233;l&#232;bre et excellent site starbridge, aussi sous licence creative commons. &lt;br class='autobr' /&gt;
Pour cette partie et pour &#233;viter de se &#034;prendre la t&#234;te&#034; (tr&#232;s long), il faut faire le maximum de commandes d&#233;crites ci-dessous, pour r&#233;fl&#233;chir apr&#232;s. &lt;br class='autobr' /&gt;
Aussi, l'article est tellement long qu'il vaut mieux le parcourir, page apr&#232;s page, et ne pas se servir de l'index... &lt;br class='autobr' /&gt;
AMAVISD - Installation &lt;br class='autobr' /&gt;
AMAVISD, que vous pouvez (&#8230;)&lt;/p&gt;


-
&lt;a href="http://info.lesbarques.fr/spip.php?rubrique80" rel="directory"&gt;Installation serveur de mail &lt;/a&gt;

/ 
&lt;a href="http://info.lesbarques.fr/spip.php?mot5" rel="tag"&gt;DEBIAN&lt;/a&gt;, 
&lt;a href="http://info.lesbarques.fr/spip.php?mot7" rel="tag"&gt;LINUX&lt;/a&gt;, 
&lt;a href="http://info.lesbarques.fr/spip.php?mot38" rel="tag"&gt;POSTFIX&lt;/a&gt;, 
&lt;a href="http://info.lesbarques.fr/spip.php?mot43" rel="tag"&gt;AMAVISD&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='http://info.lesbarques.fr/local/cache-vignettes/L150xH150/castle-2734963_1920-6dec5.jpg?1756848145' class='spip_logo spip_logo_right' width='150' height='150' alt=&#034;&#034; /&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;strong&gt;Alors, l&#224; attention ! Pr&#233;parez la cafeti&#232;re !...&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Article quasi-litt&#233;ralement tir&#233; du tr&#232;s c&#233;l&#232;bre et excellent site &lt;a href=&#034;http://www.starbridge.org/spip/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;starbridge&lt;/a&gt;, aussi sous licence creative commons.&lt;/p&gt;
&lt;p&gt;Pour cette partie et pour &#233;viter de se &#034;prendre la t&#234;te&#034; (tr&#232;s long), il faut faire le maximum de commandes d&#233;crites ci-dessous, pour r&#233;fl&#233;chir &lt;br class='autobr' /&gt;
apr&#232;s.&lt;/p&gt;
&lt;p&gt;Aussi, l'article est tellement long qu'il vaut mieux le parcourir, page apr&#232;s page, et ne pas se servir de l'index...&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;AMAVISD - Installation&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#034;http://mirror.cedratnet.com/amavisd-new/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;AMAVISD&lt;/a&gt;, que vous pouvez consulter, pour les amoureux de la langue de Shakespeare, est un moteur antispam.&lt;/p&gt;
&lt;p&gt;Nous allons installer Amavisd :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;aptitude install libdb4.4-dev file libcompress-bzip2-perl nomarch arc p7zip-full arj zoo lzop tnef pax cabextract libarchive-tar-perl libarchive-zip-perl libberkeleydb-perl libcompress-zlib-perl libconvert-tnef-perl libconvert-uulib-perl libdigest-md5-perl libio-stringy-perl libmailtools-perl libmime-base64-perl libmime-perl libnet-perl perl-modules libnet-server-perl libtime-hires-perl libunix-syslog-perl libmail-dkim-perl&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Puis on t&#233;l&#233;charge les sources chez amavisd :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;cd &lt;br class='autobr' /&gt;
wget &lt;a href=&#034;http://www.ijs.si/software/amavisd/amavisd-new-2.6.1.tar.gz&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.ijs.si/software/amavisd/amavisd-new-2.6.1.tar.gz&lt;/a&gt;&lt;br class='autobr' /&gt;
tar xvzf amavisd-new-2.6.1.tar.gz&lt;br class='autobr' /&gt;
cd amavisd-new-2.6.1&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Nous cr&#233;ons l'utilisateur et le groupe amavis :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;groupadd -g 1009 amavis&lt;br class='autobr' /&gt;
useradd -g amavis -u 1009 amavis -d /var/amavis -m&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Si le syst&#232;me r&#233;pond &#034;groupadd : l'identifiant de groupe (GID) 1009 n'est pas unique&#034;, il faut aller voir dans /etc/passwd un num&#233;ro de groupe qui n'est pas utilis&#233;, pour l'ins&#233;rer dans la commande.&lt;/p&gt;
&lt;p&gt;Cr&#233;er les sous-r&#233;pertoires dans le home d'amavis :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;mkdir /var/amavis/tmp /var/amavis/var /var/amavis/db /var/amavis/home&lt;br class='autobr' /&gt;
chown -R amavis : /var/amavis&lt;br class='autobr' /&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On cr&#233;e 2 lecteur tmpfs pour h&#233;berger les r&#233;pertoires db et tmp d'amavis. Cela accro&#238;t notablement les performances de traitement :&lt;/p&gt;
&lt;p&gt;Modifier /etc/fstab :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;nano /etc/fstab&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;et ajouter, &#224; la fin du fichier :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='4' class='spip_cadre spip_cadre_block' dir='ltr'&gt;tmpfs /var/amavis/db tmpfs rw,size=10m,mode=700,uid=amavis,gid=amavis 0 0 tmpfs /var/amavis/tmp tmpfs rw,size=150m,mode=700,uid=amavis,gid=amavis 0 0&lt;/textarea&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; : La taille de ces lecteurs tmpfs est &#224; modifier selon la charge du serveur, la configuration et bien sur la quantit&#233; de RAM disponible.&lt;/p&gt;
&lt;p&gt;Pour simplifier /var/amavis/tmp est d&#233;pendant du nombre d'instances d'amavisd et de la taille maximale d'un message. Les param&#232;tres mis ici sont ok pour 5 instances et un message_size_limit de 10 Mo, ce qui est largement suffisant dans la config par d&#233;faut d'amavisd (2 instances)&lt;/p&gt;
&lt;p&gt;Puis :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;mount /var/amavis/tmp&lt;br class='autobr' /&gt;
mount /var/amavis/db&lt;br class='autobr' /&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;on v&#233;rifie par un &lt;i&gt;mount -l&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Copier l'ex&#233;cutable :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;cp amavisd /usr/sbin/&lt;br class='autobr' /&gt;
chown root /usr/sbin/amavisd&lt;br class='autobr' /&gt;
chmod 755 /usr/sbin/amavisd&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Copier le fichier de conf :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;cd /etc/&lt;br class='autobr' /&gt;
touch /etc/amavisd.conf&lt;br class='autobr' /&gt;
chown root:amavis /etc/amavisd.conf&lt;br class='autobr' /&gt;
chmod 640 /etc/amavisd.conf&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Cr&#233;er la quarantaine :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;mkdir /var/virusmails&lt;br class='autobr' /&gt;
chown amavis:amavis /var/virusmails&lt;br class='autobr' /&gt;
chmod 750 /var/virusmails&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Le fichier de configuration /etc/amavisd.conf fourni ici est modifi&#233; pour coller &#224; nos besoins :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;nano /etc/amavisd.conf&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&#201;videmment, il faut &#233;diter tout de m&#234;me ce fichier pour pr&#233;ciser :&lt;/p&gt;
&lt;p&gt;Ins&#233;rer le contenu du fichier d&#233;taill&#233; ci-dessous, et adapter les variables suivantes :&lt;/p&gt;
&lt;p&gt;Notre r&#233;seau local dans @mynetworks,&lt;br class='autobr' /&gt;
Notre domaine avec $mydomain = 'Mondomaine.com'&lt;br class='autobr' /&gt;
et notre hostname avec $myhostname = 'MonServeur.Mondomaine.com'&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='783' class='spip_cadre spip_cadre_block' dir='ltr'&gt;use strict; # a minimalistic configuration file for amavisd-new with all necessary settings # # see amavisd.conf-default for a list of all variables with their defaults; # see amavisd.conf-sample for a traditional-style commented file; # for more details see documentation in INSTALL, README_FILES/* # and at http://www.ijs.si/software/amavisd/amavisd-new-docs.html # COMMONLY ADJUSTED SETTINGS: @bypass_virus_checks_maps = (1); # controls running of anti-virus code @bypass_spam_checks_maps = (1); # controls running of anti-spam code # $bypass_decode_parts = 1; # controls running of decoders&amp;dearchivers $max_servers = 2; # num of pre-forked children (2..30 is common), -m $daemon_user = 'amavis'; # (no default; customary: vscan or amavis), -u $daemon_group = 'amavis'; # (no default; customary: vscan or amavis), -g $mydomain = 'mondomaine.com'; # a convenient default for other settings $myhostname = 'monserveur.mondomaine.com'; $MYHOME = '/var/amavis'; # a convenient default for other settings, -H $TEMPBASE = &#034;$MYHOME/tmp&#034;; # working directory, needs to exist, -T $ENV{TMPDIR} = $TEMPBASE; # environment variable TMPDIR, used by SA, etc. $QUARANTINEDIR = '/var/virusmails'; # -Q # $quarantine_subdir_levels = 1; # add level of subdirs to disperse quarantine # $release_format = 'resend'; # 'attach', 'plain', 'resend' # $report_format = 'arf'; # 'attach', 'plain', 'resend', 'arf' # $daemon_chroot_dir = $MYHOME; # chroot directory or undef, -R # $db_home = &#034;$MYHOME/db&#034;; # dir for bdb nanny/cache/snmp databases, -D # $helpers_home = &#034;$MYHOME/var&#034;; # working directory for SpamAssassin, -S # $lock_file = &#034;$MYHOME/var/amavisd.lock&#034;; # -L # $pid_file = &#034;$MYHOME/var/amavisd.pid&#034;; # -P #NOTE: create directories $MYHOME/tmp, $MYHOME/var, $MYHOME/db manually $log_level = 2; # verbosity 0..5, -d $log_recip_templ = undef; # disable by-recipient level-0 log entries $DO_SYSLOG = 1; # log via syslogd (preferred) $syslog_facility = 'mail'; # Syslog facility as a string # e.g.: mail, daemon, user, local0, ... local7 $syslog_priority = 'debug'; # Syslog base (minimal) priority as a string, # choose from: emerg, alert, crit, err, warning, notice, info, debug $enable_db = 1; # enable use of BerkeleyDB/libdb (SNMP and nanny) $enable_global_cache = 1; # enable use of libdb-based cache if $enable_db=1 $nanny_details_level = 2; # nanny verbosity: 1: traditional, 2: detailed # $enable_dkim_verification = 1; # enable DKIM signatures verification # $enable_dkim_signing = 1; # load DKIM signing code, needs keys in dkim_key() @local_domains_maps = ( [&#034;.$mydomain&#034;] ); # list of all local domains @mynetworks = qw( 127.0.0.0/8 [::1] [FE80::]/10 [FEC0::]/10 172.20.1.0/24 ); $unix_socketname = &#034;$MYHOME/amavisd.sock&#034;; # amavisd-release or amavis-milter # option(s) -p overrides $inet_socket_port and $unix_socketname #$inet_socket_port = 10024; # listen on this local TCP port(s) #$inet_socket_port = [10024,10026]; # listen on multiple TCP ports $inet_socket_port = [10024, 10026, 9998]; #Mailzu: modifier la 2eme ip en specifiant celle de votre serveur #$interface_policy{'9998'} = 'MAILZU'; #$policy_bank{'MAILZU'} = { # protocol =&gt; 'AM.PDP', # inet_acl =&gt; [qw( 127.0.0.1 [::1] 10.0.0.254 )], #}; $policy_bank{'MYNETS'} = { # mail originating from @mynetworks originating =&gt; 1, # is true in MYNETS by default, but let's make it explicit # bypass_spam_checks_maps =&gt; [1], # don't spam-check internal mail # bypass_banned_checks_maps =&gt; [1], # don't banned-check internal mail # bypass_header_checks_maps =&gt; [1], # don't header-check internal mail os_fingerprint_method =&gt; undef, # don't query p0f for internal clients }; # it is up to MTA to re-route mail from authenticated roaming users or # from internal hosts to a dedicated TCP port (such as 10026) for filtering $interface_policy{'10026'} = 'ORIGINATING'; $policy_bank{'ORIGINATING'} = { # mail supposedly originating from our users originating =&gt; 1, # declare that mail was submitted by our smtp client allow_disclaimers =&gt; 1, # enables disclaimer insertion if available # notify administrator of locally originating malware virus_admin_maps =&gt; [&#034;admin\@$mydomain&#034;], spam_admin_maps =&gt; [&#034;admin\@$mydomain&#034;], warnbadhsender =&gt; 1, # forward to a smtpd service providing DKIM signing service #forward_method =&gt; 'smtp:[127.0.0.1]:10027', # force MTA conversion to 7-bit (e.g. before DKIM signing) smtpd_discard_ehlo_keywords =&gt; ['8BITMIME'], bypass_banned_checks_maps =&gt; [1], # allow sending any file names and types terminate_dsn_on_notify_success =&gt; 0, # don't remove NOTIFY=SUCCESS option }; $interface_policy{'SOCK'} = 'AM.PDP-SOCK'; # only applies with $unix_socketname # Use with amavis-release over a socket or with Petr Rehor's amavis-milter.c # (with amavis-milter.c from this package or old amavis.c client use 'AM.CL'): $policy_bank{'AM.PDP-SOCK'} = { protocol =&gt; 'AM.PDP', auth_required_release =&gt; 0, # do not require secret_id for amavisd-release }; $sa_tag_level_deflt = -9999.9; # add spam info headers if at, or above that level $sa_tag2_level_deflt = 4.3; # add 'spam detected' headers at that level $sa_kill_level_deflt = 9999.99; # triggers spam evasive actions (e.g. blocks mail) $sa_dsn_cutoff_level = 10; # spam level beyond which a DSN is not sent # $sa_crediblefrom_dsn_cutoff_level = 18; # likewise, but for a likely valid From # $sa_quarantine_cutoff_level = 25; # spam level beyond which quarantine is off $penpals_bonus_score = 8; # (no effect without a @storage_sql_dsn database) $penpals_threshold_high = $sa_kill_level_deflt; # don't waste time on hi spam $penpals_threshold_low = 1; #$bounce_killer_score = 100; # spam score points to add for joe-jobbed bounces $sa_mail_body_size_limit = 400*1024; # don't waste time on SA if mail is larger $sa_local_tests_only = 0; # only tests which do not require internet access? # @lookup_sql_dsn = # ( ['DBI:mysql:database=mail;host=127.0.0.1;port=3306', 'user1', 'passwd1'], # ['DBI:mysql:database=mail;host=host2', 'username2', 'password2'], # [&#034;DBI:SQLite:dbname=$MYHOME/sql/mail_prefs.sqlite&#034;, '', ''] ); # @storage_sql_dsn = @lookup_sql_dsn; # none, same, or separate database $timestamp_fmt_mysql = 1; # if using MySQL *and* msgs.time_iso is TIMESTAMP; # defaults to 0, which is good for non-MySQL or if msgs.time_iso is CHAR(16) # $sql_allow_8bit_address = 1; # maddr.email: VARCHAR (0), VARBINARY/BYTEA (1) $virus_admin = &#034;admin\@$mydomain&#034;; # notifications recip. $banned_admin = &#034;admin\@$mydomain&#034;; $spam_admin = &#034;admin\@$mydomain&#034;; $mailfrom_notify_admin = &#034;virusalert\@$mydomain&#034;; # notifications sender $mailfrom_notify_recip = &#034;virusalert\@$mydomain&#034;; # notifications sender $mailfrom_notify_spamadmin = &#034;spam.police\@$mydomain&#034;; # notifications sender $mailfrom_to_quarantine = ''; # null return path; uses original sender if undef @addr_extension_virus_maps = ('virus'); @addr_extension_banned_maps = ('banned'); @addr_extension_spam_maps = ('spam'); @addr_extension_bad_header_maps = ('badh'); $recipient_delimiter = '+'; # undef disables address extensions altogether # when enabling addr extensions do also Postfix/main.cf: recipient_delimiter=+ $path = '/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/usr/bin:/bin'; # $dspam = 'dspam'; #pour MAILZU #$banned_files_quarantine_method = 'sql:'; #$spam_quarantine_method = 'sql:'; $MAXLEVELS = 14; $MAXFILES = 1500; $MIN_EXPANSION_QUOTA = 100*1024; # bytes (default undef, not enforced) $MAX_EXPANSION_QUOTA = 300*1024*1024; # bytes (default undef, not enforced) $sa_spam_subject_tag = '***SPAM(_SCORE_)*** '; $sa_spam_report_header = 1; $defang_virus = 1; # MIME-wrap passed infected mail $defang_banned = 1; # MIME-wrap passed mail containing banned name $defang_undecipherable = 1; # for defanging bad headers only turn on certain minor contents categories: $defang_by_ccat{+CC_BADH.&#034;,3&#034;} = 1; # NUL or CR character in header $defang_by_ccat{+CC_BADH.&#034;,5&#034;} = 1; # header line longer than 998 characters $defang_by_ccat{+CC_BADH.&#034;,6&#034;} = 1; # header field syntax error # OTHER MORE COMMON SETTINGS (defaults may suffice): # $myhostname = 'host.example.com'; # must be a fully-qualified domain name! # $notify_method = 'smtp:[127.0.0.1]:10025'; # $forward_method = 'smtp:[127.0.0.1]:10025'; # set to undef with milter! # $final_virus_destiny = D_DISCARD; # $final_banned_destiny = D_BOUNCE; # $final_spam_destiny = D_BOUNCE; # $final_bad_header_destiny = D_PASS; # $bad_header_quarantine_method = undef; $final_spam_destiny = D_PASS; $warnvirusrecip = 1; $warnbannedrecip = 1; # $os_fingerprint_method = 'p0f:*:2345'; # to query p0f-analyzer.pl ## hierarchy by which a final setting is chosen: ## policy bank (based on port or IP address) -&gt; *_by_ccat ## *_by_ccat (based on mail contents) -&gt; *_maps ## *_maps (based on recipient address) -&gt; final configuration value # SOME OTHER VARIABLES WORTH CONSIDERING (see amavisd.conf-default for all) # $warnbadhsender, # $warnvirusrecip, $warnbannedrecip, $warnbadhrecip, (or @warn*recip_maps) # @bypass_virus_checks_maps, @bypass_spam_checks_maps, @bypass_banned_checks_maps, @bypass_header_checks_maps, # # @virus_lovers_maps, @spam_lovers_maps, # @banned_files_lovers_maps, @bad_header_lovers_maps, # # @blacklist_sender_maps, @score_sender_maps, # # $clean_quarantine_method, $virus_quarantine_to, $banned_quarantine_to, # $bad_header_quarantine_to, $spam_quarantine_to, # # $defang_bad_header, $defang_undecipherable, $defang_spam # REMAINING IMPORTANT VARIABLES ARE LISTED HERE BECAUSE OF LONGER ASSIGNMENTS @keep_decoded_original_maps = (new_RE( # qr'^MAIL$', # retain full original message for virus checking (can be slow) qr'^MAIL-UNDECIPHERABLE$', # recheck full mail if it contains undecipherables qr'^(ASCII(?! cpio)|text|uuencoded|xxencoded|binhex)'i, # qr'^Zip archive data', # don't trust Archive::Zip )); # for $banned_namepath_re (a new-style of banned table) see amavisd.conf-sample $banned_filename_re = new_RE( ### BLOCKED ANYWHERE # qr'^UNDECIPHERABLE$', # is or contains any undecipherable components qr'^\.(exe-ms|dll)$', # banned file(1) types, rudimentary qr'^\.(exe|lha|cab|dll)$', # banned file(1) types ### BLOCK THE FOLLOWING, EXCEPT WITHIN UNIX ARCHIVES: # [ qr'^\.(gz|bz2)$' =&gt; 0 ], # allow any in gzip or bzip2 [ qr'^\.(rpm|cpio|tar)$' =&gt; 0 ], # allow any in Unix-type archives qr'.\.(pif|scr)$'i, # banned extensions - rudimentary # qr'^\.zip$', # block zip type ### BLOCK THE FOLLOWING, EXCEPT WITHIN ARCHIVES: # [ qr'^\.(zip|rar|arc|arj|zoo)$'=&gt; 0 ], # allow any within these archives qr'^application/x-msdownload$'i, # block these MIME types qr'^application/x-msdos-program$'i, qr'^application/hta$'i, qr'^video/mpeg$'i, qr'^video/avi$'i, qr'^video/quicktime$'i, qr'^video/vnd.vivo$'i, qr'^video/x-msvideo$'i, qr'^video/msvideo$'i, qr'^video/x-ms-asf$'i, qr'^video/x-sgi-movie$'i, qr'^video/x-tango$'i, qr'^video/x-vif$'i, qr'^video/x-mpeg$'i, qr'^video/x-mpeq2a$'i, qr'^video/x-dv$'i, qr'^video/x-motion-jpeg$'i, qr'^audio/x-wav$'i, qr'^audio/wav$'i, qr'^audio/mpeg$'i, qr'^audio/x-mpeg$'i, qr'^audio/vnd.rn-realaudio$'i, qr'^audio/x-pn-realaudio-plugin$'i, qr'^audio/x-realaudio$'i, qr'^audio/x-pn-realaudio$'i, qr'^audio/mpeg3$'i, qr'^audio/x-mpeg-3$'i, qr'^audio/x-aiff$'i, qr'^audio/x-au$'i, qr'^audio/midi$'i, qr'^audio/mid$'i, qr'^audio/x-mid$'i, qr'^audio/x-midi$'i, qr'^music/crescendo$'i, qr'^application/ringing-tones$'i, qr'^application/vnd.nokia.ringing-tone$'i, qr'^application/smil$'i, qr'^x-music/x-midi$'i, #qr'^application/octet-stream$'i, qr'^application/x-javascript$'i, qr'^application/x-shockwave-flash$'i, qr'^text/javascript$'i, qr'^application/x-vbs$'i, qr'^text/vbs$'i, qr'^text/vbscript$'i, # qr'^message/partial$'i, # rfc2046 MIME type # qr'^message/external-body$'i, # rfc2046 MIME type # qr'^(application/x-msmetafile|image/x-wmf)$'i, # Windows Metafile MIME type # qr'^\.wmf$', # Windows Metafile file(1) type # block certain double extensions in filenames qr'\.[^./]*[A-Za-z][^./]*\.\s*(exe|vbs|pif|scr|bat|cmd|com|cpl|dll)[.\s]*$'i, # qr'\{[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}\}?'i, # Class ID CLSID, strict # qr'\{[0-9a-z]{4,}(-[0-9a-z]{4,}){0,7}\}?'i, # Class ID extension CLSID, loose # qr'.\.(exe|vbs|pif|scr|cpl)$'i, # banned extension - basic qr'.\.(exe|vbs|pif|scr|cpl|bat|cmd|com)$'i, # banned extension - basic+cmd qr'.\.(ade|adp|app|bas|bat|chm|cmd|com|cpl|crt|emf|exe|fxp|grp|hlp|hta| inf|ins|isp|js|jse|lnk|mda|mdb|mde|mdw|mdt|mdz|msc|msi|msp|mst| ops|pcd|pif|prg|reg|scr|sct|shb|shs|vb|vbe|vbs| wmf|wsc|wsf|wsh)$'ix, # banned ext - long qr'.\.(ani|cur|ico)$'i, # banned cursors and icons filename qr'^\.ani$', # banned animated cursor file(1) type qr'.\.(mim|b64|bhx|hqx|xxe|uu|uue)$'i, # banned extension - WinZip vulnerab. ); # See http://support.microsoft.com/default.aspx?scid=kb;EN-US;q262631 # and http://www.cknow.com/vtutor/vtextensions.htm %banned_rules = ( 'NO-MS-EXEC'=&gt; new_RE( qr'^\.(exe-ms)$' ), 'PASSALL' =&gt; new_RE( [qr'^' =&gt; 0] ), 'ALLOW_EXE' =&gt; # pass executables except if name ends in .vbs .pif .scr .bat new_RE( qr'.\.(vbs|pif|scr|bat)$'i, [qr'^\.exe$' =&gt; 0] ), 'ALLOW_VBS' =&gt; # allow names ending in .vbs new_RE( [qr'.\.vbs$' =&gt; 0] ), 'NO-VIDEO' =&gt; new_RE( qr'^\.movie$', qr'.\.(asf|asx|mpg|mpe|mpeg|avi|mp3|wav|wma|wmf|wmv|mov|vob)$'i, ), 'NO-MOVIES' =&gt; new_RE( qr'^\.movie$', qr'.\.(mpg|avi|mov)$'i, ), 'MYNETS-DEFAULT' =&gt; new_RE( [ qr'^\.(rpm|cpio|tar)$' =&gt; 0 ], # allow any in Unix-type archives qr'.\.(vbs|pif|scr)$'i, # banned extension - rudimentary qr'.\.(exe|vbs|pif|scr|bat|cmd|com|cpl)$'i, # banned extension - basic qr'^\.(exe-ms)$', # banned file(1) types ), 'DEFAULT' =&gt; $banned_filename_re, ); # ENVELOPE SENDER SOFT-WHITELISTING / SOFT-BLACKLISTING @score_sender_maps = ({ # a by-recipient hash lookup table, # results from all matching recipient tables are summed # ## per-recipient personal tables (NOTE: positive: black, negative: white) # 'user1@example.com' =&gt; [{'bla-mobile.press@example.com' =&gt; 10.0}], # 'user3@example.com' =&gt; [{'.ebay.com' =&gt; -3.0}], # 'user4@example.com' =&gt; [{'cleargreen@cleargreen.com' =&gt; -7.0, # '.cleargreen.com' =&gt; -5.0}], ## site-wide opinions about senders (the '.' matches any recipient) '.' =&gt; [ # the _first_ matching sender determines the score boost new_RE( # regexp-type lookup table, just happens to be all soft-blacklist [qr'^(bulkmail|offers|cheapbenefits|earnmoney|foryou)@'i =&gt; 5.0], [qr'^(greatcasino|investments|lose_weight_today|market\.alert)@'i=&gt; 5.0], [qr'^(money2you|MyGreenCard|new\.tld\.registry|opt-out|opt-in)@'i=&gt; 5.0], [qr'^(optin|saveonlsmoking2002k|specialoffer|specialoffers)@'i =&gt; 5.0], [qr'^(stockalert|stopsnoring|wantsome|workathome|yesitsfree)@'i =&gt; 5.0], [qr'^(your_friend|greatoffers)@'i =&gt; 5.0], [qr'^(inkjetplanet|marketopt|MakeMoney)\d*@'i =&gt; 5.0], ), # read_hash(&#034;/var/amavis/sender_scores_sitewide&#034;), { # a hash-type lookup table (associative array) 'nobody@cert.org' =&gt; -3.0, 'cert-advisory@us-cert.gov' =&gt; -3.0, 'owner-alert@iss.net' =&gt; -3.0, 'slashdot@slashdot.org' =&gt; -3.0, 'securityfocus.com' =&gt; -3.0, 'ntbugtraq@listserv.ntbugtraq.com' =&gt; -3.0, 'security-alerts@linuxsecurity.com' =&gt; -3.0, 'mailman-announce-admin@python.org' =&gt; -3.0, 'amavis-user-admin@lists.sourceforge.net'=&gt; -3.0, 'amavis-user-bounces@lists.sourceforge.net' =&gt; -3.0, 'spamassassin.apache.org' =&gt; -3.0, 'notification-return@lists.sophos.com' =&gt; -3.0, 'owner-postfix-users@postfix.org' =&gt; -3.0, 'owner-postfix-announce@postfix.org' =&gt; -3.0, 'owner-sendmail-announce@lists.sendmail.org' =&gt; -3.0, 'sendmail-announce-request@lists.sendmail.org' =&gt; -3.0, 'donotreply@sendmail.org' =&gt; -3.0, 'ca+envelope@sendmail.org' =&gt; -3.0, 'noreply@freshmeat.net' =&gt; -3.0, 'owner-technews@postel.acm.org' =&gt; -3.0, 'ietf-123-owner@loki.ietf.org' =&gt; -3.0, 'cvs-commits-list-admin@gnome.org' =&gt; -3.0, 'rt-users-admin@lists.fsck.com' =&gt; -3.0, 'clp-request@comp.nus.edu.sg' =&gt; -3.0, 'surveys-errors@lists.nua.ie' =&gt; -3.0, 'emailnews@genomeweb.com' =&gt; -5.0, 'yahoo-dev-null@yahoo-inc.com' =&gt; -3.0, 'returns.groups.yahoo.com' =&gt; -3.0, 'clusternews@linuxnetworx.com' =&gt; -3.0, lc('lvs-users-admin@LinuxVirtualServer.org') =&gt; -3.0, lc('owner-textbreakingnews@CNNIMAIL12.CNN.COM') =&gt; -5.0, '.pap.fr' =&gt; -5.0, '.orange-ft.com' =&gt; -5.0, '.ebay.fr' =&gt; -50.0, '.ebay.com' =&gt; -50.0, '.lists.sourceforge.net' =&gt; -15.0, '.socgen.com' =&gt; -15.0, '.edfgdf.fr' =&gt; -15.0, '.hardware.fr' =&gt; -15.0, '.avast.com' =&gt; -15.0, '.agf.fr' =&gt; -15.0, 'webmaster@celignes.com' =&gt; -15.0, '.mail-abuse.org' =&gt; -15.0, 'service@youtube.com' =&gt; -15.0, '.bouyguestelecom.fr' =&gt; -15.0, 'reply@voyages-sncf.com' =&gt; -50.0, '.spplus.net' =&gt; -15.0, 'suivicde-cdiscount@bp06.net' =&gt; -15.0, 'superfourmi@bp06.net' =&gt; -15.0, 'amv@amv-voyages.fr' =&gt; -15.0, 'amv@routage.fr' =&gt; -15.0, '.mercer.com' =&gt; -15.0, '.mmd.lu' =&gt; -15.0, 'contact@interflora.fr' =&gt; -15.0, '.email.paypal.fr' =&gt; -15.0, 'serviceclient@ugc.fr' =&gt; -15.0, '.skiffy.com' =&gt; -4.0, 'clientele@photoways.com' =&gt; -15.0, '.email.airfrance.fr' =&gt; -15,0, 'support@ovh.com' =&gt; -4.0, '.chronopost.fr' =&gt; -15,0, 'debug@photoways.com' =&gt; -15,0, # soft-blacklisting (positive score) 'sender@example.net' =&gt; 3.0, '.example.net' =&gt; 1.0, '.achat-force.com' =&gt; 300.0, '.gros-lots.fr' =&gt; 300.0, '.publimail.fr' =&gt; 300.0, 'cool-help@imdb.com' =&gt; 300.0, 'cool@mlists.imdb.com' =&gt; 300.0, 'owner-portal-daily-html@daily.gamespy.com' =&gt; 300.0, 'owner-portal-weekly-html@weekly.gamespy.com' =&gt; 300.0, 'Fr-Direct@yahoo-inc.com' =&gt; 300.0, 'sender@pubstv.fagms.net' =&gt; 300.0, 'offres@corp.ifrance.com' =&gt; 300.0, 'newsletter@lesechos.fr ' =&gt; 300.0, 'webmaster@buffy.nu' =&gt; 300.0, 'lettres@lycos.fr' =&gt; 300.0, '.specialreserve.co.uk' =&gt; 300.0, '.realtimepublishers.com' =&gt; 300.0, '.copernicserver.com' =&gt; 300.0, '.juptoday.com' =&gt; 300.0, 'actu@b.emploicenter.com' =&gt; 300.0, '.mailingstats.com' =&gt; 300.0, '.ibase.fr' =&gt; 300.0, 'bons-plans@voyages-sncf.com' =&gt; 300.0, '.passado.ecircle-ag.com' =&gt; 300.0, '.radar.axi.fr' =&gt; 300.0, '.guyanavibes.com' =&gt; 300.0, '.techspot.com' =&gt; 300.0, 'news@oo-software.com' =&gt; 300.0, 'ebay@tiscali.fr' =&gt; 300.0, '.nwruk.com' =&gt; 300.0, '.mobiquid.com' =&gt; 300.0, '.programme-elisa.com' =&gt; 300.0, '.emv4.com' =&gt; 300.0, '.corpnews.netiq.com' =&gt; 300.0, '.directgestion.fr' =&gt; 300.0, '.newsletter-anyway.com' =&gt; 300.0, }, ], # end of site-wide tables }); @decoders = ( ['mail', \&amp;do_mime_decode], ['asc', \&amp;do_ascii], ['uue', \&amp;do_ascii], ['hqx', \&amp;do_ascii], ['ync', \&amp;do_ascii], ['F', \&amp;do_uncompress, ['unfreeze','freeze -d','melt','fcat'] ], ['Z', \&amp;do_uncompress, ['uncompress','gzip -d','zcat'] ], ['gz', \&amp;do_uncompress, 'gzip -d'], ['gz', \&amp;do_gunzip], ['bz2', \&amp;do_uncompress, 'bzip2 -d'], ['lzo', \&amp;do_uncompress, 'lzop -d'], ['rpm', \&amp;do_uncompress, ['rpm2cpio.pl','rpm2cpio'] ], ['cpio', \&amp;do_pax_cpio, ['pax','gcpio','cpio'] ], ['tar', \&amp;do_pax_cpio, ['pax','gcpio','cpio'] ], ['deb', \&amp;do_ar, 'ar'], # ['a', \&amp;do_ar, 'ar'], # unpacking .a seems an overkill ['zip', \&amp;do_unzip], ['7z', \&amp;do_7zip, ['7zr','7za','7z'] ], ['rar', \&amp;do_unrar, ['rar','unrar'] ], ['arj', \&amp;do_unarj, ['arj','unarj'] ], ['arc', \&amp;do_arc, ['nomarch','arc'] ], ['zoo', \&amp;do_zoo, ['zoo','unzoo'] ], ['lha', \&amp;do_lha, 'lha'], # ['doc', \&amp;do_ole, 'ripole'], ['cab', \&amp;do_cabextract, 'cabextract'], ['tnef', \&amp;do_tnef_ext, 'tnef'], ['tnef', \&amp;do_tnef], # ['sit', \&amp;do_unstuff, 'unstuff'], # broken/unsafe decoder ['exe', \&amp;do_executable, ['rar','unrar'], 'lha', ['arj','unarj'] ], ); @av_scanners = ( # ### http://www.clamav.net/ ['ClamAV-clamd', \&amp;ask_daemon, [&#034;CONTSCAN {}\n&#034;, &#034;/var/run/clamav/clamd.ctl&#034;], qr/\bOK$/, qr/\bFOUND$/, qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ], ); @av_scanners_backup = ( ### http://www.clamav.net/ - backs up clamd or Mail::ClamAV ['ClamAV-clamscan', 'clamscan', &#034;--stdout --no-summary -r --tempdir=$TEMPBASE {}&#034;, [0], qr/:.*\sFOUND$/, qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ], ); 1; # insure a defined return&lt;/textarea&gt;
&lt;p&gt;On d&#233;sactive temporairement l'antispam et l'antivirus pour tester :&lt;/p&gt;
&lt;p&gt;Nous avons d&#233;comment&#233; pour cela les lignes (au d&#233;but du fichier de conf) :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;@bypass_virus_checks_maps = (1); @bypass_spam_checks_maps = (1);&lt;/textarea&gt;
&lt;p&gt;D&#233;marrer amavisd en console pour voir si il manque des pr&#233;requis :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;/usr/sbin/amavisd debug&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;La commande de lancement amavisd est amavisd debug, 'debug' n'est pas un lancement particulier d'amavisd. Amavisd doit TOUJOURS &#234;tre lanc&#233; en mode debug.&lt;/p&gt;
&lt;p&gt;Noter les erreurs &#233;ventuelles. Si amavisd ne d&#233;marre pas, arr&#234;tez vous et r&#233;solvez les probl&#232;mes.&lt;/p&gt;
&lt;p&gt;Si c'est ok, arr&#234;ter amavisd debug par CTRL + C.&lt;/p&gt;
&lt;hr class=&#034;spip&#034; /&gt;
&lt;p&gt;Il faut ensuite configurer Postfix :&lt;/p&gt;
&lt;p&gt;On ajoute &#224; la fin du master.cf :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;nano /etc/postfix/master.cf&lt;/i&gt;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='14' class='spip_cadre spip_cadre_block' dir='ltr'&gt;smtp-amavis unix - - y - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20 127.0.0.1:10025 inet n - y - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_client_restrictions= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o receive_override_options=no_address_mappings,no_header_body_checks,no_unknown_recipient_checks&lt;/textarea&gt;
&lt;p&gt;et on modifie toujours dans le master.cf la section sur le port 587 comme ceci :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='4' class='spip_cadre spip_cadre_block' dir='ltr'&gt;587 inet n - - - - smtpd -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_etrn_restrictions=reject -o content_filter=smtp-amavis:[127.0.0.1]:10026 -o smtpd_client_restrictions=permit_sasl_authenticated,reject&lt;/textarea&gt;
&lt;p&gt;(on ajoute en fait la ligne sur le content_filter) Cette derni&#232;re modification permettra d'utiliser une configuration distincte dans&lt;/p&gt;
&lt;p&gt;Relancer postfix :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;postfix reload&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Surveiller les logs :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;tail -f /var/log/mail.log&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Si tout est ok, lancer &#224; nouveau amavisd debug&lt;/p&gt;
&lt;p&gt;&lt;i&gt;/usr/sbin/amavisd debug&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;et taper en console :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;telnet 127.0.0.1 10024&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Il doit r&#233;pondre :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='4' class='spip_cadre spip_cadre_block' dir='ltr'&gt;Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. 220 [127.0.0.1] ESMTP amavisd-new service ready&lt;/textarea&gt;
&lt;p&gt;&lt;i&gt;quit&lt;/i&gt; pour sortir&lt;/p&gt;
&lt;p&gt;Pareil pour tester le retour de Postfix :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;telnet 127.0.0.1 10025&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Il doit r&#233;pondre un truc du style :&lt;/p&gt;
&lt;p&gt;Trying 127.0.0.1...&lt;br class='autobr' /&gt;
Connected to 127.0.0.1.&lt;br class='autobr' /&gt;
Escape character is '^]'.&lt;br class='autobr' /&gt;
220 MonServeur.MonDomaine.com ESMTP Postfix (Debian/GNU)&lt;/p&gt;
&lt;p&gt;&lt;i&gt;QUIT&lt;/i&gt; pour sortir (en majuscules)&lt;/p&gt;
&lt;p&gt;Ensuite, si les connections sont ok :&lt;/p&gt;
&lt;p&gt;Tester le fonctionnement de base (ce qu'il faut taper est pr&#233;c&#233;d&#233; de ---&gt; , le reste c'est le retour du serveur) :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='23' class='spip_cadre spip_cadre_block' dir='ltr'&gt;---&gt; telnet localhost 10024 220 [127.0.0.1] ESMTP amavisd-new service ready ---&gt; HELO localhost 250 [127.0.0.1] ---&gt; MAIL FROM: &lt;&gt; 250 2.1.0 Sender &lt;&gt; OK ---&gt; RCPT TO: &lt;admin@MonDomaine.com&gt; 250 2.1.5 Recipient &lt;admin@MonDomaine.com&gt; OK ---&gt; DATA 354 End data with &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt; ---&gt; From: virus-tester ---&gt; To: undisclosed-recipients:; ---&gt; Subject: amavisd test - simple - no spam test pattern ---&gt; This is a simple test message from the amavisd-new test-messages. ---&gt; . 250 2.6.0 Ok, id=30897-02, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as 079474CE44 ---&gt; QUIT 221 2.0.0 [127.0.0.1] amavisd-new closing transmission channel&lt;/textarea&gt;
&lt;p&gt;L'aller-retour postfix/amavisd fonctionne bien !&lt;/p&gt;
&lt;p&gt;(on peut arr&#234;ter le debug d'amavisd par un CTRL + C)&lt;/p&gt;
&lt;hr class=&#034;spip&#034; /&gt;&lt;h2 class=&#034;spip&#034;&gt;CLAMAV - Installation &lt;/h2&gt;
&lt;p&gt;Clamav est l'antivirus serveur compl&#233;mentaire de notre solution.&lt;/p&gt;
&lt;p&gt;Pr&#233;requis :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;aptitude install zlib1g zlib1g-dev libgmpxx4ldbl libgmp3-dev&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Note : Sous Etch, si aptitude signale qu'aucun paquet ne correspond &#224; &#171; libgmpxx4ldbl &#187;. C'est normal, il s'agit d'un paquet Lenny. Ne pas en tenir compte&lt;/p&gt;
&lt;p&gt;On compile depuis les sources :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='16' class='spip_cadre spip_cadre_block' dir='ltr'&gt;cd ~ wget http://mesh.dl.sourceforge.net/sourceforge/clamav/clamav-0.93.3.tar.gz tar xvzf clamav-0.93.3.tar.gz cd clamav-0.93.3 ./configure --prefix=/usr --sysconfdir=/etc --with-user=amavis --with-group=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&lt;/textarea&gt;
&lt;p&gt;On met a jour les fichiers de configuration :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;cd /etc&lt;/p&gt;
&lt;p&gt;mv clamd.conf clamd.conf.orig&lt;/p&gt;
&lt;p&gt;mv freshclam.conf freshclam.conf.orig&lt;/p&gt;
&lt;p&gt;wget &lt;a href=&#034;http://www.starbridge.org/spip/doc/Procmail/clamd.conf&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.starbridge.org/spip/doc/Procmail/clamd.conf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;wget &lt;a href=&#034;http://www.starbridge.org/spip/doc/Procmail/freshclam.conf&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.starbridge.org/spip/doc/Procmail/freshclam.conf&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On modifie la crontab de l'utilisateur amavis pour planifier la mise &#224; jour de la base antivirale :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;crontab -e -u amavis&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;et on ajoute :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;0 0,6,12,18 * * * /usr/bin/freshclam --log-verbose&lt;/textarea&gt;
&lt;p&gt;Cr&#233;er :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;mkdir /var/log/clamav&lt;/p&gt;
&lt;p&gt;chown -R amavis:amavis /var/log/clamav&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Cr&#233;er un fichier /etc/init.d/clamd&lt;/p&gt;
&lt;p&gt;&lt;i&gt;cd /etc/init.d/&lt;/p&gt;
&lt;p&gt;wget &lt;a href=&#034;http://www.starbridge.org/spip/doc/Procmail/clamd&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.starbridge.org/spip/doc/Procmail/clamd&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;chmod 755 /etc/init.d/clamd&lt;/p&gt;
&lt;p&gt;update-rc.d clamd defaults&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On fait la mise &#224; jour de la base virale :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;freshclam&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On v&#233;rifie que les fichiers soient bien pr&#233;sents dans le r&#233;pertoire :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;ls -la /var/lib/clamav&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On lance clamd :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;/etc/init.d/clamd start&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Et on v&#233;rifie les logs :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;tail -f /var/log/clamav/clamd.log&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Et on v&#233;rifie bien que Clam tourne :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;ps aux | grep clam&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On teste le fonctionnement (le dossier &#034;test&#034; est dans le r&#233;pertoire clamav-0.93.3) :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;cd /root/clamav-0.93.3/test/&lt;/p&gt;
&lt;p&gt;clamdscan -l scan.txt clam-x.yz&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;clamav-x.yz est un des fichiers de test pr&#233;sents dans le r&#233;pertoire test&lt;/p&gt;
&lt;p&gt;Installation des signatures additionnelles pour Clam (d&#233;tection du spam, phising...)&lt;/p&gt;
&lt;p&gt;Il s'agit de fichiers suppl&#233;mentaires que l'on place dans le dossier /var/lib/clamav&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='8' class='spip_cadre spip_cadre_block' dir='ltr'&gt;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/UpdateSaneSecurity.sh chmod 755 UpdateSaneSecurity.sh&lt;/textarea&gt;
&lt;p&gt;On lance le script :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;su -c '/usr/sbin/UpdateSaneSecurity.sh' amavis&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Attention le script peut mettre 5 minutes pour se lancer&lt;/p&gt;
&lt;p&gt;On v&#233;rifie que les fichiers sont bien pr&#233;sents dans le r&#233;pertoire de Clam :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;ls -l /var/lib/clamav&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On doit trouver les fichiers suivants en plus des fichiers classiques :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='6' class='spip_cadre spip_cadre_block' dir='ltr'&gt;MSRBL-Images.hdb MSRBL-SPAM.ndb phish.ndb phish.ndb.gz scam.ndb scam.ndb.gz&lt;/textarea&gt;
&lt;p&gt;On cr&#233;e une tache cron pour mettre &#224; jour ces fichiers :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;crontab -e -u amavis&lt;/i&gt;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;5 */4 * * * /usr/sbin/UpdateSaneSecurity.sh&lt;/textarea&gt;
&lt;p&gt;&lt;strong&gt;Installation de ClamdMon pour la surveillance du demon clam :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;installer le script de surveillance clamdmon :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='7' class='spip_cadre spip_cadre_block' dir='ltr'&gt;cd ~ wget http://www.starbridge.org/spip/doc/Procmail/clamdmon-1.0.tar.gz tar xvzf clamdmon-1.0.tar.gz cd clamdmon-1.0 make make install&lt;/textarea&gt;
&lt;p&gt;Editer la crontab de root&lt;/p&gt;
&lt;p&gt;&lt;i&gt;crontab -e&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;puis on colle :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;*/5 * * * * /usr/sbin/clamdmon.sh&lt;/textarea&gt;&lt;hr class=&#034;spip&#034; /&gt;&lt;h2 class=&#034;spip&#034;&gt;SPAMASSASSIN - Installation&lt;/h2&gt;
&lt;p&gt;On installe les d&#233;pendances&lt;/p&gt;
&lt;p&gt;&lt;i&gt;aptitude install libhtml-parser-perl libnet-dns-resolver-programmable-perl liberror-perl libmail-spf-perl libmail-sendmail-perl libnetaddr-ip-perl libdbi-perl libdbd-mysql-perl liblocale-subcountry-perl libwww-perl libimage-base-bundle-perl libimage-base-perl libimage-info-perl libnet-cidr-lite-perl&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On installe SpamAssassin depuis aptitude de Debian :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;aptitude install spamassassin&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;SA est install&#233;. Sa config de base se fait dans le fichier&lt;i&gt; /etc/mail/spamassassin/local.cf&lt;/i&gt; mais pour la plupart des param&#232;tres, c'est le fichier amavisd.conf qui sera prioritaire.&lt;/p&gt;
&lt;p&gt;Lorsqu'on utilise Amavisd pour appeler SA il est inutile de lancer spamd.&lt;/p&gt;
&lt;p&gt;On remplace le &lt;i&gt;/etc/mail/spamassassin/local.cf&lt;/i&gt; par celui ci :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;mkdir /etc/mail/&lt;/p&gt;
&lt;p&gt;mkdir /etc/mail/spamassassin/&lt;/p&gt;
&lt;p&gt;cd /etc/mail/spamassassin/&lt;/p&gt;
&lt;p&gt;mv local.cf local.cf-orig&lt;/p&gt;
&lt;p&gt;wget &lt;a href=&#034;http://www.starbridge.org/spip/doc/Procmail/spamassassin/local.cf&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.starbridge.org/spip/doc/Procmail/spamassassin/local.cf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;nano /etc/mail/spamassassin/local.cf&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On &#233;dite le fichier pour adapter les parametres internal_networks et trusted_networks.&lt;/p&gt;
&lt;p&gt;internal_networks et trusted_networks sont des param&#232;tres tr&#232;s importants pour la pertinence de la d&#233;tection. Il faut absolument les configurer correctement. (ils doivent contenir les m&#234;me r&#233;seaux et &#234;tre identiques.)&lt;/p&gt;
&lt;p&gt;On s&#233;curise :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;chown amavis : /etc/mail/spamassassin/local.cf&lt;/p&gt;
&lt;p&gt;chmod 640 /etc/mail/spamassassin/local.cf&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;SA fonctionne sur 2 types de tests :&lt;/p&gt;
&lt;p&gt; * Heuristiques (ensemble de r&#232;gles)&lt;br class='autobr' /&gt; * Bayesiens (apprentissage et statistiques)&lt;/p&gt;
&lt;p&gt;Pour le filtre bayesien, on va installer directement la base dans une base Mysql. Les performances sont sup&#233;rieures et on s'affranchit de diverses limitations :&lt;/p&gt;
&lt;p&gt;On cr&#233;e la base :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;mysql -u root -p&lt;/p&gt;
&lt;p&gt;create database spam ;&lt;/p&gt;
&lt;p&gt;GRANT SELECT, INSERT, UPDATE, DELETE ON spam.* TO 'spam'@'localhost' IDENTIFIED BY 'Mot_De_Passe' ;&lt;/p&gt;
&lt;p&gt;FLUSH PRIVILEGES ;&lt;/p&gt;
&lt;p&gt;quit&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On modifie le password dans le local.cf &#224; l'identique (ici votre password serait toto) :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;sed -i 's/******/toto/g' /etc/mail/spamassassin/local.cf&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;(ne pas oublier de remplacer toto par votre mot de passe avant de valider la ligne)&lt;/p&gt;
&lt;p&gt;on importe la base sql :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;wget &lt;a href=&#034;http://starbridge.org/spip/doc/Procmail/spamassassin/bayes_awl.sql&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://starbridge.org/spip/doc/Procmail/spamassassin/bayes_awl.sql&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;wget &lt;a href=&#034;http://spamassassin.apache.org/gtube/gtube.txt&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://spamassassin.apache.org/gtube/gtube.txt&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;mysql -u root -p spam &lt; bayes_awl.sql&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On initialise la base :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;su amavis -c 'sa-learn -D &#8212;spam gtube.txt'&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On peut v&#233;rifier avec phpmyadmin que la base s'est bien remplie.&lt;/p&gt;
&lt;p&gt;Il faut donc cr&#233;er une tache cron quotidienne pour effectuer l'expiration :&lt;/p&gt;
&lt;p&gt;Un crontab de l'user amavis fera l'affaire :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;crontab -e -u amavis&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;et on ajoute :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;16 3 * * * /usr/bin/sa-learn --sync --force-expire&lt;/textarea&gt;
&lt;p&gt;On a activ&#233; l'Auto-Whitelist dans SA. Contrairement a Bayes, l'AWL n'a pas de m&#233;canisme d'expiration qui &#233;vite &#224; la base de grossir ind&#233;finiment.&lt;/p&gt;
&lt;p&gt;Pour cela on cr&#233;e un script qui nettoira les tables r&#233;gulierement :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;cd /etc/&lt;/p&gt;
&lt;p&gt;wget &lt;a href=&#034;http://www.starbridge.org/spip/doc/Procmail/spamassassin/SA-awl-purgesql&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.starbridge.org/spip/doc/Procmail/spamassassin/SA-awl-purgesql&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;puis on cr&#233;e une tache cron&lt;/p&gt;
&lt;p&gt;&lt;i&gt;crontab -e -u amavis&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;et on ajoute :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;25 4 * * * /usr/bin/mysql -u spam -p'******' spam &lt; /etc/SA-awl-purgesql&lt;/textarea&gt;
&lt;p&gt;&lt;strong&gt;Mise &#224; jour des Rules de SA et ajout des Rules SARE :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;On va mettre tout de suite &#224; jour les r&#232;gles de SA et en installer de nouvelles depuis le site de SARE :&lt;/p&gt;
&lt;p&gt;On lance l'update des r&#232;gles de SA :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;sa-update -D&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Cela aura pour effet de t&#233;l&#233;charger les r&#232;gles &#224; jour. Elles seront install&#233;s dans un dossier diff&#233;rent des r&#232;gles d'origine : &lt;i&gt;/var/lib/spamassassin/3.002005&lt;/i&gt;. (ce qui correspond &#224; la version 3.2.5 de SA)&lt;/p&gt;
&lt;p&gt;SA consid&#232;rera d&#233;sormais ce dossier comme celui par d&#233;faut.&lt;/p&gt;
&lt;p&gt;On v&#233;rifie que tout soit OK :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;su -c &#034;spamassassin -D &#8212;lint&#034; amavis&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Il ne doit pas il y a voir de message d'erreur &#224; la fin de l'ex&#233;cution.&lt;/p&gt;
&lt;p&gt;On pr&#233;pare l'installation des rules SARE :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;cd /etc/mail/spamassassin/&lt;/p&gt;
&lt;p&gt;wget &lt;a href=&#034;http://daryl.dostech.ca/sa-update/sare/GPG.KEY&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://daryl.dostech.ca/sa-update/sare/GPG.KEY&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;sa-update &#8212;import GPG.KEY&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;on installe le fichier contenant la liste des Rules :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;wget &lt;a href=&#034;http://www.starbridge.org/spip/doc/Procmail/spamassassin/sare-sa-update-channels.txt&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.starbridge.org/spip/doc/Procmail/spamassassin/sare-sa-update-channels.txt&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On pourra modifier ce fichier pour ne s&#233;lectionner que les RULES que l'on d&#233;sire.&lt;/p&gt;
&lt;p&gt;On met &#224; jour :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;sa-update &#8212;channelfile /etc/mail/spamassassin/sare-sa-update-channels.txt &#8212;gpgkey 856AA88A&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Les fichiers seront plac&#233;s dans &lt;i&gt;/var/lib/spamassassin&lt;/i&gt; :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;ls -la /var/lib/spamassassin/3.002005/&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On v&#233;rifie &#224; nouveau que tout soit OK :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;su -c &#034;spamassassin -D &#8212;lint&#034; amavis&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Pour une mise &#224; jour r&#233;guli&#232;re (1 fois par jour maximum) on pourra cr&#233;er une tache cron en n'oubliant pas de relancer amavisd &#224; la fin du script.&lt;/p&gt;
&lt;p&gt;Pour cela, on cr&#233;e un fichier sa-update.sh :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;cd /etc/&lt;/p&gt;
&lt;p&gt;wget &lt;a href=&#034;http://www.starbridge.org/spip/doc/Procmail/spamassassin/sa-update.sh&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.starbridge.org/spip/doc/Procmail/spamassassin/sa-update.sh&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;chmod 755 /etc/sa-update.sh&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On &#233;dite la crontab :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;crontab -e&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;et on ajoute la ligne :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;15 2 * * * /etc/sa-update.sh&lt;/textarea&gt;
&lt;p&gt;&lt;strong&gt;Activation du plugin DKIM&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Il faut maintenant activer SA dans amavisd :&lt;/p&gt;
&lt;p&gt;On &#233;dite /etc/amavisd.conf et on commente la ligne :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;nano /etc/amavisd.conf&lt;/i&gt;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;# @bypass_spam_checks_maps = (1);&lt;/textarea&gt;
&lt;p&gt;On d&#233;marre en debug-sa :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;/usr/sbin/amavisd debug-sa&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On envoie un mail et on doit voir dans le debug le bon fonctionnement (on peut utiliser un client comme thunderbird ou outlook en param&#233;trant le compte en IMAP.)&lt;/p&gt;
&lt;p&gt;On arr&#234;te amavisd par un CTRL + C.&lt;/p&gt;
&lt;p&gt;Par d&#233;faut Amavisd mets les spams en quarantaine, mais ce n'est pas le comportement que nous d&#233;sirons.&lt;/p&gt;
&lt;p&gt;Le amavisd.conf fourni dans ce tuto int&#232;gre les modifications n&#233;cessaires.&lt;/p&gt;
&lt;p&gt;Pour infos voici les param&#232;tres modifi&#233;s :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='14' class='spip_cadre spip_cadre_block' dir='ltr'&gt;$sa_tag_level_deflt = -9999.9; # add spam info headers if at, or above that level $sa_tag2_level_deflt = 4.3; # add 'spam detected' headers at that level $sa_kill_level_deflt = 9999.9; # triggers spam evasive actions $sa_mail_body_size_limit = 400*1024; # don't waste time on SA if mail is larger $sa_spam_subject_tag = '***SPAM_SCORE_*** '; $sa_spam_report_header = 1; $final_spam_destiny = D_PASS;&lt;/textarea&gt;
&lt;p&gt;Avec cette modification, on dit &#224; amavisd de laisser passer le spam mais de le tagguer dans le header du mail. La limite Spam est fix&#233;e &#224; un score de 4.3&lt;/p&gt;
&lt;p&gt;On traitera le mail plus loin par Maildrop.&lt;/p&gt;
&lt;p&gt;On cr&#233;e un fichier &lt;i&gt;/etc/init.d/amavis&lt;/i&gt; :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;cd /etc/init.d/&lt;/p&gt;
&lt;p&gt;wget &lt;a href=&#034;http://www.starbridge.org/spip/doc/Procmail/init.d/amavis&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.starbridge.org/spip/doc/Procmail/init.d/amavis&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;chmod 755 /etc/init.d/amavis&lt;/p&gt;
&lt;p&gt;update-rc.d amavis defaults&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;on lance amavisd :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;/etc/init.d/amavis start&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On regarde les logs.&lt;/p&gt;
&lt;p&gt;On envoie un mail et on regarde l'ent&#234;te de celui ci. on doit voir les X-Spam- headers.&lt;/p&gt;
&lt;p&gt;On param&#232;tre Maildrop pour d&#233;poser le courier d&#233;tect&#233; comme spam dans le dossier spam de chaque utilisateur :&lt;/p&gt;
&lt;p&gt;On &#233;dite &lt;i&gt;/home/virtual/.mailfilter&lt;/i&gt; et on le modifie comme ceci :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='42' class='spip_cadre spip_cadre_block' dir='ltr'&gt;logfile &#034;/home/virtual/.maildrop.log&#034; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[ -d $DEFAULT ] || (maildirmake $DEFAULT &amp;amp;&amp;amp; maildirmake -f Spam $DEFAULT &amp;amp;&amp;amp; maildirmake -f Sent $DEFAULT &amp;amp;&amp;amp; maildirmake -f SpamToLearn $DEFAULT &amp;amp;&amp;amp; maildirmake -f SpamFalse $DEFAULT)&lt;/code&gt; EXTENSION=&#034;$1&#034; if ( /^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*/ ) { log &#034;--&gt; X-Spam-toohigh.&#034; exception { to /home/virtual/spamtrap@starbridge.org/ } } if ( /^X-Spam-Flag: YES/ ) { log &#034;--&gt; X-Spam-Flag-ed.&#034; to $HOME/$DEFAULT.Spam } if ( $EXTENSION eq &#034;spam&#034; ) { log &#034;--&gt; spam-extension.&#034; to $HOME/$DEFAULT.Spam } &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;test -r $HOME/$DEFAULT.mailfilter&lt;/code&gt; if( $RETURNCODE == 0 ) { log &#034;(==) Including $HOME/$DEFAULT.mailfilter&#034; exception { include $HOME/$DEFAULT.mailfilter } }&lt;/textarea&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Explications :&lt;/p&gt;
&lt;p&gt;Le premier If permet d'envoyer le spam dont le score est au dessus de 10 dans une boite sp&#233;cifique spamtrap@mondomaine.com qu'il faut cr&#233;er (on peut utiliser postfixadmin pour ca).&lt;/p&gt;
&lt;p&gt;Le deuxi&#232;me If permet d'envoyer le spam en dessous de 10 dans le dossier Spam de l'utilisateur.&lt;/p&gt;
&lt;p&gt;Le 3eme permet d'intercepter les mails avec l'extension +spam, qui peuvent &#234;tre utilis&#233;s par amavisd (pour Mailzu par exemple)&lt;/p&gt;
&lt;p&gt; * Pour am&#233;liorer l'apprentissage, on cr&#233;e une tache qui scanne la bo&#238;te spamtrap et les 2 dossiers d'apprentissage SpamToLearn et SpamFalse des bo&#238;tes des utilisateurs (Dossiers cr&#233;es automatiquement par maildrop &#224; la premi&#232;re livraison) puis envoit leur contenu vers le filtre bayesien :&lt;/p&gt;
&lt;p&gt;On cr&#233;e d'abord deux r&#233;pertoires sp&#233;ciaux de transit :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='6' class='spip_cadre spip_cadre_block' dir='ltr'&gt;mkdir /home/spamtrap chown amavis: /home/spamtrap chmod 777 /home/spamtrap mkdir /home/hamtrap chown amavis: /home/hamtrap chmod 777 /home/hamtrap&lt;/textarea&gt;
&lt;p&gt;on cr&#233;e un fichier &lt;i&gt;/etc/sa-learn&lt;/i&gt; :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;cd /etc/&lt;/p&gt;
&lt;p&gt;wget &lt;a href=&#034;http://www.starbridge.org/spip/doc/Procmail/spamassassin/sa-learn&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.starbridge.org/spip/doc/Procmail/spamassassin/sa-learn&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;chmod 755 /etc/sa-learn&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On cr&#233;e une tache cron qu'on lance par root : (une fois par jour ou plus suivant la puissance de la machine, cette tache &#233;tant tr&#232;s gourmande en ressources)&lt;/p&gt;
&lt;p&gt;&lt;i&gt;crontab -e&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;et on ajoute (on change la fr&#233;quence si n&#233;cessaire) :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;30 3,10,15,22 * * * /etc/sa-learn&lt;/textarea&gt;
&lt;p&gt;Tout sera automatique. Il suffira d'indiquer aux utilisateurs de d&#233;placer les emails non d&#233;tect&#233;s comme Spam dans le dossier SpamToLearn et de copier les email l&#233;gitimes d&#233;tect&#233;s &#224; tort comme Spam dans le Dossier SpamFalse. Le script d&#233;placera lors de son ex&#233;cution tous ces emails et en fera l'apprentissage soit comme spam soit comme ham (non spam).&lt;/p&gt;
&lt;p&gt;Attention : TOUS les mails d&#233;pos&#233;s dans les dossiers SpamTolearn et SpamFalse sont d&#233;plac&#233;s c'est &#224; dire qu'il seront EFFACES de ces dossiers.&lt;/p&gt;
&lt;p&gt;Par s&#233;curit&#233; on peut conserver les mails de la boite spamtrap (non consultables par les utilisateurs) un certain temps. Pour cela il suffira de changer les 2 premi&#232;res lignes en copie au lieu d'un d&#233;placement (cp). On verra plus loin pour un script de nettoyage bas&#233; sur l'&#226;ge des fichiers.&lt;/p&gt;
&lt;p&gt;On peut &#233;galement enlever le -D des 2 lignes sa-learn pour limiter la sortie du script (debug). Cron envoie un mail &#224; l'ex&#233;cution de la commande, contenant la sortie.&lt;/p&gt;
&lt;hr class=&#034;spip&#034; /&gt;&lt;h2 class=&#034;spip&#034;&gt;Activation de Clam dans Amavisd&lt;/h2&gt;
&lt;p&gt;Le fichier amavisd.conf fourni dans ce tuto est modifi&#233; pour ne prendre en charge que l'antivirus Clamav.&lt;/p&gt;
&lt;p&gt;Pour info voici les param&#232;tres modifi&#233;s (&#224; la fin du fichier) :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='22' class='spip_cadre spip_cadre_block' dir='ltr'&gt;@av_scanners = ( # ### http://www.clamav.net/ ['ClamAV-clamd', \&amp;ask_daemon, [&#034;CONTSCAN {}\n&#034;, &#034;/var/run/clamav/clamd.ctl&#034;], qr/\bOK$/, qr/\bFOUND$/, qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ], ); @av_scanners_backup = ( ### http://www.clamav.net/ - backs up clamd or Mail::ClamAV ['ClamAV-clamscan', 'clamscan', &#034;--stdout --no-summary -r --tempdir=$TEMPBASE {}&#034;, [0], qr/:.*\sFOUND$/, qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ], ); 1; # insure a defined return&lt;/textarea&gt;
&lt;p&gt;Pour activer Clam on commente au d&#233;but du fichier :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;@bypass_virus_checks_maps = (1);&lt;/textarea&gt;
&lt;p&gt;On relance amavisd :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;/etc/init.d/amavis stop &amp;&amp; /etc/init.d/amavis start&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;L'antivirus est charg&#233;.&lt;/p&gt;
&lt;p&gt;On cr&#233;e l'alias email : virusalert@mondomaine.com vers admin@mondomaine.com. (passer par postfixadmin)&lt;/p&gt;
&lt;p&gt;On teste le fonctionnement :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='24' class='spip_cadre spip_cadre_block' dir='ltr'&gt;--&gt; telnet 127.0.0.1 10024 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. 220 [127.0.0.1] ESMTP amavisd-new service ready --&gt; MAIL FROM:&lt;test@example.com&gt; 250 2.1.0 Sender test@example.com OK --&gt; RCPT TO:&lt;postmaster&gt; 250 2.1.5 Recipient postmaster OK --&gt; DATA 354 End data with &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt; --&gt; Subject: test2 - virus test pattern --&gt; (......taper Entr&#233;e....) --&gt; X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* --&gt; . 250 2.7.0 Ok, discarded, id=03811-01 - VIRUS: Eicar-Test-Signature --&gt; QUIT 221 2.0.0 [127.0.0.1] (amavisd) closing transmission channel Connection closed by foreign host.&lt;/textarea&gt;
&lt;p&gt;On doit voir dans les logs :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;Blocked INFECTED (Eicar-Test-Signature)&lt;/textarea&gt;
&lt;p&gt;On peut aussi tester l'envoi d'un mail infect&#233; dans une archive (pour tester le travail de d&#233;compression) en r&#233;cup&#233;rant des fichiers de test sur eicar.com et en les envoyant par email.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Maintenance de Clam et de Spamassassin :&lt;/h2&gt;
&lt;p&gt;Il faut penser &#224; purger r&#233;guli&#232;rement le contenu de la boite spamtrap et la quarantaine de clam, c'est &#224; dire le dossier &lt;i&gt;/home/virtual/spamtrap@mondomaine.com/new/.&lt;/i&gt; et le &lt;i&gt;/var/virusmails.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Pour cela on peut utiliser un outil du genre tmpreaper.&lt;/p&gt;
&lt;p&gt;Il se configure tr&#232;s simplement dans &lt;i&gt;/etc/tmpreaper.conf&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On modifie la ligne suivante comme ceci :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;nano /etc/tmpreaper.conf&lt;/i&gt;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;TMPREAPER_DIRS='/tmp/. /var/virusmails/. /home/virtual/spamtrap@mondomaine.com/new/.'&lt;/textarea&gt;&lt;hr class=&#034;spip&#034; /&gt;&lt;h2 class=&#034;spip&#034;&gt;DSPAM - Installation&lt;/h2&gt;
&lt;p&gt;Beaucoup consid&#232;re Dspam comme une alternative plus performante de SA.&lt;/p&gt;
&lt;p&gt;Je trouve qu'ils sont plut&#244;t compl&#233;mentaires.&lt;/p&gt;
&lt;p&gt;Amavisd permet de g&#233;rer les 2 en parall&#232;le.&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='11' class='spip_cadre spip_cadre_block' dir='ltr'&gt;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 --prefix=/usr --sysconfdir=/etc --with-dspam-home=/var/amavis/dspam --enable-signature-headers --without-delivery-agent --without-quarantine-agent --with-storage-driver=mysql_drv --with-mysql-includes=/usr/include/mysql make make install&lt;/textarea&gt;
&lt;p&gt;Cr&#233;er la base sql :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='7' class='spip_cadre spip_cadre_block' dir='ltr'&gt;mysql -u root -p create database dspam; GRANT SELECT, INSERT, UPDATE, DELETE ON dspam.* TO 'dspam'@'localhost' IDENTIFIED BY '******'; FLUSH PRIVILEGES; quit&lt;/textarea&gt;
&lt;p&gt;On importe la base sql :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;mysql -u root -p dspam &lt; /root/dspam-3.8.0/src/tools.mysql_drv/mysql_objects-4.1.sql&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On modifie le fichier de conf dspam.conf original (toto &#233;tant votre password d'acces a la base sql dspam que vous venez de param&#233;trer) :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;cd /etc/&lt;/p&gt;
&lt;p&gt;mv dspam.conf dspam.conf-orig&lt;/p&gt;
&lt;p&gt;wget &lt;a href=&#034;http://www.starbridge.org/spip/doc/Procmail/dspam.conf&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.starbridge.org/spip/doc/Procmail/dspam.conf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;sed -i 's/******/toto/g' dspam.conf&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Modifier les droits sur les ex&#233;cutables (m&#234;me user qu'amavisd) et le dspam.conf :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;chown amavis : /usr/bin/dspam*&lt;/p&gt;
&lt;p&gt;chown amavis : /etc/dspam.conf&lt;/p&gt;
&lt;p&gt;chmod 750 /usr/bin/dspam*&lt;/p&gt;
&lt;p&gt;chmod 640 /etc/dspam.conf&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Cr&#233;er le r&#233;pertoire de dspam dans le home d'amavisd :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;mkdir /var/amavis/dspam&lt;/p&gt;
&lt;p&gt;chown -R amavis : /var/amavis/dspam&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Pour activer dspam, il faut d&#233;commenter la ligne suivante dans amavisd.conf :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;nano /etc/amavisd.conf&lt;/i&gt;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;# $dspam = 'dspam';&lt;/textarea&gt;
&lt;p&gt;On relance amavisd :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;/etc/init.d/amavis stop &amp;&amp; /etc/init.d/amavis start&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On v&#233;rifie les logs. On doit voir :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;Found $dspam at /usr/bin/dspam&lt;/textarea&gt;
&lt;p&gt;On envoie un email :&lt;/p&gt;
&lt;p&gt;On v&#233;rifie les logs, les headers des email pour les tags X-DSPAM et le remplissage de la base de donn&#233;es.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Principe de fonctionnement :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Dans cette configuration, Dspam marque simplement les mails (il ajoute un tag dans le header). Pour que le filtrage devienne effectif, il faut donc indiquer &#224; Spamassasssin le score &#224; attribuer en fonction de la valeur du tag X-DSPAM dans le header.&lt;/p&gt;
&lt;p&gt;De pr&#233;f&#233;rence, il vaut mieux attendre quelques jours apr&#232;s l'installation de dspam afin de le laisser apprendre sur un volume de mail cons&#233;quent, avant d'activer ces rules SA.&lt;/p&gt;
&lt;p&gt;D&#232;s que l'on estime que les tags sont pertinents dans les headers (c'est &#224; dire que Dspam d&#233;tecte bien du spam et du non-spam (ham) correctement), on peut ajouter ceci au &lt;i&gt;/etc/mail/spamassassin/local.cf&lt;/i&gt; :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;nano /etc/mail/spamassassin/local.cf&lt;/i&gt;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='7' class='spip_cadre spip_cadre_block' dir='ltr'&gt;header DSPAM_SPAM X-DSPAM-Result =~ /^Spam$/ describe DSPAM_SPAM DSPAM claims it is spam score DSPAM_SPAM 2.8 header DSPAM_HAM X-DSPAM-Result =~ /^Innocent$/ describe DSPAM_HAM DSPAM claims it is ham score DSPAM_HAM -0.2&lt;/textarea&gt;
&lt;p&gt;On peut am&#233;liorer les performances de la base en changeant le moteur en InnoDB&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='11' class='spip_cadre spip_cadre_block' dir='ltr'&gt;mysql -u root -p USE dspam; ALTER TABLE dspam_preferences TYPE=InnoDB; ALTER TABLE dspam_signature_data TYPE=InnoDB; ALTER TABLE dspam_stats TYPE=InnoDB; ALTER TABLE dspam_token_data TYPE=InnoDB; ANALYZE TABLE dspam_preferences; ANALYZE TABLE dspam_signature_data; ANALYZE TABLE dspam_stats; ANALYZE TABLE dspam_token_data;&lt;/textarea&gt;
&lt;p&gt;On cr&#233;e les taches de maintenance de dspam :&lt;/p&gt;
&lt;p&gt;On cr&#233;e un fichier &lt;i&gt;/etc/dspam-purge-4.1.sql&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;cd /etc/&lt;/p&gt;
&lt;p&gt;wget &lt;a href=&#034;http://www.starbridge.org/spip/doc/Procmail/dspam-purge-4.1.sql&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.starbridge.org/spip/doc/Procmail/dspam-purge-4.1.sql&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Puis on cr&#233;e une tache cron avec le user amavis :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;crontab -e -u amavis&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;et on ajoute :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;14 2 * * * /usr/bin/mysql -u dspam -p'******' dspam &lt; /etc/dspam-purge-4.1.sql&lt;/textarea&gt;
&lt;p&gt;On cr&#233;e une tache cron de purge des log avec le user amavis :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;crontab -e -u amavis&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;on ajoute :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;3 3 1 * * /usr/bin/dspam_logrotate -a 30 -v -d /var/amavis/dspam&lt;/textarea&gt;
&lt;p&gt;&lt;strong&gt;Filtrage par extensions et type mime dans amavisd&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;On peut &#233;galement renforcer le blocage des fichiers par extension et type mime dans amavisd, ind&#233;pendamment de l'antivirus.&lt;/p&gt;
&lt;p&gt;Ce blocage est tr&#232;s efficace et peut &#234;tre compl&#233;mentaire du premier blocage par Postfix sur ces fichiers (headers, body, type mime), car il utilise cette fois les capacit&#233;s de d&#233;codage et de d&#233;compression d'Amavisd.&lt;/p&gt;
&lt;p&gt;Par exemple, on pourra facilement bloquer un fichier exe &#224; l'int&#233;rieur d'un fichier zip.&lt;/p&gt;
&lt;p&gt;Voir mon fichier amavisd.conf pour des exemples de type mime et d'extensions de fichiers.&lt;/p&gt;
&lt;p&gt;@@@@@ JOINDRE FICHIER&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Voila le serveur de mail et le filtrage sont configur&#233;s !&lt;/strong&gt;&lt;/p&gt;
&lt;hr class=&#034;spip&#034; /&gt;&lt;h2 class=&#034;spip&#034;&gt;AMAVISD - Maintenance Bases MySQL&lt;/h2&gt;
&lt;p&gt;Les tables vont grossir au fur et &#224; mesure des r&#233;ceptions, il faut donc reguli&#232;rement les purger.&lt;/p&gt;
&lt;p&gt;On cr&#233;e un fichier amavis-purgesql :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;cd /etc/&lt;/p&gt;
&lt;p&gt;wget &lt;a href=&#034;http://www.starbridge.org/spip/doc/Procmail/amavisd/amavis-purgesql&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.starbridge.org/spip/doc/Procmail/amavisd/amavis-purgesql&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;puis on cr&#233;e une tache cron&lt;/p&gt;
&lt;p&gt;&lt;i&gt;crontab -e -u amavis&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;et on ajoute :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;14 4 * * * /usr/bin/mysql -u amavis -p'******' amavis &lt; /etc/amavis-purgesql&lt;/textarea&gt;
&lt;p&gt;&lt;strong&gt;ATTENTION&lt;/strong&gt; : Bien v&#233;rifier, dans le CRON, que toutes les &#233;toiles (****), pass&#233;es en param&#232;tre -p '******', soient bien remplac&#233;es par MonMotdePasse.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;V&#233;rification et signatures des messages par DKIM&lt;/h2&gt;
&lt;p&gt;Cette technique a tendance a se d&#233;velopper, et depuis la version 2.6, amavisd propose d&#233;sormais d'ex&#233;cuter l'int&#233;gralit&#233; des t&#226;ches DKIM : V&#233;rification des messages re&#231;us et signatures des messages sortants.&lt;/p&gt;
&lt;p&gt;Depuis la version 2.6 d'amavisd, celui ci est capable de g&#233;n&#233;rer une signature DKIM&lt;/p&gt;
&lt;p&gt;La v&#233;rification DKIM des mails recus et faites par defaut dans amavisd.&lt;/p&gt;
&lt;p&gt;On g&#233;n&#233;re la cl&#233; :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;mkdir /var/amavis/dkim&lt;/p&gt;
&lt;p&gt;cd /var/amavis/dkim&lt;/p&gt;
&lt;p&gt;amavisd genrsa /var/amavis/dkim/domaine.key.pem&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;les droits du fichier sont mis correctement par amavisd.&lt;/p&gt;
&lt;p&gt;Si l'on a plusieurs domaines on r&#233;p&#232;te la proc&#233;dure pour chaque.&lt;/p&gt;
&lt;p&gt;On ajoute ceci au &lt;i&gt;/etc/amavisd.conf&lt;/i&gt; :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;dkim_key('mondomaine.com', 'domaine', '/var/amavis/dkim/domaine.key.pem');}&lt;/textarea&gt;
&lt;p&gt;A partir d'ici Amavisd est capable de signer les messages sortants. Mais le serveur destinataire ne sera pas capable de les v&#233;rifier, car il faut publier la cl&#233; publique dans les DNS :&lt;/p&gt;
&lt;p&gt;Pour cela, on lance la commande suivante pour afficher la cl&#233; publique du ou des domaines que l'on a parametr&#233; plus haut.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;amavisd showkeys&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;on fait un copier/coller du r&#233;sultat pour le domaine et on le colle tel quel dans la zone DNS.&lt;/p&gt;
&lt;p&gt;Le serveur DNS Bind g&#232;re bien s&#251;r cet enregistrement (TXT) et il suffira de l'enregistrer dans le fichier de zone et de recharger bind.&lt;/p&gt;
&lt;p&gt;Si les DNS sont g&#233;r&#233;s par l'h&#233;bergeur, la plupart propose de modifier les champs TXT, mais ce n'est pas le cas de tous. Il faudra donc v&#233;rifier ce point.&lt;/p&gt;
&lt;p&gt;On teste l'enregistrement avec une commande d'amavisd :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;amavisd testkeys&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On relance amavisd.&lt;/p&gt;
&lt;p&gt;Pour pouvoir signer les messages il faut que ceux ci proviennent pour amavisd d'une source de confiance, c'est &#224; dire en provenance du r&#233;seau sp&#233;cifi&#233; dans amavisd comme &#233;tant local (policy bank MYNETS), ou bien depuis le port 587 dans postfix en TLS + SASL (policy bank ORIGINATING).&lt;/p&gt;
&lt;p&gt;On teste en envoyant un mail et on v&#233;rifie dans les logs que la signature s'applique bien.&lt;/p&gt;
&lt;p&gt;On retrouvera cette signature dans les headers du message envoy&#233;.&lt;/p&gt;
&lt;p&gt;Notes :&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; On peut aller plus loin dans la configuration d'Amavisd mais pour ne pas surcharger le tuto nous n'aborderons pas ces points ici.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; La configuration d'amavisd doit &#233;galement &#234;tre modifi&#233;e en fonction de la charge du serveur. Par d&#233;faut 2 instances sont actives ($max_servers = 2 ;). Le calcul du nombre d'instances n&#233;cessaires demande certains ajustements &#224; l'usage et doit &#234;tre consid&#233;r&#233; comme un pr&#233;requis sur la mise en production d'un serveur susceptible de traiter des volumes cons&#233;quents. On peut consulter la doc d'amavisd sur ce point.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Dans notre configuration on filtre (antispam, antivirus) sur les mails entrants ET sortants. On peut &#233;conomiser des ressources syst&#232;mes en d&#233;sactivant l'antispam sur les mails sortants en provenance d'utilisateurs authentifi&#233;s. Voir la configuration dans cet article&lt;/p&gt;
&lt;p&gt;Pour info, les mails soumis localement (pickup) bypassent tous les tests : spams, AV, header/body. C'est le cas pour les mails syst&#232;me comme ceux de cron, logwatch ou autres. Cette configuration a &#233;t&#233; faite dans la partie pickup en d&#233;but de tuto.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>MAIL : 5&#232;me Etape - Quotas, S&#233;curisation </title>
		<link>http://info.lesbarques.fr/spip.php?article96</link>
		<guid isPermaLink="true">http://info.lesbarques.fr/spip.php?article96</guid>
		<dc:date>2008-07-24T14:07:32Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Georges Charpenay</dc:creator>


		<dc:subject>DEBIAN</dc:subject>
		<dc:subject>LINUX</dc:subject>
		<dc:subject>MAILDROP</dc:subject>
		<dc:subject>QUOTAS</dc:subject>
		<dc:subject>SECURITE</dc:subject>

		<description>
&lt;p&gt;OPTIMISATION ET SECURISATION DU SERVEUR DE MAIL &lt;br class='autobr' /&gt;
MAILDROP - Gestion des Quotas &lt;br class='autobr' /&gt;
Nous les avons param&#233;tr&#233;s &#224; l'installation de maildrop (Create tables SQL avec colonnes). &lt;br class='autobr' /&gt;
Nous allons maintenant utiliser ces tables et cr&#233;er un message d'alerte g&#233;n&#233;rique pour un d&#233;passement de quotas. &lt;br class='autobr' /&gt;
cd /etc/ &lt;br class='autobr' /&gt;
wget http://www.starbridge.org/spip/doc/Procmail/usr/local/courier/etc/quotawarnmsg &lt;br class='autobr' /&gt;
chown -R vmail : /etc/quotawarnmsg &lt;br class='autobr' /&gt;
chmod 644 /etc/quotawarnmsg &lt;br class='autobr' /&gt;
Il faut personnaliser les messages de (&#8230;)&lt;/p&gt;


-
&lt;a href="http://info.lesbarques.fr/spip.php?rubrique80" rel="directory"&gt;Installation serveur de mail &lt;/a&gt;

/ 
&lt;a href="http://info.lesbarques.fr/spip.php?mot5" rel="tag"&gt;DEBIAN&lt;/a&gt;, 
&lt;a href="http://info.lesbarques.fr/spip.php?mot7" rel="tag"&gt;LINUX&lt;/a&gt;, 
&lt;a href="http://info.lesbarques.fr/spip.php?mot39" rel="tag"&gt;MAILDROP&lt;/a&gt;, 
&lt;a href="http://info.lesbarques.fr/spip.php?mot41" rel="tag"&gt;QUOTAS&lt;/a&gt;, 
&lt;a href="http://info.lesbarques.fr/spip.php?mot42" rel="tag"&gt;SECURITE&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='http://info.lesbarques.fr/local/cache-vignettes/L150xH100/censorship-610101_1920-aac92.jpg?1756851323' class='spip_logo spip_logo_right' width='150' height='100' alt=&#034;&#034; /&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;strong&gt;OPTIMISATION ET SECURISATION DU SERVEUR DE MAIL&lt;/strong&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;MAILDROP - Gestion des Quotas&lt;/h2&gt;
&lt;p&gt;Nous les avons param&#233;tr&#233;s &#224; l'installation de maildrop (Create tables SQL avec colonnes).&lt;/p&gt;
&lt;p&gt;Nous allons maintenant utiliser ces tables et cr&#233;er un message d'alerte g&#233;n&#233;rique pour un d&#233;passement de quotas.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;cd /etc/&lt;/p&gt;
&lt;p&gt;wget &lt;a href=&#034;http://www.starbridge.org/spip/doc/Procmail/usr/local/courier/etc/quotawarnmsg&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.starbridge.org/spip/doc/Procmail/usr/local/courier/etc/quotawarnmsg&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;chown -R vmail : /etc/quotawarnmsg&lt;/p&gt;
&lt;p&gt;chmod 644 /etc/quotawarnmsg&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Il faut personnaliser les messages de quotawarnmsg en &#233;ditant le fichier.&lt;/p&gt;
&lt;p&gt;C'est tout ce que nous avons &#224; faire en plus, d'une mani&#232;re g&#233;n&#233;rale, pour Maildrop, Postfix et Courrier-IMAP.&lt;/p&gt;
&lt;p&gt;Pour les petits r&#233;glages de quota par utilisateur et autres, pensez &#224; Postfix admin.&lt;/p&gt;
&lt;p&gt;Mais, le serveur ne filtre pas encore les virus ou les spams...&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Installation d'un Antispam / Antivirus&lt;/h2&gt;
&lt;p&gt;Un morceau de choix, accrochons-nous !&lt;/p&gt;
&lt;p&gt;La technicit&#233; de la majorit&#233; des spams de nos jours ne respectent pas les r&#232;gles d'envoi de mail conventionnels et utilisent un HELO incorrect, et souvent un MAILFROM d'un domaine inconnu.&lt;/p&gt;
&lt;p&gt;Pour plus d'informations veuillez lire les &lt;a href=&#034;http://fr.wikipedia.org/wiki/Request_for_comments&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;RFC&lt;/a&gt;.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;SECURITE ANTISPAM : Blacklist Postfix&lt;/h2&gt;
&lt;p&gt;Renfor&#231;ons d'abord Postfix avec des r&#232;gles pour qu'il soit beaucoup plus restrictif.&lt;/p&gt;
&lt;p&gt;Pour cela utilisons les &lt;strong&gt;smtpd_recipient_restrictions&lt;/strong&gt; (Nous ne d&#233;taillerons pas les actions pr&#233;cises de chaque r&#232;gle car la documentation de Postfix est d&#233;ja tr&#232;s pr&#233;cise sur ce sujet) mais &#233;ditons le fichier /etc/postfix/main.cf et rempla&#231;ons tout le smtpd_recipient_restrictions par celui ci :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;nano /etc/posfix/main.cf&lt;/i&gt;&lt;br class='autobr' /&gt; ou winscp v4 ou ult&#233;rieure (c'est mieux !)&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='25' class='spip_cadre spip_cadre_block' dir='ltr'&gt;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_access hash:/etc/postfix/internal_networks, check_sender_access hash:/etc/postfix/not_our_domain_as_sender, check_helo_access proxy:mysql:/etc/postfix/mysql-hello.cf, check_sender_access proxy:mysql:/etc/postfix/mysql-sender.cf, check_client_access proxy:mysql:/etc/postfix/mysql-client.cf, reject_rbl_client list.dsbl.org, reject_rbl_client zen.spamhaus.org, permit&lt;/textarea&gt;
&lt;p&gt;Dans ce fichier, nous avons param&#233;tr&#233; des RBL (Blacklists) qui vont filtrer efficacement les mails.&lt;/p&gt;
&lt;p&gt;Il existe &#233;norm&#233;ment de RBL qui peuvent rendre le filtrage encore plus restrictif, mais nous nous limiterons qu'aux (RBL) officielles et professionnelles. L'ajout sauvage de blacklist non-officielles peut amener &#224; supprimer des mails sains.&lt;/p&gt;
&lt;p&gt;Il vaut mieux g&#233;rer les RBL suppl&#233;mentaires au travers d'une Policy Service de Postfix qui permettra plus de souplesse. (voir doc Postfix).&lt;/p&gt;
&lt;p&gt;Spam ASSASSIN, dont nous allons d&#233;crire l'installation ult&#233;rieurement, g&#232;re lui aussi des RBL propres.&lt;/p&gt;
&lt;p&gt;Ne fermez pas main.cf, il y a encore des modifications...!&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;SECURITE ANTISPAM : V&#233;rification des mails&lt;/h2&gt;
&lt;p&gt;Il nous faut limiter les possibilit&#233;s de forging des exp&#233;diteurs en v&#233;rifiant les MAIL FROM (adresses exp&#233;ditrices).&lt;/p&gt;
&lt;p&gt;Nous sommes toujours dans le fichier main.cf et nous nous pla&#231;ons au dessus du bloc smtpd_recipient_restrictions = , pour ins&#233;rer :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='12' class='spip_cadre spip_cadre_block' dir='ltr'&gt;smtpd_sender_restrictions = reject_authenticated_sender_login_mismatch smtpd_reject_unlisted_sender = yes smtpd_restriction_classes = has_our_domain_as_sender has_our_domain_as_sender = check_sender_access hash:/etc/postfix/our_domain_as_sender, reject&lt;/textarea&gt;
&lt;p&gt;Cela nous permettra d'emp&#234;cher les utilisateurs de mettre une autre adresse dans le MAIL FROM et seront ainsi obliger de passer par le domaine &lt;i&gt;@mondomaine.com&lt;/i&gt;.(toutes les adresses d'exp&#233;diteurs devront appartenir au(x) domaine(s)).&lt;/p&gt;
&lt;p&gt;Quittez et sauvegardez le main.cf. Mais nous y reviendrons plus tard..&lt;/p&gt;
&lt;p&gt;Il s'agit ensuite de dire au serveur de v&#233;rifier que les mails envoy&#233;s appartiennent bien au r&#233;seau :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Il faut maintenant cr&#233;er les fichiers suivants :&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; /etc/postfix/internal_networks&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;en faisant ainsi :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;cd /etc/postfix/&lt;/p&gt;
&lt;p&gt;wget &lt;a href=&#034;http://www.starbridge.org/spip/doc/Procmail/postfix/internal_networks&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.starbridge.org/spip/doc/Procmail/postfix/internal_networks&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Editons le fichier et sp&#233;cifions y notre r&#233;seau local et son adresse publique :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;nano /etc/postfix/internal_networks&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Le contenu du fichier doit ressembler &#224; cel&#224;, au final :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;192.22.1 has_our_domain_as_sender 88.120.55.485 has_our_domain_as_sender&lt;/textarea&gt;
&lt;p&gt;Ces lignes permettent de sp&#233;cifier les plages IP de votre r&#233;seau, ainsi que l'ip publique (exemple) qui seront autoris&#233;es &#224; envoyer un mail avec votre (vos) domaines dans le MAIL FROM.&lt;/p&gt;
&lt;p&gt;Cela permet &#233;galement de pr&#233;ciser les IP autoris&#233;es &#224; envoyer un mail en se pr&#233;sentant avec notre HELO.&lt;/p&gt;
&lt;p&gt;Nous bloquerons ainsi les clients SMTP ext&#233;rieurs qui pourraient se pr&#233;senter avec un HELO qui est le notre (HAM) (spoofing).&lt;/p&gt;
&lt;p&gt;Il faut, dans cette m&#234;me &#233;tape, cr&#233;er les fichiers qui vont appeler les tables SQL :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;cd /etc/postfix/&lt;/p&gt;
&lt;p&gt;wget &lt;a href=&#034;http://www.starbridge.org/spip/doc/Procmail/postfix/mysql-hello.cf&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.starbridge.org/spip/doc/Procmail/postfix/mysql-hello.cf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;wget &lt;a href=&#034;http://www.starbridge.org/spip/doc/Procmail/postfix/mysql-&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.starbridge.org/spip/doc/Procmail/postfix/mysql-&lt;/a&gt;&lt;br class='autobr' /&gt;
sender.cf&lt;/p&gt;
&lt;p&gt;wget &lt;a href=&#034;http://www.starbridge.org/spip/doc/Procmail/postfix/mysql-client.cf&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.starbridge.org/spip/doc/Procmail/postfix/mysql-client.cf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;wget &lt;a href=&#034;http://www.starbridge.org/spip/doc/Procmail/postfix/our_domain_as_sender&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.starbridge.org/spip/doc/Procmail/postfix/our_domain_as_sender&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;wget &lt;a href=&#034;http://www.starbridge.org/spip/doc/Procmail/postfix/not_our_domain_as_sender&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.starbridge.org/spip/doc/Procmail/postfix/not_our_domain_as_sender&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Pour les deux commandes suivantes, attention &#224; remplacer le mot de passe avant de valider..&lt;/p&gt;
&lt;p&gt;&lt;i&gt;sed -i 's/toto/Mot_De_Passe_Postfix/g' mysql-hello.cf mysql-sender.cf mysql-client.cf&lt;/p&gt;
&lt;p&gt;sed -i 's/starbridge.org/MonDomaine.com/g' our_domain_as_sender not_our_domain_as_sender &lt;br class='autobr' /&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Pour info voici les fonctions de ces derniers t&#233;l&#233;chargements :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; /etc/postfix/mysql-hello.cf : Cette table SQL listera les HELO de nos domaines email.&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; /etc/postfix/mysql-sender.cf : Il sert &#224; blacklister ou whitelister les MAILFROM, c'est &#224; dire les exp&#233;diteurs, selon leur adresse email externe ou limit&#233;es au domaine pr&#233;cis&#233;.&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; /etc/postfix/mysql-client.cf : Il sert &#224; blacklister ou whitelister les clients par leur connection (ip/domaine).&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; /etc/postfix/our_domain_as_sender : Il sert &#224; sp&#233;cifier les domaines autoris&#233;s comme MAIL FROM pour les users internes authentifi&#233;s par leur IP (les clients en local peuvent envoyer un email local sans s'authentifier dans notre configuration)&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; /etc/postfix/not_our_domain_as_sender : Il sert &#224; sp&#233;cifier les domaines refus&#233;s comme MAIL FROM pour les users externes non authentifi&#233;s (c'est &#224; dire une personne ext&#233;rieure qui nous envoit un mail). Si cette personne sp&#233;cifie un de nos domaines en MAIL FROM, le message sera refus&#233; (antispoofing)&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Nous&#034; postmappons&#034; (d&#233;clarons &#224; Postfix d'utiliser..) les fichiers suivants que nous venons de cr&#233;er :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;postmap /etc/postfix/internal_networks&lt;/p&gt;
&lt;p&gt;postmap /etc/postfix/our_domain_as_sender&lt;/p&gt;
&lt;p&gt;postmap /etc/postfix/not_our_domain_as_sender&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Nous s&#233;curisons les fichiers de lookup :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;chown -R root:postfix /etc/postfix/mysql-*&lt;/p&gt;
&lt;p&gt;chmod 640 /etc/postfix/mysql-*&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Cr&#233;ons les tables (pour importer les fichiers ci-dessus) :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;cd &lt;/p&gt;
&lt;p&gt;wget &lt;a href=&#034;http://www.starbridge.org/spip/doc/Procmail/postfix/postfix_access.sql&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.starbridge.org/spip/doc/Procmail/postfix/postfix_access.sql&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Puis la commande sed (avec changement de domaine manuel)&lt;/p&gt;
&lt;p&gt;&lt;i&gt;sed -i 's/starbridge.org/MonDomaine.com/g' postfix_access.sql&lt;/p&gt;
&lt;p&gt;mysql -u root -p &lt; postfix_access.sql&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;... avec le mot de passe de root de mysql....&lt;/p&gt;
&lt;p&gt;Et enfin, relan&#231;ons postfix :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;postfix reload&lt;/i&gt;&lt;/p&gt;
&lt;hr class=&#034;spip&#034; /&gt;&lt;h2 class=&#034;spip&#034;&gt;V&#233;rification de la validit&#233; des mails&lt;/h2&gt;
&lt;p&gt;Postfix peut v&#233;rifier les mails entrants tr&#232;s simplement en analysant le header, le body et le type mime des pi&#232;ces jointes.&lt;/p&gt;
&lt;p&gt;Ce type de blocage est tr&#232;s efficace, plus rapide que de laisser faire Amavisd ou SA, mais manque de souplesse.&lt;/p&gt;
&lt;p&gt;Il s'av&#232;re cependant tr&#232;s efficace pour bloquer par types de fichiers sans que le mail ne soit envoy&#233; au serveur, puis trait&#233; (&#233;conomie de bande passante et de CPU).&lt;/p&gt;
&lt;p&gt;Cependant une trop grande quantit&#233; de r&#232;gles et un fort trafic aurait l'effet inverse sur les performances.&lt;/p&gt;
&lt;p&gt;Nous allons cr&#233;er les fichiers n&#233;cessaires pour activer cette fonction.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;cd /etc/postfix/&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;wget &lt;a href=&#034;http://www.starbridge.org/spip/doc/Procmail/postfix/body_checks.cf&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.starbridge.org/spip/doc/Procmail/postfix/body_checks.cf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;wget &lt;a href=&#034;http://www.starbridge.org/spip/doc/Procmail/postfix/header_checks.cf&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.starbridge.org/spip/doc/Procmail/postfix/header_checks.cf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;wget &lt;a href=&#034;http://www.starbridge.org/spip/doc/Procmail/postfix/mime_headers_checks.cf&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.starbridge.org/spip/doc/Procmail/postfix/mime_headers_checks.cf&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Editons ensuite le fichier &lt;i&gt;/etc/postfix/main.cf&lt;/i&gt; et ajoutons ces lignes :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='4' class='spip_cadre spip_cadre_block' dir='ltr'&gt;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&lt;/textarea&gt;
&lt;p&gt;Il suffit maintenant de relancer postfix :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;postfix reload&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Voila maintenant notre serveur mail est pr&#234;t &#224; accueillir un Antispam et un Antivirus efficace.&lt;/p&gt;
&lt;p&gt;Cool, vous pouvez bien prendre un caf&#233;, car vous l'avez bien m&#233;rit&#233; !&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>MAIL : 4&#232;me Etape - Installation Courrier-IMAP, Postfixadmin</title>
		<link>http://info.lesbarques.fr/spip.php?article95</link>
		<guid isPermaLink="true">http://info.lesbarques.fr/spip.php?article95</guid>
		<dc:date>2008-07-24T11:58:03Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Georges Charpenay</dc:creator>


		<dc:subject>DEBIAN</dc:subject>
		<dc:subject>LINUX</dc:subject>
		<dc:subject>POSTFIX</dc:subject>
		<dc:subject>IMAP</dc:subject>

		<description>
&lt;p&gt;A ce point de construction (article pr&#233;c&#233;dent), nous avons besoin de pr&#233;ciser comment les clients viennent r&#233;cup&#233;rer leur mail. &lt;br class='autobr' /&gt;
Nous avons d&#233;j&#224; configur&#233; la partie la plus importante de courier-imap, c'est &#224; dire l'authentification mysql, dans la partie sur Maildrop. &lt;br class='autobr' /&gt;
COURRIER-IMAP - Installation &lt;br class='autobr' /&gt;
Nous installons le serveur IMAP proprement dit : &lt;br class='autobr' /&gt;
aptitude install courier-imap courier-imap-ssl fam &lt;br class='autobr' /&gt;
Note : pour les questions de l'installeur Debian : courier-base : Faut-il cr&#233;er les (&#8230;)&lt;/p&gt;


-
&lt;a href="http://info.lesbarques.fr/spip.php?rubrique80" rel="directory"&gt;Installation serveur de mail &lt;/a&gt;

/ 
&lt;a href="http://info.lesbarques.fr/spip.php?mot5" rel="tag"&gt;DEBIAN&lt;/a&gt;, 
&lt;a href="http://info.lesbarques.fr/spip.php?mot7" rel="tag"&gt;LINUX&lt;/a&gt;, 
&lt;a href="http://info.lesbarques.fr/spip.php?mot38" rel="tag"&gt;POSTFIX&lt;/a&gt;, 
&lt;a href="http://info.lesbarques.fr/spip.php?mot40" rel="tag"&gt;IMAP&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='http://info.lesbarques.fr/local/cache-vignettes/L150xH123/computer-158675_1920-2e690.png?1756848145' class='spip_logo spip_logo_right' width='150' height='123' alt=&#034;&#034; /&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;A ce point de construction (article pr&#233;c&#233;dent), nous avons besoin de pr&#233;ciser comment les clients viennent r&#233;cup&#233;rer leur mail.&lt;/p&gt;
&lt;p&gt;Nous avons d&#233;j&#224; configur&#233; la partie la plus importante de courier-imap, c'est &#224; dire l'authentification mysql, dans la partie sur Maildrop.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;COURRIER-IMAP - Installation&lt;/h2&gt;
&lt;p&gt;Nous installons le serveur IMAP proprement dit :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;aptitude install courier-imap courier-imap-ssl fam&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; : pour les questions de l'installeur Debian :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; courier-base : Faut-il cr&#233;er les r&#233;pertoires n&#233;cessaires &#224; l'administration web = NON.&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;POSTFIXADMIN - Installation&lt;/h2&gt;
&lt;p&gt;Postfix admin est une interface web du service Postfix.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt; : Plusieurs cas se pr&#233;sentent :&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Soit votre serveur mail et votre serveur lamp sont sur un seul et m&#234;me serveur, auquel cas il faudra ex&#233;cuter les commandes suivantes sur votre seul serveur.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Si vous utilisez un serveur LAMP s&#233;par&#233; du serveur MAIL il vous faut donc ex&#233;cuter ces commandes sur le serveur LAMP o&#249; se trouve apache2 (car postfix web).&lt;/p&gt;
&lt;p&gt;Pour faciliter la cr&#233;ation des users et la gestion des bo&#238;tes et des comptes, nous utilisons Postfixadmin.&lt;/p&gt;
&lt;p&gt;Nous utilisons la version SVN.&lt;/p&gt;
&lt;p&gt;Note : SVN veut dire subversion. Nous savons que les paquets Debian peuvent automatiquement &#234;tre mis &#224; jour, mais Debian ne peut mettre &#224; jour des paquets qu'il ne conna&#238;t pas ou qu'il n'a pas produit (par ex, webmin, postfix...). Pour s'abonner (en quelque sorte), aux mises &#224; jour de ces produits &#034;satellites&#034;, il existe SVN qui livre automatiquement les mises &#224; jour des sources directement dans les serveurs (notre serveur), combin&#233; avec une liste de diffusion par mail (qui vous avertit de la livraison d'une nouvelle version). C'est pr&#234;t &#224; &#234;tre utilis&#233;. Ainsi, les corrections de bugs vont plus vite que le vent.&lt;/p&gt;
&lt;p&gt;Ex&#233;cutons les commandes ci-dessous (la commande SVN peut &#234;tre longue en retour, soyez patients.)&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='18' class='spip_cadre spip_cadre_block' dir='ltr'&gt;aptitude install subversion cd /var/www svn -r 358 co https://postfixadmin.svn.sourceforge.net/svnroot/postfixadmin/trunk 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/&lt;/textarea&gt;&lt;h2 class=&#034;spip&#034;&gt;POSTFIXADMIN - Configuration&lt;/h2&gt;
&lt;p&gt;Nous rempla&#231;ons le /var/www/postfixadmin/config.inc.php par d&#233;faut par celui ci.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; : Il faut modifier toutes les entr&#233;es starbridge.org dans ce fichier par celles correspondantes &#224; votre domaine. (toto est le mot de passe pour la base SQL postfix et Votre_Domaine.com ) :&lt;/p&gt;
&lt;p&gt;Pour cel&#224;, lancer les commandes suivantes, et les modifier pour les adapter (toto par mot passe - Votre_domaine par MonDomaine) :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='10' class='spip_cadre spip_cadre_block' dir='ltr'&gt;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 &#034;s/password'] = '\*\*\*\*\*'/password'] = 'toto'/&#034; config.inc.php sed -i 's/www.starbridge.org/www.Votre_Domaine.com/g' config.inc.php sed -i 's/starbridge.org/Votre_Domaine.com/g' config.inc.php&lt;/textarea&gt;
&lt;p&gt;Nous s&#233;curisons le fichier :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;chown www-data : /var/www/postfixadmin/config.inc.php&lt;/p&gt;
&lt;p&gt;chmod 640 config.inc.php&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Nous allons ensuite effacer le fichier setup.php qui n'est pas n&#233;cessaire dans notre cas car nous avons configur&#233; le fichier &#224; la main :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;rm /var/www/postfixadmin/setup.php&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Nous nous connectons ensuite &#224; l'interface de postfixadmin :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;a href=&#034;https://192.22.1.1/postfixadmin&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://192.22.1.1/postfixadmin&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Si toutefois, cette page n'aboutit pas et que l'arr&#234;t des services d'apache en ligne de commande nous renvoie une erreur de domaine du genre &#034;Could not reliably determine the server's fully qualified domain name&#034;, il est fort possible d'avoir &#224; corriger le fichier /etc/apache2/apache2.conf et compl&#233;ter ou ajouter la directive :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;ServerName NomServeur.Mondomaine.com&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Ceci peut arriver si le serveur LAMP et le serveur MAIL tournent sur la m&#234;me machine.&lt;/p&gt;
&lt;p&gt;Identifions nous avec admin@mondomaine.com que l'on &#224; cr&#233;&#233; &#224; l'installation de Postfix (service de base). Le mot de passe par d&#233;faut &#233;tant &#034;secret&#034;.&lt;/p&gt;
&lt;p&gt;Tester la cr&#233;ation d'un nouvel utilisateur pour valider le bon fonctionnement de postfix.&lt;/p&gt;
&lt;p&gt;A ce niveau, le serveur de mail fonctionne normalement. Reste &#224; le s&#233;curiser avec un antispam, un antivirus, la gestion des quotas de mail, et pour ne pas servir de relais de mail (mail relaying), c'est ce que nous allons voir dans l'article suivant.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>MAIL : 3&#232;me Etape - Installation de Maildrop</title>
		<link>http://info.lesbarques.fr/spip.php?article94</link>
		<guid isPermaLink="true">http://info.lesbarques.fr/spip.php?article94</guid>
		<dc:date>2008-07-24T08:28:05Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Georges Charpenay</dc:creator>


		<dc:subject>DEBIAN</dc:subject>
		<dc:subject>LINUX</dc:subject>
		<dc:subject>MAILDROP</dc:subject>

		<description>
&lt;p&gt;Nous avons besoin d'un MDA (mail delivery agent) pour livrer les mails dans les bo&#238;tes. &lt;br class='autobr' /&gt;
Le service de livraison Virtual de Postfix ne convient pas totalement pour notre usage. &lt;br class='autobr' /&gt;
En effet nous allons avoir besoin de capacit&#233; de filtrage sur le MDA ainsi que la possibilit&#233; de g&#233;rer les quotas, ce qu'il ne sait pas faire en Virtual. &lt;br class='autobr' /&gt;
Procmail est tr&#232;s bien pour le filtrage, mais ne supporte pas les users/domaines virtuels car il ne sait pas communiquer avec une base de donn&#233;es. &lt;br class='autobr' /&gt;
Une m&#233;thode (&#8230;)&lt;/p&gt;


-
&lt;a href="http://info.lesbarques.fr/spip.php?rubrique80" rel="directory"&gt;Installation serveur de mail &lt;/a&gt;

/ 
&lt;a href="http://info.lesbarques.fr/spip.php?mot5" rel="tag"&gt;DEBIAN&lt;/a&gt;, 
&lt;a href="http://info.lesbarques.fr/spip.php?mot7" rel="tag"&gt;LINUX&lt;/a&gt;, 
&lt;a href="http://info.lesbarques.fr/spip.php?mot39" rel="tag"&gt;MAILDROP&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='http://info.lesbarques.fr/local/cache-vignettes/L150xH84/maildrop-1e875.png?1757211414' class='spip_logo spip_logo_right' width='150' height='84' alt=&#034;&#034; /&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Nous avons besoin d'un MDA (mail delivery agent) pour livrer les mails dans les bo&#238;tes.&lt;/p&gt;
&lt;p&gt;Le service de livraison Virtual de Postfix ne convient pas totalement pour notre usage.&lt;/p&gt;
&lt;p&gt;En effet nous allons avoir besoin de capacit&#233; de filtrage sur le MDA ainsi que la possibilit&#233; de g&#233;rer les quotas, ce qu'il ne sait pas faire en Virtual.&lt;/p&gt;
&lt;p&gt;Procmail est tr&#232;s bien pour le filtrage, mais ne supporte pas les users/domaines virtuels car il ne sait pas communiquer avec une base de donn&#233;es.&lt;/p&gt;
&lt;p&gt;Une m&#233;thode r&#233;pandue pour les quotas est l'application du patch VDA sur Postfix, option que nous ne choisirons pas pour des raisons de fiabilit&#233;.&lt;/p&gt;
&lt;p&gt;La solution Maildrop r&#233;ponds, elle, &#224; nos besoins.&lt;/p&gt;
&lt;p&gt;Maildrop s'occupera donc de la livraison des mails dans les /home/virtual.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;MAILDROP - Installation&lt;/h2&gt;
&lt;p&gt;Nous installons maildrop :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;apt-get install maildrop&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Nous appliquons les permissions correctement en mettant comme utilisateur VMAIL sur les ex&#233;cutables et sur /var/run/courier/authdaemaon :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;chown vmail : /usr/bin/maildrop&lt;/p&gt;
&lt;p&gt;chown vmail:daemon /var/run/courier/authdaemon/&lt;/p&gt;
&lt;p&gt;chmod 750 /var/run/courier/authdaemon/&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On v&#233;rifie si maildrop est correctement install&#233; (modules activ&#233;s) :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;/usr/bin/maildrop -v&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;qui doit nous renvoyer :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='6' class='spip_cadre spip_cadre_block' dir='ltr'&gt;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.&lt;/textarea&gt;
&lt;p&gt;On voit que l'authentification est activ&#233;e, ainsi que la gestion des quotas que nous configurerons plus tard.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;MAILDROP - Configuration&lt;/h2&gt;
&lt;p&gt;Nous &#233;ditons le fichier &lt;i&gt;/etc/courier/authdaemonrc&lt;/i&gt; pour remplacer &lt;i&gt;authmodulelist=&#034;authpam&#034; par authmodulelist=&#034;authpam authmysql&#034;&lt;/i&gt;, comme d&#233;crit dans le cadre suivant (un petit copier-coller d'un coup fonctionne) :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='6' class='spip_cadre spip_cadre_block' dir='ltr'&gt;cd /etc/courier mv authdaemonrc authdaemonrc-orig wget http://www.starbridge.org/spip/doc/Procmail/courier/authdaemonrc chown daemon: authdaemonrc chmod 660 authdaemonrc&lt;/textarea&gt;
&lt;p&gt;Nous ex&#233;cutons ensuite les commandes suivantes pour cr&#233;er le fichier authmysqlrc (toto &#233;tant votre mot de passe) :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='6' class='spip_cadre spip_cadre_block' dir='ltr'&gt;cd /etc/courier mv authmysqlrc authmysqlrc-orig wget http://www.starbridge.org/spip/doc/Procmail/courier/authmysqlrc chown daemon: authmysqlrc chmod 640 authmysqlrc&lt;/textarea&gt;
&lt;p&gt;Puis lancer la commande suivante en ayant pr&#233;alablement remplac&#233; &#034;toto&#034; par votre mot de passe postfix que vous avez d&#233;j&#224; d&#233;fini.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;sed -i 's/*****/toto/g' authmysqlrc&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;(Toujours la commande sed pour modifier les fichiers par lots).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; : Il faut faire tr&#232;s attention &#224; la syntaxe de ce fichier (/etc/courrier/authmysqlrc) et bien mettre un tab (tabulation) entre le param&#232;tre et sa valeur. Il ne doit y avoir aucun espace &#224; la fin d'un param&#232;tre. La moindre erreur entra&#238;nera le non-fonctionnement de l'authentification. C'est pour cela que le fichier est directement fourni ici et ne n&#233;cessite donc aucune modification autre que celle du mot de passe de notre base.&lt;/p&gt;
&lt;p&gt;Maildrop est appel&#233; par Postfix au moment de la livraison du mail. Pour que Postfix utilise Maildrop, nous ajoutons au fichier&lt;i&gt;/etc/postfix/main.cf&lt;/i&gt; en fin de fichier :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;nano /etc/postfix/main.cf&lt;/i&gt;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;virtual_transport = maildrop maildrop_destination_recipient_limit = 1&lt;/textarea&gt;
&lt;p&gt;et au fichier &lt;i&gt;/etc/postfix/master.cf&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;nano /etc/postfix/master.cf&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;(on efface les lignes maildrop existantes (qu'une instruction) et on les remplace par celles ci) :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='5' class='spip_cadre spip_cadre_block' dir='ltr'&gt;maildrop unix - n n - - pipe flags=DRhu user=vmail argv=/usr/bin/maildrop -w 90 -d ${user}@${nexthop} ${extension} ${recipient} ${user} ${nexthop} ${sender}&lt;/textarea&gt;
&lt;p&gt;Ensuite, il faut cr&#233;er le fichier &lt;i&gt;/home/virtual/.mailfilter&lt;/i&gt; pour activer les logs et la cr&#233;ation automatique des maildir &#224; la livraison (postfix ne sait pas le faire comme avec le transport par d&#233;faut &#034;virtual&#034;, car ce n'est pas lui qui livre directement dans les r&#233;pertoires et il faut dire &#224; maildrop, de venir livrer les mails dans /home/virtual) :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;nano /home/virtual/.mailfilter&lt;/i&gt; (fichier vide au d&#233;part)&lt;/p&gt;
&lt;p&gt;Et nous le remplissons avec :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='19' class='spip_cadre spip_cadre_block' dir='ltr'&gt;logfile &#034;/home/virtual/.maildrop.log&#034; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[ -d $DEFAULT ] || (maildirmake $DEFAULT &amp;amp;&amp;amp; maildirmake -f Spam $DEFAULT &amp;amp;&amp;amp; maildirmake -f Sent $DEFAULT &amp;amp;&amp;amp; maildirmake -f SpamToLearn $DEFAULT &amp;amp;&amp;amp; maildirmake -f SpamFalse $DEFAULT)&lt;/code&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;test -r $HOME/$DEFAULT.mailfilter&lt;/code&gt; if( $RETURNCODE == 0 ) { log &#034;(==) Including $HOME/$DEFAULT.mailfilter&#034; exception { include $HOME/$DEFAULT.mailfilter } }&lt;/textarea&gt;
&lt;p&gt;Enfin, il faut s&#233;curiser le fichier.mailfilter :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;chown vmail : /home/virtual/.mailfilter&lt;/p&gt;
&lt;p&gt;chmod 600 /home/virtual/.mailfilter&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Nous red&#233;marrons le processus d'authentification et Postfix :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;/etc/init.d/courier-authdaemon restart&lt;/p&gt;
&lt;p&gt;/etc/init.d/postfix restart&lt;/i&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;MAILDROP - Test de la configuration&lt;/h2&gt;
&lt;p&gt;Nous testons cette configuration de base avec la commande :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;authtest user@mondomaine.com&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Qui nous donne :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='10' class='spip_cadre spip_cadre_block' dir='ltr'&gt;Authentication succeeded. Authenticated: user@MonDomaine.com (uid 20001, gid 20001) Home Directory: /home/virtual Maildir: user@MonDomaine.com/ Quota: 0S Encrypted Password: $1$caea3837$gPafod/Do/8Jj5M9HehhM. Cleartext Password: (none) Options: (none)&lt;/textarea&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; : En cas d'erreur, il est fort probable que le fichier authmysqlrc soit en cause.&lt;/p&gt;
&lt;p&gt;Regarder les logs :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;tail -f /var/log/mail.log&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Ensuite nous tapons la commande :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;/usr/bin/maildrop -V 7 -d user@mondomaine.com&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;qui devrait nous r&#233;pondre les termes suivants, montrant que le mail est bien livr&#233; &#224; /home/virtual :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='5' class='spip_cadre spip_cadre_block' dir='ltr'&gt;maildrop: authlib: groupid=20001 maildrop: authlib: userid=20001 maildrop: authlib: logname=user@mondomaine.com, home=/home/virtual, mail=user@MonDomaine.com/ maildrop: Changing to /home/virtual&lt;/textarea&gt;
&lt;p&gt;CTRL+C pour sortir du fichier.&lt;/p&gt;
&lt;p&gt;Nous allons ensuite tester l'envoi de mail &#224; user@mondomaine.com :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;mail user@mondomaine.com&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Remplir tous les champs avec des informations vraies ou fausses cela est votre choix et terminer votre mail en tapant un point (.) sur une seul ligne.&lt;/p&gt;
&lt;p&gt;On regarde les logs pour les erreurs :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;tail -f /var/log/mail.log&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Si tout a fonctionn&#233; on devrait trouver dans une ligne, vers la fin :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;...status=sent (delivered ...) ...&lt;/textarea&gt;
&lt;p&gt;Nous allons ensuite tester le port 25 (SMTP) du serveur mail avec telnet :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;apt-get install telnet&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Puis nous testons avec la commande suivante :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='16' class='spip_cadre spip_cadre_block' dir='ltr'&gt;---&gt; telnet localhost 25 220 [127.0.0.1] ESMTP Postfix ---&gt; HELO localhost 250 [127.0.0.1] ---&gt; MAIL FROM: &lt;&gt; 250 2.1.0 Sender OK ---&gt; RCPT TO: &lt;user@MonDomaine.com&gt; 250 2.1.5 OK ---&gt; DATA 354 End data with &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt; ---&gt; . 250 2.0.0 Ok: queued as 079474CE44 ---&gt; QUIT 221 2.0.0 Bye Connection closed by foreign host&lt;/textarea&gt;
&lt;p&gt;On regarde les logs pour v&#233;rifier.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;MAILDROP - Filtre Message&lt;/h2&gt;
&lt;p&gt;Le fichier /home/virtual/.mailfilter que nous avons cr&#233;&#233; plus haut est commun &#224; tous les comptes et sera appliqu&#233; &#224; chaque mail. Si nous voulions appliquer des r&#232;gles sp&#233;cifiques &#224; un utilisateur, il nous suffirait de cr&#233;er un autre fichier .mailfilter dans le r&#233;pertoire de l'utilisateur. &lt;br class='autobr' /&gt;
Nous pourrions par exemple rediriger des emails dans des r&#233;pertoires sp&#233;cifiques de cette fa&#231;on.&lt;/p&gt;
&lt;p&gt;Par exemple, pour que temporairement, les mails de Pierre arrivent &#224; Paul, pendant que Pierre est en vacances. &lt;br class='autobr' /&gt;
Par exemple, je ne veux plus voir les mails provenant de Jacques.&lt;/p&gt;
&lt;p&gt;Exemple de fichier .mailfilter personnel :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='18' class='spip_cadre spip_cadre_block' dir='ltr'&gt;#elimine les messages en provenance de l'adresse ci-dessous if( \ /^From: .*actu@b\.linternaute\.com/:h \ ) exception { to &#034;/dev/null&#034; } ##### annonces ##### if( \ /^From: .*alerte@avendrealouer\.fr/:h \ || /^From: .*mailing_pap@pap\.fr/:h \ || /^Sender: .*alertemail@pap\.fr/:h \ ) exception { to &#034;${DEFAULT}/.annonces/&#034; }&lt;/textarea&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; : Pour &#233;viter que l'administrateur postfix ait &#224; cr&#233;er manuellement toutes ces r&#232;gles de gestion de mail, nous utiliserons eGroupware qui permettra &#224; chaque utilisateur de g&#233;rer ses propres filtres.&lt;/p&gt;
&lt;p&gt;Bien s&#251;r nous devons appliquer les m&#234;mes droits que pour le fichier .mailfilter g&#233;n&#233;ral &#224; ces fichiers personnels si nous les cr&#233;ons manuellement :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;chown vmail: /home/virtual/user@MonDomaine.com/.mailfilter chmod 600 /home/virtual/user@MonDomaine.com/.mailfilter&lt;/textarea&gt;
&lt;p&gt;Vous &#234;tes excellent ! Votre MDA est install&#233;.&lt;/p&gt;
&lt;p&gt;A ce stade, votre SMTP et votre MDA sur actifs sur le serveur Mail.&lt;/p&gt;
&lt;p&gt;Votre serveur sait livrer correctement les mails qu'il re&#231;oit (les ranger dans le bon dossier quand il les re&#231;oit), il sait les envoyer (smtp), la partie serveur (host) est faite.&lt;/p&gt;
&lt;p&gt;Cependant, le client ne peut pas encore communiquer avec le serveur pour visualiser ses mails (&#224; part d'aller sur la console).&lt;/p&gt;
&lt;p&gt;Nous allons dans l'article suivant installer Courrier-IMAP.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>MAIL : 1&#232;re ETAPE [DEBIAN]</title>
		<link>http://info.lesbarques.fr/spip.php?article99</link>
		<guid isPermaLink="true">http://info.lesbarques.fr/spip.php?article99</guid>
		<dc:date>2008-07-23T14:30:10Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Georges Charpenay</dc:creator>


		<dc:subject>DEBIAN</dc:subject>
		<dc:subject>LINUX</dc:subject>
		<dc:subject>MAIL</dc:subject>

		<description>
&lt;p&gt;Nous allons construire un serveur de Mail sous Debian. &lt;br class='autobr' /&gt;
La premi&#232;re &#233;tape consiste &#224; t&#233;l&#233;charger les paquets et &#224; construire un serveur de base, pour ajouter, petit &#224; petit, tous les modules pour faire un serveur de production, s&#233;curis&#233;. &lt;br class='autobr' /&gt;
Cette premi&#232;re &#233;tape est strictement la m&#234;me que pour la premi&#232;re &#233;tape d'installation du serveur LAMP d&#233;crite dans ce site. &lt;br class='autobr' /&gt;
Suivez-moi !&lt;/p&gt;


-
&lt;a href="http://info.lesbarques.fr/spip.php?rubrique80" rel="directory"&gt;Installation serveur de mail &lt;/a&gt;

/ 
&lt;a href="http://info.lesbarques.fr/spip.php?mot5" rel="tag"&gt;DEBIAN&lt;/a&gt;, 
&lt;a href="http://info.lesbarques.fr/spip.php?mot7" rel="tag"&gt;LINUX&lt;/a&gt;, 
&lt;a href="http://info.lesbarques.fr/spip.php?mot36" rel="tag"&gt;MAIL&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='http://info.lesbarques.fr/local/cache-vignettes/L150xH100/athlete-1840437_1920-f26ca.jpg?1756777398' class='spip_logo spip_logo_right' width='150' height='100' alt=&#034;&#034; /&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Nous allons construire un serveur de Mail sous Debian.&lt;/p&gt;
&lt;p&gt;La premi&#232;re &#233;tape consiste &#224; t&#233;l&#233;charger les paquets et &#224; construire un serveur de base, pour ajouter, petit &#224; petit, tous les modules pour faire un serveur de production, s&#233;curis&#233;.&lt;/p&gt;
&lt;p&gt;Cette premi&#232;re &#233;tape est strictement la m&#234;me que pour la premi&#232;re &#233;tape d'installation du serveur LAMP d&#233;crite dans ce site.&lt;/p&gt;
&lt;p&gt;&lt;a href='http://info.lesbarques.fr/spip.php?article82' class=&#034;spip_in&#034;&gt;Suivez-moi !&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>MAIL : 2&#232;me Etape - Postfix, MySQL [DEBIAN]</title>
		<link>http://info.lesbarques.fr/spip.php?article93</link>
		<guid isPermaLink="true">http://info.lesbarques.fr/spip.php?article93</guid>
		<dc:date>2008-07-23T14:23:58Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Georges Charpenay</dc:creator>


		<dc:subject>DEBIAN</dc:subject>
		<dc:subject>LINUX</dc:subject>
		<dc:subject>MYSQL</dc:subject>
		<dc:subject>DNS</dc:subject>
		<dc:subject>POSTFIX</dc:subject>

		<description>
&lt;p&gt;Nous allons installer un serveur mail complet utilisant le Virtual Mail (mysql), cette m&#233;thode de gestion des mails est plus simple &#224; g&#233;rer et moins lourde que la m&#233;thode par &#034;maildir&#034;(gestion de fichiers). &lt;br class='autobr' /&gt;
Elle nous contraint &#224; installer une base MySQL sur le serveur mail. &lt;br class='autobr' /&gt;
Dans un souci de compatibilit&#233; avec eGroupWare sur notre serveur LAMP (notre choix), nous allons utiliser le protocole IMAP pour la distribution du courrier, assur&#233; par le service courrier-imap. &lt;br class='autobr' /&gt;
Pour le service (&#8230;)&lt;/p&gt;


-
&lt;a href="http://info.lesbarques.fr/spip.php?rubrique80" rel="directory"&gt;Installation serveur de mail &lt;/a&gt;

/ 
&lt;a href="http://info.lesbarques.fr/spip.php?mot5" rel="tag"&gt;DEBIAN&lt;/a&gt;, 
&lt;a href="http://info.lesbarques.fr/spip.php?mot7" rel="tag"&gt;LINUX&lt;/a&gt;, 
&lt;a href="http://info.lesbarques.fr/spip.php?mot18" rel="tag"&gt;MYSQL&lt;/a&gt;, 
&lt;a href="http://info.lesbarques.fr/spip.php?mot37" rel="tag"&gt;DNS&lt;/a&gt;, 
&lt;a href="http://info.lesbarques.fr/spip.php?mot38" rel="tag"&gt;POSTFIX&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='http://info.lesbarques.fr/local/cache-vignettes/L150xH86/postfix_mail-a730c.jpg?1756848145' class='spip_logo spip_logo_right' width='150' height='86' alt=&#034;&#034; /&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Nous allons installer un serveur mail complet utilisant le Virtual Mail (mysql), cette m&#233;thode de gestion des mails est plus simple &#224; g&#233;rer et moins lourde que la m&#233;thode par &#034;maildir&#034;(gestion de fichiers).&lt;/p&gt;
&lt;p&gt;Elle nous contraint &#224; installer une base MySQL sur le serveur mail.&lt;/p&gt;
&lt;p&gt;Dans un souci de compatibilit&#233; avec eGroupWare sur notre serveur LAMP (&lt;a href='http://info.lesbarques.fr/spip.php?article89' class=&#034;spip_in&#034;&gt;notre choix&lt;/a&gt;), nous allons utiliser le protocole IMAP pour la distribution du courrier, assur&#233; par le service &lt;i&gt;courrier-imap&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Pour le service SMTP, nous utiliserons &#034;&lt;i&gt;Postfix&lt;/i&gt;&#034;&lt;/p&gt;
&lt;p&gt;Pour la protection anti-spam, nous utiliserons &#034;&lt;i&gt;SpamAssassin, Dspam, et Amavisd&lt;/i&gt;&#034;.&lt;/p&gt;
&lt;p&gt;Pour la protection anti-virus, nous utiliserons &#034;&lt;i&gt;clamav&lt;/i&gt;&#034;&lt;/p&gt;
&lt;p&gt;Nous prendrons constamment dans les articles de cette rubrique, le nom de notre domaine que nous appelerons &lt;i&gt;mondomaine.com&lt;/i&gt; et le nom du hostname du serveur de mail que nous appellerons &lt;i&gt;srv-mail&lt;/i&gt;.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Pr&#233;paration&lt;/h2&gt;
&lt;p&gt;Dans un premier temps il faut maintenir le syst&#232;me &#224; jour :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;apt-get update&lt;/p&gt;
&lt;p&gt;apt-get dist-upgrade&lt;/i&gt;*&lt;/p&gt;
&lt;p&gt;Il faut ensuite modifier les fichiers suivant s'ils ne sont pas en accord avec votre domaine (&lt;i&gt;mondomaine.com&lt;/i&gt;) et le nom de votre serveur(&lt;i&gt;srv-mail&lt;/i&gt;) :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; /etc/hostname de la fa&#231;on suivante :&lt;/li&gt;&lt;/ul&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;srv-mail.mondomaine.com&lt;/textarea&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; /etc/hosts :&lt;/li&gt;&lt;/ul&gt;
&lt;textarea readonly='readonly' cols='40' rows='3' class='spip_cadre spip_cadre_block' dir='ltr'&gt;127.0.0.1 srv-mail.mondomaine.com localhost.localdomain localhost srv-mail&lt;/textarea&gt;
&lt;p&gt;127.0.0.1 peut-&#234;tre remplac&#233; par l'adresse IP du serveur, &#231;a marche aussi.&lt;br class='autobr' /&gt;
Dans un fichier hosts, l'adresse ip peut-&#234;tre suivie de plusieurs noms, par ex : 192.168.45.14 svr-lamp.mondomaine.com svr-lamp&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Installation d'un cache DNS local&lt;/h2&gt;
&lt;p&gt;Le serveur mail envoyant de fa&#231;on intensive des requ&#234;tes DNS, par souci de performances, nous avons pr&#233;f&#233;r&#233; installer un cache DNS local.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;apt-get install bind9&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;La configuration de base du paquet Bind9 fournit un serveur cache. (bind peut servir comme serveur dns local ainsi que pour g&#233;rer son nom de domaine (ex : Mx). Cependant, nous ne l'utiliserons qu'en mati&#232;re de cache DNS (optimisation bande passante) car nous avons un serveur DNS.&lt;/p&gt;
&lt;p&gt;Relancer ensuite le serveur DNS :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;/etc/init.d/bind9 restart&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Il faut ensuite tester la r&#233;solution DNS locale avec la commande nslookup :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='3' class='spip_cadre spip_cadre_block' dir='ltr'&gt;nslookup &gt;srv-mail&lt;/textarea&gt;
&lt;p&gt;La commande doit ainsi retourner :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;Default server: 127.0.0.1 Address: 127.0.0.1#53&lt;/textarea&gt;
&lt;p&gt;OU&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;Default server: adresse_ip_serveur Address: adresse_ip_serveur#53&lt;/textarea&gt;
&lt;p&gt;Si vous avez dans votre r&#233;seau un serveur DNS, l'adresse DNS retournera l'adresse ip de votre serveur DNS Local.&lt;/p&gt;
&lt;p&gt;Puis il faut tester un site ext&#233;rieur pour voir si tout se passe bien :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;&gt; google.fr&lt;/textarea&gt;
&lt;p&gt;La r&#233;solution doit se faire correctement et afficher l'adresse ip d'un serveur Google.&lt;/p&gt;
&lt;p&gt;Il faut maintenant installer les outils de compilation n&#233;cessaire au bon fonctionnement de la suite des articles pour installer le serveur mail :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;apt-get install bzip2 gcc libpcre3-dev libpcre3 courier-authlib-dev g++ libtool libmysqlclient15-dev make libssl-dev&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Si toutefois, un paquet n'est pas reconnu (parce qu'il n'est plus le m&#234;me - nom diff&#233;rent ), on peut toujours lancer la commande aptitude search avec le d&#233;but du nom du paquet, puis corriger la commande).&lt;/p&gt;
&lt;p&gt;La pr&#233;paration du serveur est termin&#233;e, nous pouvons maintenant passer &#224; l'installation de Postfix et MySQL.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Installation de Postfix et MySQL&lt;/h2&gt;
&lt;p&gt;&lt;i&gt;apt-get install postfix postfix-mysql mysql-client-5.0 mysql-server-5.0 courier-authdaemon courier-authlib-mysql libsasl2-2 libsasl2-modules sasl2-bin libpam-mysql openssl ntp tmpreaper&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Tout le n&#233;cessaire pour l'installation de Postfix et MySQL sont dans cette commande ci-dessus.&lt;/p&gt;
&lt;p&gt;Le syst&#232;me va poser des questions apr&#232;s l'installation de certains paquets, il faut laisser les choix par d&#233;faut partout sauf pour le point suivant :&lt;/p&gt;
&lt;p&gt;postfix configuration :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;R&#233;ponse : SITE INTERNET&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SECURISATION&lt;/strong&gt; :&lt;/p&gt;
&lt;p&gt;Nous devons ensuite s&#233;curiser la base MySQL gr&#226;ce au script pr&#233;sent sur les syst&#232;me Debian :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;mysql_secure_installation&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;(cette commande a d&#233;j&#224; &#233;t&#233; ex&#233;cut&#233;e dans l'installation du serveur LAMP de ce site. Il n'est n&#233;cessaire de l'ex&#233;cuter que si vous installez seulement un serveur mail). Elle demande, en retour de r&#233;pondre &#224; toutes les questions :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Enter current password for root (enter for none) :&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;R&#233;ponse : (Touche Entr&#233;e - car nous n'avons pas de mot de passe par d&#233;faut)&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Set root password :&lt;/i&gt; (voulez-vous mettre un mot de passe MYSQL)&lt;/p&gt;
&lt;p&gt;R&#233;ponse : &lt;i&gt;Yes&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;New password :&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;R&#233;ponse : &lt;i&gt;NotreNouveauMotdePasseMysql&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Ensuite Confirmer le mot de passe.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Remove anonymous users ?&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;R&#233;ponse : &lt;i&gt;Yes&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Disallow root login remotely ?&lt;/i&gt; (d&#233;sactiver connection hors localhost)&lt;/p&gt;
&lt;p&gt;R&#233;ponse : &lt;i&gt;No&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Remove test database ... ?&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;R&#233;ponse : &lt;i&gt;Yes&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Reload privilege tables now ?&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;R&#233;ponse : &lt;i&gt;Yes&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;MySQL est install&#233; maintenant il faut cr&#233;er la base MySQL postfix.&lt;/p&gt;
&lt;p&gt;Nous n'utilisons pas le serveur Web apache2 sur ce serveur mail, ainsi l'outil PHPMyAdmin qui fonctionne sous un serveur web (en l'occurence : apache2), n'est pas accessible pour faciliter la cr&#233;ation des utilisateurs et des bases MySQL.&lt;/p&gt;
&lt;p&gt;Nous sommes donc contraints &#224; lancer les commandes &#224; la main.&lt;/p&gt;
&lt;p&gt;Cette premi&#232;re commande cr&#233;e la base postfix :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;mysqladmin -u root --password='Notre_Mot_de_Passe_Mysql' create postfix&lt;/textarea&gt;
&lt;p&gt;Il faut cr&#233;er maintenant l'utilisateur postfix qui sera associ&#233; &#224; cette base de donn&#233;e :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='11' class='spip_cadre spip_cadre_block' dir='ltr'&gt;$ mysql -u root -p Enter password: GRANT ALL PRIVILEGES ON postfix.* TO &#034;postfix&#034;@&#034;localhost&#034; IDENTIFIED BY 'Mot_de_passe_pour_postfix'; GRANT ALL PRIVILEGES ON postfix.* TO &#034;postfix&#034;@&#034;adresse_ip_serveur&#034; IDENTIFIED BY 'Mot_de_passe_pour_postfix';&lt;/textarea&gt;
&lt;p&gt;Le 2&#232;me utilisateur Postfix que nous avons cr&#233;&#233; (sur l'adresse IP du serveur) permet au serveur LAMP (autre adresse ip car serveurs s&#233;par&#233;s) d'avoir l'autorisation de venir stocker/lire les informations dans la base de donn&#233;e postfix (que nous utilisons notamment pour que le serveur lamp puisse venir r&#233;cup&#233;rer ses mails pour qu'egroupware, install&#233; sur le serveur Lamp, puisse en disposer).&lt;/p&gt;
&lt;p&gt;Il faut maintenant cr&#233;er plusieurs tables dans la base Postfix, ces tables seront cr&#233;&#233;es en important le fichier &#034;postfix.sql&#034;ci-dessous et en modifiant tous les champs pour inclure son domaine avec la commande : &#034;&lt;i&gt;sed&lt;/i&gt;&#034;.&lt;/p&gt;
&lt;div class='spip_document_116 spip_document spip_documents spip_document_file spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;9&#034; data-legende-lenx=&#034;&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='http://info.lesbarques.fr/IMG/zip/postfix.sql.zip' class=&#034; spip_doc_lien&#034; title='Zip - 1.5 kio' type=&#034;application/zip&#034;&gt;&lt;img src='http://info.lesbarques.fr/local/cache-vignettes/L64xH64/zip-f045b.svg?1772892860' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre '&gt;&lt;strong&gt;postfix
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Une fois postfix.sql sur votre serveur de mail, taper les commandes suivantes :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='3' class='spip_cadre spip_cadre_block' dir='ltr'&gt;sed -i 's/starbridge.org/mondomaine.com/g' postfix.sql mysql -u root -p &lt; postfix.sql&lt;/textarea&gt;
&lt;p&gt;&lt;strong&gt;Commentons le contenu du fichier import&#233; :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Seules les 3 premi&#232;res tables sont n&#233;cessaires pour le fonctionnement de postfix, les autres ne servent que pour l'interface Postfixadmin que nous installerons dans les articles suivants.&lt;/p&gt;
&lt;p&gt;Le password (MD5) est &#034;&lt;i&gt;secret&lt;/i&gt;&#034; ($1$caea3837$gPafod/Do/8Jj5M9HehhM.)&lt;/p&gt;
&lt;p&gt; Il faudra le changer plus tard, mais nous aborderons la chose dans les articles suivants.&lt;/p&gt;
&lt;p&gt;Le premier INSERT permet &#224; Postfix de savoir que ce domaine est virtuel et qu'il doit donc le g&#233;rer. (base mysql et non maildir)&lt;/p&gt;
&lt;p&gt;Le 3&#232;me INSERT est un alias virtuel pointant vers un user de la table mailbox. Cet alias vers lui m&#234;me sera utilis&#233; par Postfixadmin.&lt;/p&gt;
&lt;p&gt;le 4&#232;me INSERT est un simple alias virtuel.&lt;/p&gt;
&lt;p&gt;Le 7&#232;me INSERT est un compte (boite email) virtuel, qui utilise un mot de passe encrypt&#233; en MD5.&lt;/p&gt;
&lt;p&gt;Les deux derniers INSERT permettent de cr&#233;er le superadministrateur que l'on utilisera plus tard dans Postfixadmin.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Configuration de Postfix&lt;/h2&gt;
&lt;p&gt;Notre fichier &lt;i&gt;/etc/postfix/main.cf&lt;/i&gt; est celui ci dessous, g&#233;n&#233;r&#233; par l'installation des paquets postfix :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='42' class='spip_cadre spip_cadre_block' dir='ltr'&gt;smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) biff = no append_dot_mydomain = no myhostname = srv-mail.mondomaine.com 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 relay_domains = proxy:mysql:/etc/postfix/mysql_relay_domains_maps.cf 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&lt;/textarea&gt;
&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt; : N'oubliez pas de remplacer la ligne&lt;br class='autobr' /&gt;
&lt;i&gt;myhostname = srv-mail.mondomaine.com&lt;/i&gt;&lt;br class='autobr' /&gt;
par votre &lt;i&gt;nom_de_serveur.votre_domaine.com&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Postfix utilise un 2&#232;me fichier de configuration, toujours g&#233;n&#233;r&#233; par les paquets, qui est le suivant &lt;i&gt;/etc/postfix/master.cf&lt;/i&gt; :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='136' class='spip_cadre spip_cadre_block' dir='ltr'&gt;# # Postfix master process configuration file. For details on the format # of the file, see the master(5) manual page (command: &#034;man 5 master&#034;). # # ========================================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) # ========================================================================== smtp inet n - - - - smtpd 587 inet	n	-	-	-	-	smtpd -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_etrn_restrictions=reject -o smtpd_client_restrictions=permit_sasl_authenticated,reject #smtps inet n - - - - smtpd # -o smtpd_tls_wrappermode=yes # -o smtpd_sasl_auth_enable=yes # -o smtpd_client_restrictions=permit_sasl_authenticated,reject #628 inet n - - - - qmqpd pickup fifo n - - 60 1 pickup -o receive_override_options=no_header_body_checks -o content_filter= cleanup unix n - - - 0 cleanup qmgr fifo n - n 300 1 qmgr #qmgr fifo n - - 300 1 oqmgr tlsmgr unix - - - 1000? 1 tlsmgr rewrite unix - - - - - trivial-rewrite bounce unix - - - - 0 bounce defer unix - - - - 0 bounce trace unix - - - - 0 bounce verify unix - - - - 1 verify flush unix n - - 1000? 0 flush proxymap unix - - n - - proxymap proxywrite unix - - n - 1 proxymap smtp unix - - - - - smtp # When relaying mail as backup MX, disable fallback_relay to avoid MX loops relay unix - - - - - smtp -o fallback_relay= # -o smtp_helo_timeout=5 -o smtp_connect_timeout=5 showq unix n - - - - showq error unix - - - - - error retry unix - - - - - error discard unix - - - - - discard local unix - n n - - local virtual unix - n n - - virtual lmtp unix - - - - - lmtp anvil unix - - - - 1 anvil scache unix - - - - 1 scache # # ==================================================================== # Interfaces to non-Postfix software. Be sure to examine the manual # pages of the non-Postfix software to find out what options it wants. # # Many of the following services use the Postfix pipe(8) delivery # agent. See the pipe(8) man page for information about ${recipient} # and other message envelope options. # ==================================================================== # # maildrop. See the Postfix MAILDROP_README file for details. # Also specify in main.cf: maildrop_destination_recipient_limit=1 # maildrop unix - n n - - pipe flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient} # # See the Postfix UUCP_README file for configuration details. # uucp unix - n n - - pipe flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient) # # Other external delivery methods. # ifmail unix - n n - - pipe flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient) bsmtp unix - n n - - pipe flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient scalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension} mailman unix - n n - - pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}&lt;/textarea&gt;
&lt;p&gt;Voila, maintenant que Postfix est configur&#233;, param&#233;trons le syst&#232;me pour le lancement du processus de Postfix, avant de red&#233;marrer le service :&lt;/p&gt;
&lt;p&gt;Cr&#233;ons le groupe et l'utilisateur VMAIL avec un uid et guid de 20001, ainsi que le r&#233;pertoire des mails virtuels.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;groupadd -g 20001 vmail&lt;/p&gt;
&lt;p&gt;useradd -g vmail -u 20001 vmail -d /home/virtual -m&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;On s&#233;curise ensuite le r&#233;pertoire cr&#233;&#233; pour seulement autoriser l'utilisateur VMAIL &#224; &#233;crire dedans :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;chown -R vmail : /home/virtual&lt;/p&gt;
&lt;p&gt;chmod 770 /home/virtual&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Les mails vont donc se retrouver dans /home/virtual.&lt;/p&gt;
&lt;p&gt;Ensuite, il faut cr&#233;er les fichiers d'appel des tables par Postfix.&lt;/p&gt;
&lt;p&gt;Il faut donc rapatrier sur votre serveur mail les fichiers &#034;.cf&#034; que vous pouvez t&#233;l&#233;charger sur cet article.&lt;br class='autobr' /&gt;
Nous les copierons dans &lt;i&gt;/etc/postfix&lt;/i&gt;&lt;br class='autobr' /&gt;
Nous modifierons, pour changer les phrases faisant allusion au mot_de_passe, par le vrai mot de passe.&lt;br class='autobr' /&gt;
Cette modification peut-&#234;tre faite en une seule fois gr&#226;ce &#224; la commande sed comme ci-dessous :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;cd /etc/postfix&lt;/p&gt;
&lt;p&gt;sed -i 's/toto/mon_mot_de_passe/g' mysql_virtual_alias_maps.cf mysql_virtual_domains_maps.cf mysql_virtual_mailbox_maps.cf&lt;br class='autobr' /&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;(attention ! : c'est une m&#234;me commande )&lt;/p&gt;
&lt;p&gt;La commande sed permet de specifier votre password d'acc&#232;s &#224; la base de donn&#233;es et le modifie dans les fichiers concern&#233;s.&lt;/p&gt;
&lt;p&gt;Dans l'exemple, c'est toto, qu'il fallait remplacer.&lt;/p&gt;
&lt;p&gt;On s&#233;curise maintenant tous les fichiers :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;chmod 640 /etc/postfix/mysql_*&lt;/p&gt;
&lt;p&gt;chgrp postfix /etc/postfix/mysql_*&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Bravo ! Postfix est configur&#233; et le SMTP est actif sur notre serveur.&lt;/p&gt;
&lt;p&gt;Les &#233;tapes suivantes seront les ajouts de Maildrop, d'un MDA (Mail Deliver Agent) pour livrer les mails dans les boites, de Courrier-IMAP et des anti-spams.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		
		<enclosure url="http://info.lesbarques.fr/IMG/gz/mysql.tar.gz" length="10240" type="application/x-gzip" />
		

	</item>



</channel>

</rss>
