Hola a todos!
Aquí les dejo un pequeño manual sobre como asegurar nuestro sistema GNU/Linux.
El material es un resumen de la guia de seguridad Fedora con algunas modificaciones para que sea comprensible para los que se están iniciando en este hermoso Sistema Operativo.
Sin dar mas vueltas, aqui esta:
Contraseña del Gestor de Arranque
Los motivos para proteger el gestor de arranque de GNU/Linux son los siguientes:
1.- Prevenir el ingreso en modo de único usuario — Si los atacantes pueden iniciar el sistema en modo de usuario único, automáticamente se registran como usuarios root sin que para ello se les solicite una contraseña de usuario root.
2.- Prevenir el acceso a la consola del GRUB — Si la máquina en cuestión utiliza el GRUB como su gestor de arranque, un atacante puede utilizar la interfaz del editor del GRUB para modificar sus configuraciones, o para reunir información utilizando el comando cat.
3.- Prevenir el acceso a sistemas operativos no seguros — Si el sistema en cuestión es de arranque dual, un atacante puede seleccionar uno de los sistemas en el momento del inicio (por ejemplo, DOS), que ignora controles de acceso y permisos de archivo.
Proteccion de GRUB con contraseña
Puede configurar GRUB para prevenir los dos primeros problemas citados anteriormente añadiendo una directiva de contraseña a su archivo de configuracion. Para hacerlo, primero elija una contraseña fuerte, abra un terminal y ejecute el siguiente comando
$ sudo /sbin/grub-md5-crypt
Cuando se le solicite, ingrese la contraseña del GRUB y presione la tecla Intro. Con esto obtendrá un hash MD5 de la contraseña.
Por ejemplo: si la contraseña es: dragon2010
el hash devuelto sera $1$lkkvX/$qK/9BbwB6dnp3/XN7RKJQ.
A continuación, editaremos el archivo de configuracion del GRUB
$sudo vi /boot/grub/grub.conf
Luego, nos posicionamos debajo de la linea timeout en la session princial, presionamos la tecla "i" y añadimos lo siguiente:
password --md5 <hash-de-contraseña>
Puede que ud. tenga algo como esto:
#boot=/dev/sd* (Recordemos que sd* es para discos S-ATA y hd* para discos P-ATA )
default=0
timeout=5
Al añadir la linea, deberia quedar asi:
#boot=/dev/sd*
default=0
timeout=5
password --md5 $1$lkkvX/$qK/9BbwB6dnp3/XN7RKJQ. ( recordar que estamos utilizando el hash de la clave dragon2010 )
Finalizamos la edicion presionado la tecla ESC (escape) y luego guardamos los cambios escribiendo: ":w" (sin las comillas) y salimos del editor escribiendo : ":q".
La próxima vez que el sistema sea iniciado, el menú del GRUB evitará que se ingrese al editor, o a la interfaz de comandos, sin haber presionado primero la tecla p, seguida de la contraseña del GRUB.
Desafortunadamente, esta solución no previene que un atacante inicie el equipo con un sistema operativo no seguro, si es que existe un entorno de arranque dual. Para esto, debe ser editada una parte diferente del archivo /boot/grub/grub.conf.
Ubique la línea title del sistema operativo que desea asegurar, y añada otra línea con la directiva lock inmediatamente debajo de ella.
Para un sistema DOS, el bloque de líneas pertinente debería empezar de manera similar a la siguiente:
title DOS lock
Para crear una contraseña diferente para un kernel particular o sistema operativo, añada la línea lock a las presentes seguida de una línea de contraseña.
Cada porción de líneas protegidas con una contraseña única deberían empezar de manera similar al siguiente ejemplo:
title DOS lock password --md5 <password-hash>
Creando contraseñas poderosas
La contraseña debe tener al menos 8 caracteres de largo — Cuanto más larga la contraseña, mejor. Si usa contraseñas MD5, deben ser de 15 caracteres o más. Con contraseñas DES, use la longitud máxima (ocho caracteres).
Mezcle letras en mayúsculas y minúsculas
Mezcle letras con números — Agregar números a la contraseña mejora la fortaleza de la misma, especialmente cuando se los agrega en el medio (no al principio ni al final)
Incluya caracteres no alfanuméricos — Caracteres especiales como &, $, y > pueden mejorar mucho la fortaleza de la contraseña (esto no es posible cuando se utilicen contraseñas DES)
Elija una contraseña que pueda recordar — La mejor contraseña del mundo no mejora nada si no la puede recordar; use siglas u otros dispositivos memotécnicos para ayudarle a recordar las contraseñas.
Metodología para la creación de una contraseña segura
Piense en una frase fácil de recordar, tal como:
"por el río y a través del bosque, vamos a la casa de la abuela."
Luego, conviértala en una sigla (incluyendo la puntuación).
peryatdb,valcdla
Agregue complejidad sustituyendo números y símbolos por letras en la sigla. Por ejemplo, sustituya 7 por t el arroba (@) por a:
pery@7db,v@lcdl@
Agregue más complejidad poniendo en mayúsculas al menos una letra, tal como la B.
pery@7dB,v@lcdl@
Finalmente, no use nunca la contraseña ejemplo anterior para ningún sistema.
Edad de las contraseñas
El envejecimiento de la contraseña significa que después de un período especificado (normalmente 90 días), el usuario debe crear una nueva contraseña. La idea detrás de este método es que si el usuario es forzado a cambiar su contraseña periódicamente, una contraseña descubierta sería útil para un intruso por un tiempo limitado.
La contra del envejecimiento es que los usuarios, seguramente, anotarán en un papel sus contraseñas.
La mejor manera de realizar esta labor, es editando el archivo /etc/login.defs una vez terminamos de instalar nuestro GNU/Linux.
Si realizamos cat /etc/login.defs podremos encontrar (entre tantas) la siguiente linea:
...
PASS_MAX_DAYS 99999
...
Esta linea especifica el tiempo de vida de la clave expresado en dias. Por default, utiliza 99999 que equivale aproximadamente a 273 años.
Utilizando nuestro editor de texto favorito, editamos el archivo segun nuestras necesidades:
PASS_MAX_DAYS 90
A partir de este momento, para cada usuario que se agrega al sistema, su clave tendrá una vida útil de 90 días
Siguiendo con el tiempo de vida del ejemplo anterior, otra forma de realizar esta tarea es mediante el comando:
chage -M 90 <usuario>
Donde -M indica el numero de dias que sera valida la clave.
La diferencia radica en que de este modo, debemos aplicar dicho comando a cada usuario del sistema.
Permitiendo acceso a ROOT
Darle accesos de root a usuarios individuales podría generar los siguientes
inconvenientes:
Configuración errónea del equipo — Los usuarios con acceso root pueden desconfigurar sus máquinas o peor aún, podrían abrir agujeros en la seguridad del sistema sin saberlo
Ejecutar servicios no seguros — Usuarios con acceso root podrían ejecutar servidores no seguros en su máquina, como por ejemplo Telnet o FTP, poniendo en riesgo en forma potencial nombres de usuarios o contraseñas. Estos servicios transmiten la información sobre la red en formato de texto simple.
Ejecutar archivos adjuntos de correos como usuarios root — Si bien son excepcionales, existen virus de correo electrónico que afectan a los sistemas Linux. Sin embargo, el único momento en que se convierten en una amenaza, es cuando son ejecutados por el usuario root.
Anulación del acceso como root
Existen diversos metodos para deshabilitar la cuenta ROOT:
Deshabilitando la cuenta shell de root
Para prevenir que los usuarios se resgistren directamente como usuarios root, puede establecer la consola de la cuenta de root como /sbin/nologin en vez de /bin/bash en el archivo /etc/passwd. Esto previene el acceso a la cuenta root mediante comandos que necesiten una terminal, como por ejemplo el comando su y los comandos ssh.
Sin embargo, esto no es efectivo con programas que no necesiten de una terminal, como por ejemplo, clientes FTP, clientes de correo, y muchos programas de tipo setuid (sudo por ejemplo).
Deshabilitando conexiones como root
Puede deshabilitar la posibilidad de registrarse como usuarios root editando el archivo /etc/securetty. Este archivo muestra todos los dispositivos a los que el usuario root puede registrarse. Si el archivo no existiese, el usuario root puede registrarse a través de cualquier dispositivo de comunicación en el sistema, ya sea mediante la utilización de la consola, o mediante una interfaz de red. Esto es peligroso ya que un usuario puede registrarse en su máquina como usuario root mediante Telnet, que transmite en la red la contraseña en formato de texto simple.
Para prevenir al usuario root que se registre, elimine los contenidos de este archivo con la utilización del siguiente comando:
$sudo echo > /etc/securetty
Deshabilitando conexiones SSH como root
Los ingresos root mediante el protocolo SSH están deshabilitados por defecto en algunos GNU/Linux; sin embargo, si esta opción ha sido activada, puede deshabilitarse nuevamente editando el archivo de configuración del demonio SSH (/etc/ssh/sshd_config). Cambie la línea en la que se lee:
PermitRootLogin yes
por: PermitRootLogin no
Para que estos cambios tengan efecto, el demonio SSH debe ser reiniciado. Esto puede realizarse mediante el siguiente comando:
kill -HUP `cat /var/run/sshd.pid`
Limitando acceso como root
En lugar de negarle acceso completamente al usuario root, el admisnitrador podría querer permitirle el acceso sólo mediante la utilización de programas de tipo setuid, como ser por ejemplo su o sudo.
El comando su
Cuando un usuario ejecuta el comando su, se le solicita la contraseña de root y, luego de la autenticación, le es dado un indicador de consola.
Una vez que se registra mediante el comando su, el usuario es el usuario root y tiene accesos admisnitrativos absolutos en el sistema . Además, una vez que el usuario se ha convertido en root, es posible la utilización del comando su para convertirse en cualquier otro usuario en el sistema sin que por eso se le pida ningún tipo de contraseña.
Debido a la potencia de este programa, los administradores de una organización podrían desear limitar a quiénes tienen acceso a este comando.
Una de las maneras más sencillas de hacer esto es añadiendo usuarios al grupo administrativo especial denominado wheel. Para hacerlo, ingrese el siguiente comando como usuario root:
usermod -G wheel <nombreusuario>
En el comando anterior, reemplace <username> con el nombre del usuario que desee añadir al grupo wheel .
El comando sudo
El comando sudo ofrece un nuevo punto de vista a la cuestión acerca de si otorgarle o no accesos administrativos a los usuarios. Cuando un usuario confiable le anteponga el comando sudo a un comando administrativo, le será pedida su propia contraseña. Entonces, cuando sea autenticado y asumiendo que el comando le sea permitido, el comando administrativo en cuestión será ejecutado como si este usuario fuera el usuario root.
Los formatos básicos del comando sudo son los siguientes:
sudo <comando>
En el ejemplo anterior, <comando> debería ser reemplazado por un comando que por lo general esté reservado al usuario root, como ser por ejemplo, mount.
El comando sudo permite un alto grado de flexibilidad. Por ejemplo, solo a los usuarios listados en el archivo de configuración /etc/sudoers les es permitido utilizar el comando sudo, y el comando es ejecutado en la terminal del usuario, no en una consola de usuario root. Esto significa que la consola del usuario root puede ser completamente deshabilitada
El comando sudo también ofrece un método fácil de entender para su control. Cada autenticación exitosa es registrada en el archivo /var/log/messages, y el comando ingresado, junto con el nombre del usuario que lo ingresó, se registran en el archivo /var/log/secure.
Otra ventaja del comando sudo es que un administrador puede permitir a diferentes usuarios acceder a comandos específicos de acuerdo a sus necesidades.
Los administradores que quieran editar /etc/sudoers, el archivo de configuración del comando sudo, deberían utilizar el comando visudo.
Para otrogarle a un usario todos los privilegios admisnitrativos, ingrese visudo, y agregue una línea similar a la siguiente en la sección de especificaciones de los privilegios del usuario:
juan ALL=(ALL) ALL
Este ejemplo indica que el usuario juan, puede utilizar el comando sudo desde cualquier equipo y ejecutar cualquier comando.
Bueno, hasta aqui, hemos aumentado la seguridad en nuestro sistema:
Agregamos clave al gestor de Arranque.
Utilizamos contraseñas de usuario robustas.
Deshabilitamos la cuenta ROOT
etc.
Se podria pensar que todo va viento en popa, pero, si una persona tiene acceso fisico a la PC, puede modificar el BIOS de la misma, arrancar un LiveCD y con ello, comprometer nuestro sistema. Una protección del BIOS (o de su equivalente) mediante una contraseña, puede prevenir que el sistema sea iniciado mediante la utilización de medios removibles por cualquier usuario no autorizado que tenga acceso físico al él.
Las dos razones fundamentales para proteger con una contraseña el BIOS de una computadora son:
Evitar modificaciones a la configuración del BIOS — Si un intruso tiene acceso al BIOS, puede configurarlo para iniciarse desde un diskette o CD-ROM. Esto hace que sea posible para él ingresar en modo rescate o en modo de único usuario, lo que a su vez permite que inicie
procesos a elección en el sistema, o que pueda copiar información importante.
Evitar el inicio del sistema — Algunas BIOS permiten protección mediante contraseñas del proceso de arranque. Cuando es activado, el atacante se ve obligado a ingresar una contraseña antes que el BIOS ejecute el gestor de arranque.
Debido a que los métodos para establecer una contraseña de BIOS son diferentes de acuerdo a cada fabricante, consulte el manual de la computadora para instrucciones específicas.
Si no recuerda la contraseña del BIOS, puede ser reseteada o bien mediante jumpers en la placa madre, o bien desconectando la batería del CMOS. Por esta razón, es una buena costumbre bloquear el gabinete de la computadora siempre que sea posible.
-------------------------------------------------------------------------
Adjunto al msj, se encuentra el documento original
Fuente: fedoraproject.org/es
Resumen
md5 : 0846bb98b8cac163419f3fb9a7a42b58
sha1: 35cd9a1a09351c6a46e451f174ab2a919351f74e
--------------------------------------------------------------------------
Espero le sirva este material.
Dudas, consultas, criticas?
Saludos
fEdE



LinkBack URL
About LinkBacks
Citar
