{"id":804,"date":"2013-04-22T12:12:43","date_gmt":"2013-04-22T10:12:43","guid":{"rendered":"http:\/\/clark.tipistrani.it\/?p=804"},"modified":"2013-04-22T12:12:43","modified_gmt":"2013-04-22T10:12:43","slug":"samba-per-cluster","status":"publish","type":"post","link":"https:\/\/clark.tipistrani.it\/?p=804","title":{"rendered":"Samba per cluster"},"content":{"rendered":"<p>Cluster \u00e8 l&#8217;host pi\u00f9 importante dell&#8217;azienda in cui lavoro, esiste un record DNS che lo identifica con un preciso indirizzo IP, ed \u00e8 in buona sostanza quell&#8217;entita&#8217; che provvede all&#8217;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\u00f9 importanti li ho citati.Il cluster principale (ne esiste uno anche di firewall per la connessione ad internet\u00a0 e uno di test per fare tutte le esperienze necessarie prima di\u00a0 mandare in produzione qualcosa) \u00e8 costituito da 2 server Dell PowerEdge T410 che hanno instalalto una Debian Lenny al solito il clustering \u00e8 affidato a drbd+heartbeat ma in questo articolo mi limiter\u00f2 a parlare della configurazione di samba.<\/p>\n<p>[global]<br \/>\n### sezione di parametri generali<\/p>\n<p>workgroup = OCEANO<\/p>\n<p>### nome del dominio\/gruppo di lavoro<br \/>\nnetbios name = CLUSTER<br \/>\n### hostname con il quale viene visto dalla rete il gruppo logico<\/p>\n<p>server string = %h\u00a0 (Sangiusto files and prints server %v)<br \/>\n### banner che appare nell browsing di rete e che indentifica il gruppo logico<\/p>\n<p>interfaces = eth0, eth0:0, 172.19.170.0\/24, lo<br \/>\n### interfacce su cui ascolta samba vale a dire l&#8217;interfaccia della lan (eth0) l&#8217;interfaccia virtuale del cluster (eth0:0) la loopback e da ultimo l&#8217;IP su cui gira la VPN<br \/>\nbind interfaces only = Yes<br \/>\n### istruzione di usare solo le interfacce specificate e solo quelle<\/p>\n<p>obey pam restrictions = Yes<br \/>\n### samba deve seguire le direttive di PAM<\/p>\n<p>passwd program = \/usr\/bin\/passwd %u<br \/>\n### path del programma di password<\/p>\n<p>passwd chat = *Enter\\snew\\sUNIX\\spassword:* %n\\n *Retype\\snew\\sUNIX\\spassword:* %n\\n .<br \/>\n### hardening sulla password<br \/>\nunix password sync = Yes<br \/>\n### samba deve usare le stesse password dell&#8217;utente linux<\/p>\n<p>log level = 2<br \/>\n### molta attenzione a questo parametro alzarlo per il debug ammazza nel vero senso della parola la velocita&#8217; di trasmissione dei dati.<br \/>\nsyslog = 0<br \/>\n### niente in syslog<br \/>\nlog file = \/var\/log\/samba\/log.%m<br \/>\n### path dei log<br \/>\nmax log size = 10000<br \/>\n### dimensione del log in KiloBytes<br \/>\nname resolve order = host wins bcast<\/p>\n<p>### ordine di risoluzione dei nomi<\/p>\n<p>time server = Yes<br \/>\n### fornisce il servizio time sulla rete<br \/>\nsocket options = TCP_NODELAY IPTOS_LOWDELAY\u00a0 SO_SNDBUF=65536 SO_RCVBUF=65536 SO_KEEPALIVE<br \/>\n### opzioni di ottimizzazione per la trasmissione ricezione dei dati<\/p>\n<p>deadtime = 15<\/p>\n<p>### tempo in minuti per considerare morta una connessione con un client e quindi interrotta.<\/p>\n<p>printcap name = cups<br \/>\n### abilitazione di CUPS per le stampe<\/p>\n<p>add machine script = \/usr\/sbin\/adduser -n -g machines -c Machine -d \/dev\/null -s \/bin\/false %u<br \/>\nadd group script = \/usr\/sbin\/addgroup &#8211;force-badname %g<br \/>\n### path dei programmi per l&#8217;aggiunta di user e groups<\/p>\n<p>logon script = %U.bat<br \/>\n### nome dello script di logon tipicamente userlogin.bat<\/p>\n<p>logon path = \\\\%L\\profiles\\%U<br \/>\n### path degli script di logon<\/p>\n<p>logon drive = H:<br \/>\n### directory home dell&#8217;user vine mappata come unit\u00e0 H<br \/>\ndomain logons = Yes<br \/>\nos level = 65<br \/>\npreferred master = Yes<br \/>\ndomain master = Yes<br \/>\n### diventa PDC<\/p>\n<p>wins support = Yes<br \/>\n### diventa Wins server (DNS Microsoft)<br \/>\nidmap uid = 10000-20000<br \/>\nidmap gid = 10000-20000<br \/>\nwinbind enum groups = yes<br \/>\nwinbind enum users = yes<\/p>\n<p>### parametri necessari a winbind per l&#8217;autenticazione ntlm (proxy)<\/p>\n<p>client ntlmv2 auth = yes<br \/>\nwins proxy = No<br \/>\nlanman auth = yes<br \/>\nntlm auth = Yes<br \/>\n### parametri necessari per inserire in dominio macchine windows 7<br \/>\nadmin users = root<br \/>\n### root=administrator<br \/>\nprinter admin = @admin<br \/>\n### amministratori di stampa<br \/>\nhosts allow = 127., 192.168.2., 172.19.170.<br \/>\n### solo gli hosts appartenenti a queste subnet si possono collegare vale a dire la lan e da vpn<\/p>\n<p>browse list = yes<\/p>\n<p>### crea la lista delle shares disponibili<\/p>\n<p>### da qui comincia la configurazione delle shares di samba<br \/>\n### system shares<\/p>\n<p>[netlogon]<br \/>\ncomment = Servizio di logon di dominio<br \/>\npath = \/etcvar\/var\/samba\/logon<br \/>\ncreate mask = 0664<br \/>\nbrowseable = No<\/p>\n<p>[profiles]<br \/>\npath = \/etcvar\/var\/samba\/ntprofiles\/%U<br \/>\nread only = No<br \/>\ncreate mask = 0600<br \/>\ndirectory mask = 0700<br \/>\nprofile acls = Yes<br \/>\nwriteable = Yes<br \/>\nbrowseable = Yes<br \/>\nguest ok = Yes<\/p>\n<p>[homes]<br \/>\ncomment = Cartella personale<br \/>\nread only = No<br \/>\ncreate mask = 0700<br \/>\ndirectory mask = 0700<br \/>\nbrowseable = No<\/p>\n<p>### stampanti di rete[centralino]<br \/>\ncomment = multifunzione centralino richo 3025<br \/>\npath = \/tmp<br \/>\ninvalid users = depuratore, acquisizione<br \/>\nguest ok = Yes<br \/>\nprintable = Yes<\/p>\n<p>[schede]<br \/>\ncomment = stampante schede DHL<br \/>\npath = \/tmp<br \/>\ninvalid users = depuratore, acquisizione<br \/>\nguest ok = Yes<br \/>\nprintable = Yes<\/p>\n<p>[contabilita]<br \/>\ncomment = Stampante Contabilita richo3025<br \/>\npath = \/tmp<br \/>\ninvalid users = depuratore, acquisizione<br \/>\nguest ok = Yes<br \/>\nprintable = Yes<\/p>\n<p>[galvanica]<br \/>\ncomment = multifunzione ufficio bolle richo 2018D<br \/>\npath = \/tmp<br \/>\ninvalid users = depuratore, acquisizione<br \/>\nguest ok = Yes<br \/>\nprintable = Yes<\/p>\n<p>[macchine]<br \/>\ncomment = Stampante Macchine richo 2018D<br \/>\npath = \/tmp<br \/>\ninvalid users = depuratore, acquisizione<br \/>\nguest ok = Yes<br \/>\nprintable = Yes<\/p>\n<p>[ute]<br \/>\ncomment = Stampante ute ricoh 2035<br \/>\npath = \/tmp<br \/>\nguest ok = Yes<br \/>\nprintable = Yes<\/p>\n<p>[plotter]<br \/>\ncomment = Plotter oc 5150<br \/>\npath = \/tmp<br \/>\ninvalid users = depuratore, acquisizione<br \/>\nvalid users = @ute,<br \/>\nforce group = ute<br \/>\nguest ok = Yes<br \/>\nprintable = Yes<\/p>\n<p>[bolle_galv]<br \/>\ncomment = oki bolle galvanica<br \/>\npath = \/tmp<br \/>\ninvalid users = depuratore, aquisizione<br \/>\nvalid users = @galvanica<br \/>\nforce group = galvanica<br \/>\nguest ok = Yes<br \/>\nprintable = Yes<\/p>\n<p>[epson_lx800]<br \/>\ncomment = epson tabulati\u00a0 galvanica<br \/>\npath = \/tmp<br \/>\ninvalid users = depuratore, acquisizione<br \/>\nvalid users = @galvanica<br \/>\nforce group = galvanica<br \/>\nguest ok = Yes<br \/>\nprintable = Yes<\/p>\n<p>[oki_acq]<br \/>\ncomment = oki 520 tabulati acquisti<br \/>\npath = \/tmp<br \/>\ninvalid users = depuratore, acquisizione<br \/>\nguest ok = Yes<br \/>\nprintable = Yes<\/p>\n<p>[oki_bolle]<br \/>\ncomment = oki 520 bolle produzione<br \/>\npath = \/tmp<br \/>\ninvalid users = depuratore, acquisizione<br \/>\nguest ok = Yes<br \/>\nprintable = Yes<\/p>\n<p>### CDROM condiviso sul server servisse per un qualcosa.<br \/>\n[cdrom]<br \/>\ncomment =\u00a0 CD-ROM<br \/>\npath = \/cdrom<br \/>\ninvalid users = depuratore<br \/>\nguest ok = Yes<br \/>\nlocking = No<br \/>\npreexec = \/bin\/mount \/cdrom<br \/>\npostexec = \/bin\/umount \/cdrom<\/p>\n<p>### shares di dati [newute]<br \/>\ncomment = Cartella di lavoro di UTE<br \/>\npath = \/home3\/samba\/ute<br \/>\ninvalid users = depuratore, acquisizione<br \/>\nvalid users = @ute, utente1, utente 2, utente3, utente4<br \/>\nwrite list = @ute, utente2<br \/>\nforce group = ute<br \/>\ncreate mask = 0770<br \/>\ndirectory mask = 0770<br \/>\nvolume = disco_ute<br \/>\nbrowseable = Yes<\/p>\n<p>[old_contracts]<br \/>\ncomment = Directory vecchie commesse<br \/>\npath = \/home4\/samba\/vecchie_commesse<br \/>\nvalid users = @ute, utente2, utente1, utente3<br \/>\nwrite list = @ute<br \/>\nforce group = ute<br \/>\ncreate mask = 0770<br \/>\ndirectory mask = 0770<br \/>\nvolume = disco_vecchie_commesseute<br \/>\nbrowseable = Yes<\/p>\n<p>[cdl]<br \/>\ncomment = Cartella di lavoro cicli di produzione<br \/>\npath = \/home3\/samba\/cdl<br \/>\ninvalid users = depuratore, acquisizione<br \/>\nvalid users = @cdl<br \/>\nforce group = cdl<br \/>\nread only = No<br \/>\ncreate mask = 0770<br \/>\ndirectory mask = 0770<br \/>\nvolume = disco_cdl<\/p>\n<p>[arc_pdf]<br \/>\ncomment = Cartella files pdf da ute<br \/>\npath = \/home3\/samba\/archivio_pdf<br \/>\ninvalid users = depuratore, acquisizione<br \/>\nread only = No<br \/>\ncreate mask = 0775<br \/>\ndirectory mask = 0775<br \/>\nvolume = disco_pdf<\/p>\n<p>[qualita]<br \/>\ncomment = Cartella di lavoro Assicurazione Qualita<br \/>\npath = \/home2\/samba\/qualita<br \/>\ninvalid users = depuratore, aquisizione<br \/>\nvalid users = @users, user1, netuser, comune<br \/>\nforce group = comune<br \/>\nread only = No<br \/>\ncreate mask = 0770<br \/>\ndirectory mask = 0770<br \/>\nvolume = disco_qualita<\/p>\n<p>[galvanica1]<br \/>\ncomment = Directory di lavoro dipartimento galvanica<br \/>\npath = \/home2\/samba\/galvanica<br \/>\nvalid users = @galvanica1<br \/>\ninvalid users = depuratore<br \/>\nforce group = galvanica1<br \/>\nread only = No<br \/>\ncreate mask = 0770<br \/>\ndirectory mask = 0770<br \/>\nbrowseable = yes<br \/>\nvolume = disco_galvanica<\/p>\n<p>[amm]<br \/>\ncomment = Cartella di lavoro Amministrazione<br \/>\npath = \/home2\/samba\/amm<br \/>\ninvalid users = depuratore, acquisizione<br \/>\nvalid users = @users<br \/>\nforce group = users<br \/>\nread only = No<br \/>\ncreate mask = 0770<br \/>\ndirectory mask = 0770<br \/>\nvolume = disco_amm<\/p>\n<p>[programmi]<br \/>\ncomment = Programmi vari per utenza win<br \/>\npath = \/home2\/samba\/programmi<br \/>\ninvalid users = depuratore, aquisizione<br \/>\nvalid users = @users, @edp<br \/>\nread list = @users<br \/>\nwrite list = @edp<br \/>\nforce group = edp<br \/>\nread only = No<br \/>\ncreate mask = 0770<br \/>\ndirectory mask = 0770<br \/>\nvolume = disco_programmi<br \/>\nbrowseable = Yes<\/p>\n<p>[Oasi]<br \/>\ncomment = Dati del programma gestionale<br \/>\npath = \/home2\/samba\/Oasi<br \/>\ninvalid users = depuratore<br \/>\nvalid users = @users<br \/>\nwrite list = @users<br \/>\nforce group = users<br \/>\nread only = No<br \/>\ncreate mask = 0770<br \/>\ndirectory mask = 0770<br \/>\nvolume = disco_Oasi<\/p>\n<p>[viaggi]<br \/>\ncomment = viaggi corriere Pellicano<br \/>\npath = \/home2\/samba\/viaggi_corriere_interno<br \/>\ninvalid users = depuratore, aquisizione<br \/>\nvalid users = @users<br \/>\nwrite list = @users<br \/>\nforce group = users<br \/>\nread only = No<br \/>\ncreate mask = 0770<br \/>\ndirectory mask = 0770<br \/>\nvolume = directory gestione corriere<\/p>\n<p>[divmacc]<br \/>\ncomment = Cartella di lavoro Divisione Macchine<br \/>\npath = \/home2\/samba\/divmacc<br \/>\ninvalid users = depuratore, acquisizione<br \/>\nvalid users = @macchine<br \/>\nforce group = macchine<br \/>\nread only = No<br \/>\ncreate mask = 0770<br \/>\ndirectory mask = 0770<br \/>\nvolume = disco_divmacc[ura]<br \/>\ncomment = directory di interscambio ura<br \/>\npath = \/home2\/samba\/ura<br \/>\ninvalid users = depuratore, acquisizione<br \/>\nvalid users = @ura, @edp<br \/>\nforce group = ura<br \/>\nread only = No<br \/>\ncreate mask = 0770<br \/>\ndirectory mask = 0770<\/p>\n<p>[acquisti]<br \/>\ncomment = directory di interscambio acquisti<br \/>\npath = \/home2\/samba\/acquisti<br \/>\ninvalid users = depuratore, acquisizione<br \/>\nvalid users = @acquisti, @edp<br \/>\nforce group = acquisti<br \/>\nread only = No<br \/>\ncreate mask = 0770<br \/>\ndirectory mask = 0770<\/p>\n<p>[collaudo]<br \/>\ncomment = directory delle certificazioni di collaudo<br \/>\npath = \/home2\/samba\/collaudo<br \/>\ninvalid users = depuratore, acquisizione<br \/>\nvalid users = @collaudo, @edp, @qualita<br \/>\nforce group = collaudo<br \/>\nread only = No<br \/>\ncreate mask = 0770<br \/>\ndirectory mask = 0770<\/p>\n<p>[manute]<br \/>\ncomment = directory manutenzione<br \/>\npath = \/home2\/samba\/manutenzione<br \/>\ninvalid users = depuratore, acquisizione<br \/>\nvalid users = @manutenzione, @edp<br \/>\nforce group = manutenzione<br \/>\nread only = No<br \/>\ncreate mask = 0770<br \/>\ndirectory mask = 0770<br \/>\n[dati]<br \/>\ncomment = directory dati depuratore<br \/>\npath = \/home2\/samba\/dati<br \/>\ninvalid users = acquisizione<br \/>\nvalid users = @manutenzione, @edp<br \/>\nforce group = manutenzione<br \/>\nread only = No<br \/>\ncreate mask = 0770<br \/>\ndirectory mask = 0770<\/p>\n<p>[avast]<br \/>\ncomment = setup centralizzato di avast<br \/>\npath = \/home2\/samba\/avast<br \/>\nvalid users = @users, @edp<br \/>\nforce group = users<br \/>\nread only = No<br \/>\ncreate mask = 0770<br \/>\ndirectory mask = 0770<\/p>\n<p>[ferie]<br \/>\ncomment = calendario\u00a0 centralizzato ferie<br \/>\npath = \/home2\/samba\/ferie<br \/>\nvalid users = @uffici, @edp<br \/>\nforce group = uffici<br \/>\nread only = No<br \/>\ncreate mask = 0770<br \/>\ndirectory mask = 0770<\/p>\n<p>E questa \u00e8 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\u00f2 vedere con il comando testparm -v.<br \/>\nUna 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&#8217;avvio o meglio all&#8217;entrata in dominio di ogni client.<br \/>\nPer 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\u00f2 \u00e8 <a href=\"http:\/\/it.wikipedia.org\/wiki\/Newline\">il ritorno a capo<\/a> che deve essere di tipo windows, di seguito 2 esempi di logon script.<\/p>\n<p><a title=\"clark.bat\" href=\"https:\/\/clark.tipistrani.it\/?p=806\">clark.bat<\/a><br \/>\n<a title=\"common.bat\" href=\"https:\/\/clark.tipistrani.it\/?p=810\">common.bat<\/p>\n<p><\/a><\/p>\n<p>Una volta configurato il tutto resta la parte pi\u00f9 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 \u00e8 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<br \/>\nper l&#8217;utente in \/etc\/passwd<br \/>\nclark:x:1079:1079:Clark,,:\/home\/clark:\/bin\/false<br \/>\nper l&#8217;tente in \/etc\/shadow<br \/>\nclark:$1$GujNFrfv$XRvOKgq0uZw\/YBLl3Nlfi1:15026:0:99999:7:::<br \/>\nper la macchina PC0 a puro titolo di esempio<br \/>\nin \/etc\/passwd<br \/>\npc0$:x:2001:2001:computer:\/dev\/null:\/bin\/false<br \/>\nin \/etc\/shadow<br \/>\npc0$:!:11968:0:99999:7:::<br \/>\nda notarsi che la password della macchina \u00e8 assolutamente fittizia e pu\u00f2 essere vuota<\/p>\n<p>si tratta ora di aggiungere user e macchina a samba l&#8217;operazione da compiere \u00e8 la seguente:<br \/>\nsmbpasswd -a -m pc0<\/p>\n<p>e la macchina viene aggiunta al DB di samba<\/p>\n<p>smbpasswd -a clark<br \/>\nNew SMB password:<br \/>\nRetype new SMB password:<br \/>\nalla richiesta della password inserire quella dell&#8217;utente clark e l&#8217;utente viene aggiunto al DB di samba.<\/p>\n<p>\u00c8 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\u00e0 il tutto.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cluster \u00e8 l&#8217;host pi\u00f9 importante dell&#8217;azienda in cui lavoro, esiste un record DNS che lo identifica con un preciso indirizzo IP, ed \u00e8 in buona sostanza quell&#8217;entita&#8217; che provvede all&#8217;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 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,8,14,11,6],"tags":[],"class_list":["post-804","post","type-post","status-publish","format-standard","hentry","category-cluster","category-linux","category-networking","category-samba","category-work"],"_links":{"self":[{"href":"https:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/posts\/804","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/clark.tipistrani.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=804"}],"version-history":[{"count":2,"href":"https:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/posts\/804\/revisions"}],"predecessor-version":[{"id":814,"href":"https:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/posts\/804\/revisions\/814"}],"wp:attachment":[{"href":"https:\/\/clark.tipistrani.it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=804"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/clark.tipistrani.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=804"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/clark.tipistrani.it\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=804"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}