Разрешить порт 3306
# /sbin/iptables -nvL
Вывод вышеупомянутой команды iptables выглядит примерно так...
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- * * 192.168.101.101 0.0.0.0/0 tcp dpt:3306 state NEW,RELATED,ESTABLISHED
16810 1009K ACCEPT tcp -- * * 192.168.101.120 0.0.0.0/0 tcp dpt:3306
В чем разница между этими двумя строками? Второй IP не имеет "состояния New,...". Это имеет какое-то значение? Все, что я пытаюсь сделать, это разрешить MySQL доступ с этих IP-адресов по умолчанию порт 3306
2 ответа
Это связано с -m state
соответствует правилу iptables. Ты можешь использовать iptables-save
чтобы увидеть полное правило.
state NEW,RELATED,ESTABLISHED
означает, что только эти три будут приняты.
iptables
(или, точнее, netfilter) знает о следующих состояниях:
- NEW - новое соединение
- УСТАНОВЛЕНО - обнаружен двусторонний трафик
- RELATED - трафик, связанный с исходным соединением (например, ICMP-ответ, связанный с TCP-соединением)
- INVALID - трафик недействителен, например, был получен неудачный TCP-сегмент
- UNTRACKED - трафик не отслеживается сетевым фильтром
conntrack
модуль
Что касается вашего вопроса: между этими двумя правилами практически нет различий.
Разница заключается в IP-адресе источника и флагах состояния, как вы упомянули.
Что касается того, почему ваш первый IP-адрес не подключается или не может подключиться, когда вы используете отслеживание подключений в iptables, у вас обычно есть такое правило:
ПРИНЯТЬ все - где угодно и где угодно, СВЯЗАННЫЕ, УСТАНОВЛЕННЫЕ
как ловушка.
Правило.101 было бы просто НОВЫМ.
ПРИНЯТЬ TCP - 192.168.101.101 в любом месте НОВЫЙ TCP TCP:306