1
qbqbqbqb 2019-07-17 17:16:21 +08:00
后面还有“ state RELATED,ESTABLISHED ”的限定呢。这个是允许已经建立的连接的封包通过。比如防护墙内侧用户使用浏览器 HTTP ( tcp,客户端随机端口,服务端 80 端口)上网,服务器的回应包就会被这条规则放行。
|
2
qbqbqbqb 2019-07-17 17:24:10 +08:00
如果没有这条规则的话,防火墙后面的机器就统统“上不了网”了,因为下面的几条规则只放行了 80,443,28888 三个端口,而一般客户端软件都是使用随机端口的。添加这条规则可以实现“由内向外发起的连接不受限制”的目的。
|
3
tankren 2019-07-17 17:27:15 +08:00 1
有规则顺序的
|
4
qbqbqbqb 2019-07-17 17:27:48 +08:00 1
对不起,刚才看错了,说的是第一行
最后一行还确实是全部允许通过,看起来确实像是配置错误。也可能是使用了某些 GUI 的防火墙配置软件,误将设置“默认规则”设为了“允许”,据我所知,某些配置软件的“默认规则”是加在最后的。 |
6
win7pro OP @qbqbqbqb 抱歉,我没描述清楚,我的疑惑是:input 的最后一行 ACCEPT all -- anywhere anywhere 是不是等于外网访问进来的请求全部都放行了呢?
|
7
defunct9 2019-07-17 17:44:08 +08:00 1
iptables -L -n
|
8
julyclyde 2019-07-17 17:57:53 +08:00 1
不要看 iptables -L,因为显示的内容不全
要看 iptables-save (注意没有空格,是连续的) |
9
win7pro OP @julyclyde 这个样子滴
# Generated by iptables-save v1.4.7 on Wed Jul 17 06:04:28 2019 *filter :INPUT DROP [253698:14633144] :FORWARD DROP [0:0] :OUTPUT ACCEPT [7431660:14180627739] -A INPUT -m state --state RELATED,ESTABLISHED -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 tcp -m tcp --dport 28888 -j ACCEPT -A INPUT -i lo -j ACCEPT -A OUTPUT -o lo -j ACCEPT COMMIT # Completed on Wed Jul 17 06:04:28 2019 |
10
razaura 2019-07-17 18:11:14 +08:00 1
|
11
omph 2019-07-17 18:13:25 +08:00 1
iptables -vnL 才比较全
最后一行是允许环回接口的,不要删 |
12
win7pro OP @omph
Chain INPUT (policy DROP 254K packets, 15M bytes) pkts bytes target prot opt in out source destination 13M 7554M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 457K 26M ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 28971 1579K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 508 30316 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:28888 354K 21M ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 7438K packets, 14G bytes) pkts bytes target prot opt in out source destination 4684K 6751M ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0 |
13
win7pro OP 感谢各位。我是希望外网访问服务器只保留端口 80,443,28888 ( ssh 用),其余外网访问进来的全部拒绝。
|
14
tankren 2019-07-17 21:13:10 +08:00 via Android 1
根据 pfsense 的情况 是先允许你这几个端口 然后别的全部阻止
|
15
izoabr 2019-07-18 00:00:55 +08:00 1
先看默认策略,然后看最后一条策略。
默认策略不允许通过,但是最后一条是所有都过了,相当于把默认策略给干了。 所以 INPUT 链最后的结果是允许任何来源,任何协议,任何端口,去任何地方。 |
16
omph 2019-07-18 01:33:51 +08:00 1
已经很清楚了
Chain INPUT (policy DROP) ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT) ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0 lo 就是环回接口( loopback ),这两条规则允许这个接口所有方向的流量 |
17
win7pro OP @omph 所以,我要把 -A INPUT -i lo -j ACCEPT 这一行删掉对吗:)
# Generated by iptables-save on Wed Feb 13 14:01:07 2019 *filter :INPUT DROP [8:632] :FORWARD DROP [0:0] :OUTPUT ACCEPT [4:416] -A INPUT -m state --state RELATED,ESTABLISHED -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 tcp -m tcp --dport 28888 -j ACCEPT #是下面这一行删掉就 O 了吗?# -A INPUT -i lo -j ACCEPT #是上面这一行删掉就 O 了吗?# -A OUTPUT -o lo -j ACCEPT COMMIT # Completed on Wed Feb 13 14:01:07 2019 |