juin
03
Posted on 03-06-2010
Filed Under (Virtualisation) by admin

Pour ma part, j’aime bien associer un service à un serveur pour des raisons de sécurité et de clareté dans un parc informatique. Il m’est arrivé de me connecter à un serveur DNS pour faire des modifications de zone et de m’aperçoit que ce serveur héberge aussi des pages visible du monde entier. Un hack du serveur HTTP et aurevoir le serveur DNS dans la foulée.

C’est vrai qu’il faut prendre en considération que les adresses IP se font rares de nos jours et que la virtualisation est d’actualité, et c’est là tout l’intérêt de cet article.

A partir d’une installation de base de FreeBSD, nous allons voir comment déployer un serveur virtuel (jail) qui servira de serveur DNS. On travaillera plutôt sur le côté virtualisation que gestion des adresses IP publiques qui pourrait être faite avec Packet Filter et du NAT.

Préparation du serveur physique

La première chose à faire sur le serveur physique, sera de supprimer les services inutiles et de forcer l’écoute des démons réseaux sur l’adresse IP du serveur.

Partant d’une installation toute neuve, supprimer les services inutiles n’est pas nécessaire, on peut passer à la configuration des démons réseaux.

Commençons par voir ce qui tourne sur le serveur.

$ sockstat -4 -l
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
root     sendmail   819   3  tcp4   127.0.0.1:25          *:*
root     sshd       809   4  tcp4   *:22                  *:*
root     syslogd    578   7  udp4   *:514                 *:*

On constate que les services SMTP, SSH et Syslog sont actifs. Il n’y a aucune utilité à voir tourner un serveur SMTP sur le serveur hôte.

On va donc le désactiver et forcer l’écoute des démons sshd et syslogd sur l’adresse IP.

Pour le serveur SSH, la modification doit être faite dans le fichier de configuration du serveur.

$ cat /etc/ssh/sshd_config
[...]
ListenAddress 192.168.1.1
[...]

Pour les deux autres démons, ça se passe dans le fichier de configuration du système.

$ cat /etc/rc.conf
[...]
# Désactiver sendmail
sendmail_enable='NO'
sendmail_submit_enable='NO'
sendmail_outbound_enable='NO'
sendmail_msp_queue_enable='NO'

# Syslogd en mode sécurisé
syslogd_flags='-ss'
[...]

Redémarrons le serveur et vérifions le résultat.

$ sockstat -4 -l
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
root     sshd       869   3  tcp4   192.168.1.1:22     *:*

Système de base du jail

Maintenant que notre serveur physique est prêt à héberger des jails, nous allons construire le système de base qui sera utilisé pour le déploiement.

Si vous avez déjà construit un système FreeBSD depuis les sources, les étapes restent identiques. Je pars du principe que nous avons les sources présentes dans le répertoire /usr/src du serveur.

$ cd /usrc/src
$ make cleandir
$ make cleanworld
$ rm -Rf /usr/obj
$ make buildworld

Notre système de base construit sans erreurs, passons à la création de notre première jail.

$ setenv JAIL /jails/dns
$ mkdir -p $JAIL

# Installation du système de base
$ make installworld DESTDIR=$JAIL

# Copie des fichiers de configuration
$ cd  etc/
$ make distribution DESTDIR=$JAIL

Et maintenant, la configuration de notre jail.

$ cat /etc/rc.conf
[...]
jail_enable="YES"
jail_list="dns"
jail_interface="re0"
jail_set_hostname_allow="NO"
jail_devfs_enable="YES"
jail_devfs_ruleset="devfsrules_jail"
jail_dns_rootdir="/jails/dns"
jail_dns_hostname="dns.mondomaine.lan"
jail_dns_ip="192.168.1.10"
[...]

Démarrons notre futur serveur DNS et entrons à l’intérieur.

$ /etc/rc.d/jail start dns
Configuring jails:.
Starting jails: dns.mondomaine.lan.
$ jls
   JID  IP Address      Hostname                      Path
     1  192.168.1.10    dns.mondomaine.lan            /jails/dns
$ jexec 1 /bin/csh
dns# uname -n
dns.mondomaine.lan

La configuration du jail reste identique à la configuration d’un serveur physique. Création des utilisateurs et des mots de passe, configuration des services réseaux, etc…
Reste un fichier qui peut s’avérer util pour certaines applications, le fichier /etc/fstab absent par défaut.
Un fichier vide suffit à moins d’avoir autorisé le mount depuis le serveur virtuel avec la directive jail_dns_mount_enable positionnée à YES dans le fichier rc.conf du serveur physique.

Le déploiement du serveur DNS n’étant pas prévu, il fera l’objet d’un prochain article.

Si vous avez des remarques ou juste pour dire un petit « merci », laissez un commentaire.

(0) Comments    Read More   
Poster un commentaire
Votre pseudo:
Votre e-mail:
Votre site:
Votre commentaire: