Seguridad en Servidores Web Herramientas de Guerrilla
Como ya sabéis hace poco participe con una charla en el congreso de seguridad informática c0r0n4con. La charla está basada en la seguridad que podemos aplicar a nuestro servidor web y aplicaciones que tengamos instaladas. Cómo apunte al vídeo de la charla os dejo aquí detalles sobre todo lo que traté de explicar …
Los primeros minutos de la charla expliqué como llegué a crecer en Internet con mis proyectos y como la seguridad es algo fundamental a la hora de ponerlos en practica …
Tu servidor web necesita seguridad
Montes el proyecto que montes en Internet si no aplicas seguridad tarde o temprano tendrás problemas y todos tus esfuerzos se verán frustrados …
Una hackeada puede hundir tu negocio online
El día menos pensado puedes encontrarte con problemas y no poder identificarte en su panel de control o encontrarte contenido que no es el tuyo caracteres raros o enlaces hacia otras webs o cosas peores como que te hackeen y no te des cuenta estando el sitio hackeado preparado para sacarle jugo cuando menos te lo esperes.
Para no tener problemas es necesario aplicar toda la seguridad que puedas tanto al servidor como a tu sitio web.
A continuación os dejo algunos tips que hemos de tener en cuenta …
Certificados SSL, Hotlinking y actualizaciones
- Implementa certificados de seguridad SSL en tu web, puedes comprarlo o crear un certificado SSL Let´s Encrypt de forma gratuita.
- Evita en todo lo posible el Hotlinking, puedes implementar esta protección a base de Plugins o añadiendo unas lineas en el fichero .htaccess que dicen que solo se pueden mostrar imágenes en tu dominio y en ninguno mas ….
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(.+\.)?example.com [NC]
RewriteRule \.(jpe?g|png|gif|bmp|tif)$ – [NC,F,L]
- Si usas un gestor de contenidos como WordPress mantén actualizados el Core, los Plugins y los Temas.
Plugins de seguridad para WordPress
- Block Bad Queries (BBQ) en un potente Firewall para inyecciones SQL, la subida de archivos ejecutables y las peticiones EVAL o BASE64. Enlace al Plugin.
- Wordfence Security es un todo en uno de seguridad muy bueno. Incorpora Antivirus, Antimalware y Firewall. Enlace al Plugin.
¿Cuál es mi servidor ideal?
- Sobre el ancho de banda cuanto más tengas mejor, tu servidor tendrá mas capacidad para aguantar trafico.
- Sobre el procesador y memoria cuanto más potente mejor aunque si optimizas el servidor te darás cuenta que no necesitas tanto como contratas.
- Sobre el disco duro la velocidad es importante así que un SATA es mas lento que un SSD y este es más lento que un NVME.
Puertos y ocultación de servicios
- Tu servidor debe tener el mínimo numero de puertos abiertos para poder cumplir el servicio que ofrecemos, si es un servidor web será el 80 y el 443.
- Aplica seguridad por oscuridad para no desvelar los programas que usas. Aquí tengo un artículo sobre la seguridad por oscuridad en Apache y SSH.
Seguridad para MySQL
- Mantén el servidor de bases de datos MySQL actualizado.
- Crea un usuario exclusivo para que trabaje con la base de datos y no tenga permisos para nada más que trabajar con dicha base de datos.
- Si programas tu la base de datos evita caracteres especiales como las comillas » y los caracteres \x00 y \x1a.
- En el servidor MySQL Server configura desde my.cnf la opción bind-address para que trabaje de forma local y cierra la opción local-infile si es necesario.
- Usa el script MySQLTUNNER para optimizar el servidor MySQL y sigue sus consejos de seguridad.
- Si tienes problemas activa el Log o usa el Log de peticiones lentas long_query_time en el fichero my.cnf.
- Si usas un gestor web como PhpMyAdmin cambia la URL de acceso.
- Como capa adicional podemos agregar un login a la misma pantalla de login de PhpMyAdmin agregando un .htpassword al fichero .htaccess.
Ataques por fuerza bruta y corta fuegos
- Instala Fail2Ban junto a Brute Force Detection para bloquear ataques por fuerza bruta.
- Configura tu Firewall para que solo acepte trafico de los puertos que necesitamos estrictamente. Bloquear el resto.
- Los DDOS se basan en grandes cantidades de solicitudes al servidor web. Por ejemplo, podemos bloquear a todo el que nos haga más de 25 peticiones con iptables así …
iptables –A INPUT –p tcp –syn -m multiport -–dport http,https –m connlimit -–connlimit-above 25 –j REJECT -–reject-with-tcp-reset
- Monitorea las constantes vitales con el comando htop.
- Monitorea tus iptables con el comando watch con …
watch –interval=1 ‘iptables -nvL | grep -v «0 0″‘
- Para un monitoreo más completo podemos usar FWLOGWATCH, nos da estadísticas vía web si queremos por mail.
Antivirus, antimalware y chroot
- Instala un antivirus como ClamAV y automatizalo, aquí tengo un artículo sobre cómo instalar el antivirus ClamAV.
- Instala un antimalware como Linux Malware Detect y automatizalo, aquí tengo un articulo sobre cómo instalar LMD.
- Enjaula tus webs con su propio usuario que no tenga privilegios para ver otros directorios con CHROOT, aquí tengo un artículo sobre cómo encerrar usuarios con CHROOT.
Bloquea países y ataques DDOS
- Bloquea los países que no necesites. Aquí tengo un artículo sobre cómo bloquear países con iptables.
- Para paliar con ataques de fuerza bruta podemos usar el script DDOS-Deflate. Aquí tengo un artículo sobre cómo protegernos de un ataque DDOS.
- Si usas Apache como servidor web instala Mod Evasive contra ataques DDOS.
Protegiendo nuestras aplicaciones web
- Instala ModSecurity como Firewall de aplicaciones Web. ModSecurity monitoriza el tráfico entrante y realiza un análisis a tiempo real antes de pasarle el tráfico al servidor web.
- ModSecurity se puede instalar tanto en el servidor web que tenemos en producción como en un proxy inverso y proteger los servidores que tengamos tras él.
A continuación os dejo un video que acompaña a la charla anterior con preguntas y respuestas que me hicieron en el chat …