VirtualHosts basados en nombre y comprobación de certificados con OpenSSL

By | December 10, 2017

Si utilizamos VirtualHosts basados en nombre en nuestro frontal web -cosa que suele estar a la orden del día, en primer lugar para ahorrar IPs- debemos tener en cuenta ciertas consideraciones si comprobamos nuestros certificados con OpenSSL.

En una arquitectura como la mencionada, un servidor web Apache o Nginx puede alojar múltiples sitios web (dominios) que comparten una misma IP. Una petición HTTP/HTTPS dirigida contra un dominio específico es resuelta por tanto por el VirtualHost correspondiente. En Apache, por ejemplo, esto se especifica con la directiva ServerName o ServerAlias (si tenemos alias DNS a aplicar) dentro de la configuración de cada VirtualHost:

...
<VirtualHost *:80>
    ServerName www.elarraydejota.com
    DocumentRoot "/www/elarraydejota"
</VirtualHost>

<VirtualHost *:80>
    ServerName www.juliojosesanz.com
    ServerAlias juliojosesanz.com
    DocumentRoot "/www/juliojosesanz"
</VirtualHost>
...

Continue reading

Netdata, navaja suiza para monitorizar el sistema

By | December 4, 2017

Ya iba siendo hora de agrupar en una sola herramienta la monitorización de varios componentes del sistema. Netdata no sólo nos proporciona una interfaz HTML sencilla y clara en la que representar los datos, sino que también actúa como recolector de una gran cantidad de métricas de nuestro sistema y servidores adicionales como pueda ser Apache/Nginx o Bases de Datos como veremos a continuación.

Podemos utilizar el instalador genérico para cualquier distribución Linux tal y como comentan en la documentación oficial.

El instalador no debería lanzarse con sudo (en la documentación ya comentan do not sudo this command, it will do it by itself as needed) por lo que debemos configurar nuestro usuario para que utilice sudo. En una distro como Ubuntu por defecto solemos tener nuestro usuario con los permisos correspondientes. Sin embargo, en el caso de Debian personalmente no utilizo sudo por lo que para probar netdata tuve primero que instalaro con apt-get install sudo y posteriormente incluir mi usuario jota en el grupo sudo:

usermod -aG sudo jota

Continue reading

Shellcheck: revisión y análisis de código de shell scripts

By | December 2, 2017

Para todos los niveles de experiencia en scripting, Shellcheck realiza una comprobación de estándar POSIX, posibles problemas en expansión de variables, variables no utilizadas, errores sintácticos o en construcciones lógicas (como bucles for/while o condicionales if) etc… Proporcionando también sugerencias para lograr una mayor robustez del código de nuestros scripts.

Continue reading

Mod_security – Whitelist para googlebot (y otros crawlers legítimos)

By | November 30, 2017

Si bien mod_security nos proporciona una capa más de seguridad en nuestro servidor web Apache, pueden darse casos en los que queden bloqueadas peticiones legítimas que tendremos que dejar pasar por nuestro WAF. Por norma general siempre hay que personalizar o bien las reglas o el comportamiento global del módulo para añadir ciertas excepciones.

Algunos problemas y quebraderos de cabeza surgen con el bloqueo de crawlers web legítimos evitando así que nuestro contenido sea correctamente indexado. Pongamos como ejemplos a Google, Bing… Éstos tienen sus propios bots que deberán tener acceso a nuestra web, siempre siguiendo las normas de robots.txt si están “bien educados”.

Continue reading

Combo PSAD + fwsnort para iptables

By | November 25, 2017

Habiendo visto ya la manera de bloquear una IP o grupos de IPs, vamos a revisar dos herramientas que son de gran utilidad como complemento a iptables:

  • Utilizaremos PSAD (Port Scan Attack Detector) para parsear logs de iptables, detectar y opcionalmente bloquear IPs infractoras. Si conocéis fail2ban el mecanismo es prácticamente el mismo, pero esta vez aplicado al servicio de iptables.

  • Por otro lado, fwsnort podemos considerarlo un complemento a nuestra configuración de iptables. Su función es generar reglas para bloquear tráfico traduciendo reglas del conocido IDS Snort.

Para el artículo me baso en Debian Stretch, por lo que también aplica a cualquier derivada.

Continue reading