iptables - время доступа к порту 3306
Я не могу подключиться к mysql с удаленного сервера. я имею bind-address
закомментировано, но когда я добавляю правила в iptables для блокировки других соединений, время соединения запрашивающего сервера истекает.
Я попробовал это предложение:
iptables -I INPUT 1 -p tcp -s 1.2.3.4 --dport 3306 -j ACCEPT
iptables -I INPUT 1 -p tcp --dport 3306 -j DROP
Но моя связь все еще истекает. Неважно, в каком порядке я ввожу эти две строки. Я повторяю IP-адрес удаленного сервера, когда я пытаюсь подключиться, и это действительно IP-адрес, который я использую в моих iptables. Без DROP
линия, связь работает нормально, как это происходит, когда в моем iptables ничего нет.
Печать из echo -e "target prot opt source destination\n$(iptables -L INPUT -n | grep 3306)"
:
target prot opt source destination
ACCEPT tcp -- 1.2.3.4 0.0.0.0/0 tcp dpt:3306
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306
(выше я заменил фактический IP с 1.2.3.4)
Попытка подключения с другого сервера (VPS) была успешной. Это заставляет меня поверить, что есть проблема с общим сервером, с которого я пытаюсь запросить.
2 ответа
После промывки iptables
, Я использовал iptraf
для отображения в реальном времени списка подключений к порту 3306.
Запрашивающий сервер был сервером общего хостинга, и IP-адрес, связанный с запросом, отличался от IP-адреса веб-приложения, инициировавшего запрос. Это было другое И менялось.
Единственным решением было перенести приложение на VPS, который не использует прямой прокси-сервер, или на сервер, который содержал базу данных.
Отдельное спасибо @Jnrprimo за то, что посмотрели на это со мной.
Проблема заключается в порядке правил.
Ввод команд в таком порядке будет таким:
- Если порт 3306 DROP
- Если порт 3306 и IP-адрес источника 1.2.3.4 ПРИНЯТЬ
Проблема в том, что вы сбрасываете соединение перед проверкой исходного IP-адреса. Это связано с тем, что введенные вами команды предшествуют, а не добавляют правила, поэтому последняя введенная команда становится первым правилом.
Вы можете решить это:
- Изменение -I на -A (добавить) + Очистить старые цепочки / правила
- ИЛИ измените порядок ввода команд.