Есть настроенное подключение к OpenVPN серверу, нужно сделать так чтоб когда обрывается связь с ВПН сервером то с локальной сети не было доступа в Интернет.
На клиенте OpenVPN есть два Ethernet, один смотрит к провайдеру(eth0), а второй в локальную сеть(eth1).
Для того чтоб был доступ в Интернет на клиенте пробрасывается траффик:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -i eth0 -o eth1 -s 192.168.0.33/24 -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --icmp-type 8 -j ACCEPT
В локально сети IP шлюза 10.10.10.1 (eth1)
С выключенным OpenVPN таблица маршрутизации:
root@client:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
37.1.X.X 192.168.0.1 255.255.255.255 UGH 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
после того как запускается OpenVPN клиент:
root@client:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.8.0.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
37.1.X.X 192.168.0.1 255.255.255.255 UGH 0 0 0 eth0
10.8.0.1 10.8.0.5 255.255.255.255 UGH 0 0 0 tun0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
0.0.0.0 10.8.0.5 128.0.0.0 UG 0 0 0 tun0
128.0.0.0 10.8.0.5 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
Когда подключен к ВПН
root@client:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:19:b9:0b:96:10
inet addr:192.168.0.36 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::219:b9ff:fe0b:9610/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:34963 errors:0 dropped:0 overruns:0 frame:0
TX packets:27939 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:30436655 (29.0 MiB) TX bytes:9508443 (9.0 MiB)
Interrupt:16
eth1 Link encap:Ethernet HWaddr 00:0f:3d:ec:bb:0d
inet addr:10.10.10.1 Bcast:10.10.10.255 Mask:255.255.255.0
inet6 addr: fe80::20f:3dff:feec:bb0d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:28689 errors:0 dropped:0 overruns:0 frame:0
TX packets:34934 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7792305 (7.4 MiB) TX bytes:28054993 (26.7 MiB)
Interrupt:16 Base address:0xdc00
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:18 errors:0 dropped:0 overruns:0 frame:0
TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1060 (1.0 KiB) TX bytes:1060 (1.0 KiB)
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.6 P-t-P:10.8.0.5 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:9421 errors:0 dropped:0 overruns:0 frame:0
TX packets:8115 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:6765067 (6.4 MiB) TX bytes:2122497 (2.0 MiB)
Как сделать чтоб, если обравается связь с ВПН, то локальная сеть оставалсь без Интернет и при этом можно было удаленно подключиться к ПК при условии что на eth0 будет белый IP?
debian, iptables, routing