LFQ 第2章 安全威胁
| |
:多云 2008/07/09 17:36 ..by Rico

比如,在Linux下,可以用ping -f对某主机发送洪水攻击。下例用1000个包对10.10.10.12发动洪水攻击:
root@router:~# ping -f 10.10.10.12 -c 1000
PING 10.10.10.12 (10.10.10.12) 56(84) bytes of data.

可以用iptables限制ICMP回应数以阻止该种攻击:
root@router:~# iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 10/s -j ACCEPT
root@router:~# iptables -A FORWARD -p icmp --icmp-type echo-request –j DROP
引用
点击在新窗口中浏览此图片我们将在后续章节学习更多iptables的语法。现在只是显示如何用iptables阻止某种DoS攻击。

旧版ICMP应用还有许多别的漏洞。比如,the Ping of Death,即向被害设备(计算机、打印机)发送超过的最大合法极限(65535 octets)的IP包,内容是ICMP "echo request",使之死机。后来,各操作系统都推出针对the Ping of Death的补丁。

泪珠攻击
Teardrop、targa、NewTear、Nestea Bonk、Boink、TearDrop2、Syndrop等众多工具,都是用于使存在IP堆栈漏洞的计算机死机。

这些工具发现某些旧版Linux内核(2.0)、Windows NT、Windows 95的IP堆栈里存在碎片Bug。Teardrop发送碎化的IP包,这些包在被攻击的机器上无法通过计算其偏移值进行组合,导致Linux下出现kernel panic,Windows下出现蓝屏,只能重启电脑。

然而,the Ping of Death问题造成过滤ICMP包的习惯,在本书后面你会发现,这并非好习惯。

第4层安全威胁
TCP和UDP是建立在OSI第4层(传输层)上的传输协议。在第1章详细讨论过,TCP要比UDP复杂的多,因为它是基于连接的协议,具有流量控制机制(windowing);UDP简单而且不要求连线,也没有流量控制。

TCP攻击
作为面向连接的协议,TCP用三次握手建立连接。攻击者利用协议的这个特点发送大量的SYN包,不管被攻击主机发回的SYNACK。这种攻击被称为TCP SYN攻击或SYN洪水。

SYN洪水能够奏效,因为被攻击计算机在某个"listen queue"会跟踪特定打开的连接至少75秒。队列限制在不同的TCP应用上,因此SYN洪水可以将之塞满,导致机器重启或死机。

在Linux里,不同版本的内核TCP监听队列也不相同。2.2及老版内核,默认向状态为SYN_RECV的TCP连接提供的监听队列为1024. 2.0,有一个后台日志跟踪记录打开的及部分打开的TCP连接。监听队列可以用sysctl的参数tcp_max_syn_backlog查看并修改:
root@router:~# cat /proc/sys/net/ipv4/tcp_max_syn_backlog
1024
root@router:~# echo 2048 > /proc/sys/net/ipv4/tcp_max_syn_backlog

第一条命令显示后台日志大小为1024,第二条命令将之设为2048.

Linux内核默认会在队列塞满后丢弃新的SYN包。可以用sysctl的另一个参数tcp_syncookies修改,不过要求编译内核时选择了对syncookies的支持(CONFIG_SYN_COOKIES="Y")。
root@router:~# echo 1 > /proc/sys/net/ipv4/tcp_syncookies

该命令设置tcp_syncookies为1,Linux内核将忽略tcp_max_syn_backlog大小。然而,使用tcp_syncookies可能导致不想要的边缘效应。比如,处理1024个TCP连接的网页服务器过载时正常情况下将丢弃新的SYN包。这可以将新的客户引到另外一个加载量小的网页服务器上,以快速处理他们的请求。如果打开syncookies,新的客户不得不花很长时间等待过载服务器的答复。

可以用iptables限制指定时间内的SYN包的数量以阻止SYN洪水:
root@router:~# iptables -A INPUT -p tcp --syn  -m limit --limit 10/s -j ACCEPT
root@router:~# iptables -A INPUT -p tcp --syn  –j DROP

与TCP有关的另外一种攻击是Land attack。此攻击简单而且破坏性巨大,不仅影响大量的Unix和所有的Windows,还影响Cisco路由器。Land attack使用一个用C编写的小程序(land.c),将源IP地址伪装成目标IP地址(比如,192.168.1.1:139到192.168.1.1:139),向该主机打开的TCP端口发送SYN包。
内文分页: [1] [2] [3] [4] [5] [6] [7] [8]
< Tags: >

0 comment(s)

发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
昵称   密码   游客无需密码
网址   电邮   [注册]
               

验证码 不区分大小写