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
Last revision Both sides next revision
sesiuni:sysadmin:centralizare [2014/06/17 15:26]
bpurcareata [Prefer text over binary]
sesiuni:sysadmin:centralizare [2014/07/09 18:01]
razvan [Prefer text over binary]
Line 9: Line 9:
 </​html>​ </​html>​
  
-== Idei ==+== Idei și discuții==
  
 * Less is more. * Less is more.
 * Prefer text over binary. * Prefer text over binary.
 +** Wiki, repository
 +** File-based wikis
 * Centralize, backup and secure. * Centralize, backup and secure.
 +** Computer clusters
 +** iSCSI (Internet Small Computer System Interface), FiberChannel
 * Allow interconnection and interoperability. * Allow interconnection and interoperability.
 +** LDAP (Lightweight Directory Access Protocol)
 +** RADIUS (Remote Authentication Dial-In User Service)
 * Use versioning. * Use versioning.
 +** 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ță]].
 +** 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 29: Line 35:
 ** Configurarea un blog/site bazat pe [[https://​github.com/​mojombo/​jekyll/​|jekyll]] pe swarm. ** Configurarea un blog/site bazat pe [[https://​github.com/​mojombo/​jekyll/​|jekyll]] pe swarm.
 ** Publicarea conținutului unui repository printr-un [[http://​git-scm.com/​book/​en/​Customizing-Git-Git-Hooks|hook Git]]. ** Publicarea conținutului unui repository printr-un [[http://​git-scm.com/​book/​en/​Customizing-Git-Git-Hooks|hook Git]].
- 
-* Discuții: 
-** Wiki, repository 
-** File-based wikis 
  
 * **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 107: Line 113:
  
 === Centralize, backup and secure === === Centralize, backup and secure ===
- 
-* Discuții 
-** Computer clusters 
-** iSCSI, FiberChannel 
  
 * Obiective * Obiective
Line 150: 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>​
-ldapsearch -LLL -x +ldapsearch -LLL -x # toate informațiile disponibile 
-ldapsearch -LLL -x uid +ldapsearch -LLL -x uid # UID-urile utilizatorilor 
-ldapsearch -LLL -x uid=razvan +ldapsearch -LLL -x uid=razvan # informații despre utilizatorul cu UID-ul ​razvan 
-ldapsearch -LLL -x sn=M* +ldapsearch -LLL -x sn=M* # informații despre utilizatori ai căror nume începe cu litera M 
-ldapsearch -LLL -x '​(&​(givenName=*a)(sn=M*))'​+ldapsearch -LLL -x '​(&​(givenName=*a)(sn=M*))' ​# idem + ai căror prenume se termina cu litera a
 </​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 dokuwiki-ldap.conf>+**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 170: 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**  
-**** Toate comenzile următoare trebuie rulate în **containerul LXC**  +**Folosiți container-ul LXC dedicat; conectați-vă ca {{{root}}}:<​code bash>
-**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 195: Line 201:
 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 205: Line 211:
 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 210: Line 219:
 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 219: Line 228:
 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 242: Line 251:
 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 255: Line 264:
 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>​
-* RADIUS (discuție) 
- 
-=== Use versioning === 
-* Gitolite (discuție) 
- 
-=== Allow access from anywhere on any device === 
-* Dropbox 
-** Vedeți exercițiul 7 din [[:​sesiuni:​sysadmin:​eficienta#​demo-uri|demo-urile sesiunii de Eficiență]]. 
-* web, DAV, e-mail, LDAP (discuție) 
sesiuni/sysadmin/centralizare.txt · Last modified: 2014/07/09 18:47 by razvan