Bonjour,
Je m'arrache les quelques cheveux qui me restent depuis quelques jours maintenant.
Pour essayer de faire simple, j'ai deux clients (des raspberry pi sous raspbian) qui se connectent à un serveur VPN (openvpn configuré via pivpn -le serveur est aussi un raspberry- puis customisé comme j'ai pu). Chaque client dispose d'une IP fixe 10.8.0.2 et 10.8.0.3 pour se connecter au serveur dont l'IP est 10.8.0.1 sur l'interface tun0. L'adresse du VPN sur son réseau local est 192.168.1.100 sur l'interface eth0 (le serveur est physiquement sur un réseau distant). Le but est de rediriger le port 8443 sur la machine 10.8.0.2 et le port 443 sur la machine 10.8.0.3 qui hébergent chacune un site web différent.
La box qui fournit internet au serveur VPN est configurée pour que les ports 1194, 443 et 8443 soient redirigés sur l'IP 192.168.1.100.
J'y connais vraiment rien en redirection, et j'ai configuré iptables de la sorte sur le serveur :
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere 192.168.1.100 tcp dpt:8443 to:10.8.0.2:8443
DNAT tcp -- anywhere 192.168.1.100 tcp dpt:https to:10.8.0.3:443
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 10.8.0.0/24 anywhere
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Si je connecte seulement la machine 10.8.0.2 au VPN, j'arrive bien à accéder à son site web en tapant https://adressepubliqueduserveur:8443.
Si je connecte seulement la machine 10.8.0.3 au VPN, j'arrive bien à accéder à son site web en tapant https://adressepubliqueduserveur:443 (le ":443" est même superflu).
Là où les choses se gâtent, c'est quand je connecte mes deux clients au VPN en même temps. Dans ce cas, j'arrive à accéder aux 2 sites, mais très rapidement le système devient instable et je subis des déconnections à répétition qui rendent la consultation des sites web totalement impossible...
Les problèmes ne viennent pas d'un trafic trop important, il n'y a qu'un utilisateur à la fois (moi).
Le fichier conf du serveur est :
dev tun
proto udp
#proto tcp
port 1194
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/servername.crt
key /etc/openvpn/easy-rsa/pki/private/servername.key
dh none
ecdh-curve secp384r1
topology subnet
server 10.8.0.0 255.255.255.0
# Set your primary domain name server address for clients
push "dhcp-option DNS 192.168.1.254" #La box du serveur a l'adresse 192.168.1.254
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
# Prevent DNS leaks on Windows
push "block-outside-dns"
# Override the Client default gateway by using 0.0.0.0/1 and
# 128.0.0.0/1 rather than 0.0.0.0/0. This has the benefit of
# overriding but not wiping out the original default gateway.
push "redirect-gateway autolocal def1 bypass-dhcp"
#client-to-client
ifconfig-pool-persist /etc/openvpn/ipp.txt
keepalive 15 120
remote-cert-tls client
tls-version-min 1.2
tls-crypt /etc/openvpn/easy-rsa/pki/ta.key
cipher AES-256-CBC
auth SHA256
compress lz4
user nobody
group nogroup
persist-key
persist-tun
#persist-local-ip
crl-verify /etc/openvpn/crl.pem
status /var/log/openvpn-status.log 20
status-version 3
syslog
verb 6
#DuplicateCNs allow access control on a less-granular, per user basis.
#Remove # if you will manage access by user instead of device.
#duplicate-cn
# Generated for use by PiVPN.io
# Client config directory (pour assigner des ip fixes par exemple)
client-config-dir /etc/openvpn/ccd
Et les fichiers conf des clients ressemblent à ça :
client
dev tun
proto udp
#proto tcp
remote adressepubliqueduserveur 1194
resolv-retry infinite
askpass /etc/openvpn/client/Client.pass
nobind
persist-key
persist-tun
ping 10
ping-restart 120
remote-cert-tls server
tls-version-min 1.2
verify-x509-name servername name
cipher AES-256-CBC
auth SHA256
compress lz4
verb 3
explicit-exit-notify 3
status /var/log/openvpn-status.log 20
[Certificats...]
Si ça se trouve, c'est tout bête comme problème, mais je sèche totalement. Je peux éventuellement fournir des logs à la demande...
Merci d'avance si quelqu'un sait comment résoudre mon problème et pouvoir passer du site web d'une machine à l'autre sans que les connexions deviennent instables...