我试图限制Linux机器上的MySQL 3306端口与localhost之外的任何连接,以防止外部攻击。我有以下代码,我不确定它是否正确:
iptables -A INPUT -p tcp -s localhost --dport 3306 -j ACCEPT iptables -A OUTPUT -p tcp -s localhost --dport 3306 -j ACCEPT iptables -A INPUT -p tcp --dport 3306 -j DROP iptables -A OUTPUT -p tcp --dport 3306 -j DROP
我的另一个问题是 - 只提供localhost访问权限是否正确?这是一个标准的专用centos网络服务器,上面有30多个域名。
答案 0 :(得分:14)
为什么不关闭MySQL的网络?
添加到my.cnf:
skip-networking
它应该通过强制通过管道连接来提供可忽略的性能改进,这会跳过用于网络部分的大量测试。请注意,更改后您将需要使用localhost, not 127.0.0.1。
答案 1 :(得分:8)
iptables -A INPUT -p tcp --dport 3306 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
上述规则是将两行转换为单行。
回答你的第二个问题:
如果您不想从localhost以外提供mysql访问,那么以这种方式配置是完美的。简单。 : - )
答案 2 :(得分:3)
iptables -A INPUT -p tcp --dport 3306 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j DROP
如果要删除过滤,请使用:
iptables -D INPUT -p tcp --dport 3306 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -D INPUT -p tcp --dport 3306 -j DROP
注意:两者都可能需要root,因此:sudo iptables (...)