Bloquear um dispositivo de todo o tráfego de rede, mas com exceções específicas

3

Eu tenho um roteador que executa o Tomato, então tenho acesso a iptables . Há um dispositivo na minha rede com um endereço IP de 192.168.1.100. Eu não quero enviar dados para a Internet, exceto por um caso muito específico.

Especificamente, não quero que ele envie dados de saída para a Internet em todos <<> exceto para SMTP seguro (porta TCP 587 ou 465) e, mesmo assim, apenas para um servidor SMTP. O tráfego de entrada também é uma preocupação, mas bloquear a saída é mais importante. Ele deve continuar permitindo o tráfego da LAN, portanto, os pacotes com origem e destino 192.168.1.0/24 são bons.

Eu não sei muito sobre iptables , então não sei como fazer isso, ou se iptables é a melhor abordagem. Eu configurei regras antes desses pacotes, mas nunca configurei um que bloqueia tudo mas pacotes que atendam a requisitos específicos.

Como você sugeriria que eu fizesse isso?

    
por user3466413 12.05.2016 / 05:15

2 respostas

3

Se você não tiver uma regra para permitir o tráfego ESTABELECIDO, RELACIONADO, o tráfego pode não passar.

iptables -I INPUT 1 -m conntrack -j ACCEPT  --ctstate RELATED,ESTABLISHED
iptables -A OUTPUT -m tcp -p tcp -m multiport --dports 587,465 -d <ipaddress of smtp> -j ACCEPT
iptables -A OUTPUT -s 192.168.1.100 -j DROP
iptables -A FORWARD -s 192.168.1.0/24 -d 192.168.1.0/24 -m tcp -p tcp -m multiport --dports 587,465 -j ACCEPT 
iptables -A FORWARD -s 192.168.1.100 !-d 192.168.1.0/24,<ipaddress of smtp> -j DROP

permitir, permitir e depois negar todo o tráfego restante.

No entanto, sem saber que outras regras você tem, não posso dizer onde colocá-las.

A ordem em que as regras estão é

As regras são processadas em ordem e, se você adicionar minhas regras ao final de um conjunto existente de regras, elas podem não funcionar corretamente.

    
por 12.05.2016 / 05:31
1

Tudo o que você precisa é eliminar o tráfego de saída do seu host com regras como essa:

iptables -A FORWARD -s 192.168.1.100 -p tcp --dports 80 -j ACCEPT 
iptables -A FORWARD -s 192.168.1.100 -j DROP

A primeira regra permitirá que seu dispositivo use o protocolo HTTP para qualquer host, e o segundo proibirá qualquer outro tráfego fora de sua rede doméstica.

Se você precisar permitir todo o tráfego para um host espetacular, precisará usar algo assim:

iptables -A FORWARD -s 192.168.1.100 -d 8.8.8.8 -j ACCEPT 
iptables -A FORWARD -s 192.168.1.100 -j DROP

O seu dispositivo poderá se conectar ao IP 8.8.8.8 com qualquer protocolo, mas será negado para todos os outros.

Você pode procurar mais exemplos aqui .

    
por 17.05.2016 / 07:49