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