Creare Pdc Samba su Centos 6
#yum install ntp
Editare file /etc/ntp.conf
# vi /etc/ntp.conf
inserire all'interno del file
server ntp1.inrim.it
server ntp2.inrim.it
Decomentare come segue adattando alla propria rete
# Hosts on local network are less restricted.
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
Avviare servizio ed impostarlo all'avvio
#service ntpd start
#chkconfig ntpd on
Test della funzionalita
#ntpq -p
-------------------------------------------------------------------------------------------
Configurazione Iptables
Editera file /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -s maschera di rete -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
-A RH-Firewall-1-INPUT -s maschera di rete -m state --state NEW -m udp -p udp --dport 445 -j ACCEPT
-A RH-Firewall-1-INPUT -s maschera di rete -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -s maschera di rete -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
-A RH-Firewall-1-INPUT -s maschera di rete -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
#Porta Ntp
-A RH-Firewall-1-INPUT -s maschera di rete -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT
#Porta webmin
-A RH-Firewall-1-INPUT -s maschera di rete -m state --state NEW -m tcp -p tcp --dport 10000 -j ACCEPT
--------------------------------------------------------------------------------------------
Sistemare Samba di default esce versione Samba 3.0.X.
ma abilitando i repository "CentOSPlus" e "contrib"
si puo installare Samba Version 3.3.8-0.52.el5_5.2
quindi editare file /etc/yum.repos.d/CentOS-Base.repo
[centosplus]
enabled=0 ----> 1
[contrib]
enabled=0 ----> 1
--------------------------------------------------------------------------------------------------
Se samba non era installato nel pc eseguire dopo aver ablitato i repo
# yum install samba-common samba samba-doc samba-client
Per configurare Samba si deve editare il file /etc/samba/smb.conf nel seguente modo:
(Le righe che cominciano con un "#" indicano un commento)
[global]
# 'workgroup' indica il nome del dominio per la rete windows.
workgroup = NOME_DEL_DOMINIO
# 'netbios name' deve essere uguale all'hostname di sistema.
netbios name = NOME_SERVER
server string = %h STRINGA DI DESCRIZIONE - %v VERSIONE
passdb backend = tdbsam
security = user
username map = /etc/samba/smbusers
name resolve order = wins bcast hosts
domain logons = yes
domain master = yes
preferred master = yes
local master = yes
os level = 64
wins support = yes
time server = yes
encrypt passwords = yes
# 'host allow' specifica da quali IP o reti è possibile fare il login
hosts allow = 127.0.0.1 192.168.0.0/255.255.255.0
printcap name = CUPS
printing = CUPS
# 'logon drive' indica la letterà dell'unita con la quale sarà identificata la condivisione Samba negli ambienti Windows.
logon drive = S:
# 'logon script' serve per specificare uno script batch che viene eseguito quando una workstation Windows effettua il login.
logon script = scripts/logon.bat
logon path = \\NOME_SERVER\profiles\%U
# 'logon home' definisce la posizione del file .profile (per client Win9x/ME) in \\nomeserver\nomeutente
logon home = \\%L\%U\
add user script = /usr/sbin/useradd -m %u
delete user script = /usr/sbin/userdel -r %u
add group script = /usr/sbin/groupadd %g
delete group script = /usr/sbin/groupdel %g
add user to group script = /usr/sbin/usermod -G %g %u
# Aggiunge automaticamente al sistema l'account di una nuova macchina che entra nel dominio,attenzione: il gruppo 'Workstation' deve essere già presente nel sistema.
add machine script = /usr/sbin/useradd -d /dev/null -g Workstation -s /bin/false -M %u
idmap uid = 15000-20000
idmap gid = 15000-20000
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNI\spassword:*%n\n .
passwd chat debug = yes
# 'unix password sync' serve per mantenere sincronizzate le password di Samba e degli account Linux
# Attenzione, vengono sincronizzate le password Linux rispetto le password Samba,
# questa procedura non funziona al contrario:
# se si cambia con passwd una password Unix,
# si dovrà cambiarla a mano con smbpasswd per tenere
# sincronizzata la password Unix con la password Samba.
unix password sync = yes
# set the loglevel
log level = 3
[homes]
comment = Home directory
valid users = %S
read only = no
browsable = no
writeable = yes
[printers]
comment = All Printers
path = /var/spool/samba
printable = yes
guest ok = yes
browsable = no
[netlogon]
comment = Network Logon Service
path = /home/samba/netlogon
admin users = Administrator
valid users = %U
read only = yes
browseable = no
[profiles]
comment = User profiles
path = /home/samba/profiles
valid users = %U
create mode = 0600
directory mode = 0700
writable = yes
browsable = no
---------------------------------------
Avviare servizi smb, nmb ed impostarli all'avvio
#service smb start
#service nmb start
#chkconfig smb on
#chkconfig nmb on
Configurazione Selinux
Con questo comando visualizziamo le boolean disponibili per samba
# getsebool -a | grep samba
Diamo samba possibilita di essere domain controller
#setsebool -P samba_domain_controller on
Abilitiamo la directory home
#setsebool -P samba_enable_home_dirs on
#setsebool -P use_samba_home_dirs on
Dopo aver correttamente configurato Samba, effettuando le eventuali modifiche in base alle proprie esigenze è necessario creare le directory per i profili di dominio.
mkdir /home/samba
mkdir /home/samba/netlogon
mkdir /home/samba/profiles
chown -R root:users /home/samba/
chmod -R 771 /home/samba/
---------------------------------------------
io ho fatto questa modifica al file
nano /etc/default/useradd
ho modificato la cartella dove vengono creati gli utenti da "home" a /home/samba/profiles
in questo modo l'utente viene creato direttamente nella cartella giusta,
---------------------------------------------------------------------------------------------------
Ora che Samba è correttamente configurato è necessario impostare qualche altro parametro nel server. Si deve modificare il file /etc/nsswitch.conf cambiando la linea:
hosts: files dns
con:
hosts: files wins dns
Dopo aver configurato quanto riguarda la risoluzione dei nomi nella rete è necessario configurare gli utenti del sistema. L'utente root si può usare com utente amministratore di Samba. Per fare ciò è necessario aggiungerlo agli utenti di samba:
smbpasswd -a root
Si può creare un alias dell'utente root usando il nome utente Administrator editando il file /etc/samba/smbusers ed aggiungendo la linea:
echo "root = Administrator" > /etc/samba/smbusers
Si può testare il corretto funzionamento del sistema tramite il seguente comando:
smbclient -L localhost -U%
L'output dovrebbe essre qualcosa del tipo:
Domain=[NOME_DOMINIO] OS=[Unix] Server=[Samba 3.0.22]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service
ADMIN$ IPC IPC Service
Domain=[NOME_DOMINIO] OS=[Unix] Server=[Samba 3.0.22]
Server Comment
--------- -------
NOME_SERVER DESCRIZIONE_SERVER
Workgroup Master
--------- -------
NOME_DOMINIO NOME_SERVER
Se tutto è corretto si possono configurare i gruppi del sistema Linux con i gruppi per windows:
#> net groupmap add ntgroup="Domain Admins" unixgroup=root rid=512 type=d
#> net groupmap add ntgroup="Domain Users" unixgroup=users rid=513 type=d
#> net groupmap add ntgroup="Domain Guests" unixgroup=nobody rid=514 type=d
Ora il sistema base è configurato. Si può passare alla fase di gestione degli utenti, delle condivisioni e delle stampanti.
Per aggiungere degli utenti al dominio gestito da Samba bisognerà prima creare l'utente nel sistema GNU/Linux:
useradd NOME_UTENTE -m -G GRUPPO_UTENTE
e successivamente aggiungere l'utente appena creato al database di Samba:
smbpasswd -a NOME_UTENTE
chown NOME_UTENTE /home/samba/profiles/NOME_UTENTE -R
Per aggiungere una condivisione si deve prima creare la directory da condividere:
mkdir -p /PERCORSO/DIRECTORY/DA/CONDIVIDERE
Sucessivamente si devono impostare i permessi di lettura/scrittura. Ad esempio:
chown -R root:users /PERCORSO/DIRECTORY/DA/CONDIVIDERE
chmod -R ug+rwx,o+rx-w /PERCORSO/DIRECTORY/DA/CONDIVIDERE
Si deve infine aggiungere la condivisione nel file /etc/samba/smb.conf inserendo:
[allusers]
comment = All Users
path = /PERCORSO/DIRECTORY/DA/CONDIVIDERE
valid users = @users
force group = users
create mask = 0660
directory mask = 0771
writable = yes
Si deve riavviare Samba per caricare le nuove impostazioni:
service smb restart
Sarà necessario agganciare al PDC ogni computer al domino. Per fare questo si deve prima creare un gruppo per tutte gli account associati ai computer:
groupadd Workstation
E poi aggiungere il server al nuovo gruppo "i client vengono aggiunti in automatico" questa operazione serve anche per non avere un errore quando si farà il join del domino
useradd -g Workstation -d /dev/null -s /bin/false NOME_PC_NETBIOS$
Per motivi di sicurezza si blocca la password dell'account:
passwd -l NOME_PC_NETBIOS$
Come per gli utenti, anche per gli account dei computer si deve impostare l'account su Samba:
smbpasswd -a -m NOME_PC_NETBIOS
Per unire il server al dominio e creare l'utente relativo al pc è necessario dare il seguente comando:
net rpc join -D dominio.local -U Administrator%password
creiamo lo script con l'editor che preferiamo
nano /home/samba//netlogon/logon.bat
inseriamo:
net time %LOGONSERVER% /set /yes
net use X: \\SERVER\Nome_Condivisione
installiamo
yum install unix2dos
adesso convertiamo il file logon.bat
unix2dos /home/samba/netlogon/logon.bat
Su Windows 7 Professional o Ultimate (gli unici che possono effettuare un join a un dominio) occorre modificare due chiavi di registro:
HKLM\System\CCS\Services\LanmanWorkstation\Parameters
DWORD DomainCompatibilityMode = 1
DWORD DNSNameResolutionRequired = 0
se volete utilizzare webmin per la gestione del server
nano /etc/yum.repos.d/webmin.repo
[Webmin]
name=Webmin Distribution Neutral
#baseurl=http://download.webmin.com/download/yum
mirrorlist=http://download.webmin.com/download/yum/mirrorlist
enabled=1
rpm --import
http://www.webmin.com/jcameron-key.ascyum install webmin
sono bene accette qualunque tipo miglioramenti per rendere una configurazione completa e funzionante al 100%.