====== 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