iptables bloquear porta INPUT 80

1

A minha pergunta é para compreensão geral e não para corrigir um problema que tenho.

Consegui executar iptables -A OUTPUT -p tcp --dport 80 -j REJECT e bloquear solicitações http. Quando eu corri curl http://b.scorecardresearch.com/beacon.js eu tenho curl: (7) Failed to connect to b.scorecardresearch.com port 80: Connection refused

Em seguida, excluí a regra OUTPUT e criei uma regra de entrada iptables -A INPUT -p tcp --dport 80 -j REJECT . Eu poderia então acessar curl http://b.scorecardresearch.com/beacon.js sem nenhum problema.

Eu entendo por que a solicitação de saída não foi bloqueada, mas quando faço uma solicitação http, a resposta não retorna na mesma porta (80) e deve ser bloqueada pela INJECÇÃO DE ENTRADA da porta 80?

    
por user252535 23.09.2017 / 13:22

2 respostas

1

Não, no lado do cliente, haverá uma porta diferente para a comunicação, por isso não é uma porta 80 para a porta 80.

Você pode obter uma visão geral com o comando da seguinte maneira. Lá você pode ver seu endereço IP e porta local e o endereço IP e porta estrangeiros relacionados.

netstat -tn 
    
por 23.09.2017 / 13:41
1

Quando você envia uma solicitação HTTP para um servidor, a menos que especificado de outra forma na URL, você usa a porta padrão para HTTP, que é 80 (denominada http , os formulários simbólicos geralmente são mais fáceis de lembrar). É por isso que essa regra proíbe as tentativas de conexão para uma porta HTTP remota:

iptables -A OUTPUT -p tcp --dport http -j REJECT

Quando o servidor está respondendo, ele envia dados dessa porta (http / 80) para sua máquina. Isso significa que a regra iptables deve mencionar 80 como a porta de origem:

iptables -A INPUT -p tcp --sport http -j REJECT
    
por 23.09.2017 / 13:58

Tags