GNU/Linux >> Tutoriales Linux >  >> Linux

Equilibrar la seguridad de Linux con la usabilidad

Internet está lleno de gente que quiere destruir tus cosas. Algunos de ellos son simplemente curiosos, algunos buscan emociones fuertes, otros intentan robar sus datos y algunos solo quieren ver cómo se queman las cosas. Cualquiera que sea su motivo, es su trabajo como administrador de sistemas mantener a estos atacantes fuera de sus servidores. Si está ejecutando un sistema Linux, este artículo es para usted. Vamos a repasar algunas de las razones por las que necesita fortalecer sus sistemas y otras consideraciones de alto nivel.

Los sistemas operativos son un equilibrio

Construir un sistema operativo es un equilibrio difícil, y una distribución de Linux no es diferente. Debe tener en cuenta la funcionalidad lista para usar que la mayoría de la gente querrá y la accesibilidad para una amplia gama de conjuntos de habilidades de los administradores. Si hace que su distribución sea muy segura, pero un administrador de sistemas novato no sabe cómo trabajar con ella... bueno, encontrará una distribución más fácil para aprender, y ahora ha perdido a ese administrador por otra distribución. . Por lo tanto, no sorprende que, justo después de la instalación, la mayoría de las distribuciones de Linux necesiten algunos ajustes para bloquearlas. Esto ha mejorado con los años, ya que los propios instaladores se han vuelto más fáciles de usar y más ricos en funciones. Puede crear un sistema bastante personalizado directamente desde el instalador de GUI. Un sistema Red Hat Enterprise Linux (RHEL) base, por ejemplo, si ha elegido el conjunto de paquetes base, en realidad es bastante ligero en servicios y paquetes innecesarios.

Hubo un tiempo en que eso no era cierto. ¿Te imaginas contraseñas codificadas, pero disponibles en /etc/password para que cualquier usuario las lea? ¿O toda la gestión del sistema se realiza a través de Telnet? SSH ni siquiera estaba activado de forma predeterminada. ¿Cortafuegos basado en host? Completamente opcional. Entonces, hace 20 años, bloquear un sistema Linux recién instalado significaba una larga lista de tareas. Afortunadamente, a medida que la informática ha madurado, también lo ha hecho la instalación predeterminada de casi cualquier sistema operativo.

¿Qué es el "endurecimiento" del sistema?

Reforzar un sistema es el acto de hacer que el sistema sea más seguro, un objetivo más difícil para los malos. Imagina que tienes una valla blanca que protege tu casa. Probablemente sea suficiente para mantener honestas a las personas honestas:ven la cerca y el pequeño pestillo en su puerta y deciden respetar el hecho de que obviamente no quiere personas en su jardín. Te sientes seguro sabiendo que nadie entrará a tu jardín y pisoteará tus flores porque la gente respeta los límites de tu propiedad. Sin embargo, todo lo que se necesita es un niño al que no le importe nada de eso para atravesar su jardín porque no se molestan en andar. Tu valla blanca y el cerrojo endeble no son nada para que ellos los abran y los atraviesen.

El endurecimiento sería como actualizar la cerca blanca de estacas a una de malla metálica de seis pies de altura y agregarle un pestillo con un candado. Alguien lo suficientemente decidido aún podría saltar la cerca, pero ese niño que estaba cortando tu jardín probablemente no se molestará más, porque es demasiado trabajo.

Vea, la seguridad informática no se trata de ser completamente irrompible, a menos que sea Oracle; se trata de ser lo suficientemente seguro para que sea difícil entrar, y al mismo tiempo lo suficientemente abierto como para que su sistema realmente pueda hacer lo que está diseñado para hacer. Un servidor web tan bloqueado que no puede ejecutar un sitio web en él no es un servidor web muy bueno, como una cerca de tela metálica sin puerta.

Consejos de endurecimiento

A continuación no se muestra un procedimiento paso a paso, sino algunos puntos generales a tener en cuenta a medida que trabaja para fortalecer su sistema.

Deshágase de la GUI

¿Está ejecutando una estación de trabajo? ¿O un servidor? Los servidores no necesitan GUI. Es solo una cosa más que consume espacio y CPU. Cuando instalo un sistema, lo hago con el mínimo espacio que permite el instalador. Eso significa que no hay GUI. Simplemente no lo necesitas. Hay algunas aplicaciones que necesitan un entorno X para instalarse y administrarse (lo cual es una tontería en la era actual, pero sucede). Sin embargo, si no está ejecutando uno de esos, no se moleste en instalar una GUI ni se preocupe por ninguno de sus requisitos.

Servicios innecesarios

Dependiendo de su distribución, es posible que tenga algunos servicios instalados como parte de la base que simplemente no son necesarios, como en esos días de Telnet a los que me referí anteriormente, cuando las distribuciones aún estaban en transición de Telnet a SSH para la administración, obtendría ambos habilitados desde una instalación base. Tienes que elegir cuál quieres conservar, por lo que probablemente querrás desactivar Telnet o al menos desactivar el firewall. Hoy en día, esos servicios podrían ser algo más como el servicio de impresión CUPS o tal vez el Agente de transferencia de correo (MTA) del sistema. Se pueden configurar listos para usar para escuchar las conexiones entrantes. Si bien es probable que necesite un MTA, no lo necesita para aceptar conexiones externas. En un systemd sistema, puede enumerar todos los servicios activos con bastante facilidad. También puede revisar el resultado de netstatss para ver qué servicios están escuchando conexiones. Si no sabe qué es un servicio, ahora es un buen momento para leer un poco.

Acceso de usuario

A menos que esté ejecutando un servidor de shell, donde las personas realmente necesitan acceso, probablemente querrá pensar detenidamente a quién le da una cuenta de shell en sus sistemas. Esto no es necesariamente una práctica de endurecimiento tanto como una buena administración. Cuantas más cuentas haya, mayor será la huella de las cuentas que pueden verse comprometidas. También es una gran idea tener MUCHO cuidado con la forma en que reparte sudo privilegios Nadie debería tener la contraseña de root, aparte quizás del equipo de administración de sistemas (e incluso ellos no deberían usarla a menos que sea absolutamente necesario). Sudo está ahí por una razón; úsalo.

Cortafuegos basados ​​en host

Hablé bastante sobre esto en mi serie sobre defensa en profundidad. El firewall basado en host es la última línea de defensa de la red; úsalo Fuera de la caja, su distribución puede tener un firewall completamente abierto, o tal vez tenga algunos puertos abiertos predeterminados. ¿Cómo terminan las reglas del cortafuegos? ¿Es este un sistema abierto o cerrado predeterminado? Nunca vi una razón, además de tal vez la resolución de problemas, para tener un firewall abierto predeterminado. Sin embargo, pude ver cómo una instalación base podría tener el firewall configurado de esa manera, por lo que es bueno saberlo o averiguarlo. Todas las astutas reglas de cortafuegos del mundo no sirven de nada si su cortafuegos se abre de forma predeterminada. El software debe estar abierto; los cortafuegos deben estar cerrados.

Protocolos seguros

Hubo un tiempo en el que solo encriptabas el tráfico que tenía una posibilidad razonable de intercambiar datos privados, como contraseñas. Esto se debió a que el cifrado tuvo un costo. Procesar números es para lo que las computadoras son buenas, pero cifrar cada parte de la comunicación agrega latencia. No mucho, pero suma. Bueno, ese no es realmente el problema que solía ser. Estamos en un punto ahora donde realmente no hay razón para no cifrar el tráfico que entra y sale de su sistema. Puede cifrar TLS con LetsEncrypt de forma gratuita, y la administración a través de SSH ya no es una pregunta. Estoy seguro de que hay casos extremos aquí, pero apuesto a que, la mayoría de las veces, la respuesta a "¿Debería estar encriptado?" es probable que "sí".

Recordar el saldo

Recuerda que la seguridad es un equilibrio entre accesibilidad, usabilidad y restricción. Demasiado lejos en cualquiera de esas direcciones, y te meterás en problemas.

[ Descarga gratuita:hoja de referencia de comandos avanzados de Linux. ]


Linux
  1. Mejore el rendimiento del sistema Linux con noatime

  2. Escanee su seguridad Linux con Lynis

  3. Comando de apagado de Linux (con ejemplos)

  4. Programación de tareas del sistema con Cron en Linux

  5. Sobrevivir a una auditoría de seguridad con Enterprise Linux

Auditoría de seguridad de Linux con Lynis

Comando Uptime de Linux con ejemplos

Primeros pasos con el sistema operativo Linux

Encuentre información de hardware del sistema Linux con Hwinfo

Cómo ver las estadísticas del sistema Linux con Saidar

Auditoría de seguridad con Lynis