Projet: Créer un pont openvpn dont la connexion internet est sur le wifi et le réseau local sur le lan. Le tout sera routé et non naté.
1.Postulat
Lire:
Configurer un pont openvpn client wifi réseau local lan sous alpine linux
10.8.0.0/24 fd42:42:42::/64 réseau openvpn
10.9.0.0/24 fd42:42:43::/64 réseau derrière le connecteur
Indication pour le masquerading niveau serveur, il faut le faire par mask /64, on ne peut concaténer sur une plage plus grande en jouant sur un masque supérieur.
Le client est déclaré sur openvpn sous le nom de:
ClientConnector
L’avantage du routé est de pourvoir directement accéder au périphérique final depuis le serveur vpn ou d’un autre périphérique connecté au vpn sans rebond.
Le désavantage est qu’il faudrait ajouter des configuration particulières aux routes sur le serveur.
2.Topologie
IPV4
1 |
Endpoint client - eth0(10.9.0.X/24) <--> eth0 (10.9.0.1/24) - Connector - tun0(10.8.0.X/24) <--> tun0(10.8.0.1/24) - VPNSERVER - ens192(X.X.X.X/32) |
IPV6
1 |
Endpoint client - eth0(fd42:42:43::X/64) <--> eth0 (fd42:42:43::1/64) - Connector - tun0(fd42:42:42::X/64) <--> tun0(fd42:42:42::1/64) - VPNSERVER - ens192(X::X/64) |
2.Configuration côté serveur
nano /etc/openvpn/server.conf
Vérifier si présent:
1 2 3 4 5 |
client-config-dir /etc/openvpn/ccd route 10.9.0.0 255.255.255.0 push "route 10.9.0.0 255.255.255.0" route-ipv6 fd42:42:43::/64 push "route-ipv6 fd42:42:43::/64" |
nano /etc/openvpn/ccd/ClientConnector
1 2 |
iroute 10.9.0.0 255.255.255.0 iroute-ipv6 fd42:42:43::/64 |
3.paquets et configurations
Première conf avec setup-alpine
Commandes à exécuter:
1 2 3 4 5 6 |
apk add wpa_supplicant apk add openssh apk add openvpn apk add dnsmasq apk add iptables apk add nano |
1 |
wpa_passphrase 'ExampleWifiSSID' 'ExampleWifiPassword' > /etc/wpa_supplicant/wpa_supplicant.conf |
nano /etc/openvpn/openvpn.conf
Mettre le profil généré avec openvpn-install.sh
nano /etc/sysctl.d/local.conf
1 2 |
net.ipv4.ip_forward=1 net.ipv6.conf.all.forwarding=1 |
Commandes à exécuter:
1 2 3 4 5 6 |
rc-update add wpa_supplicant rc-update add sshd rc-update add openvpn rc-update add dnsmasq rc-update add iptables rc-update add ip6tables |
nano /etc/conf.d/iptables
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# /etc/conf.d/iptables # Location in which iptables initscript will save set rules on # service shutdown IPTABLES_SAVE="/etc/iptables/rules-save" # Options to pass to iptables-save and iptables-restore SAVE_RESTORE_OPTIONS="-c" # Save state on stopping iptables SAVE_ON_STOP="yes" # Enable/disable IPv4 forwarding with the rules IPFORWARD="yes" |
Commandes à exécuter:
1 2 3 |
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT rc-service iptables save |
1 2 3 |
ip6tables -A FORWARD -i eth0 -o tun0 -j ACCEPT ip6tables -A FORWARD -i tun0 -o eth0 -j ACCEPT rc-service ip6tables save |
nano /etc/dnsmasq.conf
chercher la ligne « #interface= » et mettre en dessous « interface=eth0 »
nano /etc/dnsmasq.d/eth0.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# DHCP configuration # log-dhcp pour voir dans /var/log/messages interface=eth0 dhcp-range=10.9.0.50,10.9.0.150,12h dhcp-option=option:netmask,255.255.255.0 dhcp-option=option:router,10.9.0.1 dhcp-range=fd42:42:43::50,fd42:42:43::150, 64, 12h dhcp-option=option:dns-server,10.9.0.1 dhcp-option=option6:dns-server,fd43:43:43:43::1 enable-ra # DNS configuration domain=local.lan local=/local.lan/ |
Si tout semble fonctionner à ce stade vous pouvez sauvegarder:
1 |
lbu commit |