服务器运行环境是tomcat,现在要实现的目的是,只允许特定的ip访问某个目录,
一种方法是在tomcat配置文件server.conf中,使用remoteaddrvalve对虚拟主机做访问控制。
另外一种方法可以通过iptables规则。个人比较喜欢iptables
例如:禁止访问 这个路径,只允许192.168.137.101访问
-
/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
-
/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
以上规则是正对eth0网卡,可以跟踪自己需求修改。
参数说明:
-m string
使用string功能,string是iptables的一个module,也就是做字符串匹配的。
–string “xxxx”
定义字符串内容,可以是url里任意字符,如果是需要block下载某些类型的文件或请求,这个有很大的发挥空间,可自由想象喔。
–algo bm
设置字符匹配的查询算法,一般默认使用bm算法效果就可以了,另外还可以设置kmp算法,那是一种更复杂的算法,详细内容可自行参见高等数学里的资料。(bm = boyer-moore, kmp = knuth-pratt-morris)
-j drop
这在公司网络禁用视频网站是非常有效的,在网关服务器上设置:
-
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
-
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
其中各项参数的意义如下:
-a forward
增加forward链的规则,以上规则是针对启用了路由功能(即:echo 1 > /proc/sys/net/ipv4/ip_forward)
如果是直接访问,可使用的input或output。
设置符合此条件的包的处理方式,drop即是丢弃,也是reject的意思。
-
iptables -a input -m string --string "stringname" --algo bm -j drop
阅读(16546) | 评论(0) | 转发(6) |