Activar validación de clientes con SSL en apache

En una ocasión, un cliente nos solicitó que activásemos una validación de usuarios mediante certificados para una parte de un sitio web del cliente. Concretamente, el cliente deseaba utilizar los certificados de la Fabrica Nacional de Moneda y Timbre (FNMT).

Pues bien, la configuración es relativamente sencilla. Primero de todo, debemos obtener los certificados de la FNMT (o la CA en cuestión), ya sea un único .crt o un .pem

Seguidamente, en la configuración de nuestro VirtualHost para HTTPS, añadiremos una configuración similar a esta:

 

Procedo a explicar. Primeramente, añadimos la CA a nuestro virtualhost, para que Apache pueda contrastar la validez de los certificados con ella. Seguidamente, con SSLVerifyClient none, indicamos a Apache que establezca la validación en None para evitar que se valide todo el sitio web.  Después, hemos activado la validación SSL por cliente en tres ubicaciones diferentes (con Location) a través de la directiva SSLVerifyClient require, por lo que el resto de la web será libre para todo el mundo, pero cuando algún usuario intente acceder a alguna de dichas ubicaciones, se solicitará el certificado.

Como añadido, en caso de que delante de Apache tengamos un Proxy reverso como Nginx, será necesario que Nginx sepa que debe pasar en las cabeceras el certificado a Apache, de lo contrario no funcionará.

Para ello, con añadir la siguiente directiva en la configuración de Nginx, no debería haber problema.

 

Bloquear adjuntos en correos con Postfix

En una ocasión un cliente estaba recibiendo excesivo SPAM en sus cuentas de correo, el filtro Anti-SPAM hacía todo el trabajo posible, pero no era suficiente pues aún así algún correo que otro se escapaba, y hoy en día, con los Ransomware al acecho, el peligro al abrir por error un adjunto maligno es muy elevado.

Por tanto, el cliente nos preguntó si existía alguna forma de bloquear todos los ficheros adjuntos que fuesen, por ejemplo, .exe. La respuesta es si, Postfix permite realizar un filtrado/análisis de las cabeceras MIME y bloquear las extensiones que deseemos.

El procedimiento es el siguiente, primero, editamos el fichero main.cf de Postfix:

 

Seguidamente, buscaremos la línea mime_header_checks y la editaremos para que quede de la siguiente forma (en caso de que no se encuentre la línea, la añadimos):

 

Con esto, hemos indicado a postfix que revise las cabeceras, usando como base/filtro el fichero /etc/postfix/mime_header_checks. A continuación, vamos a indicarle a Postfix que tipo de extensiones queremos bloquear:

Editamos/creamos el fichero /etc/postfix/mime_header_checks

 

Y añadimos la siguiente línea:

 

Con esto, se bloquearan todos los adjuntos con las extensiones bat, com, exe, dll y vbs, por supuesto, se pueden añadir todas las que queramos, usando como separador “|”.

Por último, reiniciamos postfix y ya podremos estar tranquilos de que todos esos adjuntos se bloquearan, como podremos comprobar en los logs de postfix.

 

Apachebuddy – Optimizar Apache

Por supuesto, siempre debe prevalecer el sentido común del administrador de sistemas, su experiencia y el entorno en cuestión a la hora de configurar correctamente un servidor web con Apache, pero, nunca viene mal un pequeño ayudante como es ApacheBuddy.

ApacheBuddy es simplemente un script en perl que realizará un pequeño scan de nuestro servidor web y nos dará unos resultados en función del estado en el que haya observado el servidor. Es recomendable lanzar el scan de apachebuddy en situaciones de carga real, es decir, de nada servirá lanzar el scan en un momento de baja carga, como a las 3 de la madrugada pues nuestro amiguito nos dirá que Apache está genial y podemos asignarle más recursos, por ejemplo.

Continue reading

Ver número de peticiones por IP en apache

Con el tiempo, te das cuenta de que para detectar ataques u otros problemas en los logs de apache, es necesario ver el número de peticiones ordenado que se realizan al servidor web ordenado por IPs

El siguiente comando es muy útil para obtener patrones y sacar “abusones” o posibles atacantes a través de los logs de apache, puesto que realiza una suma de las IPs que se observan en los logs de apache.

Os dejo el comando en cuestión:

 

Con esto, obtendremos el resultado de número de peticiones por IP en los logs del dominio midominio.com
Espero que os sea útil.

Instalar mod_pagespeed en un servidor CentOS

El módulo mod_pagespeed es un módulo de Apache desarrollado por Google que mejora enormemente el rendimiento de una web estándar, al incluir, entre una gran cantidad de opciones, optimizaciones como compresión de las webs, imágenes, definición de cachés, etc.

La instalación de este módulo es muy sencilla y procedo a explicarla:

Primeramente, procederemos a instalar el repositorio oficial de Google para el módulo, para ello, editaremos un fichero de repositorio:

 

Dentro del cual incluiremos el siguiente texto:

 

Realizaremos seguidamente la instalación del módulo:

 

Y por último, reiniciaremos apache.

Con esto, el módulo estará activo e instalado. No obstante, es muy recomendable revisar el fichero de configuración del mismo a fin de definir exactamente los parámetros que nos hagan falta, desde el fichero de configuración de pagespeed:

 

Se recomienda revisar la página oficial de google: https://modpagespeed.com/doc/configuration

Por último, en caso de querer desinstalar el módulo, simplemente realizaremos:

 

rm /etc/yum.repos.d/googlemodepagespeed.repo

Y con esto, será como si nunca hubiese estado instalado.