
Я пытаюсь создать несколько базовых правил 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?
решение1
От 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 предлагает лучшее и более полное решениеигнорировать ниже
Правило принятия трафика на основе существующего трафика
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
решение2
Я решил ту же проблему, выполнив следующие две команды
# 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: общие правила и команды брандмауэра.