Debian GNU/Linux per a les aules de l'ETSEIB

Autor:Antoni Soto i Riera
Data:20 de setembre de 2006
Llicència:Aquest document es distribueix sota la llicència Reconeixement-Compartirigual de Creative Commons.
Codi font:El fitxer DebianETSEIB.txt conté el codi font d'aquest document en sintaxi reStructuredText.
Resum:Aquest document descriu la configuració experimental d'un ordinador per tal que funcioni a les aules informàtiques de l'ETSEIB.

Índex

Objectius

  1. Aconseguir una instal·lació estable, minimalista i lleugera de Debian GNU/Linux per a ser utilitzada en la docència de l'assignatura Informàtica en les aules de l'ETSEIB.
  2. Aconseguir que el usuaris vegin un entorn GNU/Linux normal malgrat que l'autenticació es fa contra un PDC i l'espai de disc d'usuari és un recurs exportat pel mateix PDC.

Per tal d'assolir aquest objectius s'han pres les decisions següents:

  1. Instal·lar la versió estable actual de Debian GNU/Linux: 3.1 (sarge).
  2. Instal·lar exclusivament programari necessari per a l'assignatura d'Informàtica: editor, compilador, make, TeX, navegador, visualitzadors de pdf i ps, full de càlcul, ...
  3. Instal·lar només un gestor de finestres [1] i no instal·lar cap escriptori.
  4. Usar winbind per a l'obtenció de UID/GID a partir de SID i per a l'autenticació contra el PDC.
  5. Usar pam_mount per al muntatge del l'espai de disc de l'usuari en el moment d'entrar [2] al sistema.

Instal·lació de Debian GNU/Linux

Instal·lació per xarxa

La instal·lació de Debian GNU/Linux s'ha fet mitjançant la xarxa. Només han estat necessaris tres disquets: boot, root i net-drivers. Veieu la Guia d'instal·lació de Debian GNU/Linux.

La instal·lació per xarxa, un cop configurada la targeta de xarxa, intenta obtenir l'adreça IP de la màquina mitjançant DHCP. En el tram de xarxa on s'ha fet l'experiment no hi havia cap servidor de DHCP i va caldre configurar la xarxa amb una adreça IP fixa. Un cop fet això, el procés d'instal·lació continuà sense problemes. Cal destacar que les aules de l'ETSEIB disposen d'un servidor de DHCP i que, per tant, no caldrà assignar-los-hi una adreça IP fixa.

Llista de paquets instal·lats

La llista de paquets instal·lats en la màquina experimental s'obté executant la comanda següent:

dpkg --get-selections > dpkg_get-selections.txt

Podeu consultar la llista mirant el fitxer dpkg_get-selections.txt.

Per tal d'aconseguir que una altra màquina instal·li aquests paquets caldrà executar:

dkpg --set-selections < dpkg_get-selections.txt

Configuració de la xarxa per DHCP

Un cop acabat el procés d'instal·lació s'ha configurat un servidor de DHCP per tal d'experimentar l'assignació dinàmica d'una adreça IP. La configuració actual de /etc/network/interfaces és la següent:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

Amb aquesta configuració la màquina obté correctament l'adreça IP del servidor de DHCP.

Configuració de winbind

Essencialment s'ha seguit la documentació sobre winbind que podem trobar al projecte samba:

  1. Configurar el servei de resolució de noms [3] de manera que usi també winbind. Així, el fitxer /etc/nsswitch.conf queda com següeix:

    # /etc/nsswitch.conf
    #
    # Example configuration of GNU Name Service Switch functionality.
    # If you have the `glibc-doc' and `info' packages installed, try:
    # `info libc "Name Service Switch"' for information about this file.
    
    passwd:         compat winbind
    group:          compat winbind
    shadow:         compat
    
    hosts:          files dns
    networks:       files
    
    protocols:      db files
    services:       db files
    ethers:         db files
    rpc:            db files
    
    netgroup:       nis
    
  2. Configurar /etc/samba/smb.conf amb els paràmetres necessaris per winbind:

    [global]
        # general options
        workgroup = EST-ETSEIB
    
        # use uids from 10000 to 20000 for domain users
        idmap uid = 10000-20000
        # use gids from 10000 to 20000 for domain groups
        idmap gid = 10000-20000
        # allow enumeration of winbind users and groups
        winbind enum users = yes
        winbind enum groups = yes
        # give winbind users a real shell (only needed if they have telnet access)
        template homedir = /home/%U
        template shell = /bin/bash
        winbind use default domain = yes
    
  3. Donar d'alta la màquina com a membre del domini que serveix el PDC. Com que el PDC de l'ETSEIB usa ADS cal seguir les instruccions sobre com esdevenir membre d'un domini gestionat per un PDC amb ADS.

    1. Caldrà afegir al fitxer de configuració de samba /etc/samba/smb.conf informació sobre Kerberos de manera que el fitxer quedarà com segueix:

      [global]
          # general options
          workgroup = EST-ETSEIB
      
          # use uids from 10000 to 20000 for domain users
          idmap uid = 10000-20000
          # use gids from 10000 to 20000 for domain groups
          idmap gid = 10000-20000
          # allow enumeration of winbind users and groups
          winbind enum users = yes
          winbind enum groups = yes
          # give winbind users a real shell (only needed if they have telnet access)
          template homedir = /home/%U
          template shell = /bin/bash
          winbind use default domain = yes
      
          # Active directory joining
          # "ads server" is only necessary if your kdc
          # can't be located using /etc/krb5.conf -- JamesSpooner
          #
          # Note that more recent Samba versions have renamed "ads server"
          # to "password server", so if /var/log/messages reports
          # 'Unknown parameter encountered: "ads server"' on restart,
          # change 'ads' to 'password' -- ChetHosey
          #
          # ads server = test1.thinclient.test.org
          security = ads
          # encrypt passwords = yes is now default in Samba3 -- Enigma
          encrypt passwords = yes
          realm = EST-ETSEIB.LOCAL
          # this handles the "ads server = " directive as well -- Enigma
          password server = yang.upc.es
      
    2. També cal modificar el fitxer de configuració de Kerberos, /etc/krb5.conf, que quedarà com segueix:

      [libdefaults]
              default_realm = EST-ETSEIB.LOCAL
      
      [realms]
              EST-ETSEIB.LOCAL = {
              kdc = yang.upc.es
              }
      
      [domain_realms]
              .kerberos.server = EST-ETSEIB.LOCAL
      
    3. Finalment, per tal de donar d'alta la màquina al domini cal executar les comandes següents:

      kinit administrador@EST-ETSEIB.LOCAL
      net ads join -U administrador
      

      on administrador s'ha de substituir per un compte en el PDC que tingui permisos per donar d'alta màquines al domini.

  4. Cal re-iniciar el dimoni [4] de winbind fent

    /etc/init.d/winbind restart
    

    A partir d'aquest moment podem consultar informació sobre els usuaris i els grups del domini que serveix el PDC amb les comandes wbinfo i getent.

  5. Configurar PAM modificant els fitxers del directori /etc/pam.d de manera que el seu contingut sigui:

    1. /etc/pam.d/common-account:

      #
      # /etc/pam.d/common-account - authorization settings common to all services
      #
      # This file is included from other service-specific PAM config files,
      # and should contain a list of the authorization modules that define
      # the central access policy for use on the system.  The default is to
      # only deny service to users whose accounts are expired in /etc/shadow.
      #
      account sufficient      pam_winbind.so
      account required        pam_unix.so
      
    2. /etc/pam.d/common-auth:

      #
      # /etc/pam.d/common-auth - authentication settings common to all services
      #
      # This file is included from other service-specific PAM config files,
      # and should contain a list of the authentication modules that define
      # the central authentication scheme for use on the system
      # (e.g., /etc/shadow, LDAP, Kerberos, etc.).  The default is to use the
      # traditional Unix authentication mechanisms.
      #
      auth    required        pam_mount.so
      auth    sufficient      pam_winbind.so use_first_pass
      auth    required        pam_unix.so nullok_secure use_first_pass
      
    3. /etc/pam.d/common-session:

      #
      # /etc/pam.d/common-session - session-related modules common to all services
      #
      # This file is included from other service-specific PAM config files,
      # and should contain a list of modules that define tasks to be performed
      # at the start and end of sessions of *any* kind (both interactive and
      # non-interactive).  The default is pam_unix.
      #
      session required        pam_unix.so
      session optional        pam_mount.so use_first_pass
      

    Aquesta configuració inclou també la de pam_mount que afecta al directori /etc/pam.d. Veieu la secció Configuració de pam_mount.

Configuració de pam_mount

A més de la configuració dels fitxers del directori /etc/pam.d/ descrita al punt 5 de la secció Configuració de winbind, cal modificar els fitxers següents com s'indica al document /usr/share/doc/libpam-mount/README.Debian.gz:

  1. En el fitxer /etc/login.defs cal substituir la línia 298

    CLOSE_SESSIONS no
    

    per la següent:

    CLOSE_SESSIONS yes
    
  2. En el fitxer /etc/security/pam_mount.conf cal substituir la línia 197

    # volume * smb viper & /home/& uid=&,gid=&,dmask=0750,workgroup=WINDOWS_DOMAIN - -
    

    per la següent:

    volume * smb yang.upc.es &$ /home/& uid=&,gid=&,dmask=0750,workgroup=EST-ETSEIB - -
    

Conclusions

Configurant un sistema operatiu Debian GNU/Linux, versió 3.1 (sarge), com s'indica en aquest document hem aconseguit que qualsevol usuari d'un domini servit per un PDC pugui entrar en el sistema [2] com si es tractés d'un usuari nadiu UNIX. Això implica que l'autenticació de l'usuari es fa contra el PDC i un cop autenticat es munta en el directori home de l'usuari el recurs corresponent exportat pel PDC. En sortir del sistema [5] el recurs es desmunta automàticament.

Val a dir que s'ha procurat minimitzar els canvis respecte a la configuració per defecte de Debian. Això facilitarà les actualitzacions posteriors del sistema.

Una altra característica interessant d'aquesta configuració és la seva genericitat, en el sentit que no hi cap paràmetre específic de la màquina concreta en la qual s'ha fet la instal·lació experimental. Això té com a conseqüència que la imatge de la instal·lació provisional hauria de ser igualment vàlida per a qualsevol altra màquina.

Treball Futur

[1]Window manager.
[2](1, 2) Login.
[3]Name Service Switch.
[4]Daemon.
[5]Logout.