Nova cadeia para iptables IP específicos

2

Eu preciso criar uma nova cadeia para tratar um IP específico, por exemplo, 192.168.0.101.

Nesta nova cadeia, esse IP terá acesso a todos os serviços, exceto FTP.

Minha solução é:

iptables -N IP1

iptables -A IP1 -p tcp --dport 20 -j DROP
iptables -A IP1 -p tcp --dport 21 -j DROP
iptables -A IP1 -j ACCEPT

iptables -A INPUT -s 192.168.0.101 -j IP1

A solução está correta? Duas regras com --sport 20, 21 são necessárias para pacotes de entrada?

    
por Bruno A 16.08.2016 / 00:21

2 respostas

0

Suas regras sugeridas devem funcionar, mas pode haver casos em que um DROP em uma cadeia não seja a ação correta.

Por exemplo, se você quisesse alguma regra posterior INPUT chain para permitir acesso ftp a algum destino específico para todos os hosts em sua rede.

Nesse caso, RETURN pode ser uma escolha melhor. Supondo que a política da sua cadeia INPUT seja DROP , isso provavelmente também teria os mesmos resultados.

iptables -A IP1 -p tcp --dport 20 -j RETURN
iptables -A IP1 -p tcp --dport 21 -j RETURN
iptables -A IP1 -j ACCEPT
    
por 16.08.2016 / 01:39
1

Seus comandos parecem certos para mim.

--sport seria para a porta de origem (aquela em que o cliente está se conectando de ), que é geralmente aleatória. --dport está correto. Lembre-se de que uma conexão é uma 4-tupla de endereço de origem, porta de origem, endereço de destino e porta de destino - o iptables atua na tupla 4 no pacote que vê.

Uma coisa interessante sobre o FTP é que no modo passivo, o cliente e o servidor concordam com um novo número de porta. Além disso, acredito que o uso da porta 20 é para uma conexão ao destino do arquivo , independentemente de qual seja o servidor na conexão de controle, mas não é difícil bloqueá-lo nesse caso.

    
por 16.08.2016 / 00:58

Tags