| Artículos | 01 NOV 2003

Seguridad básica

Tags: Histórico
Alvaro Ortiz.
Conectado directamente a Internet, o a través de una red local o LAN, lo más probable es que nuestro sistema se halle un tanto expuesto a posibles ataques o intentos de entradas no autorizadas. Aunque Linux suele ser bastante seguro y robusto, muchas distribuciones actuales, tan orientadas a la Red, habilitan por defecto una serie de servicios que no utilizamos y que, por tanto, suponen un riesgo inútil.

Cerrar las puertas inútiles
Normalmente, en una red corporativa se tiende a instalar la distribución que sea, con sus configuraciones por defecto, añadiendo sólo algunas cosas que se necesiten y sin preocuparse de cerrar todo aquello que no se necesite. En realidad, dada la urgencia exigida en muchos casos no podemos culpar únicamente al administrador. Por otra parte, en casa no tendremos disculpa si no cerramos todas aquellas puertas que nuestro Linux traiga abiertas y que no vayamos a utilizar para nada. Nos referimos a servicios como telnet, portmap, nfs, etc.
El buen administrador de redes Linux sabrá bien que existen dos vías principales por las que Linux puede prestar sus servicios: los demonios directamente dependientes del proceso inicial init y los servicios de red ofrecidos por inetd o xinetd. Encontraremos los primeros disponibles en el directorio /etc/init.d para arrancarlos, pararlos o consultar su estado según necesitemos, con las siguientes sentencias:
/etc/init.d/<servicio> start
/etc/init.d/<servicio> stop
/etc/init.d/<servicio> status

Obviamente, estos servicios no son arrancados manualmente cada vez que se necesitan, sino que se arrancan de forma automática en cada nivel de ejecución (el nivel en el que estemos lo define la línea tipo id:3:initdefault: en /etc/inittab). Así, bajo /etc/rc.d encontraremos directorios de nombre rcx.d, donde la x indica el nivel de ejecución. Y en esos directorios encontramos toda una serie de enlaces a los servicios comentados (/etc/init.d) precedidos por la letra S o K según estén definidos para ser arrancados (Start) o no (Kill). Así que, si en el nivel 5 no queremos arrancar el servidor web, por ejemplo, podemos directamente borrar el enlace que se refiere a http y que comienza por la letra S. En general, este uso no es muy recomendable y es preferible parar y arrancar servicios empleando utilidades como chkconfig o tksysv, por citar algunas.
Los servicios de red o Internet vienen gestionados por el fichero /etc/inetd.conf o /etc/xinetd.conf, dependiendo de lo moderno que sea nuestro Linux. En cualquiera de estos dos ficheros ASCII encontraremos, por líneas, los distintos servicios de red que podemos ofrecer, el programa que los arranca, el puerto y el protocolo con el que se comunican. Basta con comentar con una almohadilla cada línea de las citadas para desactivar los servicios que no queramos proporcionar. La lista de todos los servicios de Internet se encuentra en /etc/services. Por ejemplo, lo más normal es que un equipo doméstico no sirva correo (SMTP, POP). En nuestras manos queda revisarlo y dar de baja lo que consideremos oportuno.
Resulta muy cómodo hacerse con la herramienta nmap, hoy en día disponible en casi todas las distribuciones. Con ella podemos realizar un escaneo de puertos sobre nuestra propia máquina para comprobar qué puertas tenemos abiertas. Si tecleamos nmap localhost comprobaremos si aún queda algo por dar de baja en inetd.conf.

Monitorizar accesos
Para poder llevar un control de lo que ha ido sucediendo en nuestro equipo en lo que a accesos se refiere, Linux y sus aplicaciones proporcionan un eficaz y potente mecanismo de registro de eventos que nos permite realizar con facilidad cualquier seguimiento. No debemos confundirlo con los demonios syslogd o ksyslogd, que se centran respectivamente en eventos del sistema y de su kernel, sin nada que ver en principio con accesos a la máquina. Así pues, para revisar qué personas se han conectado a los terminales de nuestro equipo, ya sean locales o remotos, echaremos mano de last y lastlog. Ambos proporcionan información parecida pero con importantes diferencias. El primero, last, nos muestra un detallado listado ordenado por fechas de forma decreciente de los usuarios que se han conectado desde un día determinado. Ese día es el primero en el que entró en funcionamiento el fichero de apoyo /var/log/wtmp. Simplemente tecleando last en un terminal, obtendremos:
...
alvaro pts/2 Tue Sep 23 17:13 still\ logged in
alvaro pts/0 Tue Sep 23 17:13 still\ logged in
alvaro tty1 Tue Sep 23 17:12 still\ logged in
root tty2 Tue Sep 23 17:25 – 17:32\ (00:07)
...

En este listado disponemos de los siguientes datos por orden: nombre de usuario, terminal desde el que se conectó, fecha en que se conectó, hora inicial de la conexión y si aún sigue conectado; si no es así, la hora de desconexión y el tiempo total de conexión. En caso de login remoto, entre el campo terminal y el campo fecha aparece también el nombre del host desde el que se ha accedido. Esta información, dependiendo de la fecha de nuestro fichero wtmp, puede tener páginas y páginas por las que buscar. Lógicamente last tiene sus opciones, aunque no muchas, para formatear los listados resultantes según lo que queramos buscar. Lo mejor será sacar toda la información y utilizar grep conjuntamente. Algo así: last | grep “Sep 23”.
El segundo comando, lastlog, nos muestra la lista de usuarios registrados en nuestro sistema y la última fecha en que accedieron a él. Es normal que entre la información que proporciona este comando encontremos usuarios que nos resulten extraños. La mayoría de estos usuarios no son más que usuarios no reales que básicamente se utilizan para arrancar y gestionar algunas aplicaciones. Así por ejemplo, puede ser que encontremos el usuario http u oracle si es que nuestro equipo es un servidor web o proporciona una base de datos Oracle. De esta forma podemos seguir limpiando nuestro sistema de cosas inútiles que pueden representar agujeros en la seguridad. ¿Para qué mantener el usuario oracle si ya hace meses que desinstalamos esa base de datos? Pues borramos esa golosina para los crackers que no nos sirve ya para nada. Siempre resulta conveniente, si estamos en un lugar público o conectados a una red, dar un repaso a este tipo de cosas.

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