zoukankan      html  css  js  c++  java
  • [WebServer] Tomcat 配置访问限制:访问白名单和访问黑名单

    前言:

      昨天配置了 Tomcat 服务器运行 PHP 的环境,但是通过观察 Tomcat 这几天的日志发现,有很多莫名其妙的 IP 访问主机下莫名其妙的地址,如:/80、/testproxy.php、/cache/global/img/gs.gif、CONNECT check.best-proxies.ru:80 等等,后来通过搜索得知是一些进行 端口扫描 和其他网络攻击的的IP地址,为了防止这些 IP 的扫描和攻击,进一步保证服务器的安全和稳定,可以通过配置 Tomcat 的 server.xml 限制一些 IP 的访问。

    1 123.249.27.191 - - [04/Apr/2016:00:18:33 +0800] "GET /80 HTTP/1.0" 404 576
    2 185.25.151.159 - - [04/Apr/2016:00:36:39 +0800] "GET /testproxy.php HTTP/1.1" 404 576
    3 172.82.166.210 - - [04/Apr/2016:02:01:49 +0800] "GET /cache/global/img/gs.gif HTTP/1.1" 404 576
    4 95.213.187.189 - - [04/Apr/2016:02:03:05 +0800] "CONNECT check.best-proxies.ru:80 HTTP/1.1" 400 -
    5 91.196.50.33 - - [04/Apr/2016:03:26:23 +0800] "GET /testproxy.php HTTP/1.1" 404 576
    6 123.249.27.193 - - [04/Apr/2016:03:51:22 +0800] "GET /80 HTTP/1.0" 404 576
    7 213.246.45.128 - - [04/Apr/2016:08:11:22 +0800] "GET /cache/global/img/gs.gif HTTP/1.1" 404 576
    查看日志

    配置:

      找到 Tomcat 服务器根目录下的 conf/server.xml,在 <Host> 节点内添加一个属性 className 的值为 "org.apache.catalina.valves.RemoteAddrValve" 的 <Valve> 节点:

    1 <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="" 
    2 deny="123.249.27.19[1-3]|115.239.228.1[4-6]|169.54.233.1(1[6-9]|2[0-6])|62.138.2.(209|12(2|3)|21(3|4))|123.151.(149.222|42.61)|61.147.(121.73|103.119|247.85)|115.239.228.202|112.74.206.117" 
    3 denyStatus="403" />

      其中 allow 属性可以配置访问白名单,deny 属性可以配置访问黑名单,都支持正则表达式。上面的代码中 deny 属性的值,是我的服务器日志中一些进行端口扫描的IP地址的正则表达式,写的很长但很简单。 在此附上一些进行端口扫描的 IP 地址的列表:http://antivirus.neu.edu.cn/scan/list.php

      denyStatus 属性值为403表示:当 deny 中的 IP 访问时,返回 403 的状态码,即没有访问权限。

      修改完成保存server.xml文件后重启服务器,当黑名单中的 IP 再次访问时即可看到效果,返回的状态码为 403:

        123.249.27.192 - - [04/Apr/2016:21:29:53 +0800] "GET /80 HTTP/1.0" 403 - 

      

      到这里配置就结束了,不过个人觉得应该还有另外一种方式,不过并没有尝试,那就是通过配置 Tomcat 服务器仅能通过域名访问,不允许通过 IP 访问,也不失为一种避免端口扫描的方法,不知道说的对不对。附上禁用 IP 访问的参考资料:

      1.http://www.iyunv.com/thread-42853-1-1.html

      2.http://blog.csdn.net/tangdc88/article/details/17283617

    2016年4月17日 更新扫描和攻击IP:

    123.249.27.19[1-3]|115.239.228.1[4-6]|169.54.233.1(1[6-9]|2[0-6])|62.138.2.(209|12(2|3)|21(3|4))|123.151.(149.222|42.61)|61.147.(121.73|103.119|247.85)|115.239.228.202|115.230.124.164|112.74.206.117|169.229.3.91|61.154.154.97|213.246.45.128|95.213.187.18[8-9]|185.25.151.159|185.106.92.47|91.196.50.33|172.82.166.210|179.99.200.39 
    查看IP

    2016年4月19日 更新扫描和攻击IP:

    123.249.27.19[1-3]|115.239.228.1[4-6]|169.54.233.1(1[6-9]|2[0-6])|62.138.2.(209|12(2|3)|21(3|4))|123.151.(149.222|42.61)|61.147.(121.73|103.119|247.85)|115.239.228.202|115.230.124.164|112.74.206.117|169.229.3.91|61.154.154.97|213.246.45.128|95.213.187.1(8[6-9]|90)|185.25.151.159|185.106.92.47|91.196.50.33|172.82.166.210|179.99.200.39|5.178.86.7[4-5]|63.115.64.47|185.49.14.190|80.82.78.38
    查看IP

     2016年4月23日 更新扫描和攻击IP:

    123.249.27.19[1-3]|115.239.228.1[4-6]|169.54.233.1(1[6-9]|2[0-6])|62.138.2.(209|12(2|3)|21(3|4))|123.151.(149.222|42.61)|61.147.(121.73|103.119|247.85)|115.239.228.202|115.230.124.164|112.74.206.117|169.229.3.91|61.154.154.97|213.246.45.128|95.213.187.1(8[6-9]|90)|185.25.(151.159|148.240)|185.106.92.47|91.196.50.33|172.82.166.210|179.99.200.39|5.178.86.7[4-6]|63.115.64.47|185.49.14.190|80.82.78.38|118.161.65.165|185.103.252.98|104.128.144.131|106.185.47.161|111.248.(112.44|56.178)|114.43.3.196|62.67.9.30|37.233.101.128|112.115.49.201

    Done.


    作者:星柒天iTanken出处:http://www.cnblogs.com/iTanken/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    powerdesigner设置主键为自增字段,设置非主键为唯一键并作为表的外键
    关于window.event.srcElement 和 window.event.target(触发事件的对象)
    JS遍历Table的所有单元格内容
    创Wcf案例数据服务
    jstack和线程dump分析
    Chromium Graphics: GPUclient的原理和实现分析之间的同步机制-Part II
    oracle11g导出空表
    java序列化是什么和反序列化和hadoop序列化
    【leetcode列】3Sum
    【POJ1741】Tree 树分而治之 模板略?
  • 原文地址:https://www.cnblogs.com/iTanken/p/iTanken-TomcatAccessRestrictions.html
Copyright © 2011-2022 走看看