openvpn configura iptables para permitir apenas a porta 80/443 e estrangular todas as outras

1

Estou usando o Openvpn para permitir que as pessoas acessem a Internet. Tudo está funcionando bem, mas eu quero restringir o uso de tráfego torrent / P2p. Em vez de tentar bloquear isso tentando identificá-los todos separadamente, eu quero permitir apenas http e https e estrangular o resto ou negá-los. A configuração do iptables que eu tenho agora é:

    # Generated by iptables-save v1.4.21 on Mon Dec 26 16:45:34 2016
*mangle
:PREROUTING ACCEPT [1412:290307]
:INPUT ACCEPT [668:148793]
:FORWARD ACCEPT [744:141514]
:OUTPUT ACCEPT [528:166065]
:POSTROUTING ACCEPT [1182:293750]
COMMIT
# Completed on Mon Dec 26 16:45:34 2016
# Generated by iptables-save v1.4.21 on Mon Dec 26 16:45:34 2016
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [343:139236]
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 127.0.0.0/8 ! -i lo -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p icmp -m state --state NEW -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT
-A INPUT -i eth0 -p udp -m state --state NEW -m udp --dport 1195 -j ACCEPT
-A INPUT -i eth0 -p udp -m state --state NEW -m udp --dport 1194 -j ACCEPT
-A INPUT -j DROP
-A FORWARD -i tun+ -j ACCEPT
-A FORWARD -i tun+ -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
COMMIT
# Completed on Mon Dec 26 16:45:34 2016
# Generated by iptables-save v1.4.21 on Mon Dec 26 16:45:34 2016
*nat
:PREROUTING ACCEPT [55:4133]
:INPUT ACCEPT [12:1368]
:OUTPUT ACCEPT [1:76]
:POSTROUTING ACCEPT [1:76]
-A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 145.131.3.243
-A POSTROUTING -s 10.8.1.0/24 -j SNAT --to-source 145.131.17.88
COMMIT
# Completed on Mon Dec 26 16:45:34 2016

Eu só li sobre a possibilidade de permitir apenas http e https, mas não consegui encontrar uma maneira de implementá-lo dessa maneira. Meu palpite seria que eu tenho que adicionar regras para a cadeia FORWARD, que agora diz que você pode fazer o que quiser sobre a interface tun. Uma vez que a política padrão da cadeia FORWARD está definida para DROP tudo, exceto o tráfego que tem regras permitindo explicitamente. Estou certo sobre a cadeia onde eu deveria colocar as regras?

    
por Ingrid Lambrechtse 26.12.2016 / 18:34

1 resposta

1

Testei e funciona quando você os coloca na cadeia de ataque. Testei-o através do openvpn e colocando (para testar!) Esta regra no topo da cadeia. Todas as outras redes podem passar e somente o tráfego proveniente da rede 10.8.1.0/24 não está recebendo mais de 443:

-A FORWARD -s 10.8.1.0/24 -p tcp --dport 443 -j DROP
-A FORWARD -i tun+ -j ACCEPT

Então eu estava certo e posso resolver isso ainda mais agora.

Obrigado por pensar comigo. ;)

    
por 30.12.2016 / 18:05