Openvpn
Serveur
1 | apt-get install openvpn easy-rsa echo 1 > /proc/sys/net/ipv4/ip_forward sed -i "s/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/" /etc/sysctl.conf cp -r /usr/share/easy-rsa/ /etc/openvpn mkdir /etc/openvpn/easy-rsa/keys openssl dhparam -out /etc/openvpn/dh2048.pem 2048 cd /etc/openvpn/easy-rsa/ # on se place dans le rep de travail source vars # On charge les variables ./clean-all # On nettoie ce qui ne l'aurait pas été ./buid-ca # l'authorité de certification ./build-key-server server cp /etc/openvpn/easy-rsa/keys/{server.crt,server.key,ca.crt} /etc/openvpn |
Conf1
cat server.conf
#Configuration serveur
mode server # c'est le fichier de configuration du serveur
proto udp
port 1194
dev tun # mode routé
#Clefs
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh1024.pem
tls-auth keys/ta.key 0 # 0 pour le serveur
cipher AES-256-CBC # algorithme de chiffrement
#Configuration VPN
#client-to-client # permet la connexion entre clients
server 10.8.0.0 255.255.255.0 # adresse IP attribuées sur le VPN
#push "redirect-gateway def1 bypass-dhcp" # redirection du flux de données
#push "dhcp-option DNS 8.8.8.8" # utilisation de DNS alternatifs
#push "dhcp-option DNS 8.8.4.4"
keepalive 10 120 # ping toutes les 10 secondes,
# considéré comme down après 120 secondes sans réponses
#Divers
user nobody # on passe de l'utilisateur root à nobody
group nogroup # nogroup est typique d'Ubuntu, groupe nobody pour les autres
chroot /etc/openvpn/ovpn_jail # chroot de openvpn
persist-key # n'accède plus à certaines options,
persist-tun # car réduction des privilèges utilisateur
comp-lzo # compression des données
#Log
verb 3 # verbosité du log (1-9, 4 recommandé)
mute 20 # ne répète pas plus de 20 fois un message
status openvpn-status.log # fichier de statut
log-append /var/log/openvpn_append.log # fichier de log
log /var/log/openvpn.log
Test de la conf1
openvpn --config /etc/openvpn/server.conf
Start
1 | systemctl start openvpn |
Client
Certif client
1 | cd /etc/openvpn/easy-rsa/keys # on se place dans le rep de travail . ./vars # On charge les variables ./build-key <identifiant> |
conf
1 | cat client.conf #Configuration client client # mode client dev tun #proto tcp-client proto udp remote 195.154.16.64 1194 resolv-retry infinite nobind persist-key persist-tun #Clefs ca cert/ca.crt cert cert/client.crt key cert/client.key tls-auth cert/ta.key 1 #1 pour le client cipher AES-256-CBC comp-lzo verb 3 log-append /var/log/openvpn_append.log # fichier de log log /var/log/openvpn.log |
conf client client.ovpn1
echo '<ca>' >> ~/client.ovpn
cat /etc/openvpn/easy_rsa/keys/ca.crt >> client.ovpn
echo '</ca>' >> client.ovpn
echo '<cert>' >> client.ovpn
cat /etc/openvpn/easy_rsa/keys/client.crt >> client.ovpn
echo '</cert>' >> client.ovpn
echo '<key>' >> cleint.ovpn
cat /etc/openvpn/easy_rsa/keys/client.key >> client.ovpn
echo '</key>' >> client.ovpn