Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/08/2015, à 11:54

Drdada

OpenVPN et Iptables - Redirect-gw et client-to-client

Bonjour,
j'essaye de faire fonctionner un serveur OpenVPN dans une VM (openvz).
J'aimerais qu'il fasse un réseau client-to-client (que les différents client puissent communiquer entre eux). Ca c'est ok les clients se pingent entre eux.
J'aimerais aussi mettre le paramètre redirect-gateway def1 sur certain clients pour que tout le traffic soit redirigé par le tunnel VPN.
C'est la que je bloque, lorsque le client est connecté et que je ping l'extérieur (8.8.8.8) je vois le paquet qui arrive bien jusqu'au serveur:

tcpdump -i tun0 icmp:

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 65535 bytes
11:46:43.807192 IP 10.8.0.6 > google-public-dns-a.google.com: ICMP echo request, id 1, seq 1954, length 40
11:46:48.806514 IP 10.8.0.6 > google-public-dns-a.google.com: ICMP echo request, id 1, seq 1955, length 40

Mais il n'arrive pas à faire le SNAT sad Il sort avec l'ip privée
tcpdump -i venet0 icmp:

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on venet0, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
11:48:13.805293 IP 10.8.0.6 > google-public-dns-a.google.com: ICMP echo request, id 1, seq 1972, length 40
11:48:18.807109 IP 10.8.0.6 > google-public-dns-a.google.com: ICMP echo request, id 1, seq 1973, length 40

iptables -t nat -L -v -n:

Chain PREROUTING (policy ACCEPT 61 packets, 3784 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 142 packets, 8720 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 SNAT       all  --  *      venet0  10.8.0.0/24          0.0.0.0/0            to:1.2.3.4

Chain OUTPUT (policy ACCEPT 142 packets, 8720 bytes)
 pkts bytes target     prot opt in     out     source               destination

Voici une partie de mes règles iptables:

#!/bin/sh

 iptables -F
 iptables -X
 iptables -t nat -F
 iptables -t nat -X
 iptables -t mangle -F
 iptables -t mangle -X

echo "FLUSH [OK]"

## Bloque tout le trafic sauf la sortie
 iptables -P INPUT DROP
 iptables -P FORWARD DROP
 iptables -P OUTPUT ACCEPT

## Autorise le routage
 echo 1 > /proc/sys/net/ipv4/ip_forward

## Autorise les connexions déjà établies et localhost
 iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
 iptables -A INPUT -i lo -j ACCEPT
 iptables -A OUTPUT -o lo -j ACCEPT

echo "Régles par défaut [OK]"

#Autorise l'interface openvpn
 iptables -A INPUT -i tun0 -j ACCEPT
 iptables -A FORWARD -i tun+ -j ACCEPT
 iptables -A FORWARD -i tun+ -o venet0 -m state --state RELATED,ESTABLISHED -j ACCEPT
 iptables -A FORWARD -i venet0 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT
 iptables -t nat -A POSTROUTING -s 10.8.0.0/24 ! -d 10.8.0.0/24 -j SNAT --to-source 1.2.3.4 #ip publique de la VM NB: Je ne mets pas masquerade car ce n'est pas compatible avec openVZ
# Openvpn Ouverture
 iptables -A INPUT -p udp --dport 1191 -j ACCEPT

Vous avez une idée ?

Hors ligne

#2 Le 27/08/2015, à 20:42

Drdada

Re : OpenVPN et Iptables - Redirect-gw et client-to-client

J'ai trouvé le problème. Une bêtise...
Voici les règles fonctionnelles:

 iptables -A INPUT -i tun0 -j ACCEPT
 iptables -A FORWARD -i tun+ -o venet0 -j ACCEPT
 iptables -A FORWARD -i venet0 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT
 iptables -t nat -A POSTROUTING -o venet0 -s 10.8.0.0/24 -j SNAT --to-source 1.2.3.4

Hors ligne