4 203
modifications
Aucun résumé des modifications |
|||
Ligne 472 : | Ligne 472 : | ||
Si vous utilisez un noyau avec le patch <code>grsecurity</code>, j'ai remarqué un comportement étrange. En effet, lorsque j'essayais d'envoyer un mail avec <code>sendmail</code> avec un autre utilisateur que root (www-data par exemple) il me renvoyait une erreur. C'est un problème de droit : <code>/proc/net</code> n'était pas lisible et exécutable par tous le monde (o+rx) ce qui empêchait <code>sendmail</code> d'envoyer les mails. | Si vous utilisez un noyau avec le patch <code>grsecurity</code>, j'ai remarqué un comportement étrange. En effet, lorsque j'essayais d'envoyer un mail avec <code>sendmail</code> avec un autre utilisateur que root (www-data par exemple) il me renvoyait une erreur. C'est un problème de droit : <code>/proc/net</code> n'était pas lisible et exécutable par tous le monde (o+rx) ce qui empêchait <code>sendmail</code> d'envoyer les mails. | ||
=Courier= | |||
Nous allons maintenant installer courier pour ses fonctionnalités de serveur pop et imap. | |||
Installer les paquets nécessaires : | |||
<pre>aptitude install courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl</pre> | |||
Éditez le fichier <code>/etc/courier/authdaemonrc</code> : | |||
<pre>authmodulelist="authmysql"</pre> | |||
Éditez le fichier <code>/etc/courier/authmysqlrc</code> : | |||
<pre> | |||
MYSQL_SERVER localhost | |||
MYSQL_USERNAME postfix | |||
MYSQL_PASSWORD password | |||
MYSQL_SOCKET /var/run/mysqld/mysqld.sock | |||
#MYSQL_PORT 0 | |||
MYSQL_OPT 0 | |||
MYSQL_DATABASE postfix | |||
MYSQL_USER_TABLE mailbox | |||
MYSQL_CRYPT_PWFIELD password | |||
#DEFAULT_DOMAIN domain.tld | |||
MYSQL_UID_FIELD 5000 | |||
MYSQL_GID_FIELD 5000 | |||
MYSQL_LOGIN_FIELD username | |||
MYSQL_HOME_FIELD "/srv/vmail" | |||
MYSQL_NAME_FIELD name | |||
MYSQL_MAILDIR_FIELD maildir | |||
#MYSQL_QUOTA_FIELD quota | |||
#MYSQL_WHERE_CLAUSE server='exemple.domain.tld' | |||
</pre> | |||
Je préfère ne pas binder mes services sur toutes les ips configurés sur la machine. Il faut donc configurer courier pour qu'il ne bind que les ips voulus. | |||
Pour courier-pop éditez le fichier <code>/etc/courier/pop3d</code> et modifiez la ligne <code>PORT=110</code> par : | |||
<pre>PORT=127.0.0.1.110,::1.110,213.186.47.110.110,2001:41d0:1:d6e::110.110</pre> | |||
Pour courier-pop-ssl éditez le fichier <code>/etc/courier/pop3d-ssl</code> et modifiez la ligne <code>SSLPORT=995</code> par : | |||
<pre>SSLPORT=127.0.0.1.995,::1.995,213.186.47.110.995,2001:41d0:1:d6e::110.995</pre> | |||
Pour courier-imap éditez le fichier <code>/etc/courier/imapd</code> et modifiez la ligne <code>PORT=143</code> par : | |||
<pre>PORT=127.0.0.1.143,::1.143,213.186.47.110.143,2001:41d0:1:d6e::110.143</pre> | |||
Pour courier-imap-ssl éditez le fichier <code>/etc/courier/imapd-ssl</code> et modifiez la ligne <code>SSLPORT=993</code> par : | |||
<pre>SSLPORT=127.0.0.1.993,::1.993,213.186.47.110.993,2001:41d0:1:d6e::110.993</pre> | |||
==Ajout du support SSL/TLS== | |||
===utiliser les scripts de courier=== | |||
courier inclut des scripts qui permettent de générer automatiquement ces certificats SSL. | |||
Pour cela, il faut éditer les fichiers <code>/etc/courier/pop3d.cnf</code> et <code>/etc/courier/imapd.cnf</code> puis lancer les commandes suivantes : | |||
<pre> | |||
mkpop3dcert | |||
mkimapdcert | |||
</pre> | |||
===Créer son propre certificat signé par son autorité de certification.=== | |||
Éditez votre fichier <code>/etc/ssl/openssl.cnf</code> et ajoutez les lignes suivantes : | |||
<pre> | |||
[IMAP] | |||
nsComment = "SSL Imap Certificate" | |||
subjectKeyIdentifier = hash | |||
authorityKeyIdentifier = keyid,issuer:always | |||
issuerAltName = issuer:copy | |||
basicConstraints = critical,CA:FALSE | |||
keyUsage = digitalSignature, nonRepudiation, keyEncipherment | |||
nsCertType = server | |||
extendedKeyUsage = serverAuth | |||
[POP] | |||
nsComment = "SSL Pop Certificate" | |||
subjectKeyIdentifier = hash | |||
authorityKeyIdentifier = keyid,issuer:always | |||
issuerAltName = issuer:copy | |||
basicConstraints = critical,CA:FALSE | |||
keyUsage = digitalSignature, nonRepudiation, keyEncipherment | |||
nsCertType = server | |||
extendedKeyUsage = serverAuth | |||
</pre> | |||
Encore une fois, les clés ne devront pas être chiffré avec une passphrase car courier ne les gère pas. | |||
Pour créer le certificat du serveur pop : | |||
<pre> | |||
openssl req -config /etc/ssl/openssl.cnf -nodes -newkey rsa:2048 -keyout pop.key -out pop.req | |||
openssl ca -config /etc/ssl/openssl.cnf -name core_ca -extensions POP -in pop.req -out pop.pem | |||
cat pop.key pop.pem > pop3d.pem | |||
openssl gendh >> pop3d.pem | |||
mv pop3d.pem /etc/courier/ | |||
rm -rf pop.* | |||
</pre> | |||
Pour créer le certificat du serveur imap: | |||
<pre> | |||
openssl req -config /etc/ssl/openssl.cnf -nodes -newkey rsa:1024 -keyout imap.key -out imap.req | |||
openssl ca -config /etc/ssl/openssl.cnf -name core_ca -extensions IMAP -in imap.req -out imap.pem | |||
cat imap.key imap.pem > imapd.pem | |||
openssl gendh >> imapd.pem | |||
mv imapd.pem /etc/courier/ | |||
rm -rf imap.* | |||
</pre> | |||
Et comme d'habitude, on modifie les droits : | |||
<pre>chmod 600 /etc/courier/*.pem</pre> |