Tomcat7 显示 tomcat 管理器中的非活动用户数

Tomcat7 shows number of inactive users in tomcat manager

您好,我有一台亚马逊 ec2 服务器,我正在将此服务器用于我的 Java 应用程序,但从最近几天开始,我遇到了一个非常不寻常的问题,我担心有人可能玩我的服务器。

当我使用 ipaddress:8080/manager 登录我的 tomcat 经理时。它要求我输入我在 tomcat-user.xml 文件中的用户名和密码。当我登录系统时,几分钟后它只显示一个活动实例,它告诉我有不止一个用户使用 tomcat 管理器,但问题是我没有与任何人共享我的凭据。请查看此屏幕截图。

如您所见,我的 tomcat 经理有 94 个可用会话 ID,但其中 none 有用户名,但它们也未激活。我使用用户名 admin 登录的只有一个处于活动状态。

当我检查服务器日志时,我还发现有些服务器正在尝试使用以下角色 root-tomcat-manager 进行身份验证。附件是日志。

Sep 28, 2015 4:54:02 PM org.apache.catalina.realm.LockOutRealm authenticate
WARNING: An attempt was made to authenticate the locked user "root"
Sep 28, 2015 4:55:07 PM org.apache.catalina.realm.LockOutRealm authenticate
WARNING: An attempt was made to authenticate the locked user "admin"
Sep 28, 2015 4:56:44 PM org.apache.catalina.realm.LockOutRealm authenticate
WARNING: An attempt was made to authenticate the locked user "manager"
Sep 29, 2015 7:08:16 AM org.apache.catalina.realm.LockOutRealm authenticate
WARNING: An attempt was made to authenticate the locked user "root"
Sep 29, 2015 7:08:16 AM org.apache.catalina.realm.LockOutRealm authenticate
WARNING: An attempt was made to authenticate the locked user "tomcat"
Sep 29, 2015 7:08:16 AM org.apache.catalina.realm.LockOutRealm authenticate
WARNING: An attempt was made to authenticate the locked user "manager"
Sep 29, 2015 7:08:16 AM org.apache.catalina.realm.LockOutRealm authenticate
WARNING: An attempt was made to authenticate the locked user "manager"
Sep 29, 2015 7:08:19 AM org.apache.catalina.realm.LockOutRealm authenticate
WARNING: An attempt was made to authenticate the locked user "tomcat"
Sep 29, 2015 7:08:19 AM org.apache.catalina.realm.LockOutRealm authenticate
WARNING: An attempt was made to authenticate the locked user "tomcat"

我做了一些 google 并将 tomcat 权限从 755 更新为 750,还更新了它的用户,这在很多问题中都有解释。但我一直面临这个问题。

我无法解决这个问题,我担心有人一直在玩我的系统。所以,我的问题是如何防止来自我的服务器的此类攻击,或者这只是 tomcat(对此不确定)中的一个错误。

如有任何帮助,我们将不胜感激。提前致谢。

正如评论中提到的,您应该在 manager.xml 中限制对您的经理的访问:

manager.xml
<Context path="/manager" debug="0" privileged="true">

      <Valve className="org.apache.catalina.valves.RemoteAddrValve"  allow="127.0.0.1,192.168.1.107"/>

</Context>

其中 192.168.1.107 是您的 IP。 最好只使用 127.0.0.1 并创建 ssh 隧道:

ssh -L 8080:localhost:8080 ipaddress_of_tomcat

然后在浏览器中打开http://localhost:8080/manager

正如 @aldebober 所解释的那样,我们可以实施它,但还有另一种简单的解决方案可以减少对您服务器的攻击次数。

Tomcat 基本上在端口 8080 上工作,所以很容易被任何人猜测,如果我们托管 java 网络应用程序,它将在端口 运行 上运行8080。但是我们可以更改它的默认端口号,这样可以减少攻击次数,所以我们需要在 tomcat/conf 文件夹中的 Server.xml 文件中做一个小改动.

变化

<Connector port="8585" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" />

更新

确保您的 tomcat 管理员密码不是默认密码。