Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用IPTABLES将MySQL 3306端口限制为本地主机_Mysql_Iptables - Fatal编程技术网

使用IPTABLES将MySQL 3306端口限制为本地主机

使用IPTABLES将MySQL 3306端口限制为本地主机,mysql,iptables,Mysql,Iptables,我试图限制linux机器上的MySQL 3306端口与localhost以外的任何设备建立连接,以防止外部攻击。我有以下代码,我不确定是否正确: 我的另一个问题是-只允许本地主机访问是否正确?这是一个标准的专用centos Web服务器,上面有30多个域。为什么不关闭MySQL的网络连接 添加到my.cnf: 跳过联网 通过强制通过管道连接,它还可以提供微不足道的性能改进,这跳过了用于网络部分的大量测试。请注意,更改后您需要使用localhost,而不是127.0.0.1 iptables -A

我试图限制linux机器上的MySQL 3306端口与localhost以外的任何设备建立连接,以防止外部攻击。我有以下代码,我不确定是否正确:


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

为什么不关闭MySQL的网络连接

添加到my.cnf:

跳过联网

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

iptables -A INPUT -p tcp --dport 3306 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
上述规则用于将两行转换为一行

回答你的第二个问题:

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

iptables-A INPUT-ptcp-dport3306-s127.0.0.1-d127.0.0.1-j ACCEPT
iptables-A输入-p tcp--dport 3306-j丢弃
如果要删除筛选,请使用以下命令:

iptables-D INPUT-ptcp-dport3306-s127.0.0.1-d127.0.0.1-j ACCEPT
iptables-D输入-p tcp--dport 3306-j下降

注意:两者都可能需要root,因此:
sudo iptables(…)

为什么不在设置mysql用户时使用权限,只允许该用户从localhost登录,这样类似于mysqluser@localhost如果您不想打开端口,为什么不使用Unix套接字和
--跳过网络
,而不是mysqluser@%请原谅我的问题?您的iptable规则确实有效,我刚刚试用过。仍然需要另一条规则来删除任何与第一条规则不匹配的连接,对吗?
iptables -A INPUT -p tcp --dport 3306 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT