Préambule:
Ces notes ne sont qu'un résumé de ce que j'ai
fait pour installer postfix sur un systeme vide et creux comme hpux. Juste un
pense bête apres avoir cherché les options qui vont bien pour
faire ce que je veux. Je n'ai rien inventé ... tout est écris
dans les différents fichiers de README et INSTALL et FAQ de
la distribution
tout est là http://www.postfix.org
Maurice Libes -
centre d'océanologie de Marseille UMS2196 CNRS
make clean
make makefiles CC="/opt/ansic/bin/cc -Ae" OPT=-O
makeca semble simple et idiot, mais sur HPUX faut mettre les bonnes options de compilation pour compiler en "C" ANSI, sinon ya probleme.
## c'est un miracle qu'il n'y ait eu aucun probleme de compilation sur hpux ... cette application "postfix" est particulièrement bien écrite...merci à l'auteur http://www.porcupine.org/wietse/ Venema!
postfix:*:12345:12345:postfix:/home/bidon:/bin/false
je ne traite ici que du cas de la configuration de base de mes machines
dans mon labo:
-cas 1- Un serveur principal de laboratoire (mailhost.com.univ-mrs.fr)
qui conserve une partie des mails et qui redistribue une autre partie vers
-cas 2- un autre site annexe (feuille) qui conserve ce qu'on lui envoie.
-cas 3- un Null client (machine qui ne doit rien recevoir ni
conserver localement... elle renvoie tout ce qu'elle pourrait recevoir
au mailhost du labo...elle ne sert qu'a émettr du mail vers l'extérieur)
| mail_owner = postfix | identité sous laquelle tourne le programme : compte non privilégié (sans shell) |
| mydomain = com.univ-mrs.fr | nom du domaine local.. peut etre utilisé dans d'autres variables subséquentes (comme myorigin) |
| myorigin = $mydomain | nom du domaine qui est mis dans l'adresse d'émetteur d'un mail. Par défaut "myorigin" est égal au nom de la machine émettrice... Cependant pour un site important possédant son propre domaine, i l convient de mettre cette variable au nom du domaine pour masquer le nom de machine particulier |
| mydestination = sme.com.univ-mrs.fr,
localhost.$mydomain, sme |
variable qui indique a Postfix quels sont les mails que l'on doit conserver et remettre localement. Pour une machine "feuille" la variable est donc positionnée au nom de la machine |
| alias_maps = dbm:/etc/mail/aliases
alias_database = dbm:/etc/mail/aliases |
- alias_maps specifie la table d'alias qui est indexée par la
commande postalias
alors que - alias_database specifie la table d'alias qui est utilisée par la commande newaliases |
| mail_spool_directory = /var/mail | répertoire ou sont placées les mailboxes des utilisateurs (utilisé pour la remise locale) |
| notify_classes = resource, software, protocol,policy | messages d'erreur que recoit le postmaster
- resource : problemes dus au repertoires de spool - software : bug du logiciel - protocol : errurs de protocole smtp - policy: erreur dues a la mise en liste noire |
| mynetworks = 139.124.16.0/24, 127.0.0.0/8
relay_domains = 139.124.2.0/24 |
cette variable très importante est utilisée dans la configuration
du relayage. Par défaut Postfix ne relaye pas! SAUF pour les machines
situées dans la variable mynetworks (le subnet local par défaut)
- autrement dit postfix ne permet le relayage que pour les machines situées dans la variable $mynetworks Si on veut accepter le relayage d'un domaine particulier (en plus du domaine par défaut) , il faut le rajouter dans la variable $relay_domains comme moi j'ai 2 labos distincts avec 2 subnets, j'autorise
|
| transport_maps = dbm:/etc/postfix/transport | |
| sender_canonical_maps = dbm:/etc/postfix/sender_canonical_maps | réécriture des adresses d'expéditeur... on peut
réécrire les adresses en nom.prenom grâce au
fichier sender_canonical_maps
dans lequel on place la syntaxe nom prenom.nom (sans les :) ce fichier est indexé par postmap dbm:/etc/postfix/sender_canonical_maps |
Cas -3- : Configuration de postfix pour un Null Client
Un Null client est une machine ou Postfix sert juste à envoyer des mails vers l'extérieur. Cette machine ne devrait en principe RIEN recevoir ni garder comme message et tout renvoyer a un serveur de mail principal.
moi j'ai simplement mis:
voir http://www.postfix.org/faq.html#null_client
pour indiquer de ne pas conserver les mails que cette machine pourrait recevoir et qu'il faut les renvoyer au serveur de mail principal du site mailhost.com.univ-mrs.fr
ceci apres avoir choisi dans le fichier
de configuration "main.cf" le type d'indexation (hash ou dbm) que
l'on veut
alias_maps = dbm:/etc/mail/aliases
ou
$postmap dbm:/etc/mail/aliases
dans le fichier main.cf il suffit d'inscrire la directive:
pour la réécriture des adresses d'expéditeurs:
libes
maurice.libes
manvussa gerard.manvussa
zanvraber andre.zanvraber
on peut rajouter des domaines dont on accepte le relayage dans la
directive relay_domains
relay_domains = confiance.autre_net.univ-mrs.fr
voir http://www.postfix.org/uce.html
Avec Postfix ont peut faire des controles
de validité d'adresses à différentes phases de la
transaction SMTP.
- au niveau de la connexion SMTP (directive
smtpd_client_restrictions)
- au niveau de l'adresse donnée
dans la phase HELO/EHLO (directive smtpd_helo_restrictions)
- au niveau de l'adresse donnée
dans la phase MAIL FROM: (directive smtpd_sender_restrictions)
Par défaut Postfix accepte tous
les mails de n'importe quel site émetteur. Pour constituer une liste
noire , on peut créer un fichier /etc/postfix/access
dont
la syntaxe est la suivante
indexé toujours pareil avec
postmap dbm:/etc/postfix/access
Ce fichier de liste-noire (sites interdits)
peut etre utilisé dans les variables "smtpd_sender_restrictions"
et "smtp_client_restrictions" pour restreindre
quelles sont les adresses (emettrices) dont on accepte les mails.
| smtpd_helo_required =
yes
smtpd_helo_restrictions = reject_invalid_hostname,reject_unknown_hostname, reject_non_fqdn_hostname |
## controle sur a phase HELO/EHLO
de la transation SMTP
on rejette dans ce champ, les adresses inconnues du DNS, et celles qui ne sont pas sous une forme FQDN correcte <SuperFourmi@cdadm02> <WEEKLY@PAY> |
| smtpd_client_restrictions =
permit_mynetworks,
dbm:/etc/postfix/access, reject_maps_rbl |
Le controle smtpd_client_restrictions se fait au niveau
de l'adresse de l'emétteur qui est donnée lors de l'établissement
de la connexion SMTP
reject_maps_rbl indique
que l'on va interdire les domaines contenus dans la variable $maps_rbl_domains
|
| smtpd_sender_restrictions =
dbm:/etc/postfix/access,
reject_unknown_sender_domain, reject_non_fqdn_sender, check_sender_access dbm:/etc/postfix/access, reject_maps_rbl |
Le controle smtpd_sender_restrictions se fait au niveau
de l'adresse qui est passée dans le champ MAIL FROM de la transaction
SMTP
rejette les machines qui ne sont pas dans le DNS (pas d'enregistrement A ni MX) reject_maps_rbl indique que l'on va interdire les domaines contenus dans la variable $maps_rbl_domains |
| maps_rbl_domains = blackholes.mail-abuse.org,
dialups.mail-abuse.org, relays.mail-abuse.org |
smtpd_recipient_restrictions =
dbm:/etc/postfix/protected, check_relay_domains
smtpd_restriction_classes = insiders_only
insiders_only = check_sender_access,
dbm:/usr/local/etc/postfix/insiders, reject
attention dans ces lignes, la directive check_relay_domains
indique
à postfix de regarder dans la variable
check_relay
IL faut donc qu'il ya ait qq chose
message_size_limit=4096000 ## dans main.cf
Postfix peut également réguler d'autres tailles comme
la taille des entetes smtp header_size_limit (default: 102400 bytes)
, la taille des lignes d'un message (défaut 2048)
Postfix envoie ses messages de warning et erreur à syslog.
Les logs vont là ou on leur a dit dans /etc/syslog.conf
Sur mon HPUX ca va là: