Archivos por Etiqueta: Seguridad

Ubicando los Errores del Sistema: El directorio /var/log

LOS ARCHIVOS /VAR/:
El conjunto de archivos encarpetados en /var contienen información de los cambios del sistema una vez que éste ha sido instalado. Los nombres de los archivos almacenados aquí han cambiado con el tiempo y con la distribución, e incluso con la versión de la distribución. En mi Ubuntu 11.04 natty, esos archivos son:

backups cache crash games lib local lock log mail opt run spool tmp

EL CONTENIDO DE /var/log
En particular vamos a analizar el directorio /var/log La utilidad de este directorio es que aquí se encuentran los mensajes de error del sistema. Siempre que haya un problema (del tipo se congela la pantalla y aparece un mensaje que dice panic) el primer lugar hay que buscar es en /var/log También son los archivos que indican cuando alguien ha entrado, o tratado de entrar, de manera ilegal a nuestro sistema. Y por lo mismo son archivos que son editados por las personas que entran sin permiso y no quieren que la intromisión sea reconocida como tal.
Algunos de los archivos contenidos en el directorio /var/log son los siguientes:

auth.log

Aquí se envían los mensajes que informan qué usuario ha entrado como root, qué ha instalado, los intentos fallidos de acceso, etc. todo desde el inicio de la sesión actual.

dmesg


El contenido de este archivo puede verse con el comando dmesg. Muestra el hardware detectado por el kernel en el arranque. Muestra información sobre el procesador, el mouse, la memoria, etc. El contenido de este archivo es bastante extenso.

faillog


Guarda los mensajes de intento de log fallidos. El contenido es visible mediante el comando faillog

lastlog

Muestra una lista de los usuarios y la última vez que accedieron al sistema. El contenido de este archivo es visible con el comando lastlog

messages

El archivo que da un panorama general es /var/log/messages. Aquí llegan avisos de red e información general. En Ubuntu (al menos en natty) el archivo ha cambiado por /var/log/syslog

secure


Para posibles errores de seguridad. Aquí aparecen los mensajes de las conexiones con sshd y en general cualquier dirección IP de servicio de conexión poco frecuente.Éste archivo no aparece en Ubuntu, y no he podido encontrar cuál es el equivalente. En ésta página se detalla una intromisión y la detección con un pequeños script para revisar este archivo.
Muchos otros archivos y subdirectorios aparecen en este directorio. La información que se almacena en estos archivos se comprime, y estos archivos también quedan aquí.
UNA BÚSQUEDA GENERAL DE LOS PROBLEMAS DEL SISTEMA:
Si se tiene una idea aproximada de cuál es la causa de un problema, digamos que puede estar asociado a el usuario elisa, entonces, para evitar estar recorriendo cada uno de los archivos de /var/log, podemos hacer uso del comando grep:

grep -r elisa /var/log

o si acaso buscamos un error tipo panic:

grep -r panic /var/log

FUENTES:
La bibliografía electrónica en mi delicious

Anuncios

/etc/passwd El Archivo de Administración Más Importante En Unix

El archivo /etc/passwd contine la mayoría de la información de las cuentas de usuario. Esta información está disponible para todos los usuarios en la mayoría de los sistemas con tan sólo usar cat /etc/passwd, pero sólo el usuario root puede modificarlo. Este archivo existe en FreeBSD, pero también existe /etc/master.passwd con la misma información.

La estructura de cualquier línea del archivo contiene lo siguiente:

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/sh
daemon:x:2:2:daemon:/sbin:/bin/sh
adm:x:3:4:adm:/var/adm:/bin/sh
lp:x:4:7:lp:/var/spool/lpd:/bin/sh
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:/bin/sh
news:x:9:13:news:/var/spool/news:/bin/sh
uucp:x:10:14:uucp:/var/spool/uucp:/bin/sh
operator:x:11:0:operator:/var:/bin/sh
games:x:12:100:games:/usr/games:/bin/sh
nobody:x:65534:65534:Nobody:/:/bin/sh
messagebus:x:499:499:system user for dbus:/:/sbin/nologin
rpm:x:498:498:system user for rpm:/var/lib/rpm:/bin/false
polkituser:x:497:497:system user for policykit:/:/sbin/nologin
haldaemon:x:496:496:system user for hal:/:/sbin/nologin
avahi:x:495:495:system user for avahi:/var/avahi:/bin/false
avahi-autoipd:x:494:494:system user for avahi:/var/avahi:/bin/false
usbmux:x:493:493:system user for usbmuxd:/proc:/sbin/nologin
vcsa:x:69:492:virtual console memory owner:/dev:/sbin/nologin
mysql:x:492:491:system user for mysql:/var/lib/mysql:/bin/bash
rtkit:x:491:490:system user for rtkit:/proc:/sbin/nologin
gdm:x:490:486:system user for gdm:/var/lib/gdm:/bin/false
xguest:x:61000:61000:Guest Account:/home/xguest:/bin/rbash
htdig:x:489:484::/var/lib/htdig:
halevt:x:488:483:system user for halevt:/var/lib/halevt:/sbin/nologin
barton:x:500:500:Barton V:/home/barton:/bin/bash
ftw:x:487:482:system user for drakfirsttime:/home/ftw:/bin/false

1) Login ID. se trata del nombre con el que se accede a la cuenta.
2) x Representa el password encriptado. Anteriormente aparecía de verdad el password encriptado en este apartado, pero por razones de seguridad ahora se encuentra en el archivo /etc/shadow Es posible que algunas versiones de Unix todavía lo incluyan, pero en general es algo que ya no se usa. Hay que recordar que con un simple cat /etc/passwd cualquier usuario tiene acceso al código encriptado, y con fuerza bruta puede descifrarlo. En FreeBSD el arvhivo /etc/master.passwd sí contiene los passwords encriptados, pero se necesitan privilegios de root para poder verlo.
3) El número de identificación usuario (UID number). Por comodidad, los usuarios acceden a su cuenta con un nombre elegido por ellos; pero para Unix los usuarios son representados por un número que en la mayoría de los sistemas va de 0 a 65535, con 0 – 99 reservado para archivos del sistema. Este número de identificación se puede duplicar por el administrador, aunque puede haber confusión y no es recomendable. El usuario root tiene reservado el número 0. Como lo que realmente importa para Unix no es el nombre sin o el ID, entonces cualquier usuario con un número 0 tiene privelegios de root.
4) Número de grupo por default. Representa el grupo al cual es asignado el usuario en un principio. Este número no es único, y muchos usuarios pueden compartirlo sin problemas.
5) Los comentarios y datos adicionales de la cuenta. Incluye información general que se pide al momento de crear al usuario. Este campo puede estar en blanco. Tampoco es conveniente incluir información delicada, porque todos podrán verla. Este campo es conocido como GCOS (de General Electric Comprehensive Operating System)
6) El directorio en el que se inicia la sesión por default. Generalmente este campo contiene algo como /home/nombredeusuario indicando que la cuenta de juanito está montada en el directorio home. No es necesario que sea en ese directorio, pero debe evitarse que la cuenta esté en /temp
7) La shell de login del usuario. Necesita ser una de las contenidas en el archivo /etc/shell
Cada uno de estos campos está separado por ‘:’ (dos puntos) Si alguno de esos campos esta vacío, como puede ser el 5, correspondiente a los datos generales del dueño de la cuenta, entonces sólo se verá ::

El Usuario toor en FreeBSD

Revisando el archivo /etc/passwd en FreeBSD y ejecutando el script de seguridad

awk -F: '{if ($3==0) print $1}' /etc/passwd

encuentro que existe un usuario llamado toor, que yo no he añadido, y que además tiene privelegios de root. Si mi sistema fuera linux debería estar preocupado, pero FreeBSD es un poco diferente.
En realidad toor es un usuario incluído por el propio sistema ( toor es un anagrama de root ) como un superusuario alternativo, al cual se le puede asignar una contraseña desde root. toor es, más o menos, una alternativa a la opción de booteo Single User Mode.

El comando password en Unix

El comando unix passwd nos permite hacer varias cosas, dependiendo de los privilegios:
Como usuario:
Para cambiar la contraseña de usuario (o de root) en el sistema operativo Unix, lo cual incluye linux, es necesario escribir en la consola el comando

$ passwd

A continuación aparece el mensaje

$Cambiando la contraseña de Juanito
$(actual) contraseña de UNIX:

Juanito se cambia, desde luego, por el nombre de usuario. Y hay que introducir la contraseña actual. Por seguridad los sistemas Unix no muestran la contraseña, por lo cual no verá el número de caracteres. Después de autentificar al usuario, le aparecerá el siguiente mensaje

$ Introduzca la nueva contraseña de UNIX:

y después de hacerlo, de nuevo

$ Vuelva a escribir la nueva contraseña de UNIX:

Si la contraseña no es demasiado corta, o no es la contraseña actual, aparecerá el mensaje de notificación

$ passwd password updated successfully

con lo cual ha cambiado su contraseña.

Unix rechaza las contraseñas demasiado cortas, menos de 6 caracteres, o aquellas que incluyen caracteres especiales no aceptados. Se aceptan caracteres en minuscula y mayúscula, dígitos del 0 al 9 y signos de puntuación. Como un consejo general, y algo que yo hago para conseguir una contraseña, puede abrir un libro en una página al azar, tomar la mitad de la primera palabra que aparece en la página, abrir otra, tomar el número de página, de nuevo otra y de nuevo la mitad de la primera palabra. También se puede intercambiar mayúsculas y minúsculas. De esta forma, por lo menos se crea una contraseña poco personal.

Como root:

Si usted tiene la contraseña de root, entonces puede administrar las cuentas de usuario con las siguientes opciones:

1) Cambiar el password de cualquier cuenta. Esto es útil cuando a el usuario se le ha olvidado la contraseña y recurre a usted para recuperarla. La contraseña NO puede recuperarse, lo que el administrador puede hacer es asignar otra que invalide la anterior. Para esto basta escribir lo siguiente:


# passwd Juanito

Donde Juanito es el nombre de usuario. Se le pedirá la nueva contraseña de Unix un par de veces, después de lo cual el nuevo password ha sido establecido.

2) Hacer que a un usuario no se le pida contraseña para entrar en su sesión. Esto es útil si estamos seguros de que nadie hará nada malo con nuestra cuenta y de que no tenemos nada importante o resulta muy molesto estar usando passwords cada vez. El comando es muy parecido al anterior, pero hay que incluir la opción -d

#passwd -d Juanito

Le aparecerá en pantalla el siguiente mensaje:

# passwd: password expiry information changed.

Así, la próxima vez que el usuario (en este caso Juanito) entre a su cuenta no se le pedirá contraseña.

3) Establecer contraseña para un usuario que no la tiene. Este sirve para revertir el paso anterior. En modo superusuario tecleamos

$ passwd Juanito

y se nos pedirá dos veces la contraseña. De esta forma, la próxima vez que el usuario entre a su cuenta, tendrá que introducir la contraseña que usted ha establecido.

4) Forzar el cambio de contraseña de un usuario de manera inmediata. Si usted asigna una cuenta a un usuario, y se quiere asegurar de que la primera vez que inicie cambie su contraseña, debe usar lo siguiente:

$ passwd -e Juanito

le aparecerá un mensaje como este:

$ password expiry information changed

La próxima vez que Juanito entre a su cuenta, y antes de poder hacer otra cosa, le aparecerá el siguiente mensaje:

$ You are required to change your password immediatly (root enforced)
$ Changing password for Juanito.
$ (current) UNIX password:

después de lo cual se requiere la nueva contraseña.

5) Forzar el cambio de contraseña a los n dias. Es parecida a la anterior, pero debe usarse la opción -n

$ passwd -n 3 Juanito

verá el mensaje

# password expiry information changed

y con esto se obliga a Juanito a cambiar su contraseña a los 3 dias.