Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| postfix_mysql_tls_sasl [Le 15/03/2011, 18:20] – [En cas d'erreurs] Blinus | postfix_mysql_tls_sasl [Le 11/09/2022, 11:53] (Version actuelle) – Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) moths-art | ||
|---|---|---|---|
| Ligne 8: | Ligne 8: | ||
| Ce tuto a été réalisé sur une Debian Etch. Il est compatible pour Ubuntu. | Ce tuto a été réalisé sur une Debian Etch. Il est compatible pour Ubuntu. | ||
| La mise en place d'une telle solution demande du temps ainsi qu'un certain niveau pour savoir étudier les logs s'il y a une erreur. | La mise en place d'une telle solution demande du temps ainsi qu'un certain niveau pour savoir étudier les logs s'il y a une erreur. | ||
| + | |||
| + | < | ||
| Niveau confirmé. | Niveau confirmé. | ||
| Temps d' | Temps d' | ||
| - | [[http:// | + | [[http:// |
| Ce tuto vous permettra de mettre en place une solution multi-domaine basée sur des utilisateurs et domaines virtuels, couplée avec MySQL. Postfix peut être couplé a LDAP et ProgresSQL. | Ce tuto vous permettra de mettre en place une solution multi-domaine basée sur des utilisateurs et domaines virtuels, couplée avec MySQL. Postfix peut être couplé a LDAP et ProgresSQL. | ||
| Ligne 23: | Ligne 25: | ||
| Paquets principaux [[: | Paquets principaux [[: | ||
| + | |||
| + | <note warning> | ||
| + | < | ||
| <note tip>Chez moi, le package courier-authlib-mysql s' | <note tip>Chez moi, le package courier-authlib-mysql s' | ||
| Ligne 39: | Ligne 44: | ||
| mysqladmin -u root password ' | mysqladmin -u root password ' | ||
| </ | </ | ||
| + | |||
| ==== Postfix ==== | ==== Postfix ==== | ||
| Ligne 52: | Ligne 58: | ||
| GRANT ALL PRIVILEGES ON postfix.* TO " | GRANT ALL PRIVILEGES ON postfix.* TO " | ||
| - | Insertion des tables dans la base de données | + | Insertion des tables dans la base de données |
| USE postfix; | USE postfix; | ||
| Ligne 63: | Ligne 69: | ||
| `active` tinyint(1) NOT NULL default ' | `active` tinyint(1) NOT NULL default ' | ||
| PRIMARY KEY (address) | PRIMARY KEY (address) | ||
| - | ) TYPE=MyISAM COMMENT=' | + | ) ENGINE=MyISAM COMMENT=' |
| USE postfix; | USE postfix; | ||
| Ligne 78: | Ligne 84: | ||
| `active` tinyint(1) NOT NULL default ' | `active` tinyint(1) NOT NULL default ' | ||
| PRIMARY KEY (domain) | PRIMARY KEY (domain) | ||
| - | ) TYPE=MyISAM COMMENT=' | + | ) ENGINE=MyISAM COMMENT=' |
| USE postfix; | USE postfix; | ||
| Ligne 92: | Ligne 98: | ||
| `active` tinyint(1) NOT NULL default ' | `active` tinyint(1) NOT NULL default ' | ||
| PRIMARY KEY (username) | PRIMARY KEY (username) | ||
| - | ) TYPE=MyISAM COMMENT=' | + | ) ENGINE=MyISAM COMMENT=' |
| quit; | quit; | ||
| - | On crée un dossier nommé vmail. Ce dossier regroupera les boîtes mail des utilisateurs. | + | On crée un dossier nommé vmail. Ce dossier regroupera les boîtes mail des utilisateurs. |
| $ groupadd -g 5000 vmail | $ groupadd -g 5000 vmail | ||
| Ligne 123: | Ligne 129: | ||
| # | # | ||
| - | Le smtp de postfix est chrooter, il faut donc le retirer afin d' | + | Le smtp de postfix est chrooté, il faut donc le retirer afin d' |
| # | # | ||
| Ligne 145: | Ligne 151: | ||
| Cela peut également vous servir le jour où vous désirez modifier le mot de passe...</ | Cela peut également vous servir le jour où vous désirez modifier le mot de passe...</ | ||
| - | mysql_virtual_alias_maps.cf | + | Creation des fichiers : mysql_virtual_alias_maps.cf, mysql_virtual_domains_maps.cf, |
| - | | + | |
| - | | + | |
| - | | + | |
| + | |||
| + | cat << EOF >/ | ||
| + | user = $MYSQL_USER | ||
| + | password = $MYSQL_PASSWORD | ||
| + | hosts = $MYSQL_HOST | ||
| dbname = postfix | dbname = postfix | ||
| query = SELECT goto FROM alias WHERE address=' | query = SELECT goto FROM alias WHERE address=' | ||
| - | + | EOF | |
| - | mysql_virtual_domains_maps.cf | + | |
| - | + | cat <<EOF >/ | |
| - | user = postfix | + | user = $MYSQL_USER |
| - | password = motdepasse | + | password = $MYSQL_PASSWORD |
| - | hosts = 127.0.0.1 | + | hosts = $MYSQL_HOST |
| dbname = postfix | dbname = postfix | ||
| query = SELECT domain FROM domain WHERE domain=' | query = SELECT domain FROM domain WHERE domain=' | ||
| #optional query to use when relaying for backup MX | #optional query to use when relaying for backup MX | ||
| #query = SELECT domain FROM domain WHERE domain=' | #query = SELECT domain FROM domain WHERE domain=' | ||
| - | + | EOF | |
| - | mysql_virtual_mailbox_maps.cf | + | |
| - | + | cat <<EOF >/ | |
| - | user = postfix | + | user = $MYSQL_USER |
| - | password = motdepasse | + | password = $MYSQL_PASSWORD |
| - | hosts = 127.0.0.1 | + | hosts = $MYSQL_HOST |
| dbname = postfix | dbname = postfix | ||
| query = SELECT maildir FROM mailbox WHERE username=' | query = SELECT maildir FROM mailbox WHERE username=' | ||
| - | + | EOF | |
| - | mysql_virtual_mailbox_limit_maps.cf | + | |
| - | + | cat << | |
| - | user = postfix | + | user = $MYSQL_USER |
| - | password = motdepasse | + | password = $MYSQL_PASSWORD |
| - | hosts = 127.0.0.1 | + | hosts = $MYSQL_HOST |
| dbname = postfix | dbname = postfix | ||
| query = SELECT quota FROM mailbox WHERE username=' | query = SELECT quota FROM mailbox WHERE username=' | ||
| - | + | EOF | |
| - | mysql_relay_domains_maps.cf | + | |
| - | + | cat << | |
| - | user = postfix | + | user = $MYSQL_USER |
| - | password = motdepasse | + | password = $MYSQL_PASSWORD |
| - | hosts = 127.0.0.1 | + | hosts = $MYSQL_HOST |
| dbname = postfix | dbname = postfix | ||
| query = SELECT domain FROM domain WHERE domain=' | query = SELECT domain FROM domain WHERE domain=' | ||
| + | EOF | ||
| Pour le bon fonctionnement et la sécurité il faut exécuter ces deux lignes de commandes | Pour le bon fonctionnement et la sécurité il faut exécuter ces deux lignes de commandes | ||
| Ligne 249: | Ligne 261: | ||
| smtpd_sasl_local_domain = $myhostname | smtpd_sasl_local_domain = $myhostname | ||
| smtpd_sasl_security_options = noanonymous | smtpd_sasl_security_options = noanonymous | ||
| + | broken_sasl_auth_clients = yes | ||
| + | smtpd_sasl_type = cyrus | ||
| + | cyrus_sasl_config_path = / | ||
| On peut supprimer reject_rbl_client opm.blitzed.org, | On peut supprimer reject_rbl_client opm.blitzed.org, | ||
| Ligne 262: | Ligne 277: | ||
| warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory | warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory | ||
| - | Il faut ajouter, dans le fichier | + | Il faut ajouter, dans le fichier |
| saslauthd_path: | saslauthd_path: | ||
| Ligne 283: | Ligne 298: | ||
| - | Créez un lien symbolique pour que cela fonctionne lorsque postfix est chrooter | + | Créez un lien symbolique pour que cela fonctionne lorsque postfix est chrooté |
| ln -s / | ln -s / | ||
| Ligne 292: | Ligne 307: | ||
| ln -s / | ln -s / | ||
| + | |||
| + | </ | ||
| + | |||
| + | <note warning> Depuis au moins Ubuntu 14.04, le lien symbolique disparaît à chaque reboot. Comme workaround, éditez / | ||
| + | |||
| + | sudo vi / | ||
| + | |||
| + | |||
| + | Et ajoutez ces lignes tout à la fin du fichier : | ||
| + | |||
| + | / | ||
| + | ln -s / | ||
| + | / | ||
| + | |||
| + | Ainsi le lien sera recréé à chaque reboot et sasl fonctionnera correctement. | ||
| </ | </ | ||
| Ligne 341: | Ligne 371: | ||
| ===== Deuxième Partie ===== | ===== Deuxième Partie ===== | ||
| - | |||
| **Ajout d'un anti-spam, anti-virus** | **Ajout d'un anti-spam, anti-virus** | ||
| Ligne 349: | Ligne 378: | ||
| $ sudo apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip arj bzip2 razor pyzor dcc-client | $ sudo apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip arj bzip2 razor pyzor dcc-client | ||
| + | <note warning> les paquets dcc-client dcc-server dcc-common n' | ||
| Sous hardy 8.4, le paquet dcc-client n' | Sous hardy 8.4, le paquet dcc-client n' | ||
| Il est toujours possible de télécharger le paquet dcc-server (qui remplace dcc-client) via les paquets ubuntu cela marche avec la version 8.4 et la version 8.10. | Il est toujours possible de télécharger le paquet dcc-server (qui remplace dcc-client) via les paquets ubuntu cela marche avec la version 8.4 et la version 8.10. | ||
| - | Premièrement le paquet dcc-server a besoin de dcc-common pour fonctionner. | + | Premièrement le paquet dcc-server a besoin de dcc-common pour fonctionner. |
| - | * dcc-common : http:// | + | * dcc-common : https:// |
| - | * dcc-server : http:// | + | * dcc-server : https:// |
| Par exemple on peut procéder ainsi : | Par exemple on peut procéder ainsi : | ||
| Ligne 367: | Ligne 397: | ||
| cdcc " | cdcc " | ||
| </ | </ | ||
| - | |||
| ==== Amavis ==== | ==== Amavis ==== | ||
| Ligne 660: | Ligne 689: | ||
| ==== Spamassassin ==== | ==== Spamassassin ==== | ||
| - | Editez le fichier / | + | Avant tout, il faut créer l' |
| - | ENABLED=1 | + | sudo groupadd spamd |
| + | sudo useradd -g spamd -s / | ||
| + | sudo mkdir / | ||
| + | sudo chown spamd:spamd / | ||
| + | sudo mkdir / | ||
| + | sudo chown spamd:spamd / | ||
| + | |||
| + | Modifer le fichier / | ||
| + | |||
| + | ENABLED=1 | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| Editez le fichier / | Editez le fichier / | ||
| Ligne 700: | Ligne 742: | ||
| Démarrez le daemon spamassassin | Démarrez le daemon spamassassin | ||
| - | $ / | + | $ / |
| + | Pour dire à postfix d' | ||
| + | | ||
| + | par | ||
| + | | ||
| + | -o content_filter=spamassassin | ||
| + | et à la fin du fichier, ajoutez : | ||
| + | | ||
| + | | ||
| + | / | ||
| Créez le fichier / | Créez le fichier / | ||
| Ligne 779: | Ligne 830: | ||
| quit | quit | ||
| - | Si les tests sont ok, votre serveur de mail est opérationnel. | + | Si les tests sont ok, votre serveur de mail est opérationnel. |
| - | + | ||
| - | + | ||
| - | + | ||
| ===== Création des utilisateurs/ | ===== Création des utilisateurs/ | ||
| Ligne 796: | Ligne 843: | ||
| INSERT INTO mailbox (username, | INSERT INTO mailbox (username, | ||
| quit; | quit; | ||
| + | |||
| + | |||
| + | <note warning> | ||
| + | Attention, lors de la création de l' | ||
| + | </ | ||
| Les mots de passe seront à chiffrer via la fonction ENCRYPT sous PHPMyAdmin. | Les mots de passe seront à chiffrer via la fonction ENCRYPT sous PHPMyAdmin. | ||
| + | <note tip>Pour Postfix Admin je vous conseille de l' | ||
| Il existe une interface d' | Il existe une interface d' | ||
| Ligne 805: | Ligne 858: | ||
| Postfix a été configuré pour les quota mais le tuto n'en parle pas. C'est tout à fait normal, je n'ai pas tout à fait finalisé le tuto, et je ne parle pas de la mise en place des quota. Pour cela, il faut compiler postfix via les sources, voir le patcher si je ne raconte pas de bêtise. Une recherche sur google vous en dira plus en attendant ;-) | Postfix a été configuré pour les quota mais le tuto n'en parle pas. C'est tout à fait normal, je n'ai pas tout à fait finalisé le tuto, et je ne parle pas de la mise en place des quota. Pour cela, il faut compiler postfix via les sources, voir le patcher si je ne raconte pas de bêtise. Une recherche sur google vous en dira plus en attendant ;-) | ||
| + | ===== Création du répertoire de stockage des mails ===== | ||
| + | |||
| + | Il faut créer le répertoire ou seront stockés les mails (envoyés, brouillons, etc...) | ||
| + | Aller dans le répertoire ou tout les comptes mails sont enregistrés (/ | ||
| + | |||
| + | $ maildirmake VOTREREPERTOIREDEMAIL | ||
| + | |||
| + | Modifier VOTREREPERTOIREDEMAIL par le nom que vous voulez donner au compte mail (machin@domain.ltd par exemple). | ||
| + | |||
| + | Donner les droits adéquats aux dossiers contenus dans votre répertoire où les comptes mails sont enregistrés : | ||
| + | |||
| + | $ sudo chown vmail:vmail -R / | ||
| ===== En cas d' | ===== En cas d' | ||
| - Si vous souhaitez tester la configuration de sasl, vous pouvez utiliser : < | - Si vous souhaitez tester la configuration de sasl, vous pouvez utiliser : < | ||
| + | |||
| + | <note info> | ||
| + | Pour vérifier que sasl va bien chercher dans la db les utilisateurs, | ||
| + | La log / | ||
| + | Dans le cas contraire, vous avez probablement un problème de configuration. | ||
| + | </ | ||
| + | <note info> | ||
| + | Si vous n' | ||
| + | Il vous suffit alors de créer un nouveau user ou de modifier le précédent par un mot de passe simple (test par exemple) et de retester. | ||
| + | </ | ||
| + | |||
| - Si le serveur smtp ne répond pas, sachez qu' | - Si le serveur smtp ne répond pas, sachez qu' | ||
| Ligne 822: | Ligne 898: | ||
| chown vmail:vmail -R / | chown vmail:vmail -R / | ||
| - | - Si une fois un test d' | + | - Si une fois un test d' |
| postfix/ | postfix/ | ||
| postfix/ | postfix/ | ||
