| Ernesto Hernandez-Novich on Fri, 02 Nov 2001 07:50:27 -0600 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Indice por Fecha] [Indice por Hilo]
| [LARGO] Usando wheel para proteger su (Era Re: Usuarios en Linux) |
On Wed, 24 Oct 2001, Luis Mendieta wrote: > la otra vez estaba leyendo un libro de Linux y en la > parte de creacion de usuarios decia, si se crea un > usuario que pertenezca al grupo de usuario wheel, éste > podrá usar el comando "su", lo quise probar, es decir > cree uno que no pertenezca a este grupo pero si puedo > hacer "su", alguien sabe algo de esto? > es verdad sobre lo que lei del grupo wheel? El uso del grupo wheel para usuarios "poderosos" es una tradición en los Unix estilo BSD, y que ha sido adoptada en otros sistemas operativos Unix-like. No es una obligación hacerlo, pero es una de las tantas formas en las cuales puede mejorarse la seguridad de un sistema Linux. El programa su permite cambiar la identidad de un usuario a otro; generalmente se asocia con "convertirse en root", pero puede ser empleado para convertirse en cualquier otro usuario. Esto es obviamente peligroso, de modo que es conveniente regular el acceso de los usuarios comunes a un programa como éste. Entran en juego los permisos de Unix. El programa /bin/su generalmente tiene permisos de acceso como (esto es tomado de Debian Woody) $ ls -l /bin/su -rwsr-xr-x 1 root root 23260 Aug 22 12:33 /bin/su que quiere decir que su dueño puede leerlo, escribirlo y ejecutarlo, los miembros del grupo root pueden leerlo y ejecutarlo, mientras que el resto de los usuarios pueden leerlo y ejecutarlo. Más aún, la 's' indica que sea quien sea que ejecute el comando, lo hace con privilegios del dueño (o sea root), cosa que es necesaria para poder cambiarse de usuario. Lo primero que queremos es que "el pueblo" (o populacho según su precaria educación y actitudes revoltosas :-) no pueda ejecutar el comando, lo cual logramos con un simple # chmod 4750 /bin/su # ls -l /bin/su -rwsr-x--- 1 root root 23260 Aug 22 12:33 /bin/su Ahora, solamente el dueño (root) y los miembros del grupo root son capaces de acceder al ejecutable. Pero el grupo root usualmente se asocia exclusivamente con el usuario root, por lo tanto "inventamos" un nuevo grupo y lo llamamos wheel. Luego, hacemos que /bin/su le pertenezca al grupo wheel con un simple # chgrp wheel /bin/su # ls -l /bin/su -rwsr-x--- 1 root wheel 23260 Aug 22 12:33 /bin/su Y ahora, debe resultar obvio que solamente root y los miembros del grupo wheel tendrán la posibilidad de ejecutar /bin/su. El principio puede extenderse a otros comandos "poderosos". Esta es la forma básica de hacerlo y que, de paso, funciona en cualquier Unix. Pero en Linux tenemos alternativas adicionales, en particular el empleo de PAM (que es mucho más limpio y elegante); si uno examina /etc/pam.d/su (si alguno tiene una distribución que _no_ tenga éste archivo, por favor comentarlo para agregarla a mi lista de "distribuciones indeseables" :-) encuentra las condiciones de autenticación para emplear el comando 'su'. En mi máquina personal tengo # Uncomment this to force users to be a member of group root # before than can use `su'. You can also add "group=foo" to # to the end of this line if you want to use a group other # than the default "root". # (Replaces the `SU_WHEEL_ONLY' option from login.defs) # auth required pam_wheel.so (A) # Uncomment this if you want wheel members to be able to # su without a password. # auth sufficient pam_wheel.so trust (B) # Uncomment this if you want members of a specific group to not # be allowed to use su at all. # auth required pam_wheel.so deny group=nosu (C) ...y algunas cosas más que no vienen al caso. El primer comentario es suficientemente claro: basta con quitar el comentario de la línea (A) para que solamente los miembros del grupo 'root' puedan usar su, y (siguiendo el mismo comentario) si se agrega 'group=wheel' a la misma línea... La línea (B) es una "comodidad": que cualquier usuario del grupo 'wheel' pueda hacer su sin que le pidan password. Sobre mi cadáver. La línea (C) es una bendición: poder impedir que miembros de determinado grupo puedan usar su. Para el paranoico es excelente poner a todos los usuarios en el grupo 'lusers' y luego colocar 'group=lusers'. Basta modificar (A), (B) y/o (C) a gusto y no hace falta cambiar los permisos de /bin/su. Por último y a título informativo solamente, antes de que existiera PAM, se podía instrumentar el programa su para "cablearle" el nombre del grupo privilegiado y se modificaba /etc/default/login.defs para definir dicho grupo. man chgrp man chmod man pam -- Ernesto Hernández-Novich - Running Linux 2.4.13 i686 - Unix: Live free or die! -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS/E d+(++) s+: a C+++$ UBLAVHIOSC*+++++$ P++++$ L+++$ E--- W+ N++ o K+++ w-- O- M- V- PS+ PE Y+ PGP>++ t+ 5- X+ R* tv+ b++ DI+++$ D++ G++ e++>+++ h r% y+ -----END GEEK CODE BLOCK----- ---------------------------------------------------------------------------- Enviar e-mail a <majordomo@linux.org.ve> colocando en el cuerpo: "unsubscribe l-linux" (Para retirarse) "info l-linux" (Para recibir las normas vigentes - Netiquette) Visite el canal IRC #velug en undernet.org para consultas interactivas. ----------------------------------------------------------------------------