Como eu uso o iptables para rejeitar todo o tráfego para a porta localhost 80, mas permitir aquele que vem da máquina local?

5

Como eu uso o iptables para rejeitar todo o tráfego para a porta localhost 80, mas permitir aquele que vem da máquina local?

Aqui está minha solução atual que parece não bloquear o tráfego. o ip, o ip da maquina local. Se eu não colocar a segunda linha, todo o tráfego é bloqueado, e com isso habilitado, todo o tráfego é aceito!

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

iptables -A INPUT -p tcp --dport 80 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -s 10.80.225.83 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j LOG --log-prefix "TCP LOGDROP: "

Só para ter certeza:

  • 10.80.225.83 é o ip do servidor web, onde eu quero poder acessar 127.0.0.1:80
  • Eu quero que 10.80.225.83 rejeite quaisquer conexões na porta 80, outras que foram originadas de localhost.
por sorin 13.07.2012 / 17:10

2 respostas

8

iptables -I INPUT ! -i lo -p tcp --dport 80 -j DROP

Quando o tráfego vai da sua máquina para a sua máquina, sempre tem a interface de entrada "lo". Não importa o endereço IP src ou dst.

    
por 13.07.2012 / 19:45
1

Você poderia fornecer todo o conteúdo de /etc/sysconfig/iptables , se possível? (atualizarei minha resposta, se aplicável, assim que a informação for disponibilizada)

Como tenho que trabalhar no pressuposto de que não existe uma regra de DROP padrão, você precisa:

iptables -A INPUT -p tcp --dport 80 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -s 10.80.225.83 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j LOG --log-prefix "TCP LOGDROP: "

iptables -A ENTRADA -p tcp --dportar 80 -j DROP

    
por 13.07.2012 / 17:18

Tags