|
Source : Mise en situation Mise en place d’un serveur OpenVPN avec authentification LDAP. Sécurisation des échanges par certificats (pas de certificat spécifique pour les clients). Le mode utilisé est le mode pont. Les machines distantes possèderont une adresse IP du réseau interne. Note La création des certificats est disponible dans un autre article de ce site. Installation du serveur Installation des paquets apt-get install openvpn bridge-utils Installation du bridge Script d’initialisation Ce script est tiré du site officiel openVpn. vi /etc/openvpn/bridge-start #!/bin/bash ################################# # Set up Ethernet bridge on Linux # Requires: bridge-utils ################################# # Define Bridge Interface br="br0" # Define list of TAP interfaces to be bridged, # for example tap="tap0 tap1 tap2". tap="tap0" # Define physical ethernet interface to be bridged # with TAP interface(s) above. #Utiliser la commande ifconfig pour obtenir plus d’information concernant votre configuration #Nom de l’interface physique eth="eth0" #Adresse IP de la carte physique eth_ip="172.17.100.7" #Masque eth_netmask="255.255.255.0" #Adresse de broadcast eth_broadcast="172.17.100.255" #La boucle n’est pas utile dans notre cas mais gardons l’exemple d’openvpn #Creation de l’interface tap for t in $tap; do openvpn --mktun --dev $t done #Creation de l’interface de remplacement (interface virtuelle qui remplacera votre interface sur votre réseau), la carte réelle va être re-paramétré et donc inutilisable en tant que telle. brctl addbr $br brctl addif $br $eth for t in $tap; do brctl addif $br $t done #Montage des interfaces tap en promiscious for t in $tap; do ifconfig $t 0.0.0.0 promisc up done #Montage de l’inteface physique en mode promiscious ifconfig $eth 0.0.0.0 promisc up #Configuration compatible avec le réseau interne sur l’interface virtuelle ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast #Ajout de la passerelle du réseau interne route add default gw 172.17.100.1 #Lancement du serveur openvpn avec son fichier de configuration openvpn /etc/openvpn/server.cnf #Autorisation du passage des flux iptables -A INPUT -i tap0 -j ACCEPT iptables -A INPUT -i br0 -j ACCEPT iptables -A FORWARD -i br0 -j ACCEPT #Modification des droits sur le fichier chmod o+x /etc/openvpn/bridge-start Script de suppression vi /etc/openvpn/bridge-stop br="br0" tap="tap0" ifconfig $br down brctl delbr $br for t in $tap; do openvpn --rmtun --dev $t done ifdown eth0 ifup eth0 chmod o+x /etc/openvpn/bridge-start Lancement automatisé et scripté (exemple) vi /etc/init.d/openvpn-server #!/bin/sh case "$1" in start) nohup /etc/openvpn/bridge-start & ;; stop) nohup /etc/openvpn/bridge-stop & ;; *) echo 'Usage: /etc/init.d/openvpn-server {start|stop}' exit 1 ;; esac exit 0 chmod 755 /etc/init.d/openvpn-server update-rc.d openvpn-server defaults #Exemple d’utilisation /etc/init.d/openvpn-server /etc/init.d/openvpn-server start /etc/init.d/openvpn-server stop Fichier de configuration OpenVpn ;Ne demande pas de certificat spécifique au client client-cert-not-required ;Exige le support TLS tls-exit ;Chroot du répertoire d’exécution par sécurité chroot /tmp ;Autorisation des communications clients à clients client-to-client ;Port d’éxecution (à rediriger si nécessaire) port 1194 ;Utilisation du mode déconnecté UDP proto udp ;Utilisation de l’interface tap0 (0 peut être différent, cela dépend de votre script d’exécution du bridge dev tap0 ;Adresse du certificat d’authorité ca /etc/openvpn/ca.crt ;Adresse du certificat serveur cert /etc/openvpn/openvpn.zo.midgard.info.crt ;Adresse de la clef serveur key /etc/openvpn/openvpn.zo.midgard.info.key ;Adresse des paramètres DH dh dh1024.pem ;Type de serveur, adresse IP et masque, Pool alloué aux serveurs VPN server-bridge 172.17.100.7 255.255.255.0 172.17.100.200 172.17.100.250 ;Force l’échange keepalive 10 120 ;Activer la compression de type lzo comp-lzo ;Persistance persist-key persist-tun ;Fichier de log status openvpn-status.log ;Niveau de notification verb 3 ;Exécution du programme avec des droits restreints user nobody group nogroup Authentification LDAP Mise en situation Pour ajouter cette fonctionnalité, il faut que votre système d’authentification PAM soit déjà paramétré (cf : Debian Intégration Active Directory). Installation des paquets nécessaires apt-get install libpam0g-dev Fichier de configuration du serveur Il suffit d’ajouter une ligne pour activer le plugin : plugin /usr/lib/openvpn/openvpn-auth-pam.so common-auth Cas des routages NAT Rediriger le port UDP 1194 vers l’adresse IP du serveur openvpn. Installation du client Installations des paquets nécessaires apt-get install openvpn Fichier de configuration Attention, les fichiers nécessaire pour la sécurité (certificats et clefs) doivent être importé (cf : OpenVpn : Liaison VPN). vi /etc/openvpn/client.conf pull client dev tap proto udp remote midgard.info 1194 resolv-retry infinite nobind # Downgrade privileges after initialization (non-Windows only) user nobody group nogroup # Try to preserve some state across restarts. persist-key persist-tun ca ca.crt ;Demande d’identifiant à la connexion dans le prompt auth-user-pass ;ou recherche les identifiants dans un fichier (1er ligne : identifiant, 2eme ligne : mot de passe) ;auth-user-pass /etc/openvpn/file ns-cert-type server comp-lzo # Set log file verbosity. verb 3 # Silence repeating messages ;mute 20 |