Es habitual que recién instalamos nuestra distribución nos cree muchas cuentas de usuario en /etc/passwd, incluso pasa muchas veces al instalar programas, pues bien, esta práctica es muchas veces insegura ya que podemos tener cuentas que sean un peligro potencial para comprometer nuestro sistema.
En este artículo aprenderemos cuales de esas cuentas son necesarias y cuales podemos eliminar, de manera que fortaleceremos un poco más nuestro sistema y así se lo pondremos un poco más difícil a los atacantes. Recordemos la máxima de que la seguridad al 100 % es imposible, pero cada capa de seguridad nos ofrece una mayor protección.
Este articulo ha sido probado en un sistema operativo Fedora Core 5 sobre una VMWare ejecutándose en Linux, si tu distribución de Linux es otra no te preocupes porque con toda probabilidad funcionara en tu máquina perfectamente. Ni que decir tiene que toda la manipulación de archivos y comandos debe hacerse con privilegios de root.
Lo primero que debemos hacer es identificar las cuentas que tenemos creadas, para ello ejecutamos en consola «cat /etc/passwd» mi salida es la siguiente:
[cc]
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
rpm:x:37:37::/var/lib/rpm:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
netdump:x:34:34:Network Crash Dump user:/var/crash:/bin/bash
pcap:x:77:77::/var/arpwatch:/sbin/nologin
avahi:x:70:70:Avahi daemon:/:/sbin/nologin
named:x:25:25:Named:/var/named:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin
hsqldb:x:96:96::/var/lib/hsqldb:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
beagleindex:x:58:58:User for Beagle indexing:/var/cache/beagle:/bin/false
gdm:x:42:42::/var/gdm:/sbin/nologin
danonino:x:500:500:danonino:/home/danonino:/bin/bash
[/cc]
Como podemos comprobar hay muchísimas cuentas. Si el último campo de cada linea es igual a /sbin/nologin o a /bin/false quiere decir que ese usuario no puede identificarse en la maquina, con lo cual en principio no supone un peligro. Echando un vistazo vemos los usuarios que si tienen una shell son root, netdump y danonino. Estudiaremos el caso del usuario netdump ya que danonino es mi usuario no privilegiado.
Para comprobar qué esta haciendo la cuenta netdump podemos tratar de ver los directorios y ficheros que tiene como usuario, para ello tecleamos en consola «find / -user netdump -print» que nos da como salida:
[cc]
/var/crash
/var/crash/scripts
[/cc]
Estos ficheros son propiedad de netdump, examinemoslos en detalle( «ls -lua /usr/crash» ):
[cc]
drwxr-xr-x 3 netdump netdump 4096 abr 27 12:19 .
drwxr-xr-x 22 root root 4096 abr 27 12:19 ..
drwxr-xr-x 2 netdump netdump 4096 abr 27 12:17 scripts
[/cc]
Solo tiene el directorio scripts que examinaremos a continuación( «ls -lua /usr/var/crash/scripts» ):
[cc]
drwxr-xr-x 2 netdump netdump 4096 abr 27 12:20 .
drwxr-xr-x 3 netdump netdump 4096 abr 27 12:20 ..
[/cc]
Vemos que no hay nada escrito, adicionalmente deberíamos informarnos de qué es este usuario, en mi caso netdump es un cliente de servicios del kernel que no necesito ahora, por lo cual deberíamos cambiar la línea en el /etc/passwd y ponerle al final un /sbin/nologin o borrarla( también en /etc/shadow ), borrando también el grupo en /etc/group asegurándonos antes de que ningún otro usuario pertenece a ese grupo y desinstalar el paquete ya que todo lo que no nos hace falta sobra en nuestro sistema.
NOTA: También debemos fijarnos en el cuarto y quinto campo del /etc/passwd, el único usuario que debe tener los dos valores igual a cero es root, ya que si otro usuario los tiene dicho usuario posee los mismos privilegios que root. Ciertos usuarios tendrán un cero pero solo en el quinto campo, es el caso de cuantas del sistema como shutdown.
Licencia del documento
Derechos de Autor © 2006 por Daniel Medianero García.
Este documento esta liberado bajo la licencia creative commons.
Si tenéis alguna duda o queréis contactar conmigo podéis hacerlo por correo electrónico a meleslack@gmail.com, en mi página web http://www.meleagro.esp.cc o en los foros de http://www.espaciolinux.com, allí soy Meleagro.