Bonjour,
Je me disais qu'un gourou de la table IP pourrait peut être m'aider.
Je veux faire du split VPN sur une machine pour qu'un user passe obligatoirement par le VPN pour le trafic externe et que les autres users soient hors VPN.
Je suis ce totu qui fonctionne bien, a part que tout le trafic local du user sous VPN est bloqué.
Je pense que ça vient de ce script:
Et plus particulièrement de la règle:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 #! /bin/bash # Niftiest Software www.niftiestsoftware.com # Modified version by HTPC Guides www.htpcguides.com export INTERFACE="tun0" export VPNUSER="vpn" export LOCALIP="192.168.1.130" export NETIF="eth0" # flushes all the iptables rules, if you have other rules to use then add them into the script iptables -F -t nat iptables -F -t mangle iptables -F -t filter # mark packets from $VPNUSER iptables -t mangle -A OUTPUT -j CONNMARK --restore-mark iptables -t mangle -A OUTPUT ! --dest $LOCALIP -m owner --uid-owner $VPNUSER -j MARK --set-mark 0x1 iptables -t mangle -A OUTPUT --dest $LOCALIP -p udp --dport 53 -m owner --uid-owner $VPNUSER -j MARK --set-mark 0x1 iptables -t mangle -A OUTPUT --dest $LOCALIP -p tcp --dport 53 -m owner --uid-owner $VPNUSER -j MARK --set-mark 0x1 iptables -t mangle -A OUTPUT ! --src $LOCALIP -j MARK --set-mark 0x1 iptables -t mangle -A OUTPUT -j CONNMARK --save-mark # allow responses iptables -A INPUT -i $INTERFACE -m conntrack --ctstate ESTABLISHED -j ACCEPT # block everything incoming on $INTERFACE to prevent accidental exposing of ports iptables -A INPUT -i $INTERFACE -j REJECT # let $VPNUSER access lo and $INTERFACE iptables -A OUTPUT -o lo -m owner --uid-owner $VPNUSER -j ACCEPT iptables -A OUTPUT -o $INTERFACE -m owner --uid-owner $VPNUSER -j ACCEPT # all packets on $INTERFACE needs to be masqueraded iptables -t nat -A POSTROUTING -o $INTERFACE -j MASQUERADE # reject connections from predator IP going over $NETIF iptables -A OUTPUT ! --src $LOCALIP -o $NETIF -j REJECT # Start routing script /etc/openvpn/routing.sh exit 0
J'aimerais modifier ces règles pour qu'idéalement le trafic local (192.168.1.0/24) soit autorisé ou minimalement que les ports 18880 et 10071 restent libre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 # reject connections from predator IP going over $NETIF iptables -A OUTPUT ! --src $LOCALIP -o $NETIF -j REJECT
Je me débrouille un peu sous Linux, mais là je suis pas trop sur. Il me semble que les règles sont suivies de la plus restrictive à la plus générale.
Si je me trompe pas, ça veut dire que je peut ajouter une règle qui dit explicitement que le trafic local est autorisé. Un truc du genre:
Bon forcément, cette ligne est fausse, je sais pas trop où la mettre, ni comment la tester proprement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part iptables -A OUTPUT -o 192.168.1.130 -d 192.168.1.0/24 -m owner --uid-owner $VPNUSER -j ACCEPT
C'est pourquoi toute aide sera grandement appréciée et je vous remercie d'avance !








Répondre avec citation
Partager