venerdì 19 ottobre 2007

HOWTO: Configurare una rete mista con Linux e Windows

Questa guida è rivolta a coloro che volessero cimentarsi nell’impresa di configurare una rete mista e che abbiano un minimo di conoscenza di Linux.
Partiamo dal presupposto che i sistemi operativi siano installati e scegliamo come server un pc con Linux sul quale dovremo installare Samba che ci consentirà di condividere files e hardware all’interno della nostra rete.
Samba è un servizio di rete che implementa appunto il protocollo SMB (Server Message Block) il quale fa in modo che un pc linux compaia all’interno della rete come un qualsiasi pc windows.
Samba non viene installato automaticamente( tranne che su qualche distribuzione ad es. Red Hat) ma si trova quasi sempre all’interno di tutte le distribuzioni o si può scaricare dal sito www.samba.org e si installa molto semplicemente:

rpm -Uhv samba*.rpm
NB.I pacchetti rpm si possono prendere dal sito succitato nella sezione 'binaries', scegliendo successivamente di entrare nella dir della distrubuzione scelta (ad esempio Fedora/RPMS/i386/core/3/)...
Dopo l’installazione dobbiamo verificare che nel file /etc/services siano presenti le porte riservate a Samba
netbios-ns137/tcp# NETBIOS Name Service
netbios-ns137/udp
netbios-dgm138/tcp# NETBIOS Datagram Service
netbios-dgm138/udp
netbios-ssn139/tcp# NETBIOS session service
netbios-ssn139/udp
e che siano avviati i due demoni SMBD (configurazione di Samba) e NMBD (per la gestione e distribuzione delle risorse di rete) Per verificare ciò basta digitare ps -ef | grep mbd e verificare che ci siano le due linee con scritto 'smbd –D' e 'nmbd –D'. Qualora non fossero presenti basta inserirle in uno dei file di init (/etc/rc.d/rc.local).

A questo punto dovremo andare a modificare il file smb.conf che si trova nella directory /etc (è superfluo puntualizzare che bisogna essere superuser e non semplice utenti)

[global]
E' la sezione generale e forse la piu' importante del file, un esempio e':
[global]
workgroup = gruppo_di_lavoro (il nome assegnato al nostro gruppo di lavoro sotto windows)
hosts allow = inserire l’ip di rete ed eventualmente il loopback (127.0.0.1) (solo i computer della rete locale avranno accesso alle risorse)
guest account = nobody (definisce il nome di utente al quale consentire l’accesso ai servizi)
printing = bsd (assegnando questa stringa Samba utilizza lpr per le stampe)
printcap name = /etc/printcap (il percorso del file linux con le specifiche per le stampanti)
encrypt passwords = yes
netbios name = inserire il nome netbios della nostra macchina cioè quello con cui la vedremo condivisa in rete
interfaces = inserire l’indirizzo ip e la subnet della nostra rete che non deve essere quello con cui ci si connette ad internet
os level = 34

Gestione dominio
domain master = yes
local master = yes
preferred master = yes

La directory temporanea
[tmp]
path = /tmp
public = yes
printable = no
guest ok = yes
writable = yes

[homes]
Questa sezione (opzionale) permette agli utenti loggati sulla macchina Windows di accedere alla loro Home Directory Linux.
[homes]
Comment = Home directory
browsable = yes (permettiamo che la risorsa venga visualizzata da tutti)
read only = no
printable = no
create mode = 0750 (tipo di permessi per ogni file creato dall'utente dalla macchina windows)
[public]
comment = Directory Pubblica
path = /dir/shared
browsable = yes
read only = no
public = yes
create mode = 0777
La directory /dir/shared sara' utilizzabile e visibile da tutti e sarà creata in precedenza col comando mkdir /dir/shared e i permessi per tutti chmod a+rwx /dir/shared.

[lp]
comment = Stampante Pubblica
path = /var/spool/samba
browsable = yes
printable = yes
writable = no
public = yes
La condivisione di hardware
[cdrom] # condividere il CDROM
comment = Linux CD-ROM
path = /cdrom (in altre distro potrebbe essere /mnt/cdrom oppure più precisamente/media/cdrom o /media/cdrecorder se è un masterizzatore)
read only = yes
browseable = yes
guest ok = yes

logon
[netlogon]
comment = Fornisce il servizo di Logon alla rete
path = /etc/samba/netlogon
guest ok = yes
writable = no
locking = no
public = no
browseable = yes
share modes = no

Al termine delle modifiche al file smb.conf si testa la configurazione con il comando testparm
Adesso dobbiamo riavviare i servizi smbd e nmbd con i comandi:
smbd restart && nmbd restart
Sotto fedora (e redhat) si usa
service smb restart
Adesso tutte le macchine Windows saranno in grado di "vedere" la macchina Linux come se fosse un loro simile.
Per coloro che vogliono una configurazione rapida di samba, possono installare i moduli di Webmin o ricorrete all'utilizzo di SWAT. Entrambi quest'ultimi sono strumenti per la configurazione basati su di una interfaccia grafica, che permettono una configurazione guidata ma che senza la consultazione dell’help risulta un po’ ostica.
Per connettersi al server swat bisogna digitare:
http://127.0.0.1:901
mente per webmin la porta è la 10000
Configurazione dei client
La configurazione di un sistema Windows per unirsi ad un dominio((Si definisce dominio un insieme di computer in cui la gestione della sicurezza é affidata ad una entità centrale, chiamata PDC), varia a seconda della versione:

Windows 95/98/ME:
- Verificare che sia installato il "Client per Reti Microsoft" fra le proprietà di rete
- Assicurarsi che il Client per Reti Microsoft sia selezionato come protocollo di rete primario (Pannello di Controllo -> Rete -> Logon di rete primario).
- Andare su Pannello di Controllo -> Rete -> Client per reti Microsoft -> Proprietà -> Logon su Dominio NT.
- Se si è configurata su smb.conf l'opzione "add user script", selezionare il checkbox Crea un Computer Account, altrimenti creare a mano sul server Samba un utente con il nome della macchina Windows.
- Inserire il nome del proprio dominio e cliccare OK.

Windows NT:
- Andare su Pannello di Controllo -> Rete -> Identificazione Rete -> Proprietà
- Selezionare Dominio e inserire il nome del prorio dominio
- Selezionare Crea un Computer Account
- Alla richiesta della password di un amministratore inserire la login e la password di root, ricordarsi che l'utente root deve essere aggiunto a smbpasswd.
- Se i passaggi sono corretti dovrebbe comparire un messaggio che ci da il benvenuto sul dominio.

Windows 2000:
Le procedure sono uguali a quelle per Windows NT tranne che i settaggi di rete sono trovati sotto Pannello di Controllo -> Sistema -> Identificazione Rete (oppure, sul Desktop, cliccare col tasto destro del mouse sull'icona Risorse del Computer, selezionare Proprietà, cliccare sulla tab Identificazione Rete e sul tasto Proprietà).

Windows XP:
Notare che solo XP Professional Edition può essere usato per far parte di un dominio, Windows XP Home Edition non può far parte di un dominio .
- Ciccare su Start->Pannello di controllo->Strumenti di Aministrazione->Criteri di protezione locali->Criteri locali->opzioni di protezione
- Disabilitare la voce Membro di dominio: aggiunta crittografia o firma digitale ai dati del canale protetto (sempre)
- Disabilitare la voce " Controller di dominio: rifiuta cambio password account computer”
- Disabilitare la voce " (Membro di dominio: richiesta chiave di sessione avanzata (Windows 2000 o versioni successive)” )
- Scaricare da Samba.org (http://de.samba.org/samba/ftp/docs/Registry/WinXP_SignOrSeal.reg) la patch per il registro WinXP_SignOrSeal. Per applicarla cliccare due volte sul file .reg e rispondere Si alle domande
- A questo punto ci si può unire al dominio come su Windows NT/2000: Tasto destro su Risorse del Computer, selezionare Proprietà, Nome del Computer e tasto Modifica .
Per connettersi ad una condivisione Samba da una macchina Microsoft Windows, usare Network Neighborhood o il file grafico manager.

Linux/Unix:
Anche dei sistemi Linux, ovviamente, possono unirsi ad un dominio con un PDC Samba (primary domain controller e contiene ad esempio l'elenco dei nomi dei client, le rispettive password, il gruppo di appartenenza, ecc...) e se sono dei file server, si può configurare Samba per permettere l'autenticazione tramite il dominio (vedi gestione dominio).
Ovviamente sul PDC Samba deve essere creato un computer account per il nostro Samba locale (con il nome specificato in netbios name) e, anche in questo caso, il computer locale deve preventivamente unirsi al dominio, con una procedura che è paragonabile a quelle viste sopra per client Windows. Sul Linux/Unix locale basta scrivere:
smbpasswd -j -r -U root
E fornire la password di root del PDC Samba.
Come eseguire operazioni sui file condivisi da una macchina Windows:
Se si desidera accedere alle risorse condivise come se fossero parte del filesystem non come una risorsa esterna si dovrà "montare" la risorsa.
Smbmount, che è un demone ed è equivalente al comando mount -t smbfs. Per utilizzarlo è necessario aver compilato i sorgenti assicurandosi che nel configure si sia abilitata l'opzione --with-smbmount e bisogna accertarsi che il kernel abbia abilitato il supporto per il filesystem smb/cifs. Si esegue digitando smbmnt.
Vediamo la sintassi e le opzioni possibili più significative:
smbmount servizio punto_di_mount [ -o opzioni ]
Le opzioni si specificano separate con una virgola e con il modello chiave=valore, le più importanti sono:
username=arg: Permette di specificare un utente con il quale accedere alla risorsa. Se non specificato verrà utilizzato l'utente dato dalle variabili di ambiente. Supporta anche l'uso di sintassi come user%password o user/workgroup o anche user/workgroup%password. password=arg: Permette di specificare una password.
credentials=nome_del_file: Permette di definire un file esterno per la specifica dell'utente e della password.
netbiosname=arg: Permette di specificare un nome netbios per la sorgente. Se non specificato viene usato il nome dell'host locale.
uid=arg: Permette di specificare un utente che sarà proprietario per tutti i file presenti nella risorsa, si può specificare usando l'id numerico per l'utente o il suo nome.
gid=arg: Permette di specificare il gruppo propietario per tutti i file della risorsa montata. Si può definire per id o per nome. port=arg: Specifica una porta diversa dalla standard 139 per comunicare con la risorsa remota.
fmask=arg: Definisce i permessi dei file della risorsa montata. Se non specificato si usa la umask corrente.
dmask=arg: Come sopra ma per le directory.
ip=arg: Setta l'ip o il nome dell'host remoto a cui ci si vuole connettere.
workgroup=arg: Permette di specificare il workgroup a cui si riferisce la risorsa condivisa da montare.
rw: Monta la risorsa in read and write mode.
ro: Monta la risorsa in read-only mode
Un esempio:
smbclient -L nome_server_ms_windows
o
smbclient -L nome_server_ms_samba
per visualizzare la lista delle risorse condivise dal servente;
oppure:
smbclient nome_servizio [-U nominativo_utente]
per connettersi alla risorsa nome_servizio (ad esempio //serversamba/cart_condivisa).
Se l’utente linux non è configurato sulla macchina può utilizzare uno username configurato e relativa password.
#smbmount //serversamba/cart_condivisa /mnt/dirsamba -o username=utente%pwd
Una volta montata la risorsa la si può smontare con smbumount ( Il superuser potrà comunque smontare le risorse con umount).
Non ha opzioni e la sua sintassi è:
smbumount punto_di_mount.
Ad esempio:
# smbmount //serversamba/cartella_condivisa /mnt/dirsamba
Per connettervi da un sistema Linux
digitate quanto segue al prompt della shell:
smbclient //hostname/sharename -U username
È necessario sostituire nome dell'host con il nome dell'host o l'indirizzo IP del server Samba a cui volete connettervi, nome di condivisione con il nome della directory che volete visitare e nome utente con il nome utente Samba per il sistema. Inserite la password corretta oppure premete [Invio], nel caso non sia richiesta alcuna password per l'utente.

Fonti:
openskills.info/index-it.php per la parte relativa alla configurazione dei client e delle operazioni sui files condivisi
www.webmasterpoint.org/home.asp
www.webmin.com
www.samba.org
www.esa-net.it/article.php?sid=38
Informazioni dettagliate su come configurare Samba con la Red Hat:
www.europe.redhat.com/documentation/rhl9/rhl-cg-it-9/ch-samba.php3

Nessun commento: