====== OpenVPN ====== === Le serveur === == Installation == $ aptitude update; aptitude safe-upgrade; aptitude install openvpn $ cp -R /usr/share/doc/openvpn/examples/easy-rsa/2.0/ /etc/openvpn/easy-rsa/ $ cd /etc/openvpn/easy-rsa/ # Editer le fichier suivant $ nano /etc/openvpn/easy-rsa/vars Mettre à jour les ligne suivante à la fin du fichier: export KEY_COUNTRY="FR" export KEY_PROVINCE="FR" export KEY_CITY="Paris" export KEY_ORG="Gwadanina" export KEY_EMAIL="me@gwadanina_net" $ ln -s /usr/share/doc/openvpn/examples/easy-rsa/2.0/openssl-1.0.0.cnf openssl.cnf $ source ./vars $ ./clean-all $ ./build-ca # Création du certificat pour le serveur $ ./build-key-server server # Création du certificat pour un client $ ./build-key android-mobile # Création du paramètre Diffie Hellman $ ./build-dh $ mkdir -p /etc/openvpn/keys/ $ cp keys/ca.crt keys/ca.key keys/server.key keys/server.crt keys/dh1024.pem /etc/openvpn/keys/ # Création d'un user avec des droits limités $ groupadd openvpn $ useradd -d /dev/null -g openvpn -s /bin/false openvpn $ chown openvpn:openvpn -R /etc/openvpn/ # Génération d’une clef TLS $ openvpn --genkey --secret /etc/openvpn/ta.key # Configuration d’OpenVPN $ nano /etc/openvpn/server.conf Mettre les informations suivantes dans le fichier: # Configuration du serveur mode server dev tun # l’interface réseau utilisée max-clients 4 port 4443 # port-share XXX.XXX.XXX.XXX 4443 server 10.10.0.0 255.255.255.0 proto tcp # on peut utiliser le protocole TCP ou UDP keepalive 10 120 persist-key persist-tun comp-lzo ifconfig-pool-persist ipp.txt # SSL parameters ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/server.crt key /etc/openvpn/keys/server.key dh /etc/openvpn/keys/dh1024.pem tls-auth /etc/openvpn/ta.key 0 tls-server # VPN Gateway offer DNS parameters push "dhcp-option DOMAIN gwadanina.net" push "dhcp-option DNS 10.1.0.1" push "dhcp-option DNS 10.1.0.2" push "dhcp-option WINS 10.1.0.3" push "dhcp-option NTP 10.1.0.4" push "redirect-gateway def1" push "dhcp-option DNS 88.191.254.60" # DNS À MODIFIER SAUF POUR DEDIBOX # VPN Gateway offer this routes to clients push "redirect-gateway" push "route 10.2.0.0 255.255.0.0" ifconfig-pool-persist ipp.txt # Fix MTU problems mssfix 1300 # Drop root privileges chroot /etc/openvpn user openvpn group openvpn chroot /etc/openvpn/jail # Gestion des clients client-to-client client-config-dir ccd # Logging configuration status /var/log/openvpn/status.log log-append /var/log/openvpn.log verb 1 == Fichier de log == $ mkdir -p /var/log/openvpn/ $ nano /etc/logrotate.d/openvpn # Ajouter les lignes suivantes: /var/log/openvpn/status.log { rotate 4 daily copytruncate compress missingok notifempty } == Validations == $ /etc/init.d/openvpn start $ ps aux | grep openvpn $ ifconfig tun0 $ ping 10.10.0.1 == Rajouter la configuration du NAT au redémarrage == $ cd /etc/init.d $ touch openVPN.sh $ chmod +x openVPN.sh $ update-rc.d openVPN.sh defaults 99 $ nano /etc/init.d/openVPN.sh echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # -i tun0 iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -o eth0 -j MASQUERADE # -i tun0 iptables -t filter -A OUTPUT -p tcp --dport 4443 -j ACCEPT iptables -t filter -A INPUT -p tcp --dport 4443 -j ACCEPT iptables -A INPUT -i eth0 iptables -A FORWARD -i tun0 -j ACCEPT iptables -A FORWARD -o tun0 -j ACCEPT === Le client === == Configuration du client == Copier les certificats : ta.key, ca.crt, client.crt, client.key et client.conf dans le repertoire /sdcard/openvpn du mobile $ nano /sdcard/openvpn/client.conf client dev tun proto tcp remote IP_PUBLIQUE_DE_VOTRE_SERVEUR 4443 # IP À MODIFIER resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert android-mobile.crt # NOM À MODIFIER key android-mobile.key # NOM À MODIFIER tls-auth ta.key 1 comp-lzo verb 3 route-method exe route-delay 2 == OpenVpn sur Android == Installer la version d'OpenVPN de Friedrich Schäuffelhut : https://play.google.com/store/apps/details?id=de.schaeuffelhut.android.openvpn.installer Pour la configuration : https://play.google.com/store/apps/details?id=de.schaeuffelhut.android.openvpn Suivre l'installation en rajoutant les différents logiciels demandés comme busybox ... == Test du client == Utilisez le site http://www.whatismyip.com/ afin de constater l'adresse IP du serveur sur le client