Configuration d'un serveur openvpn sur Raspbian

Ce post fait parti d'une série sur l'installation d'un Raspberry Pi :

Installation de paquets supplémentaires

Installation des paquets nécessaires :

apt-get install openvpn easy-rsa sslh

Configuration openvpn

port 1194

proto tcp-server
mode server
tls-server

dev tun

topology subnet

client-config-dir /etc/openvpn/ccd/

ca /etc/openvpn/ca.crt
cert /etc/openvpn/serveur.crt
key /etc/openvpn/serveur.key
dh /etc/openvpn/dh1024.pem

server 10.7.0.0 255.255.255.0
route 10.7.0.0  255.255.255.0
push route-delay 8

push "route-gateway 10.7.0.1"
push "route 0.0.0.0 0.0.0.0"
push "dhcp-option DNS 10.7.0.1"
push "redirect-gateway local def1"


#ifconfig-pool 10.7.0.200 10.7.0.250 255.255.255.0

#Cette ligne ajoute sur le client la route du réseau du serveur
#push "route 10.7.0.0 255.255.255.0"
#push "route-gateway 10.7.0.1"
#Ces lignes indiquent aux clients l'adresse des serveur DNS et WINS
#push "dhcp-option DNS 10.7.0.1"

keepalive 10 120

comp-lzo
ping-timer-rem
persist-tun
persist-key

verb 3
mute 5

Configuration du multiplexeur sslh

Ajouter les lignes suivantes dans /etc/default/sslh :

DAEMON_OPTS="--user sslh --listen 0.0.0.0:443 --ssh 127.0.0.1:22 --openvpn 127.0.0.1:1194 --ssl 127.0.0.1:445 --pidfile /var/run/sslh/sslh.pid"

sslh permet de multiplexer les protocoles sur le port 443. Cela permet de passer outre les firewall filtrants les ports hors 443… On a donc la possibilité d'attaquer les protocoles ssh, openvpn et https sur le même port.

Configuration de firehol

Comme nous avons modifié les réseaux, il faut les ajouter à firehol. Édition du fichier /etc/firehol/firehol.conf pour y ajouter les lignes suivantes :

interface tun0 vpnlan
        policy reject

        server dns accept
        server http accept
        server https accept
        server ICMP accept
        server ssh accept
        server smtp accept

        client all accept
        masquerade

router vpn2internet inface "tun0" outface "eth0"
       masquerade
       route all accept

Redémarrer firehol :

service restart firehol

La suite

Et on peut passer à la suite : configuration de lighttpd