iptables разрешить только ssh и https

Я пытаюсь настроить iptables на моем устройстве, чтобы разрешить только трафик SSH и HTTPS. В частности, протокол HTTPS используется для вызова некоторого REST API к удаленному серверу от клиента Java.

Это мои 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

Все работает, как и ожидалось, за исключением трафика HTTPS, который блокируется iptables.

Что я сделал не так?

1 ответ

Не блокируйте все исходящее правило, оно не выберет порт 443 в качестве источника для получения данных с другого сервера. И я думаю, что блокирующие входящие правила вполне достаточны для обеспечения безопасности вашего сервера. Отдых это все хорошо. Вы можете использовать приведенные ниже правила, если хотите.

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
Другие вопросы по тегам