Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
sesiuni:sysadmin:centralizare [2014/06/17 16:09]
bpurcareata
sesiuni:sysadmin:centralizare [2014/07/09 18:47] (current)
razvan [Allow interconnection and interoperability]
Line 17: Line 17:
 * Centralize, backup and secure. * Centralize, backup and secure.
 ** Computer clusters ** Computer clusters
-** iSCSI, FiberChannel+** iSCSI (Internet Small Computer System Interface), FiberChannel
 * Allow interconnection and interoperability. * Allow interconnection and interoperability.
-** LDAP +** LDAP (Lightweight Directory Access Protocol) 
-** RADIUS+** RADIUS ​(Remote Authentication Dial-In User Service)
 * Use versioning. * Use versioning.
-** Gitolite+** Gitolite ​- authorization layer on top of Git
 * Allow access from anywhere on any device. * Allow access from anywhere on any device.
 ** Dropbox - vedeți exercițiul 7 din [[:​sesiuni:​sysadmin:​eficienta#​demo-uri|demo-urile sesiunii de Eficiență]]. ** Dropbox - vedeți exercițiul 7 din [[:​sesiuni:​sysadmin:​eficienta#​demo-uri|demo-urile sesiunii de Eficiență]].
-** Web, DAV, e-mail, LDAP+** Web, DAV (Distributed Authoring and Versioning), e-mail, LDAP
  
 == Demo == == Demo ==
  
-* **Înainte de toate**: Copiați perechea de chei SSH din contul vostru de pe {{{swarm.cs.pub.ro}}} local:<​code bash> 
-scp <​username-de-pe-swarm>​@swarm.cs.pub.ro:​.ssh/​id_rsa* ~/.ssh/ 
-</​code>​ unde {{{<​username-de-pe-swarm>​}}} este utilizatorul vostru de pe {{{swarm.cs.pub.ro}}}. 
  
 === Prefer text over binary === === Prefer text over binary ===
Line 41: Line 38:
 * **Pe swarm** * **Pe swarm**
 *# Creați directorul {{{~/​git-repos/​}}} și, dacă nu există, directorul {{{~/​public_html/​}}}. *# Creați directorul {{{~/​git-repos/​}}} și, dacă nu există, directorul {{{~/​public_html/​}}}.
-*# Intrați în directorul {{{~/​git-repos/​}}} și creați repository-ul {{{workshop-blog.git}}}. Folosiți comanda:<​code bash>+*# Accesați directorul {{{~/​git-repos/​}}} și creați, în cadrul acestui director, ​repository-ul {{{workshop-blog.git}}}. Folosiți comanda:<​code bash>
 git init --bare workshop-blog.git git init --bare workshop-blog.git
 </​code>​ </​code>​
-*# Intrați în directorul {{{~/​public_html/​}}} și creați ​directorul ​{{{workshop-blog/​}}}.+*# Accesați directorul {{{~/​public_html/​}}} și creați, în cadrul acestui director, subdirectorul ​{{{workshop-blog/​}}}:<code bash> 
 +mkdir public_html 
 +cd public_html 
 +mkdir workshop-blog 
 +</​code>​
 *#* Aici va fi publicat conținutul blog-ului. *#* Aici va fi publicat conținutul blog-ului.
 *#* Accesați, din browser, URL-ul {{{http://​swarm.cs.pub.ro/​~<​username-de-pe-swarm>/​workshop-blog/​}}},​ unde {{{<​username-de-pe-swarm>​}}} este numele vostru de utilizator de pe swarm. *#* Accesați, din browser, URL-ul {{{http://​swarm.cs.pub.ro/​~<​username-de-pe-swarm>/​workshop-blog/​}}},​ unde {{{<​username-de-pe-swarm>​}}} este numele vostru de utilizator de pe swarm.
Line 151: Line 152:
 === Allow interconnection and interoperability === === Allow interconnection and interoperability ===
  
-E-mail (demo Răzvan)+Obiective 
 +** Dorim să exemplificăm folosirea ''​ldapsearch''​ pentru interogarea de informații LDAP. 
 +** Dorim să activăm autentificarea prin LDAP pentru pagina de wiki configurată în [[:​sesiuni:​sysadmin:​automatizare#​demo|sesiunea de eficiență]]. 
 +** Urmărim să configurăm **containerul LXC** să realizeze autentificarea prin LDAP. 
 +*** Pentru aceasta trebuie configurat sistemul de login (prin intermediul [[http://​en.wikipedia.org/​wiki/​Pluggable_authentication_module|PAM]]să folosească LDAP. 
 * LDAP * LDAP
 ** Folosiți, pe **swarm**, comenzi de interogare LDAP:<​code>​ ** Folosiți, pe **swarm**, comenzi de interogare LDAP:<​code>​
Line 161: Line 167:
 </​code>​ </​code>​
 ** Pe instanța DokuWiki configurată în [[:​sesiuni:​sysadmin:​automatizare#​demo|sesiunea de eficiență]],​ configurați acces LDAP. ** Pe instanța DokuWiki configurată în [[:​sesiuni:​sysadmin:​automatizare#​demo|sesiunea de eficiență]],​ configurați acces LDAP.
-**Adăugați, în {{{~/​public_html/​dokuwiki/​conf/​local.php}}},​ conținutul de mai jos:<​code php>+**Adăugați, în {{{~/​public_html/​dokuwiki/​conf/​local.php}}},​ conținutul de mai jos:<​code php>
 $conf['​authtype'​] = '​ldap';​ $conf['​authtype'​] = '​ldap';​
 $conf['​auth'​]['​ldap'​]['​port'​] = '​636';​ $conf['​auth'​]['​ldap'​]['​port'​] = '​636';​
Line 171: Line 177:
 $conf['​auth'​]['​ldap'​]['​version'​] = '​3';​ $conf['​auth'​]['​ldap'​]['​version'​] = '​3';​
 </​code>​ </​code>​
 +**# Verificați ca vă puteți autentifica pe dokuwiki folosind username-ul și parola de pe swarm.
 ** Autentificare Unix prin LDAP. ** Autentificare Unix prin LDAP.
-*** În continuare veți configura **containerul LXC** să realizeze autentificarea prin LDAP. +*** Toate comenzile următoare trebuie rulate în **containerul LXC**. Pentru conectare puteți folosi comanda de mai jos:<code bash>
-**** Toate comenzile următoare trebuie rulate în **containerul LXC**  +
-*** Folosiți container-ul LXC dedicat; conectați-vă ca {{{root}}}:<code bash>+
 ssh -l root -p 4<​id-container>​22 houdini.grid.pub.ro ssh -l root -p 4<​id-container>​22 houdini.grid.pub.ro
 </​code>​ </​code>​
-*** Trebuie configurat sistemul de login (prin intermediul [[http://​en.wikipedia.org/​wiki/​Pluggable_authentication_module|PAM]]) să folosească LDAP. +**Instalați bibliotecile LDAP și aplicațiile de tip client:<​code bash>
-** Instalați bibliotecile LDAP și aplicațiile de tip client:<​code bash>+
 apt-get install ldap-utils apt-get install ldap-utils
 </​code>​ </​code>​
-** Configurați în containerul LXC serverul de LDAP de pe swarm ca server implicit folosit de clienții LDAP. Editați fișierul {{{/​etc/​ldap/​ldap.conf}}} pentru a avea următorul conținut (nu uitați de {{{:set paste}}} în Vim):<​code bash>+**Configurați în containerul LXC serverul de LDAP de pe swarm ca server implicit folosit de clienții LDAP. Editați fișierul {{{/​etc/​ldap/​ldap.conf}}} pentru a avea următorul conținut (nu uitați de {{{:set paste}}} în Vim):<​code bash>
 # LDAP Defaults # LDAP Defaults
 # #
Line 196: Line 200:
 TLS_REQCERT never TLS_REQCERT never
 </​code>​ </​code>​
-** Verificați funcționarea conexiunii la serverul LDAP, folosind comanda {{{ldapsearch}}}:<​code bash post-receive>​+**#* Verificați funcționarea conexiunii la serverul LDAP, folosind comanda {{{ldapsearch}}}:<​code bash post-receive>​
 ldapsearch -x -LLL uid=<​username-de-pe-swarm>​ ldapsearch -x -LLL uid=<​username-de-pe-swarm>​
 </​code>​ </​code>​
-** {{{<​username-de-pe-swarm>​}}} este numele vostru de utilizator de pe {{{swarm.cs.pub.ro}}}. +**#* {{{<​username-de-pe-swarm>​}}} este numele vostru de utilizator de pe {{{swarm.cs.pub.ro}}}. 
-** Pentru configurarea NSS (//Name Service Switch//), trebuie instalat și configurat pachetul {{{libnss-ldap}}}. Instalați pachetul {{{libnss-ldap}}} și opțiunile:<​code bash post-receive>+**Pentru configurarea NSS (//Name Service Switch//), trebuie instalat și configurat pachetul {{{libnss-ldap}}}. Instalați pachetul {{{libnss-ldap}}} și opțiunile:<​code bash>
 apt-get install libnss-ldap apt-get install libnss-ldap
  
Line 206: Line 210:
 Distinguished name of the search base: dc=swarm,​dc=cs,​dc=pub,​dc=ro Distinguished name of the search base: dc=swarm,​dc=cs,​dc=pub,​dc=ro
 LDAP version to use: 3 LDAP version to use: 3
 +Does the LDAP database require login?: No
 +Special LDAP privileges for root?: Yes
 +Make the configuration file readable/​writable by its owner only?: No
 LDAP account for root: cn=admin,​dc=swarm,​dc=cs,​dc=pub,​dc=ro LDAP account for root: cn=admin,​dc=swarm,​dc=cs,​dc=pub,​dc=ro
 LDAP account password: TODO LDAP account password: TODO
Line 211: Line 218:
 LDAP administrative password: TODO LDAP administrative password: TODO
 </​code>​ </​code>​
-*** Vă spune Răzvan ​răspunsul la {{{TODO}}}. +**#* Vă spune Bogdan ​răspunsul la {{{TODO}}}. 
-** Verificați ​configurarea ​corespunzătoare, ​prin rularea comenzii<​code bash post-receive>+**Verificați ​că ați configurat ​corespunzător prin rularea comenzii<​code bash>
 cat /​etc/​libnss-ldap.conf ​ | grep -v '​^#'​ | grep -v '​^$'​ cat /​etc/​libnss-ldap.conf ​ | grep -v '​^#'​ | grep -v '​^$'​
 </​code>​ și obținerea rezultatului<​code>​ </​code>​ și obținerea rezultatului<​code>​
Line 220: Line 227:
 rootbinddn cn=admin,​dc=swarm,​dc=cs,​dc=pub,​dc=ro rootbinddn cn=admin,​dc=swarm,​dc=cs,​dc=pub,​dc=ro
 </​code>​ </​code>​
-** Configurați în {{{/​etc/​nsswitch.conf}}} intrările {{{passwd}}},​ {{{group}}} și {{{shadow}}}:<​code bash post-receive>+**Configurați în {{{/​etc/​nsswitch.conf}}} intrările {{{passwd}}},​ {{{group}}} și {{{shadow}}}:<​code bash>
 passwd: ​        ​compat ldap passwd: ​        ​compat ldap
 group: ​         compat ldap group: ​         compat ldap
 shadow: ​        ​compat ldap shadow: ​        ​compat ldap
 </​code>​ </​code>​
-**Reporniți daemonul {{{nscd}}}:<​code bash post-receive>+**Reporniți daemonul {{{nscd}}}:<​code bash>
 /​etc/​init.d/​nscd restart /​etc/​init.d/​nscd restart
 </​code>​ </​code>​
-** Verificați configurarea prin rularea comenzilor:<​code bash post-receive>+**#* Verificați configurarea prin rularea comenzilor:<​code bash>
 getent passwd <​username-de-pe-swarm>​ getent passwd <​username-de-pe-swarm>​
 id <​username-de-pe-swarm>​ id <​username-de-pe-swarm>​
 apt-get install finger apt-get install finger
 finger <​username-de-pe-swarm>​ finger <​username-de-pe-swarm>​
-</​code>​ unde {{{<​username-de-pe-swarm>​}}} este numele vostru de utilizator de pe {{{swarm.cs.pub.ro}}}. +</​code>​ unde {{{<​username-de-pe-swarm>​}}} este numele vostru de utilizator de pe {{{swarm.cs.pub.ro}}}. Toate aceste comenzi ar trebui sa întoarcă informații despre user-ul vostru de pe swarm
-** Pentru autentificarea utilizatorilor prin LDAP trebuie configurat corespunzător {{{PAM}}}. L-ați configurat (în cadrul pachetului {{{libpam-ldap}}} la instalarea pachetului {{{libnss-ldap}}}. Verificați configurarea sa prin rularea comenzii<​code bash post-receive>+**Pentru autentificarea utilizatorilor prin LDAP trebuie configurat corespunzător {{{PAM}}}. L-ați configurat (în cadrul pachetului {{{libpam-ldap}}} la instalarea pachetului {{{libnss-ldap}}}. Verificați configurarea sa prin rularea comenzii<​code bash>
 cat /​etc/​pam_ldap.conf ​ | grep -v '​^#'​ | grep -v '​^$'​ cat /​etc/​pam_ldap.conf ​ | grep -v '​^#'​ | grep -v '​^$'​
 </​code>​ care trebuie să dea rezultatul<​code>​ </​code>​ care trebuie să dea rezultatul<​code>​
Line 243: Line 250:
 pam_password crypt pam_password crypt
 </​code>​ </​code>​
-** Verificați configurarea corespunzătoare a fișierelor {{{/​etc/​pam.d/​common-account}}} ({{{account-required}}}) și {{{/​etc/​pam.d/​common-auth}}} ({{{auth required}}}) (e vorba de prezența {{{pam_ldap.so}}}:<​code bash post-receive>+**Verificați configurarea corespunzătoare a fișierelor {{{/​etc/​pam.d/​common-account}}} ({{{account required}}}) și {{{/​etc/​pam.d/​common-auth}}} ({{{auth required}}}) (e vorba de prezența {{{pam_ldap.so}}}):<code bash>
 root@rsw-sysadmin-00:​~#​ cat /​etc/​pam.d/​common-account | grep -v '​^#'​ | grep -v '​^$'​ root@rsw-sysadmin-00:​~#​ cat /​etc/​pam.d/​common-account | grep -v '​^#'​ | grep -v '​^$'​
 account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so ​ account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so ​
Line 256: Line 263:
 auth required pam_permit.so auth required pam_permit.so
 </​code>​ </​code>​
-*** Schimbați utilizatorul în utilizatorul de pe swarm:<​code>​ +**Ca **root** activați modulul PAM {{{mkhomedir}}} pentru crearea home-ului utilizatorului la autentificare. Adăugați ca root, la finele fișierului {{{/​etc/​pam.d/​common-session}}},​ linia:<​code>​
-su - <​username-de-pe-swarm>​ +
-</​code>​ +
-** Ca **root** activați modulul PAM {{{mkhomedir}}} pentru crearea home-ului utilizatorului la autentificare. Adăugați ca root, la finele fișierului {{{/​etc/​pam.d/​common-session}}},​ linia:<​code>​+
 session required ​       pam_mkhomedir.so skel=/​etc/​skel/​ umask=0022 session required ​       pam_mkhomedir.so skel=/​etc/​skel/​ umask=0022
 </​code>​ </​code>​
-**Schimbați utilizatorul în utilizatorul de pe {{{swarm.cs.pub.ro}}}:<​code>​+**Schimbați utilizatorul în utilizatorul de pe {{{swarm.cs.pub.ro}}}:<​code>​
 su - <​username-de-pe-swarm>​ su - <​username-de-pe-swarm>​
 </​code>​ Observați crearea directorului home pentru utilizator. </​code>​ Observați crearea directorului home pentru utilizator.
 **# Adăugați cheia publică SSH de pe sistemul din laborator în contul utilizatorului nou creat. **# Adăugați cheia publică SSH de pe sistemul din laborator în contul utilizatorului nou creat.
 **#* Copiați cheia publică în fișierul {{{.ssh/​authorized_keys}}} din home-ul utilizatorului. **#* Copiați cheia publică în fișierul {{{.ssh/​authorized_keys}}} din home-ul utilizatorului.
-**Verificați conectarea prin SSH:<​code>​+** Verificați conectarea prin SSH de pe sistemul din laborator:<​code>​
 ssh -l <​username-de-pe-swarm>​ -p 4<​id-container>​22 houdini.cs.pub.ro ssh -l <​username-de-pe-swarm>​ -p 4<​id-container>​22 houdini.cs.pub.ro
 </​code>​ </​code>​
sesiuni/sysadmin/centralizare.1403010556.txt.gz · Last modified: 2014/06/17 16:09 by bpurcareata