码迷,mamicode.com
首页 > Web开发 > 详细

iptables对请求的URL作IP访问控制

时间:2015-11-05 18:40:46      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:

服务器运行环境是Tomcat,现在要实现的目的是,只允许特定的IP访问某个目录,
一种方法是在tomcat配置文件server.conf中,使用RemoteAddrValve对虚拟主机做访问控制。
另外一种方法可以通过iptables规则。个人比较喜欢iptables
例如:禁止访问http://192.168.137.254:10000/managersns 这个路径,只允许192.168.137.101访问
  1. /sbin/iptables -A INPUT -i eth0 -p tcp --dport 10000 -s 192.168.137.101 -m string --string "/managersns" --algo bm -j ACCEPT /sbin/iptables -A INPUT -i eth0 -p tcp --dport 10000 -m string --string "/managersns" --algo bm -j DROP
  2. /sbin/iptables -A INPUT -i eth0 -p tcp --dport 10000 -s 192.168.137.101 -m string --string "/managersns" --algo bm -j ACCEPT
  3. /sbin/iptables -A INPUT -i eth0 -p tcp --dport 10000 -m string --string "/managersns" --algo bm -j DROP
以上规则是正对eth0网卡,可以跟踪自己需求修改。
参数说明:
-m string
使用string功能,string是iptables的一个module,也就是做字符串匹配的。
–string “xxxx”
定义字符串内容,可以是URL里任意字符,如果是需要block下载某些类型的文件或请求,这个有很大的发挥空间,可自由想象喔。
–algo bm
设置字符匹配的查询算法,一般默认使用bm算法效果就可以了,另外还可以设置kmp算法,那是一种更复杂的算法,详细内容可自行参见高等数学里的资料。(bm = Boyer-Moore, kmp = Knuth-Pratt-Morris)
-j DROP
这在公司网络禁用视频网站是非常有效的,在网关服务器上设置:
  1. iptables -A FORWARD -m string –-string “ku6.com” --algo bm -j DROP iptables -A FORWARD -m string –-string “tudou.com” –-algo bm -j DROP iptables -A FORWARD -m string –-string “ouou.com” –-algo bm -j DROP
  2. iptables -A FORWARD -m string –-string “ku6.com” --algo bm -j DROP
  3. iptables -A FORWARD -m string –-string “tudou.com” –-algo bm -j DROP
  4. iptables -A FORWARD -m string –-string “ouou.com” –-algo bm -j DROP
其中各项参数的意义如下:
-A FORWARD
增加FORWARD链的规则,以上规则是针对启用了路由功能(即:echo 1 > /proc/sys/net/ipv4/ip_forward)
如果是直接访问,可使用的INPUT或OUTPUT。
设置符合此条件的包的处理方式,DROP即是丢弃,也是reject的意思。
  1. iptables -A INPUT -m string --string "stringname" --algo bm -j DROP
 

iptables对请求的URL作IP访问控制

标签:

原文地址:http://www.cnblogs.com/sunbeidan/p/4940203.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!