QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 969|回复: 4

反端口扫描的一点探索

[复制链接]
发表于 2004-6-29 17:22:37 | 显示全部楼层 |阅读模式
通常入侵主机的第一步是端口扫描,在反端口扫描上多花一点精力永远是值得的。
以下为本人有关反端口扫描的一点探索,不当之处,敬请指出。

脚本节选如下:
-----------------------------------------------------------------------------
......
IPTABLES="/sbin/iptables"
......

$IPTABLES -N bad_tcp_pkt
$IPTABLES -N dos_protection
$IPTABLES -N general_chk
......

# bad_tcp_pkt chain, including port scanning protection.

# Null scaning
$IPTABLES -A bad_tcp_pkt -p tcp --tcp-flags ALL NONE \
-j REJECT --reject-with tcp-reset
# SYN|ACK scanning
$IPTABLES -A bad_tcp_pkt -p tcp --tcp-flags SYN,ACK SYN,ACK \
-m state --state NEW -j REJECT --reject-with tcp-reset
# FIN scanning
$IPTABLES -A bad_tcp_pkt -p tcp --tcp-flags ALL FIN \
-m state --state NEW -j REJECT --reject-with tcp-reset
# Xmas scanning
$IPTABLES -A bad_tcp_pkt -p tcp --tcp-flags FIN,URG,PSH FIN,URG,PSH \
-m state --state NEW -j REJECT --reject-with tcp-reset

$IPTABLES -A bad_tcp_pkt -p tcp ! --syn -m state --state NEW \
-m limit --limit 1/m --limit-burst 1 -j LOG --log-prefix "New not syn:"
$IPTABLES -A bad_tcp_pkt -p tcp ! --syn -m state --state NEW -j DROP

# dos_protection rules, change the value if necessary

$IPTABLES -A dos_protection -m limit --limit 1/s --limit-burst 3 -j RETURN
$IPTABLES -A dos_protection -j DROP

# general_chk rules

$IPTABLES -A general_chk -p tcp -j bad_tcp_pkt
$IPTABLES -A general_chk -p tcp --syn -j dos_protection
$IPTABLES -A general_chk -p icmp --icmp-type 8 -j dos_protection

......
 楼主| 发表于 2004-6-29 17:43:19 | 显示全部楼层
通常对于反端口扫描的措施是一刀切——DROP
这样就不能达到欺骗入侵者的目的,对于端口扫描的原理这里不再展开,只对几种常规的方法进行探讨。

1) syn scanning
对于单一端口,这是允许的(废话)。所以只能限制一定时间内的次数。用
      -m limit --limit 1/s --limit-burst 3  来实现

2) Null scanning
发送tcp flag 为空的数据包,如果回复rst,则端口为关闭;不回复,则端口为打开。
      -j REJECT --reject-with tcp-reset  可以达到欺骗入侵者的目的。
此类数据包是不正常的,所以netfilter对其状态没有跟踪,不能使用-m state选项。(我个人认为是一个bug)。

3) SYN|ACK scanning
原理与null scanning相同,通过发送SYN|ACK实现。此类包是在正常数据流中是存在的,不能一刀切DROP,需要指出其状态
      -m state --state NEW

4) FIN scanning/Xmas scanning
原理同上

建立完general_chk后,就可以在主链中最前面引用:
      $IPTABLES -A INPUT -j general_chk

好了,本文到此结束,谢谢。
回复

使用道具 举报

发表于 2004-6-29 18:06:10 | 显示全部楼层
偶认为除了防扫描外,还要注意出口过滤的问题,伪源路由等等。。。
回复

使用道具 举报

 楼主| 发表于 2004-6-30 14:29:40 | 显示全部楼层
可以配合使用,前面主要侧重于对扫描响应的伪装。
下次再研究一下,把成熟的应用再搬上来共享。
回复

使用道具 举报

发表于 2004-7-1 00:04:05 | 显示全部楼层
不用扫描啦,我主动告诉您啦,我开了这些端口:

[code:1]21
22
25
80
110
143
443
993
995
10000
20000
[/code:1]

    
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-8 04:53 , Processed in 0.042087 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表