пинг обходит шлюз по умолчанию

У меня есть сервер Ubuntu 16.04, настроенный как шлюз OpenVPN в моей сети с IP 192.168.10.14, выходящим через tun1

Любой клиент, который использует 192.168.10.14 в качестве своего шлюза, отправляется через VPN-туннель в интернет. если я использую ipleak.net, у каждого клиента есть IP-адрес конечной точки VPN, а не мой собственный

У меня есть настройка UFW на шлюзе VPN (192.168.10.14), так что если я отключу VPN-туннель, то любой клиент сможет больше не выходят в интернет, так как UFW разрешает выход только через tun1

Проблема, с которой я столкнулся, заключается в том, что если я отключу VPN-туннель на 192.168.10.14, то все браузеры перестанут работать, что я и хочу. если они пингуют google.com, я не получаю ответа. но если они пропингуют IP-адрес, скажем, 8.8.8.8, тогда эхо-запрос все еще работает, даже если шлюз VPN не работает. в результатах пинга я получаю

64 bytes from 8.8.8.8: icmp_seq=6 ttl=57 time=19.1 ms
From 192.168.10.14: icmp_seq=7 Redirect Host(New nexthop: 192.168.10.1)
64 bytes from 8.8.8.8: icmp_seq=7 ttl=57 time=19.0 ms
64 bytes from 8.8.8.8: icmp_seq=7 ttl=57 time=18.6 ms

, где 192.168.10.1 в следующем окне - мой маршрутизатор. Таким образом, ping к ip игнорирует правила брандмауэра на блоке VPN, или блок vpn по какой-то причине перенаправляет его непосредственно на маршрутизатор

, есть ли что-нибудь, что я могу сделать на блоке VPN, чтобы остановить это. ИЛИ на клиентах? я бы предпочел на VPN-машине, если у меня нет (или может быть не в состоянии) настроить настройку переадресации клиентов

на блоке VPN

iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o tun1 -j MASQUERADE
#
# For IP Forwarding through PIA
#
iptables -A FORWARD -i eth0 -o tun1 -j ACCEPT
iptables -A FORWARD -i tun1 -o eth0 -j ACCEPT

правила ufw на блоке VPN

]
To                              Action      From
     --                         ------      ----
[ 1] OpenSSH                    ALLOW IN    Anywhere
[ 2] Anywhere                   ALLOW OUT   Anywhere on tun1           (out)
[ 3] Anywhere                   ALLOW IN    192.168.10.0/24
[ 4] 1198/udp                   ALLOW OUT   Anywhere                   (out)

маршрут по IP-адресу (VPN-туннель вверх)

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.6.10.5       128.0.0.0       UG    0      0        0 tun1
0.0.0.0         192.168.10.1    0.0.0.0         UG    0      0        0 eth0
10.6.10.1       10.6.10.5       255.255.255.255 UGH   0      0        0 tun1
10.6.10.5       0.0.0.0         255.255.255.255 UH    0      0        0 tun1
128.0.0.0       10.6.10.5       128.0.0.0       UG    0      0        0 tun1
172.98.67.68    192.168.10.1    255.255.255.255 UGH   0      0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0

маршрут по VPN-серверу (VPN-туннель вниз)

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.10.1    0.0.0.0         UG    0      0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0

ping из VPN-сети в 8.8. 8.8 (VPN-туннель отключен)

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted

маршрут на клиентском компьютере

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.10.14   0.0.0.0         UG    0      0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
0
задан 23 May 2017 в 14:27

1 ответ

Проблема с "обходом" происходит из-за маршрута по умолчанию на поле VPN. Который необходим и не может быть удален, и IP передача все еще включена. Передача IP работает на основе интерфейса, не IP-адреса

Ваш VPN box идет ip 192.168.10.14 и можно добавить, вставляют ufw ведьма правила будет инициирована, когда туннель снизится.

Включить /etc/network/if-down.d/ некоторый сценарий для вырезания доступа от клиентов к Вашему VPN box

Пример:

sudo nano /etc/network/if-down.d/scriptdown

и помещенное содержание

# Check for specific interface if desired
[ "$IFACE" != "tun1" ] || exit 0
# cat access from client
sudo ufw insert 1 deny in on eth0 from 192.168.10.0/24 to 192.186.10.14 

дать scriptdown полномочие

chmod 755 /etc/network/if-down.d/scriptdown

if-down.d инициирует названный сценарий scriptdown когда tun1 искать down и отклонит трафик от 192.168.10.0/24 кому: 192.168.10.14

Вам нужен сценарий для удаления этого правила когда tun1 произошел

Включить /etc/network/if-up.d/ сценарий для предоставления доступа от клиентов к Вашему VPN box

sudo nano /etc/network/if-up.d/scriptup

и помещенное содержание

# Check for specific interface if desired
[ "$IFACE" != "tun1" ] || exit 0
# cat access from client
sudo ufw delete 1 

дать scriptup полномочие

chmod 755 /etc/network/if-down.d/scriptup

if-up.d инициирует названный сценарий scriptup когда tun1 искать up и позволит трафик от 192.168.10.0/24 кому: 192.168.10.14

Попробовать.

1
ответ дан 24 May 2017 в 00:27

Другие вопросы по тегам:

Похожие вопросы: