Правила Iptables замедляют вход в систему через SSH

Я пытаюсь построить некоторые основные правила iptables для моего VDS:

iptables -A INPUT -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -P INPUT DROP

Я хочу заблокировать любой входящий трафик, кроме трафика SSH и WEB. Но после применения правил и перезагрузки системы, для входа через SSH требуется 30 секунд, процесс входа в систему очень медленный, но он прекрасно работает после подключения.

Какие правила я должен добавить, чтобы ускорить вход в систему через SSH?

2 ответа

От iptables --help:

--numeric   -n      numeric output of addresses and ports

https://serverfault.com/questions/85602/iptables-l-pretty-slow-is-this-normal

Включить -n вариант, поэтому он не пытается использовать DNS для разрешения имен для каждого IP-адреса, сети и порта. Тогда это будет быстро.

https://help.ubuntu.com/community/IptablesHowTo

Разрешение установленных сессий

Мы можем разрешить установленным сеансам получать трафик:

sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Если приведенная выше строка не работает, возможно, вы используете кастрированный VPS, поставщик которого не предоставил расширение, и в этом случае в качестве крайней меры можно использовать более низкую версию:

sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

отредактировано, потому что help.ubuntu.com предлагает лучшее и полное решение, игнорируемое ниже

https://serverfault.com/questions/416537/why-does-a-valid-set-of-iptables-rules-slow-my-server-to-a-crawl

Правило принимать трафик на основе существующего трафика

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

Я решил ту же проблему после выполнения следующих двух команд

      # Allow Established and Related Incoming Connections
iptables -I INPUT 1 -m conntrack --ctstate ESTABLISH
ED,RELATED -j ACCEPT

# Allow Established Outgoing Connections
iptables -I OUTPUT 1 -m conntrack --ctstate ESTABLISHED -j ACCEPT

Эти две команды взяты из Iptables Essentials: Common Firewall Rules and Commands.

Другие вопросы по тегам