Diferència entre revisions de la pàgina «Samba»
Línia 222: | Línia 222: | ||
Per afegir una màquina Linux a un domini Samba hi ha diverses opcions: | Per afegir una màquina Linux a un domini Samba hi ha diverses opcions: | ||
* [http://askubuntu.com/questions/452904/likewise-open-14-04-other-easy-way-to-connect-ad Tutorial hàbil amb PowerBroker (pbis)]. En teoria aquest soft/script hauria de facilitar afegir la màquina al domini, però al final s'han de fer tants parches que no sé si val la pena. | * [http://askubuntu.com/questions/452904/likewise-open-14-04-other-easy-way-to-connect-ad Tutorial hàbil amb PowerBroker (pbis)]. En teoria aquest soft/script hauria de facilitar afegir la màquina al domini, però al final s'han de fer tants parches que no sé si val la pena. | ||
− | * [http://ubuntuforums.org/showthread.php?t=2213342 Tutorial en Ubuntu forums]. Utilitzant Winbind, podem introduir la màquina al domini. | + | * [http://ubuntuforums.org/showthread.php?t=2213342 Tutorial en Ubuntu forums]. Utilitzant Winbind, podem introduir la màquina al domini. |
− | |||
− | |||
** De vegades pot ser que falli la màquina client al reiniciar-la donant l'error '''No logon server''' (encara que sí funcionés al principi). Si és el cas, tingueu en compte: | ** De vegades pot ser que falli la màquina client al reiniciar-la donant l'error '''No logon server''' (encara que sí funcionés al principi). Si és el cas, tingueu en compte: | ||
*** Afegir al smb.conf del client: <pre>wins server = <ip_del_server></pre> | *** Afegir al smb.conf del client: <pre>wins server = <ip_del_server></pre> | ||
Línia 230: | Línia 228: | ||
En el fons, el què realitzem al afegir una màquina Linux a un domini Samba és: | En el fons, el què realitzem al afegir una màquina Linux a un domini Samba és: | ||
− | * Autenticació centralitzada: configurant [[PAM]] i nsswitch.conf | + | * Autenticació centralitzada: configurant [[PAM]] amb WINBIND i nsswitch.conf |
* Compartició del ''home'' de l'usuari logat a través de la configuració del smb.conf (client). | * Compartició del ''home'' de l'usuari logat a través de la configuració del smb.conf (client). | ||
Revisió del 19:09, 22 gen 2016
Samba és la implementació del protocol SMB (també conegut com a CIFS i creat per IBM i Microsoft) per gestió de directori i recursos compartits.
És una peça clau per integrar recursos Windows i Linux en la mateixa xarxa.
S'ha implementat com a enginyeria inversa de la implementació en Windows.
Contingut
Introducció
Referències:
- Llibre online Using Samba de O'Reilly, és una bona referència.
- Samba.org
Acrònims varis:
- DC: Domain Controller (Controlador de domini de Active Directory)
- PDC: Primary DC
- BDC: Backup DC
- NetBIOS , WINS : sistema de noms del protocol SMB (independent del sistema DNS)
- MB: Master Browser
- LMB: Local MB
- DMB: Domain MB
- MB: Master Browser
- Usuari guest (sense pass)
- Daemons:
- smbd (servidor de recursos compartits)
- nmbd (servidor de noms NetBIOS)
Protocol pensat per autoexploració i autonegociació de master/slave. Produeix molts broadcast i omple la xarxa de paquets (pot arribar a provocar molt problemes). Un correcte ajustament del servidor NetBIOS redueix dràsticament aquest problema.
Funcionalitats
Samba serveix per substituir algunes funcionalitats d'un Active Directory (per suposat, no totes elles). Les més importants son:
- Netlogon: comptes d'usuari centralitzats
- Shares: carpetes de xarxa
- Impressores
Instal·lació
# apt-get install samba smbclient samba-docs
El principal arxiu de configuració és /etc/samba/smb.conf.
En general, cada secció marcada amb claudàtors correspon a un share (carpeta compartida). Per exemple:
[documents] path = /home/enric/documents ; carpeta a compartir guest ok = no ; si admetem usuari convidat valid users = enric ; usuaris vàlids (amb @ seria un grup) read only = no ; es pot escriure browseable = yes ; el servidor mostra la carpeta com a disponible quan visualitzem \\MAQUINA
Hi ha, però, les excepcions següents com a seccions de configuració global:
- [global]
- [homes]
- [netlogon]
- [printers]
- [print$]
- [profiles]
Quick Reference
Abans de començar convé posar el nom de la màquina FQDN ben posat (fully qualified domain name).
Paquets a instal·lar:
# apt-get install samba smbclient samba-doc
Arxius de conf:
/etc/samba/smb.conf
Arxius de log (principal, n'hi ha molts més):
/var/log/samba/log.smbd
Inicialment disposem de l'usuari guest i sense contrasenya (mapejat en nobody).
Comandes Linux útils:
- smbclient -L //maquina/ -U usuari
$ smbclient -L //server/ -U guest -N
- smbtree [-N] : per veure totes les màquines i els seus recursos (s'extreu de la BD local)
$ smbtree -N
- smbtree -D : mostra dominis disponibles
$ smbtree -D
- nmblookup <nom_netbios_maquina> (retorna IP)
- nmblookup -A localhost
- per buscar master browsers:
$ nmblookup -M -
- ...
Comandes Windows útils:
- net use
Samba Server
Referència Samba com a PDC a Samba.org.
Partirem d'un Ubuntu Server LTS i anirem modificant la configuració del /etc/samba/smb.conf (no l'esborreu sencer, anirem modificant i afegint parts).
Per activar la màquina com a samba server cal fer:
[global] workgroup = CACAUNET ; nom WINS del domini server role = standalone server ; podria ser domain controller tambe security = user ; alternatives: share (per recursos), domain (per fer de BDC) domain logons = yes ; habilita autenticació de logons de clients os level = 34 preferred master = yes domain master = yes ; yes=PDC , no=BDC wins support = yes ; fa de serivdor WINS (resolució de noms NetBIOS) time server = yes passdb backend = tdbsam ; despres hi posarem ldapsam! (de moment es BD interna) ; aquesta linia es per crear comptes de màquina. Caldrà crear el grup machines add machine script = sudo /usr/sbin/useradd -N -g machines -c Machine -d /var/lib/samba -s /bin/false %u [netlogon] comment = Enricus Logon Service path = /home/samba/netlogon ; ULL! Cal crear la carpeta (o no funcionarà el logon) guest ok = no read only = yes
Cal crear la carpeta logon on podrem posar scripts d'inici i així particularitzar configuracions quan algú es logui a les màquines (muntar carpetes de xarxa, etc):
# mkdir -p /home/samba/netlogon
Comptes de màquina
Cada màquina que afegim al domini requereix un "compte de màquina" (un usuari Unix) que estarà dins el grup machines (tal i com hem configurat el add_machine_script del smb.conf). Caldrà crear, doncs, el grup:
# addgroup machines
Els "comptes de màquina" no requereixen que tinguin entrada al sistema operatiu (de fet, millor que no en tingui). Per tant, aquests usuaris no tindran contrasenya ni home directory.
En principi, si ho hem configurat tot bé, les màquines es donaran d'alta automàticament mercès a la comanda que figura a add machine script.
Si volem crear "a mà" una màquina podem fixar-nos aquesta comanda de add machine script. Els noms de màquina Windows/Samba seran el nom que configurem a la màquina client amb el signe "$" al final.. Per exemeple, si volem afegir la màquina "xipiron", farem:
# useradd -N -g machines -c Machine -d /var/lib/samba -s /bin/false xipiron$
Comptes Samba i Unix
Els comptes de Samba estan lligats a Unix. És a dir, per poder tenir un usuari Samba cal necessàriament que hi hagi una entrada a /etc/passwd. Si volem, podem deshabilitar el compte Unix i mantenir el funcionament del client Samba.
La BBDD de contrasenyes Samba és independent de la de Unix. Per activar un compte Samba cal crear l'usuari i donar-li una contrasenya Samba:
# adduser lola # smbpasswd -a lola
Si no ho fem, no podrem entrar com a l'usuari.
Sincronitzar passwords Samba i Unix
Si volem sincronitzar les contrasenyes dels comptes Unix --> Samba (oju, només en aquest sentit) cal instal·lar libpam-smbpass:
# apt-get install libpam-smbpass
I configurar (normalment ja ve per defecte):
[global] ... unix password sync = yes passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . pam password change = yes
Samba com a PDC
Per tal d'habilitar Samba com a servidor de domini per a clients Windows caldrà aplicar alguns ajustos.
El més rellevant és ajustar el rol del server:
[global] ... server role = classic primary domain controller
El valor típic és standalone server que ja va bé per fer shares i demés, però no per fer de PDC i permetre afegir màquines i logons centralitzats.
Seguidament cal mapejar el "Domain Admins" al grup d'administradors UNIX de la màquina server, grup adm en el cas d'Ubuntu 14.04. En Windows el grup d'Administradors té UID=512). Qualsevol usuari UNIX que pertanyi a aquest grup podrà donar d'alta màquines al domini.
# net groupmap add ntgroup="Domain Admins" unixgroup=adm rid=512 type=d
Crearem un usuari dins del grup adm per afegir màquines al domini (cal donar-li també la contrasenya Samba):
# adduser jefe # adduser jefe adm # smbpasswd -a jefe
Finalment, donar els privilegis adequats per tal que les màquines Windows s'hi afegeixin al domini "sin rechistar":
# net rpc rights grant -U jefe "EXAMPLE\Domain Admins" SeMachineAccountPrivilege \ SePrintOperatorPrivilege SeAddUsersPrivilege SeDiskOperatorPrivilege \ SeRemoteShutdownPrivilege
Clients Windows
Pots afegir màquines Windows amb normalitat a un domini realitzat amb Samba, sempre i quan estigui actuant com a PDC (veure més amunt).
Tingueu en compte, però:
- Windows XP (xipiron): funciona a la primera sense problema (segueix els consells de més avall).
- Windows 7:
- Cal fer uns canvis en el registre del client abans d'unir-se al domini.
- Crear el compte de la màquina "a mà" en el server (veure més amunt).
Normalment afegim la màquina des del menú de canvi de nom (de la màquina client). Hi ha 2 passes:
- Indicar que ens unim al domini (el què haguem posat al workgroup del fitxer smb.conf).
- Quan fem això ens ha de sortir un diàleg d'autenticació. Si no ens surt pot ser per diversos motius:
- No hem posat correctament
server role = classic primary domain controller
- De vegades cal reiniciar les màquines (en principi reiniciant serveis hi ha prou, però de vegades cal reiniciar).
- No estem mirant el domini correcte.
- Podeu testejar des d'una màquina linux si existeix el domini fent
$ smbtree -N
- Podeu intentar canviar el grup de treball del client, aviam si així veu el server.
- Quan ens surt la pantalla d'autenticació posem usuari/passwd (del "jefe" o altre usuari del grup adm)
- Si no ens valida OK:
- Comprovar que hem mapejat correctament el grup UNIX adm al grup "Domain Admins" (GID=512) tal com s'indica més amunt.
- Comprovar que hem creat la carpeta del netlogon
Home directories i profiles
Estem parlant del mateix. Però en Windows i AD es sol parlar de profiles i en Linux es sol parlar de home directory.
La configuració que ve per defecte a Samba 4 sol col·locar el home directory del servidor Samba com a unitat H: de la màquina client. Feu-li una ullada a smb.conf , veureu que es tracta de descomentar les línies referents al logon a la secció [global]. En la versió Ubuntu 14.04 tenim:
logon path = \\%N\%U\profile logon drive = H: logon home = \\%N\%U logon script = logon.cmd
Si activem tot això, veureu que al entrar amb el client Windows disposarem de la unitat H: sobre la que podem escriure en el nostre home directory del servidor Samba.
A més, podem col·locar alguna configuració particular a l'arxiu logon.cmd per muntar altres unitats de xarxa, etc.
Clients Linux
Podem accedir als shares a través d'un Nautilus: fent CTRL+L i posant l'adreça smb://ip_del_server/recurs
S'entén que "recurs" és el share que hem posat a l'arxiu smb.conf . També es pot accedir als homes de cada usuari posant el nom d'usuari (si ho hem configurat adequadament).
Per afegir una màquina Linux a un domini Samba hi ha diverses opcions:
- Tutorial hàbil amb PowerBroker (pbis). En teoria aquest soft/script hauria de facilitar afegir la màquina al domini, però al final s'han de fer tants parches que no sé si val la pena.
- Tutorial en Ubuntu forums. Utilitzant Winbind, podem introduir la màquina al domini.
- De vegades pot ser que falli la màquina client al reiniciar-la donant l'error No logon server (encara que sí funcionés al principi). Si és el cas, tingueu en compte:
- Afegir al smb.conf del client:
wins server = <ip_del_server>
- De vegades reiniciant smbd torna a funcionar
- Afegir al smb.conf del client:
- De vegades pot ser que falli la màquina client al reiniciar-la donant l'error No logon server (encara que sí funcionés al principi). Si és el cas, tingueu en compte:
En el fons, el què realitzem al afegir una màquina Linux a un domini Samba és:
- Autenticació centralitzada: configurant PAM amb WINBIND i nsswitch.conf
- Compartició del home de l'usuari logat a través de la configuració del smb.conf (client).
Samba + LDAP
Tens la informació a l'article Samba amb LDAP.
Troubleshooting
El més important (com sempre) és mirar el fitxer de log:
$ tail -f /var/log/samba/log.smbd
La comanda testparm també ens dona informació sobre si hi ha errors a smbd.conf:
$ testparm