java - context - tomcat manager
Tomcat7 muestra la cantidad de usuarios inactivos en el administrador de tomcat (2)
Hola, tengo un servidor amazon ec2 y estoy usando este servidor para mis aplicaciones Java, pero en los últimos días me enfrentaba a un problema muy inusual y me preocupaba que alguien pudiera jugar con mi servidor.
Cuando inicié sesión en mi administrador de tomcat usando ipaddress: 8080 / manager . Me pidió que ingresara el nombre de usuario y la contraseña que tengo en el archivo tomcat-user.xml. Cuando inicié sesión en el sistema, muestra solo una instancia activa después de unos minutos. Me muestra que hay más de un usuario que usa el administrador de tomcat, pero la pregunta es que no compartí mi credencial con nadie. Por favor revisa esta captura de pantalla.
Como puede ver, hay 94 id de sesión disponibles para mi administrador de tomcat, pero ninguno de ellos tiene nombre de usuario y tampoco están activos. Solo uno está activo desde el cual inicié sesión usando el nombre de usuario admin.
Cuando revisé los registros del servidor, también descubrí que algunos intentan autenticarse utilizando los siguientes roles root-tomcat-manager. Adjunto están los registros.
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"
Hice algo de google y actualicé el permiso de Tomcat de 755 a 750 y también actualicé su usuario, lo cual explicaba en muchas preguntas. Pero sigo enfrentando este problema.
No puedo resolver este problema y me preocupa que alguien siga jugando con mi sistema. Entonces, mi pregunta es cómo puedo evitar ataques como este desde mi servidor o esto es solo un error en tomcat (no estoy seguro de esto).
Cualquier ayuda será apreciada. Gracias por adelantado.
Como se mencionó en los comentarios, debe restringir el acceso a su administrador en 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>
Donde 192.168.1.107 es su IP. Es mejor usar solo 127.0.0.1 y crear el túnel ssh:
ssh -L 8080:localhost:8080 ipaddress_of_tomcat
A continuación, abra en su navegador http: // localhost: 8080 / manager
Como explica @aldebober
, podemos implementarlo, pero hay otra solución fácil para disminuir el número de ataques en su servidor.
Tomcat básicamente trabaja en el puerto 8080
por lo que es fácil adivinar por todos que si estamos alojando aplicaciones web java de lo que se ejecutará en el puerto 8080
. Pero podemos cambiar su número de puerto predeterminado para que la cantidad de ataques pueda reducirse, por lo que debemos hacer un pequeño cambio en el archivo Server.xml
en la carpeta tomcat/conf
.
Cambios
<Connector port="8585" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" />
Actualizar
Asegúrese de tener una contraseña segura para el administrador de administración de tomcat en lugar de la contraseña predeterminada.