我通过编辑 my.cnf
文件启用了远程 MySQL。
/etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 0.0.0.0
现在我可以通过任何远程IP访问MySQL。
我想要的是使用IP表禁用所有对MySQL的连接,只允许从本地主机和一个IP地址访问。我进行了以下操作:
/sbin/iptables -A INPUT -p tcp -d 127.0.0.1 --dport 3306 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -d 16x.xxx.xx.xx --dport 3306 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 3306 -j DROP
以下代码将断开所有连接,并且不接受本地主机或远程IP。我使用的是Ubuntu 16.10。
编辑:我也尝试了一个链。
iptables -N mysql
iptables -A mysql --src 127.0.0.1 -j ACCEPT
iptables -A mysql --src 14x.xxx.xx.xx -j ACCEPT
iptables -A mysql -j DROP
iptables -I INPUT -m tcp -p tcp --dport 3306 -j mysql
在任何可能的方式下DROP行之后,端口都将被阻止。