Introducción a la Seguridad para su Sevidor Linux

Actualizado el . Posteado en Blog. Visitado 1701 veces.

                                    Seguridad de su Sevidor Linux

Introducción


Para poder tomar el control de su propio servidor Linux es una gran oportunidad para probar cosas nuevas y aprovechar el poder y la flexibilidad de una gran plataforma. Sin embargo, los administradores de servidores Linux deben tomar la misma precaución que es apropiada con cualquier computadora conectada a la red y mantenerla segura.

Hay muchos temas de seguridad diferentes que caen bajo la categoría general de "seguridad de Linux" y muchas opiniones en cuanto a lo que es un nivel apropiado de seguridad que aparece para un servidor Linux.

Lo principal a tomar lejos de esto es que usted tendrá que decidir para qué protecciones de seguridad serán necesarias. Antes de hacer esto, debe ser consciente de los riesgos y los trade offs, y decidir sobre el equilibrio entre la usabilidad y la seguridad que tiene sentido para usted.

Este artículo está diseñado para ayudarle a orientarse con algunas de las medidas de seguridad más comunes que se deben tomar en un entorno de servidor Linux. Esta lista no es exhaustiva y no cubre las configuraciones recomendadas, sino que proporcionará enlaces a recursos más completos y discutirá por qué cada componente es una parte importante de muchos sistemas.

Bloqueo de Acceso con Firewalls


Uno de los pasos más fáciles de recomendar a todos los usuarios es habilitar y configurar un firewall. Los firewalls actúan como una barrera entre el tráfico general de Internet y su máquina. Miran el tráfico entrado y salido de su servidor, y deciden si debe permitir que la información sea entregada.

Lo hacen comprobando el tráfico en cuestión con un conjunto de reglas configuradas por el usuario. Por lo general, un servidor sólo utilizará algunos puertos de red específicos para servicios legítimos. El resto de los puertos no se utilizan y deben estar protegidos con seguridad detrás de un Firewalls, lo que negará todo el tráfico destinado a estas ubicaciones.

Esto le permite eliminar datos que no está esperando e incluso condicionar el uso de sus servicios reales en algunos casos. Las reglas de Firewall proporcionan una buena base para la seguridad de la red.

Hay bastantes soluciones de Firewalls disponibles. Vamos a discutir brevemente algunas de las opciones más populares a continuación.

UFW


UFW significa firewall sin complicaciones. Su objetivo es proporcionar una buena protección sin la complicada sintaxis de otras soluciones.

UFW, así como la mayoría de los firewalls de Linux, es en realidad un front-end para controlar el firewall de netfilter incluido con el kernel de Linux. Esto suele ser un Firewall simple para usar para personas que no están familiarizadas con las soluciones de Firewall de Linux y generalmente es una buena opción.

Puede aprender cómo habilitar y configurar el Firewall UFW y obtener más información haciendo clic en el anterior enlace.

IPTables


Quizás la solución de Firewall de Linux más conocida sea iptables. IPTables es otro componente utilizado para administrar el Firewall de netfilter incluido en el kernel de Linux. Ha existido por mucho tiempo y ha sido objeto de intensas auditorías de seguridad para garantizar su seguridad. Hay una versión de iptables llamada ip6tables para crear restricciones IPv6.

Probablemente encontrará configuraciones iptables durante su tiempo administrando en Linux. La sintaxis puede ser complicada de entender al principio, pero es una herramienta increíblemente potente que se puede configurar con conjuntos de reglas muy flexibles.

Puedes aprender más  a usar iptables en distribuciones basadas en CentOS.

IP6Tables

Como se mencionó anteriormente, el iptables se utiliza para manipular las tablas que contienen reglas IPv4. Si tiene habilitado IPv6 en su servidor, también tendrá que prestar atención al equivalente IPv6: ip6tables .

El Firewall netfilter que se incluye en el kernel de Linux mantiene el tráfico IPv4 e IPv6 completamente separados. Estos se almacenan en diferentes tablas. Las reglas que dictan el destino final de un paquete son determinadas por la versión del protocolo que se está utilizando.

Lo que esto significa para la administración del servidor es que se debe mantener un conjunto de reglas independiente cuando la versión 6 esté habilitada. El comando ip6tables comparte la misma sintaxis que el comando iptables , por lo que implementar el mismo conjunto de restricciones en la tabla de la versión 6 suele ser sencillo. Sin embargo, debe estar seguro de que el tráfico dirigido a sus direcciones IPv6 funcione correctamente.

NFTables


Aunque iptables ha sido durante mucho tiempo el estándar para Firewall en un entorno Linux, recientemente se ha agregado un nuevo Firewall llamado nftables al kernel de Linux. Este es un proyecto del mismo equipo que hace iptables, y está destinado a reemplazar eventualmente iptables.

El Firewall de nftables intenta implementar una sintaxis más legible que la encontrada en su predecesor iptables, e implementa la compatibilidad con IPv4 e IPv6 en la misma herramienta. Aunque la mayoría de las versiones de Linux en este momento no se envían con un kernel lo suficientemente nuevo para implementar nftables, pronto será muy común, y usted debe tratar de familiarizarse con su uso.

Uso de SSH para Iniciar Sesión de Forma Segura


Cuando administre un servidor en el que no tenga acceso local, deberá iniciar sesión remotamente. La forma estándar y segura de lograr esto en un sistema Linux es a través de un protocolo conocido como SSH, que significa shell seguro.

SSH proporciona la capacidad de túnel de tráfico inseguro a través de una conexión segura, X-reenvío (interfaz gráfica de usuario a través de una conexión de red) y mucho más. Básicamente, si no tiene acceso a una conexión local o gestión fuera de banda, SSH debe ser su principal forma de interactuar con su computadora.

Aunque el protocolo en sí es muy seguro y ha sido objeto de una extensa investigación y revisión de código, sus opciones de configuración pueden ayudar o dificultar la seguridad del servicio. Discutiremos algunas opciones a continuación.

Contraseña vs SSH-Clave de Inicio de Sesión


SSH tiene un modelo de autenticación flexible que le permite iniciar sesión utilizando una serie de métodos diferentes. Las dos opciones más populares son la contraseña y la autenticación de clave SSH.

Aunque la autenticación de contraseñas es probablemente el modelo más natural para la mayoría de los usuarios, también es la menos segura de estas dos opciones. Los inicios de sesión de contraseña permiten que un posible intruso adivine continuamente las contraseñas hasta que se encuentre una combinación exitosa. Esto se conoce como fuerza bruta y puede ser automatizado fácilmente por posibles atacantes con herramientas modernas.

Las teclas SSH, por otra parte, funcionan generando un par de claves seguro. ya se que crea una clave pública como un tipo de prueba para identificar un usuario. Se puede compartir públicamente sin problemas y no puede utilizarse para otra cosa que identificar un usuario y permitir un inicio de sesión al usuario con la clave privada correspondiente. La clave privada debe mantenerse en secreto y se utiliza para pasar la prueba de su clave pública asociada.

Básicamente, puede agregar su clave SSH pública en un servidor y le permitirá iniciar sesión utilizando la clave privada correspondiente. Estas llaves son tan complejas que la fuerza bruta no es práctica. Además, opcionalmente puede añadir frases de contraseña largas a su clave que añade aún más seguridad.

Para obtener más información acerca de SSH consulte este enlace para aprender a configurar las claves SSH en su servidor .

Implementar fail2ban para Prohibir Direcciones IP Maliciosas


Un paso que ayudará con la seguridad general de su configuración SSH es implementar una solución como fail2ban. Fail2ban es un servicio que supervisa los archivos de registro para determinar si es probable que un sistema remoto no sea un usuario legítimo y, a continuación, prohíba temporalmente el tráfico futuro de la dirección IP asociada.

La configuración de una política sana de fail2ban puede permitir que señale los equipos que están continuamente intentando iniciar sesión sin éxito y agregar reglas de Firewall para eliminar el tráfico de ellos durante un período de tiempo establecido. Esta es una manera fácil de obstaculizar los métodos de fuerza bruta a menudo utilizados porque tendrán que tomar un descanso durante bastante tiempo cuando están prohibidos. Esto por lo general es suficiente para desalentar otros intentos de fuerza bruta.

Hay guías similares para Debian y CentOS.

Implementar un Sistema de Detección de Intrusiones para Detectar Entradas no Autorizadas


Una consideración importante a tener en cuenta es el desarrollo de una estrategia para detectar el uso no autorizado. Usted puede tener medidas preventivas en su lugar, pero también necesita saber si han fracasado o no.

Un sistema de detección de intrusiones, también conocido como IDS, cataloga los detalles de configuración y archivo cuando se encuentra en un estado conocido. Luego ejecuta comparaciones con estos estados grabados para averiguar si los archivos han sido cambiados o los ajustes han sido modificados.

Hay bastantes sistemas de detección de intrusiones. Vamos a repasar algunos más tarde.

Tripwire


Una de las implementaciones IDS más conocidas es tripwire. Tripwire compila una base de datos de archivos de sistema y protege sus archivos de configuración y binarios con un conjunto de claves. Una vez que se hayan seleccionado los detalles de la configuración y se hayan definido las excepciones, las secuencias posteriores notificarán cualquier alteración de los archivos que supervisa.

El modelo de política es muy flexible, lo que le permite moldear sus propiedades a su entorno. A continuación, puede configurar las ejecuciones de tripwire a través de un trabajo cron e incluso implementar notificaciones por correo electrónico en caso de actividad inusual.

 

Aide


Otra opción para un IDS es Aide. Similar a tripwire, Aide opera construyendo una base de datos y comparando el estado actual del sistema con los valores conocidos que ha almacenado. Cuando surge una discrepancia, puede notificar al administrador del problema.

Aide y tripwire ofrecen soluciones similares al mismo problema. Echa un vistazo a la documentación y prueba ambas soluciones para averiguar cuál te gusta más.

 

Psad


La herramienta psad se refiere a una parte diferente del sistema que las herramientas enumeradas anteriormente. En lugar de supervisar los archivos del sistema, psad vigila los registros del Firewall para intentar detectar actividad maliciosa.

Si un usuario está intentando detectar vulnerabilidades con una exploración de puertos, por ejemplo, psad puede detectar esta actividad y alterar dinámicamente las reglas de Firewall para bloquear al usuario infractor. Esta herramienta puede registrar diferentes niveles de amenaza y basar su respuesta en la gravedad del problema. También puede enviar un correo electrónico al administrador.

Para aprender a usar psad como IDS de red , siga este enlace.

Bro


Otra opción para un IDS basado en red es Bro. Bro es en realidad un marco de monitoreo de red que puede ser utilizado como un IDS de red o para otros propósitos como recopilar estadísticas de uso, investigar problemas o detectar patrones.

El sistema Bro se divide en dos capas. La primera capa supervisa la actividad y genera lo que considera eventos. La segunda capa ejecuta los eventos generados a través de un marco de políticas que dicta lo que se debe hacer, si acaso, con el tráfico. Puede generar alertas, ejecutar comandos del sistema, simplemente registrar la ocurrencia, o tomar otras rutas.

 

RKHunter


Aunque técnicamente no es un sistema de detección de intrusos, rkhunter opera sobre muchos de los mismos principios que los sistemas de detección de intrusos basados ​​en host para detectar rootkits y malware conocido.

Mientras que los virus son raros en el mundo de Linux, malware y rootkits están alrededor y pueden comprometer su computadora o permitir el acceso continuo a un explotador exitoso. RKHunter descarga una lista de exploits conocidos y luego verifica su sistema contra la base de datos. También le avisa si detecta configuraciones inseguras en algunas aplicaciones comunes.

 

Consejo de Seguridad General


Mientras que las herramientas y configuraciones anteriores pueden ayudarle a proteger porciones de su sistema, la buena seguridad no viene de simplemente implementar una herramienta y olvidarse de ella. Buena seguridad se manifiesta en una cierta mentalidad y se logra a través de la diligencia, el escrutinio y la participación en la seguridad como un proceso.

Hay algunas reglas generales que pueden ayudar a establecer en la dirección correcta en lo que respecta a usar su sistema de forma segura.

Preste Atención a las Actualizaciones Periódicamente


Las vulnerabilidades de software se encuentran todo el tiempo en casi todo tipo de software que pueda tener en su sistema. Los mantenedores de la distribución generalmente hacen un buen trabajo para mantenerse al día con los últimos parches de seguridad y empujar esas actualizaciones a sus repositorios.

Sin embargo, tener actualizaciones de seguridad disponibles en el repositorio hace que su servidor no sea bueno si no ha descargado e instalado las actualizaciones. Aunque muchos servidores se benefician de contar con versiones estables y bien probadas del software del sistema, los parches de seguridad no deben ser postergados y deben considerarse actualizaciones críticas.

La mayoría de las distribuciones proporcionan listas de correo de seguridad y repositorios de seguridad separados para descargar e instalar parches de seguridad únicamente.

Tenga Cuidado al Descargar Software Fuera de los Canales Oficiales


La mayoría de los usuarios se quedarán con el software disponible de los repositorios oficiales para su distribución, y la mayoría de las distribuciones ofrecen paquetes firmados. Los usuarios generalmente pueden confiar en los mantenedores de la distribución y concentrar su preocupación en la seguridad del software adquirido fuera de los canales oficiales.

Puede optar por confiar en paquetes de su distribución o software que está disponible en el sitio web oficial de un proyecto, pero tenga en cuenta que a menos que esté auditando cada parte del software usted mismo, existe riesgo. La mayoría de los usuarios sienten que este es un nivel de riesgo aceptable.

Por otro lado, el software adquirido a partir de repositorios aleatorios y PPAs que son mantenidos por personas u organizaciones que no reconocen puede ser un riesgo de seguridad enorme. No hay reglas establecidas, y la mayoría de las fuentes no oficiales de software seguramente serán completamente seguras, pero tenga en cuenta que está tomando un riesgo cada vez que confía en otra parte.

Asegúrese de que puede explicar por sí mismo por qué confía en la fuente. Si no puede hacer esto, considere considerar su riesgo de seguridad como una preocupación más que la comodidad que obtendrá.

Conozca sus Servicios y Limite


Aunque es probable que todo el punto de ejecutar un servidor proporcione servicios a los que puede acceder, limite los servicios que se ejecutan en su computadora a aquellos que utiliza y necesita. Considere que cada servicio habilitado sea un posible vector de amenazas e intente eliminar tantos vectores de amenazas como pueda sin afectar a su funcionalidad principal.

Esto significa que si está ejecutando un servidor sin cabeza (sin monitor conectado) y no ejecuta ningún programa gráfico (no web), debe deshabilitar y desinstalar probablemente su servidor de visualización X. Medidas similares pueden ser tomadas en otras áreas. ¿No hay una impresora? Deshabilite el servicio "lp". ¿No comparte la red de Windows? Deshabilitar el servicio "samba".

Puede descubrir qué servicios tiene en su computadora a través de una variedad de medios. En este artículo se describe cómo detectar servicios habilitados en la sección "crear una lista de requisitos".

No Utilice FTP; Utilice SFTP en su Lugar


Esto podría ser difícil para muchas personas a aceptar, pero FTP es un protocolo que es inherentemente e inseguro. Toda la autenticación se envía en texto sin formato, lo que significa que cualquier persona que supervise la conexión entre su servidor y su computadora local puede ver sus datos de inicio de sesión.

Hay muy pocos casos en los que FTP probablemente esté bien implementar. Si está ejecutando un anónimo, público, puede leer sólo el espejo de descarga, FTP es una opción decente. Otro caso en el que FTP es una buena opción es cuando simplemente está transfiriendo archivos entre dos equipos que están detrás de un Firewall habilitado para NAT, y confía en que su red es segura.

En casi todos los demás casos, debe utilizar una alternativa más segura. La suite SSH viene completa con un protocolo alternativo llamado SFTP que opera en la superficie de una manera similar, pero basado en la misma seguridad del protocolo SSH.

Esto le permite transferir información hacia y desde su servidor de la misma manera que tradicionalmente utilizaría FTP, pero sin el riesgo. La mayoría de los clientes FTP modernos también pueden comunicarse con servidores SFTP.

Para aprender a utilizar SFTP para transferir archivos de forma segura , consulte esta guía.

Implementar Políticas de Seguridad de Usuarios Sensibles


Hay una serie de pasos que puede tomar para proteger mejor su sistema al administrar usuarios.

Una sugerencia es deshabilitar los inicios de sesión de root. Dado que el usuario root está presente en cualquier sistema similar al POSIX y es una cuenta todo-poderosa, es un objetivo atractivo para muchos atacantes. La deshabilitación de los inicios de sesión de root suele ser una buena idea después de haber configurado el acceso de sudo o si se siente cómodo con el comando su. Mucha gente no está de acuerdo con esta sugerencia, pero examine si es la correcta para usted.

Es posible deshabilitar los inicios de sesión de root remotos dentro del demonio SSH o deshabilitar los inicios de sesión locales, puede realizar restricciones en el /etc/securetty . También puede establecer el shell del usuario root en un shell distinto para deshabilitar el acceso de shell de root y configurar reglas de PAM para restringir los inicios de sesión de root también.

Otra buena política para implementar con cuentas de usuario es crear cuentas únicas para cada usuario y servicio y darles sólo los permisos mínimos necesarios para realizar su trabajo. Bloquear todo lo que no necesitan acceso y quitar todos los privilegios de los paralizar.

Esta es una política importante porque si un usuario o servicio se ve comprometido, no conduce a un efecto dominó que permite al atacante obtener acceso a aún más del sistema. Este sistema de compartimentación le ayuda a aislar los problemas, al igual que un sistema de mamparos y puertas estancas puede ayudar a evitar que un buque se hunda cuando hay una violación del casco.

En una línea similar a las políticas de servicios que discutimos anteriormente, también debe tener cuidado de desactivar las cuentas de usuario que ya no son necesarias. Esto puede suceder cuando desinstala software o si un usuario ya no tiene acceso al sistema.

Preste Atención a los Ajustes de Permiso


Los permisos de archivos son una enorme fuente de frustración para muchos usuarios. Encontrar un equilibrio para los permisos que le permiten hacer lo que necesita hacer mientras no exponerse a los daños puede ser difícil y exige atención cuidadosa y pensamiento en cada escenario.

La configuración de una directiva umask "sana" (la propiedad que define los permisos predeterminados para los nuevos archivos y directorios) puede ayudar mucho a crear buenos valores predeterminados. Puede obtener más información sobre cómo funcionan los permisos y cómo ajustar su valor de umask aquí.

En general, usted debe pensar dos veces antes de establecer cualquier cosa, especialmente si es accesible en cualquier forma a la Internet. Esto puede tener consecuencias extremas. Además, no debe establecer el bit SGID o SUID en permisos a menos que sepa absolutamente lo que está haciendo. Además, compruebe que sus archivos tengan un propietario y un grupo.

La configuración de los permisos de archivo variará considerablemente en función de su uso específico, pero siempre debe intentar ver si hay una forma de hacerlo con menos permisos. Esta es una de las cosas más fáciles para equivocarse y un área donde hay un montón de malos consejos flotando en Internet.

Compruebe Regularmente si hay Malware en sus Servidores


Aunque por lo general Linux está menos dirigido por Malware que Windows, no está inmune a los programas maliciosos. Junto con la implementación de un IDS para detectar intentos de intrusión, la detección de malware puede ayudar a identificar rastros de actividad que indican que el software ilegítimo está instalado en su computadora.

Hay una serie de escáneres de malware disponibles para los sistemas Linux que se pueden utilizar para validar regularmente la integridad de sus servidores. Linux Malware Detect, también conocido como maldet o LMD, es una opción popular que se puede instalar y configurar fácilmente para buscar firmas de malware conocidas. Se puede ejecutar manualmente para realizar análisis únicos y también se puede desmembrar para ejecutar exploraciones programadas regularmente. Los informes de estas exploraciones se pueden enviar por correo electrónico a los administradores del servidor.

Asegurar el Software Específico que está Utilizando


Aunque esta guía no es lo suficientemente grande como para pasar por las especificaciones de asegurar cada tipo de servicio o aplicación, hay muchos tutoriales y directrices disponibles en línea. Debe leer las recomendaciones de seguridad de cada proyecto que desee implementar en su sistema.

Además, el software popular del servidor como los servidores de la tela o los sistemas de gerencia de la base de datos tienen Web site y bases de datos enteros dedicados a la seguridad. En general, debe leer y asegurar todos los servicios antes de ponerlo en línea.

 

Conclusión


Ahora debe tener una comprensión adecuada de las prácticas generales de seguridad que puede implementar en su servidor Linux. Aunque nos hemos esforzado por mencionar muchas áreas de gran importancia, al final del día, usted tendrá que tomar muchas decisiones por su cuenta. Cuando administra un servidor, tiene que asumir la responsabilidad de la seguridad de su servidor.

Esto no es algo que usted pueda configurar de una sola vez en un principio, es un proceso y un ejercicio continuo de auditoría de su sistema, implementación de soluciones, evaluación de registros y alertas, reevaluación de sus necesidades, etc. Debe estar atento en la protección de su sistema y siempre estar evaluando y supervisando los resultados de sus soluciones.

 

Fuente. Artículo traducido y con muy ligeras modificaciones de: https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-debian

licencia creative common
Este trabajo está licenciado por Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Sobre el Autor
Pipe Peña
Author: Pipe Peña
Soy un loco enamorado de la vida. Licenciado en Ciencias Sociales y Humanas, amante de la informática y la astrofísica. Me gusta crear e investigar proyectos que enriquezcan la construcción y desarrollo del conocimiento individual y colectivo. Me encantan los videojuegos, el cine, la química, matemáticas, la física cuántica y la música, en donde actualmente soy compositor. Me baso en la idea que toma Baruch Spinoza sobre Dios.

Imprimir


Comentar este artículo en los foros (0 respuestas).