Я хочу создать набор правил для iptables внутри узла, но кажется, что iptables не добавляет все правила или каким-то образом и выгоняет меня каждый раз, когда я запускаю следующий скрипт (я использую этот набор правил в другие сервера и отлично работает):
# Allow connections that are already connected to your server
iptables -A INPUT -i venet0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow connections to SSH
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
# Allowing connections to HTTP/HTTPS
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT
# Allow icmp input but limit it to 10/sec
iptables -A INPUT -p icmp -m limit --limit 10/second -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
# Allow all incoming traffic from local
iptables -A INPUT -i lo -j ACCEPT
# Changing the default policy for INPUT chain
iptables -A INPUT -j DROP
Проблема, которую я обнаружил (я думаю), заключается в том, что последняя строка (DROP something) интерпретируется как одна, и поэтому сервер меня выгоняет.
Я уже меняю конф на vz:
IPTABLES_MODULES="ipt_REJECT ipt_tos ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length ipt_state xt_state ip_conntrack"
Любая помощь с этим приветствуется.
Спасибо.
Я видел больше проблем с OpenVZ и использованием "ESTABLISHED, RELATED". К сожалению, я не смог узнать, как исправить установки OpenVZ, которые по какой-то причине не позволяют использовать iptables с сохранением состояния в контейнерах.
Но с имеющимися у вас достаточно простыми правилами IPTable действительно ли они нужны для сохранения состояния? Я думаю, что следующее будет работать так же хорошо:
# Allow connections to SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Allowing connections to HTTP/HTTPS
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Allow icmp input but limit it to 10/sec
iptables -A INPUT -p icmp -m limit --limit 10/second -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
# Allow all incoming traffic from local
iptables -A INPUT -i lo -j ACCEPT
# Changing the default policy for INPUT chain
iptables -A INPUT -j DROP