Seguridad en Linux

17 junio, 2015
admin
Comentarios desactivados

Dado que Linux ha sido diseñado para soportar múltiples usuarios, ofrece muchos modos de acceder al sistema, además de diversas herramientas y órdenes relativas a la seguridad.

Las cuestiones de seguridad se pueden agrupar en varias categorías. Hablando en términos generales, dado que el tema de seguridad es muy amplio podemos distinguir en una primera categoría la protección que Linux proporciona al solicitar la identificación y contraseña la identificación a cada usuario para poder acceder al sistema de cualquiera de las formas posibles: local, remoto, etc. La segunda categoría es la protección de ficheros, tanto desde el sistema operativo, como de los ficheros de usuario. En tercer lugar, estaría el establecimiento de normas de seguridad frente ataques del sistema, así como la seguridad física de la propia máquina.

En los siguientes apartados veremos algunos de los aspectos más básicos de la seguridad.
Seguridad de acceso al sistema

La solicitud de identificación de usuario y de la contraseña constituye el primer control de seguridad para acceder al sistema. Los usuarios suelen elegir contraseñas sencillas y fáciles de recordar, lo que dificulta la tarea del administrador. Por eso el administrador debe recomendar algunas sugerencias para la selección de contraseñas, teniendo en cuenta el principio “las contraseñas complejas funcionan”:

  • Las contraseñas cuanto más largas mejor. Las contraseñas en Linux deben tener una longitud mínima de seis caracteres. Teóricamente no hay máximo pero algunos sistemas sólo reconocen los 8 primeros caracteres de la contraseña. No es excesivamente costoso un programa que, de manera aleatoria, trate de adivinar las contraseñas por ello cuanto más larga más tardará en encontrarla.
  • Nunca seleccione como contraseña una palabra del diccionario o una palabra que le identifique fácilmente, como su dirección, su nombre, hijos, número de teléfono, fecha de nacimiento, DNI,…
  • Se aconseja, como contraseña, la elección de dos palabras cortar unidas por un enlace, como: mi-casa, ptx&mix, hi!clan
  • Otro método puede ser memorizar una frase y seleccionar las iniciales de sus palabras, como, por ejemplo: al pan pan y al vino vino sería appyavv
La seguridad incluye, igualmente, detectar aquellas cuentas que pueden suponer un problema para la integridad del sistema, como:
  • Cuentas sin contraseñas. Pueden comprobarse si el segundo campo de las líneas del fichero /etc/passwd están en blanco. Una solución es inhabilitar el acceso a ese usuario colocando un asterisco (*) y así bloquear la cuenta.
  • Cuentas no utilizadas. Puede pensar en eliminar el acceso o bloquearlo utilizando el asterisco.
  • Cuentas predeterminadas, creadas por algunos paquetes software con una contraseña por defecto. Repasarlas para poner contraseñas de acorde con las cuentas.
  • Cuentas de invitados, donde personas ajenas al sistema tienen permiso de entrada al sistema. Son problemáticas pues un intruso tiene más fácil violar la seguridad estando dentro del sistema. Se sugiere tenerlas bloqueadas mientras no se necesiten.
  • Cuentas de acceso de comandos. Existen unas cuentas que dan acceso a la ejecución de ciertos comandos como finger o date, que permiten la ejecución del comando y su posterior expulsión del sistema. Cuando utilice estas cuentas hay que asegurarse de que no aceptan datos desde la línea de comandos o no tienen ninguna posibilidad de escape. También ciertas llamadas como finger o who permite extraer información del sistema como los “logins” de algunos usuarios lo que equivale a conocer la mitad del código de acceso.
  • Cuentas de grupo. Si utiliza contraseñas para grupo normalmente son muchos los que tendrán que conocer la contraseña, situación que puede ser peligrosa. Aunque se añadan contraseñas a grupos se aconseja mantener activas las contraseñas de usuarios.
 
El archivo /etc/shadow
Todos los usuarios del sistema pueden visualizar el contenido del fichero /etc/passwd, por lo que cualquier usuario tiene acceso a todas las contraseñas, aunque estén encriptadas.
Linux utiliza una llamada al sistema, crypt, para codificar las contraseñas y aunque resulta difícil descifrarla, no es imposible. Además, en el fichero /etc/passwd hay más información de los usuarios como el uid, gid, etc., por lo que está facilitando información al exterior.
Una manera de proteger más aún el sistema es utilizar la codificación de sombra (shadow) para ubicar las contraseñas en otro archivo llamado /etc/shadow sólo accesible por root. En efecto, el traslado de las contraseñas cifradas al archivo /etc/shadow, accesible únicamente por el superusuario, añade una útil capa de protección.
El fichero /etc/shadow contiene cierta información de los usuarios. Cada línea representa a un usuario y la información se encuentra en campos separados por el carácter “:”, según el formato:
login:contraseña:último:plazo:máximo:aviso:expirado:deshabilitado:r
El significado de cada uno de los campos es:
shadowetc

Ejemplo:

root:$1$9p5c6c7E$3TwupixFk5RUztaT8i6.f.:11634:0:99999:7:::

bin:*:11634:0:99999:7:::

jorge:$1$Bkqh8wvo$9skkc0R9bhFXX.NdsQxmG1:11634:0:99999:7:::

pepe:!!:11640:0:99999:7:::

luis:!!:11640:0:99999:7:::

usu1_proy1:$1$7GA6Ev32$YZKQROB6tZFhzGur3u.sC/:11640:0:99999:7:::

usu2_proy1:$1$I0XDkjBq$SMpiTM1MsNYKEU6YXa6zW/:11640:0:99999:7:::

usu_proy1:$1DkjBqMpiTM1MsNYKEU6YXa6zW/:11640:0:99999:7:::

El archivo /etc/gshadow.

Es el análogo a /etc/shadow para el fichero de grupos /etc/group.

Linux ofrece al administrador comandos para gestionar las cuestiones de seguridad que atañen al uso adecuado de las contraseñas. Ver más adelante los comandos relacionados con el uso de contraseñas.

Los comandos su (switch user) y sudo

Uno de los principios fundamentales de seguridad en Linux es “use los privilegios mínimos indispensables para conseguir hacer el trabajo”. Linux ofrece la posibilidad de convertirnos en otro usuario durante la misma sesión de trabajo siempre que conozcamos su contraseña y, en consecuencia, establecer conexiones remotas a un equipo pudiendo tener bloqueada la entrada de root, u obtener privilegios de superusuario sin correr excesivos riesgos de seguridad. Para ello ejecutamos:

su [-] [opciones] [nombre_usuario]



Nota: Si esta acción se realiza como superusuario, no se pedirá ninguna contraseña para convertirse en el usuario, pero en caso contrario se solicita la clave correspondiente.

La opción “–“ permite obtener la configuración del entorno del usuario al que se cambia. (Sin ella, nos encontraremos todavía en nuestro propio entorno de sistema, utilizando nuestras variables de entorno, intérprete de comandos, editor por defecto, rutas y máscara de archivos). Si se omite el “nombre_usuario” se asume por defecto a root. Es posible usar la opción –c para ejecutar únicamente un comando desde el nuevo usuario. Para salir y volver al usuario original teclear exit.



Aunque el uso de “su” mejora la seguridad de nuestro equipo, es preferible no entrar jamás como usuario root, especialmente si estamos conectados a Internet en una red, ya que mediante el uso de sniffers se pueden capturar contraseñas sin excesiva dificultad.
Para evitar la entrada como superusuario existe el comando sudo, que permite ejecutar programas como si fuésemos otro usuario. Su sintaxis simplificada es:



sudo [-u nombre_usuario] programa

Si no se indica el usuario se supone que es root.
Para poder utilizar los usuarios correspondientes, éstos deben estar incluidos en el archivo de configuración /etc/sudoers. Este puede editarse con el comando visudo. En general, si se quiere asignar a un usuario todos los privilegios de root hay que añadir en el fichero /etc/sudoers la línea:

usuarioALL=(ALL) ALL



Nota: Distribuciones como Ubuntu incluyen por defecto el no habilitar la cuenta de root, con lo que todas las tareas administrativas se deben realizar mediante sudo.

Para ver más detalles consultar la páginas del manual de sudo y sudoers.
Forma “facil”

Utilizar sudo delante de un comando nos permite ejecutarlo como root.

Por ejemplo sudo mkdir directorio1 ejecutaría el comando mkdir como root.

Si utilizamos sudo su haremos log como root y permaneceremos así hasta usar el comando exit.

CONTENIDO PATROCINADO POR

FPla Informatica

Diseño web y Marketing digital
Disponga de una página web o un comercio electrónico de alta calidad a precios muy competitivos.
ACCEDER A FPLA INFORMATICA