IpTables / 本地 MySQL 服务器

IpTables / 本地 MySQL 服务器

我的 iptables 规则有些问题。在我的本地主机上运行 MySQL 服务器 - 在 3306 端口上。

我写了一些规则:

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

iptables -A INPUT -p tcp --dport 3306 -m tcp -j ACCEPT
iptables -A OUTPUT -p tcp --sport 3306 -m tcp -j ACCEPT

IP OUTPUT drop: IN= OUT=lo SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=3306 DPT=38124 WINDOW=43690 RES=0x00 ACK SYN URGP=0 

还有我的锁链

Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:57261 state NEW,ESTABLISHED
ACCEPT     tcp  --  xx.xxx.xxx.xx        0.0.0.0/0            tcp spt:2049 state NEW,ESTABLISHED
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80 state NEW,ESTABLISHED
ACCEPT     tcp  --  xx.xxx.xxx.xx        0.0.0.0/0            tcp spt:443 state ESTABLISHED
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:3306 tcp
ACCEPT     udp  --  xx.xxx.xxx.xx        0.0.0.0/0            udp spt:53 state ESTABLISHED
ACCEPT     tcp  --  xx.xxx.xxx.xx        0.0.0.0/0            tcp spt:53 state ESTABLISHED
LOG        all  --  0.0.0.0/0            0.0.0.0/0            limit: avg 12/min burst 5 LOG flags 0 level 4 prefix "IP INPUT drop: "
DROP       all  --  0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy DROP)
target     prot opt source               destination         

Chain OUTPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:57261 state ESTABLISHED
ACCEPT     tcp  --  0.0.0.0/0            xx.xxx.xxx.xx        tcp dpt:2049 state NEW,ESTABLISHED
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:80 state ESTABLISHED
ACCEPT     tcp  --  0.0.0.0/0            xx.xxx.xxx.xx        tcp dpt:443 state NEW,ESTABLISHED
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:3306 tcp
ACCEPT     udp  --  0.0.0.0/0            xx.xxx.xxx.xx        udp dpt:53 state NEW,ESTABLISHED
ACCEPT     tcp  --  0.0.0.0/0            xx.xxx.xxx.xx        tcp dpt:53 state NEW,ESTABLISHED
LOG        all  --  0.0.0.0/0            0.0.0.0/0            limit: avg 12/min burst 5 LOG flags 0 level 4 prefix "IP OUTPUT drop: "
DROP       all  --  0.0.0.0/0            0.0.0.0/0           

为什么会这样?

答案1

输出规则不起作用,因为客户端计算机上的目标端口是随机的

为了正确解决该问题,您可以插入如下规则:

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

iptables -A INPUT -p tcp --dport 3306 -m tcp -j ACCEPT

iptables -A OUTPUT -p tcp --sport 3306 -m tcp -j ACCEPT

或者

iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

您可以通过指定- 运动 (源端口)或允许有关的已确立的流量,前提是你有一个可用的 conntrack 模块(默认情况下应该加载)

相关内容