Linux系统利用iptables对URL进行过滤

08 六月, 2017

iptables,一个运行在用户空间的应用软件,通过控制Linux内核netfilter模块,来管理网络数据包的流动与转送。

iptables在Linux系统中充当了防火墙功能,它强大灵活是控制网络访问的绝佳利器。

这次的需求是 “如何阻止访问某些网站”。

我们先来看看相关iptables的命令说明

string  
       This modules matches a given  string  by  using  some  pattern  matching
       strategy. It requires a linux kernel >= 2.6.14.
     --algo {bm|kmp}
              Select  the  pattern  matching strategy. (bm = Boyer-Moore, kmp =
              Knuth-Pratt-Morris)
 [!] --string pattern
              Matches the given pattern.

iptables内置了字符匹配模块,这是一个扩展模块,我们在使用之前需要加参数 -m 启用。下面用命令说明如何过滤URL中带有sex关键字的网站。

iptables -A OUTPUT -m string --string "sex" --algo bm -j DROP

命令解析:

-A 此条规则追加到规则链末尾,此处是 OUTPUT规则链

-m 启用iptables扩展模块

string 字符匹配

--string 接匹配字符,此处为“sex”

--algo 选择匹配模式,bm算法效率较高

-j 动作,DROP丢弃