Xestión de usuarios e grupos en Samba4

De Manuais Informática - IES San Clemente.
Revisión del 11:29 12 nov 2017 de Antonio (discusión | contribs.) (→‎Instalación de RSAT)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda

Neste apartado veremos dúas formas de xestionar os usuarios e grupos en Samba4: utilizando as Ferramentas de Administración Remota do Servidor (RSAT) de Microsoft instaladas nun cliente Windows integrado no dominio, ou coa ferramenta samba-tool.

Esquema dos usuarios e grupos do dominio

  • En primeiro lugar, recordemos o esquema dos usuarios e grupos do noso dominio:
Esquema de usuarios

Xestión dos usuarios e grupos con RSAT

  • Comezaremos vendo a administración dos usuarios dende un cliente Windows usando as RSAT. Instalaremos esta ferramenta nun equipo integrado no dominio, como wclient01.

Instalación de RSAT

  • Téñase en conta que é moi importante ter o sistema operativo actualizado antes de instalar as RSAT, xa que temos detectado sobre todo en Windows 10 que de non ter actualizado o sistema as ferramentas non funcionan correctamente.
  • Móstrase a continuación os pasos da instalación en Windows 10:

Estrutura do dominio e xestión de unidades organizativas

  • Comezaremos vendo a estrutura do LDAP que almacena os usuarios e grupos do dominio, e como definir as unidades organizativas que queiramos para organizalos.
  • Para poder xestionar os usuarios e grupos do dominio con RSAT, iniciaremos sesión en wclient01 co usuario Administrator, xa que é polo momento o único que temos cos privilexios suficientes para administrar o dominio (é dicir, membro do grupo Domain Admins).

Xestión de grupos de usuarios

  • Imos ver como administrar grupos de usuarios coa ferramenta de Usuarios e equipos de Active Directory

Xestión de usuarios

Imos cos usuarios; vexamos como crear un usuario dentro dunha unidade organizativa concreta e introducilo nos grupos que queiramos:

Creación de usuarios a partir dun modelo

  • En moitas ocasións, interésanos crear de usuarios a partir dun usuario de modelo para o que xa temos establecido unha configuración determinada de grupos, perfil, etc.
  • Con RSAT podemos copiar un usuario e así pasaremos toda a configuración do usuario copiado ao novo usuario. A configuración de perfil, feita habitualmente en función do nome do usuario, será modificada co nome que lle poñamos ao novo usuario.

Xestión dos usuarios e grupos con samba-tool

  • Ata o de agora, utilizamos o comando samba-tool para inicializar a estrutura do dominio, utilizando os parámetros domain provision. Pero son moitísimas as opcións que admite este comando, e ímonos centrar neste apartado nas que podemos utilizar para administrar os usuarios e grupos.

Características de samba-tool

  • Tendo en conta o gran número de parámetros que podemos utilizar con samba-tool, é moi conveniente que saibamos utilizar a axuda que o propio comando inclúe para saber cales temos que introducir en función do que queiramos facer. Introducimos o comando samba-tool -h para ver os subcomandos que admite:
root@dserver00:~# samba-tool -h
Usage: samba-tool <subcommand>

Main samba administration tool.


Options:
  -h, --help       show this help message and exit

  Version Options:
    -V, --version  Display version number


Available subcommands:
  dbcheck     - Check local AD database for errors.
  delegation  - Delegation management.
  dns         - Domain Name Service (DNS) management.
  domain      - Domain management.
  drs         - Directory Replication Services (DRS) management.
  dsacl       - DS ACLs manipulation.
  fsmo        - Flexible Single Master Operations (FSMO) roles management.
  gpo         - Group Policy Object (GPO) management.
  group       - Group management.
  ldapcmp     - Compare two ldap databases.
  ntacl       - NT ACLs manipulation.
  processes   - List processes (to aid debugging on systems without setproctitle).
  rodc        - Read-Only Domain Controller (RODC) management.
  sites       - Sites management.
  spn         - Service Principal Name (SPN) management.
  testparm    - Syntax check the configuration file.
  time        - Retrieve the time on a server.
  user        - User management.
  vampire     - Join and synchronise a remote AD domain to the local server.
For more help on a specific subcommand, please type: samba-tool <subcommand> (-h|--help)
  • Podemos comprobar o gran número de funcións que podemos facer, que van dende comprobar erros na base de datos do dominio ata a xestión do DNS.
  • Pero moitos dos subcomandos teñen á súa vez subcomandos, que nos permiten levar a cado diversas tarefas de administración. Por exemplo, podemos ver as opcións do subcomando dns con samba-tool dns -h:
root@dserver00:~# samba-tool dns -h
Usage: samba-tool dns <subcommand>

Domain Name Service (DNS) management.


Options:
  -h, --help  show this help message and exit


Available subcommands:
  add         - Add a DNS record
  delete      - Delete a DNS record
  query       - Query a name.
  roothints   - Query root hints.
  serverinfo  - Query for Server information.
  update      - Update a DNS record
  zonecreate  - Create a zone.
  zonedelete  - Delete a zone.
  zoneinfo    - Query for zone information.
  zonelist    - Query for zones.
For more help on a specific subcommand, please type: samba-tool dns <subcommand> (-h|--help)
  • E así poderíamos seguir, porque de novo atopamos subcomandos dentro de samba-tool dns. Seguro que o lector pode deducir que teríamos que introducir se quixéramos saber como usar o subcomando samba-tool dns add para engadir rexistros no DNS.

Xestión de grupos de usuarios

  • Se queremos administrar os grupos de usuarios do dominio, utilizamos o comando samba-tool group. Vemos a continuación as opcións deste comando:
Available subcommands:
  add            - Creates a new AD group.
  addmembers     - Add members to an AD group.
  delete         - Deletes an AD group.
  list           - List all groups.
  listmembers    - List all members of an AD group.
  removemembers  - Remove members from an AD group.
  • Imos crear o grupo g-alum dentro da OU grupos:
root@dserver00:~# samba-tool group add g-alum --groupou=OU=grupos
Added group g-alum
  • Podemos ver con RSAT o grupo creado (prememos a tecla F5 para actualizar a vista de RSAT se xa o tiñamos aberto):
Vista dende RSAT do grupo creado con samba-tool

Xestión de usuarios

  • A xestión dos usuarios farémola con samba-tool user:
  add          - Create a new user.
  create       - Create a new user.
  delete       - Delete a user.
  disable      - Disable an user.
  enable       - Enable an user.
  list         - List all users.
  password     - Change password for a user account (the one provided in authentication).
  setexpiry    - Set the expiration of a user account.
  setpassword  - Set or reset the password of a user account.
  • O subcomando create admite moitísimos parámetros para o novo usuario que se crea (recoméndase comprobalos con samba-tool user create -h). O seguinte comando crea o usario mon, con nome e apelidos Mon Mon, contrasinal inicial abc123. que debe cambiar no seguinte inicio de sesión, dentro da OU dam1 (que está dentro da OU alumnos e que a súa vez está dentro da OU usuarios) e con uid 10002:
root@dserver00:~# samba-tool user create mon abc123. --given-name=Mon --surname=Mon --must-change-at-next-login --userou=OU=dam1,OU=alumnos,OU=usuarios --uid-number=10002
User 'mon' created successfully
  • Podemos ver con RSAT o usuario creado:
Vista dende RSAT do usuario creado con samba-tool
  • Podemos xestionar os grupos dos que un usuario é membro con samba-tool group. Os seguinte comandos introducie a mon nos grupos g-usuarios, g-alum e g-dam1-alum:
root@dserver00:~# samba-tool group addmembers g-usuarios mon
Added members to group g-usuarios
root@dserver00:~# samba-tool group addmembers g-alum mon
Added members to group g-alum
root@dserver00:~# samba-tool group addmembers g-dam1-alum mon
Added members to group g-dam1-alum
root@dserver00:~#
  • Podemos ver o efecto con RSAT:
Vista dende RSAT dos cambios nos grupos do usuario feitos con samba-tool

Script para a creación masiva de usuarios

  • Unha vantaxe de utilizar samba-tool para a xestión dos usuarios é que podemos facer de forma bastante simple un script que cree usuarios de forma masiva a partir dun ficheiro de texto cos datos dos usuarios.
  • A continuación móstrase un exemplo de este script.
  • SCRIPT: crear_alumnos.sh
#!/bin/bash
# Script que da de alta os usuarios indicados nun ficheiro de texto

# Lemos cada liña do ficheiro que nos indiquen como parámetro
for i in `cat $1`; do
        # Extraemos os campos dos usuarios
        LOGIN=`echo $i | cut -f 1 -d :`
        NOME=`echo $i | cut -f 2 -d :`
        APELIDOS=`echo $i | cut -f 3 -d :`
        GRUPO=`echo $i | cut -f 4 -d :`
        UID=`echo $i | cut -f 5 -d :`

        # Engadimos o usuario con samba-tool e introducimolo nos grupos que lle corresponda
        echo -n "Engadindo usuario $LOGIN..."
        samba-tool user create $LOGIN abc123. --given-name=$NOME --surname=$APELIDOS --must-change-at-next-login --userou=OU=$GRUPO,OU=alumnos,OU=usuarios --uid-number=$UID
        samba-tool group addmembers g-usuarios $LOGIN
        samba-tool group addmembers g-alum $LOGIN
        samba-tool group addmembers g-$GRUPO-alum $LOGIN
        echo "[OK]"
done
  • Creamos un ficheiro de texto cos dous alumnos de dam2:
  • FICHEIRO DE USUARIOS: alumnos.txt
pia:Pia:Glez:dam2:10004
paz:Paz:Fdez:dam2:10005
  • Executamos o script pasándolle como parámetro o nome do ficheiro cos datos dos alumnos:
root@dserver00:~# sh crear_alumnos.sh alumnos.txt
Engadindo usuario pia...User 'pia' created successfully
Added members to group g-usuarios
Added members to group g-alum
Added members to group g-dam2-alum
[OK]
Engadindo usuario paz...User 'paz' created successfully
Added members to group g-usuarios
Added members to group g-alum
Added members to group g-dam2-alum
[OK]
  • Podemos ver o efecto da execución con RSAT (Recórdese premer F5 para actualizar a vista de RSAT se xa estaba aberto):
Vista dende RSAT dos usuarios creados de forma masiva con samba-tool

Xestión da política de contrasinais

  • Un aspecto importante na seguridade do dominio é a política de contrasinais, que forzará a que os contrasinais dos usuarios teñan unha complexidade determinada, unha lonxitude mínima, que a cambien de forma periódica, etc.
  • Samba4 xa ven por defecto con unha configuración que esixe unha lonxitude mínima e unha complexidade aos contrasinais, que podemos ver e modificar con samba-tool domain passwordsettings.
  • O seguinte comando mostra as restricións de contrasinais que está configuradas neste momento:
root@dserver00:~# samba-tool domain passwordsettings show
Password informations for domain 'DC=iescalquera,DC=local'

Password complexity: on
Store plaintext passwords: off
Password history length: 24
Minimum password length: 7
Minimum password age (days): 1
Maximum password age (days): 42
Account lockout duration (mins): 30
Account lockout threshold (attempts): 0
Reset account lockout after (mins): 30
  • Podemos ver que o contrasinal ten que ter unha lonxitude mínima de 7 caracteres. Vexamos o que pasa se intentamos crear o usuario tom con contrasinal a:
root@dserver00:~# samba-tool user create tom a --given-name=Tom --surname=Tom --must-change-at-next-login --userou=OU=dam1,OU=alumnos,OU=usuarios --uid-number=10003 --gid-number=10000
ERROR(ldb): Failed to add user 'tom':  - 0000052D: Constraint violation - check_password_restrictions: the password is too short. It should be equal or longer than 7 characters!
  • O exemplo que se mostra a continuación elimina a restrición de complexidade dos contrasinais, e establece a lonxitude mínima a 1 carácter:
root@dserver00:~# samba-tool domain passwordsettings set --complexity=off --min-pwd-length=1
Password complexity deactivated!
Minimum password length changed!
All changes applied successfully!
  • Podemos comprobar como agora podemos engadir o usuario tom co contrasinal a:
root@dserver00:~# samba-tool user create tom a --given-name=Tom --surname=Tom --must-change-at-next-login --userou=OU=dam1,OU=alumnos,OU=usuarios --uid-number=10003 --gid-number=10000
User 'tom' created successfully



-- Antonio de Andrés Lema e Carlos Carrión Álvarez