科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道用IPTables实现字符串模式匹配(4)

用IPTables实现字符串模式匹配(4)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

iptables防火墙引入了很多重要的改进,比如基于状态的防火墙,基于任何 TCP标记和MAC地址的包过滤,更灵活的配置和记录功能,强大而且简单的NAT功能和透明代理功能,通过速度限制实现DoS的阻止。

作者:51CTO.COM 2007年11月8日

关键字: Linux iptables 字符串 匹配

  • 评论
  • 分享微博
  • 分享邮件

  在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

  --limit 1/hour

  Bill Steams(Mason firewall building script的作者)提供了一个极好的建议----转换网络IDS Snort的规则成为iptables字符串模式匹配的规则。Snort的攻击信号数据库中包含了大约1200种信号and appears to be the biggest publicly available attack database suitable for instant deployment。在iptables上使用现成的信号是合理的一种方式。http: //www.strearns.org/snort2iptables 是Bill Stearm提供的试验性的软件。在这里你可以找到shell脚本以便将标准的Snort规则转换为iptables的规则。下面是一个将snort关于 Linux下针对mountd的攻击和bind的攻击转化为iptables的规则的例子:

  Snort规则:

  1、alert udp $EXTERNAL_NET any -> $HOME_NET 518

  (msg:"EXPLOIT ntalkd x86 linux overflow";

  content:"|0103 0000 000 0 0001 0002 02e8|";

  reference:bugtraq,210; classtype:attempted-admin; sid:313; rev:2;)

  2、alert tcp $EXTERNAL_NET any -> $HOME_NET 53

  (msg:"EXPLOIT named tsig infoleak";

  content: "|AB CD 09 80 00 00 00 01 00 00 00 00 00 00 01 00 01 20 20 20 20 02 61|";

  reference:cve,CAN-2000-0010; reference:bugtraq,2302; reference:arachnids,482;

  classtype:attempted-admin; sid:303; rev:3;)

  3、alert udp $EXTERNAL_NET any -> $HOME_NET 635

  (msg:"EXPLOIT x86 linux mountd overflow";

  content:"|5eb0 0289 06fe c889 4604 b006 8946|";

  reference:cve,CVE-1999-0002; classtype:attempted-admin; sid:315; rev:1;)

  转化的iptables规则:

  1、iptables -A SnortRules -p udp -s $EXTERNAL_NET -d $HOME_NET --dport 518 -m

  string --string " è" -j LOG --log-prefix "SID313 " # "EXPLOIT ntalkd x86

  linux overflow" bugtraq,210 classtype:

  attempted-admin sid:313

  2、iptables -A SnortRules -p tcp -s $EXTERNAL_NET -d $HOME_NET --dport 53 -m

  string --string "«Í .a" -j LOG --log-prefix "

  SID303 " # "EXPLOIT named tsig infoleak" cve,CAN-2000-0010 bugtraq,2302

  arachnids,482 classtype:attempted-admin sid:303

  3、iptables -A SnortRules -p udp -s $EXTERNAL_NET -d $HOME_NET --dport 635 -m

  string --string "^° ‰ þȉF ° ‰F" -j LOG --log-prefix " cve-CVE-1999-0002

  " # "EXPLOIT x86 linux mountd overflow" classtype:attempted-admin sid:315

  显而易见,上面的转化使用了针对漏洞所使用的缓冲区溢出字符串作为捕获攻击的方式,有些规则不便于转化主要是因为在桢的控制方面snort比iptables要强大一点。

  总之,iptables的字符串模式匹配功能能够被用来保护那些开放了易受攻击的而一般的包过滤又无法保护的网络服务(如WWW服务,mail服务, DNS服务,FTP服务等)的组织的网络(如果将它布置在组织的网关上)和单个的主机(使iptables成为主机的一部分),另外,iptables的字符串模式匹配功能还能够帮助实现强制安全策略,即通过关键字来阻止访问非法的内容。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章