Você está na página 1de 9

ESCUELA POLITÉCNICA NACIONAL

FACULTAD DE INGENIERÍA DE SISTEMAS


INGENIERÍA DE SISTEMAS INFORMÁTICOS Y COMPUTACIÓN

Manual de Seguridades y Usuarios: Tomcat 7.x

Continuando con la aplicación creada en el manual de instalación y configuración del servidor


de Tomcat, el siguiente paso es realizar las configuraciones necesarias para que la aplicación
esté protegida de ataques potenciales.

Despliegue de la aplicación creada


Como primer paso deberemos desplegar la aplicación creada en nuestro servidor (de esta
manera ya no dependerá de eclipse para ser ejecutada).

1. Deberemos entrar a nuestro entorno de desarrollo eclipse y en la pestaña de servidores


debemos expandir la pestaña para mostrar nuestra aplicación:

2. Una vez que localicemos nuestra aplicación haremos clic derecho y seleccionaremos,
navegar a la localización de despliegue. Se nos mostrará la carpeta en donde está
localizado el proyecto para ser desplegado haciendo uso de eclipse

3. Deberemos copiar la carpeta de nuestra aplicación (Funcionalidad Bolsa De Empleo) y


la pegaremos en el directorio de webapps del servidor tomcat.

4. Una vez que hayamos realizado esto, podemos iniciar nuestro servidor tomcat haciendo
uso del archivo startup.bat, ubicado en el directorio bin del mismo.
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y COMPUTACIÓN
5. Una vez iniciado el servidor ingresaremos al siguiente link con la ayuda del navegador
Firefox para poder observar todas las aplicaciones que se encuentran corriendo en el
servidor:
http://localhost:8080/manager/text/list

Se mostrará algo similar a la siguiente pantalla

6. Podemos observar que la aplicación realizada se encuentra corriendo en el servidor y la


ruta de acceso de la misma, ingresaremos haciendo uso del siguiente link:
http://localhost:8080/Funcionalidad%20Bolsa%20De%20Empleo/

Se deberá mostrar la aplicación de forma igual a la mostrada en el manual anterior, de


esta manera sabremos que el despliegue fue exitoso.

Verificando configuraciones básicas del servidor.


Ocultar Nombre del Servidor
Una vez que tengamos la aplicación creada corriendo en el servidor, podremos verificar ciertas
configuraciones básicas de seguridad.

1. Con la aplicación corriendo haremos uso de las herramientas de desarrollador de Firefox


para verificar que el nombre del servidor.
a. Dar clic derecho en cualquier lugar de la pantalla del navegador y seleccionar la
opción “Inspeccionar elemento”
b. En la ventana que se despliega, dar clic en la pestaña red y seleccionar la opción
Todos.
c. Recargaremos la página de la aplicación.
d. Seleccionaremos la primera petición con estado “304” y daremos clic en la
pestaña “Encabezados”
e. Dentro de la opción “Encabezados de la respuesta” observaremos cierta
información útil de nuestro servidor (De momento nos centraremos en el
nombre).
f. Podemos verificar que el nombre por defecto de nuestro servidor es “Apache-
Coyote/1.1”. lo cual puede significar un riesgo a la seguridad de nuestro servidor
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y COMPUTACIÓN
ya que posibles atacantes pueden averiguar métodos de ataque dirigido para el
tipo de servidor utilizado

2. A continuación, podemos apagar el servidor para ocultar esta información.


3. Ingresaremos al archivo server.xml ubicado en el directorio /conf de nuestro servidor
con la ayuda de un editor de texto.
4. Dentro de la etiqueta “Connector port” añadiremos la anotación server = ”Servidor
Privado”, guardaremos el archivo y reiniciaremos el servidor.
a. Ejemplo de etiqueta “Connector port”:
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y COMPUTACIÓN
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
server ="Servidor Privado"
redirectPort="8443" />
5. Realizaremos nuevamente los pasos listados en el paso 1 con el fin de mostrar la
información del servidor y podremos comprobar que el nombre ha cambiado.

Iniciar el servidor con el administrador de seguridad


El administrador de seguridades de Tomcat es útil para evitar que applets no confiables corran
en el navegador. Para realizar esto solamente deberemos agregar la bandera -security al
momento de ejecutar el archivo startup.bat desde una ventana de comandos.
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y COMPUTACIÓN
Configuración de seguridades a las cookies del sitio
Cuando nuestra aplicación se encuentre corriendo es posible generar cookies de sesión que
pueden ser robados o manipulados por atacantes para hacer daño a los usuarios o al servidor.
Para evitar que esto suceda deberemos agregar la siguiente etiqueta en la sección sesión-config
en el archivo web.xml.
<cookie-config>
<http-only>true</http-only>
<secure>true</secure>
</cookie-config>

Ejemplo de archivo web.xml:

Reiniciaremos el servidor para hacer efectivos los cambios.

Eliminar aplicaciones innecesarias


Una buena práctica al momento de administrar un servidor Tomcat es eliminar las aplicaciones
que no serán utilizadas, ya que esto puede significar una brecha de seguridad importante.

Dentro del directorio webapps eliminaremos todos los directorios excepto el correspondiente a
la aplicación “Funcionalidad Bolsa de Empleo”, ROOT, host-manager, manager y docs.
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y COMPUTACIÓN
Restringiendo el acceso a la página regchek.jsp
Una vez que hemos realizado las configuraciones básicas al servidor y tenemos nuestra
aplicación desplegada y corriendo tendremos que considerar restringir el acceso a todas las
páginas dentro de la aplicación, ya que algunas pueden contener información restringida que
solo ciertos usuarios podrán acceder.

Para ello vamos a que el archivo “regchek.jsp” contiene información confidencial que sólo puede
ser accedido por los administradores de la página.

Configurando la base de datos de usuarios


Para tener un almacenamiento de los usuarios dentro de nuestro servidor, crearemos una base
de datos en mysql, la cual será nombrada “usuariosbolsadeempleo”, dentro de la cual
crearemos las tablas:

• role
o rolename
o username
• user
o username
o password

Una vez definida nuestra base de datos podemos ingresar los siguientes datos en las tablas
respectivas:

Como podemos observar hemos creado los usuarios proob y nombre con el rol de
administrador.

Configurando el servidor para leer los usuarios de una base de datos


Tomcat por defecto buscará los usuarios del sistema en el archivo tomcat-users.xml del
directorio /conf, lo cual puede significar un riesgo en la seguridad del servidor, ya que si alguien
consigue robar el archivo tendrá el acceso ilimitado a las funcionalidades de la página.

Dentro del archivo server.xml deberemos copiar el siguiente código para cambiar el
comportamiento por defecto de nuestro servidor:

<Realm className="org.apache.catalina.realm.JDBCRealm"
debug="99"
driverName="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/usuariosbolsadee
mpleo?useSSL=false&amp;serverTimezone=UTC"
connectionName="NOMBRE DE LA CONEXIÓN"
connectionPassword="CONTRASEÑA DEL SERVIDOR”
userTable="user" userNameCol="username"
userCredCol="password"
userRoleTable="role" roleNameCol="rolename" />
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y COMPUTACIÓN

Hay que considerar que se debe cambiar los campos connectionName y connectionPassword de
acuerdo con las configuraciones de nuestro servidor Mysql.
Una vez insertado el código tendremos un archivo similar al siguiente:

Con lo antes realizado nuestro servidor está listo para buscar usuarios dentro de la base de datos
antes creada y configurada.

Restringiendo el acceso al archivo regchek.jsp


De momento nuestro servidor ya se encuentra trabajando en conjunto con la base de datos para
realizar la búsqueda de usuarios; sin embargo, aún debemos restringir el acceso al archivo
regchek.jsp para que el acceso al mismo requiera de autenticación como administrador.

Para poder restringir el acceso seguiremos los siguientes pasos:

1. Ingresaremos al archivo web.xml dentro del directorio /conf de nuestro servidor.


2. Añadiremos el siguiente código al final del archivo, antes del cierre de la etiqueta web-
app

<login-config>
<auth-method>BASIC</auth-method>
</login-config>

<security-constraint>
<web-resource-collection>
<web-resource-name>Something</web-resource-name>
<url-pattern>/regchek.jsp</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>administrador</role-name>
</auth-constraint>
</security-constraint>
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y COMPUTACIÓN
a. Vamos a analizar cada parte del código insertado:
i. La etiqueta login-config nos permitirá establecer un tipo de
autenticación para las restricciones de nuestras aplicaciones, en este
caso se ha utilizado el método “BASIC” el cual despliega un cuadro de
diálogo en el navegador para realizar la autenticación.
ii. segurity-constraint nos permite agregar restricciones de seguridad para
funcionalidades del servidor
iii. web-resource-collection nos permite establecer una colección de
recursos de la aplicación con todas sus características, las cuales son:
1. web-resouce-name: el nombre del recurso
2. url-pattern: el formato del url del recurso
iv. auth-constraint: nos permite establecer que roles de usuarios tendrán
permiso para acceder al recurso

Una vez realizadas las configuraciones reiniciaremos el servidor para que tengan efecto.

Accediendo al recurso regchek.jsp


Una vez realizadas todas las configuraciones anteriores, trataremos de acceder al recurso
regchek.jsp para comprobar que se efectuaron de manera correcta.

1. Ingresaremos a la página de nuestra aplicación haciendo uso del siguiente enlace:


http://localhost:8080/FuncionalidadBolsaDeEmpleo/

Se desplegará la siguiente ventana ya antes conocida:

2. Daremos clic en el botón “Seleccionar Parroquia” o ingresaremos al siguiente enlace:


http://localhost:8080/FuncionalidadBolsaDeEmpleo/regchek.jsp

Se desplegará el siguiente cuadro de diálogo:

3. Ingresaremos las credenciales de cualquiera de los dos usuarios ingresados en la base


de datos previamente.
4. Comprobaremos que el acceso a la página regchek.jsp es correcto:
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y COMPUTACIÓN

Contenido
Manual de Seguridades y Usuarios: Tomcat 7.x ...........................................................................1
Despliegue de la aplicación creada ..........................................................................................1
Verificando configuraciones básicas del servidor. ....................................................................2
Ocultar Nombre del Servidor ...............................................................................................2
Iniciar el servidor con el administrador de seguridad...........................................................4
Configuración de seguridades a las cookies del sitio ............................................................5
Eliminar aplicaciones innecesarias .......................................................................................5
Restringiendo el acceso a la página regchek.jsp .......................................................................6
Configurando la base de datos de usuarios ..........................................................................6
Configurando el servidor para leer los usuarios de una base de datos ................................6
Restringiendo el acceso al archivo regchek.jsp ....................................................................7
Accediendo al recurso regchek.jsp .......................................................................................8