Elvira Baydal Cardona 03/04/00
Tema 3: Seguridad básica en Unix 1
1
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix
Tema 3: Seguridad básica en unix
n Autentificación basada en contraseñasn Seguridad básica de servicios de red
n Bibliografíau Kauffman, Caps. 7 y 8u Garfinkel, Caps. 3, 8, 17 y 22u Guía de seguridad del administrador Linux
Índice del tema
2
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix
Objetivos
n Conocer los problemas que presenta laautentificación basada en passwords y susposibles soluciones
n Conocer algunos de los archivos básicosde Unix relacionados con las contraseñas
n Aprender a configurar de forma segura elinetd y a restringir el acceso a susservicios mediante el tcp_wrappers
Objetivos del tema
Elvira Baydal Cardona 03/04/00
Tema 3: Seguridad básica en Unix 2
3
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix 1. Autentificación basada en
passwordsn Son la herramienta de autenticación más
utilizada (sobre todo para personas)n Presenta muchos problemas:
u Obtención fraudulenta del password por:F Prueba y error (intentos repetidos de
acceso)F Escuchas en la redF Monitorización del tecladoF Lectura del fichero de passwords
u Comportamiento inadecuado de losusuarios
1.Autenticación basada en contraseñas
4
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix Obtención de passwords
mediante prueba y errorn Puede lograrse el acceso al sistema
mediante intentos sucesivos hastaencontrar el password correcto
n La dificultad de conseguir el accesodepende de:u el número de intentos que puedan
realizarseu la calidad de la palabra de paso elegida
1.Autenticación basada en contraseñas
Elvira Baydal Cardona 03/04/00
Tema 3: Seguridad básica en Unix 3
5
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix Prueba y error de contraseñas
n Para mejorar la seguridad podemos:u Restringir físicamente los accesos privilegiadosu Limitar el número de accesos incorrectos
consecutivosF Puede facilitar un ataque de denegación de
serviciou Ralentizar la entrada y permitir sólo un número
limitado de intentos por conexiónu Controlar el número de intentos de acceso
erróneos (auditoría)u Informar a los usuarios del número de intentos
infructuosos desde el último accesou Eliminar las cuentas que no están en uso
1.Autenticación basada en contraseñas
6
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix Passwords seguros e inseguros
n Elegir una clave que:u No sea fácil de adivinaru Que no siga un patrón predecibleu Lo más larga posible
F Mínimo 8 caracteresF ¡OJO! ¿Número máximo de caracteres que
utiliza el sistema?
n NO utilizar nunca como clave de acceso:u Palabras del diccionario (en ningún idioma)u Nombres propiosu Variaciones creadas sobre estas palabras
1.Autentificación basada en contraseñas
Elvira Baydal Cardona 03/04/00
Tema 3: Seguridad básica en Unix 4
7
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix Passwords seguros e
inseguros (II)n Incrementar el espacio de búsqueda
incluyendo:u Letras mayúsculas y minúsculas
aleatoriamenteu Números y signos de puntuaciónu FRASES de acceso en lugar de palabras
1.Autentificación basada en contraseñas
8
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix Contraseñas adecuadas:
Ejemplosn Torres 10n 4 semanas en globon 53+2=57n 15 años tiene mi amorn 4379 elefantes se balanceabann pBR322n 120 Km/hn +34(1)909-23 32
1.Autentificación basada en contraseñas
Elvira Baydal Cardona 03/04/00
Tema 3: Seguridad básica en Unix 5
9
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix
Obtención fraudulenta depasswordsn Viéndolos al ser tecleados
u Prevención: Incluir carácteres de 2 teclasn Leyéndolos durante el tránsito a través de
la redu Solución: passwords de uso único (one -
time passwords)n Mediante caballos de Troya
1.Autentificación basada en contraseñas
10
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix
El fichero /etc/passwd (I)n Contiene información sobre los usuarios del
sistemaroot:OORoMNF9yZ:0:0:root:/root:/bin/bash
1.Autentificación basada en contraseñas
rdc00:fi3sED95:500:500:Usuario 00:/home/rdc00:/bin/bash
Campo Contenido
rdc00fi3sED95ibqR6500500Usuario 00/home/rdc00/bin/bash
Nombre de usuario Password Num. de id. del usuario Num. Id. de grupo Nombre completo del usuario Directorio personal Intérprete de mandatos
Elvira Baydal Cardona 03/04/00
Tema 3: Seguridad básica en Unix 6
11
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix
n Este fichero TIENE que ser legible por todo elmundo para muchas órdenes funcionencorrectamenteu Actualmente en Linux las contraseñas suelen
almacenarse en /etc/shadow (con accesolimitado a root)
n Las contraseñas se almacenan cifradas con unafunción de mezclau No se pueden desencriptaru Pero … son susceptibles de ataques de
diccionarioF Se calcula que el 25% de las claves se pueden
romper en menos de una hora
El fichero /etc/passwd (II)
12
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix
n Contiene una entrada por cada línea del fichero/etc/passwd
n Almacena los nombres de usuarios y suscontraseñas, así como información sobre sufecha de caducidadu Cuando este fichero existe el campo de
contraseña de /etc/passwd se sustituye por una xn Sólo debe ser accesible para root
El fichero /etc/shadow
1.Autentificación basada en contraseñas
Elvira Baydal Cardona 03/04/00
Tema 3: Seguridad básica en Unix 7
13
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix
/etc/login.defsn Permite definir algunos valores por defecto
sobre la administración de contraseñas:u Número máximo de días que puede
utilizarse una contraseñau Número mínimo de días entre cambios de
contraseñasF No debe activarse (puede hacer a los
usuarios más vulnerables)u Longitud mínima de las contraseñasu Máximo número de intentos de login si la
contraseña es incorrectau Advertencia sobre contraseñas débiles
1.Autentificación basada en contraseñas
14
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix
El fichero /etc/securettyn Contiene la lista de terminales desde los
que root puede acceder al sistemau Los terminales de la consola suelen ir de
/dev/tty1 a /dev/tty6u No es recomendable permitir el acceso de
root a través de la redn Sin embargo, un usuario legítimo puede
aún utilizar el comando su desde cualquierterminal una vez que ha accedido alsistema
1.Autentificación basada en contraseñas
Elvira Baydal Cardona 03/04/00
Tema 3: Seguridad básica en Unix 8
15
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix
n El archivo /etc/servicesu Cada línea contiene el nombre de un
servicio, el número de puerto del servidor,un nombre de protocolo y una lista de alias#/etc/servicestelnet 23 /tcpsmtp 25 /tcp mail
u Los servidores deben determinar sunúmero de puerto mediante la llamadagetservicebyname() y el fichero/etc/services
2. Seguridad básica deservicios de red
2. Seguridad básica de servicios de red
16
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix
n Permite visualizar el estado de las conexionesde red, así como los sockets abiertos dondehay algún servidor escuchando (requiere laopción -a)u Podemos saber con que sistemas se comunica
nuestro ordenador a través de la redu Si un puerto tiene un nombre asignado en
/etc/services se visualizará este en lugar delnúmero de puerto
u Podemos visualizar sólo los sockets IPmediante la opción --inet
2. Seguridad básica de servicios de red
La orden netstat
Elvira Baydal Cardona 03/04/00
Tema 3: Seguridad básica en Unix 9
17
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix
Ejemplo listado netstat[elvira@elvira elvira]$ netstat -a --inetActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address Statetcp 0 0 192.168.220:netbios-ssn 192.168.220.2:1026 ESTABLISHEDtcp 1 0 elvira.disca.upv.e:1053 proxima.cc.upv:webcache CLOSE_WAITtcp 0 0 192.168.220:netbios-ssn *:* LISTENtcp 0 0 elvira.disc:netbios-ssn *:* LISTENtcp 0 0 *:printer *:* LISTENtcp 0 0 *:linuxconf *:* LISTENtcp 0 0 *:telnet *:* LISTENtcp 0 0 *:ftp *:* LISTENtcp 0 0 *:auth *:* LISTENudp 0 0 *:800 *:*udp 0 0 *:646 *:*udp 0 0 *:1023 *:*raw 0 0 *:icmp *:* 7
18
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix
Iniciando un servidor en Unixn Fundamentalmente tenemos 2 tipos de
servidores:u Los que están siempre ejecutándose. Se
inician automáticamente en el arranque delsistema (/etc/rc*). Por ejemplo, nfsd ysendmail
u Los que se ejecutan bajo demanda de algúncliente. Se inician a partir del inetd
F El superservidor inetd escucha en los puertosde los servicios que proporciona y lanza eldemonio adecuado cuando se recibe unasolicitud
2. Seguridad básica de servicios de red
Elvira Baydal Cardona 03/04/00
Tema 3: Seguridad básica en Unix 10
19
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix /etc/inetd.conf
n Determina que servicios se están ofreciendo através del inetd
n Nombre del servicio: El que aparece en /etc/servicesn Tipo de socket: Stream o datagramn Tipo de protocolo: TCP o UDPn wait/nowait: Determina si el servicio se atenderá de
forma secuencial o concurrenten Usuario: Especifica el identificador de usuario bajo el
que se ejecutará el proceso
#time dgram udp wait root internalftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -atelnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
2. Seguridad básica de servicios de red
20
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix Recomendaciones sobre
configuración de los serviciosn Una política recomendable puede ser
desactivar inicialmente todos los servicios yposteriormente poner en funcionamiento sóloaquéllos en los que se tenga interés y setenga claro el riesgo que implican
n Para los servicios ofrecidos el acceso puederestringirse mediante el TCP_WRAPPERS
2. Seguridad básica de servicios de red
Elvira Baydal Cardona 03/04/00
Tema 3: Seguridad básica en Unix 11
21
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix Configuración de los
servicios internosn Algunos servicios aparecen como internal.
Son servicios triviales que maneja elpropio inetd (echo, time, daytimediscard,chargen)u Aunque pueden ser útiles para comprobar
el funcionamiento de la red y no presentanriesgos de seguridad en si mismos serecomienda desactivarlos
F Pueden utilizarse para ataques dedenegación de servicio
F Si se ofrecen debe ser restringido al ámbitode la red local
22
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix
Otros servicios del inetd (I)n Servicios como systat, netstat y finger
proporcionan demasiada informaciónu systat proporciona información de estado
sobre nuestro computador (órdenes who ops)
u netstat informa sobre los puertos abiertosen nuestro sistema
u finger entre otras cosas permite averiguarla última vez que un usuario se conectó ala máquina
u Estas informaciones facilitan los ataques2. Seguridad básica de servicios de red
Elvira Baydal Cardona 03/04/00
Tema 3: Seguridad básica en Unix 12
23
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix
n Se deben reemplazar telnet y los servicios r por elSSH
n Los servidores pop e imap no se requieren si lamáquina no va a funcionar como servidor de correo
n TFTP y bootp son servicios que permiten configurar lamáquina como servidores de arranque para clientesque cargan el s.o. a través de la red.u TFTP se considera altamente insegurou Permite acceso para descargar ficheros sin contraseña
Otros servicios del inetd (II)
#pop-2 stream tcp nowait root /usr/sbin/tcpd ipop2d#pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d#imap stream tcp nowait root /usr/sbin/tcpd imapd
2. Seguridad básica de servicios de red
24
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix
n Permite averiguar la identidad del usuario quetiene establecida una conexión TCP
n Sólo devuelve información entre conexionesestablecidas entre el servidor y el sistema desdedonde se realiza la consultau En muchos casos cuando un cliente se conecta a
un servidor, desde la máquina del servidor se abreuna conexión al servidor identd de la máquinacliente, con los números de puerto que deseaidentificar
n La información devuelta puede no ser fiable y nodebe utilizarse con propósitos de autenticación
El servicio de identificación
2. Seguridad básica de servicios de red
Elvira Baydal Cardona 03/04/00
Tema 3: Seguridad básica en Unix 13
25
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix
Por último ...n Una vez eliminados los servicios que no
se desean hay que hacer efectivos loscambiosu “kill -s SIGHUP pid” hace que el servidor
vuelva a leer su fichero de configuraciónu El pid del inetd puede obtenerse:
F en /var/run/inetd.pidF ps -A | grep inetd
2. Seguridad básica de servicios de red
26
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix Restricción del acceso a los
servicios del inetdn Wrapper: programa que se utiliza para
restringir el acceso a un segundoprograma
n El inetd viene acompañado de un wrapper(tcp_wrapper) que se utiliza para restringirel acceso a los servicios TCP y UDPproporcionados por el inetdu Actualmente suele instalarse
automáticamente junto al sistema
2. Seguridad básica de servicios de red
Elvira Baydal Cardona 03/04/00
Tema 3: Seguridad básica en Unix 14
27
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix Funcionamiento del tcp_wrappers
n Cuando llega una solicitud para un servicio el inetdejecuta el tcpd en lugar del servicio solicitado
n El tcpd ejecutará entonces una o más de las siguientesacciones:u Opcionalmente, puede enviar un banneru Doble comprobación nombre-direcciónu Control de acceso, si el acceso es denegado cancela la
conexiónu Utiliza el ident para determinar el nombre de usuario
asociado con la conexiónu Registra el intento de conexión con el syslogu Opcionalmente ejecuta una ordenu Pasa el control al programa real que tiene que ejecutar el
servicio o a algún otro programa
28
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix Control del acceso con
tcp_wrappersn Utiliza un par de ficheros de configuración (
hosts.allow y hosts.deny) que permitenespecificar si las conexiones deben o noaceptarse
n El orden de búsqueda es el siguiente:1. hosts.allow para ver si el host cliente (y en su
caso el usuario) tiene acceso al servicio2. Si no se ha encontrado ninguna coincidencia se
revisa el hosts.deny para ver si la conexión deberechazarse
3. Si NO se ha encontrado coincidencia la conexiónse PERMITE
Elvira Baydal Cardona 03/04/00
Tema 3: Seguridad básica en Unix 15
29
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix
Reglas de control de acceson Las líneas en los ficheros hosts.allow y
hosts.deny tienen el formato:lista_de_demonios: lista_de_clientes [: orden_shell]
u lista_de_demonios: lista de uno o más nombres de procesosdemonio o palabras reservadas (ALL indica todos los demonios,también puede utilizarse EXCEPT)
u lista_de_clientes: Nombre de host o dirección IP de laconexión entrante. Puede utilizarse también usuario@hostpara especificar un usuario particular en el computador remoto(dicho computador debe soportar el protocolo ident)
u orden_shell: Especifica una orden que debe ejecutarse si eldemonio y el cliente casan con la conexión entrante
2. Seguridad básica de servicios de red
30
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix Patrones para clientes especiales
n Una cadena que empieza con “.”. Los últimoscomponentes del nombre del host deben casar con elpatrón especificadou “zoltar.redes.upv.es” cuadra con “.upv.es”
n Una cadena que finaliza con “.”. Los primeros camposde la dirección IP deben coincidir con la cadenaespecificadau 158.42.53.99 cuadra con “158.42.”
n Una expresión de la forma “r.r.r.r/m.m.m.m” esinterpretada como una pareja “red/máscara”u “158.42.53.0/255.255.254.0” casa con cualquier dirección
en el rango “158.42.52.0” a “158.42.53.255”
2. Seguridad básica de servicios de red
Elvira Baydal Cardona 03/04/00
Tema 3: Seguridad básica en Unix 16
31
Te
ma
3:
s
eg
ur
id
ad
b
ás
ic
a
en
Un
ix Patrones para clientes y
demoniosn ALL: Cualquier host y cualquier demonion LOCAL: Cualquier host que no tenga un “.” en su
nombren UNKNOWN: Cualquier dirección IP que no tenga su
correspondiente nombre de host. También nombres deusuario para los que el ident no esté disponible
n KNOWN: Direcciones Imore P que tienen su nombrede dominio; también nombres de usuario cuando elident está disponible
n PARANOID: Cualquier nombre de host para el que ladoble consulta nombre/IP no concuerda
2. Seguridad básica de servicios de red