lunes, 24 de octubre de 2011

Consejos de Seguridad para un Servidor en Linux


Una cosa es que Linux tenga fama de ser un sistema seguro, pero no vale con instalar un servidor con los servicios que se necesiten, dejarlo ahí sin más y fumarnos un puro pensando “Esto es Linux es muy seguro, no pasa na”
El tema de seguridad es cada vez más y más importante, da igual si trabajamos en una pequeña empresa o una gran corporación, podemos tener tanto clientes como enemigos en ocasiones, y como administradores de sistemas tenemos que tener en cuenta estos detalles pues somos los responsables directos ante este tipo de cosas.

Entre los factores a tener en cuenta el principal es determinar la criticidad del entorno, cuanto más crítico más seguridad o herramientas vamos a querer poner pero para ello tenemos que tener en cuenta la  afectación que pueden tener estas propias herramientas en el propio entorno, tanto a nivel de rendimiento como la complicación a la hora de administrarlo en caso de algún problemas, pues nos podemos complicar la vida nosotros mismos.
Estas son las bases que podríamos definir:
1 – Cifrar comunicación de datos.
Si transmitimos todos los datos en texto plano bastará con cualquier sniffer (Ataque man in the middle )  para poderlo leer o incluso modificar, Tenemos varias formas de impedir esto, como es usar el poderoso SSH, SCP (secure copy) usar seguridad con SSL entre otras.
2 – Cuanto menos software menos vulnerabilidades.
Hay software que aprovechan los fallos de programación mediante exploits, recordemos los artículos de metasploit  en esta misma web. Si no necesitamos un software determinado es espacio en disco y recursos que puede que estemos malgastando también.
Este es un punto delicado, pues tenemos que conocer lo que tenemos instalado para evitar conflictos de software y eliminar innecesario, podemos ver el listado o eliminarlo con estos comandos:
En sistemas basados en Debian:
dpkg –list
dpkg –info packagename
dpkg remove packagename
En sistemas basados en Red Hat:
yum list installed
yum list packagename
yum remove packagename
3 – Mantener software y sistema actualizado. 
Es una forma de minimizar el riesgo de bugs en las aplicaciones y sistema como hemos visto en el anterior párrafo. Hay que tener en cuenta que no se deben aplicar nada más lanzarse, hay que probarlas por si tiene alguna afectación o tiene algún conflicto. Otro punto importante es que la última versión de sistema operativo o software no tiene porqué ser la mejor, aunque se apliquen los parches de seguridad anteriores podemos caer en nuevos, con lo que quizás renta más tener algo menos actualizado pero más parcheado y testeado.
4 – Usar extensiones de seguridad.
Son un añadido y algunas son muy efectivas, como es el caso de SELinux entre otras, en donde establece políticas para el propio Kernel.
SELinux es una colección de parches que modifican el núcleo del sistema operativo Linux, fortaleciendo los mecanismos de control de acceso y forzando la ejecución de los procesos dentro de un entorno con los mínimos privilegios necesarios. Es usado en el departamento de defensa de EEUU.
5- Deshabilitar acceso root
Nunca debemos acceder o deberíamos poder acceder a una máquina directamente como usuario root, si hay una cosa que define a Linux es este tema, para eso existe la escalada de privilegios, para poder en un momento determinado que lo necesitemos, cambiar al usuario administrador, y en estos temas incluyo accesos por SSH y demás protocolos remotos, con ataques como el antes mencionado “Man in the middle” se puede intentar descifrar la contraseña pinchando la conexión y debemos de tener en cuenta que en ese punto no es que tengamos el sistema comprometido, está perdido y la medida seria apagado o desconexión de la red.
6- Deshabilitar servicios innecesarios del arranque.
Cuanto más nos ciñamos a lo que necesitamos más seguros estaremos, es la política que vemos que tenemos que tener.
con este comando listamos servicios activos en cada run level:
chkconfig –list
Para deshabilitarlos primero paramos el servicio si estuviera encendido y deshabilitamos el arranque al inicio.
service servicename stop
chkconfig servicename off
7- Controlar puertos abiertos.
No queremos dejar las puertas abiertas a ataques, para cerrarlos usaremos Iptables como buena opción para ello
 8- Borrar o no instalar XWindows.
El uso de Linux en modo servidor se debe realizar en modo consola, en todo el artículo separamos lo que necesitamos y lo que no.si necesitamos comprobar una aplicación o un interfaz web, ¿porqué no configurarlo para poder acceder en otra máquina?.
9- separación de particiones.
De esta forma podremos controlar de forma diferente cada una dependiendo de las necesidades, no tienen igual importancia /home y /var que /tmp, de echo hay que tener en cuenta que las tres son susceptibles de llenarse de forma súbita, sea por un usuario descuidado, por un crecimiento desmedido de los logs o los temporales.
De esta forma sobre el /etc/fstab podremos establecer permisos específicos para cada una de ellas. Como prevenir instalaciones de binarios.
10- Auditar logs.
Es nuestra mayor fuente de información, no sólo a nivel de errores si no en terminos generales, cuanto mejor se interpreten mejor vamos a conocer como se comporta nuestro sistema y podremos sacar estadísticas, errores, tendremos ideas para hacer mejoras y sobre todo para prevenir el primer paso si alguien quiere intentar un ataque o comprometer el sistema, si tenemos peticiones repetidas desde un mismo destino de forma sospechosa.

Saludos!.
Andriusman

Fuente:http://www.habitacion511.eu/index.php/consejos-de-seguridad-para-un-servidor-en-linux/

No hay comentarios:

Publicar un comentario