Php 启用IPTables时,局域网上的MySQL不工作

Php 启用IPTables时,局域网上的MySQL不工作,php,mysql,apache,iptables,centos6.5,Php,Mysql,Apache,Iptables,Centos6.5,我有两个Centos虚拟机。VM_1上的IP地址为10.99.0.10,VM_2上的IP地址为10.99.0.12。Apache和PHP在VM_1中,MySQL在VM_2中。两者都有IPTables规则。VM_2可以很好地处理规则。现在我正在从VM_1进行测试 首先,我禁用了VM_1 IPTables并连接到VM_2 MySQL(连接成功) 接下来,我启用了VM_1 IPTables并连接到VM_2 MySQL(它在数小时内也不会响应) 我的IPTables规则有什么问题?我的规则在中。问题在于

我有两个Centos虚拟机。VM_1上的IP地址为10.99.0.10,VM_2上的IP地址为10.99.0.12。Apache和PHP在VM_1中,MySQL在VM_2中。两者都有IPTables规则。VM_2可以很好地处理规则。现在我正在从VM_1进行测试

首先,我禁用了VM_1 IPTables并连接到VM_2 MySQL(连接成功)

接下来,我启用了VM_1 IPTables并连接到VM_2 MySQL(它在数小时内也不会响应)


我的IPTables规则有什么问题?我的规则在中。

问题在于您启用
MySQL
流量的方法:

# Allow MySQL private Networking
sudo iptables -A INPUT -i eth1 -p tcp -s 10.99.0.12 --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -o eth1 -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT
这些规则有两个问题:

  • 只有从
    VM_2
    10.99.0.12
    )首次启动连接时,它们才允许从
    VM_1
    传出
    MySQL
    流量
  • 它们将端口
    3306
    指定为客户端的(
    VM_1
    )端口,而不是服务器的(
    VM_2
    )端口
  • 更合适的规则集如下所示:

    # Allow MySQL private Networking
    sudo iptables -A OUTPUT -o eth1 -p tcp --dport 3306 -m state --state NEW, ESTABLISHED -j ACCEPT
    sudo iptables -A INPUT -i eth1 -p tcp -s 10.99.0.12 --sport 3306 -m state --state ESTABLISHED -j ACCEPT
    

    令人惊叹的!我刚刚用你的规则集替换了它,它可以正常工作。只是好奇“这个规则集安全吗?”。谢谢我想是的,虽然我不是专家。根据经验,最好允许在本地机器上启动新流量,而不是在其他地方。此外,限制允许的IP地址范围总是明智的。例如,我会将目标IP添加到第一条规则中。服务器也是如此——如果可以将传入的请求限制为一组已知的IP地址,那么就这样做。要了解更多信息,只需谷歌和学习。可以是一个很好的起点。您也可以更改默认端口,尽管它们仍然可以通过
    nmap
    等工具检测到。
    # Allow MySQL private Networking
    sudo iptables -A INPUT -i eth1 -p tcp -s 10.99.0.12 --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
    sudo iptables -A OUTPUT -o eth1 -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT
    
    # Allow MySQL private Networking
    sudo iptables -A OUTPUT -o eth1 -p tcp --dport 3306 -m state --state NEW, ESTABLISHED -j ACCEPT
    sudo iptables -A INPUT -i eth1 -p tcp -s 10.99.0.12 --sport 3306 -m state --state ESTABLISHED -j ACCEPT