| Artículos | 01 ENE 2000

Seguridad básica en Linux (I)

Tags: Histórico
Técnicas y trucos para evitar accesos no deseados
Felipe Corsino.
Conozca las principales claves para aumentar la seguridad de su equipo con GNU/Linux, qué modificaciones realizar tras la instalación y dónde comenzar a buscar indicios sospechosos.

Que una de las características que se le atribuyen a Linux sea una excelente seguridad, no quiere decir que ésta sea del todo inexpugnable. Al igual que con cualquier otro sistema operativo, tenemos que seguir algunas normas básicas y tomar precauciones para evitar accesos no autorizados, sobre todo si nuestro equipo se encuentra conectado a una red, como suele ocurrir con Linux. Un sistema que no ofrece ningún servicio, no permite más de un usuario y no se encuentra conectado a una red, se puede considerar un sistema muy seguro. Sin embargo, un equipo con estas características también se puede considerar totalmente inútil. Nada más terminar la instalación de nuestra distribución favorita de Linux, hay algunas cosas que podemos hacer para llegar a un compromiso entre seguridad y funcionalidad del sistema.

Seguridad hardware
Independientemente del sistema operativo que tengamos instalado en una máquina, ésta ya cuenta con algunos métodos para evitar accesos no autorizados a la misma. De hecho, la seguridad se puede considerar que comienza en la propia ubicación del sistema. Obviamente, un servidor crítico dentro de una empresa no puede estar al alcance de cualquier persona y, por tanto, se deberían aplicar restricciones de acceso a la sala en donde este emplazado. Siguiendo por este orden, muchas cajas cuentan con distintos mecanismos de seguridad como pueden ser llaves de encendido, candados que bloquean las unidades de almacenamiento e incluso otras que bloquean los botones de encendido y reinicio del ordenador. En un orden mayor de seguridad, las copias de seguridad juegan un papel fundamental y comienza a ser imprescindible guardar periódicamente duplicados en cajas de seguridad de banco o en instalaciones ignífugas. En cualquier caso, se trata de medidas que cualquier administrador de red conoce y que quedan fuera del alcance de este texto. Para nosotros, basta con tener en cuenta la existencia de estas cajas especiales para servidores y la correcta ubicación de estos componentes críticos en nuestra red.

Seguridad en la BIOS
Del mismo modo, la práctica totalidad de las placas base vienen con una BIOS que permite bloquear el acceso a la misma, a fin de evitar cambios en la configuración por parte de individuos en los que no se confía. También es muy frecuente encontrar la posibilidad de asignar una clave para el inicio del ordenador, de forma que si no se introduce la adecuada, el sistema no continua con la carga, dejando la máquina totalmente inutilizada hasta que se pase este punto. No obstante, sin una adecuada protección hardware, estos métodos son fácilmente franqueables. Basta mover un puente o jumper situado en la placa base para reiniciar el contenido de la memoria CMOS de la BIOS, eliminando las claves asignadas y arrancar el sistema.

Nivel monousuario
Por todos es sabido que en los sistemas Unix sólo existe un usuario con privilegios totales, el llamado superusuario o usuario raíz (root). En un sistema que no tenga ninguna medida mínima de seguridad de las anteriormente mencionadas, es trivial iniciar una sesión con privilegios de administrador, siempre que se tenga la posibilidad de reiniciar el sistema y estar presentes frente a la máquina en cuestión, en el momento de comenzar de nuevo la carga del sistema operativo. Bastaría con pasarle un parámetro al núcleo Linux para que inicie en el nivel de ejecución monousuario, al que tradicionalmente se ha asignado el número 1.
LILO boot: linux 1
Este método que se emplea frecuentemente para solucionar problemas de configuración en el sistema, permite a cualquier usuario iniciar sesión en un modo especial, con privilegios de root y en el que no será necesario introducir ninguna clave de acceso.
Para solventar esto, podemos añadir una línea al fichero de configuración de LILO, /etc/lilo.conf a fin de que se solicite una palabra de paso al usuario, sin la cual no podrá iniciar el sistema, ni siquiera en modo monousuario.
A continuación se muestra un ejemplo de esta opción de configuración:
boot=/dev/hda
password=MICLAVE
map=/boot/map
install=/boot/boot.b
image=/boot/vmlinuz-2.2.12
label=linux
root=/dev/hda1
read-only

Consola y X Window
Al igual que en los entornos de Microsoft, una buena medida cuando nos ausentamos del puesto de trabajo es dejar bloqueada la pantalla para que no se pueda acceder si no es introduciendo nuestra clave de usuario. Linux dispone de sistemas equivalentes. Para el sistema gráfico, el programa más empleado es xlock, y continúan apareciendo distintas variantes y complementos a éste. Aunque suele incluirse en todas las distribuciones, encontrará una gran variedad de protectores de pantalla en el apartado Linux de uno de nuestros CD de regalo.
Linux sigue siendo un sistema orientado principalmente a su uso desde la consola. Por ello, es igual de importante bloquear el acceso a los distintos terminales virtuales cuando nos ausentemos durante una sesión de trabajo. El programa encargado de esto es vlock, que permite bloquear con contraseña tanto el terminal virtual en el que nos encontremos actualmente trabajando, como todos los demás si así lo deseamos. Si bloqueamos sólo nuestro terminal, ningún usuario podrá intervenir en nuestra sesión, pero sí iniciar una nueva en otro terminal virtual que no esté siendo usado ni esté bloqueado (cambiando con ALT+ tecla de función). Para bloquear solamente nuestra consola, basta con ejecutar vlock, mientras que si deseamos bloquearlas todas, se emplea el modificador –a (vlock –a).

Servicios de red
Una de las recomendaciones a seguir con cualquier sistema operativo que se encuentre en red es reducir el número de servicios que ofrece al mínimo imprescindible para sus funciones. Cada servicio de red es una puerta para que otros equipos de la red accedan a algún recurso de nuestra máquina; páginas web, archivos en FTP, volúmenes e impresoras compartidos por SMB (redes Microsoft), correo o incluso acceso directo a nuestro sistema por medio de telnet y X Window. En teoría todos estos servicios están asegurados correctamente para evitar que usuarios no autorizados ganen acceso o para que a través de ellos puedan obtener otros privilegios o dañar el sistema. En la práctica, ningún sistema operativo está por completo a salvo de estos eventuales fallos de seguridad. Afortunadamente en el mundo del software libre, el código abierto permite que miles de programadores en todo el mundo examinen el código en busca de fallos y de igual modo, cuando se descubre uno, localizarlo y solventarlo. Es frecuente comprobar cómo se lanzan parches para solucionar un determinado fallo de seguridad en Linux en las siguientes 24 horas desde su detección, mientras que en otros sistemas cerrados la solución se demora bastante más.
A fin de evitar posibles riesgos debemos ver qué servicios nos interesa mantener realmente abiertos y cerrar todos los demás. Los servicios de Internet se pueden ejecutar como procesos automáticos del súper demonio inetd (como, por ejemplo, telnet), o bien, como procesos separados (por ejemplo Sendmail). inetd permanece a la escucha de determinados puertos y cuando recibe una petición lanza un proceso para atenderla. Por ejemplo, si se encuentra activado el ser

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información