CentOS 上 iptables 转发端口 3306 的问题

CentOS 上 iptables 转发端口 3306 的问题

我尝试向 200.58.126.52 的 mysql 服务器添加转发,以允许来自 200.58.125.39 的访问,并使用以下规则(这是我托管的 VPS 的整个 iptables)。我可以在本地主机上以 localhost 形式连接拥有 mysql 服务的服务器,但不能从外部连接。

有人能检查一下以下规则是否正确吗?谢谢

# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 200.58.125.39 --dport 3306 -j ACCEPT
-A INPUT -p tcp -s 200.58.125.39 --sport 1024:65535 -d localhost --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -s localhost --sport 3306 -d 200.58.125.39 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
COMMIT

这是连接试验的输出。

[root@qwhosti /home/qwhosti/public_html/admin/config] # mysql -u user_db -p -h 200.58.126.52 输入密码:错误 2003 (HY000):无法连接到‘200.58.126.52’上的 MySQL 服务器 (113)

答案1

RH-Firewall-1-INPUT在规则之前将新规则添加到链中-j REJECT。规则从上到下读取,第一个匹配的规则将被应用;由于规则上没有说明符REJECT,您的传入连接REJECT在转发之前会被编辑。

相关内容