Нужна помощь в определении правила iptables

Нужна помощь в определении правила iptables

У меня есть этот список правил 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. Это добавляет некоторую полезную дополнительную информацию, например, на каком интерфейсе работает правило.

Связанный контент