REGLE IPTABLES Internet down quand VPN déconnecté

Bonjour,

Actuellement j’utilise un VPN (de temps a autres) sur un poste linux pour faire tourner une connexion VPN sous OPENVPN, tout fonctionne correctement.

Je n’ai aucune règle iptable d’actives (linux par default),

root@Fabien:~# iptables-save
root@ Fabien :~#

Je voudrais créer une règle IPTABLE qui interdit l’axe à internet si le VPN n’est pas connecté.

Auriez-vous une idée ?

Je vous remercie par avance

Actuelement j’utilise une cerssion de Linux Debian Kernel 3.19.8

Sans doute en forçant l’utilisation exclusive de la route du VPN et une autre pour le lan si il y a un lan à accéder avec cette machine.

“L’axe” ? Tu veux dire l’accès ?

Il y a deux approches possibles :

  • ne pas créer de route par défaut lorsque le VPN n’est pas établi. Cela suppose de créer à la place des routes vers les adresses nécessaires à l’établissement du VPN (serveurs DNS pour la résolution du nom du serveur VPN si nécessaire, serveur VPN)
  • ou bloquer les paquets IP à destination d’adresses extérieures autres que celles ci-dessus avec des règles iptables lorsque le VPN n’est pas établi.

bloquer les paquets IP à destination d’adresses extérieures autres que celles ci-dessus avec des règles iptables lorsque le VPN n’est pas établi.

La seconde solutions me semble pas mal.

comment faire pour bloquer les paquets IP à destination d’adresses extérieures lorsque le VPN n’est pas établi.?

on peut faire aussi un script qui tourne en boucle qui coupe internet si le VPN est DOWN

c’est pas facile ? / je suis perdu j’arrive pas :pensive:
En tout cas je tenez à vous remercier car je sais maintenant quoi recherché sur internet

comment faire pour bloquer les paquets IP à destination d’adresses extérieures lorsque le VPN n’est pas établi.?

Alors que au tout début je ne savait pas le concept de ce que je ne savais pas comment faire

MERCI :slight_smile:

On doit pouvoir faire quelque chose d’assez simple. Par exemple :

  • autoriser les communications internes sur l’interface de loopback
  • autoriser les communications avec la plage d’adresses du réseau local
  • autoriser les requêtes DNS sortantes si le(s) serveurs DNS ne sont pas dans le réseau local (box)
  • autoriser les communications avec le reste du monde sur l’interface du VPN
  • bloquer les communication avec le reste du monde sur les autres interfaces.

Il ne reste qu’à traduire cela en règles iptables.
Par exemple en supposant que la plage du réseau local est 192.168.1.0/24 et l’interface du VPN est de la forme tun* :

iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -d 192.168.1.0/24 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -o tun+ -j ACCEPT
iptables -A OUTPUT -j DROP

non sa marche pas

la connexion VPN se coupe (hote indisponible) et je doit rebooter le PC pour me reconnecté au VPN,

Forcément, si j’oublie d’écrire qu’il faut accepter les communications avec le serveur du VPN, ça va marcher beaucoup moins bien.

Par exemple pour un serveur OpenVPN en UDP sur le port 1194, insérer ceci avant la règle DROP :

iptables -A OUTPUT -p udp -d adresse.ip.du.serveur.vpn --dport 1194 -j ACCEPT

Les règles que j’indique ne sont que des exemples. Evidemment il faut les adapter à la situation réelle.

Mais non. Il suffit de supprimer la règle DROP, ou toutes les règles avec

iptables -F

Je veux bien donner des indications, mais il faudrait quand même maîtriser un minimum l’utilisation d’iptables.