ping está ignorando o gateway padrão

0

Eu tenho uma configuração 16.04 do servidor Ubuntu como um gateway OpenVPN na minha rede com o IP 192.168.10.14 saindo por cima do tun1

Qualquer cliente que use 192.168.10.14 como seu gateway é enviado através do túnel VPN para a Internet. se eu uso o ipleak.net, todo cliente tem o IP do endpoint VPN não meu próprio IP

Eu tenho a configuração do UFW no gateway da VPN (192.168.10.14) para que, se eu desabilitar o túnel da VPN, qualquer cliente não consiga mais acessar a Internet, pois o UFW só permite o uso do tun1

O problema que eu tenho é que se eu desabilitar o túnel VPN em 192.168.10.14, então todos os navegadores param de funcionar, o que é o que eu quero. se eles pingam google.com não há resposta, que é o que eu quero. mas se eles fizerem ping em um endereço IP, digamos 8.8.8.8, o ping ainda funcionará, mesmo que a VPN do gateway esteja inativa. nos resultados do ping eu recebo

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

onde o 192.168.10.1 no nexthop é meu roteador. Assim, o ping para o ip está ignorando as regras do firewall na caixa VPN, ou a caixa vpn está encaminhando-o diretamente para o roteador por algum motivo

Existe alguma coisa que eu possa fazer na caixa da VPN para parar isso. OU nos clientes? eu preferiria na máquina de VPN o que eu não tenho (ou não poderia) configurar os clientes

configuração de encaminhamento na caixa 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

regras do ufw na caixa 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)

rota na caixa vpn (VPN Tunnel up)

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

rota na caixa VPN (túnel VPN para baixo)

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 da caixa da VPN para 8.8.8.8 (túnel VPN para baixo)

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

rota na máquina do cliente

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
    
por Bicklp 23.05.2017 / 12:19

1 resposta

2

Problema com "bypassing" ocorre devido à rota padrão na caixa VPN. Qual é necessário e não pode ser excluído e o encaminhamento de ip ainda está habilitado. Trabalho de encaminhamento de IP com base na interface, não no endereço IP

Seu VPN box está em ip 192.168.10.14 e você pode adicionar a regra ufw da inserção, que será acionada quando o túnel estiver inativo.

Adicione em /etc/network/if-down.d/ algum script para cortar o acesso dos clientes ao seu VPN box

Exemplo:

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

e coloque o conteúdo

# 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 

atribua scriptdown privilégio

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

if-down.d acionará o script chamado scriptdown quando tun1 ir down e negará o tráfego de 192.168.10.0/24 a 192.168.10.14

Você precisa de um script para excluir essa regra quando tun1 estiver em alta

Adicione o script /etc/network/if-up.d/ para permitir o acesso de clientes ao seu VPN box

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

e coloque o conteúdo

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

atribua scriptup privilégio

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

if-up.d acionará o script chamado scriptup quando tun1 ir up e permitirá o tráfego de 192.168.10.0/24 a 192.168.10.14

Tente.

    
por 2707974 23.05.2017 / 14:19