Está en la página 1de 11

ESCUELA DE INGENIERA DE SISTEMAS E INFORMTICA EISI

UNIVERSIDAD INDUSTRIAL DE SANTANDER UIS


Profesor: Manuel Guillermo Flrez Becerra
ESCUELA DE INGENIERA DE SISTEMAS E INFORMTICA EISI
UNIVERSIDAD INDUSTRIAL DE SANTANDER UIS
Profesor: Manuel Guillermo Flrez Becerra

INTRODUCCIN

Un servidor web es un programa diseado para atender y responder de forma coherente las
diferentes peticiones que realizan los navegadores web. Por lo tanto, un servidor web
proporciona los recursos solicitados a travs de un protocolo de transmisin como HTTP
(Hypertext Transfer Protocol) o su versin cifrada y autenticada HTTPS (Hypertext Transfer
Protocol Secure). Del mismo modo, se puede decir que un servidor web se ejecuta en un
ordenador que se encuentra conectado a internet y garantiza una comunicacin bidireccional
o unidireccional con el cliente.

Bsicamente, un servidor web o HTTP sirve contenido esttico a un navegador, carga un


archivo y lo sirve a travs de la red al navegador de un usuario. Asimismo, un servidor web
almacena y transfiere datos de hipertexto, principalmente documentos HTML (HyperText
Markup Language, documentos a modo de archivos con un formato especial para la
visualizacin de pginas web en los navegadores de los clientes), imgenes, videos, texto,
widgets, banners, presentaciones, y en general todo tipo de informacin.

Por otra parte, el servidor HTTP ms usado es Apache, puesto que sus caractersticas sealan
que es de cdigo abierto, estable, robusto, fcilmente configurable, sistema multiplataforma,
gratuito, soporta ms de un milln de conexiones, entre otras. Adems, destaca por su
seguridad, rendimiento y ayuda o soporte de fcil acceso.

Apache Tomcat es un contenedor web que permite servir aplicaciones web con Java servlet y
JSP (JavaServer Pages). Tomcat fue desarrollado bajo el proyecto Jakarta perteneciente Al
Apache Software Foundation. Dado que Tomcat fue escrito en Java, puede ejecutarse sobre
cualquier sistema operativo que disponga de la mquina virtual de Java. Adems, Tomcat se
utiliza junto con el servidor HTTP Apache con el fin de aprovechar cada una de sus
funcionalidades en conjunto. De esta forma, el servidor web Apache recibir todas las
peticiones del usuario resolviendo las de contenido esttico y delegando las de contenido
dinmico al servidor web Tomcat.

Finalmente, un certificado SSL (Secure Socket Layer) sirve para brindar seguridad al usuario a
la hora de navegar en una determinada pgina web, debido a que, es una forma de mostrar
que el sitio web es autntico, real y confiable para ingresar datos personales. SSL es un
protocolo de seguridad que hace que los datos viajen de manera ntegra y segura, es decir
que, la transmisin de los datos entre el servidor y el cliente se hace totalmente cifrada (en
que los datos viajen cifrados se refiere a que se emplean algoritmos matemticos y un sistema
de claves que slo son identificados entre el servidor y el cliente). Los servidores que corren
SSL crean una va con un cifrado nico para las sesiones privadas a travs que Internet, la
clave pblica del servidor est al alcance de cualquier persona. Por este motivo, se utilizan
una clave pblica y una clave privada: La clave pblica es para cifrar la informacin, la clave
privada para descifrarla.
ESCUELA DE INGENIERA DE SISTEMAS E INFORMTICA EISI
UNIVERSIDAD INDUSTRIAL DE SANTANDER UIS
Profesor: Manuel Guillermo Flrez Becerra

INSTALACIN DE SERVIDORES WEB APACHE Y TOMCAT DE FORMA SEGURA

1.1 OBJETIVOS

Realizar la instalacin del servidor web Apache y Tomcat de forma segura.


Interconectar los servidores web Apache y Tomcat.
Determinar los parmetros de configuracin para cada servidor web.
Efectuar pruebas de funcionamiento a los servidores web.
Verificar el desempeo adecuado de la instalacin y configuracin de los servidores web.
Formalizar la creacin de una clave pblica y privada por medio de certificados SSL (Secure
Sockets Layer).
Implementar una conexin segura entre los servidores web instalados.

1.2 AUTOEVALUACIN

Apache puede soportar SSL?


Para qu sirve el comando a2enmod ssl? Con que comando se aplica la configuracin
por defecto al mdulo?
Qu mdulos de Apache 2 son tiles en la defensa de ataques de fuerza bruta contra el
servidor?
Describa las caractersticas principales del Servidor Apache.
Qu son los host virtuales? Cules son las ventajas de los host virtuales? Cmo se
configura Apache para los VH?
Qu es el archivo .htaccess y para qu sirve?
El protocolo HTTP trabaja sobre el puerto 80, pero Apache2 dispone de la opcin de
utilizar las libreras SSL para aumentar la seguridad obteniendo el protocolo HTTPS, con
cul puerto trabaja SSl?
HTTP es un protocolo sin estado, Qu significa esto?
El directorio en el que se alojarn los archivos de configuracin correspondientes a los
distintos dominios virtuales activos es?
Qu es HTTPD?
ESCUELA DE INGENIERA DE SISTEMAS E INFORMTICA EISI
UNIVERSIDAD INDUSTRIAL DE SANTANDER UIS
Profesor: Manuel Guillermo Flrez Becerra

1.3 PRCTICA

INSTALACIN DE APACHE2

Antes de instalar el paquete de apache, actualice la lista de paquetes como root con el
siguiente comando:
aptitude update
Instale los paquetes de apache de la siguiente forma:
aptitude install apache2
Verifique si la instalacin de apache se realiz correctamente. Para ello, encuentre la
direccin IP loopback (localhost) empleando el siguiente comando:
ifconfig eth0 | grep inet
Posteriormente, ubique la direccin IP obtenida en la barra del navegador. Si la instalacin
se realiz correctamente aparecer una pgina predeterminada que comprueba la
instalacin de Apache2.
Despus de instalar apropiadamente Apache2, reinicie la mquina virtual:
shutdown -r now

CREACIN DE LOS CERTIFICADOS SSL

Habilite el mdulo ssl:


a) cd /etc/apache2/ // se ubica en el directorio apache2.
b) a2enmod ssl //habilita el mdulo ssl.
Cargue la configuracin por defecto del mdulo ssl:
a2ensite default-ssl
Reinicie el servidor Apache2 con el comando:
/etc/init.d/apache2 restart
Para crear un certificado:
a) Cree una llave privada
openssl genrsa -des3 -out server.key 2048// crea una llave de 2048 bits.
Elija una llave para la clave y confirme la clave ingresada.
Enter pass phrase for server.key:
Verifying Enter pass phrase for server.key:
b) Cree un CSR (Certificate Signing Request):
Ingrese el siguiente comando:
openssl req -new -key server.key -out server.csr
Despus de ejecutar este comando digite la clave elegida anteriormente y diligencie
los siguientes datos:
ESCUELA DE INGENIERA DE SISTEMAS E INFORMTICA EISI
UNIVERSIDAD INDUSTRIAL DE SANTANDER UIS
Profesor: Manuel Guillermo Flrez Becerra

Country Name (2 letter code) [AU]: CO


State or Province Name (full name) [Some-State]:
Santander
Provincia Locality Name (eg, city) []: Bucaramanga
Organization Name (eg, company) [Internet Widgits Pty
Ltd]: UIS
Organizational Unit Name (eg, section) []:
Operacionales
Common Name (e.g. server FQDN or YOUR name []:
www.labope.com
Email Address []: laboratorio@email.com
c) Genere el certificado SSL por 365 das:
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Digite la clave de la llave que se solicita.
d) Configure el certificado SSL en apache:
Copie los archivos server.key y server.crt a los directorios correspondientes:
cp server.key /etc/ssl/private/
cp server.crt /etc/ssl/certs
Edite el archivo de configuracin predeterminado de apache con el editor nano:
nano /etc/apache2/sites-enabled/default-ssl.conf
Busque las siguientes lneas:

SSLCertificateFile
SSLCertificateKeyFile

Modifique las anteriores lneas por:

SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key

Busque y omita el comentario (#) de la lnea que contiene la siguiente informacin:


#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
Una vez configurado el certificado en el archivo virtual host utilice el siguiente
comando:
a2ensite default-ssl
Para que la configuracin tenga efecto, reinicie el servidor Apache2 con el comando:
/etc/init.d/apache2 restart
Digite la clave de la llave que se solicita.
ESCUELA DE INGENIERA DE SISTEMAS E INFORMTICA EISI
UNIVERSIDAD INDUSTRIAL DE SANTANDER UIS
Profesor: Manuel Guillermo Flrez Becerra

Una vez todo est configurado, verifique la URL desde el navegador. Para ello, escriba
https://localhost.
INSTALACIN DE TOMCAT7

Instale Tomcat7 con el siguiente comando:


aptitude install tomcat7 //instala los paquetes de tomcat
Ahora modifique la configuracin predeterminada de tomcat7:
a) Abra el archivo de configuracin de tomcat con el editor nano
nano /etc/default/tomcat7
b) Luego busque la lnea JAVA_OPTS y reemplcela por lo siguiente:
JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom -
Djava.awt.headless=true -Xmx512m -XX:MaxPermSize=256m -
XX:+UseConcMarkSweepGC" //esta modificacin permite Tomcat no use
tanta memoria.

Reinicie el servicio con el comando:


service tomcat7 restart
Verifique si la instalacin de Tomcat7 se realiz correctamente. Para ello, ingrese en la
barra del navegacin localhost:8080

INTERCONEXIN ENTRE APACHE2 Y TOMCAT7

La conexin de apache con tomcat se hace mediante un mdulo llamado mod_jk. Con
esta conexin lo que se busca es permitir ver las aplicaciones que estn funcionando en
el servidor tomcat desde internet, debido a que, en algunas ocasiones no se puede
mostrar la informacin directamente desde el puerto 8080.
Luego de tener instalados y en funcionamiento los servidores tomcat y apache, el
siguiente paso es conectarlos. Para ello, se debe instalar y configurar la librera mod_jk,
con el comando:
aptitude install libapache2-mod-jk
Edite el archivo server.xml
a) Abra el archivo server.xml con el editor nano
nano /etc/tomcat7/server.xml
b) Busque y omita el comentario (<!-- -->) de la lnea que contiene la siguiente informacin:

<!--
<Connector port="8009" protocol="AJP/1.3"
redirectPort="8443" />
-->

Cree el fichero workers.properties para apache:


a) Cree y edite el archivo con nano
ESCUELA DE INGENIERA DE SISTEMAS E INFORMTICA EISI
UNIVERSIDAD INDUSTRIAL DE SANTANDER UIS
Profesor: Manuel Guillermo Flrez Becerra

nano /etc/apache2/workers.properties
b) En el archivo workers.properties escriba lo siguiente:
#Define 1 real worker using ajp13
worker.list=worker1
# Set properties for worker (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009

Edite el fichero de configuracin JK para indicarle la ubicacin del nuevo fichero


a) Abra el archivo jk.conf con el editor nano
nano /etc/apache2/mods-available/jk.conf
b) Busque la propiedad JkWorkersFile y modifquela por el siguiente valor:
/etc/apache2/workers.properties
Configure la URL de apache que mostrar la aplicacin tomcat en el servidor web apache:
a) Abra el archivo 000-default.conf con el editor nano
nano /etc/apache2/sites-enabled/000-default.conf
b) Preservando la configuracin del Virtual Host agregue la lnea JkMount /examples*
worker1
<VirtualHost *:80>

JkMount /examples* worker1

</VirtualHost *:80>

c) Ahora edite el otro archivo de configuracin default-ssl.conf con el editor nano


nano /etc/apache2/sites-enabled/default-ssl.conf
d) Preservando la configuracin del Virtual Host agregue la lnea JkMount /examples*
worker1
<VirtualHost_default_:443>

JkMount /examples* worker1

</VirtualHost>

Reinicie los servidores tomcat y apache con los siguientes comandos:


/etc/init.d/tomcat7 restart
/etc/init.d/apache2 restart
ESCUELA DE INGENIERA DE SISTEMAS E INFORMTICA EISI
UNIVERSIDAD INDUSTRIAL DE SANTANDER UIS
Profesor: Manuel Guillermo Flrez Becerra

COMPROBACIN DE LA CONEXIN ENTRE APACHE Y TOMCAT

Instale algunos ejemplos de tomcat con el siguiente comando:


aptitude install tomcat7-docs tomcat7-admin tomcat7-examples //instala los paquetes
de unos ejemplos, para hacer la prueba de la conexin de los servidores tomcat y apache
Verifique si puede acceder a tomcat a travs de apache
a) Desde tomcat
localhot:8080/examples/servlets/
b) Desde apache con protocolo de seguridad HTTPS
https://localhost/examples/servlets/

1.4 EJERCICIOS

Cree un archivo html en el virtual host.


Configure dominios en el virtual host.
Limite el nmero de procesos de apache.
Habilite el archivo .htaccess.
Obligue a que todas las URL sean seguras y empiecen con https.
Redirija todo un sitio web.
Impida cualquier acceso a un sitio web.
Habilite la cach del navegador.
Cambie el puerto por defecto de Tomcat7.
Configure las interfaces web de Tomcat.
Deshabilite los mdulos innecesarios.
Configure apache para que no muestre la versin.
Cree una carpeta secreta en un Servidor Web.
Configure un mensaje de error.
Controle la visibilidad de los archivos de una web.
Pare y arranque el servidor web apache.
Disminuya el valor de espera a 65 segundos.
Proteja apache de ataques Dos y DDos.
Instale ModSecurity y realice cambios de seguridad.
Configure el usuario y contrasea para el administrador de Tomcat.
ESCUELA DE INGENIERA DE SISTEMAS E INFORMTICA EISI
UNIVERSIDAD INDUSTRIAL DE SANTANDER UIS
Profesor: Manuel Guillermo Flrez Becerra

ANEXO 1

How To Install Apache Tomcat 7 on Ubuntu 14.04 via Apt-Get:


https://www.digitalocean.com/community/tutorials/how-to-install-apache-tomcat-7-
on-ubuntu-14-04-via-apt-get
Enlazar Tomcat7 y Apache con mod_jk en Ubuntu 13.10:
http://www.jabenitez.com/2014/02/24/enlazar-tomcat-7-y-apache-con-mod_jk-en-
ubuntu-13-10/
Activar SSL en Apache2 (Ubuntu 10.04):
https://betatwits.wordpress.com/2010/07/21/activar-ssl-en-apache2-ubuntu-10-04/
How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu:
https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-
php-lamp-stack-on-ubuntu
Tomcat SSL Configuration: https://tomcat.apache.org/tomcat-3.3-doc/tomcat-ssl-
howto.html
Cmo configurar Virtual Host de Apache en Ubuntu 14.04 LTS?:
https://www.digitalocean.com/community/tutorials/como-configurar-virtual-host-de-
apache-en-ubuntu-14-04-lts-es
ESCUELA DE INGENIERA DE SISTEMAS E INFORMTICA EISI
UNIVERSIDAD INDUSTRIAL DE SANTANDER UIS
Profesor: Manuel Guillermo Flrez Becerra

SOLUCIN AUTOEVALUACIN

Apache puede soportar SSL? Los Secure Socket Layer, normalmente llamados SSL, son un
mtodo para pasar informaciones reservadas a otras mquinas utilizando distintos cdigos
de ocultamiento. Aunque en el paquete principal de Apache no est presente un soporte
SSL (sobre todo por motivos de "exportacin" de cdigos de ocultamiento, sobre los que
nos extenderemos), que no podra convertir Apache en un software libre, puesto que ya lo
es.
Para qu sirve el comando a2enmod ssl? Con que comando se aplica la configuracin por
defecto al mdulo?
Sirve para activar el modulo ssl de Apache 2, con el comando a2ensite default-ssl
administrador de Tomcat.
Qu mdulos de Apache 2 son tiles en la defensa de ataques de fuerza bruta contra el
servidor?
Mod_Security y Mod_Evasive
Describa las caractersticas principales del Servidor Apache
Apache es un servidor web flexible, rpido y eficiente, continuamente actualizado y
adaptado a los nuevos protocolos HTTP. Sus principales caractersticas son:
a) Multiplataforma.
b) Modular: Puede ser adaptado a diferentes entornos y necesidades, con los diferentes
mdulos de apoyo que proporciona, y con la API de programacin de mdulos, para el
desarrollo de mdulos especficos.
c) Extensible: gracias a ser modular se han desarrollado diversas extensiones entre las que
destaca PHP, un lenguaje de programacin del lado del servidor.
Qu son los host virtuales? El concepto de virtual host se refiere a que en un mismo
servidor web se pueden hospedar mltiples proyectos cada uno con su propio dominio
aunque todos pertenezcan a la misma direccin IP pblica.
Cules son las ventajas de los host virtuales? Cuando el servidor responde tanto a las
peticiones dirigidas al host como a las dirigidas a los VH, lo ms interesante es la
posibilidad de diferenciar fsicamente el host principal de los secundarios (precisamente,
los VH). Con stos, en efecto, podemos no slo ver diferentes documentos segn se elija
el host o el VH, sino definir archivos de logs personalizados por los VH, as como un
administrador del servidor y similares
Cmo se configura Apache para los VH? Se configura entre los tags
<VirtualHost></VirtualHost>
Qu es el archivo .htaccess y para qu sirve?
El archivo .htaccess es un simple archivo de texto que Apache usa para tener algunas
reglas sobre los directorios y los archivos, ste contiene determinadas directivas que
obligan al servidor de web a actuar segn los usuarios, as como a definir otras reglas para
los documentos, adems este sirve para proteger secciones visibles, es decir, que tenga
privilegios y limitaciones para algunos usuarios.
ESCUELA DE INGENIERA DE SISTEMAS E INFORMTICA EISI
UNIVERSIDAD INDUSTRIAL DE SANTANDER UIS
Profesor: Manuel Guillermo Flrez Becerra

El protocolo HTTP trabaja sobre el puerto 80, pero Apache2 dispone de la opcin de utilizar
las libreras SSL para aumentar la seguridad obteniendo el protocolo HTTPS, Con cul puerto
trabaja SSl?
SSL trabaja con el puerto 443
HTTP es un protocolo sin estado, Qu significa esto?
Que HTTP sea un protocolo sin estado significa que no guarda informacin sobre
conexiones anteriores
El directorio en el que se alojarn los archivos de configuracin correspondientes a los
distintos dominios virtuales activos es?
Los archivos de configuracin correspondientes a los dominios virtuales se encuentran en
el directorio sites-enabled.
Qu es HTTPD? (Apache Hypertext Transfer Protocol Server), es un programa que corre
de fondo en un servidor web y espera peticiones de entrada para responderles.