iptables redirecionam as portas 80/443 para 8080/8181

3

No Centos 6.4, eu quero bloquear todas as portas de entrada, exceto 22, 80 e 443. 80 (externo) deve ser redirecionado 8080 (interno). 443 (externo) deve ser redirecionado para 8181 (interno). Eu usei os seguintes comandos:

service iptables stop
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8181
service iptables save
service iptables restart

No entanto, eu ainda posso acessar as portas 8080 e 8181. Existe uma maneira de bloquear as portas 8080 e 8181 externamente e ainda ter aberto internamente para redirecionamento de 80 e 443?

    
por Steve Taylor 04.06.2013 / 21:46

3 respostas

5

Não há nada em suas regras perdendo pacotes. Você pode fazer isso definindo a política padrão de sua INPUT chain para DROP . Por padrão, é ACCEPT :

iptables -P INPUT DROP

Ao fazer isso, você pode começar a perceber que suas conexões de saída não funcionam mais.

Você pode adicionar regras na parte superior da sua corrente INPUT a ACCEPT do tráfego já estabelecido.

Faça isso usando o seguinte:

iptables -A INPUT -m state --state ESTABLISHED,RELATED

A parte RELATED permite outro tráfego relacionado (por exemplo, pacotes ICMP enviados como resultado de algo acontecendo em uma conexão ESTABLISHED )

    
por 04.06.2013 / 21:55
0

É melhor criar uma nova cadeia e adicionar minhas regras a essa cadeia. Você pode fazer isso por: Primeiro tráfego de entrada / encaminhamento / saída DROP

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

Em seguida, crie uma cadeia com julgamento ACCEPT e adicione regras internas:

iptables -N myrules # Create a new chain
iptables -A myrules -m state --state ESTABLISHED,RELATED
iptables -A myrules -j LOG --log-prefix="Myrules: " # Just a log prefix
iptables -A myrules -j ACCEPT # Packets matching this rule will be ACCEPTed
iptables -A INPUT -i eth0 -p tcp --dport 22 -j myrules

Em seguida, adicione as regras de redirecionamento:

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8181
    
por 05.06.2013 / 09:10
-2

Você tem várias NICs no servidor ou não? Você pode bloquear isso dessa maneira. Você também pode bloqueá-lo facilmente por IPs de origem, para permitir somente regras "INPUT" para essas portas de IPs específicos e somente todas as regras "FORWARD" ou "PREROUTING" de outras pessoas.

    
por 04.06.2013 / 21:55