Seguridad Informática en el CPS


Ultima modificación: 14 Noviembre, 2002

Este documento reside en http://webdiis.unizar.es/~spd/sec/linux-sec.html

La antigua versión, referida principalmente a Red Hat 6, aún puede encontrarse en http://webdiis.unizar.es/~spd/sec/linux-sec-6.html


Hoy en día, la proliferación de distribuciones de Linux "fáciles" hace que cualquiera pueda instalarse un Unix en su despacho; pero el mantener ese Unix con un mínimo de garantías ya no es tan trivial.

Existen multitud de recursos en Internet sobre como hacer un sistema Unix seguro, al final de este documento se incluyen algunos links de obligada lectura; aparte de eso veremos ahora unos mínimos consejos al respecto. Se ha tomado como referencia un sistema Linux Red Hat 8.0. Los conceptos son similares para otros Unix o distribuciones de Linux, aunque los detalles pueden variar.

No trabajes como root.

Crea una cuenta de usuario, preferiblemente usando los mismos nombre de usuario, UID y GID que tengas en alguna otra cuenta Unix del departamento. Cuando necesites ejecutar cosas como root, hazlo usando "su" desde dicha cuenta (o "ssh localhost -l root")

Elimina servicios

Desactiva todos los servicios. No los necesitas. De hecho casi podrías no ejecutar inetd. Solo cuando veas que necesitas realmente un servicio, activalo (tras revisar sus opciones de log y de control de acceso).
Si necesitas algún tipo de acceso remoto a tu Unix, utiliza ssh para sesiones interactivas y scp para transferencia de ficheros.

Utiliza ssh

Jamás uses telnet ni ftp, que, entre otras cosas, mandan tu password en texto claro por la red. Red Hat 7.2 y posteriores incluyen OpenSSH de serie. Utilízalo.

Ademas, puedes leer mas sobre el uso de ssh en http://webdiis.unizar.es/~spd/sec/ssh.txt

Utiliza filtrado

Red Hat, desde la versión 7, incluye de serie un firewall; además, pregunta durante la instalación si se desea activar. Lo recomendado es activarlo y permitir únicamente (como mucho) trafico de entrada ssh.

Si no lo activaste durante la instalación, puedes activarlo mediante:

Nota: si sabes que solo vas a acceder desde determinadas IP's puedes ajustar aun más la configuración editando a mano el fichero /etc/sysconfig/iptables. Ejemplo:

# Permitir cualquier conexion desde 155.210.152.20
-A INPUT -s 155.210.152.20 -j ACCEPT
# Permitir ssh desde la red unizar
-A INPUT -s 155.210.0.0/255.255.0.0 -p tcp -m tcp --dport 22 --syn -j ACCEPT

Utiliza las reglas de control de acceso

Linux o un Unix con tcpwrappers instalados tiene dos ficheros /etc/hosts.allow y /etc/hosts.deny. Utilizalos.
Por defecto, deniega todo y solo cuando veas que tienes que acceder a algun servicio desde determinada IP, dale permiso.

Un ejemplo de estos ficheros sería:

---------------------------------------------------------------------------
/etc/hosts.allow

#
# Known trusted hosts
#
ALL:    \
localhost \
: ALLOW

sshd,sshdfwd-X11: \
localhost, \
unix-de-al-lado.unizar.es \
: severity auth.notice : ALLOW
---------------------------------------------------------------------------
/etc/hosts.deny

ALL: UNKNOWN : severity auth.warning : DENY
ALL: PARANOID : severity auth.alert : DENY
ALL:ALL:DENY
---------------------------------------------------------------------------

Nunca uses xhost, usa xauth

El tema de la seguridad en X11 es algo extenso y conviene entenderlo a fondo. Se recomienda la lectura de http://webdiis.unizar.es/~spd/sec/X11.txt

¡Ojo con Netscape!

Cuando uses Netscape, procura dejar Java y JavaScript desactivado; igualmente desactiva todo lo que sea "smart" (smart updates, internet keywords, etc)

Suscribete a la lista de avisos de seguridad de tu Unix.

Lamentablemente, esto es así. No te basta con instalarlo y olvidarte, periodicamente van apareciendo bugs que hay que parchear.
Si tu máquina solo tiene un usuario (tú) y si has eliminado todos los servicios, puede que te puedas tomar con mas calma el tema de las actualizaciones; pero aun así conviene que estes al día.

Para nuestro caso, las direcciones de interes son:

Usa passwords seguros

Esto es algo que sabemos todos pero que muchos no cumplen. Utiliza passwords que no sean palabras de diccionario, que tengan mayúsculas y minúsculas así como números y caracteres no alfanuméricos, etc. etc.

Además no uses el mismo password en todas las máquinas. Especialmente no utilices el mismo que en maquinas inherentemente inseguras. Estas ultimas comprenden:

Programa, pero seguro

Si programas servicios y/o CGI's asegurate de documentarte al respecto para no introducir más puertas de entrada.

Algunos links:

Como saber si te han entrado

En muchos casos, los intrusos son gente que aplica a ciegas programas que aprovechan los bugs existentes, sin tener mucha idea de lo que están haciendo; por lo que no borran rastros de ningún tipo.

Más información