83
Introducción Técnicas La Herramienta sudo Resumen La Herramienta sudo Administración Delegada de Servidores Linux Amaya Rodrigo Ministerio de Administraciones Públicas Alanta OpenSource Technologies 2 3 y 4 de Octubre, 2006 Amaya Rodrigo sudo

La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoAdministración Delegada de Servidores Linux

Amaya Rodrigo

Ministerio de Administraciones PúblicasAlanta OpenSource Technologies

2 3 y 4 de Octubre, 2006

Amaya Rodrigo sudo

Page 2: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Índice

1 IntroducciónPresentación

2 TécnicasPermisos UnixCuentas con uid 0Claves sshLa Herramienta su

3 La Herramienta sudoLa Herramienta sudoComplementosHerramientas gráficas

Amaya Rodrigo sudo

Page 3: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Presentación

Índice

1 IntroducciónPresentación

2 TécnicasPermisos UnixCuentas con uid 0Claves sshLa Herramienta su

3 La Herramienta sudoLa Herramienta sudoComplementosHerramientas gráficas

Amaya Rodrigo sudo

Page 4: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Presentación

Diferentes técnicas

Administración delegada de servidores LinuxPermisos del sistema de archivos.La herramienta suCuentas con uid 0Mediante sshLa herramienta sudoLa herramienta sudoshLa herramienta gksuPeticiones especiales

Amaya Rodrigo sudo

Page 5: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Presentación

Objetivos

Convivencia de varios administradoresOtorgar los permisos de forma granularProteger la contraseña de rootEvitar implicaciones serias de seguridadPermitir que el sistema se mantenga seguro, pero usableMonitorizar el uso de estos privilegios

Amaya Rodrigo sudo

Page 6: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Permisos UnixCuentas con uid 0Claves sshLa Herramienta su

Índice

1 IntroducciónPresentación

2 TécnicasPermisos UnixCuentas con uid 0Claves sshLa Herramienta su

3 La Herramienta sudoLa Herramienta sudoComplementosHerramientas gráficas

Amaya Rodrigo sudo

Page 7: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Permisos UnixCuentas con uid 0Claves sshLa Herramienta su

Permisos Unix

Los permisos de un archivo se definen según a quién se otorgan:Al propietario del archivoA los miembros del grupo al que pertenece el archivoAl resto de usuarios del sistema

Sólo el dueño de un archivo y root pueden cambiar los permisos

Amaya Rodrigo sudo

Page 8: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Permisos UnixCuentas con uid 0Claves sshLa Herramienta su

Visualizar los permisos

Para visualizar los permisos, ejecutamos la orden ls con elparámetro -l

ls -l

$ ls -l-rw -r- -r- 1 tux1 users 4217 2006-09-29 15:40 archivo1-rw -r- -r- 1 tux2 users 4217 2006-09-29 15:40 archivo2

drwx r-x r-x 1 tux1 users 4217 2006-09-29 15:40 directorio1____ ___ ___ _ ____ _____ ____ ________________ ___________| | | | | | | | |u g a | dueño grupo tamaño mtime nombre

|-> número de enlaces simbólicos que apuntan al archivo

Amaya Rodrigo sudo

Page 9: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Permisos UnixCuentas con uid 0Claves sshLa Herramienta su

Permisos: Notación simbólica

archivos ordinariosr lectura: el archivo se puede leerw escritura: el archivo se puede modificar o borrarx ejecución: el archivo es ejecutable

directoriosr lectura: se puede listar el contenido del directorio (ls)w escritura: se puede modificar el contenido del directorio

permite crear, renombrar y borrar archivosaunque no se tenga permiso de escritura sobre el archivo

x ejecución: se puede entrar en el directorio (cd)

Amaya Rodrigo sudo

Page 10: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Permisos UnixCuentas con uid 0Claves sshLa Herramienta su

Permisos: Notación octal

Notación Octal

-rwx r-x ---____ ___ ___ r = 4

| | | w = 2| | -> 0+0+0=0 x = 1| || -> 4+0+1=5 - = 0|-> 4+2+1=7

Los permisos son: 750

Amaya Rodrigo sudo

Page 11: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Permisos UnixCuentas con uid 0Claves sshLa Herramienta su

Permisos: Combinaciones más comunes

600 (rw- --- ---) Archivos privados700 (rwx --- ---) Programas y directorios privados644 (rw- r-- r--) Archivos legibles por todos666 (rw- rw- rw-) Archivos modificables por todos

(no muy común)777 (rwx rwx rwx) Directorios públicos

con permiso de escritura (/tmp)

Amaya Rodrigo sudo

Page 12: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Permisos UnixCuentas con uid 0Claves sshLa Herramienta su

Permisos especiales

El bit SUID (Switch UID)El programa se ejecuta con el UID y los permisos del propietarioSuele usarse para poder ejecutar órdenes como rootSuele aplicarse en el caso de ejecutablesCarece de significado en directoriosNo sirve para scripts de shell (en algunos sistemas)

Amaya Rodrigo sudo

Page 13: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Permisos UnixCuentas con uid 0Claves sshLa Herramienta su

Permisos especiales

El bit SGID (Switch GID)En ejecutables:

El programa se ejecuta con el UID y los permisos del grupo

En directorios:Cualquier archivo/directorio creado en su interior conservará lospermisos del padre en lugar de los del usuario que lo crea.

Podemos encontrar estos archivos con la orden:find / -perm +6000 -ls

Amaya Rodrigo sudo

Page 14: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Permisos UnixCuentas con uid 0Claves sshLa Herramienta su

Permisos especiales

El Sticky Bit

En ejecutables:El programa no debe ser eliminado de la memoria tras ejecutarse.Acelera posteriores ejecuciones del programaTambién aumenta el consumo de memoriaEn desuso, el kernel lo ignora

En directorios, incluso aunque haya permisos de escrituraglobales en el directorio:

Los usuarios sólo pueden borrar/modificar los archivos de los queson dueñosEl dueño del directorio, en cambio, tiene acceso total a todo elcontenido

Amaya Rodrigo sudo

Page 15: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Permisos UnixCuentas con uid 0Claves sshLa Herramienta su

Permisos: casos especiales

Permisos de un enlace simbólico

$ ls -l bin/vilrwxrwxrwx 1 root root 12 2003-12-18 01:50 bin/vi -> /usr/bin/vim

$ ls -l /usr/bin/vim-rwxr-xr-x 1 root root 1382568 2006-09-10 12:27 /usr/bin/vim

Los permisos de los enlaces simbólicos parecen universales, pero notienen efecto. Los permisos reales son los del archivo al que apuntan.

Amaya Rodrigo sudo

Page 16: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Permisos UnixCuentas con uid 0Claves sshLa Herramienta su

Cambio de permisos: chmod

Sintaxis de chmod

chmod { [ugoa] {+-=} [rwx] | [ug] {+-=}s | [0] {+-w}t } archivo

chmod <octal> archivo

Admite notación octal o simbólicaLos bits SUID, SGID y Sticky tienen parámetros especiales

Amaya Rodrigo sudo

Page 17: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Permisos UnixCuentas con uid 0Claves sshLa Herramienta su

Cambio de permisos: propietarios

chown permite cambiar los propietarios de un archivo

Sintaxis de chown

chown [-R] usuario:grupo archivochown [-R] usuario.grupo archivo

chgrp permite cambiar el grupo a un archivo

Sintaxis de chgrp

chgrp grupo archivo

Amaya Rodrigo sudo

Page 18: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Permisos UnixCuentas con uid 0Claves sshLa Herramienta su

Conclusiones

VentajasJugando con los permisos del sistema, podemos permitir a otrosusuarios ejecutar órdenes como root, sin desvelar la contraseña

InconvenientesEs relativamente fácil escalar privilegios aprovechando unagujero de seguridad en un ejecutable con el bit suid activado

Conviene extremar las precauciones

Amaya Rodrigo sudo

Page 19: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Permisos UnixCuentas con uid 0Claves sshLa Herramienta su

Índice

1 IntroducciónPresentación

2 TécnicasPermisos UnixCuentas con uid 0Claves sshLa Herramienta su

3 La Herramienta sudoLa Herramienta sudoComplementosHerramientas gráficas

Amaya Rodrigo sudo

Page 20: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Permisos UnixCuentas con uid 0Claves sshLa Herramienta su

Cuentas con uid 0

$ cat /etc/passwdroot:x:0:0:root:/root:/bin/bashroot-carmen:x:0:0:root:/root:/bin/bashroot-jorge:x:0:0:root:/root:/bin/bashjmartinez:x:0:0:root:/root:/bin/bash

Amaya Rodrigo sudo

Page 21: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Permisos UnixCuentas con uid 0Claves sshLa Herramienta su

Índice

1 IntroducciónPresentación

2 TécnicasPermisos UnixCuentas con uid 0Claves sshLa Herramienta su

3 La Herramienta sudoLa Herramienta sudoComplementosHerramientas gráficas

Amaya Rodrigo sudo

Page 22: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Permisos UnixCuentas con uid 0Claves sshLa Herramienta su

Con claves de ssh

SSH (Secure Shell)Puede autentificar por clave pública, permitiendo ejecutarórdenes de root local o remotamente.Permite restringir privilegios forzando las órdenes con ssh.

Restringir el acceso ssh

$ cat /root/.ssh/authorized_keys:command="/usr/local/bin/programa" ssh-dss fky7Dj7bGYxdHRYuHN ...

$ ssh -l root -i ruta_clave_privada localhost

Amaya Rodrigo sudo

Page 23: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Permisos UnixCuentas con uid 0Claves sshLa Herramienta su

Problemas

Las cuentas con uid 0 y las claves públicas de ssh, constituyen unmétodo:

Fácil y rápido, pero aporta pocas ventajasY muchos inconvenientes

Es facil perder la cuentaNo es granularDifícil de registrar qué hace cada uno

Amaya Rodrigo sudo

Page 24: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Permisos UnixCuentas con uid 0Claves sshLa Herramienta su

Índice

1 IntroducciónPresentación

2 TécnicasPermisos UnixCuentas con uid 0Claves sshLa Herramienta su

3 La Herramienta sudoLa Herramienta sudoComplementosHerramientas gráficas

Amaya Rodrigo sudo

Page 25: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Permisos UnixCuentas con uid 0Claves sshLa Herramienta su

La Herramienta su

su: switch userPermite cambiar a otro usuario cuando se está dentro de una sesióny en particular ejecutar órdenes como root

Pide la contraseña del usuario al cual se pretende cambiarroot puede ejecutar su y cambiar a cualquier usuario sin introducirninguna contraseña

Para salir, se puede usar Ctrl-d, logout, o exit

Implica revelar la contraseña de root

Amaya Rodrigo sudo

Page 26: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Permisos UnixCuentas con uid 0Claves sshLa Herramienta su

La Herramienta su

Sintaxis de su

su [-] [usuario] [-c orden]

Sin argumentos, se asume rootSeguido de un nombre de usuario, cambia a éstesu con el argumento - importa el entorno del usuario de destino,como una shell de loginSi se incluye el argumento -c, se ejecuta la instrucción unix queva detrás de -c con el usuario indicadoSe puede configurar mediante PAM (Plugable AuthenticationModules)

Amaya Rodrigo sudo

Page 27: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Permisos UnixCuentas con uid 0Claves sshLa Herramienta su

su: entorno de usuario

Diferencias de una shell de root y una shell de root tipo login

su

$ env > /tmp/env.user$ su# env > /tmp/env.rootshell# diff /tmp/env.user /tmp/env.rootshell# exit

su -

$ su -# env > /tmp/env.rootlogin# diff /tmp/env.rootshell /tmp/env.rootlogin# exit

Amaya Rodrigo sudo

Page 28: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Índice

1 IntroducciónPresentación

2 TécnicasPermisos UnixCuentas con uid 0Claves sshLa Herramienta su

3 La Herramienta sudoLa Herramienta sudoComplementosHerramientas gráficas

Amaya Rodrigo sudo

Page 29: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

La Herramienta sudo

Amaya Rodrigo sudo

Page 30: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

La Herramienta sudo

sudo: superuser doPermite ejecutar órdenes con permisos de rootPide la contraseña del propio usuario en lugar de la de root

Ejemplo

$ sudo vi /etc/shadowWe trust you have received the usual lecture from the localSystem Administrator. It usually boils down to these threethings:

#1) Respect the privacy of others.#2) Think before you type.#3) With great power comes great responsibility.

Password: (su propia contraseña de usuario)

Amaya Rodrigo sudo

Page 31: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Si tux1 intenta usar sudo sin los permisos adecuados:

Ejemplo

$ sudo vi /etc/passwdSorry, user tux1 is not allowed to execute"/usr/bin/vi /etc/passwd" as root on www.map

Amaya Rodrigo sudo

Page 32: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Diferencias con su

su da aceso a una consola de root, sudo se emplea dando elnombre del programasu pide la clave de root, sudo la del propio usuariosudo guarda un registro de las órdenes que ejecuta cadausuariosudo vuelve a pedir la contraseña cada X minutos (configurable)

Y muchas más...

Amaya Rodrigo sudo

Page 33: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Un poco de historia

1980: Nace en el Departamento de Computer Science enSUNY/Buffalo1991: se relicencia bajo GPL1999: se reescribe y relicencia bajo ISC (parecida a la BSD)Última versión:

sudo 1.6.8p12, 8 de Noviembre, 2005software muy estable y probadoPocos cambios, sólo problemas de seguridadLicencia ISC-style, tipo BSD

Amaya Rodrigo sudo

Page 34: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Instalación

Se puede obtenerUn paquete binario, con la propia distribución (recomendado)Compilar e instalar el código fuente

Requiere conocimientos avanzadosPuede tener resultados imprevisiblesPero hay parémetros que sólo se pueden cambiar recompilando

Lo mejor es obtener los paquetes fuentes de la distribución queestemos usando

Amaya Rodrigo sudo

Page 35: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

/usr/sbin/sudo

El propio sudo es un binario de tipo suid

Permisos

---s--x--x 1 root root 81644 Jan 14 15:36 /usr/bin/sudo

La s significa que es un programa suidCon permisos de ejecución para todosAl ejecutarlo, y pertenecer a root, se ejecuta con permisos derootSi lo invocáramos para abrir una shell, nos convertiríamos enroot

Amaya Rodrigo sudo

Page 36: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Configuración

/etc/sudoers

Enumera qué usuarios pueden ejecutar qué órdenesSe pueden definir macros para reducir la complejidad

Sintaxis de /etc/sudoers

$ ls -l /etc/sudoers-r--r----- 1 root root 1189 2006-02-09 21:42 /etc/sudoers

$ cat /etc/sudoers# Sintaxis básica de /etc/sudoers# user host = commandsUser_Alias OPERATORS = tux1, tux2, tux3Host_Alias WEBSERVERS = www, www-1, www-3Cmnd_Alias PRINTCMNDS = /usr/bin/printtool, /usr/bin/lpqtux1 WEBSERVERS = (root) /sbin/service/httpd restartOPERATORS printssvr = (root) PRINTCMNDS

Amaya Rodrigo sudo

Page 37: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Configuración

Sintaxis de /etc/sudoers

$ cat /etc/sudoers# Hacemos alias, que es la forma normal de trabajar con sudo:User_Alias WEBROOT = tux1Host_Alias WEBSERVER = webserver.dmzCmnd_Alias SERVICES = /etc/init.d/httpd,/etc/init.d/named,/etc/init.d/sshdCmnd_Alias COMMAND = /bin/mount

# Traduccion: Los usuarios dentro de WEBROOT, en el HOST WEBSERVER,# pueden ejecutar los servicios SERVICES.WEBROOT WEBSERVER = SERVICES,COMMANDWEBROOT WEBSERVER = NOPASSWD: SERVICES,COMMAND

# Usuarios sin restriccionestux2 ALL=(ALL) NOPASSWD: ALLtux3 ALL=(ALL)ALL

# Añadimos un logDefaults logfile=/var/log/sudo.log, log_year, mail_badpass, \

mailto=tux3@localhost

Amaya Rodrigo sudo

Page 38: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

visudo

Sintaxis de visudo

visudo [ -c ] [ -f sudoers ] [ -q ] [ -s ] [ -V ]

-c comprueba la sintaxis (devuelve 0 ó 1)-f ruta al archivo sudoers-q modo silencioso

No imprime los erroresse usa junto a -c

se usa en scripts: visudo -cqel valor de salida se almacena en $?

-s comprobación estricta-f ruta al archivo sudoers-V nos da la versión

Amaya Rodrigo sudo

Page 39: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

visudo

Al ejecutar visudo se crea el archivo /etc/sudoers.tmpIndica que el fichero está en usoImpide que varias personas lo editen a la vez

Antes de guadar /etc/sudoers, se realizan comprobacionesde sintaxisEl editor se puede configurar con la variable $EDITOR

Amaya Rodrigo sudo

Page 40: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Sintaxis de sudo

Opciones

sudo -K | -L | -V | -h | -k | -l | -v

-H la variable $HOME cambia a la del usuario de destino. Por defectose conserva el $HOME del usuario de origen-K la contraseña es borrada de la memoria por completo-L lista los valores existententes en la línea Defaults-V (como usuario) Da la versión de sudo-V (como root) Da más información. Valores por defecto, opciones decompilación, info de la máquina-h muestra la ayuda

Amaya Rodrigo sudo

Page 41: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Parámetros

-l nos muestra lo permitido o prohibido para nuestro usuario en estehost

Listar los permisos

$ sudo -lUser swift may run the following commands on this host:

(root) /usr/libexec/xfsm-shutdown-helper(root) /usr/bin/emerge(root) /usr/bin/passwd [a-zA-Z]*(root) !/usr/bin/passwd root(apache) /usr/bin/pkill(apache) /bin/kill

Amaya Rodrigo sudo

Page 42: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Parámetros

-k la contraseña es borrada de la memoriarevocar privilegios desde el .bash_logout

-v refresca el timestamp de la contraseña. Si es necesario, la pide.Si no ha caducado, no.

Prolongar el tiempo de expiración de la contraseña

$ sudo -v

Por defecto, si un usuario ha introducido su contraseña para autenticarseante sudo, ésta es recordada durante 5 o 15 minutos, según el sistema, o el/ect/sudoers. Si el usuario quiere prolongar este periodo, puede ejecutarsudo -v para reiniciar la marca de tiempo de modo que pasen otros cincominutos antes de que sudo pregunte de nuevo por la contraseña.Lo contrario es matar la marca de tiempo usando sudo -k

Amaya Rodrigo sudo

Page 43: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Parámetros

Parámetros completos

sudo[-HPSb] [-a auth_type] [-c class|-] [-p prompt] [-u username|#uid] {-e file [...] | -i | -s | command}

-S lee la contraseña de stdin-b ejecuta la orden en segundo plano-a tipo de autentificación (/etc/login.conf)

usando el parámetro auth-sudo en /etc/login.conf

sudo compilado con -with-bsdauth

-c class la orden se ejecuta con el límite de recursos definido en/etc/login.conf para la clase class

Amaya Rodrigo sudo

Page 44: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Parámetros

-p Personaliza cómo pedimos la contraseña%u login del usuario%U login del usuario de destino%h nombre de la máquina%H fqdn: nombre de la máquina con dominio%% Pinta un%

Prompt personalizado

$ sudo -p %u@%h: lstux1@www:

Amaya Rodrigo sudo

Page 45: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Parámetros

Parámetros completos

sudo[-HPSb] [-a auth_type] [-c class|-] [-p prompt] [-u username|#uid] {-e file [...] | -i | -s | command}

-u usuario ejecuta la orden como el usuario especificado-e archivo no se ejecuta una orden, se edita el archivo indicado:

se hacen copias temporales del archivo a editarse editan los archivos temporales

con el editor indicado por $HOMEcon el editor indicado en /etc/sudoers (variable editor)

Si se guardan los cambios, los archivos editados sustituyen a losreales.Si el archivo no existe, se creaEn caso de error, o si no se puede guardar, se avisa al usuario yse conservan los temporales

Es indiferente invocar sudoedit o sudo -eAmaya Rodrigo sudo

Page 46: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Parámetros

Parámetros completos

sudo[-HPSb] [-a auth_type] [-c class|-] [-p prompt] [-u username|#uid] {-e file [...] | -i | -s | command}

-i simula un login inicialcon la shell del usuario según dicte /etc/passwd

sudo intenta entrar en el $HOME del usuario de destinoinicializa el entorno, conservando la variable $TERM, perocambia $HOME, $SHELL, $USER, $LOGNAME, y $PATH

-s ejecuta la shell definida por $SHELL o en /etc/passwd

Amaya Rodrigo sudo

Page 47: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

sudo

sudo realiza una comprobación del entorno antes de ejecutarseAl ejecutarlo con -V, muestra las variables de entorno quecomprueba

Amaya Rodrigo sudo

Page 48: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

sudo

Sudo version 1.6.4[...]

Environment variables to check for sanity:LANGUAGELANGLC_*

Environment variables to remove:BASH_ENVENVTERMCAPTERMPATHTERMINFO_DIRSTERMINFO_RLD*LD_*PATH_LOCALENLSPATHHOSTALIASESRES_OPTIONSLOCALDOMAINIFS

Amaya Rodrigo sudo

Page 49: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Variables de entorno

sudo utiliza las siguientes variables de entorno:$EDITOR editor por defecto para usar con -e o sudoedit si $VISUAL está vacía$HOME qué valor usar con -s o -H

si se compiló con la opción -enable-shell-sets-home, el del usuario dedestino

$PATH se examina, y se limpia si se compiló con la opción -with-secure-path$SHELL qué shell ejecutar ocn la opción -s$SUDO_PROMPT prompt de contraseña por defecto$SUDO_COMMAND orden a ejecutar por sudo$SUDO_USER login usuario que ejecuta sudo$SUDO_UID el del usuario que ejecuta sudo$SUDO_GID el del usuario que ejecuta sudo$SUDO_PS1 prompt o símobolo del sistema$USER usuario de destino por defecto (root o el indicado con -u)$VISUAL editor por defecto para usar con -e / sudoedit

Amaya Rodrigo sudo

Page 50: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Variables de entorno

sudo borra las siguientes variables de entorno, para protegernos:

Variables peligrosas

IFSLOCALDOMAINRES_OPTIONSHOSTALIASESNLSPATHPATH_LOCALETERMINFOTERMINFO_DIRSTERMPATHTERMCAPENVBASH_ENVLC_ (si contiene ’/’ o ’%’)LANG (si contiene ’/’ o ’%’)LANGUAGE (si contiene ’/’ o ’%’)LD_*SHLIB_PATH (solo HP-UX)LIBPATH (solo AIX)KRB_CONF (solo kerberos4)KRBCONFDIR (solo kerberos4)KRBTKFILE (solo kerberos4)KRB5_CONFIG (solo kerberos5)

Amaya Rodrigo sudo

Page 51: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Sintaxis de /etc/sudoers

Dos tipos de entradasAlias: son variablesEspecificaciones de usuario: quién ejecuta qué

Cuando varias reglas afectan a un usuario, se aplican por ordenEn caso de conflicto, se aplica la últimaSe usa la gramática Extended Backus-Naur Form (EBNF).

Amaya Rodrigo sudo

Page 52: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Guía rápida de EBNF

EBNF es una forma concisa y exacta de describir la gramática de unlenguaje. Cada definición de EBNF se compone de reglas:symbol ::= definition | alternate1 | alternate2Cada regla hace referencia a otras reglas, se forma una gramáticapara el lenguajeOperadores (iguales que en las expresiones regulares)

? El símbolo anterior (o grupo de símbolos) es opcional, puedeaparecer una vez o ninguna.

* El símbolo anterior (o grupo de símbolos) puede aparecer ceroo más veces.+ El símbolo anterior (o grupo de símbolos) puede aparecer unao más veces.

Amaya Rodrigo sudo

Page 53: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Sintaxis de /etc/sudoers

Los alias se definen asíAlias_Type NAME = item1, item2, ...Tipos de Aliases

User_Alias

Runas_Alias

Host_Alias

Cmnd_Alias

Amaya Rodrigo sudo

Page 54: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Sintaxis de /etc/sudoersUser_Alias

Uno o más nombres de usuario.grupos del sistema: se indican con%Se puede usar el operador !

Número impar de ! -> niegaNúmero par de ! -> se cancelan entre ellos

Runas_Alias

Se parece a User_Alias, pero también puede contener uidsLos uids llevan el prefijo #Los nombres de usuario y grupo se comparan en cadenascompletas, su valor numérico no tiene efecto:

Dos usuarios (o grupos) con el mismo uid (o gid) se considerandiferentesPara denotar a todos los usuarios con el mismo uid a la vez, sepuede usar el valor númerico de su uid:Si el usuario root tiene uid 0 y el usuario toor tiene también uid 0,se puede referenciar a ambos con: #0

Amaya Rodrigo sudo

Page 55: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Sintaxis de /etc/sudoers

Host_Alias

Nombres de host, direcciones IP, o redes. Las máscaras de red:Notación numérica: 255.255.255.0Número de bits: /24

Cmnd_Alias

Lista de órdenes, directorios o aliases.Las órdenes pueden incluir .asteriscos", y la ruta completa.Con indicamos que sólo se puede ejecutar sin arcgumentos.Una ruta del tipo: /usr/bin/ indica un directorio. Se puedenejecutar las órdenes en ese directorio, pero no en lossubdirectorios que haya en él.

Amaya Rodrigo sudo

Page 56: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Los valores por defecto

Se pueden cambiar algunos parámetros de configuración sinrecompilar, cambiando las directivas por defecto: Se pueden cambiarpara todos los usuarios, en cualquier máquina, usuarios específicosde una máquina, un usuario específico, o sólo órdenes ejecutadaspor un usuario en concreto.

Default_Type ::= ’Defaults’ |’Defaults’ ’@’ Host |’Defaults’ ’:’ User |’Defaults’ ’>’ RunasUser

Default_Entry ::= Default_Type Parameter_List

Parameter_List ::= Parameter |Parameter ’,’ Parameter_List

Parameter ::= Parameter ’=’ Value |Parameter ’+=’ Value |Parameter ’-=’ Value |’!’* Parameter

Amaya Rodrigo sudo

Page 57: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Los valores por defecto

Modificar el entorno

# /etc/sudoers file.

Defaults:tux1 timestamp_timeout=-1, env_delete+="BOOP"

+= Añade al entorno= Sobreescribe el entorno-= Quita del entornotimestamp_timeout=0 La contraseña no será recordadatimestamp_timeout=-1 Sólo se pedirá la contraseña unavez, será recordada, aunque salga de la sesión.

hasta reiniciar el sistema

Amaya Rodrigo sudo

Page 58: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Los valores por defecto

ignore_dot: ignorar . o ” (directorio actual en el PATH. Pordefecto sí. No se puede cambiar. Para uso futuro.mail_always: envia email cada vez que un usuario ejecutasudo. Por defecto no.mail_badpass: envia email cada vez que un usuario seequivoca con la contraseña. Por defecto no.mail_no_user: envia email si el usuario no está en elsudoers. Por defecto sí.mail_no_host: envia email si el usuario está en el sudoers,pero no puede ejecutar órdenes en este host. Por defecto no.

Amaya Rodrigo sudo

Page 59: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Los valores por defecto

mail_no_perms: envia email si el usuario está en el sudoers,pero no puede ejecutar la orden que intentó ejecutar. Por defectono.tty_tickets: obliga al usuario a poner la contraseña en cadaterminal que use sudo. Por defecto no. Lo normal es tener untimestamp por usuario sin que importe el terminal. Por defectono.authenticate: exige contraeña antes de ejcutar nada. Admitevariaciones con los parámetros: PASSWD y NOPASSWD. Pordefecto sí.root_sudo: root puede usar sudo. Si se deshabilita impide quelos usuarios encadenen órdenes apra obtener root: sudo sudo/bin/sh o que root ejecute sudo y sudoedit. Sólo existe pormotivos históricos. No aporta mayor seguridad. Por defecto sí.

Amaya Rodrigo sudo

Page 60: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Los valores por defecto

log_host: el nombre de host se registrará en el archivo de logde sudo. Por defecto no.log_year: Uso de los 4 dígitos del año. Por defecto no.shell_noargs: ejecuta una shell de root si no se danparámetros al ejecutar sudo. Por defecto no. Actúa como sudo-s

set_home: en caso de ejecutar sudo -s ls variable de entornoHOME cambia a la del usuario de destino. Fuerza que sudo -simplique además sudo -H. Por defecto no.always_set_home: establece que la variabe de entorno HOMEcambie a la del usuario de destino. Por defecto no.

Amaya Rodrigo sudo

Page 61: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Los valores por defecto

path_info: da información sobre el contenido del PATHautorizado:

habilitado: le dice al usuario que la orden no está en el PATHdeshabilitado: le dice al usuario que no tiene permiso (confunde alusuario).Por defecto no.

fqdn: si vamos a usar fqdn en el archivo. Si el dns deja defuncionar, (p.e: no hay red) sudo también deja de funcionar.Ignora los alias (CNAME). Por defecto sí.insults: insulta a los usuarios si se equivocan de contraseña.Por defecto no.requiretty: impide ejecutar sudo a no ser que se esté en unterminal. Se habilita porque en ciertos terminales no reales"seve la contraseña. Por defecto no.

Amaya Rodrigo sudo

Page 62: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Los valores por defecto

env_editor: fuerza a usar un editor, ignorando la variabe deentorno EDITOR o VISUAL. Lista de editores, separada por :Por defecto sí.rootpw: pide la clave de root en vez de la del usuario. Pordefecto no.runaspw: pide la conraseña del usuario de destino que indicarunas. Por defecto no.targetpw: pide la conraseña del usuario de destino. Pordefecto no.env_reset: borra el entorno y lo restringe: HOME, LOGNAME,PATH, SHELL, TERM, USER y SUDO_*. Sólo TERM se copia delentorno original.noexec: Impide ejecutar órdenes desde un editor u otroprograma que permita salir a una shell. Por defecto no.

Amaya Rodrigo sudo

Page 63: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Los valores por defecto

Valores numéricos:passwd_tries: número de intentos fallidos permitidos. Pordefecto 3.timestamp_timeout: minutos en que expira la contraseña.Por defecto 15.

Cadenas:mailsub: Asunto del email: Por defecto: *** SECURITYinformation for%h ***

badpass_message: se muestra cuando el usuario se equivocade contraseña. Por defecto: Sorry, try again. A no ser quese habiliten los insultos.runas_default: usuario de destino. Por defecto: root.

Amaya Rodrigo sudo

Page 64: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Los valores por defecto

passprompt: cambia la cadena de petición de contraseña. Pordefecto: Password:.

%u login del usuario%U login del usuario de destino%h nombre de la máquina%H fqdn: nombre de la máquina con dominio%% Pinta un%

editor: Por defecto: vi.lecture: instrucciones antes de pedir la contraseña:

never nuncaonce la primera vezalways siempre

Amaya Rodrigo sudo

Page 65: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Los valores por defecto

lecture_file: ruta completa al archivo que contiene lasinstruccioneslecture_file: ruta completa al archivo que contiene lasinstruccioneslogfile: ruta completa al archivo donde queramos que quedeel registromailerpath: ruta completa al binario del servidor de correomailerflags: parámetros con que invocar el binario delservidor de correo. Por defecto: -tmailto: email del encargado de recibir los avisosexempt_group: grupo exento de contraseña y comprobacionesde PATH. Por defecto, grupo sudo

listpw: pide contraseña para una opción que normalmente nola necesita: sudo -l

Amaya Rodrigo sudo

Page 66: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

/etc/sudoers

# User alias specificationUser_Alias FULLTIMERS = millert, mikef, dowdyUser_Alias PARTTIMERS = bostley, jwfox, crawlUser_Alias WEBMASTERS = will, wendy, wim

# Runas alias specificationRunas_Alias OP = root, operatorRunas_Alias DB = oracle, sybase

# Host alias specificationHost_Alias SPARC = bigtime, eclipse, moet, anchor :\

SGI = grolsch, dandelion, black :\ALPHA = widget, thalamus, foobar :\HPPA = boa, nag, python

Host_Alias CUNETS = 128.138.0.0/255.255.0.0Host_Alias CSNETS = 128.138.243.0, 128.138.204.0/24, 128.138.242.0Host_Alias SERVERS = master, mail, www, nsHost_Alias CDROM = orion, perseus, hercules

# Cmnd alias specificationCmnd_Alias DUMPS = /usr/bin/mt, /usr/sbin/dump, /usr/sbin/rdump,\

/usr/sbin/restore, /usr/sbin/rrestoreCmnd_Alias KILL = /usr/bin/killCmnd_Alias PRINTING = /usr/sbin/lpc, /usr/bin/lprmCmnd_Alias SHUTDOWN = /usr/sbin/shutdownCmnd_Alias HALT = /usr/sbin/haltCmnd_Alias REBOOT = /usr/sbin/rebootCmnd_Alias SHELLS = /usr/bin/sh, /usr/bin/csh, /usr/bin/ksh, \

/usr/local/bin/tcsh, /usr/bin/rsh, \/usr/local/bin/zsh

Cmnd_Alias SU = /usr/bin/su

Amaya Rodrigo sudo

Page 67: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Configuración

Definir valores por defecto

# Override built-in defaultsDefaults syslog=authDefaults>root !set_lognameDefaults:FULLTIMERS !lectureDefaults:millert !authenticateDefaults@SERVERS log_year, logfile=/var/log/sudo.log

Amaya Rodrigo sudo

Page 68: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Configuración I

# Host alias specification

# User alias specificationRunas_Alias OP = root

# Cmnd alias specificationCmnd_Alias ADMIN= /usr/bin/apt-get, /usr/bin/dpkg, /bin/mv, /bin/cp, /usr/bin/nbtscan, \/sbin/reboot, /etc/init.d/*, /usr/bin/tail, /bin/pingCmnd_Alias ADMIN_NOPASS = /bin/kill, /usr/bin/lsof, /usr/sbin/iptrafCmnd_Alias ADMIN_NOEXEC = /usr/bin/more, /usr/bin/vi, /usr/bin/less

Cmnd_Alias OPERADOR= /usr/bin/nbtscan, /sbin/reboot, /etc/init.d/*, /usr/bin/tail, /bin/pingCmnd_Alias OPERADOR_NOPASS = /bin/kill, /usr/bin/lsof, /usr/sbin/iptrafCmnd_Alias OPERADOR_NOEXEC = /usr/bin/more, /usr/bin/less

# User privilege specificationroot ALL=(ALL) ALLtecnico ALL=(OP) ADMIN, (OP) NOPASSWD: ADMIN_NOPASS, (OP) NOEXEC:ADMIN_NOEXEC#hector ALL=(OP) OPERADOR, (OP) NOPASSWD: OPERADOR_NOPASS, (OP) NOEXEC:OPERADOR_NOEXEC

Amaya Rodrigo sudo

Page 69: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Configuración II

# Host alias specificationHost_Alias SERVERS=+sun-serversHost_Alias BUSOPS=HOST1,HOST2,HOST3Host_Alias HPCLIENTS=+NETGROUP1Host_Alias IOTCHOSTS=HOST4,HOST5,HOST6# Cmnd alias specificationCmnd_Alias REBOOT=/etc/reboot,/etc/haltCmnd_Alias LPCS=/usr/ucb/lpc,/usr/etc/lpc,/usr/ucb/lprmCmnd_Alias CAPSTUFF=/usr/local/cap/etc/stop-cap-servers,/usr/local/cap/etc/start-cap-serversCmnd_Alias INTERNCMD=/usr/local/bin/changepassword,/usr/local/etc/mkaliases,/usr/local/etc/mkhosts,/usr/local/bin/pprdist,/usr/local/etc/nismake,/usr/local/bin/edadmin,/usr/local/bin/chuser,/usr/ucb/lpc,/usr/etc/lpc,/usr/ucb/lprm,/usr/local/cap/etc/stop-cap-servers,/usr/local/cap/etc/start-cap-serversCmnd_Alias HTTP=/app/http/httpd_1.4/restart_httpdCmnd_Alias HTTP1=/app/http/httpd_1.4/start_httpd

Amaya Rodrigo sudo

Page 70: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Configuración III

Cmnd_Alias SHELLS=/bin/sh,/sbin/sh,/sbin/jsh,/usr/bin/sh,/bin/csh,/usr/bin/csh,/bin/ksh,/usr/bin/ksh,/usr/local/share/bin/tcsh,/usr/local/share/bin/bash,/usr/local/bin/tcsh,/usr/local/bin/bashCmnd_Alias SU=/bin/su,/usr/bin/su

# User specification# Sysadminssa1 ALL=ALLsa2 ALL=ALL# machine drewdrews-a1 drew=ALLdrews-a2 drew=ALL

Amaya Rodrigo sudo

Page 71: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Configuración IV

# DNS functions#dns-sa1 HOST1=ALL:+HOST1-sun-clients=ALLdns-sa2 HOST1=/usr/local/bin/DNSpush:+HOST1-sun-clients=ALLdns-sa3 HOST1=/usr/local/bin/DNSpush:+HOST1-sun-clients=ALL# Remote SysadminsREM1-sa1 ALL=ALLREM2-sa2 REMOTEHOSTS=ALL:REMOTECLIENTS=ALL:ALL=INTERNCMDREM3-sa1 ALL=ALLREM3-sa2 ALL=INTERNCMDREM4-sa1 REM4HOSTS=ALL:ALL=INTERNCMDREM4-sa2 REM4HOSTS=ALL:ALL=INTERNCMDREM5-sa1 REM5HOSTS=ALL:ALL=INTERNCMD# Intern Adminsintern-sa1 ALL=INTERNCMDintern-sa2 ALL=INTERNCMD

Amaya Rodrigo sudo

Page 72: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Configuración V

################################################ HOST1##############################################sa1 HOST1=/usr/local/etc/mkhostssa2 HOST1=/usr/local/etc/nismake: HOST2=ALL:HOST3=ALL################################################ Remote print servers, etc##############################################REM1-sa1 REMOTECLIENTS=ALL:HOST1=ALL:HOST2=LPCS,/bin/chmod,/bin/chgrp,/bin/rm,/bin/cp,/usr/ucb/viREM1-sa2 REMOTECLIENTS=ALLREM1-sa3 HOST1=LPCSREM1-sa4 HOST1=LPCS:itl-titan=LPCS# pre-1/96. Added per request from ADMIN1 to allow USER1 to reboot HP‘suser1 HPCLIENTS=REBOOT# pre-1/96. Allow the guys to start/restart HTTP# Huge security hole BTW, since they can change these scripts ...user2 HOST1=HTTP,HTTP1user3 HOST2=HTTP,HTTP1# pre-1/96. Added per these guys‘ request (they said they needed the rope ...)user1 SOMEHOSTS=ALLuser2 SOMEHOSTS=ALL# pre-1/96. These guys say they need sudo to do development (see comment above)user1 MOREHOSTS=ALLuser2 MOREHOSTS=ALL

Amaya Rodrigo sudo

Page 73: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

syslog

Nov 14 18:02:44 HOST1 sudo: ADM1 : TTY=pts/4 ; PWD=/appl/sudo/etc ;USER=root ; COMMAND=/usr/bin/date

Nov 14 18:03:40 HOST2 sudo: ADM1 : TTY=pts/0 ; PWD=/var/adm/syslog ;USER=root ; COMMAND=/usr/bin/vi /etc/syslog.conf

Nov 14 18:04:15 HOST3 sudo: ADM3 : TTY=pty/ttys0 ; PWD=/tmp_mnt/home/ADM3 ;USER=root ; COMMAND=/usr/bin/vi /etc/defaultdomain

Nov 14 18:04:38 HOST4 sudo: ADM1 : TTY=pts/0 ; PWD=/var/adm/syslog ;USER=root ; COMMAND=/etc/reboot

Nov 14 18:28:23 HOST5 sudo: ADM1 : TTY=pts/2 ; PWD=/var/adm ;USER=root ; COMMAND=/usr/sbin/poweroff

Nov 14 18:59:10 HOST6 sudo: ADM1 : TTY=pts/5 ; PWD=/appl/sudo/etc ;USER=root ; COMMAND=/usr/bin/cp sudoers /tmp

Nov 14 18:59:15 HOST7 sudo: ADM1 : TTY=pts/5 ; PWD=/tmp ;USER=root ; COMMAND=/usr/bin/chmod 777 sudoers

Nov 14 19:01:38 HOST8 sudo: ADM2 : TTY=pts/2 ; PWD=/appl/someapp/bin ;USER=root ; COMMAND=/usr/bin/vi applwrapper

Nov 14 21:33:42 HOST9 sudo: ADM1 : 3 incorrect passwords ; TTY=pts/4 ;PWD=/home/ADM1 ; USER=root ; COMMAND=/usr/bin/date

Nov 14 21:34:02 HOST9 sudo: ADM8 : user NOT in sudoers ; TTY=pts/6 ;PWD=/home/ADM8 ; USER=root ; COMMAND=/usr/bin/date

Nov 14 21:36:53 HOST9 sudo: ADM9 : command not allowed ; TTY=pts/6 ;PWD=/home/ADM9 ; USER=root ; COMMAND=/usr/bin/vi /etc/passwd

Amaya Rodrigo sudo

Page 74: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Índice

1 IntroducciónPresentación

2 TécnicasPermisos UnixCuentas con uid 0Claves sshLa Herramienta su

3 La Herramienta sudoLa Herramienta sudoComplementosHerramientas gráficas

Amaya Rodrigo sudo

Page 75: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

sudosh

sudosh es un filtro que se usa como shell (login shell)Diseñado para ser usado con sudo, o en solitarioPermite ejecutar órdenes como root, o una shell de rootTodo queda registrado, tanto las órdenes como la salida

Amaya Rodrigo sudo

Page 76: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Diferencias con sudo

Si se ejecuta una shell con sudo...sudo -ssudo /bin/shsudo

no registra en syslog qué órdenes se ejecutaronsólo que se abrió una shell

sudoshindependientemente de qué shell se usetenga implementado la funcionalidad de un archivo histórico o noregistra en syslog todas la órdenesincluso lo que se teclea en una sesión de vi

sudoscript (http://egbok.com/sudoscript/rationale.html)

Amaya Rodrigo sudo

Page 77: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Precaución

sudoshEs un programa relativamente nuevoPoco usado

Puede tener problemas de seguridad no conocidosPuede tener resultados imprevisiblesPuede penalizar el rendimiento del sistema

Escrituras masivas a disco con syslog

Amaya Rodrigo sudo

Page 78: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

Índice

1 IntroducciónPresentación

2 TécnicasPermisos UnixCuentas con uid 0Claves sshLa Herramienta su

3 La Herramienta sudoLa Herramienta sudoComplementosHerramientas gráficas

Amaya Rodrigo sudo

Page 79: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

xsu

Nos podemos crear nuestro propio script, si queremos ejecutaraplicaciones gráficas como otro usuario:

El archivo .Xauthority de root no tiene las credencialesadecuadas para acceder a nuestro display gráfico:

** WARNING ** cannot open display

Se ejecuta: $ xsu orden

Con esta solución, XAUTHORITY sería user/.Xauthorityen lugar de root/.Xauthority

No funciona con NFS sin acceso remoto como root (si usamos laopción root_squash en /etc/exports, porque el usuarioroot se mapea al anómino.

Amaya Rodrigo sudo

Page 80: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

gksu

Interfaz gráfica para su y sudo. COmo opciones, ofrece:

shell de loginPreservar el entornoSe usa en elementos de menú que requieren preguntarcontraseñas:

Amaya Rodrigo sudo

Page 81: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

La Herramienta sudoComplementosHerramientas gráficas

gksu

O para ejecutar órdenes como usuario:

Amaya Rodrigo sudo

Page 82: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Problemas

El uso de sudo a gran escala:De los métodos que hemos visto, es el más potente, perotambién el más complejoTiene inconvenientes

Las claves de usuario se convierten en claves de root (aunquerestringidas)Hay que tener cuidado:

Qué órdenesCon qué parámetrosEjemplo: vi

Posibles problemas de seguridad del propio sudo. De todos losprogramas suid, este es el más peligroso.

Amaya Rodrigo sudo

Page 83: La Herramienta sudo - Debianamaya/talks/2006-10-02_ES_-_Sudo_-_MAP/la_herramienta_sudo.pdfAl propietario del archivo A los miembros del grupo al que pertenece el archivo ... con permiso

IntroducciónTécnicas

La Herramienta sudoResumen

Resumen

Administración Delegada de Sistemas Linux.Administración Segura de Sistemas Linux.Distintas Técnicas, que se pueden combinar.

Amaya Rodrigo sudo