9

我试图限制 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

我的另一个问题是 - 只授予本地主机访问权限是否正确?这是一个标准的专用 centos 网络服务器,上面有 30 多个域。

4

3 回答 3

17

为什么不直接关闭与 MySQL 的网络?

添加到 my.cnf:

skip-networking

它还应该通过强制通过管道连接来提供微不足道的性能改进,这会跳过用于网络部分的大量测试。请注意,更改后您将需要使用 localhost,而不是127.0.0.1。

于 2012-06-12T17:16:48.740 回答
8
iptables -A INPUT -p tcp --dport 3306 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

上述规则用于将两行转换为单行。

回答你的第二个问题:

如果您不想从 localhost 以外的地方提供 mysql 访问,那么以这种方式配置是完美的。简单的。:-)

于 2012-06-15T07:21:37.067 回答
5
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 (...)

于 2016-05-19T14:36:45.903 回答