资讯专栏INFORMATION COLUMN

iptables 之 REJECT 与 DROP 对比

cartoon / 1772人阅读

摘要:前言在访问国外网站时,看,下面两种错误很常见不考虑网络状况的情况下,一般是不同的策略导致的。本文简单分析不同策略下不同的现象。

前言

在访问国外网站时,F12 看 console,下面两种错误很常见:

(1),Failed to load resource: net::ERR_CONNECTION_REFUSED
(2),Failed to load resource: net::ERR_CONNECTION_TIMEOUT

不考虑网络状况的情况下,一般是不同的 iptables 策略导致的。
本文简单分析不同 iptables 策略下不同的现象。

一,nc 监听端口

Linux 服务器配置防火墙策略时,对一些不希望对外开放的端口,一般会用 iptables 过滤掉。
例如服务器上使用 nc 命令监听如下端口(选择一个未使用的 5568 端口作为对比):

nc -l 4444
nc -l 5555
nc -l 5566
# 未使用的 5568 端口作为参照

然后用 iptables 过滤掉这些端口:

iptables -A INPUT -p tcp -m tcp --dport 4444 -j DROP 
iptables -A INPUT -p tcp -m tcp --dport 5555 -j REJECT --reject-with icmp-port-unreachable
iptables -A INPUT -p tcp -m tcp --dport 5566 -j REJECT --reject-with tcp-reset
# 未被使用的 5568 端口作为参照
二,nmap 扫描端口

使用 nmap 分别扫描上面的 4 个端口,结果如下所示:

扫描 4444 端口(DROP),并使用 time 命令查看耗时,time nmap -p4444 127.0.0.1
端口扫描结果 filtered, 耗时 2.2

扫描 5555 端口(REJECT unreachable),并使用 time 命令查看耗时,time nmap -p5555 127.0.0.1
端口扫描结果 filtered, 耗时 0.2

扫描 5566 端口(REJECT tcp-reset),并使用 time 命令查看耗时,time nmap -p5566 127.0.0.1
端口扫描结果 closed, 耗时 0.2

扫描 5568 端口,并使用 time 命令查看耗时,time nmap -p5568 127.0.0.1
端口扫描结果 closed, 耗时 0.2

三,tcpdump 抓包分析

使用下面命令发起 TCP 连接请求(nc 或者 telnet):

nc 127.0.0.1 4444
nc 127.0.0.1 5555
nc 127.0.0.1 5566
nc 127.0.0.1 5568

tcpdump 抓包结果如下:

tcpdump -i lo port 4444
过滤策略为 DROP,会不断重试发送 SYN 直到超时,占用了带宽资源

tcpdump -i lo port 5555
过滤策略为 reject with icmp-port-unreachable 的,发两次就停止

tcpdump -i lo port 5566
过滤策略为 reject with tcp_reset,发出 SYN 包,收到 reset

tcpdump -i lo port 5568
端口未使用的,发出 SYN 包,收到 reset

四,结论

REJECT –reject-with tcp-reset 比 DROP 好,干脆利落,节约时间,节约带宽。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/11611.html

相关文章

  • 深入理解iptables防火墙

    摘要:防火墙根据一组规则检查这些头,以确定接受哪个信息包以及拒绝哪个信息包。我们将该过程称为信息包过滤。虽然信息包过滤系统被称为单个实体,但它实际上由两个组件和组成。处理出站信息包的规则被添加到链中。 本文部分内容节选自:netfilter/iptables 简介 - IBM developerWorks 0x00 Linux 安全性和 netfilter/iptables Linux ...

    summerpxy 评论0 收藏0
  • 深入理解iptables防火墙

    摘要:防火墙根据一组规则检查这些头,以确定接受哪个信息包以及拒绝哪个信息包。我们将该过程称为信息包过滤。虽然信息包过滤系统被称为单个实体,但它实际上由两个组件和组成。处理出站信息包的规则被添加到链中。 本文部分内容节选自:netfilter/iptables 简介 - IBM developerWorks 0x00 Linux 安全性和 netfilter/iptables Linux ...

    SexySix 评论0 收藏0
  • iptables常用实例备查(更新中)

    摘要:限制指定范围能,可取允许一个段访问多个端口禁止某段访问端口,将改成作用相同。这条规则用在链默没有的情况,作用与相同,当前面所有的规则都没匹配时,自然落到这个上。类似的链也可以这么用。 1. 普通规则 1.1 操作规则 iptables -nL 查看本机关于iptables的设置情况,默认查看的是-t filter,可以指定-t nat iptables-save > ipta...

    vboy1010 评论0 收藏0
  • iptablesfirewalld

    摘要:永久生效并立即生效永久模式拒绝流量重新加载配置文件允许端口通过允许到的端口通过查询允许通过的端口端口转发将本机端口转发到的端口 iptable 常用参数 -P #设置默认策略 -F #清空规则链 -L #查看规则链 -I #在规则链头部插入新规则 -A #在规则链尾部加入新规则 -D #删除某一条规则 -s #匹配来源地址 I...

    Yangder 评论0 收藏0
  • centos 7下iptables 的安装和使用

    摘要:说明默认的防火墙是,鉴于使用的比较广,本文简要介绍在系统下服务的安装以及相关的使用方法。上可以执行保存规则 说明:Centos 7 默认的防火墙是 firewall ,鉴于 iptables 使用的比较广,本文简要介绍在 CentOS7.0 系统下 iptables 服务的安装以及相关的使用方法。 禁用 firewall 开机启动 为了防止与 iptables 服务冲突,先禁用 fi...

    Jaden 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<