Bloqueia todas as conexões de internet, a menos que esteja conectado ao servidor OpenVPN

4

Eu quero bloquear todas as conexões de internet, a menos que eu esteja conectado ao meu OpenVPN. Agora, claro, preciso permitir a conexão com o servidor VPN.

Isso pode ser feito, permitindo / fora do tráfego de / para o ip do servidor VPN, mas ter uma regra toda a gota depois com iptables ?

Eu tentei a solução proposta por @tachomi, mas não tenho conexão com a internet, quando as regras iptables estão definidas. iptables-save states:

# Generated by iptables-save v1.6.0 on Wed Feb  3 00:53:32 2016
*filter
:INPUT DROP [247:40343]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [153:25961]
-A INPUT -s 127.0.0.1/32 -p tcp -j ACCEPT
-A INPUT -s 127.0.0.1/32 -p tcp -j ACCEPT
-A INPUT -s 127.0.0.1/32 -p udp -j ACCEPT
-A INPUT -s 127.0.0.1/32 -p udp -j ACCEPT
-A INPUT -s <VPN_SERVER_IP>/32 -p tcp -j ACCEPT
-A INPUT -s <VPN_SERVER_IP>/32 -p udp -j ACCEPT
-A OUTPUT -d <VPN_SERVER_IP>/32 -p tcp -j ACCEPT
-A OUTPUT -d <VPN_SERVER_IP>/32 -p udp -j ACCEPT
COMMIT
# Completed on Wed Feb  3 00:53:32 2016
    
por boolean.is.null 02.02.2016 / 21:28

1 resposta

3

Permitir primeiro sua conexão local e seus protocolos RELATED, ESTABLISHED connections.

$ sudo iptables -A INPUT -p tcp -s 127.0.0.1 -j ACCEPT
$ sudo iptables -A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
$ sudo iptables -A INPUT -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT
$ sudo iptables -A INPUT -p icmp -m state --state RELATED,ESTABLISHED -j ACCEPT

Isso permitirá a conexão com a internet.

Definir políticas de cadeia padrão

$ sudo iptables -P INPUT DROP
$ sudp iptables -P OUTPUT DROP

Isso negará todo o tipo de tráfego de entrada / saída.

Permitir sua conexão VPN

$ sudo iptables -A INPUT -s [VPN ip connection] -j ACCEPT
$ sudo iptables -A OUPUT -d [VPN ip connection] -j ACCEPT

Isso permitirá a conexão VPN.

SE VOCÊ ESTIVER CONECTADO, VOCÊ DEVE TAMBÉM PERMITIR O ENDEREÇO IP COMO SUA LOCALHOST

ATUALIZAÇÃO:

Para outras regras de conexões, permita-as.

HTTP por exemplo:

$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
$ sudo iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT  

RECOMENDAÇÃO PESSOAL

O que eu faço é fazer o backup das minhas regras do iptables com $ sudo iptables-save > iptables_backup , então para qualquer alteração eu edito as regras com o vim e restauro o iptables com $ sudo iptables-restore < iptables_backup . Esta é apenas uma prática pessoal para evitar a duplicação de regras.

    
por 02.02.2016 / 21:35