用IPTables实现字符串模式匹配
http://tech.ddvip.com 2006年04月03日 社区交流 收藏本文
本文详细介绍用IPTables实现字符串模式匹配
然后输入:
test
whatevertestdoes
这样将引起iptables产生一个简单的记录,我们在记录文件中将会看到如下的信息(当然你需要设置了记录信息的级别为info)
Nov 27 23:16:53 pua kernel:
TEST IN=lo OUT=MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00
SRC=127.0.0.1 DST=127.0.0.1 LEN=2154 TOS=0x00 PREC=0x00 TTL=64
ID=42880 DF PROTO=TCP SPT=3128 DPT=33018 WINDOW=32767 RES=0x00 ACK PSH URGP=0
Nov 27 23:16:53 pua kernel:
TEST IN=lo OUT=MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00
SRC=127.0.0.1 DST=127.0.0.1LEN=1830 TOS=0x00 PREC=0x00 TTL=64
ID=17451 DF PROTO=TCP SPT=8000 DPT=33017 WINDOW=32767 RES=0x00 ACK PSH URGP=0
在tcp/ip数据包中只要出现test字符串,以上的信息就会产生。这有什么好处呢?太多了。正如 Filtering packets based on string matching这篇文章所建议的那样,该文章可以在linuxguru.net的sysctl内找到。它能够用来阻止那些讨厌的IIS蠕虫造成得 Unix web服务器记录文件记录大量的对cmd.exe的请求,这些蠕虫将不再干扰你,但是如果你的/var分区(通常是记录文件存放的分区)不够大,那么这一功能将有一定的帮助。只要静静地丢弃蠕虫对80端口的请求或者使用记录限制功能,对这些信息进行记录,丢弃这些包的操作如下:
iptables -I INPUT -j DROP -p tcp -s 0.0.0.0/0 -m string --string "cmd.exe"
每小时只记录一条这样的信息:
iptables -I INPUT -j LOG -p tcp -s 0.0.0.0/0 -m string --string "cmd.exe" -m limit
责编:豆豆技术应用