Servidor Web Apache en CentOS 7

Servidor Web Apache en CentOS 7

La instalación y configuración de un servidor web en CentOS 7, a través de Apache en su versión 2.4.6.

¿Qué es un servidor web? 

El servidor web o servidor HTTP (Protocolo de transferencia de hipertexto o Hypertext Transfer Protocol, en ingles), es la máquina encargada de almacenar y poner a disposición de los clientes, páginas webarchivos y/o aplicaciones

¿Dónde usamos servidores web?

Hacemos uso de HTTP prácticamente todos los días. Cuando navegamos a Google, Facebook, WordPress… estos sitios tan reconocidos, no dejan de ser páginas web que ofrecen aplicaciones y que necesitas de un servidor web para funcionar.

¿HTTP, y eso es…?

El protocolo HTTP es un sencillo protocolo de comunicación, perteneciente a la capa de aplicación del Modelo OSI. Permite el intercambio de información entre cliente web (normalmente, un navegador web con Chrome o Firefox) y el servidor web.

HTTP opera bajo el puerto 80 TCP y es un protocolo que no garantiza la confidencialidad y seguridad de los datos trasmitidos durante la conexión.

¿Cómo solucionamos este problema? → HTTPS

El protocolo HTTPS trabaja en el puerto 443 TCP y garantiza la seguridad en las conexiones a los servidores web.

Este protocolo utiliza el cifrado basado en SSL/TLS para encriptar estas conexiones, permitiendo proteger datos sensibles que se puedan trasmitir como, usuarios y/o contraseñas.

¿Entonces Apache qué es?

Apache es el software para servidor web mas utilizado a nivel mundial. Este programa dirige el funcionamiento del servidor cumpliendo las misiones de:

  • Gestionar las peticiones al servidor
  • Administrar ciertos contenidos que necesiten de autorización de usuario para acceder a ellos
  • Informar al navegador sobre el formato de los contendidos (HTML, PHP, Javascript…)
  • Administración de errores y seguimiento del uso del servidor…

Ademas, Apache contiene el concepto de Hosting Virtual, que permite el contener diferentes sitios web en un mismo servidor. A estos sitios web se les puede el acceso bajo autorización o securizar con HTTPS

 

 

¿Entonces Apache qué es?

Apache es el software para servidor web mas utilizado a nivel mundial. Este programa dirige el funcionamiento del servidor cumpliendo las misiones de:

  • Gestionar las peticiones al servidor
  • Administrar ciertos contenidos que necesiten de autorización de usuario para acceder a ellos
  • Informar al navegador sobre el formato de los contendidos (HTML, PHP, Javascript…)
  • Administración de errores y seguimiento del uso del servidor…

Ademas, Apache contiene el concepto de Hosting Virtual, que permite el contener diferentes sitios web en un mismo servidor. A estos sitios web se les puede el acceso bajo autorización o securizar con HTTPS

Reserva de IP

Desde el servidor Carolina, accedemos al fichero de configuración del DHCP y realizamos la reserva de IP: nano /etc/dhcp/dhcpd.conf

Configuración del DNS

Sobre el mismo servidor, vamos a modificar las resoluciones directas e inversas para que respondan al dominio del nuevo servidor: http://www.luigi.com ↔ 192.168.0.6

Directa

Inversa

 

Instalación y configuración de Apache

Hemos llegado a lo que nos interesa. Recordamos, estamos en nuestra máquina Natalia, que ofrece los servicios FTP y ahora HTTP. Empezamos:

1. Modo administrador e instalar Apache

Sudo su, como siempre… y instalamos el paquete para el servicio web. En CentOS se nombra como httpd. Por tanto, yum install httpd.

Comprobamos la versión de Apache instalada con httpd -v:

Una vez instalado, se crearan dos estructuras de directorios. Una sobre /etc/http/, donde estaran los ficheros de configuración del servicio; y otra sobre /var/www/html, dónde se ubicaran las páginas, archivos, imagenes… que queramos publicar mediante el servidor.

2. Configurando el firewall

Si recordais, en nuestro anterior postprotegimos a nuestro servidor FTP (la que rebautizamos como Natalia) y configuramos el firewall con base en que únicamente escuchara aquello puertos necesarios para hacer uso del servicio FTP.

Esta vez, debemos crear la excepción en el cortafuegos para que este, permita acceder al servidor HTTP a través de su puerto bien conocido, el TCP 80.

Lo primero sera descubrir como se llama nuestra zona de actuación, y posteriormente, añadimos la excepción:

firewall-cmd –get-active-zones

firewall-cmd –permanent –zone=public. –add-port=80/tcp

Y reiniciamos el firewall:

firewall-cmd –reload

3. Iniciación del servicio HTTP

Ahora, procedemos a levantar el servicio httpd. Ejecutamos systemctl start httpd

Vamos a comprobar que Apache funcione correctamente. Para ello, vamos a realizar la instalación de un navegador web para consolas Linux, links:

Para navegar hacia nuestro propio servidor ejecutamos: links 127.0.0.1. Si funciona correctamente, se mostrara la siguiente pantalla:

Además, vamos a comprobar que funciona en la red. Desde nuestro cliente Windows 7, abrimos cualquier navegador web y accedemos al servidor desde su @ip, en este caso 192.168.0.6:

Como podemos verificar en la captura, estamos accediendo al servidor a través de protocolo HTTP, ya que, aun no hemos asegurado nuestro servicio.

La página que se muestra se trata de un “index” generado automáticamente por Apache al reconocer que no existe ningún “index” importado por nosotros.

Si queremos comprobar que HTTPS se encuentra sin configurar, únicamente debemos intentar acceder al servidor bajo este protocolo:

4. Añadiendo nuestra primera página web

Una vez comprobado el funcionamiento inicial del servicio, vamos a importar nuestra propia página web.

Para ello accedemos a /var/www/html y insertamos nuestra página web. Esta página inicial, se reconoce mediante el nombre de index.html.

En mi caso, esta página web requiere de ficheros externos CSS e imágenes. Para ello, he creado un directorio con el nombre “gobierno.com”, donde he ubicado mi fichero CSS y las imagenes correspondientes para la página:

Una vez creada la estructura de la página, vamos a conceder permisos a Apache y al resto de clientes que vayan a acceder a la página web:

Cambiamos el propietario de toda la estructura con chown -R apache:apache
Cambiamos los permisos para toda la estructura con chmod -R 755

Por último, reiniciamos el servicio: systemctl restart httpd

5. Probando nuestra web

Realizamos las mismas pruebas que en el apartado 3. de este post. Primero, probamos con el propio servidor, a través de links:

Y a través del cliente Windows 7:

6. Protocolo HTTPS

Ya tenemos listo nuestro protocolo HTTP, pero como bien sabemos, se trata de un protocolo no seguro. Por tanto, vamos a securizar nuestro servicio a través de HTTPS.

Para ello seguimos los siguientes pasos:

1. Generar certificado firmado SSL

Vamos a generar el certificado SSL a partir de la herramienta OpenSSL. Además integramos el certificado desde la aplicacion ModSSL. Lo primero instalamos los paquetes necesarios: yum install openssl  yum install mod_ssl.

Una vez instalado, vamos a crear una llave privada de 2048 bits, por ejemplo:

openssl genrsa -out luigi.key 2048

Una vez generada la llave, vamos a generar el CSR, es decir, el fichero de datos sobre el certificado a generar. Este fichero se utiliza para verificar si el certificado es legitimo, es decir, a sido generado por alguna empresa certificadora. En nuestro caso, no contamos con tanto presupuesto, así que lo generamos nosotros solos

openssl req -new -key luigi.key -out luigi.csr.

 

Por ultimo, generamos el certificado firmado SSL, con una validez de 365 dias (por ejemplo):

openssl x509 -req -days 365 -in luigi.csr -signkey luigi.key -out luigi.crt

Vamos a copiar los elementos creados a sus respectivos directos. Ejecutamos:
cp luigi.crt /etc/pki/tls/certs/
cp luigi.key /etc/pki/tls/private/
cp luigi.csr /etc/pki/tls/private/

2. Configurar Apache para HTTPS

Vamos a acceder al fichero ssl.conf para configurar nuestro certificado: nano /etc/httpd/conf.d/ssl.conf

Dentro del fichero, buscamos la sección Descomentamos donde dice “Document Root” y “ServerName” y remplazamos example.com” por “192.168.0.6”, en nuestro caso:

También localizamos los parámetros de ubicación de la llave privada y el certificado, SSLCertificateFile y SSLCertificateKeyFile. Los modificamos para que coincida con los nuestros:

3. Configurar Firewall para HTTPS

Vamos a añadir la regla para que nuestro sistema cortafuegos permita la conexión mediante el puerto 443 TCP. Para ello:

firewall-cmd –permanent –zone=public –add-port=443/tcp

Y reiniciamos cortafuegos:

firewall-cmd –reload

Por ultimo, reiniciamos el servicio y vamos a comprobar que funcione correctamente desde el navegador de nuestro cliente:


Aviso de certificado no confiable, ya que lo hemos creado nosotros y no una identidad certificadora

Página web para el protocolo HTTPS

Certificado SSL

7. Virtual Host 

Como hemos mencionado anteriormente, nuestro servidor HTTP va a contener diferentes sitios web, los cuales serán accesibles únicamente mediante certificación del usuario. Además, ya que haremos uso de usuario/contraseña, estos sitios web se publicaran bajo el protocolo HTTPS.

En resumen, nuestra página principal http://www.luigi.com, se publicara bajo HTTP y HTTPS. Los dos host virtuales que crearemos, se nombraran como http://www.luigihost1.com y http://www.luigihost2.com respectivamente, y trabajaran bajo HTTPS y autentificación de usuario.

A por ello:

1. Lo primero de todo, creamos la estructura de los sitios:

Además, volvemos a aplicar los permisos 755 para todos los directorios.

2. Añadimos los dos sitios web a cada directorio de los host virtuales:

3. Creamos los directorios dónde almacenaremos los ficheros de configuración para los host virtuales:

4. Accedemos al fichero de configuración principal de Apache, httpd.conf y añadimos el directorio creado sites-enabled. Con esto conseguimos que el servidor reconozca los host virtuales que añadamos. Para ello, nano /etc/httpd/conf/httpd.conf y en la ultima lineaescribimos:

5. Una vez listo, vamos a crear los ficheros de configuración para los host virtuales. Para ello nano /etc/httpd/sites-available/luigihost1.conf ( o luigihost2.confy añadimos:

Parámetros explicados:

VirtualHost *:443: Acceso al sitio web a través del protocolo 443 (HTTPS)
ServerAdmin: parámetro que define el administrador del sitio. En este caso, nosotros como administradores.
ServerName: dominio con el que accederemos al sitio web
ServerAlias: nombre del sitio web

El segundo fichero de configuración quedaría así:

Creamos un enlace de estos dos ficheros de configuración al directorio de ficheros activos (sites-enabled):

Para finalizar, reiniciamos el servicio: systemctl restart httpd, y añadimos los dos nuevos nombres de los sitios web a nuestro DNS(resolución directa, claro…) :

Vamos a comprobar que funcione correctamente los host virtuales. Con nuestro navegador en el cliente Windows 7, vamos a acceder http://www.luigi.com por HTTPS :

Verificamos que seguimos entrando de forma normal. Ahora vamos a añadir host1 a la url:

host2

Además si intentamos a acceder mediante HTTP a cualquiera de los host virtuales, se nos redirige a la página principal:

8. Autentificación

Una vez tengamos los dos host virtuales operativos, vamos a añadirles la autentificación de acceso. Para ello crearemos el fichero donde se hallaran los usuarios autentificados y sus contraseñas. Par a mayor seguridad, ciframos las contraseñas utilizando el paquete htpasswd. Para ello:

1 Creamos el fichero de usuarios/contraseñas → touch /etc/httpd/userpasswd

2 Generamos los nuevos usuarios con contraseña cifrada → htpasswd /etc/httpd/userpasswd luigi1/luigi2

Comprobamos que se han generado correctamente, nano /etc/httpd/userpasswd:

Una vez tenemos los usuarios y sus contraseñas cifradas, vamos restringir el acceso a los host virtuales. Para ello, vamos a crear un fichero de configuración en /etc/httpd/conf.d, llamado auth_basic.conf.

En el especificamos los dos directorios de los host virtuales y añadimos:

AuthType: parámetro que define el uso de autentificación para acceder al sitio
AuthName: nombre de la autentificación
AuthUserFile: ubicación del fichero de usuario y contraseñas admitidos
Require user: admitimos únicamente al usuario luigi1/luigi2

Reiniciamos el servicio y comprobamos:

Accedemos a https://www.host1.luigi.com, únicamente accesible por luigi1

Y accedemos:

Con el host2:


Ya esta en la red…

Terminamos! Ya tenemos listo nuestro servicio web con Apache, para nuestro querido CentOS 7 protegido con HTTPS.

Además hemos implementado el uso de Host Virtuales, con lo que conseguimos que nuestro servidor albergue varios sitios web en una misma máquina. Por si fuera poco, hemos conseguido que estos host virtuales sean únicamente accesibles mediante logeo autentificado… que más podemos pedir 🙂

 

Wifislax Linux

Wifislax Linux

Existen otras distribuciones de hacking ético en la red (como  BackBox ,Kali Linux  o Parrot Security OS), Wifislax sigue teniendo a día de hoy un importante público, es decir una comunidad que está desarrollando actualizaciones de las herramientas y creando nuevas según como evolucionan los sistemas operativos y sus defensas , sobre todo entre los usuarios que hace tiempo utilizaron esta suite y se hicieron a ella, ya que, aunque puede no ser la más sencilla de utilizar, es de las más completas para auditar todo tipo de redes, en especial redes Wi-Fi.

A continuación os explicamos cómo descargar gratis Wifislax 2019.

En busqueda de entrar a las redes Wi-Fi para tan solo ver si pueden o tan solo para ver el facebook, muchos adictos a la informática han llegado a manejar herramientas , que los han convertido en  HACKERS ÉTICOS , y dada esta situación muchos han ido progresando hasta ser profesionales de la seguridad informática , cuya misión es hallar grietas en las seguridades de empresas .

Hoy todos tenemos una conexión a Internet en nuestras casas. Sin embargo, muchos especialistas siguen buscando la forma de hackear el Wi-Fi, aunque con otros fines, como, por ejemplo, monitorizar lo que hacemos en Internet, robar nuestros datos personales e incluso infectarnos con algún tipo de malware una vez que está dentro de la red. Por ello es necesario comprobar que nuestra red Wi-Fi es segura, y qué mejor herramientas para hacerlo que la conocida suite de hacking ético Wifislax.

Wifislax es una de las suites de hacking ético más completas que podemos encontrar para comprobar la seguridad y hackear prácticamente cualquier red Wi-Fi. Esta suite de seguridad se basa en la distribución Linux Slackware y viene de base con una gran colección de herramientas de seguridad  y auditoría de redes , tanto para comprobar la seguridad de las redes Wi Fi como de otros aspectos de una red, como los puertos y su protección contra diferentes exploits, o malware entre otros.

Cómo descargar Wifislax 2019

La última versión de esta suite de hacking ético es la 2.0, y podemos descargarla de forma totalmente gratuita desde el siguiente enlace. En el foro oficial de esta distro de hacking ético podemos encontrar la imagen ISO oficial actualizada en dos servidores diferentes, Mega y Mediafire, además de los drivers NVIDIA para poder usar Hashcat , la configuración de Wifislax permite probarlo en su totalidad , sin necesidad de instalarlo físicamente , entre mis opiniones personales , las respuestas que obtuve en los laboratorios de sistemas de Wayne Virtuality , fueron muy interesantes, ya que en un pendrive tenia una pelicula completa en formato Matrioshka (mkv) la cual la abrió y ejecuto sin ningún problema a pantalla completa y sin necesidad de excesivos recursos que se piden en algunos reproductores como por ejemplo Power DVD 18 ultra, y segui , con más  insistencias , pues aperture 3 canciones mp3 y una nueva película en formato avi, y luego 3 mas en formato mp4 y ni cosquillas ..funciono sin lake’s , sin problemas..y con una ram de 8GB, en donde solo se ejecutaba 2Gb como segmento de la virtualización.

Las novedades que vinieron con Wifislax 2.0, la versión de 2019, no fueron muchas, aunque sí bastante importantes. Para empezar, se ha actualizado la versión de airmon-ng a la última disponible para corregir algunos problemas en el funcionamiento del modo monitor, aunque se mantiene aún la versión vieja bajo otro nombre (airmon-ng-old) para quienes quieran seguir utilizándola.

Reaver 1.4 ha sido sustituida por la última versión de esta herramienta (la 1.6.x) para seguir con el proceso de actualización de los paquetes de la distro. Además, también se ha añadido soporte para multilib, lo que permitirá que Wine funcione correctamente en Wifislax, descargar la version integrada con las herramientas en mi recomendación, pues integrarlas con los paquetes aparte , no es dificil , pero quita algo la emoción…. 

Pero… para los que no son NVIDIA GRAPHICS, no todo son buenas noticias para los usuarios de Wifislax 2019. Esta versión finalmente deja sin soporte a las gráficas AMD/Radeon debido a que los drivers de AMD ya no son instalables, sino que se distribuyen en binario, por lo que hacerlos funcionar es bastante complicado y causa muchos problemas en este tipo de distribuciones por la compatibilidad al ejecutar en las distros de LINUX las instalaciones de las aceleradoras gráficas.

Wifislax 2019 se puede grabar tanto en un DVD como en una memoria USB y manejarla como una ISO de montaje. Además, si queremos, también podemos hacerlo funcionar en una máquina virtual de VMWare o Virtual Machine.
Así que , ahí tenemos una nueva rama de la tecnología para explorar y tomar como una profesión a nivel ETICO, no todos los Hacker son malos, sino que muchos lo hacen para solo saber si se puede realizar, sin fijarse en los lineamientos jurídicos y la privacidad elemental de la informacion.
HOy en dia… muchas compañias , estan buscando para sus departamentos de seguridad a estas habiles personas, que no siempre llevan el título de Analistas de Sistemas o Ingenieros Informáticos. Pero… al menos yo, Carl Wayne…pienso que no todo es el título, sino las destrezas en el campo profesional , ya que muchos se desenvuelven mucho  y mas en campos que son afines a ellos y no siempre se da con relación a su título profesional

Follow by Email
Telegram
WhatsApp
Help-Desk