Instalar y Renovar Certificados SSL LetsEncrypt – Certbot en Debian (Apache2)

EL presente instructivo tiene como finalidad la instalación de certificados SSL LetsEncrypt a través de Certbot para un website bajo Apache2, todo esto en GNU/Linux Debian.

Requisitos:

  • Se debe contar con suficiente privilegios para la configuración de aplicativos
  • Se debe contar con instalación de Apache2
  • Se debe contar con un dominio “juantrucupei.com.ve”

Plataforma:

  • Equipos de arquitectura 64 bits
  • Sistema operativo ‘GNU/Linux’ Debian versión 9.0 (actualmente estable)

Aplicaciones:

  • certbot 0.10.2-1
  • python-certbot-apache 0.10.2-1

Instalación de Paquetes:

root@server:/# aptitude install -y certbot python-certbot-apache

Configuración:

1. Generar un certificado para Apache2

root@server:/# certbot --authenticator standalone --installer apache -d juantrucupei.com.ve \
--pre-hook "service apache2 stop" --post-hook "service apache2 start"
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Running pre-hook command: service apache2 stop
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for juantrucupei.com.ve
Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0000_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0000_csr-certbot.pem
Running post-hook command: service apache2 start
Created an SSL vhost at /etc/apache2/sites-available/000-default.conf_original-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/000-default.conf_original-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/000-default.conf_original-le-ssl.conf

Continuar leyendo “Instalar y Renovar Certificados SSL LetsEncrypt – Certbot en Debian (Apache2)”

Anuncios

Autenticación Apache2 (WebService) por Certificado SSL

El presente instructivo tiene como finalidad demostrar un ejemplo práctico de configuración de servidor Webservice con autenticación mediante Certificados SSL.

Esto autenticación permitirá consultar una página web, sólo aquellos clientes que tengan un certificado Válido y activo.

Puntos a Tratar en el Instructivo:

  • Punto#1. Crear una autoridad certificadora (CA)
  • Punto#2. Generar las llaves autofirmas de la (CA)
  • Punto#3. Generar llaves del servidor WEB
  • Punto#4. Generar solicitud de firma (CA) de certificado SSL del servidor WEB
  • Punto#5. Firmar (CA) certificado SSL para servidor web
  • Punto#6. Adecuar servidor WEB para uso conexión segura (HTTPS)
  • Punto#7. Generar llaves Clientes
  • Punto#8. Generar solicitud de firma (CA) de certificados para la conexión de los clientes
  • Punto#9. Firmar (CA) certificados para la conexión de los clientes
  • Punto#10. Adecuar servidor WEB para recibir sólo conexiones que posean certificados(SSL) válidos
  • Punto#11. Revocar certificados de los clientes
  • Punto#12. Adecuar servidor WEB para verificar los certificados revocados

Si sólo desea generar un certificado SSL para servidor WEB, puede leer el instrutivo en el siguiente enlace: Generar Llaves OpenSSL 2048 bits. Certificado para SSL Web

Requisitos:

  • Se debe contar con suficiente privilegios para la configuración de aplicativos
  • Se debe tener instalado el aplicativo openSSL y servidor WEB apache en su versión 2.4

Plataforma:

  • Equipos de arquitectura 64 bits
  • Sistema operativo ‘GNU/Linux’ Debian versión 9.0 (actualmente estable)

Para el ejemplo se cuenta con:

– Un servidor para la configuracion de la Autoridad Certificadora (CA)

  • IP: 192.168.1.1
  • hostname: serverCA

– Un servidor para la configuracion del servidor WEB

  • IP: 192.168.1.2
  • hostname: serverWEB

– Un servidor para la configuracion del cliente(CA)

  • IP: 192.168.1.3
  • hostname: cliente

Nota: Las funcionalidades Autoridad Certificadora (CA) y Servidor WEB, pueden ser instaladas y configuradas en un mismo servidor, pero por medidas de seguridad se sugiere dividirlas.
Continuar leyendo “Autenticación Apache2 (WebService) por Certificado SSL”

Tips Seguridad Servidor Apache2 – Hardening Secure Apache Web Server

El presente instructivo tiene como finalidad mostrar algunas recomendaciones de configuraciones que pueden ser aplicadas en servidor web apache2 para su protección.

El presente instructivo ha sido actualizado y es aplicado perfectamente a servidor Web Apache versión 2.4

Aplicaciones o configuraciones complementarias:

Recomendaciones a nivel de sistema operativo:

1. Es algo complicado establecer un estandar para el particionado de un servidor, siempre abrá variables que no dependerán de los administradores. A continuación un ejemplo de lo que podría ser un particionado típico para un servidor WEB:

Particionado base:

- /boot -> 500MB -> EXT4
- /swap -> 5GB 

Particionado LVM:

- /raiz -> 10 GB  -> EXT4
- /home -> 5GB -> EXT4
- /usr -> 5GB -> EXT4
- /usr/local -> 5GB -> EXT4 
- /opt/www -> 5GB -> EXT4
- /var/log -> 10GB -> EXT4
- /tmp  -> 5GB -> EXT4

2. Cambiar la ruta del directorio por defecto (/var/www/html) destinado por Apache(2.4) para alojar los website:

2.1 Crear una nuev a ruta:

admin@servidor:/$ sudo mkdir -p /opt/www/html

2.2 Efectuar cambios en Apache2:

Archivo configuración de Apache2 “/etc/apache2/apache2.conf”:

<Directory /opt/www/html/>
	Options -Indexes -FollowSymLinks -ExecCGI +SymLinksIfOwnerMatch
	AllowOverride None
	Require all granted
</Directory>

Archivo configuración del site “/etc/apache2/sites-enabled/000-default.conf”:

DocumentRoot /opt/www/html

3. Se recomienda efectuar cambios en las opciones de montaje del directorio “/opt”, habilitando las siguientes opciones:

  • -nodev: Impide la interpretación de los dispositivos especiales o de bloques del sistema de archivos
  • -nosuid: Bloquea el funcionamiento de suid, y sgid bits. suid permite a los usuarios comunes ejecutar binarios con privilegios concedidos temporalmente
  • -noexec: No permite la ejecución de binarios que se encuentren en el sistema de archivos. Muy pendiente con el código o aplicativo que se utilizará con el servidor apache, ya que si tienen un binario, el mismo no podrá ser ejecutada

Ejemplo de una entrada en fstab:

/dev/mapper/VolGroup-lvsrv /opt   ext4   nodev,nosuid,noexec   0    2

Recomendaciones a nivel de aplicativo Apache 2.4
Configuración

Evita la búsquedas de DNS para que los nombres de host se pueden registrar

1. Editar archivo de configuración de apache2:

admin@servidor:/$ sudo vim /etc/apache2/apache2.conf

Continuar leyendo “Tips Seguridad Servidor Apache2 – Hardening Secure Apache Web Server”

Tips Seguridad Configuración Servicio SSH (Hardening SSH)

El presente instructivo tiene como objetivo presentar unos tips de seguridad para la configuración del servicio SSH.

Requisitos:

  • Tener una instalacion de servicio SSH activa (openssh-server)
  • Se debe contar con suficiente privilegios para la configuración

Plataforma:

  • Equipos de arquitectura 64 bits
  • Sistema operativo ‘GNU/Linux’ Debian versión 7.0

Aplicaciones o configuraciones complementarias:

1. Editar archivo de configuración de SSH:

operador@servidor:/~$ sudo nano /etc/ssh/sshd_config 

Continuar leyendo “Tips Seguridad Configuración Servicio SSH (Hardening SSH)”

Manejo de Metadatos de Archivos en Linux

El presente instructivo tiene como finalidad la instalación y primeros pasos para el uso de herramientas en el tratamiento de Metadatos en Linux.
En la actualidad, se ha vuelto una tarea iimportante el análisis de metadatos en los archivos, principalmente para aquellas personas que constantemente se dedica a publicar y subir fotos, videos, archivos a las redes sociales (internet).

La definición básica de mestadatos es “datos acerca de los datos” . Los metadatos consisten en información “adicional” sobre el archivo. Un ejemplo es los metadatos de una fotografía, pueden describir el modelo de la cámara o teléfono celular utilizado, la dimensiones, la resolución, el autor, fecha, hora y hasta las coordenas (GPS)

Requisitos:

  • Se debe contar con suficiente privilegios para la instalación de aplicativos

Plataforma:

  • Equipos de arquitectura 64 bits
  • Sistema operativo ‘GNU/Linux’ Debian versión 8.0

Aplicaciones:

  • libimage-exiftool-perl -> 9.74-1
  • mat -> 0.5.2-3

Instalación

operador@servidor:~/$ sudo aptitude install libimage-exiftool-perl mat

Continuar leyendo “Manejo de Metadatos de Archivos en Linux”

Instalación y configuración básica Elasticsearch, Logstash, Kibana y Filebeat

El presente instructivo tiene como finalidad describir de forma breve los pasos a seguir para la instalación y configuración BASICA de Elasticsearch, Logstash, Kibana y Filebeat, como elementos de análisis de logs (bitacoras).

ELK (Elasticsearch, Logstash y Kibana) son herramientas que al utilizarlas en conjunto, permite la consolodicación y análisis de bitácoras (logs) generados en múltiples servidores.

Elasticsearch es un servidor de búsqueda, el cual permite efectuar busquedas entre los datos (log) gestionados por Logstash. Logstash es una herramienta para la administración de logs. Esta herramienta se puede utilizar para recolectar, parsear y guardar los logs. Kibana es una fuente de plug-in de visualización de datos abierta para Elasticsearch.

La configuración que se presenta a continuación fue efectuada entre dos maquinas:

1.- Un (01) servidor

  • Hostname: server
  • dirección IP: 192.168.0.100

2.- Un (01) cliente

  • Hostname: cliente
  • dirección IP: 192.168.0.101

Requisitos:

  • Se debe contar con suficiente privilegios para la configuración de aplicativos

Plataforma:

  • Equipos de arquitectura 64 bits
  • Sistema operativo ‘GNU/Linux’ Debian versión 8.0 (actualmente estable)

Aplicaciones:

  • Java Oracle Versión 1.8.0_91
  • Elasticsearch Versión 2.3.3
  • Kibana versión 4.5.1
  • Logstash Versión 2.3.2-1
  • Nginx Versión 1.2.1
  • filebeat version 1.3.1

SERVIDOR:(192.168.0.100)

Agregar los siguiente repositorios:

1. Java:

root@server:/# echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" > /etc/apt/sources.list.d/webupd8team-java.list
root@server:/# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886

Continuar leyendo “Instalación y configuración básica Elasticsearch, Logstash, Kibana y Filebeat”

Instalación y configuración de módulo Mod_Evasive Servidor Web (Apache)

El presente instructivo tiene como finalidad dar a conocer el procedimiento para la instalación y configuración del módulo Mod-Evasive (minimizar ataques HTTP DoS) para Apache2 en la distribución GNU/Linux Debian version 8.0 ( “jessie”) stable.

Mod_evasive es un módulo de apache que básicamente lo que hace es mantener una tabla dinámica con las páginas (URIs) accedidas por las distintas direcciones IP de los clientes (navegadores) que acceden al site web (Apache), y permite ejecutar algunas acciones cuando una misma IP (atacante) solicita un mismo recurso (una misma URI o elementos de un mismo sitio) más de n veces en m segundos. La acción por default que ejecuta el mod_evasive es, una vez superado el máximo de requests por segundo permitidos, bloquear durante una cantidad de tiempo (segundos) a la IP del cliente (atacante) devolviendo un error 403 (Forbidden) a la petición HTTP, de igual forma permite ejecutar un comando de sistema al registrar un “intento de ataque”, lo que flexibiliza la configuración, de por ejemplo, reglas de iptables para bloquear la IP del cliente (atacante).

Requisitos:

  • Se debe contar con el funcionamiento de servicio Web apache2
  • Se debe contar con suficiente privilegios para la instalación de aplicativos

Plataforma:

  • La presente instalación es para equipos de arquitectura 64 bits.
  • El sistema operativo empleado es ‘GNU/Linux’ Debian versión 8.0, actualmente estable

Configuraciones Relacionados:

Aplicaciones:

  • Apache -> 2.4.10 (aunque es funcional para Apache 2.2)
  • libapache2-mod-evasive -> 1.10.1-3
  • Apache-utils -> 2.4.10-10+deb8u5 (para las pruebas con ApacheBench)

Instalación de Dependencias

operador@servidor:/$ sudo aptitude install libapache2-mod-evasive

Continuar leyendo “Instalación y configuración de módulo Mod_Evasive Servidor Web (Apache)”