Если в iptables блокируются все входящие соединения (INPUT DROP) и чтобы открыть внешний доступ к MySQL необходимо добавить правила:
iptables -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
Чтобы открыть доступ только конкретной сети, например 10.0.0.0/24:
iptables -A INPUT -s 10.0.0.0/24 -p tcp -m tcp --dport 3306 -j ACCEPT
Чтобы удалить правило укажем ту же команду, заменив -A на -D, например:
iptables -D INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
Посмотреть список правил можно командой:
sudo iptables -nvL
Сохранить правила фаервола:
iptables-save > /root/dsl.fw
Восстановить правила фаервола к дефолтам:
iptables-restore < /root/dsl.fw
Замечу, для того чтобы открыть внешний доступ, также нужно в конфигурационном файле my.cnf закомментировать строку «bind-address = 127.0.0.1».
Если по умолчанию INPUT ACCEPT, то сначала укажем с каких IP разрешен доступ, а только последним правилом заблокируем всем остальным:
iptables -A INPUT -s 127.0.0.1 -p tcp --destination-port 3306 -j ACCEPT
iptables -A INPUT -s 192.168.1.5 -p tcp --destination-port 3306 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j DROP
Например используя nmap можно проверить локально и внешне фильтруется ли доступ:
nmap -p 3306 localhost
nmap -p 3306 192.168.1.5
Либо с помощью внешнего сервиса, например: https://2ip.ua/ru/services/ip-service/port-check
P.S. если установлена хостинг панель, то это не сработает. Например, в ISPManager нужно перейти в System > System > Firewall и добавить порт 3306
Свежие комментарии