我试图只允许某些IP访问端口8209.我尝试了一些我在ServerFault上读取的不同方法。 这个方法是我尝试过的最新的方法 。
我手动编辑我的configuration文件,通过添加下面的行:
-N xxx # create a new chain -A xxx --src 50.88.183.6 -j ACCEPT # allow 20.88.183.6 -A xxx --src 97.68.205.177 -j ACCEPT # allow 87.68.205.177 -A xxx --src 38.103.14.231 -j ACCEPT # allow 49.103.14.231 -A xxx -j DROP # drop everyone else -I INPUT -m tcp -p tcp --dport 8209 -j xxx # use chain xxx for packets coming to TCP port 8209
添加行后,我重新启动了Iptables,并没有工作,我仍然可以从任何IP访问它。 我不确定这是否只是错误的configuration或文件中的位置问题。
Incase在文件中的位置很重要,我把它放在这些行正下方configuration的顶部附近
:INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [302211:210610546] :RH-Firewall-1-INPUT - [0:0] :acctboth - [0:0] :cP-Firewall-1-INPUT - [0:0]
在这条线上方:
-A INPUT -p tcp -m tcp --dport 49152:65534 -j ACCEPT -A INPUT -j cP-Firewall-1-INPUT -A INPUT -j acctboth -A INPUT -j RH-Firewall-1-INPUT
这里是命令iptables -L -n -v的输出
Chain INPUT (policy ACCEPT 63019 packets, 7491K bytes) pkts bytes target prot opt in out source destination 60060 6425K acctboth all -- * * 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 44033 packets, 85M bytes) pkts bytes target prot opt in out source destination 41960 82M acctboth all -- * * 0.0.0.0/0 0.0.0.0/0 Chain acctboth (2 references) pkts bytes target prot opt in out source destination 0 0 tcp -- !lo * 23.253.74.239 0.0.0.0/0 tcp dpt:80 0 0 tcp -- !lo * 0.0.0.0/0 23.253.74.239 tcp spt:80 0 0 tcp -- !lo * 23.253.74.239 0.0.0.0/0 tcp dpt:25 0 0 tcp -- !lo * 0.0.0.0/0 23.253.74.239 tcp spt:25 0 0 tcp -- !lo * 23.253.74.239 0.0.0.0/0 tcp dpt:110 0 0 tcp -- !lo * 0.0.0.0/0 23.253.74.239 tcp spt:110 0 0 icmp -- !lo * 23.253.74.239 0.0.0.0/0 0 0 icmp -- !lo * 0.0.0.0/0 23.253.74.239 2 216 tcp -- !lo * 23.253.74.239 0.0.0.0/0 3 268 tcp -- !lo * 0.0.0.0/0 23.253.74.239 0 0 udp -- !lo * 23.253.74.239 0.0.0.0/0 0 0 udp -- !lo * 0.0.0.0/0 23.253.74.239 2 216 all -- !lo * 23.253.74.239 0.0.0.0/0 3 268 all -- !lo * 0.0.0.0/0 23.253.74.239 0 0 tcp -- !lo * 23.253.72.112 0.0.0.0/0 tcp dpt:80 0 0 tcp -- !lo * 0.0.0.0/0 23.253.72.112 tcp spt:80 0 0 tcp -- !lo * 23.253.72.112 0.0.0.0/0 tcp dpt:25 0 0 tcp -- !lo * 0.0.0.0/0 23.253.72.112 tcp spt:25 0 0 tcp -- !lo * 23.253.72.112 0.0.0.0/0 tcp dpt:110 0 0 tcp -- !lo * 0.0.0.0/0 23.253.72.112 tcp spt:110 0 0 icmp -- !lo * 23.253.72.112 0.0.0.0/0 0 0 icmp -- !lo * 0.0.0.0/0 23.253.72.112 0 0 tcp -- !lo * 23.253.72.112 0.0.0.0/0 0 0 tcp -- !lo * 0.0.0.0/0 23.253.72.112 0 0 udp -- !lo * 23.253.72.112 0.0.0.0/0 0 0 udp -- !lo * 0.0.0.0/0 23.253.72.112 0 0 all -- !lo * 23.253.72.112 0.0.0.0/0 0 0 all -- !lo * 0.0.0.0/0 23.253.72.112 0 0 tcp -- !lo * 23.253.72.149 0.0.0.0/0 tcp dpt:80 0 0 tcp -- !lo * 0.0.0.0/0 23.253.72.149 tcp spt:80 0 0 tcp -- !lo * 23.253.72.149 0.0.0.0/0 tcp dpt:25 0 0 tcp -- !lo * 0.0.0.0/0 23.253.72.149 tcp spt:25 0 0 tcp -- !lo * 23.253.72.149 0.0.0.0/0 tcp dpt:110 0 0 tcp -- !lo * 0.0.0.0/0 23.253.72.149 tcp spt:110 0 0 icmp -- !lo * 23.253.72.149 0.0.0.0/0 0 0 icmp -- !lo * 0.0.0.0/0 23.253.72.149 0 0 tcp -- !lo * 23.253.72.149 0.0.0.0/0 0 0 tcp -- !lo * 0.0.0.0/0 23.253.72.149 0 0 udp -- !lo * 23.253.72.149 0.0.0.0/0 0 0 udp -- !lo * 0.0.0.0/0 23.253.72.149 0 0 all -- !lo * 23.253.72.149 0.0.0.0/0 0 0 all -- !lo * 0.0.0.0/0 23.253.72.149 0 0 tcp -- !lo * 23.253.72.81 0.0.0.0/0 tcp dpt:80 0 0 tcp -- !lo * 0.0.0.0/0 23.253.72.81 tcp spt:80 0 0 tcp -- !lo * 23.253.72.81 0.0.0.0/0 tcp dpt:25 0 0 tcp -- !lo * 0.0.0.0/0 23.253.72.81 tcp spt:25 0 0 tcp -- !lo * 23.253.72.81 0.0.0.0/0 tcp dpt:110 0 0 tcp -- !lo * 0.0.0.0/0 23.253.72.81 tcp spt:110 0 0 icmp -- !lo * 23.253.72.81 0.0.0.0/0 0 0 icmp -- !lo * 0.0.0.0/0 23.253.72.81 0 0 tcp -- !lo * 23.253.72.81 0.0.0.0/0 0 0 tcp -- !lo * 0.0.0.0/0 23.253.72.81 0 0 udp -- !lo * 23.253.72.81 0.0.0.0/0 0 0 udp -- !lo * 0.0.0.0/0 23.253.72.81 0 0 all -- !lo * 23.253.72.81 0.0.0.0/0 0 0 all -- !lo * 0.0.0.0/0 23.253.72.81 0 0 tcp -- !lo * 10.208.37.124 0.0.0.0/0 tcp dpt:80 0 0 tcp -- !lo * 0.0.0.0/0 10.208.37.124 tcp spt:80 0 0 tcp -- !lo * 10.208.37.124 0.0.0.0/0 tcp dpt:25 0 0 tcp -- !lo * 0.0.0.0/0 10.208.37.124 tcp spt:25 0 0 tcp -- !lo * 10.208.37.124 0.0.0.0/0 tcp dpt:110 0 0 tcp -- !lo * 0.0.0.0/0 10.208.37.124 tcp spt:110 0 0 icmp -- !lo * 10.208.37.124 0.0.0.0/0 0 0 icmp -- !lo * 0.0.0.0/0 10.208.37.124 0 0 tcp -- !lo * 10.208.37.124 0.0.0.0/0 0 0 tcp -- !lo * 0.0.0.0/0 10.208.37.124 0 0 udp -- !lo * 10.208.37.124 0.0.0.0/0 0 0 udp -- !lo * 0.0.0.0/0 10.208.37.124 0 0 all -- !lo * 10.208.37.124 0.0.0.0/0 0 0 all -- !lo * 0.0.0.0/0 10.208.37.124 5 484 all -- !lo * 0.0.0.0/0 0.0.0.0/0
以下是configuration的完整输出:
# Generated by iptables-save v1.3.5 on Wed Jan 8 20:49:24 2014 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [302211:210610546] :RH-Firewall-1-INPUT - [0:0] :acctboth - [0:0] :cP-Firewall-1-INPUT - [0:0] -N xxx # create a new chain -A xxx --src 50.88.183.6 -j ACCEPT # allow 20.88.183.6 -A xxx --src 97.68.205.177 -j ACCEPT # allow 87.68.205.177 -A xxx --src 38.103.14.231 -j ACCEPT # allow 39.103.14.231 -A xxx -j DROP # drop everyone else -I INPUT -m tcp -p tcp --dport 8209 -j xxx # use chain xxx for packets coming to TCP port 8209 -A INPUT -p tcp -s 20.88.183.6 -j ACCEPT -A INPUT -p tcp -s 87.68.205.177 -j ACCEPT -A INPUT -p tcp -m tcp --dport 49152:65534 -j ACCEPT -A INPUT -j cP-Firewall-1-INPUT -A INPUT -j acctboth -A INPUT -j RH-Firewall-1-INPUT -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT -A INPUT -p tcp -s 220.177.198.26 -j DROP -A INPUT -p tcp -s 115.239.248.121 -j DROP -A INPUT -p tcp -s 222.186.56.33 -j DROP -A FORWARD -j cP-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A OUTPUT -j acctboth -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p esp -j ACCEPT -A RH-Firewall-1-INPUT -p ah -j ACCEPT -A RH-Firewall-1-INPUT -d 224.0.0.251 -p udp -m udp --dport 5353 -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 RELATED,ESTABLISHED -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 8209 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited -A acctboth -s 23.253.74.239 -i ! lo -p tcp -m tcp --dport 80 -A acctboth -d 23.253.74.239 -i ! lo -p tcp -m tcp --sport 80 -A acctboth -s 23.253.74.239 -i ! lo -p tcp -m tcp --dport 25 -A acctboth -d 23.253.74.239 -i ! lo -p tcp -m tcp --sport 25 -A acctboth -s 23.253.74.239 -i ! lo -p tcp -m tcp --dport 110 -A acctboth -d 23.253.74.239 -i ! lo -p tcp -m tcp --sport 110 -A acctboth -s 23.253.74.239 -i ! lo -p icmp -A acctboth -d 23.253.74.239 -i ! lo -p icmp -A acctboth -s 23.253.74.239 -i ! lo -p tcp -A acctboth -d 23.253.74.239 -i ! lo -p tcp -A acctboth -s 23.253.74.239 -i ! lo -p udp -A acctboth -d 23.253.74.239 -i ! lo -p udp -A acctboth -s 23.253.74.239 -i ! lo -A acctboth -d 23.253.74.239 -i ! lo -A acctboth -s 10.208.37.124 -i ! lo -p tcp -m tcp --dport 80 -A acctboth -d 10.208.37.124 -i ! lo -p tcp -m tcp --sport 80 -A acctboth -s 10.208.37.124 -i ! lo -p tcp -m tcp --dport 25 -A acctboth -d 10.208.37.124 -i ! lo -p tcp -m tcp --sport 25 -A acctboth -s 10.208.37.124 -i ! lo -p tcp -m tcp --dport 110 -A acctboth -d 10.208.37.124 -i ! lo -p tcp -m tcp --sport 110 -A acctboth -s 10.208.37.124 -i ! lo -p icmp -A acctboth -d 10.208.37.124 -i ! lo -p icmp -A acctboth -s 10.208.37.124 -i ! lo -p tcp -A acctboth -d 10.208.37.124 -i ! lo -p tcp -A acctboth -s 10.208.37.124 -i ! lo -p udp -A acctboth -d 10.208.37.124 -i ! lo -p udp -A acctboth -s 10.208.37.124 -i ! lo -A acctboth -d 10.208.37.124 -i ! lo -A acctboth -i ! lo -A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 993 -j ACCEPT -A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 2078 -j ACCEPT -A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT -A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT -A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 2082 -j ACCEPT -A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT -A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 2077 -j ACCEPT -A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT -A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 26 -j ACCEPT -A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT -A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 143 -j ACCEPT -A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 8209 -j ACCEPT -A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 995 -j ACCEPT -A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 110 -j ACCEPT -A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT -A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 2086 -j ACCEPT -A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 2087 -j ACCEPT -A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 2095 -j ACCEPT -A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 465 -j ACCEPT -A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 2096 -j ACCEPT -A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT -A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 2083 -j ACCEPT -A cP-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT COMMIT # Completed on Wed Jan 8 20:49:24 2014 # Generated by iptables-save v1.3.5 on Wed Jan 8 20:49:24 2014 *nat :PREROUTING ACCEPT [10751:641344] :POSTROUTING ACCEPT [6174:435114] :OUTPUT ACCEPT [6174:435114] COMMIT
好的,主要的问题是,现在你的防火墙正在做什么 。 INPUT链只包含一个规则,它将您的stream量发送到一个名为acctboth的链。 这条链包含了一堆规则, 没有任何一个规则具有决定性的目标,因此所有的数据包都将通过它并返回到默认策略,在该链上(和所有其他链一样)是ACCEPT 。
结果是这台机器完全没有被挡住。
为什么你显示的“防火墙configuration”与你的实时规则集之间有这样的不匹配,我不知道。 您还没有告诉我们该configuration规则集来自哪个文件,所以我们不知道从configuration文件加载是否存在问题。 很明显,你对正在制作的编辑没有影响。 所有我们知道的是,你的机器是完全没有障碍的。
另外,你的服务器运行的是CentOS 6.2,这个版本已经过了将近两年了。
请不要太在意,但看起来你真的超出了你的深度。 得到这台机器的一些专业协助,因为目前,它是开放的,没有打补丁。
这是我用于Web服务器的通用iptables规则集的转储。 注意我有一个名为SSH_CHECK的SSH战争拨号检测规则集,可能不适用于您的问题,但是想在这里设置它作为我的完整规则集的一部分。
# Generated by iptables-save v1.4.12 on Sun Apr 6 11:50:24 2014 *nat :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :OUTPUT ACCEPT [3:198] :POSTROUTING ACCEPT [3:198] COMMIT # Completed on Sun Apr 6 11:50:24 2014 # Generated by iptables-save v1.4.12 on Sun Apr 6 11:50:24 2014 *mangle :PREROUTING ACCEPT [22:1475] :INPUT ACCEPT [22:1475] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [21:3342] :POSTROUTING ACCEPT [21:3342] COMMIT # Completed on Sun Apr 6 11:50:24 2014 # Generated by iptables-save v1.4.12 on Sun Apr 6 11:50:24 2014 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [21:3342] :SSH_CHECK - [0:0] -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j SSH_CHECK -A INPUT -j TOR -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT -A INPUT -p esp -j ACCEPT -A INPUT -p ah -j ACCEPT -A INPUT -d 224.0.0.251/32 -p udp -m udp --dport 5353 -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j TOR -A SSH_CHECK -m recent --set --name SSH --rsource -A SSH_CHECK -m recent --update --seconds 60 --hitcount 4 --name SSH --rsource -j DROP COMMIT # Completed on Sun Apr 6 11:50:24 2014
看看你的规则,也许你可以尝试将值直接放入INPUT链,如下所示:
-A INPUT -s 50.88.183.6 -m tcp -j ACCEPT # allow 20.88.183.6 -A INPUT -s 97.68.205.177 -m tcp -j ACCEPT # allow 87.68.205.177 -A INPUT -s 38.103.14.231 -m tcp -j ACCEPT # allow 49.103.14.231
注意我如何明确地设置INPUT链,使用-s代替--src因为你也有&我也明确地设置了-m tcp 。
另外,由于您明确授予对端口8209访问权限,因此您可以直接在INPUT链上运行:
-A INPUT -s 50.88.183.6 -m tcp --dport 8209 -j ACCEPT # allow 20.88.183.6 -A INPUT -s 97.68.205.177 -m tcp --dport 8209 -j ACCEPT # allow 87.68.205.177 -A INPUT -s 38.103.14.231 -m tcp --dport 8209 -j ACCEPT # allow 49.103.14.231