我有很多这样的规则:
#!/bin/sh
modprobe ip_conntrack
# Initialiser les tables
iptables -t filter -F
#Vider les règles custom
iptables -t filter -X
#Interdire toutes les connexions entrante et sortantes
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
#Works perfect
iptables -t filter -A INPUT -p tcp -s myIP --dport 9200 -j ACCEPT
iptables -t filter -A INPUT -p tcp -s 127.0.0.1 --dport 9200 -j ACCEPT
#Don't work
iptables -t filter -A INPUT -p tcp -s myIP --dport 3306 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 3306 -j ACCEPT
我已经多次重新加载 /etc/init.d/firewall,重新启动后什么都没有用,nmap 输出说:
Host is up (0.017s latency).
PORT STATE SERVICE
3306/tcp filtered mysql
我检查了 mysql 服务也在运行。我做错了什么?我不明白。谢谢。
答案1
在您的最终规则中,您使用在表格--dport
上指定的OUTPUT
- 这是传出(服务器到客户端)数据包的目标端口。这不是服务端口 3306 - 这将是客户端的临时端口。相反,如果您希望限制 MySQL 服务的传出数据包,则应考虑使用 ito--sport 3306
允许传出 MySQL 数据包。