首页/安全/安全加固速查/DROP/REJECT 选择与拒绝日志策略
防火墙与访问控制50 条

DROP/REJECT 选择与拒绝日志策略

DROP 静默丢弃使扫描者不知端口状态,REJECT 快速失败对用户更友好;无论哪种都要有可观测性,否则排障全靠猜。

安全加固速查安全更新于 2026-10-13

DROP 与 REJECT 的区别

防火墙对不匹配的流量只有两种处置:DROP 静默丢弃,扫描者无法判断端口是否开放;REJECT 主动回绝,客户端立即失败,排障时线索更清楚。选择取决于对象是外部还是内部:对外隐藏状态,对内追求快速失败。无论选哪种,都要留下可观测性,否则「为什么访问不通」只能靠猜。

基本信息

加固项拒绝行为与可观测性
适用平台Linux(iptables/nftables)、Windows 防火墙
风险等级低
基线默认拒绝加拒绝日志(限速)
关键点日志规则必须排在丢弃规则之前

典型使用场景

  • 对外入口:未开放端口用 DROP,减少端口指纹与探测反馈
  • 内网服务:用 REJECT 让对方立即失败,避免排障被超时误导
  • 割接与迁移:临时开拒绝日志,快速找出漏配的放行规则
  • 安全审计:证明边界存在默认拒绝策略而非全放行
  • 事件响应:从拒绝日志识别扫描来源与端口探测顺序

分场景选择

分场景选择
# 对外入口:静默丢弃,不暴露端口状态
iptables -A INPUT -p tcp --dport 23 -j DROP
# 内部服务:快速失败,便于排障定位
iptables -A INPUT -s 10.0.0.0/8 -p tcp --dport 9200 -j REJECT --reject-with tcp-reset
# 观测:日志规则要限速,且必须放在 DROP 规则之前才会命中
iptables -A INPUT -m limit --limit 30/min -j LOG --log-prefix 'FWDROP: '
# nftables 等价写法:tcp dport 23 drop / reject with tcp reset

拒绝方式对照

方式客户端表现适用面
DROP一直超时,无任何回应对外的未开放端口
REJECT tcp-reset连接被立即重置内网服务,便于快速失败
REJECT icmp-port-unreachable返回端口不可达部分链路会被转译为超时,慎用
LOG 加 limit写入拒绝记录需要观测与告警的边界
拒绝日志要限速并配套告警阈值:被大规模扫描时,日志量本身就是一次可用性事件。
验收时从客户端实测一次:DROP 表现为超时,REJECT 表现为连接被拒,两者在排障时的判断路径完全不同。

落地检查点

  • 确认默认策略是拒绝而不是放行,并保留明确的放行清单
  • 按对象选择行为:对外入口用 DROP,内部服务用 REJECT 加重置
  • 拒绝日志配置限速与告警阈值,并确认日志规则排在丢弃规则之前
  • 从客户端实测超时与连接被拒两种表现,写进验收记录
  • 定期抽查日志中高频被拒的端口与来源,识别探测与配置遗漏

排障时的表现差异

客户端现象可能原因下一步看什么
连接超时规则为 DROP,或中间设备拦截查拒绝日志与链路策略
连接被重置规则为 REJECT 且返回重置确认是否为有意配置
端口不可达REJECT 返回 ICMP,被中间设备转换对照两侧策略实际下发结果
偶发超时日志限速触发丢包或规则顺序问题核对规则顺序与限速值

易错点

  • REJECT 配合 icmp-port-unreachable 在部分中间设备会被翻译成连接超时:排障时容易误判为链路问题
  • 完全没有日志的默认 DROP:事后无法回溯谁在探测、策略何时生效,排查基本靠猜
  • 日志规则写在丢弃规则之后:规则按顺序匹配,这条日志永远不会被触发
  • 对内部服务也一律 DROP:排障时间被拉长,实际上用 REJECT 加日志更划算

数据来源与参考

  • netfilter 文档:REJECT target
  • NIST SP 800-92:日志管理指南

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌