【问题标题】:AWS EC2 Tomcat Java Webapp - How can I manage bot http sessionsAWS EC2 Tomcat Java Webapp - 我如何管理机器人 http 会话
【发布时间】:2017-07-13 14:11:27
【问题描述】:

我在 AWS EC2 Ubuntu 实例中部署了一个 Tomcat 8 Java webapp。

似乎有很多机器人试图访问我的应用程序,因为在我的 Javamelody 监控中,我可以看到 Spring Security 缓存的单请求机器人会话,例如:

DefaultSavedRequest[http://52.27.73.101/phpmy-admin/]
DefaultSavedRequest[http://52.27.73.101/wp-login.php]
DefaultSavedRequest[http://52.27.73.101/admin/phpmyadmin/]

有没有办法阻止该机器人的请求?我不知道,也许是一个没有将它们保存在缓存中的 spring 安全配置,或者一个执行类似操作的 tomcat 配置?

其中很多甚至没有 IP、国家或用户代理。

除了安全警告,我的 Javamelody Http Sessions Info 不可信,因为其中有很多。

EC2 实例位于 AWS 负载均衡器后面,所以也许也可以在这个线程中提供帮助。

【问题讨论】:

  • 假设您的应用程序是面向互联网的应用程序,您无法真正避免机器人 ping/扫描您的服务器(除非您真的采用黑名单 IP 的方法,我认为这需要大量工作) .忽略它们,但请确保 1) 通过创建可以部署/取消部署应用程序的用户来保护 tomcat。 2) 关闭所有打开的非必需端口。
  • 你的应用的目标是什么?也许您可以使用白名单方法,甚至配置 PKI 以仅允许经过身份验证的客户端的流量。正如@kosa 所说,如果您的应用对所有互联网流量开放,那么您能做的最好的事情就是强化您的系统。
  • 是的,是一个面向互联网的应用程序。对拥有帐户的公众开放。但他们不能创建帐户,只有管理员可以。但是,尽管我的管理员密码非常强大,但我真正想要的是清除它们,因为我的统计数据在该会话中并不真实。

标签: java session tomcat amazon-ec2


【解决方案1】:

如果您拥有 EC2 实例,则您可以完全控制自己的 SO。您可以使用任何工具(例如 iptables)来控制网络流量。也许是这样的:

iptables -I INPUT -s <bot IP source> -j DROP

【讨论】:

  • 我对linux的使用非常业余。它会做什么你的提议?
  • iptables 充当数据包过滤器和防火墙。您可以设置规则以拒绝来自特定主机的 http 流量。 linode.com/docs/security/firewalls/…
  • 所以我在问题中添加了一些信息,因为有很多请求我没有 Ip、用户代理等。
猜你喜欢
  • 2011-04-03
  • 2011-08-14
  • 2018-12-27
  • 2014-08-24
  • 2023-03-25
  • 1970-01-01
  • 2017-05-21
  • 1970-01-01
  • 2019-05-11
相关资源
最近更新 更多