UPDATE : voir la version à jour pour Debian Squeeze.
fail2ban est utilisé pour lire les log de tous les autres démons et bannir des adresses IP s'ils ont échoués à plusieurs reprises de se connecter.
On installe simplement par apt :
apt-get install fail2ban
Puis on configure fail2ban dans /etc/fail2ban/jail.conf
bantime = 600
destemail = server@domain.tld
action = %(action_mwl)s
[postfix]
action = %(action_)s
bantime = 3600
De cette façon, on recevra un email lorsque fail2ban fera une action quelconque.
UPDATE : voir la version à jour pour Debian Squeeze.
Cette partie sera la plus grande car la plus complexe. Et on ne se facilite pas la tâche puisque le serveur de mail incluras un antispam avec vérifications des éventuels virus contenu dans les emails. L'antispam pourra aussi apprendre de ses erreurs lorsque l'utilisateur final déplacera simplement ses emails dans les dossiers IMAP.
Bref, commençons par supprimer l'éventuel Exim 4 qui serait présent sur le serveur :
UPDATE : voir la version à jour pour Debian Squeeze.
J'ai choisi PowerDNS plutôt que Bind parce que sa configuration peut se faire de différentes façons. J'ai choisi d'utiliser MySQL. On désinstalle donc bind avant d'installer PowerDNS :
apt-get remove bind9
apt-get install pdns-server pdns-backend-mysql pdns-recursor
PowerDNS est découpé de deux façon différentes et indépendantes : le serveur qui permet de définir vos zones (vos sites, sous-domaines, etc...) et le recursor qui permet d'effectuer des requêtes DNS vers l'extérieur.
UPDATE : voir la version à jour pour Debian Squeeze.
On installe le serveur :
apt-get install mysql-server
Durant l'installation, il vous sera demandé le mot de passe de l'utilisateur MySQL root.
MySQL vient avec une commande sympathique qui permet de sécurisé le serveur :
mysql_secure_installation
# Current password : VOTRE_MOT_PASSE
# set new password : N
# remove anonymous Users : Y
# Disallow root login remotley : Y
UPDATE : voir la version à jour pour Debian Squeeze.
Et c'est là qu'on découvre les joies de Debian :
apt-get install apache2 apache2-dev libapache2-mod-gnutls php5 php5-mysql php5-dev php-pear php5-gd php5-mcrypt
Nous installes tout le nécessaire pour apache avec PHP5.
Un peu ce paramétrage s'impose quand même : dans le fichier /etc/apache2/mods-available/userdir.conf, remplacer public_html par www.
En effet, sur notre serveur, chaque site aura un utilisateur associé avec un dossier www où les fichiers web seront déposés.