User Tools

Site Tools


strutture:lnf:dr:calcolo:sistemi:login_interattivo_su_scientific_linux_7

Login interattivo su Scientific Linux 7

Partendo da Scientific Linux 7 Template, installiamo i seguenti pacchetti:

# yum install pam-krb5 pam-afs-session

Modifichiamo in /etc/pam.d/ il file sshd:

# vi /etc/pam.d/sshd

#%PAM-1.0
auth       include      system-auth
account    required     pam_nologin.so
account    include      system-auth
password   include      system-auth
session    optional     pam_keyinit.so force revoke
session    include      system-auth
session    required     pam_loginuid.so

e sempre in /etc/pam.d/ il file system-auth:

# vi /etc/pam.d/system-auth

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        sufficient    pam_krb5.so try_first_pass
auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet_success
auth        required      pam_deny.so

account     sufficient    pam_krb5.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     required      pam_permit.so
account     required      pam_unix.so
account     sufficient    pam_localuser.so

password    sufficient    pam_krb5.so
password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so

session     optional      pam_krb5.so
session     optional      pam_afs_session.so
session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     optional      pam_systemd.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so

Verifichiamo che siano impostate le seguenti direttive in /etc/ssh/ssh_config:

GSSAPIAuthentication yes
GSSAPIDelegateCredentials yes

e le seguenti le direttive in /etc/ssh/sshd_config:

GSSAPIAuthentication yes
GSSAPICleanupCredentials yes

Riavviamo il servizio sshd

# systemctl restart sshd.service 
# systemctl status sshd.service

Verifichiamo che il file /etc/krb5.conf sia configurato nel seguente modo:

[libdefaults]
        default_realm = LNF.INFN.IT

[domain_realm]
        .lnf.infn.it = LNF.INFN.IT
        lnf.infn.it  = LNF.INFN.IT

[realms]
        LNF.INFN.IT = {
                kdc = kdc5s3.lnf.infn.it:88
                kdc = kdc5s2.lnf.infn.it:88
                kdc = kdc5s1.lnf.infn.it:88
                kdc = kdc5s0.lnf.infn.it:88
                kdc = kdc5p.lnf.infn.it:88
                admin_server = kdc5p.lnf.infn.it:749
                default_domain = lnf.infn.it
        }
        INFN.IT = {
                kdc = k5.infn.it:88
                kdc = afscnaf.infn.it:88
                kdc = afsrm1.roma1.infn.it:88
                kdc = afsna.na.infn.it:88
                admin_server = k5.infn.it:749
                default_domain = infn.it
        }

[appdefaults]

        aklog_homedir = true

        pam-afs-session = {
            minimum_uid = 1000
            ignore_root = true
                debug = true
        }

        pam = {
                minimum_uid = 1000
                ticket_lifetime = 259200
                renew_lifetime = 604800
                forwardable = true
                krb4_convert = false
                ccache_dir = /tmp
                tokens = true
                krb4_convert_524 = false
                krb4_use_as_req = false
                #afs_cells = lnf.infn.it=afs@LNF.INFN.IT
                afs_cells = lnf.infn.it=afs/lnf.infn.it@LNF.INFN.IT
                #existing_ticket = true
                #validate = true
                validate = false
                #keytab = FILE:/etc/krb5.keytab
                #debug = false
                debug = true
        }

Per utilizzare l'autenticazione con ticket bisogna creare in /etc/ il file krb5.keytab e decommentare in /etc/krb5.conf nella sezione [appdefaults] pam le direttive:

validate = true
keytab = FILE:/etc/krb5.keytab

Configuriamo il client LDAP per recuperare le informazioni sugli utenti che possono effettuare l'accesso.

# yum install openldap openldap-clients nss-pam-ldapd

Configuriamo i servizi con:

authconfig-tui

Impostiamo i valori come indicato nelle seguenti schermate:

┌────────────────┤ Authentication Configuration ├─────────────────┐
│                                                                 │
│  User Information        Authentication                         │
│  [*] Cache Information   [ ] Use MD5 Passwords                  │
│  [*] Use LDAP            [*] Use Shadow Passwords               │
│  [ ] Use NIS             [ ] Use LDAP Authentication            │
│  [ ] Use IPAv2           [*] Use Kerberos                       │
│  [ ] Use Winbind         [ ] Use Fingerprint reader             │
│                          [ ] Use Winbind Authentication         │
│                          [*] Local authorization is sufficient  │
│                                                                 │
│            ┌────────┐                      ┌──────┐             │
│            │ Cancel │                      │ Next │             │
│            └────────┘                      └──────┘             │
│                                                                 │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────┤ LDAP Settings ├─────────────────┐
│                                                   │
│          [ ] Use TLS                              │
│  Server: ldaps://dsa.lnf.infn.it/________________ │
│  Base DN: dc=lnf,dc=infn,dc=it___________________ │
│                                                   │
│         ┌──────┐                ┌──────┐          │
│         │ Back │                │ Next │          │
│         └──────┘                └──────┘          │
│                                                   │
│                                                   │
└───────────────────────────────────────────────────┘
┌─────────────────┤ Kerberos Settings ├──────────────────┐
│                                                        │
│        Realm: LNF.INFN.IT_____________________________ │
│          KDC: ________________________________________ │
│ Admin Server: ________________________________________ │
│               [*] Use DNS to resolve hosts to realms   │
│               [*] Use DNS to locate KDCs for realms    │
│                                                        │
│          ┌──────┐                    ┌────┐            │
│          │ Back │                    │ Ok │            │
│          └──────┘                    └────┘            │
│                                                        │
│                                                        │
└────────────────────────────────────────────────────────┘
┌────────────────┤ Warning ├─────────────────┐
│                                            │
│ To connect to a LDAP server with TLS       │
│ protocol enabled you need a CA certificate │
│ which signed your server's certificate.    │
│ Copy the certificate in the PEM format to  │
│ the '/etc/openldap/cacerts' directory.     │
│ Then press OK.                             │
│                                            │
│                  ┌────┐                    │
│                  │ Ok │                    │
│                  └────┘                    │
│                                            │
│                                            │
└────────────────────────────────────────────┘

Importiamo in ‘’/etc/openldap/cacerts/’’ i certificati delle CA

# curl http://www.lnf.infn.it/~dmaselli/cacerts.tgz | tar -C /etc/openldap/cacerts/ -xzvf -
# cacertdir_rehash /etc/openldap/cacerts/

Configuriamo nslcd (vi /etc/nslcd.conf) in modo che ci siano le seguenti direttive:

uri ldaps://dsa.lnf.infn.it
base dc=lnf,dc=infn,dc=it
binddn cn=daemon,dc=lnf,dc=infn,dc=it
bindpw butD9PeHtozZjM2Dl8SXF4FBNcTzjydhvJNBPN4qXZoxXwSTQ5uCR9YwYFYJTQAk
ssl no
tls_cacertdir /etc/openldap/cacert

Riavviamo il servizio nslcd

# systemctl restart nslcd.service
# systemctl status nslcd.service

Configuriamo /etc/nsswitch.conf per consentire la ricerca degli utenti su LDAP oltre che in locale:

passwd:	files ldap
shadow:	files ldap
group:		files ldap

hosts:		files dns

bootparams:	nisplus [NOTFOUND=return] files

ethers:		files
netmasks:	files
networks:	files
protocols:	files
rpc:		files
services:	files

netgroup:	files ldap

publickey:	nisplus

automount:	files ldap
aliases:	files nisplus

sudoers:	file ldap

Recuperiamo informazioni su un utente con il comando id per verificare che tutto sia stato configurato in modo corretto:

id <username>

Verifichiamo che il servizio afs sia attivo, nel caso contrario provvediamo ad avviarlo e abilitarlo al boot:

# systemctl status afs.service
# systemctl start afs.service
# systemctl enable afs.service

Installiamo la TENEX C Shell:

# yum install tcsh

Modifichiamo il file /etc/lnf.login aggiungendo il seguente contenuto:

setenv ORIPATH $PATH

#########################################################################
#
# Generic lnf system login.
#

   if ( -x /afs/lnf.infn.it/system/userenv/common/lnf.csh.login ) then
      source /afs/lnf.infn.it/system/userenv/common/lnf.csh.login
   endif

#
#########################################################################

setenv PATH "${ORIPATH}:${PATH}"

e creiamo il file /etc/csh.logout inserendo:

# /etc/csh.logout: system-wide .logout file for csh(1) and tcsh(1)

#########################################################################
#
# Log logout
#
        if ( -x /afs/lnf.infn.it/system/userenv/common/lnf.csh.logout ) then
                source /afs/lnf.infn.it/system/userenv/common/lnf.csh.logout
        endif

        kdestroy

#
# eof
#

Infine creiamo i seguenti link simbolici:

ln -s /afs/lnf.infn.it/system/lnflocal/@sys /usr/lnf
ln -s /usr /usr/afsws
strutture/lnf/dr/calcolo/sistemi/login_interattivo_su_scientific_linux_7.txt · Last modified: 2020/03/26 18:18 by soprano@infn.it

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki