Serveur DNS BIND9 et dnscontrol

Bonjour,

Sur mon serveur, j'ai toujours évité le problèmes du serveur dns par confort et manque de temps. Ayant eu quelques problèmes avec leurs dns j'ai décidé de me lancer dans un serveur dns.

Pour installer:
sudo apt-get install bind9

Et voilà c'est installé passons à la configuration. (Je ne prétend pas avoir "la configuration" mais une configuration qui marche.
Le fichier /etc/bind/named.conf :

options 
{
   directory "/var/cache/bind/"; //Dossier contenant les zones
   notify yes; //On notifie des changements aux autres serveurs dns
   //On définie la liste des serveurs qui doivent être notifiés après
   allow-transfer { ipdnssecondaire;};
};

//On crée une vue pour les ip locales
view "internal"
{
   match-clients {localnets;}; //On définie les ip locales localnets représente le pc, après
   si vous avez un sous réseau mettez e
   recursion yes; //En local on autorise la récursion
   //Zones locales
   zone "."
   {
      type hint;
      file "/etc/bind/db.root";
   };
   zone "127.in-addr.arpa"
   {
      type master;
      file "/etc/bind/db.127";
   };
   zone "0.in-addr.arpa"
   {
      type master;
      file "/etc/bind/db.0";
   };
   zone "255.in-addr.arpa"
   {
      type master;
      file "/etc/bind/db.255";
   };
   zone "localhost"
   {
      type master;
      file "/etc/bind/db.local";
   };
};


// Vue pour les pc de l'extèrieurs
view "external"
{
   match-clients { any; }; //Tout le monde
   recursion no; //Pas de récursion cela est définit comme favoriser des "pirates" pour l'afnic
   zone "sylvain-lebon.fr" //zone pour un domaine
   {
      type master; //On est le dns principal
      file "s/sylvain-lebon.fr"; //Le fichier se trouvera dans /var/cache/bind/s/sylvain-lebon.fr
      notify yes; //On notifie le dns secondaire
      allow-transfer { ipdnssecondaire;}; //Listes des dns secondaires
   };

   [...] //Autres domaines

   //On se sert de dns secondaires à un ami
   zone "garrigue.fr"
   {
      type slave;
      file "g/garrigue.fr"; //Fichiers dans /var/cache/bind/g/garrigue.fr :
//penser à faire un sudo chown bind:bind /var/cache/bind/g/ -R, car ici bind doit pouvoir écrire
      masters {ipdnsami;} //Ip du dns de l'ami;
   };

};
Voilà pour named.conf. Désormais il reste à définir les règles pour notre domaine (exemple sylvain-lebon.fr).
sudo vi /var/cache/bind/s/sylvain-lebon.fr
$TTL 2H //time to live 2H
@ IN SOA reversednsdelamachine. root.sylvain-lebon.fr.
; Le reverse et root se terminent par un point
(
2007011904 ; serial : yyyymmjj+numéro de modification Penser à changer à chaque changement
        8H ; refresh
     2H ; retry
        4W ; expire
        2H ; minimum TTL
)

NS reversednsmachine. ; name server Serveur DNS1
NS     urldns2. ; name server SERVEUR DNS2
       MX    10 mail.sylvain-lebon.fr.; mail exchange
       A  ip
www     A     ip
blog A    ip
[...]
; on peut même mettre:
*  A  ip
Voilà on a une configuration qui tourne. Maintenant:
 sudo /etc/init.d/bind9 restart
.
Si vous voulez avoir une interface d'administration pour vos membres : dnscontrol (http://r00tshell.com/dns-control/). ( Pensez à modifier les fichier template pour named.conf de manière à ce que cela correspond à votre configuration. Idem pour dns.inc.php pour l'écriture des différents éléments. ) Sinon toute l'installation est décrite dans INSTALL

 

Postfix + courrier imap

J'écris rapidement ces lignes dans le but de résumer mon installation postfix + imap.

apt-get install postfix courier-imap libsasl2 libauthen-sasl-cyrus-perl sasl2-bin postfix-tls libsasl2-modules postgrey

/etc/postfix/main.cf

# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
# myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = nom machine.mondomaine.tld
#domaine 1

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = localhost.fr, localhost
relayhost = home_mailbox = Maildir/
mynetworks = 127.0.0.0/8, ipdomicile, localhost
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
virtual_alias_domains = domaine 2
virtual_maps = hash:/etc/postfix/virtual
virtual_alias_maps = dbm:/etc/postfix/virtual
virtual_alias_maps = hash:/etc/postfix/virtual
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination,
reject_rbl_client relays.ordb.org,
reject_rbl_client opm.blitzed.org,
reject_rbl_client sbl-xbl.spamhaus.org,
reject_rbl_client bl.spamcop.net,
reject_invalid_hostname,
check_policy_service inet:127.0.0.1:60000

/etc/default/saslauthd

START=yes 
MECHANISMS="shadow"
PARAMS="-r -m /var/spool/postfix/var/run/saslauthd"
Puis tapez :
mkdir -p /var/spool/postfix/var/run/saslauthd 
chown postfix:sasl /var/spool/postfix/var/run/saslauthd
/etc/init.d/saslauthd start

/etc/postfix/virtual

pseudo@domain.tld  localuser
pseudo2@domain.tld mail@mail.com

Puis tapez postmap /etc/postfix/virtual afin d'actualiser les alias

/etc/postfix/sasl/smtpd.conf

pwcheck_method: saslauthd
mech_list: plain login
/etc/init.d/postfix reload

imap

Avec la commande maildirmake, créez votre dossier Maildir à la racine de votre compte.

Le but de ce sujet n'est pas de décrire complétement l'installation mais de résumer les étapes. A savoir qu'avec ça, on a un serveur imap et smtp permettant l'envoi de messages depuis une liste de domaines définis donc pas open relay et d'avoir vos mails dans vos comptes.