找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 20372|回复: 1

利用iptables防攻击的简单例子!dns如何被利用的?

[复制链接]
发表于 2013-3-25 18:14:52 | 显示全部楼层 |阅读模式
目前对DNS服务器的攻击基本都是假冒IP的潮水攻击。普通情况下,DNS查询是UDP协议,无需像TCP那样的三次握手过程,因此DNS服务器无法识别请求包里的源IP是否真实有效。如果大量的假冒IP进行攻击,就造成名字服务器要么计算资源耗尽,要么带宽耗尽,从而拒绝服务。
) U& o  R& V) E2 g; N) e由于客户端是假冒IP,因此DNS服务器端的安全策略,例如DNS RRL、或者iptables,都作用不大。唯一有效的方式是从源头制止这种攻击,即各ISP、IDC都要严格执行BCP 38,拒绝非本网络的源IP对外发起请求。% L) _* v  F" [

# H( T  s' a/ d* |' X$ `, \除了直接攻击DNS服务器外,还有一种情况是DNS服务器被利用来攻击别人。如果攻击者想攻击某个站点,他假冒这个站点的IP,对互联网上开放的DNS服务器发起查询,DNS服务器会将查询应答包返回给站点IP。由于开放的DNS服务器数量众多(比如运营商的递归服务器、各个公司自己的权威服务器),假如攻击者同时往1000台DNS服务器发起查询,那么1000个服务器的返回包到达后,巨大的流量直接把目标站点干掉。示意图请见:/ y7 r5 x  g: n- c
$ \9 p8 |* G$ d9 o4 i
这种情况下,可以利用RRL、iptables来保护自己的名字服务器免被攻击者利用来攻击别人。
" Y  Z- M5 w8 }- Q一个简单的iptables规则可以如下:) e. P5 d) O4 r! v; Z5 ~* E
iptables -I INPUT -p udp –dport 53 -m state –state NEW  -m recent –set# u# J/ {, R2 r
iptables -I INPUT -p udp –dport 53 -m state –state NEW  -m recent –update –seconds 60 –hitcount 1000 -j DROP
: t4 a# d8 H  a上述规则的作用是,如果在1分钟内对DNS的查询频率超过1000次,就拦截掉该源IP。
2 e2 ]: |4 c# W# k; K+ b+ M7 \9 v" l! f' n
原文:http://www.nsbeta.info/archives/389

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
 楼主| 发表于 2013-3-25 19:09:04 | 显示全部楼层
上面的脚本貌似有问题:看这里解决:- R6 T  \+ B: Y. U
    当apache站点受到严重的cc攻击,我们可以用iptables来防止web服务器被CC攻击,实现自动屏蔽IP的功能。. U2 X7 [! ^8 \. f
1.系统要求  ^# C9 n  a, ?+ }5 k

7 q# c4 U5 ^+ n4 V6 D(1)LINUX 内核版本:2.6.9-42ELsmp或2.6.9-55ELsmp(其它内核版本需要重新编译内核,比较麻烦,但是也是可以实现的)。7 w3 w0 F( Z1 p

+ J8 ^2 T8 B* L) m(2)iptables版本:1.3.7
+ }- A/ h: {1 ^1 P6 k
) F2 d0 y7 a1 p& d, x4 C8 G7 P2. 安装$ i3 m2 Q# L2 I" b8 }

0 B' }) \+ @! T' [5 N. o& T, n安装iptables1.3.7和系统内核版本对应的内核模块kernel-smp-modules-connlimit
4 o: V* z- z* M5 h; z* P
; ?3 j+ W5 {7 |) t" ~! ?- x3. 配置相应的iptables规则
7 X) @, \5 K1 m) P
* q+ _7 e7 G3 g3 S) ^! F( m" c# Y示例如下:
5 I: W) b5 p& e+ o8 |+ e4 z2 d' T2 a, Q3 O) n4 ?
(1)控制单个IP的最大并发连接数; F5 L/ h$ F9 ^5 j

& u1 n+ j5 z  J# b7 Hiptables -I INPUT -p tcp --dport 80 -m connlimit \ --connlimit-above 50 -j REJECT #允许单个IP的最大连接数为 30
; e- L. t: g4 o2 T, z, y& {+ I(2)控制单个IP在一定的时间(比如60秒)内允许新建立的连接数
( w* d6 S! B& A3 M! y6 u* z! [% p/ J% }5 k" V& l+ P
iptables -A INPUT -p tcp --dport 80 -m recent \ --name BAD_HTTP_ACCESS --update --seconds 60 \ --hitcount 30 -j REJECT iptables -A INPUT -p tcp --dport 80 -m recent \ --name BAD_HTTP_ACCESS --set -j ACCEPT #单个IP在60秒内只允许最多新建30个连接
* t/ ~0 s( {( s/ h4. 验证0 @8 D$ O. p1 t. O# R. P7 E

+ ]. ]* [5 ^% s4 J  ?  Y(1)工具:flood_connect.c(用来模拟攻击)9 E; L0 G  |% U+ `+ f
3 ]7 @+ L$ ^: ^9 {- @4 _5 M* A  g! o
(2)查看效果:$ c( q8 [, L0 `3 z) R* V1 Q# Z
. G4 Y- R# T- b0 o  c
使用* x: x! [, k( c, q

! |7 D# w* _9 r- A+ W1 W, dwatch 'netstat -an | grep:21 | \ grep<模拟攻击客户机的IP>| wc -l'
$ c# r+ H  p. e' O0 t$ l" C实时查看模拟攻击客户机建立起来的连接数,
% S  L+ c/ [( O1 H' w( c4 r5 A! v( b' J/ X  X) }6 a  Z# A
使用% @  V$ a; _% Y" s# B
* w6 x9 w7 m- ?( P* x- M
watch 'iptables -L -n -v | \grep<模拟攻击客户机的IP>'9 g% S; `+ R2 A0 r! c4 C
查看模拟攻击客户机被 DROP 的数据包数。
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|第一站论坛 ( 蜀ICP备06004864号-6 )

GMT+8, 2026-10-5 02:52 , Processed in 0.086532 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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