
У меня есть этот список правил iptable
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- 127.0.0.1 0.0.0.0/0 tcp dpt:3306
acctboth all -- 0.0.0.0/0 0.0.0.0/0
VZ_INPUT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306
ACCEPT tcp -- 94.101.25.40 0.0.0.0/0 state NEW tcp dpt:3306
Chain FORWARD (policy DROP)
target prot opt source destination
VZ_FORWARD all -- 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy DROP)
target prot opt source destination
acctboth all -- 0.0.0.0/0 0.0.0.0/0
VZ_OUTPUT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 94.101.25.40 0.0.0.0/0 state NEW tcp dpt:3306
Я хочу, чтобы только localhost и мой ip имели доступ к tcp 3306. Могу ли я удалить все остальные правила, как показано выше? Я не знаю, нужно ли сохранять какие-либо из них или нет
решение1
Цель acctboth, вероятно, автоматически помещается туда bandmin. Если вы удалите ее, она, вероятно, вернется. Вы можете отключить bandmin с помощью 'chkconfig bandmin off', но на самом деле она ничего не делает, кроме подсчета пакетов.
VZ_INPUT похоже на пакет брандмауэра, с которым я не знаком.
Кроме этого, у вас, кажется, есть три записи, которые принимаютвсетрафик для порта 3306, и он разрешает новые соединения только с того, что, как я предполагаю, является вашим IP-адресом.
Я предлагаю вам удалить последние 4 правила на INPUT и заменить их следующим образом:
iptables -A INPUT -p tcp --dport 3306 -s 94.101.25.40 -j ACCEPT
iptables -A INPUT -p tcp -i l0 --dport 3306 -j ACCEPT
Использование политики OUTPUT DROP немного каверзно и может испортить кучу всего, поэтому на вашем месте я бы изменил ее на ACCEPT:
iptables -p OUTPUT ACCEPT
Если вы настаиваете на том, чтобы все оставалось как есть, вы просто позволяетеновыйSQL-подключения отсутствуют, поэтому удалите правило и добавьте:
iptables -A OUTPUT -p tcp -s 94.101.25.40 --sport 3306 -j ACCEPT
iptables -A OUTPUT -p tcp -i l0 -sport 3306 -j ACCEPT
Предполагается, что 94.101.25.40 — это один из собственных IP-адресов машины, а не какой-то удаленный IP-адрес.
Как вы получаете доступ к своему серверу? Если только это не одна из ваших других цепочек, я даже не вижу правила, разрешающего SSH-трафик здесь. Вам действительно стоит опубликовать полный вывод iptables -L. Скорее всего, единственная причина, по которой вы все еще можете получить доступ к своему ящику, это правила в этих других цепочках.
Если вы снова опубликуете, пожалуйста, используйте iptables -L -v. Это добавляет некоторую полезную дополнительную информацию, например, на каком интерфейсе работает правило.