IPsec Tools – RoadWarrior Server

Introduction

Dans cette section, nous verrons la configuration de Racoon et plus généralement des IPsec-tools pour configurer un concentrateur VPN/IPsec pour les clients roadwarrior configurés d’après ce document: RoadWarrior Client.

 

Préliminaires

Dans Debian GNU/Linux Sarge, la version de Racoon (0.5.2) ne possède pas le « mode_cfg » qui va nous permettre d’avoir cette configuration roadwarrior avec le concentrateur qui diffuse les paramètres réseau aux clients distants.

Nous allons devoir utiliser un backport de Debian Etch pour les paquets:

  • ipsec-tools
  • racoon

Vérifiez bien que vous remplissez les conditions énoncées dans la page Dépendances Noyau

Pour FreeBSD 6.2, IPsec-tools est dans une version assez récente pour être utilisé dans ce mode de configuration.

Mais il fallait bien un « mais »…. Il y a un patch noyau à mettre pour le support du NAT traversal.

Il se récupère à l’adresse suivante: http://ipsec-tools.sourceforge.net/freebsd6-natt.diff

Puis on l’applique en se mettant dans le répertoire /usr/src/sys avec la commande patch et on recompile son noyau.

Promis un de ces jours, je ferais une doc sur la compilation noyau sur FreeBSD.

Configuration de Racoon

La première étape sera de créé un certificat pour le concentrateur VPN. Pour cela, vous pouvez vous reporter aux documents: Création de l’autorité de certification et Création d’un certificat avec le CA

Ensuite, il sera biensûr nécessaire d’installer les paquets ipsec-tools et racoon.

Nous allons maintenant configurer Racoon en modifiant le fichier /etc/racoon/racoon.conf.

Voici mon fichier de configuration avec les commentaires dedans:

# Répertoire où sont stockés les certificats
path certificate "/etc/racoon/certs";

# Les IP sur lesquelles Racoon écoute
listen {
        isakmp 192.168.48.245 [500];
        isakmp_natt 192.168.48.245 [4500];
}

# Définition d'un noeud distant
# Ici, on ne sait pas d'où viennent les connexions...
# On peut venir de n'importe où en roadwarrior
remote anonymous {
        # Définition du mode pour la phase 1
        # Doit être à aggressive pour une configuration roadwarrior
        exchange_mode aggressive;
        # le certificat et sa clef associée que l'on a généré pour notre concentrateur
        certificate_type x509 "vpngw_cert.pem" "vpngw_key.pem";
        # La facon de s'identifier. Racoon prendra le ASN.1 distinguished name dans le certificat
        my_identifier asn1dn;
        # Pour que le concentrateur soit "maitre" sur les paramètres de la phase 1
        proposal_check claim;
        # Racoon génère les "routes" pour savoir quels paquets doivent passer par le VPN
        # On ne peut pas les définir d'avance car en roadwarrior, on ne connait pas l'IP source
        generate_policy on;
        # On active le NAT traversal avec détection automatique
        nat_traversal on;
        # Le delai pour la détection de defaillance de l'hôte distant
        dpd_delay 20;
        # workaround pour les firewalls qui posent problème avec les paquets IKE fragmentés.
        ike_frag on;
        # Proposition pour l'encryption et l'authentification
        proposal {
                # Encryptage en AES
                encryption_algorithm aes;
                # hashage en SHA1
                hash_algorithm sha1;
                # le type d'authentification
                authentication_method hybrid_rsa_server;
                # le groupe Diffie-Hellman utilisé
                dh_group 2;
        }
}

# Configuration du mode_cfg
mode_cfg {
        # Configuration du pool d'adresse IP
        # La première addresse allouable
        network4 192.168.254.130;
        # La nombre d'adresse et donc le nombre de clients simultanés maximum
        pool_size 100;
        # le netmask du réseau
        netmask4 255.255.0.0;
        # Le DNS que les clients doivent utiliser
        dns4 192.168.48.252;
        # Le server WINS que les clients doivent utiliser
        nbns4 192.168.48.251
        # La source pour authentifier les utilisateurs
        auth_source pam;
        # La banière que les clients recoivent à la connexion
        banner "/etc/racoon/motd";
        # PFS Group pour le client Cisco VPN
        pfs_group 2;
}

# Spécifications pour le SA "anonymous"
# Comme précedement, en roadwarrior on connait pas la source
sainfo anonymous {
        # le groupe Diffie-Hellman utilisé
        pfs_group 2;
        # Durée de vie d'une association
        lifetime time 1 hour;
        # Encryption en AES
        encryption_algorithm aes;
        # Authentification par SHA1
        authentication_algorithm hmac_sha1;
        # Compression activée
        compression_algorithm deflate;
}

Il est à noter que les utilisateurs VPN seront authentifiés grâce à PAM. Il faut doit que PAM soit correctement configuré.

Pour ma part, j’ai teste avec PAM qui s’appuie sur l’authentification LDAP et fichier passwd.

 

Configuration de IPsec-tools

Les associations au niveau du kernel, les « routes » d’une certaine facon de parler, seront définies dynamiquement. Comme je l’ai écrit dans le fichier de configuration, en roadwarrior on ne sait pas d’où les clients se connectent donc on ne peut les définir d’avance.

C’est donc Racoon qui va les définir dynamiquement grâce à la directive: generate_policy on.

Il faut donc vérifier que le fichier /etc/ipsec-tools.conf est bien vide ou que toutes les lignes sont commentées.

 

Les certificats

Il faudra maintenant placer les certificats dans le répertoire /etc/racoon/certs.

Nous devrons y trouver:

  • le certificat du concentrateur VPN
  • la clef associée au certificat
  • le certificat de l’autorité de certification. Si vous avez suivi Création de l’autorité de certification, il se trouve dans le sous répertoire demoCA et le nom du fichier est cacert.pem.

Attention aux droits des fichiers !!! Le plus simple est encore de faire appartenir le répertoire au root et qu’il ne soit lisible que par lui.

 

Activer les modifications

il ne reste plus qu’à redémarrer Racoon avec la commande suivante sur une Debian:

# /etc/init.d/racoon restart

 

TODO

Valider tout cela sur FreeBSD.

 

Mot de la fin

Le concentrateur VPN est maintenant configuré. Il ne reste plus qu’à s’occuper des clients. Pour cela, vous pouvez vous reportez au document RoadWarrior Client.

 

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s