[UP] Open Vpn sur IP failover et règle iptables

Bonsoir,

J’ai actuellement un vpn sur une machine debian et là j’ai shop 1 ip failover mais impossible de configuré le vpn :confused:
Je pense que c’est un problème d’iptables

echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -d ! 10.8.0.1 -j SNAT --to-source ip machine iptables -A INPUT -p tcp --dport 1194 -j ACCEPT iptables-save

J’ai essayer plusieurs choses du style

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source ip failover

Mais sans succès :confused:

Erreur dans le log openvpn

TCP/UDP: Incoming packet rejected from 91.xxx.xxx.24:443[2], expected peer address: 91.xxx.xxx.72:443 (allow this incoming source address/port by removing --remote or adding --float)

91.xxx.xxx.24 = IP MERE
91.xxx.xxx.72 = IP FAILOVER

Côté client j’ai bien changé l’ip bien entendue …

Merci d’avance pour votre aide !

UP ( J’ai modifier le poste car celui-ci avais fait un bide --’)

Qu’est-ce qui te fait penser que c’est un problème d’iptables ?

Heu … en faite je sais pas, en vérité je sais pas !

Le message d’erreur, c’est côté client ou serveur ? Client, je suppose ?
Le VPN, c’est UDP ou TCP ?
Comment utilises-tu l’adresse IP failover ? Comme une seconde adresse sur le serveur ou pour du failover ?
Le serveur OpenVPN écoute sur quelle adresse ? La principale, la failover, n’importe laquelle ?

[quote=“PascalHambourg”]Le message d’erreur, c’est côté client ou serveur ? Client, je suppose ?
Le VPN, c’est UDP ou TCP ?
Comment utilises-tu l’adresse IP failover ? Comme une seconde adresse sur le serveur ou pour du failover ?
Le serveur OpenVPN écoute sur quelle adresse ? La principale, la failover, n’importe laquelle ?[/quote]

Côté client oui pour l’erreur !
Pour l’ip failover je l’ai ajouté en eth0:0 et sinon bas le vpn fonctionne très bien sur l’ip mère mais je souhaite juste avoir deux IP pour mon vpn qui use le protocole UDP sur le port 443

Ça me dit quelque chose. Sauf erreur, un serveur openvpn en UDP a la “particularité” de ne pas forcément répondre avec la même adresse que celle sur laquelle il a reçu les paquets. Cela n’est pas vraiment un bug car contrairement à TCP, UDP est un protocole non connecté, il ne définit pas la notion de connexion ni de réponse mais seulement des datagrammes indépendants. Avec une socket UDP utilisant une adresse locale indéfinie (0.0.0.0) - ce qui doit correspondre à l’absence d’option “local” pour openvpn - si l’application ne fixe pas l’adresse source lorsqu’elle émet un datagramme alors c’est la pile IP de la machine qui le fait, en fonction de la politique de routage. Et visiblement la pile IP utilise par défaut l’adresse principale de la machine, ce qui est logique.

Si tu veux que le serveur openvpn réponde en UDP avec l’adresse failover, il faut qu’il n’utilise que cette adresse, avec l’option “local”. Mais il ne sera alors plus joignable par l’adresse principale. Sinon, comme suggéré par le message d’erreur tu peux lancer le client avec l’option “float” pour permettre à l’adresse distante de changer.
Une façon de contourner cette particularité pourrait être de créer une règle de NAT pour le trafic openvpn sortant, mais je ne garantis rien :

Sauf erreur, les paquets des VPN utilisant l’adresse principale ne devraient pas être affectés car ils devraient être reconnus comme des réponses et donc ignorés par les règles de NAT.

Pourquoi vouloir que le serveur soit joignable par les deux adresses ?

[quote=“PascalHambourg”]
Pourquoi vouloir que le serveur soit joignable par les deux adresses ?[/quote]

Ça marche pas et sinon je veux juste avoir deux ip différente sur mon vpn !
1 ip failover coûte moins cher que d’acheter deux serveurs !

Oublie, ça ne marchera pas pour au moins deux raisons auxquelles j’ai pensé après m’être déconnecté. De toute façon c’est du mauvais bricolage.
J’ai ensuite pensé à une règle DNAT en entrée pour rediriger l’adresse secondaire vers l’adresse principale. Mais là encore l’écueil est le délai d’expiration court (de l’ordre de la minute) du suivi de connexion UDP en l’absence de trafic sur le VPN. Cela peut néanmoins être compensé par une option “ping” avec un intervalle plus court pour générer du trafic et maintenir la “connexion”.

Mais pourquoi ? Qu’est-ce que ça t’apporte qu’une seule adresse n’apporte pas ?

Mais ce n’est pas la même chose. Là, tu as une instance unique d’openvpn ayant deux adresses. Avec deux machines, tu aurais forcément deux instances d’openvpn ayant chacune une seule adresse. Tu peux reproduire la même situation sur une seule machine en lançant deux instances distinctes d’openvpn ayant chacune une seule adresse, avec l’option “local”, et pourquoi pas, d’autres options différentes.

[quote=“PascalHambourg”]
Mais pourquoi ? Qu’est-ce que ça t’apporte qu’une seule adresse n’apporte pas ?[/quote]

Si j’ai deux utilisateurs connecté en même temps je ne veux pas qu’il ai la même ip simplement

j’ai pas compris … :confused:

Moi non plus, je n’ai pas compris ta justification. Que vient faire le nombre d’utilisateurs ici ?

Je t’explique … Je souhaite fournir le vpn a plusieurs personne avec des users jusque là aucun problème mais je souhaite tout simplement pouvoir donner une ip failover a chaque client pour que chaque client ai sa propre ip.

Client 1 = IP mere
Client 2 = IPFailover

En gros …

Il me semble que tu fais une confusion. L’adresse du serveur openvpn n’a aucun rapport avec l’adresse attribuée au client. Ou plutôt si, mais en négatif : cela ne peut pas être la même adresse, en vertu de l’unicité des adresses : une adresse => une machine. Donc il est exclu qu’un client se connecte au serveur avec l’adresse que tu comptes lui attribuer. Tu peux attribuer l’adresse failover à UN client, mais alors il ne faut pas l’affecter comme adresse secondaire au serveur.

D’après tes règles iptables, les clients reçoivent des adresses privées dans 10.0.8.0/24, et le serveur fait du NAT source/masquerading avec ses propres adresses publiques pour les connexion sortantes provenant de cette plage d’adresse. Cela n’est pas attribuer une adresse publique aux clients, c’est juste l’équivalent de ce que fait une box internet avec les machines qui sont derrière.

En tout cas, je ne vois toujours aucune raison que le serveur openvpn écoute sur plusieurs adresses.

@stryk :

Pourquoi vouloir des adresses IP différentes sur le serveur VPN ?

je vais prendre un exemple tout con, l’utilisateur A avec son IP A sous mon vpn se fait ban de Youtube pour X raison si l’utilisateur B possède l’ip A se retrouve lui aussi banni a Youtube sans raison …
Bon c’est un exemple bien sur, je souhaite donc juste pouvoir attribué si possible différente ip aux utilisateurs !

je sais que cela est possible mais je cherche comment ?

Tu peux définir dans la configuration d’openvpn quelle adresse est attribuée au client.
Mais je répète, cela n’a aucun rapport avec le message initial de ce fil qui concernait l’adresse sur laquelle les clients se connectent au serveur openvpn.

Oui mais comment alors car côté client j’ai bien mis l’ip failover …

[code]remote 91.xx.xxx.72 443
########Le mode
client
########

#########La carte réseau virtuelle
dev tun
#########

###########Protocole
proto udp
###########

#######################En cas de déconnexion reconnexion automatique a l’infinie
resolv-retry infinite
#######################

########Désactive les binds
nobind
########

#############Clés persistantes
persist-key
persist-tun
#############Tunnel persistant

########################Protection anti man in the middle
tls-auth protect.key 1
########################

###########Certificat ssl en 2048bit l’encryption la plus grosse supporter par openvpn pour les certificats
ca ca.crt
###########

####################chiffrement des données en 256bit chiffrement le plus gros supporter par openvpn
cipher AES-256-CBC
####################

##########Active la compression
comp-lzo
##########

################Authentification utilisateur
auth-user-pass
################

####################################Mettre le poin virgule en cas de probleme de connexion avec le vpn
redirect-gateway def1 bypass-dhcp
####################################
[/code]

Cela fonctionne pas …

Il faut donc que j’enlève l’ip dans l’eth0:0 ?

Je me tue à répéter que l'option "remote" spécifie l'adresse distante à laquelle il faut se connecter pour établir le VPN, et en aucun cas l'adresse qui sera affectée à l'interface tun/tap à l'intérieur de ce VPN !