Configuration du DNS et du serveur mail


Maintenant qu'on à notre passerelle sécurisée à mort qui marche, on va rajouter plein de trucs pour nos clients du réseau local. Tout d'abord, activer named, a.k.a. BIND, le serveur DNS par défaut d'OpenBSD. Pour cela, rien de plus simple, on ajoute une ligne à /etc/rc.conf.local :
named_flags="-t /var/named -u named"

Le reste de la configuration se fait dans /var/named/etc/named.conf, j'ai principalement gardé la configuration de base :
acl clients {
   // on autorise que les clients locaux a faire des requetes
   10.246.200.0/24;
   ::1;
};
options {
   //on est discret sur la version de BIND
   version "";     
   listen-on    { any; };
   listen-on-v6 { any; };
   forward only;
   // on forwarde les requetes vers les DNS du FAI
   forwarders { 80.118.192.100; 80.118.196.36;} ; 
   allow-recursion { clients; };
};

logging {
   category lame-servers { null; };
};

key "rndc-key" {
   algorithm hmac-md5;
   secret "kMatIYdqNlvMHhveZtBgVQ==";
};
 
controls {
   inet 127.0.0.1 port 953
   allow { 127.0.0.1; } keys { "rndc-key"; };
};

Et hop ! BIND tourne chrooté dans /var/named , et les clients du réseau peuvent s'en servir comme serveur DNS local.
Pour la suite, on se crée avec les commandes suivantes une clé et un certificat SSL qui seront utilisés par apache, postfix et courier-imap :
#creation cle SSL
root@spud[~]$openssl genrsa -out /etc/ssl/private/server.key 1024
#creation certificat
root@spud[~]$openssl req -new -key /etc/ssl/private/server.key -out /etc/ssl/private/server.csr
#autosignage du certificat
root@spud[~]$openssl x509 -req -days 365 -in /etc/ssl/private/server.csr \
       -signkey /etc/ssl/private/server.key -out /etc/ssl/server.crt

Passons à la partie serveur mail. Par défaut, OpenBSD propose sendmail, mais j'ai plus l'habitude de postfix et de sa configuration. On l'installe avec pkg_add , qui nous donne gentiment la marche à suivre pour désactiver sendmail, mettre postfix à la place, et quoi configurer pour faire marcher postfix comilfo :
root@spud[~]$pkg_add  ftp://ftp.openbsd.org/pub/OpenBSD/3.7/packages/i386/postfix-2.2.0-sasl2.tgz

postfix-2.2.0-sasl2:pcre-4.5: complete                                                                                                                                                                   
postfix-2.2.0-sasl2:cyrus-sasl-2.1.20p3: complete                                                                                                                                                        
postfix-2.2.0-sasl2: complete                                                                                                                                                                            
--- postfix-2.2.0-sasl2 -------------------
-> Creating /etc/mailer.conf.postfix
-> Creating Postfix spool directory and chroot area under /var/spool/postfix

    Warning: you still need to edit myorigin/mydestination/mynetworks
    parameter settings in /etc/postfix/main.cf.

    See also http://www.postfix.org/faq.html for information about
    dialup sites or about sites inside a firewalled network.

    BTW: Check your /etc/aliases file and be sure to set up aliases
    that send mail for root and postmaster to a real person, then
    run /usr/local/sbin/newaliases.

+---------------
| Configuration files has been installed in /etc/postfix.
| Please update these files to meet your needs.
+---------------

+---------------
| Don't forget to add "-a /var/spool/postfix/dev/log" to syslogd_flags
| in /etc/rc.conf.local (or /etc/rc.conf) and restart syslogd.
+---------------

+---------------
| Postfix can be set up to replace sendmail entirely. Please read the
| documentation at file:/usr/local/share/doc/postfix/html/index.html or
| http://www.postfix.org/ carefully before you decide to do this!
|
| To replace sendmail with postfix you have to install a new mailer.conf
| using the following command:
|
|     /usr/local/sbin/postfix-enable
|
| If you want to restore sendmail, this is done using the following command:
|
|     /usr/local/sbin/postfix-disable
+---------------

root@spud[~]$/usr/local/sbin/postfix-enable
old /etc/mailer.conf saved as /etc/mailer.conf.pre-postfix
postfix /etc/mailer.conf enabled

NOTE: do not forget to add sendmail_flags="-bd -q30m" to
      /etc/rc.conf.local to startup postfix correctly.

NOTE: do not forget to remove the "sendmail clientmqueue runner"
      from root's crontab.

Maintenant, je configure plus finement postfix dans le fichier /etc/postfix/main.cf. Je donne ici la sortie de postconf -n qui liste les options modifiées par rapport aux valeurs par défaut. J'ai commenté les valeurs importantes :
root@spud[postfix]$/usr/local/sbin/postconf -n

# ou sont les commandes externes pour controler postfix
command_directory = /usr/local/sbin

# ou est la configuration
config_directory = /etc/postfix

# ou sont les commandes internes de postfix
daemon_directory = /usr/local/libexec/postfix

debug_peer_level = 2
html_directory = /usr/local/share/doc/postfix/html
mail_owner = _postfix

# IMPORTANT : la commande pour traiter les e-mails. Moi je les transmet a procmail
mailbox_command = /usr/local/bin/procmail -a "$EXTENSION"

# certains pourront vouloir dire a postfix de les ranger 
# - dans une mailbox => home_mailbox = mailbox
# - ou au format Maildir/ => home_mailbox = Maildir/

mailq_path = /usr/local/sbin/mailq
manpage_directory = /usr/local/man

# la liste des domaines pour lesquels on accepte des message
mydestination = $myhostname, landry.homelinux.net

# le nom du serveur, et aussi le domaine principal des messages. 
# utilise pour bcp d'autres parametres
myhostname = fr.homeunix.org

# liste des reseaux de confiance pour lesquels on accepte des messages sortants
mynetworks = 10.246.200.0/24, 127.0.0.0/8

newaliases_path = /usr/local/sbin/newaliases
queue_directory = /var/spool/postfix
readme_directory = /usr/local/share/doc/postfix/readme

# la route par defaut des messages sortants. peut-etre pas obligatoire... a voir.
relayhost = smtp.neuf.fr

sample_directory = /etc/postfix
sendmail_path = /usr/local/sbin/sendmail
setgid_group = _postdrop

# on ne donne toujours pas trop d'infos sur la version du serveur
smtpd_banner = $myhostname ESMTP $mail_name

# des regles pour ne pas servir d'open relay 
smtpd_recipient_restrictions = permit_mynetworks reject_unauth_destination

# la configuration de la partie authentification TLS du serveur
smtpd_tls_CAfile = /etc/postfix/ssl/server.crt
smtpd_tls_CApath = /etc/postfix/ssl
smtpd_tls_cert_file = /etc/postfix/ssl/server.crt
smtpd_tls_key_file = /etc/postfix/ssl/server.key
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_use_tls = yes
unknown_local_recipient_reject_code = 550

Avec cette configuration, on a un serveur mail fonctionnel en réception et en émission. :-)
Retour

Valid XHTML 1.0! Valid CSS!