Está en la página 1de 21

Escuela Politécnica Nacional

Facultad de Ingeniería Eléctrica y Electrónica


Carrera de Ingeniería en Electrónica y Redes de Información
Laboratorio de Redes TCP/IP
http://detri.epn.edu.ec
Quito, Ecuador

INFORME No. 6

TEMA: Configuración de servidores web

NOMBRE: Luis Eduardo Criollo Cajamarca


NOMBRE: Pedro Esteban Proaño Orquera

GRUPO: GR F

FECHA: 15/06/2018

OBJETIVOS:

 Configurar un servidor web Apache


 Configurar un host virtual en Apache
 Habilitar autenticación básica en Apache
 Habilitar SSL en Apache
 Habilitar PHP en Apache
 Configurar un servidor web Nginx
 Configurar un host virtual en Nginx
 Habilitar un proxy reverso con Nginx que envíe tráfico HTTP a Apache

DIAGRAMA DE RED:
Escuela Politécnica Nacional
Facultad de Ingeniería Eléctrica y Electrónica
Carrera de Ingeniería en Electrónica y Redes de Información
Laboratorio de Redes TCP/IP
http://detri.epn.edu.ec
Quito, Ecuador

Modificaciones en la red:

1) Coloca a ambos servidores y al cliente en una misma red. Asegure que tenga acceso a los
tres equipos.

2) Es posible tener más de un DNS, desactiva uno de ellos. En el DNS activo incluye registros
CNAME para www.labredes.co, web1.labredes.co, web.labredes.co y web2.labredes.co. En
el equipo www se instalará Apache, el equipo web1 será un host virtual en Apache y en el
equipo web se instalará Nginx y el equipo web2 será un host virtual en Nginx.

Registros utilizados en DNS activo:


 www.emp6.co
 web1.emp6.co
 web.emp6.co
 web2.emp6.co
Escuela Politécnica Nacional
Facultad de Ingeniería Eléctrica y Electrónica
Carrera de Ingeniería en Electrónica y Redes de Información
Laboratorio de Redes TCP/IP
http://detri.epn.edu.ec
Quito, Ecuador

Instalación del servidor web Apache:

1) Instalar Apache:
$ sudo apt-get -y install apache2
Escuela Politécnica Nacional
Facultad de Ingeniería Eléctrica y Electrónica
Carrera de Ingeniería en Electrónica y Redes de Información
Laboratorio de Redes TCP/IP
http://detri.epn.edu.ec
Quito, Ecuador

Configurar Apache:

1) Modificar el archivo security.conf:


$ sudo vim /etc/apache2/conf-enabled/security.conf

ServerTokens Prod

2) Establecer el archivo por defecto que se entregue si no se especifica un recurso en


dir.conf:
$ sudo vim /etc/apache2/mods-enabled/dir.conf
Escuela Politécnica Nacional
Facultad de Ingeniería Eléctrica y Electrónica
Carrera de Ingeniería en Electrónica y Redes de Información
Laboratorio de Redes TCP/IP
http://detri.epn.edu.ec
Quito, Ecuador

Modificar la línea 2 con lo siguiente:


DirectoryIndex index.html index.htm

3) Establecer el nombre del servidor en apache2.conf:


$ sudo vim /etc/apache2/apache2.conf
Modificar la línea 70 con lo siguiente:
ServerName www.emp6.co

4) Establecer el correo del administrador en 000-default.conf:


$ sudo nano /etc/apache2/sites-enabled/000-default.conf
Modificar la línea 11 con lo siguiente:
ServerAdmin gestor@emp6.co

5) Reiniciar Apache:
$ sudo systemctl restart apache2

6) Desde el explorador web, accede a: http://www.labredes.co


Escuela Politécnica Nacional
Facultad de Ingeniería Eléctrica y Electrónica
Carrera de Ingeniería en Electrónica y Redes de Información
Laboratorio de Redes TCP/IP
http://detri.epn.edu.ec
Quito, Ecuador

Configuración de Apache para uso de PHP

1) Instalación de PHP:
$ sudo apt-get -y install php php-cgi libapache2-mod-php php-
common php-pear php-mbstring
Escuela Politécnica Nacional
Facultad de Ingeniería Eléctrica y Electrónica
Carrera de Ingeniería en Electrónica y Redes de Información
Laboratorio de Redes TCP/IP
http://detri.epn.edu.ec
Quito, Ecuador

2) Habilita PHP para que Apache pueda usarlo:


$ sudo a2enconf php7.0-cgi
To activate the new configuration, you need to run:
service apache2 reload

3) Modifica la configuración de PHP para cambiar la zona horaria


$ sudo nano vi /etc/php/7.0/apache2/php.ini
Descomenta la línea 912 y especifica la zona horaria
date.timezone = "America/Guayaquil"

4) Reinicia Apache
$ sudo systemctl restart apache2
5) Crea una página con contenido dinámico:
$ sudo nano /var/www/html/index.php
Escuela Politécnica Nacional
Facultad de Ingeniería Eléctrica y Electrónica
Carrera de Ingeniería en Electrónica y Redes de Información
Laboratorio de Redes TCP/IP
http://detri.epn.edu.ec
Quito, Ecuador

Agregar lo siguiente:
<html>
<body>
<div style="width: 100%; font-size: 40px; font-weight: bold;
text-align:center;">
<?php
print Date("Y/m/d");
?>
</div>
</body>
</html>

7) Desde el explorador web, accede http://www.labredes.co/index.php, si todo está bien se


debería ver una página web que muestre la fecha actual.
Escuela Politécnica Nacional
Facultad de Ingeniería Eléctrica y Electrónica
Carrera de Ingeniería en Electrónica y Redes de Información
Laboratorio de Redes TCP/IP
http://detri.epn.edu.ec
Quito, Ecuador

Autenticación básica en Apache:

1) Instala apache2-utils:
$ sudo apt-get -y install apache2-utils

2) Abre el archivo auth-basic.conf:


$ sudo vim /etc/apache2/sites-available/auth-basic.conf
3) Modifica auth-basic.conf con:
<Directory /var/www/html/protegido>
AuthType Basic
AuthName "Basic Authentication"
AuthUserFile /etc/apache2/.htpasswd
require valid-user
</Directory>

4) Agrega un usuario, este usuario tendrá acceso al recurso ubicado en la carpeta protegido:
$ sudo htpasswd -c /etc/apache2/.htpasswd usuario
New password: master20
Re-type new password: master20
Adding password for user usuario
Escuela Politécnica Nacional
Facultad de Ingeniería Eléctrica y Electrónica
Carrera de Ingeniería en Electrónica y Redes de Información
Laboratorio de Redes TCP/IP
http://detri.epn.edu.ec
Quito, Ecuador

5) Crea el directorio protegido


$ sudo mkdir /var/www/html/auth-basic

6) Habilita el módulo auth-basic:


$ sudo a2ensite auth-basic
Enabling site auth-basic.
To activate the new configuration, you need to run:
service apache2 reload

7) Reinicia Apache
$ sudo systemctl restart apache2

8) Crea un recurso en la carpeta protegido


$ sudo nano /var/www/html/protegido/index.html
9) Modifica el recurso index.html con:
<html>
<body>
<div style="width: 100%; font-size: 40px; font-weight: bold;
text-align: center;">
Acceso protegido!!!
</div>
</body>
</html>
Escuela Politécnica Nacional
Facultad de Ingeniería Eléctrica y Electrónica
Carrera de Ingeniería en Electrónica y Redes de Información
Laboratorio de Redes TCP/IP
http://detri.epn.edu.ec
Quito, Ecuador

8) Desde el explorador web, accede http://www.labredes.co/protegido, el explorador pedirá


que ingrese las credenciales de usuario, si todo está bien se debería ver una página web que
muestre el mensaje Acceso protegido!!!.

UserName: usuario
Pasword: master20

Creación de certificado autogenerado:

1) Ingresa al directorio de SSL ubicado en /etc/ssl/private:


$ sudo cd /etc/ssl/private
Escuela Politécnica Nacional
Facultad de Ingeniería Eléctrica y Electrónica
Carrera de Ingeniería en Electrónica y Redes de Información
Laboratorio de Redes TCP/IP
http://detri.epn.edu.ec
Quito, Ecuador

2) Genera la llave para el servidor:


$ sudo openssl genrsa -aes128 -out servidor.key 2048
Generating RSA private key, 2048 bit long modulus
.......+++
.............................................................
.........+++
e is 65537 (0x10001)
Enter pass phrase for servidor.key: # ingresa
master20
Verifying - Enter pass phrase for servidor.key: #
confirma

3) Eliminación del pass phrase:


$ sudo openssl rsa -in servidor.key -out servidor.key
Enter pass phrase for serivodr.key: # master20
writing RSA key

4) Generación del CSR:


$ sudo openssl req -new -days 3650 -key servidor.key -out
servidor.csr
You are about to be asked to enter information that will be
incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished
Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Escuela Politécnica Nacional
Facultad de Ingeniería Eléctrica y Electrónica
Carrera de Ingeniería en Electrónica y Redes de Información
Laboratorio de Redes TCP/IP
http://detri.epn.edu.ec
Quito, Ecuador

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


State or Province Name (full name) [Some-State]:Pichincha
Locality Name (eg, city) []:Quito
Organization Name (eg, company) [Internet Widgits Pty
Ltd]:Emp6.co
Organizational Unit Name (eg, section) []:Dep. TIC
Common Name (e.g. server FQDN or YOUR name) []:www.emp6.co
Email Address []:gestor@emp6.co
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

5) Obtención del certificado autofirmado


$ sudo openssl x509 -in servidor.csr -out servidor.crt -req -
signkey servidor.key -days 3650
Signature ok
subject=/C=EC/ST=Pichincha/L=Quito/O=LabRedes.co/OU=Dep.
TIC/CN=www.labredes.co/emailAddress=gestor@labredes.co
Getting Private key
Escuela Politécnica Nacional
Facultad de Ingeniería Eléctrica y Electrónica
Carrera de Ingeniería en Electrónica y Redes de Información
Laboratorio de Redes TCP/IP
http://detri.epn.edu.ec
Quito, Ecuador

6) Cambio en los permisos de los archivos generados, por seguridad:


$ sudo chmod 400 servidor.*

Configuración de un sitio seguro en Apache:

1) Modifica el sitio por defecto SSL de Apache:


$ sudo nano /etc/apache2/sites-available/default-ssl.conf
2) Realiza las siguientes modificaciones en default-ssl.conf:
# linea 3
ServerAdmin gestor@labredes.co
# linea 32 y 33
SSLCertificateFile /etc/ssl/private/servidor.crt
SSLCertificateKeyFile /etc/ssl/private/servidor.key

3) Habilita el sitio con soporte para SSL:


$ sudo a2ensite default-ssl
Enabling site default-ssl.
To activate the new configuration, you need to run:
service apache2 reload

4) Habilita el módulo para SSL:


$ sudo a2enmod ssl
Considering dependency setenvif for ssl:
Module setenvif already enabled
Escuela Politécnica Nacional
Facultad de Ingeniería Eléctrica y Electrónica
Carrera de Ingeniería en Electrónica y Redes de Información
Laboratorio de Redes TCP/IP
http://detri.epn.edu.ec
Quito, Ecuador

Considering dependency mime for ssl:


Module mime already enabled
Considering dependency socache_shmcb for ssl:
Enabling module socache_shmcb.
Enabling module ssl.
See /usr/share/doc/apache2/README.Debian.gz on how to
configure SSL and create self-signed certificates.
To activate the new configuration, you need to run:
service apache2 restart

5) Reinicia Apache:
$ sudo systemctl restart apache2

6) Desde el explorador web, accede https://www.labredes.co/, el explorador debería indicar


que la conexión no es confiable (Debido al certificado autofirmado), agregue la excepción y
debería ver la página web de Apache.
Escuela Politécnica Nacional
Facultad de Ingeniería Eléctrica y Electrónica
Carrera de Ingeniería en Electrónica y Redes de Información
Laboratorio de Redes TCP/IP
http://detri.epn.edu.ec
Quito, Ecuador

Configuración de hosts virtuales en Apache:

1) Configure los hosts virtuales en virtual.host.conf:


$ sudo vim /etc/apache2/sites-available/virtual.host.conf

2) Agregue la información en virtual.host.conf:


<VirtualHost *:80>
ServerName web1.labredes.co
ServerAdmin webmaster@labredes.co
DocumentRoot /var/www/html/virtual_host
ErrorLog /var/log/apache2/virtual.host.error.log
CustomLog /var/log/apache2/virtual.host.access.log
combined
LogLevel warn
</VirtualHost>

3) Habilita el sitio:
$ sudo a2ensite virtual.host
To activate the new configuration, you need to run:
service apache2 restart

4) Para activar la configuración es necesario reiniciar Apache:


$ sudo systemctl restart apache2

5) Creación de la carpeta y de un archivo HTML:


$ sudo mkdir /var/www/html/virtual_host
$ sudo nano /var/www/html/virtual_host/index.html
6) En el archivo HTML agregue lo siguiente:
<html>
<body>
Escuela Politécnica Nacional
Facultad de Ingeniería Eléctrica y Electrónica
Carrera de Ingeniería en Electrónica y Redes de Información
Laboratorio de Redes TCP/IP
http://detri.epn.edu.ec
Quito, Ecuador

<div style="width: 100%; font-size: 40px; font-weight: bold;


text-align: center;">
Pagina de Prueba del Host Virtual (web1) en Apache de
ambos_nombres_aqui
</div>
</body>
</html>

7) Desde el explorador web, accede http://web1.labredes.co/index.html, si todo está bien se


debería ver la página web con el contenido indicado en el paso 6.

Instalar el servidor web Nginx:

1) En el segundo servidor, instalar Nginx:


$ sudo apt-get -y install nginx

Configuración del servidor web Nginx:

1) Configure Nginx, para lo cual modifique el archivo default:


$ sudo nano /etc/nginx/sites-available/default
En la línea 30 establezca el nombre del equipo:
server_name www.labredes.co;
Escuela Politécnica Nacional
Facultad de Ingeniería Eléctrica y Electrónica
Carrera de Ingeniería en Electrónica y Redes de Información
Laboratorio de Redes TCP/IP
http://detri.epn.edu.ec
Quito, Ecuador

2) Inicie Nginx:
$ sudo systemctl start nginx
$ sudo systemctl enable nginx

3) Desde el explorador web, accede http://web.labredes.co, si todo está bien se debería ver la
página de bienvenida de Nginx.

Configuración de hosts virtuales en Nginx:

1) Configure los hosts virtuales en virtual.host.conf:


$ sudo nano /etc/nginx/sites-available/virtual.host.conf
2) Agrega lo siguiente en virtual.host.conf:
server {
listen 80;
Escuela Politécnica Nacional
Facultad de Ingeniería Eléctrica y Electrónica
Carrera de Ingeniería en Electrónica y Redes de Información
Laboratorio de Redes TCP/IP
http://detri.epn.edu.ec
Quito, Ecuador

server_name web2.labredes.co;

location / {
root /var/www/labredes.co;
index index.html index.htm;
}
}

3) Cree el directorio:
$ sudo mkdir /var/www/labredes.co
4) Cree el enlace:
$ sudo cd /etc/nginx/sites-enabled
$ sudo ln -s /etc/nginx/sites-available/virtual.host.conf ./

5) Reinicie nginx:
$ sudo systemctl restart nginx
6) Crea una página web para probar que todo funciona de forma adecuada:
$ sudo nano /var/www/labredes.co/index.html
7) Agrega lo siguiente en index.html:
<html>
<body>
<div style="width: 100%; font-size: 40px; font-weight: bold;
text-align: center;">
Host virtual (web2) en Nginx de sus_nombres_aqui
</div>
</body>
Escuela Politécnica Nacional
Facultad de Ingeniería Eléctrica y Electrónica
Carrera de Ingeniería en Electrónica y Redes de Información
Laboratorio de Redes TCP/IP
http://detri.epn.edu.ec
Quito, Ecuador

</html>

8) Desde el explorador web, accede http://web2.labredes.co/index.html, si todo está bien se


debería ver la página web con el contenido indicado en el paso 7.
Escuela Politécnica Nacional
Facultad de Ingeniería Eléctrica y Electrónica
Carrera de Ingeniería en Electrónica y Redes de Información
Laboratorio de Redes TCP/IP
http://detri.epn.edu.ec
Quito, Ecuador

Conclusiones:

Luis criollo:

 Debido a fallas en la configuración del DNS se ha tenido varios errores en el


funcionamiento del servidor web Nginx y para los pasos finales de apache2, se tratará
de resolver para practicas futuras.
 Los servidores web apache y son excelentes opciones para desarrollar un entorno web
con características altamente configurables como la autenticación y negociado de
contenido.

Pedro Proaño:

 Para obtener las diferentes utilidades de apache en necesario instalar varias utilidades
las cuales deben ser configuradas pudiendo brindar una utilidad muy importante como
los es la autenticación.
 Se puede decir que apache y Nginx son ampliamente utilizados debido a que son de
código abierto.

Recomendaciones

 Realizar capturas de estado ya que si se configura mal un archivo no es difícil encontrar


el error, especialmente si es un error de sintaxis.

Bibliografía

[1] «Ubuntu,» Julio 2017. [En línea]. Available:


https://help.ubuntu.com/lts/serverguide/httpd.html.

También podría gustarte