Como escrever regra iptables para uma máquina que aceita apenas telnet de um IP específico?

1

Eu sei como rejeitar um ip específico (s), mas que tal rejeitar todos, exceto um ip?

Rejeitar apenas 1: iptables -A FORWARD -s 1.2.3.4 -d 2.2.2.2 -i eth0 -p tcp -m tcp --dportar 23 -j REJECTO.

neste caso eu rejeito 1.2.3.4 de telnet para 2.2.2.2

    
por qwr qwr 18.04.2012 / 03:01

2 respostas

5

Você está fazendo o que é comumente considerado o caminho "errado". Você não quer colocar na lista negra coisas proibidas, você quer colocar na lista de permissões as coisas permitidas. Dessa forma, seu padrão é seguro (REJECT / DROP) e você só coloca na lista de permissões quando necessário.

Para responder à sua pergunta, muitos argumentos no iptables podem ser negados!

Então, no seu caso, você usaria:

iptables -A FORWARD -s ! 1.2.3.4 -d 2.2.2.2 -i eth0 -p tcp -m tcp --dport 23 -j REJECT

Considere mudar a política padrão para rejeitar.

    
por 18.04.2012 / 03:06
1

Use ! para negar. Algo como:

iptables -A FORWARD -s ! 1.2.3.4 -d 2.2.2.2 -i eth0 -p tcp -m tcp --dport 23 -j REJECT

permitirá apenas o IP 1.2.3.4 até.

Você também pode usar tcpwrappers (ou seja, /etc/hosts.allow e /etc/hosts.deny), mas isso é menos, hmm, "difícil", pois o telnet ainda responderá.

Como nota lateral, você provavelmente deve se afastar de telnet para ssh, etc., embora isso possa não ser possível em suas circunstâncias, suponho.

    
por 18.04.2012 / 03:05

Tags