<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.paradoxal.org/blog/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Blog Blog - Balise - SMTP</title>
  <link>http://www.paradoxal.org/blog/</link>
  <atom:link href="http://www.paradoxal.org/blog/feed/tag/SMTP/rss2" rel="self" type="application/rss+xml"/>
  <description>Blogblog vous propose  un aide mémoire d'un développeur PHP / Mysql passionné par l'administration Linux. Seza - son autheur - vous met donc à disposition ses astuces, les mauvais moments et difficultés rencontrées mais aussi ses connaissances.
Même si ce blog s'oriente très clairement vers les lignes de code illisibles pour nombreux d'entre vous, actualité, coup de gueule et information sur les technos du moment ne seront pas absentes. Bonne visite !</description>
  <language>fr</language>
  <pubDate>Thu, 21 Aug 2008 19:06:04 +0200</pubDate>
  <copyright>licence creative commons</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Serveur Debian - Antispam email</title>
    <link>http://www.paradoxal.org/blog/post/2007/08/05/Serveur-Debian-Antispam-email</link>
    <guid isPermaLink="false">urn:md5:29461e8f6f9628573bac2a8869aace16</guid>
    <pubDate>Sat, 25 Aug 2007 13:19:00 +0200</pubDate>
    <dc:creator>Seza</dc:creator>
        <category>Serveur Debian</category>
        <category>Dspam</category><category>Linux</category><category>Mysql</category><category>SMTP</category><category>Spam</category><category>Sécurité</category><category>Utilisateurs virtuels</category>    
    <description>&lt;p&gt;&lt;strong&gt;CHAPITRE 8&amp;nbsp;: DSPAM&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;Maintenant que nous possédons un très bel outil qui nous permet d'envoyer et de recevoir des e-mails, il ne saurait tarder à ce que vous receviez quelques spams.
Nous allons donc installer un antispam.&lt;/p&gt;


&lt;p&gt;Pour commencer installons déjà un antispam. Etant un habitué de Spamassassin et en cherchant sur la toile de quoi aller plus loin avec SA j'ai découvert Dspam. Alors j'ai choisi d'utiliser du coup ce dernier pour mon tutorial. Je préfère la démarche de mise en place autour de Dspam, malgré que je le connaisse peu, je me sens plus à l'aise qu'avec SA.
Dspam offre aussi un atout performance par rapport à SA ce qui n'est pas négligeable surtout si vous hébergez beaucoup de boites plus ou moins spammées.
Puisque nous hébergeons des utilisateurs virtuels sur notre Postfix et Dspam offre la possibilité d'être couplé à Mysql et d'être configurable utilisateur par utilisateur, nous allons par conséquent exploiter cette possibilité.&lt;/p&gt;


&lt;p&gt;Dspam à la particularité de devoir tout apprendre, c'est à dire qu'au début aucun spam ne sera recensés. Nous allons configurer deux boites e-mails &lt;q&gt;« spam@bebenet.local »&lt;/q&gt; et &lt;q&gt;« ham@bebenet.local »&lt;/q&gt; auxquelles nous transférerons respectivement les faux négatifs et les faux positifs afin que Dspam apprenne à reconnaître les bons des mauvais e-mails.&lt;/p&gt;


&lt;p&gt;Maintenant que le décor est planté, cette configuration aura le démérite que chaque utilisateur devra commencer de zéro avec Dspam mais Dspam aura la finesse de filtrer la boite e-mail de l'utilisateur tout comme ce dernier lui aura appris. Un véritable filtre personnalisé.
Néanmoins il existe des méthodes pour que Dspam apprenne plus vite à partir d'une base de spam préétablie. Je n'utiliserai pas cette fonctionnalité pour deux raisons.
La première est du fait que les bases de spams vieillissent très vite et les spams appris ne seront plus d'actualité ce qui ne servira en rien à Dspam.
La deuxième provient de mon expérience personnelle avec Dspam. Recevant une centaine de spam par jour Dspam n'a pas mis plus de deux heures pour commencer à attraper les premiers spams en trois jours il filtrait tout. Après les quelques semaines qui se sont passées entre la rédaction de se tuto et sa publication. Voici les statistique de mon Dspam.&lt;/p&gt;


&lt;p&gt;2 883 spam détecté dont 7 faux positifs et sur les 758 e-mail détecté comme valide seulement 53 faux négatif. Bien entendu ces résultats peuvent fortement varier en fonction de la typologie et de la variabilité des e-mails reçus.&lt;/p&gt;


&lt;p&gt;Dspam à son installation cherchera à se connecter en &lt;q&gt;« root »&lt;/q&gt; sur notre base de données. Etant donné que nous avions renommer l'utilisateur &lt;q&gt;« root »&lt;/q&gt; en &lt;q&gt;« bebeserv »&lt;/q&gt;, nous ferons machine arrière le temps de l'installation.&lt;/p&gt;


&lt;p&gt;Il est temps d'installer Dspam maintenant – place à l'action&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
ALBAN@bebeserv:~$ sudo -i
Password:
bebeserv:/etc/mysql# mysql -u bebeserv -p
Enter password:
[...]

mysql&amp;gt; rename user bebeserv@localhost to root@localhost;
Query OK, 0 rows affected (0.00 sec)

mysql&amp;gt; flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql&amp;gt; exit
Bye
bebeserv:~# apt-get update
[...]
bebeserv:~# apt-get install dspam dspam-drv-mysql dspam-doc
[...]
&lt;/pre&gt;


&lt;p&gt;Lors de l'installation, répondez oui à &lt;q&gt;« dbconfig-common »&lt;/q&gt;, entrez le mot de passe &lt;q&gt;« root »&lt;/q&gt; (enfin &lt;q&gt;« bebeserv »&lt;/q&gt;) de Mysql puis le mot de passe de l'utilisateur Dspam qui sera créé et confirmer ce mot de passe.&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/mysql# mysql -u root -p
Enter password:
[...]

mysql&amp;gt; rename user root@localhost to bebeserv@localhost;
Query OK, 0 rows affected (0.00 sec)

mysql&amp;gt; flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql&amp;gt; exit
Bye
&lt;/pre&gt;


&lt;p&gt;Je vous passe ici l'exploration de la base de données créée qui doit normalement se prénomée par un nom un peu barbare dixit&amp;nbsp;: &lt;q&gt;« libdspam7drvmysql »&lt;/q&gt; et l'utilisateur attribué sera nommé &lt;q&gt;« libdspam7-drv-my »&lt;/q&gt;.&lt;/p&gt;


&lt;p&gt;Place à la configuration&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:~# nano /etc/dspam/dspam.conf

StorageDriver /usr/lib/dspam/libmysql_drv.so

DeliveryHost        127.0.0.1
DeliveryPort        10026
DeliveryIdent       localhost
DeliveryProto       SMTP

Preference &amp;quot;signatureLocation=message&amp;quot;  # 'message' or 'headers'
Preference &amp;quot;showFactors=on&amp;quot;
Preference &amp;quot;spamAction=tag&amp;quot;
Preference &amp;quot;spamSubject=***SPAM***&amp;quot;

#
# Purge configuration: Set dspam_clean purge default options, if not otherwise
# specified on the commandline
#
#PurgeSignatures 14          # Stale signatures
#PurgeNeutral    90          # Tokens with neutralish probabilities
#PurgeUnused     90          # Unused tokens
#PurgeHapaxes    30          # Tokens with less than 5 hits (hapaxes)
#PurgeHits1S    15          # Tokens with only 1 spam hit
#PurgeHits1I    15          # Tokens with only 1 innocent hit

#
# Purge configuration for SQL-based installations using purge.sql
#
PurgeSignature  off # Specified in purge.sql
PurgeNeutral   90
PurgeUnused    off # Specified in purge.sql
PurgeHapaxes   off # Specified in purge.sql
PurgeHits1S    off # Specified in purge.sql
PurgeHits1I    off # Specified in purge.sql

Opt out

ServerPort              10027
ServerQueueSize 32
ServerPID              /var/run/dspam/dspam.pid

ServerMode standard

ServerParameters        &amp;quot;--deliver=innocent -d %u&amp;quot;
ServerIdent             &amp;quot;localhost.localdomain&amp;quot;
	
DeliveryHost 127.0.0.1
DeliveryPort 10026
DeliveryIdent localhost
DeliveryProto SMTP
&lt;/pre&gt;


&lt;p&gt;Enregistrer et quitter.
Maintenant enregistrons les préférences des utilisateurs par défaut&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:~# nano /etc/dspam/default.prefs

trainingMode=TEFT
spamAction=tag
spamSubject=***SPAM***
signatureLocation=message
showFactors=on
optIn=off
optOut=on
&lt;/pre&gt;


&lt;p&gt;Enregistrez et quittez.
Activons Dspam&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:~# nano /etc/default/dspam
&lt;/pre&gt;


&lt;p&gt;START=yes&lt;/p&gt;


&lt;p&gt;Enregistrez et quittez.
Maintenant faisons les même réglages dans la base de données de Dspam&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:~# dspam_admin ch pref default trainingMode TEFT
[...]
bebeserv:~# dspam_admin ch pref default spamAction tag
[...]
bebeserv:~# dspam_admin ch pref default spamSubject &amp;quot;***SPAM***&amp;quot;
[...]
bebeserv:~# dspam_admin ch pref default enableBNR on
[...]
bebeserv:~# dspam_admin ch pref default enableWhitelist on
[...]
bebeserv:~# dspam_admin ch pref default statisticalSedation 5
[...]
bebeserv:~# dspam_admin ch pref default  signatureLocation headers
[...]
bebeserv:~# dspam_admin ch pref default whitelistThreshold 10
[...]
bebeserv:~# dspam_admin ch pref default showFactors on
[...]
&lt;/pre&gt;


&lt;p&gt;C'est terminer pour Dspam nous pouvons démarrer le démon&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:~# /etc/init.d/dspam start
[...]
&lt;/pre&gt;


&lt;p&gt;Il nous reste à coupler Dspam à Postfix.&lt;/p&gt;


&lt;p&gt;Commencez par préparer nos deux boites e-mail &lt;q&gt;« spam@bebenet.local »&lt;/q&gt; et &lt;q&gt;« ham@bebenet.local »&lt;/q&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:~# cd /etc/postfix/conf.d/
bebeserv:/etc/postfix/conf.d# nano virtual_mailbox

spam@bebenet.local      bebenet.local/spam/
ham@bebenet.local       bebenet.local/ham/
&lt;/pre&gt;


&lt;p&gt;Enregistrez et quittez.
Rechargeons la base&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/postfix/conf.d# postmap virtual_mailbox
&lt;/pre&gt;


&lt;p&gt;C'est deux boîtes e-mail sont fictive en fait et ne recevront jamais de messages. Elles seront couplé à Dspam et nous allons préparer ce couplage grâce à ce fichier&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/postfix/conf.d# nano transport

spam@paradoxal.org      dspam-spam:
ham@paradoxal.org       dspam-ham:
&lt;/pre&gt;


&lt;p&gt;Enregistrez et quittez.&lt;/p&gt;


&lt;p&gt;Ce fichier va rediriger nos deux boites e-mail non pas vers le transport classique &lt;q&gt;« virtual »&lt;/q&gt; mais vers deux nouveaux transports que nous allons définir un peu plus loin.
Ces deux boites e-mail ne devrons pas être scannées par Dspam (logique) et nous allons aussi préparer un fichier qui va nous permettre de définir les boites à scanner et celle à ne pas scanner.&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/postfix/conf.d# nano dspam_filter_access

#les 2 boites à ne pas filtrer (celles où sont envoyé les emails pour l'apprentissage de Dspam)
/^(spam|ham)@.*$/ OK
#puis domaines qui n'ont que la vérification antivirus, dans notre cas, tous les autres domaines :
/^.*$/ FILTER dspam-filter:127.0.0.1:10027
&lt;/pre&gt;


&lt;p&gt;Enregistrez et quittez.
Voilà comme vous pouvez le voir ce dernier fichier utilise les expressions régulières, pour que Postfix puisse les comprendre nous allons devoir lui installer un complément&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/postfix/conf.d# apt-get install postfix-pcre
[...]
&lt;/pre&gt;


&lt;p&gt;Voilà nos fichiers de configuration sont prêt, il faut maintenant définir les nouveaux transports dans Postfix&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/postfix/conf.d# cd ..
bebeserv:/etc/postfix# nano master.cf
&lt;/pre&gt;


&lt;p&gt;A la fin du fichier rentrez ceci&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
dspam-spam   unix    -       n       n       -       10      pipe
	flags=Rhq user=dspam argv=/usr/bin/dspam --user $sender --class=spam --source=error

dspam-ham   unix    -       n       n       -       10      pipe
	flags=Rhq user=dspam argv=/usr/bin/dspam --user $sender --class=innocent --source=error

dspam-filter unix - - n - 10 lmtp
	-o smtp_send_xforward_command=yes
	-o disable_mime_output_conversion=yes
	-o smtp_generic_maps=

localhost:10026 inet n - n - - smtpd
	-o content_filter=
	-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
	-o smtpd_helo_restrictions=
	-o smtpd_client_restrictions=
	-o smtpd_sender_restrictions=
	-o smtpd_recipient_restrictions=permit_mynetworks,reject
	-o mynetworks=127.0.0.0/8
	-o smtpd_authorized_xforward_hosts=127.0.0.0/8
&lt;/pre&gt;


&lt;p&gt;Enregistrez et quittez.&lt;/p&gt;


&lt;p&gt;Il nous reste plus qu'à dire à Postfix d'utiliser tout ceci&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/postfix# nano main.cf
&lt;/pre&gt;


&lt;p&gt;Rajoutez cette ligne&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
transport_maps = hash:/etc/postfix/conf.d/transport
&lt;/pre&gt;


&lt;p&gt;et modifiez celle-ci&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
smtpd_recipient_restrictions =
	permit_mynetworks,
	permit_sasl_authenticated,
	reject_invalid_hostname,
	reject_unauth_destination,
	reject_unknown_sender_domain,
	reject_unknown_recipient_domain,
	reject_unauth_destination,
	check_recipient_access pcre:/etc/postfix/conf.d/dspam_filter_access
&lt;/pre&gt;



&lt;p&gt;Enregistrez et quittez.
Rechargeons la configuration de Postfix pour terminer le travail&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/postfix# /etc/init.d/postfix reload
[...]
&lt;/pre&gt;


&lt;p&gt;Voilà c'est terminé, vous possédez maintenant un antispam, bien sûr il faudra lui apprendre à reconnaître les spams mais je ne doute pas que vous en serez très vite satisfait.&lt;/p&gt;


&lt;p&gt;Votre antispam est paramétrable par utilisateur ne l'oubliez pas&amp;nbsp;! Si l'un d'entre eux demande un tag différent c'est possible. Vous pouvez aussi voir les statistiques de Dspam par utilisateur pour voir son travail. Pour ceci regarder les commandes &lt;q&gt;« dspam_admin »&lt;/q&gt;, &lt;q&gt;« dspam_stats »&lt;/q&gt;.&lt;/p&gt;


&lt;p&gt;Pour voir les préférences par défaut&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/postfix# dspam_admin list preference default
[...]
&lt;/pre&gt;


&lt;p&gt;Pour voir les statistiques d'un utilisateur&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/postfix# dspam_stats -H user@bebenet.local
[...]
&lt;/pre&gt;


&lt;p&gt;Bientôt je ferais le tuto pour installer un antivirus email. Si aujourd'hui la majorité des emails reçu sont des virus (donc faire d'abord le tuto d'un antivirus aurais été mieux) et bien je pense que non. Dspam consomme tellement peu et reconnaît (pour l'instant) tellement bien les spams qu'il fait très bien le ménage que le besoin d'un antivirus ne se fait pas vraiment sentir.&lt;/p&gt;


&lt;p&gt;Une fois que vous aurez confiance en votre Dspam. Vous pourrez lui demander de ne pas vous transmettre les spams et ainsi à ce moment là branchez un antivirus sur votre Postfix. La consommation de ressources en sera bien moindre.&lt;/p&gt;


&lt;p&gt;A très bientôt&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/postfix# exit
logout
ALBAN@bebeserv:~$
&lt;/pre&gt;</description>
    
          <enclosure url="http://www.paradoxal.org/blog/public/tuto_debian/chapitre_8.pdf"
      length="99198" type="application/pdf" />
    
    
          <comments>http://www.paradoxal.org/blog/post/2007/08/05/Serveur-Debian-Antispam-email#comment-form</comments>
      <wfw:comment>http://www.paradoxal.org/blog/post/2007/08/05/Serveur-Debian-Antispam-email#comment-form</wfw:comment>
      <wfw:commentRss>http://www.paradoxal.org/blog/feed/rss2/comments/52</wfw:commentRss>
      </item>
    
  <item>
    <title>Contourné la restriction orange du port 25 !</title>
    <link>http://www.paradoxal.org/blog/post/2007/08/05/Contourne-la-restriction-orange-du-port-25</link>
    <guid isPermaLink="false">urn:md5:81ca75f7ebfda55725976703f386849b</guid>
    <pubDate>Fri, 10 Aug 2007 08:14:00 +0200</pubDate>
    <dc:creator>Seza</dc:creator>
        <category>Astuces</category>
        <category>Posfix</category><category>SASL</category><category>SMTP</category><category>Spam</category><category>Sécurité</category>    
    <description>&lt;p&gt;Si comme moi vous aviez sur votre réseau perso votre propre serveur mail et que vous êtes abonné orange, vous avez été confronter à la nouvelle restriction du port 25. C'est à dire l'obligation de passer par le smtp orange pour envoyé de l'email.&lt;/p&gt;    &lt;p&gt;Tant qu'on est dans la configuration type serveur local, il suffisait de lui demander de passer par orange pour transférer les email.&lt;/p&gt;


&lt;p&gt;Avec un postfix il suffisait d'ajouter dans le main.cf&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
relayhost = smtp.orange.fr
&lt;/pre&gt;


&lt;p&gt;Ce qui fonctionnait très bien.&lt;/p&gt;


&lt;p&gt;Maintenant que se passe t'il si son postfix est sur un serveur distant. Impossibilité de le contacter. étant donné que j'utilisais sur mon serveur perso l'authentification (sasl) pour l'envoie je n'ai pas eu grand chose à changé finalement.&lt;/p&gt;


&lt;p&gt;il a suffit de (comme orange l'indique) utiliser le port 583. Et dans postfix ceci se traduit ainsi (en décommentant ces lignes)&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
submission inet n       -       -       -       -       smtpd
  -o smtpd_enforce_tls=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
&lt;/pre&gt;


&lt;p&gt;Voilà, pensez aussi à recharger votre configuration. Ceci à pour effet de déporter l'authentification smtp  ou autrement dit la soumission d'email sur le port 583. Vous recevrez toujours vos email correctement par le port 25 ne vous inquiété pas.&lt;/p&gt;


&lt;p&gt;Il suffit maintenant d'indiquer à sont logiciel favoris d'utiliser le port 583 au lieu du 25 pour le smtp.&lt;/p&gt;


&lt;p&gt;C'est terminé. Pourvu que ça vous soit utile.&lt;/p&gt;


&lt;p&gt;PS&amp;nbsp;: pour paramétrer l'authentification smtp je vous renvoie à mon tuto debian correspondant&amp;nbsp;:&lt;/p&gt;</description>
    
    
    
          <comments>http://www.paradoxal.org/blog/post/2007/08/05/Contourne-la-restriction-orange-du-port-25#comment-form</comments>
      <wfw:comment>http://www.paradoxal.org/blog/post/2007/08/05/Contourne-la-restriction-orange-du-port-25#comment-form</wfw:comment>
      <wfw:commentRss>http://www.paradoxal.org/blog/feed/rss2/comments/50</wfw:commentRss>
      </item>
    
  <item>
    <title>Serveur Debian - Serveur email (MTA + MDA)</title>
    <link>http://www.paradoxal.org/blog/post/2007/08/05/Serveur-Debian-Serveur-email-MTA-MDA</link>
    <guid isPermaLink="false">urn:md5:19570fd3b6c6e5d032f01c4ca9e17b4e</guid>
    <pubDate>Tue, 07 Aug 2007 10:20:00 +0200</pubDate>
    <dc:creator>Seza</dc:creator>
        <category>Serveur Debian</category>
        <category>IMAP</category><category>Iptables</category><category>Linux</category><category>Posfix</category><category>SASL</category><category>SMTP</category><category>SSL</category><category>Userdb</category><category>Utilisateurs virtuels</category>    
    <description>&lt;p&gt;&lt;strong&gt;CHAPITRE 7&amp;nbsp;: POSTFIX &amp;amp; COURRIER-IMAP&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;Postfix est certainement un des meilleurs serveurs d'e-mail existant, c'est pourquoi mon choix se porte sur celui-ci. Le sujet des e-mails est un sujet compliqué ou les documentations sont nombreuses et confusent assez souvent, je n'en ferai aujourd'hui toujours pas ma spécialité. Je vais donc ne pas m'étendre sur ce sujet.&lt;/p&gt;


&lt;p&gt;Nous voulons ici créer un serveur MX principal qui recevra nos mails et les enverra au reste du monde. Nous souhaitons pouvoir envoyé des e-mails depuis ce serveur depuis n'importe où. Dans cette configuration pour ne pas finir en open relay, il n'y a que l'authentification SMTP qui puisse nous protégé de ceci. J'ai testé auparavant le pop-before-smtp qui permet d'en faire autant mais ce n'est qu'un bricolage face à l'authentification SMTP. C'est pourquoi ici on fera une véritable authentification bien sur avec un peu de SSL.&lt;/p&gt;


&lt;p&gt;Commençons par installer Postfix et ce qui sera nécessaire à l'authentification SMTP.&lt;/p&gt;

&lt;pre&gt;
ALBAN@bebeserv:~$ sudo -i
Password:
bebeserv:~# apt-get update
[...]
bebeserv:~# apt-get install postfix libsasl2-modules sasl2-bin
[...]
&lt;/pre&gt;


&lt;p&gt;L'installateur vous pose deux questions pour la configuration de Postfix. Répondez à la première &quot;Site internet&quot; et laisser la seconde qui devrait ressembler à &lt;q&gt;« bebeserv.bebenet.local »&lt;/q&gt; tel quel.&lt;/p&gt;


&lt;p&gt;Maintenant que c'est fait, stoppez Postfix&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:~# /etc/init.d/postfix stop
[...]
&lt;/pre&gt;


&lt;p&gt;Maintenant configurons notre serveur d'e-mail&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:~# cd /etc/postfix
bebeserv:/etc/postfix# nano main.cf
&lt;/pre&gt;


&lt;p&gt;Afin de garantir la sécurité du MTA faisons le passer pour un serveur Sendmail (un concurrent plus ancien)&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
mail_name = Sendmail
mail_version = 8.12.10
smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
&lt;/pre&gt;


&lt;p&gt;Maintenant quelques fonctionnalités et configuration&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
append_dot_mydomain = yes
mynetwork_style = host
proxy_interfaces = 10.0.0.1
relay_domains=
masquerade_domains = bebenet.local
local_transport = virtual:$myhostname
&lt;/pre&gt;


&lt;p&gt;Les utilisateurs virtuels&lt;/p&gt;

&lt;pre&gt;
virtual_alias_domains = hash:/etc/postfix/conf.d/virtual_alias_domains
virtual_alias_maps = hash:/etc/postfix/conf.d/virtual_alias
virtual_mailbox_domains = hash:/etc/postfix/conf.d/virtual_mailbox_domains
virtual_mailbox_base = /var/mail/virtual
virtual_mailbox_maps = hash:/etc/postfix/conf.d/virtual_mailbox
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
&lt;/pre&gt;


&lt;p&gt;Encore un peu de sécurité et pour l'authentification SMTP&lt;/p&gt;

&lt;pre&gt;
smtp_helo_timeout = 10s
smtpd_recipients_limit = 16
smtpd_soft_error_limit = 3
smtpd_hard_error_limit = 12
smtpd_helo_required = yes
smtpd_delay_reject = yes
disable_vrfy_command = yes
strict_rfc821_envelopes = yes

broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = smtpd
smtpd_sasl_exceptions_networks = $mynetworks
smtpd_sasl_security_options = noanonymous


smtpd_helo_restrictions = 
	permit_mynetworks, 
	reject_invalid_hostname, 
	reject_unknown_hostname,
	reject_non_fqdn_hostname

smtpd_client_restrictions =
   sleep 1, 
   reject_unauth_pipelining
   
smtpd_recipient_restrictions =
	permit_mynetworks,
	permit_sasl_authenticated,
	reject_invalid_hostname,
	reject_unauth_destination,
	reject_unknown_sender_domain,
	reject_unknown_recipient_domain,
	reject_non_fqdn_recipient

smtpd_sender_restrictions =
	reject_unknown_sender_domain,
	reject_non_fqdn_sender,
&lt;/pre&gt;

&lt;pre&gt;&lt;/pre&gt;

&lt;p&gt;Pour le SSL&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
smtpd_use_tls=yes
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
&lt;/pre&gt;


&lt;p&gt;Enregistrez et quittez.
Générons directement les nouveaux certificats SSL pour Postfix&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/postfix# openssl req -new -outform PEM -out /etc/postfix/smtpd.cert -newkey rsa:2048 -nodes -keyout /etc/postfix/smtpd.key -keyform PEM -days 365 -x509
bebeserv:/etc/postfix# chmod 640 smtpd.key
&lt;/pre&gt;


&lt;p&gt;Le fait d'utiliser Sasl (un serveur d'authentification) nous impose de lui montré comment nous souhaitons authentifier les utilisateurs&amp;nbsp;:
Pour ceci nous créons comme précisé par notre configuration&amp;nbsp;: &lt;q&gt;« smtpd_sasl_path »&lt;/q&gt; le fichier &lt;q&gt;« /etc/postfix/sasl/smtpd.conf »&lt;/q&gt;&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/postfix# cd sasl
bebeserv:/etc/postfix/sasl# nano smtpd.conf
&lt;/pre&gt;


&lt;p&gt;Entrez ceci&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
pwcheck_method: saslauthd
mech_list: plain login
&lt;/pre&gt;


&lt;p&gt;Enregistrer et quitter.
Visiblement la commande suivante est utile pour remédier à une histoire de bug...&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/postfix/sasl# ln -s /etc/postfix/sasl/smtpd.conf /usr/lib/sasl2/smtpd.conf 
&lt;/pre&gt;


&lt;p&gt;Éditez le fichier de configuration de Sasl&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/postfix/sasl# nano /etc/default/saslauthd
&lt;/pre&gt;


&lt;p&gt;Modifier les lignes suivantes&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
START=yes
MECHANISMS=&amp;quot;rimap&amp;quot;
MECH_OPTIONS=&amp;quot;localhost&amp;quot;
OPTIONS=&amp;quot;-r -c -m /var/spool/postfix/var/run/saslauthd&amp;quot;
&lt;/pre&gt;


&lt;p&gt;Enregistrez et quitter.
Maintenant ajoutons l'utilisateur Postfix au groupe Sasl et faisons en sorte que Sasl puisque créer ses fichiers dans la cage de postfix (ça aussi ça ne s'invente pas)&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/postfix/sasl# dpkg-statoverride --add root sasl 710 /var/spool/postfix/var/run/saslauthd
bebeserv:/etc/postfix/sasl# adduser postfix sasl
[...]
&lt;/pre&gt;


&lt;p&gt;Maintenant il va falloir alimenter les différentes bases de Postfix&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/postfix/sasl# cd ..
bebeserv:/etc/postfix# mkdir conf.d
bebeserv:/etc/postfix# cd conf.d
bebeserv:/etc/postfix/conf.d# nano virtual_mailbox_domains
&lt;/pre&gt;


&lt;p&gt;Entrez&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv.local	x
&lt;/pre&gt;


&lt;p&gt;Enregistrez et quitter.&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/postfix/conf.d# nano virtual_mailbox
&lt;/pre&gt;


&lt;p&gt;Entrez&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
test@bebeserv.local	bebeserv.local/test/
&lt;/pre&gt;


&lt;p&gt;Enregistrez et quitter.&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/postfix/conf.d# nano virtual_alias
&lt;/pre&gt;


&lt;p&gt;Entrez&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
postmaster@bebeserv.local	test@bebeserv.local
hostmaster@bebeserv.local	test@bebeserv.local
webmaster@bebeserv.local	test@bebeserv.local
www@bebeserv.local	test@bebeserv.local
ALBAN@bebeserv.local	test@bebeserv.local
&lt;/pre&gt;


&lt;p&gt;Enregistrez et quitter.&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/postfix/conf.d# nano virtual_alias_domains
&lt;/pre&gt;


&lt;p&gt;Entrez&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
localhost	bebeserv.local
&lt;/pre&gt;


&lt;p&gt;Enregistrez et quitter.
Créons maintenant les bases compilées à l'aide de &lt;q&gt;« postmap »&lt;/q&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/postfix/conf.d# postmap virtual_alias
bebeserv:/etc/postfix/conf.d# postmap virtual_alias_domains
bebeserv:/etc/postfix/conf.d# postmap virtual_mailbox
bebeserv:/etc/postfix/conf.d# postmap virtual_mailbox_domains
&lt;/pre&gt;


&lt;p&gt;Redirigeons &lt;q&gt;« root »&lt;/q&gt; qui est normalement alias de tous les autres démon vers notre utilisateur principal&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/postfix/conf.d# nano /etc/aliases
&lt;/pre&gt;


&lt;p&gt;Entrez à la fin du fichier&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
root:	ALBAN
&lt;/pre&gt;


&lt;p&gt;Enregistrez et quittez.
Remettons, de la même manière que les autres tables, celle-ci à jour&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/postfix/conf.d# postalias /etc/aliases
&lt;/pre&gt;

&lt;p&gt;
Créons l'utilisateur et le groupe &lt;q&gt;« virtual »&lt;/q&gt; et le dossier des boites e-mail virtuelles&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/postfix/conf.d# cd /var/mail
bebeserv:/var/mail# mkdir virtual	
bebeserv:/var/mail# groupadd -g 5000 virtual
bebeserv:/var/mail# useradd -u 5000 -g virtual -d /var/mail/virtual -s /usr/sbin/nologin virtual
bebeserv:/var/mail# chown virtual.virtual virtual
&lt;/pre&gt;


&lt;p&gt;Parfait&amp;nbsp;! Maintenant Postfix est fonctionnel et bien configuré. Nous l'avons configuré de sorte que les e-mails émis par les utilisateurs locaux soit traiter par le relay virtual, que localhost soit assimilé à notre domaine, que les sous domaines de notre domaine soit assimilé à notre domaine. Il ne nous reste plus qu'à installer un client IMAP pour lire nos messages.&lt;/p&gt;


&lt;p&gt;Installons &lt;q&gt;« courier-imap-ssl »&lt;/q&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/var/mail# apt-get install courier-imap-ssl
&lt;/pre&gt;


&lt;p&gt;Stoppons les serveur nouvellement installés&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/var/mail# /etc/init.d/courier-authdaemon stop
[...]
bebeserv:/var/mail# /etc/init.d/courier-imap stop
[...]
bebeserv:/var/mail# /etc/init.d/courier-imap-ssl stop
[...]
&lt;/pre&gt;


&lt;p&gt;Regénérons un certificat propre à notre domaine pour IMAP&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/var/mail# cd /etc/courier
bebeserv:/etc/courier# rm imapd.pem
bebeserv:/etc/courier# nano imapd.cnf
&lt;/pre&gt;


&lt;p&gt;Modifiez ceci&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
[ req_dn ]
C=FR
ST=FRANCE
L=Paris
O=Courier Mail Server
OU=IMAP SSL key
CN=imap.bebenet.local
emailAddress=postmaster@bebenet.local
&lt;/pre&gt;


&lt;p&gt;Enregistrez et quittez.
Maintenant créons un beau certificat&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/courier# dpkg-reconfigure courier-imap-ssl
[...]
&lt;/pre&gt;


&lt;p&gt;Ceci fait, ré-arretons le serveur qui a été redémarrer et configurons l'authentification (ici authdaemon à ne pas confondre avec saslauthd)&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/courier# /etc/init.d/courier-imap-ssl stop
[...]
bebeserv:/etc/courier# nano authdaemonrc
&lt;/pre&gt;


&lt;p&gt;Modifiez cette ligne&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
authmodulelist=&amp;quot;authuserdb&amp;quot;
&lt;/pre&gt;


&lt;p&gt;Enregistrez et quittez.
Maintenant nous allons créer la base des utilisateurs qui vont pouvoir se connecter à IMAP. Pour simplifier les choses je vous ai concocté un petit script:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/courier# mkdir userdb
bebeserv:/etc/courier# chmod 0000 userdb
bebeserv:/etc/courier# nano userdb-utils
&lt;/pre&gt;


&lt;p&gt;Entrez ceci&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
#!/bin/bash
cd /etc/courier
case &amp;quot;$1&amp;quot; in
add)
	if [ $# -lt 2 ]; then
		echo &amp;quot;Usage: ./userdb-utils add user@domain.tld&amp;quot;
		exit 1
	fi
	EMAIL=$2
	DIR=/var/mail/virtual
	USER=$(echo $EMAIL | cut -d@ -f1)
	DOMAIN=$(echo $EMAIL | cut -d@ -f2)
	userdb $DOMAIN/$EMAIL set mail=$DIR/$DOMAIN/$USER home=$DIR/$DOMAIN/$USER uid=5000 gid=5000
	userdbpw -md5 | userdb $DOMAIN/$EMAIL set systempw
	makeuserdb
	;;
del)
	if [ $# -lt 2 ]; then
		echo &amp;quot;Usage: ./userdb-utils del user@domain.tld&amp;quot;
		exit 1
	fi
	TODAY=$(date +%Y%m%d)
	FILE=/tmp/userdbcreate$TODAY
	EMAIL=$2
	USER=$(echo $EMAIL | cut -d@ -f1)
	DOMAIN=$(echo $EMAIL | cut -d@ -f2)
	DB=/etc/courier/userdb/$DOMAIN
	sed -e /^$EMAIL/d $DB &amp;gt; $FILE
	rm $DB
	mv $FILE $DB
	makeuserdb
	;;
list)
	authenumerate
	;;
*)
	echo &amp;quot;Usage: ./userdb-utils {add|del|list} [user@domain.tld]&amp;quot;
	exit 1
esac
exit 0
&lt;/pre&gt;


&lt;p&gt;Enregistrez et quittez.
Maintenant rendons notre script exécutable et disponible dans notre banque de script&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/courier# chmod 700 userdb-utils
bebeserv:/etc/courier# ln -s userdb-utils /usr/local/bin/
&lt;/pre&gt;


&lt;p&gt;Ok, créons deux utilisateurs pour voir comment ceci fonctionne&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/courier# ./userdb-utils add test@bebenet.local
Password :
[...]
bebeserv:/etc/courier# ./userdb-utils add test2@bebenet.local
Password :
[...]
bebeserv:/etc/courier# ./userdb-utils list
[...]
bebeserv:/etc/courier# ./userdb-utils del test2@bebenet.local
bebeserv:/etc/courier# ./userdb-utils list
[...]
&lt;/pre&gt;

&lt;p&gt;
C'est terminé.
Il reste à mettre à jour &lt;q&gt;« iptables »&lt;/q&gt;&lt;/p&gt;

&lt;pre&gt;
bebeserv:/etc/courier# nano /etc/network/iptables
&lt;/pre&gt;


&lt;p&gt;Rajouter ces lignes&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
iptables -t filter -A INPUT -i eth0 -p tcp --dport 25 -d $MYIP -j ACCEPT
iptables -t filter -A INPUT -i eth0 -p tcp --dport 993 -d $MYIP -j ACCEPT

iptables -t filter -A OUTPUT -o eth0 -p tcp --dport 25 -s $MYIP -j ACCEPT
iptables -t filter -A OUTPUT -o eth0 -p tcp --sport 25 -s $MYIP -j ACCEPT
iptables -t filter -A OUTPUT -o eth0 -p tcp --dport 993 -s $MYIP -j ACCEPT
iptables -t filter -A OUTPUT -o eth0 -p tcp --sport 993 -s $MYIP -j ACCEPT
&lt;/pre&gt;


&lt;p&gt;Enregistrez et quittez&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;Redémarrons les serveurs&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
bebeserv:/var/mail# /etc/init.d/iptables-conf restart
bebeserv:/var/mail# /etc/init.d/postfix start
bebeserv:/var/mail# /etc/init.d/courier-authdaemon start
bebeserv:/var/mail# /etc/init.d/courier-imap-ssl start
bebeserv:/var/mail# /etc/init.d/courier-imap start
&lt;/pre&gt;


&lt;p&gt;Et voilà&amp;nbsp;! Nos utilisateurs doivent se loguer forcément en IMAP et en SMTP le tout couvert du SSL.&lt;/p&gt;


&lt;p&gt;Prochain chapitre on ajoute un antivirus et un antispam&amp;nbsp;!&lt;/p&gt;

&lt;pre&gt;
bebeserv:/var/mail# exit
logout
ALBAN@bebeserv:~$
&lt;/pre&gt;</description>
    
          <enclosure url="http://www.paradoxal.org/blog/public/tuto_debian/chapitre_7.pdf"
      length="101673" type="application/pdf" />
    
    
          <comments>http://www.paradoxal.org/blog/post/2007/08/05/Serveur-Debian-Serveur-email-MTA-MDA#comment-form</comments>
      <wfw:comment>http://www.paradoxal.org/blog/post/2007/08/05/Serveur-Debian-Serveur-email-MTA-MDA#comment-form</wfw:comment>
      <wfw:commentRss>http://www.paradoxal.org/blog/feed/rss2/comments/51</wfw:commentRss>
      </item>
    
</channel>
</rss>