Clark's Home page

Tecnicismi vari di un Sysadmin Linux ma anche qualcosa della sua vita

Samba per cluster —

Cluster è l’host più importante dell’azienda in cui lavoro, esiste un record DNS che lo identifica con un preciso indirizzo IP, ed è in buona sostanza quell’entita’ che provvede all’autenticazione in dominio, allo sharing di risorse sia come dati condivisi che come stampanti di rete, fornisce servizi di posta (SMTP IMAP POP3), fornisce indirizzi in DHCP ai visitatori, risolve nomi DNS interni ed esterni, fornisce openvpn per i road warriors (non riesco a scriverlo senza ridere), e altro che adesso non ricordo ma direi che i topic più importanti li ho citati.Il cluster principale (ne esiste uno anche di firewall per la connessione ad internet  e uno di test per fare tutte le esperienze necessarie prima di  mandare in produzione qualcosa) è costituito da 2 server Dell PowerEdge T410 che hanno instalalto una Debian Lenny al solito il clustering è affidato a drbd+heartbeat ma in questo articolo mi limiterò a parlare della configurazione di samba.

[global]
### sezione di parametri generali

workgroup = OCEANO

### nome del dominio/gruppo di lavoro
netbios name = CLUSTER
### hostname con il quale viene visto dalla rete il gruppo logico

server string = %h  (Sangiusto files and prints server %v)
### banner che appare nell browsing di rete e che indentifica il gruppo logico

interfaces = eth0, eth0:0, 172.19.170.0/24, lo
### interfacce su cui ascolta samba vale a dire l’interfaccia della lan (eth0) l’interfaccia virtuale del cluster (eth0:0) la loopback e da ultimo l’IP su cui gira la VPN
bind interfaces only = Yes
### istruzione di usare solo le interfacce specificate e solo quelle

obey pam restrictions = Yes
### samba deve seguire le direttive di PAM

passwd program = /usr/bin/passwd %u
### path del programma di password

passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n .
### hardening sulla password
unix password sync = Yes
### samba deve usare le stesse password dell’utente linux

log level = 2
### molta attenzione a questo parametro alzarlo per il debug ammazza nel vero senso della parola la velocita’ di trasmissione dei dati.
syslog = 0
### niente in syslog
log file = /var/log/samba/log.%m
### path dei log
max log size = 10000
### dimensione del log in KiloBytes
name resolve order = host wins bcast

### ordine di risoluzione dei nomi

time server = Yes
### fornisce il servizio time sulla rete
socket options = TCP_NODELAY IPTOS_LOWDELAY  SO_SNDBUF=65536 SO_RCVBUF=65536 SO_KEEPALIVE
### opzioni di ottimizzazione per la trasmissione ricezione dei dati

deadtime = 15

### tempo in minuti per considerare morta una connessione con un client e quindi interrotta.

printcap name = cups
### abilitazione di CUPS per le stampe

add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u
add group script = /usr/sbin/addgroup –force-badname %g
### path dei programmi per l’aggiunta di user e groups

logon script = %U.bat
### nome dello script di logon tipicamente userlogin.bat

logon path = \\%L\profiles\%U
### path degli script di logon

logon drive = H:
### directory home dell’user vine mappata come unità H
domain logons = Yes
os level = 65
preferred master = Yes
domain master = Yes
### diventa PDC

wins support = Yes
### diventa Wins server (DNS Microsoft)
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum groups = yes
winbind enum users = yes

### parametri necessari a winbind per l’autenticazione ntlm (proxy)

client ntlmv2 auth = yes
wins proxy = No
lanman auth = yes
ntlm auth = Yes
### parametri necessari per inserire in dominio macchine windows 7
admin users = root
### root=administrator
printer admin = @admin
### amministratori di stampa
hosts allow = 127., 192.168.2., 172.19.170.
### solo gli hosts appartenenti a queste subnet si possono collegare vale a dire la lan e da vpn

browse list = yes

### crea la lista delle shares disponibili

### da qui comincia la configurazione delle shares di samba
### system shares

[netlogon]
comment = Servizio di logon di dominio
path = /etcvar/var/samba/logon
create mask = 0664
browseable = No

[profiles]
path = /etcvar/var/samba/ntprofiles/%U
read only = No
create mask = 0600
directory mask = 0700
profile acls = Yes
writeable = Yes
browseable = Yes
guest ok = Yes

[homes]
comment = Cartella personale
read only = No
create mask = 0700
directory mask = 0700
browseable = No

### stampanti di rete[centralino]
comment = multifunzione centralino richo 3025
path = /tmp
invalid users = depuratore, acquisizione
guest ok = Yes
printable = Yes

[schede]
comment = stampante schede DHL
path = /tmp
invalid users = depuratore, acquisizione
guest ok = Yes
printable = Yes

[contabilita]
comment = Stampante Contabilita richo3025
path = /tmp
invalid users = depuratore, acquisizione
guest ok = Yes
printable = Yes

[galvanica]
comment = multifunzione ufficio bolle richo 2018D
path = /tmp
invalid users = depuratore, acquisizione
guest ok = Yes
printable = Yes

[macchine]
comment = Stampante Macchine richo 2018D
path = /tmp
invalid users = depuratore, acquisizione
guest ok = Yes
printable = Yes

[ute]
comment = Stampante ute ricoh 2035
path = /tmp
guest ok = Yes
printable = Yes

[plotter]
comment = Plotter oc 5150
path = /tmp
invalid users = depuratore, acquisizione
valid users = @ute,
force group = ute
guest ok = Yes
printable = Yes

[bolle_galv]
comment = oki bolle galvanica
path = /tmp
invalid users = depuratore, aquisizione
valid users = @galvanica
force group = galvanica
guest ok = Yes
printable = Yes

[epson_lx800]
comment = epson tabulati  galvanica
path = /tmp
invalid users = depuratore, acquisizione
valid users = @galvanica
force group = galvanica
guest ok = Yes
printable = Yes

[oki_acq]
comment = oki 520 tabulati acquisti
path = /tmp
invalid users = depuratore, acquisizione
guest ok = Yes
printable = Yes

[oki_bolle]
comment = oki 520 bolle produzione
path = /tmp
invalid users = depuratore, acquisizione
guest ok = Yes
printable = Yes

### CDROM condiviso sul server servisse per un qualcosa.
[cdrom]
comment =  CD-ROM
path = /cdrom
invalid users = depuratore
guest ok = Yes
locking = No
preexec = /bin/mount /cdrom
postexec = /bin/umount /cdrom

### shares di dati [newute]
comment = Cartella di lavoro di UTE
path = /home3/samba/ute
invalid users = depuratore, acquisizione
valid users = @ute, utente1, utente 2, utente3, utente4
write list = @ute, utente2
force group = ute
create mask = 0770
directory mask = 0770
volume = disco_ute
browseable = Yes

[old_contracts]
comment = Directory vecchie commesse
path = /home4/samba/vecchie_commesse
valid users = @ute, utente2, utente1, utente3
write list = @ute
force group = ute
create mask = 0770
directory mask = 0770
volume = disco_vecchie_commesseute
browseable = Yes

[cdl]
comment = Cartella di lavoro cicli di produzione
path = /home3/samba/cdl
invalid users = depuratore, acquisizione
valid users = @cdl
force group = cdl
read only = No
create mask = 0770
directory mask = 0770
volume = disco_cdl

[arc_pdf]
comment = Cartella files pdf da ute
path = /home3/samba/archivio_pdf
invalid users = depuratore, acquisizione
read only = No
create mask = 0775
directory mask = 0775
volume = disco_pdf

[qualita]
comment = Cartella di lavoro Assicurazione Qualita
path = /home2/samba/qualita
invalid users = depuratore, aquisizione
valid users = @users, user1, netuser, comune
force group = comune
read only = No
create mask = 0770
directory mask = 0770
volume = disco_qualita

[galvanica1]
comment = Directory di lavoro dipartimento galvanica
path = /home2/samba/galvanica
valid users = @galvanica1
invalid users = depuratore
force group = galvanica1
read only = No
create mask = 0770
directory mask = 0770
browseable = yes
volume = disco_galvanica

[amm]
comment = Cartella di lavoro Amministrazione
path = /home2/samba/amm
invalid users = depuratore, acquisizione
valid users = @users
force group = users
read only = No
create mask = 0770
directory mask = 0770
volume = disco_amm

[programmi]
comment = Programmi vari per utenza win
path = /home2/samba/programmi
invalid users = depuratore, aquisizione
valid users = @users, @edp
read list = @users
write list = @edp
force group = edp
read only = No
create mask = 0770
directory mask = 0770
volume = disco_programmi
browseable = Yes

[Oasi]
comment = Dati del programma gestionale
path = /home2/samba/Oasi
invalid users = depuratore
valid users = @users
write list = @users
force group = users
read only = No
create mask = 0770
directory mask = 0770
volume = disco_Oasi

[viaggi]
comment = viaggi corriere Pellicano
path = /home2/samba/viaggi_corriere_interno
invalid users = depuratore, aquisizione
valid users = @users
write list = @users
force group = users
read only = No
create mask = 0770
directory mask = 0770
volume = directory gestione corriere

[divmacc]
comment = Cartella di lavoro Divisione Macchine
path = /home2/samba/divmacc
invalid users = depuratore, acquisizione
valid users = @macchine
force group = macchine
read only = No
create mask = 0770
directory mask = 0770
volume = disco_divmacc[ura]
comment = directory di interscambio ura
path = /home2/samba/ura
invalid users = depuratore, acquisizione
valid users = @ura, @edp
force group = ura
read only = No
create mask = 0770
directory mask = 0770

[acquisti]
comment = directory di interscambio acquisti
path = /home2/samba/acquisti
invalid users = depuratore, acquisizione
valid users = @acquisti, @edp
force group = acquisti
read only = No
create mask = 0770
directory mask = 0770

[collaudo]
comment = directory delle certificazioni di collaudo
path = /home2/samba/collaudo
invalid users = depuratore, acquisizione
valid users = @collaudo, @edp, @qualita
force group = collaudo
read only = No
create mask = 0770
directory mask = 0770

[manute]
comment = directory manutenzione
path = /home2/samba/manutenzione
invalid users = depuratore, acquisizione
valid users = @manutenzione, @edp
force group = manutenzione
read only = No
create mask = 0770
directory mask = 0770
[dati]
comment = directory dati depuratore
path = /home2/samba/dati
invalid users = acquisizione
valid users = @manutenzione, @edp
force group = manutenzione
read only = No
create mask = 0770
directory mask = 0770

[avast]
comment = setup centralizzato di avast
path = /home2/samba/avast
valid users = @users, @edp
force group = users
read only = No
create mask = 0770
directory mask = 0770

[ferie]
comment = calendario  centralizzato ferie
path = /home2/samba/ferie
valid users = @uffici, @edp
force group = uffici
read only = No
create mask = 0770
directory mask = 0770

E questa è la configurazione di un server samba funzionante e che fa lavorare uan ditta di circa 80 persone al momento attuale, da notarsi che molte opzioni sono state ignorate nel file di configurazione il programma prende quelle di default che nel 90% dei casi vanno bene, la configurazione completa si può vedere con il comando testparm -v.
Una nota a margine bisogna farla per gli script di logon, questi files.bat (estensione eseguibile per il mondo Microsoft) sono dei semplici files di testo che vengono eseguiti all’avvio o meglio all’entrata in dominio di ogni client.
Per la mia personalissima esperienza questi files conviene scriverli con un notepad di windows e poi andare a copiarli nella directory di lavoro, il responsabile di tutto ciò è il ritorno a capo che deve essere di tipo windows, di seguito 2 esempi di logon script.

clark.bat
common.bat

Una volta configurato il tutto resta la parte più noiosa, vale a dire istruire Samba su utenti e password, esistono dei tools per automatizzare la cosa in passato ne ho provato uno di cui non ricordo minimamente il nome, il risultato è stato decisamente deludente, e da allora ogni volta che devo rifare il cluster mi armo di buona pazienza ed eseguo la seguente operazione per ogni utente e per ogni macchina, breve parentesi sia gli utenti che le macchine devono avere una entry come questa in /etc/passwd e /etc/shadow
per l’utente in /etc/passwd
clark:x:1079:1079:Clark,,:/home/clark:/bin/false
per l’tente in /etc/shadow
clark:$1$GujNFrfv$XRvOKgq0uZw/YBLl3Nlfi1:15026:0:99999:7:::
per la macchina PC0 a puro titolo di esempio
in /etc/passwd
pc0$:x:2001:2001:computer:/dev/null:/bin/false
in /etc/shadow
pc0$:!:11968:0:99999:7:::
da notarsi che la password della macchina è assolutamente fittizia e può essere vuota

si tratta ora di aggiungere user e macchina a samba l’operazione da compiere è la seguente:
smbpasswd -a -m pc0

e la macchina viene aggiunta al DB di samba

smbpasswd -a clark
New SMB password:
Retype new SMB password:
alla richiesta della password inserire quella dell’utente clark e l’utente viene aggiunto al DB di samba.

È un lavoro lungo e noioso lo ammetto ma si fa una volta ogni 5-6 anni (o quando si aggiungono user e PC alla rete) quando si rifà il tutto.

 


Categorised as: Cluster | Linux | Networking | Samba | Work

Comments are disabled on this post


Comments are closed.