iptables para permitir apenas ssh e https

2

Estou tentando configurar o iptables em meu dispositivo para permitir somente tráfego SSH e HTTPS . Em particular, o protocolo HTTPS é usado para chamar alguma API REST para um servidor remoto de um cliente java.

Este é o meu iptables:

iptables -F

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

#SSH
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

#DNS
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

#HTTPS
iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

Tudo funciona como esperado, exceto pelo tráfego HTTPS, que é bloqueado pelo iptables.

O que eu fiz de errado?

    
por wyr0 19.02.2016 / 17:57

1 resposta

5

Não bloqueie toda a regra de saída, ela não escolherá a porta 443 como uma fonte para obter dados de outro servidor. E acho que o bloqueio de regras de entrada é suficiente para garantir a segurança do seu servidor. O resto é tudo de bom. Você pode usar as regras abaixo, se quiser.

iptables -F
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -j DROP
    
por 19.02.2016 / 21:55