Red code, red code...

Hablaremos un poco de técnicas y algunos consejos para mejorar la experiencia en torno a la seguridad en sistemas GNU/Linux, nos ocuparemos de cosas básicas como actualizaciones, contraseñas seguras y aspectos especiales para administradores como aseguramiento de puertos, SSH, amenazas a nivel de aplicaciones, kernel y de red.

Quisiera empezar con una excelente frase que leí en alguno de los muchos papers de seguridad que estuve revisando para la elaboración de este post, dice: No preguntes qué puede hacer Linux por ti, pregúntate qué puedes hacer tú por Linux.
GNU/Linux es relativamente seguro, pero conforme está siendo más usado se están desarrollando más amenazas enfocadas a dicho sistema. Se publican exploits y malware, en la mayoría parchados de inmediato. Pues muchas de las vulnerabilidades en nuestros sistemas no son inherentes únicamente al sistema operativo, sino a su configuración, uso y actualización.
Y ahora, vienen las preguntas comunes que debes realizarte antes de entrar manos a la obra.
Primeramente debemos determinar qué queremos asegurar, como hacerlo y porqué hemos elegido tales opciones. Podríamos explicar que solamente queremos proteger nuestros datos, mantenemos un servicio sensible en marcha, lease un servidor web o de correo personal o solo te basta con proteger tu equipo. ¿Contra qué lo estamos protegiendo? Podemos preguntarnos también las probabilidades de que algo malo ocurra, por ejemplo una intrusión física, ingeniería social (Hola, soy Juan de servicios informáticos, necesito su contraseña para restablecer su servicio); que de hecho muchos de estos sucesos como escaneo de red (NMAP) ocurren a diario en cualquier red, una intrusión física o incluso un empleado vende datos privados a otras empresas o gobiernos (si eres un SysAdmin y trabajas para una empresa).
Una vez terminadas las preguntas y aclaradas las dudas, comenzamos a implementar la seguridad. Además, podemos listar los posibles resultados de una mala o nula configuración de privacidad:
Perdida de datos, costes de tiempo, perdida de productividad, problemas legales, etc.

Instalación adecuada.

Podemos optar por realizar la instalación por el medio que consideremos más adecuado a las necesidades de cada uno, puede ser USB, netinstall o desde CD. Lo importante aquí es que al descargar la imagen ISO compruebes las firmas. Si estás en el área de servidores en una empresa considera mantener los usuarios lejos de los servidores, bloquear las maquinas contra modificaciones (puede que uno de tus empleados sea un encubierto malvado, se vale ser paranoico), ampliamente recomendado es usar la criptografía donde sea necesario para almacenar datos sensibles y escanea constantemente la red  donde trabajas en busca de puertos abiertos, software instalado que no debería estar ahí. Dichas maquinas están en uso por empleados que se limitan a revisar correo electrónico o navegar por la red; pero hay que tomar en cuenta que van a existir empleados con las capacidades avanzadas y la curiosidad de querer modificar sus maquinas sea con buenas o malas intenciones, por ello: protege la BIOS con una contraseña, configura la maquina para que arranque solo desde disco duro, usa clave del prompt de LILO, evita dar acceso a root, usa un firewall.
Con todo esto y una manera de administrar de manera segura con SSH tus maquinas, tendrás un ambiente seguro, pero nada es 100% en el mundo de la seguridad. Si una maquina de un usuario se muere, no hay problema, si se cae el servidor de correo, www, ftp, todo se ha ido al drenaje. HAZ COPIAS DE SEGURIDAD.

Ficheros del sistema.

1- /etc/passwd. Uno de los ficheros más críticos de un sistema UNIX. prácticamente encuentras las cosas como son en una cadena más o menos así: nombreusuario:contraseña_cifrada:UID:GID:campo_GECOS:direct_personal:login_shell. Las contraseñas se guardan utilizando un hash de un sólo sentido, no puedes sacarlas a partir del hash (MD5 Y SHA1 SON INSEGUROS!) pero puedes pasar por el hash muchísimas strings para dar con la verdadera y se acabó, solamente si la contraseña es débil, lo cual es terrible porque la mayoría de usuarios tiene una super sencilla.
2- /etc/shadow. Protegelo a toda costa, aquí están los nombres y contraseñas, solo root puede leerlo.
3- /etc/groups. El fichero de grupos contiene toda la información de pertenencia a grupos, y
opcionalmente elementos como la contraseña del grupo (generalmente almacenado
en gshadow en los sistemas actuales), este fichero debe ser legible por el
mundo para que el sistema funcione correctamente. El formato es:
nombregrupo:contraseña_cifrada:GID:miembro1,miembro2,miembro3
4- /etc/securetty
Este fichero contiene una lista de tty’s desde los que el root puede hacer un
login. Los tty’s de la consola suelen ir de /dev/tty1 a /dev/tty6. Los puertos
serie (pongamos que quieres hacer login como root desde módem) son /dev/ttyS0 y
superiores por lo general. Si quieres permitirle al root hacer login vía red
(una muy mala idea, utiliza sudo) entonces añade /dev/ttyp1 y superiores (si
hay 30 usuarios conectados y el root intenta conectar, el root aparecerá como
procedente de /dev/ttyp31). Generalmente, sólo se debería permitir conectar al
root desde /dev/tty1, y es aconsejable deshabilitar la cuenta de root, sin
embargo antes de hacer esto, por favor, instala sudo o un programa que permita
al root acceder a comandos.

Single Boot Mode.

Si reiniciamos nuestro equipo y entramos al GRUB, podemos entrar a la terminal y escribir “single”, ahora el sistema corre como root, cambia tu contraseña.

Reiniciamos con #shutdown -r now y entramos de nuevo a Linux usando la nueva contraseña.
Cambia ahora la nueva contraseña por la anterior con #passwd root, ahora agregamos algo de seguridad al single mode en el archivo /boot/grub/menu.lst: password=lo-que-desea.
Bien, ahora que quieras entrar al GRUB pedirá la contraseña del archivo menu.lst, felicidades, su sistema tiene un riesgo menos de seguridad. Recomiendo también proteger la BIOS para evitar arranques desde USB. Aunque alguien con un destornillador y conocimientos puede hacernos daño.

Estas son algunas buenas practicas y consejos que pueden ser tomados en cuenta, para no alargar el post y digerir el contenido actual, será creada una segunda parte con contenido centrado a protección del sistema modificando archivos del sistema, reglas de firewall, cifrado y red.

8
Deja una respuesta

avatar
4 Hilos de comentario
4 Respuestas de hilo
0 Seguidores
 
Comentario más reaccionado
El hilo de comentarios más caliente
3 Autores de comentarios
NoelciberBuenas prácticas de seguridad en GNU/Lin...DrGus Autores de comentarios recientes
  Suscribirse  
Los más recientes Los más antiguos Más votados
Notificarme las
ciber
Invitado
ciber

Hola, muy buen post! Recomendás algún libro o una fuente para ampliar más esto? Gracias

Noel
Admin

En 9h sale un nuevo post que avanza en este tema 😉

Anónimo
Invitado
Anónimo

Lo esperaré! Gracias

ciber
Invitado
ciber

Lo espero!

DrGus
Admin

Ya salió, el 22 de Julio. https://lignux.com/proteccion-de-un-sistema-gnulinux/

A lo mejor te interesa leer otros artículos del mismo autor (autora, en este caso), si clicas en su nick, debajo del título, podrás ver otros artículos que ha escrito en el blog.

¡Saludos!

trackback

[…] Hablaremos un poco de técnicas y algunos consejos para mejorar la experiencia en torno a la seguridad en sistemas GNU/Linux, nos ocuparemos de cosa  […]

DrGus
Admin

Buen artículo, muy completito :3 Es verdad lo que dicen, no? La mayor vulnerabilidad de cualquier sistema está entre la silla y el teclado x’D

¡Gracias por escribir!

trackback

Información Bitacoras.com

Valora en Bitacoras.com: Hablaremos un poco de técnicas y algunos consejos para mejorar la experiencia en torno a la seguridad en sistemas GNU/Linux, nos ocuparemos de cosas básicas como actualizaciones, contraseñas seguras y aspectos especiales p…