Strumenti Utente

Strumenti Sito


roberto.alfieri:user:reti:lab-setup

Reti di Calcolatori: Laboratorio ( lpr1314 )

Per lo svolgimento degli esercizi e' disponibile un pool di virtual machine, dislocate fisicamente nel Dipartimento di Fisica. L'accesso è consentito tramite SSH:

ssh nome.cognome@lpr-bastion.fis.unipr.it #stessa password della posta

Da lpr-bastion si accede alle macchine interne

ssh lpr-serv #stessa password della posta

Architettura del cluster

?500

lpr-bastion

e' il bastion host , ovvero una macchina con 2 interfacce ethernet: una verso la rete di Ateneo e una verso la rete privata LPR. Svolge funzione di IPforwarding, NAT e FileServer della HOME via NFS. Svolge la funzione di gestore dei nodi della rete lpr.

lprX

Sono i nodi interni alla rete.

Configurazione macchine virtuali
  • Mem: 1GB, CPUs: 2 socket e 2 core per socket, HD: 8GB.
  • Sistema operativo Scientific Linux 5 (SL5) per lpr-bastion, tutte le altre sono SL6.
  • Accesso VNC WNs (con VMCviewer) serv3.fis.unipr.it:591X - pass: lprX

Configurazione eseguita per il Setup

Su tutti i nodi

I nodi sono in area nascosta. Per accedere ai repository Web esterni e' necessario impostare l'HTTP-proxy:

echo "proxy=http://proxy.fis.unipr.it:8080/" >> /etc/yum.conf     #needed by yum 
echo "export http_proxy=http://proxy.fis.unipr.it:8080" >> /etc/profile.d/local.sh #needed by wget and rpm  

lpr-bastion

post config
yum install tftp #client
abilitare NAT
/home via NFS
mkdir /home/

/etc/exports:

 /home  192.168.0.0/24(rw,sync)
mkdir /home/studenti /home/docenti

Sui client:

echo "192.168.0.254:/home     /home   nfs   defaults,soft,rsize=8192,wsize=8192,timeo=60   0 0" >> /etc/fstab
LBE
yum install java-1.6.0-openjdk.x86_64
echo  "export JAVA_HOME=/usr" >> /etc/profile.d/java.sh
export http_proxy=http://proxy.fis.unipr.it:8080
wget http://pkgs.repoforge.org/lbe/lbe-2.8.1-2.2.el6.rf.noarch.rpm
rpm -ivh lbe-2.8.1-2.2.el6.rf.noarch.rpm 
lbe
Host: lpr-bastion.fis.unipr.it
Base DN:  dc=fis,dc=unipr,dc=it
User DN:  cn=Manager,dc=fis,dc=unipr,dc=it
Password: secret
dhcpd
tftpboot e Pxe
ig-bootselect

/usr/local/sbin/ig-bootselect Script per gestire i filedi configurazione PXE

/var/www/cgi-bin/install_ack.cgi Script GCI per ripristinare il boot da disco al termine dell'installazione

La directory che contiene i file di configurazione deve essere modificabile da httpd:

chown apache.apache /tftpboot/linux-install/pxelinux.cfg
Kickstart
Cluster management: C3

C3 (Cluster Command & Control) è un tool sviluppato da Oak Ridge National Lab per la gestione centralizzata di una Farm di nodi Linux. Il tool consente di replicare un comandi su tutti i nodi (cexec) via ssh o distribuire un file (cpush) via scp.

Installiamo il su lpr-serv che sara' la macchina centrale per le operazioni di Cluster:

rpm -ivh  http://www.csm.ornl.gov/torc/C3/Software/5.1.2/rpm/c3-5.1.2-1.noarch.rpm

/etc/c3.conf

cluster local {
         lpr-serv  #head node
         lpr-wn0[1-5]     #compute nodes
}

Comandi principali:

cexec <nome comando>
cpush <file locale> <file remoto>
cexec service sshd restart

lprX

Configurazione eseguita automaticamente da kickstart

http://172.28.34.100/ks/sl6x-proxy.ks

  • autofs
  • ssh Simple SSH tutorial La HostbasedAuthentication non funziona per l'utente root. L'utente root di serv deve controllare il cluster; per questo utilizziamo la PubkeyAuthentication da serv verso gli altri.
Aggiornamento : yum

Local Users

 groupadd -g 1000 lpr
 useradd -D -b /home/lpr  #Default home dir
 useradd alfieri -u 1001  -g 1000
 passwd alfieri
 useradd grossi  -u 1002  -g 1000
 passwd grossi
 useradd newuser  -u <UID> -g 1000
UID del Gruppo lpr-wn01  1011 1012 1013 ..
UID del Gruppo lpr-wn02  1021 1022 1023 ..
UID del Gruppo lpr-wn03  1031 1032 1033 ..
UID del Gruppo lpr-wn04  1041 1042 1043 ..

LDAP Users

  • Installazione del server:

yum install openldap-servers

Configurazione dei client con server didattica.fis.unipr.it

Configurazione in /etc/openldap/ldap.conf:

TLS_CACERTDIR /etc/openldap/cacerts
URI ldap://didattica.fis.unipr.it/
BASE ou=didattica,dc=fis,dc=unipr,dc=it

Configurazione dei servizi di autenticazione:

authconfig --enablesssd --enablesssdauth --disablenis --disablekrb5 --enableshadow --enablemkhomedir --enablelocauthorize --updateall

Editare il file /etc/sssd/sssd.conf come segue:

[sssd]
config_file_version = 2
services = nss, pam

domains = default
[nss]

[pam]

[domain/default]
auth_provider = ldap
ldap_id_use_start_tls = False
ldap_pwd_policy = none
chpass_provider = ldap
#enumerate=False
cache_credentials = False
debug_level = 6
id_provider = ldap
ldap_tls_cacertdir = /etc/openldap/cacerts
ldap_auth_disable_tls_never_use_in_production = true

# Enumeration means that the entire set of available users and groups on the remote source is cached on the local machine. 
# When enumeration is disabled, users and groups are only cached as they are requested. 
# For performance reasons, it is recommended that you disable enumeration for domains with many users and groups.
# The default value for this parameter is FALSE. Set this value to TRUE to enable enumeration of users and groups of a domain. 
enumerate = True 

ldap_user_search_base = ou=didattica,dc=fis,dc=unipr,dc=it
ldap_search_base = ou=didattica,dc=fis,dc=unipr,dc=it
ldap_uri = ldap://didattica.fis.unipr.it/
# Login to ldap with a specified user.
ldap_default_bind_dn = cn=browser,dc=fis,dc=unipr,dc=it
ldap_default_authtok_type = password
ldap_default_authtok = myldappass

service sssd restart

Abilitare UsePam in /etc/ssh/sshd_config:

UsePAM yes

Fare il reload della configurazione del demone ssh:

service sshd reload

Configurazione del servizio LDAP su lpr-bastion

Editing di /etc/openldap/slapd.conf:

suffix          "dc=lpr,dc=fis,dc=unipr,dc=it"
rootdn          "cn=Manager,dc=lpr,dc=fis,dc=unipr,dc=it"
rootpw          secret

# Policy per l'accesso ai dati: 
# tutti possono leggere tutti i dati e modificare i propri (passwd)
access to * by * read
        by self write
        by anonymous auth

Installazione del BaseDN:

service ldap stop
rm -rf /var/lib/ldap/*
service ldap start
ldapadd -x -h 127.0.0.1 -p 389 -D "cn=Manager,dc=lpr,dc=fis,dc=unipr,dc=it"  -w secret << EOF
dn: dc=lpr,dc=fis,dc=unipr,dc=it  
dc: lpr
ou: lpr
description: Corso LPR 2011-2012
objectClass: top
objectClass: dcObject
objectClass: organizationalUnit

dn: ou=Users,dc=lpr,dc=fis,dc=unipr,dc=it
ou: Users
description: utenti del Corso LPR 2011-2012
objectClass: organizationalUnit

EOF

Per verificare l'installazione:

ldapsearch -x -b 'dc=lpr,dc=fis,dc=unipr,dc=it' -s sub '(objectclass=*)'
Upload degli utenti

Da eseguire su un host linux (lpr-bastion o lpr-serv).

Per ogni utente che deve utilizzare il sistema occorre aggiungere un oggetto nel database LDAP, sotto "ou=Users". Ecco un esempio, file "person.ldif":

dn: cn=Roberto Alfieri,ou=Users,dc=lpr,dc=fis,dc=unipr,dc=it
cn: Roberto Alfieri
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
sn: Alfieri
#MAY
givenName: Roberto
mail: roberto.alfieri@fis.unipr.it
telephoneNumber:  0521906214
uid: alfieri
loginShell: /bin/bash
uidNumber: 1001
gidNumber: 1000
homeDirectory: /home/lpr/alfieri
#userPassword: miapass
userPassword: {MD5}dMKAZxGa6QWidEtbZdkzaw==
Copiare l'esempio ed editare il file con i propri dati, ricordandosi di cambiare anche l'"uidNumber"

Per calcolare la codifica base64 dell'hash md5 della userPassword:

echo -n miapass | python -c "import base64,hashlib,sys; print base64.b64encode(hashlib.md5(sys.stdin.read()).digest())"

Per aggiungere l'oggetto utente dal file "person.ldif":

ldapadd -x -D "cn=Manager,dc=lpr,dc=fis,dc=unipr,dc=it"  -w secret -h lpr-bastion -f person.ldif
Configurazione dei client (lpr-wn0X) con server lpr-bastion

Configurazione in /etc/openldap/ldap.conf:

TLS_CACERTDIR /etc/openldap/cacerts
URI ldap://lpr-bastion/
BASE dc=lpr,dc=fis,dc=unipr,dc=it

Configurazione dei servizi di autenticazione:

authconfig --enablesssd --enablesssdauth --disablenis --disablekrb5 --enableshadow --enablemkhomedir --enablelocauthorize --updateall

Editare il file /etc/sssd/sssd.conf come segue:

[sssd]
config_file_version = 2
services = nss, pam

domains = default
[nss]

[pam]

[domain/default]
auth_provider = ldap
ldap_id_use_start_tls = False
ldap_pwd_policy = none
chpass_provider = ldap
enumerate = False
cache_credentials = False
ldap_user_search_base = dc=lpr,dc=fis,dc=unipr,dc=it
ldap_search_base = dc=lpr,dc=fis,dc=unipr,dc=it
debug_level = 6
id_provider = ldap
ldap_uri = ldap://lpr-bastion/
ldap_tls_cacertdir = /etc/openldap/cacerts
ldap_auth_disable_tls_never_use_in_production = true
service sssd restart

Abilitare UsePam in /etc/ssh/sshd_config:

UsePAM yes

Fare il reload della configurazione del demone ssh:

service sshd reload

SSH passwordless

Hostbased auth

Consente agli utenti (non root) di accedere agli altri nodi utizzando lo stesso username, senza password. L'autunticazione e' abilitata a livello di Host, le cui coordinate vengono inserite nei file /etc/ssh/shosts.equiv e ssh_known_hosts

shosts.equiv

lpr-serv.fis.unipr.it
lpr-wn01.fis.unipr.it
lpr-wn02.fis.unipr.it
lpr-wn03.fis.unipr.it
lpr-wn04.fis.unipr.it
lpr-wn05.fis.unipr.it
lpr-bastion.fis.unipr.it
lpr-bastion
lpr-serv
lpr-wn01
lpr-wn02
lpr-wn03
lpr-wn04
lpr-wn05
192.168.0.2
192.168.0.101
192.168.0.102
192.168.0.103
192.168.0.104
192.168.0.105
192.168.0.254

ssh_known_hosts

lpr-bastion,lpr-bastion.fis.unipr.it,192.168.0.254   ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtyYE3qC6EyC3o+WuOigd9XmUEc0QSWhZka$
lpr-serv,lpr-serv.fis.unipr.it,192.168.0.2   ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtyYE3qC6EyC3o+WuOigd9XmUEc0QSWhZkawoPhcbTP$
lpr-wn01,lpr-wn01.fis.unipr.it,192.168.0.101 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtyYE3qC6EyC3o+WuOigd9XmUEc0QSWhZkawoPhcbTP$
lpr-wn02,lpr-wn02.fis.unipr.it,192.168.0.102 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtyYE3qC6EyC3o+WuOigd9XmUEc0QSWhZkawoPhcbTP$
lpr-wn03,lpr-wn03.fis.unipr.it,192.168.0.103 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtyYE3qC6EyC3o+WuOigd9XmUEc0QSWhZkawoPhcbTP$
lpr-wn04,lpr-wn04.fis.unipr.it,192.168.0.104 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtyYE3qC6EyC3o+WuOigd9XmUEc0QSWhZkawoPhcbTP$
lpr-wn05,lpr-wn05.fis.unipr.it,192.168.0.105 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtyYE3qC6EyC3o+WuOigd9XmUEc0QSWhZkawoPhcbTP$

SUDOERS

/etc/sudoers.d/lpr

Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, \
/usr/bin/net, /sbin/iptables, /usr/sbin/lsof, /usr/sbin/tcpdump, /sbin/ip

User_Alias LPR = roberto.alfieri, marco.grossi, roberto.covati
User_Alias ADMINS = roberto.alfieri


ADMINS ALL= NOPASSWD:  ALL
ALL    ALL= NOPASSWD:  NETWORKING
#LPR    ALL= NOPASSWD:  NETWORKING
roberto.alfieri/user/reti/lab-setup.txt · Ultima modifica: 19/09/2014 10:50 da roberto.alfieri