Правило брандмауэра с политиками по умолчанию не работает
Я сделал скрипт bash для правила брандмауэра следующим образом:
#!/bin/bash
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
ip6tables -P INPUT DROP
ip6tables -P FORWARD DROP
ip6tables -P OUTPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -A OUTPUT -o lo -j ACCEPT
#
# Outgoing and Incoming ping – on all interface
#
ip6tables -A INPUT -i bond0 -p ipv6-icmp -j ACCEPT
ip6tables -A OUTPUT -o bond0 -p ipv6-icmp -j ACCEPT
ip6tables -A INPUT -i bond1 -p ipv6-icmp -j ACCEPT
ip6tables -A OUTPUT -o bond1 -p ipv6-icmp -j ACCEPT
ip6tables -A INPUT -i bond2 -p ipv6-icmp -j ACCEPT
ip6tables -A OUTPUT -o bond2 -p ipv6-icmp -j ACCEPT
ip6tables -A INPUT -i bond3.243 -p ipv6-icmp -j ACCEPT
ip6tables -A OUTPUT -o bond3.243 -p ipv6-icmp -j ACCEPT
#
# ssh - 22/tcp
#
iptables -A INPUT -i bond1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o bond1 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i bond3.243 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o bond3.243 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
ip6tables -A INPUT -i bond1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
ip6tables -A OUTPUT -o bond1 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
ip6tables -A INPUT -i bond3.243 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
ip6tables -A OUTPUT -o bond3.243 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
#
# Save the configuration
#
service iptables save
service ip6tables save
#
# dobackup
#
chmod a+r /etc/sysconfig/iptables
chmod a+r /etc/sysconfig/ip6tables
Теперь, когда я применяю эти правила, я теряю связь ssh с моим сервером. Затем мне нужно остановить службу ip6tables, чтобы восстановить соединение ssh.
Но когда я меняюсь iptables -P OUTPUT DROP to iptables -P OUTPUT ACCEPT
& ip6tables -P OUTPUT DROP to ip6tables -P OUTPUT ACCEPT
, тогда это правило также будет реализовано, и я не потерял связь с ssh.
Я не уверен, что именно в этом проблема. Некоторые ошибки в файле Bash или некоторые, которые я не знаю. Спасибо за поддержку.
1 ответ
Я думаю, что более удобный способ разрешить входящее соединение через порт ssh без контроля состояния и разрешить исходящее и связанное соединение.
Попробуйте использовать правила:
iptables -A INPUT -i bond1 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i bond3.243 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Ваш сервер не может отправлять трафик другого типа, поскольку последнее правило позволяет отправлять только типы ESTABLISHED и RELATED.