Criando/Configurando Firewall usando iptables

Criando/Configurando Firewall usando iptables

Quero configurar o firewall usando iptables.

O servidor está operando o serviço httpd (httpd) O sistema operacional é Centos7, e as informações abaixo são após instalar o iptables-services e iniciar o iptables sem modificar nada.

[root@iptables ~]# iptables -nL --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
5    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

COMO você pode ver, na cadeia INPUT, Linha num3, parece que qualquer servidor está aberto.

Mas o acesso à página web via navegador não está funcionando.

Há algo que eu preciso definir?

como saída de iptables-save(retirado do comentário):

# Generated by iptables-save v1.4.21 on Thu Sep 16 13:41:53 2021
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [527:50260]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Thu Sep 16 13:41:53 2021

Responder1

Como eu suspeitava, iptables -Lescondi o fósforo adicional, mas iptables-savemostrei a verdade nua e crua. Sua regra nº 3 corresponde apenas a lo- uma interface de loopback. Este firewall só aceita conexões externas com tcp/22 (SSH).

A resolução mais simples será:

iptables -I INPUT 4 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT 5 -p tcp --dport 443 -j ACCEPT

Além disso, você pode filtrar com conntrack e combinar as duas regras em uma única com multiporta:

iptables -I INPUT 4 -m conntrack --ctstate NEW -p tcp -m multiport --dports 80,443 -j ACCEPT -m comment --comment "HTTP/HTTPS service"

Observe também o comentário que adicionei. Use comentários paracadaregra e algum dia depois você me agradecerá por este conselho, se o seu firewall crescer para dizer mais de 50 regras.

Não use -m state. Isso está obsoleto. Ele realmente usa -m conntrackos bastidores e é mais transparente escrevê-lo explicitamente.

Não use iptables -L. Como você viu, seu resultado parece "mais bonito", e aqui acabam as vantagens, mas também não apresenta todos os detalhes necessários. A saída de iptables-saveparece menos bonita, mas mostra todos os detalhes mais sutis, então sempre use o último.

informação relacionada