3. Samba 3
Samba?
● Windows Network Neighbourhood
– SMB protocol
● Samba-project = “clean-room”
implementatie van SMB
● Gebruikt in:
– File/printserver in bedrijfsomgevingen
– Netwerkschijven/NAS-systemen voor
consumentenmarkt
4. Samba 4
Let op!
● Bij het volgen van HOWTO's op het web:
– Nooit SELinux uitzetten
– Nooit firewall uitzetten
– Nooit “security = share” instellen
5. Samba 5
Requirements
● Host “NASBOX” in netwerk "TESTLAN" met shares:
– public
● voor iedereen leesbaar, zonder inloggen
● schrijfrechten voor geregistreerde gebruikers na inloggen
– private
●
enkel toegankelijk (met schrijfrechten) voor geregistreerde
gebruikers
– Geregistreerde gebruikers hebben schrijftoegang tot
elkaars bestanden
– Home directory van gebruikers toegankelijk
– Twee geregistreerde gebruikers: “alice” en “bob”
6. Samba 6
Voorbereiding
●
Hostnaam:
– /etc/sysconfig/network
– /etc/hosts
– en herstarten
●
Packages installeren
– sudo yum install samba samba-client
●
Groep aanmaken
– sudo groupadd nasusers
●
Gebruikers aanmaken (& test inloggen!)
– sudo useradd -m -G nasusers alice
– sudo useradd -m -G nasusers bob
7. Samba 7
Voorbereiding
● Gebruikerswachtwoorden:
– passwd (Linux account)
– smbpasswd [-a] (Samba account)
– beide zijn nodig, worden apart beheerd!
● Gedeelde mappen aanmaken
– /srv/shares/public en /srv/shares/private
– eigendom van groep nasusers
– schrijfbaar voor groepleden
8. Samba 8
SELinux
● = ”Security Enhanced” Linux
– Extra beveiliging, ingebakken in kernel
– Open source project opgestart door NSA
– Nu standaard in RedHat, Fedora, CentOS, ...
● Aan- en uitzetten:
– sestatus
– /etc/sysconfig/selinux
9. Samba 9
SELinux
● Algemene SELinux instellingen
– getsebool [-a]
– setsebool [-P] SETTING=val
– vb.
setsebool -P samba_enable_home_dirs on
setsebool -P samba_export_all_rw on
● Context: extra permissies op bestanden
– vastgelegd a.h.v. “policies”
/etc/selinux/targeted/contexts/files/
file_contexts
– opvragen: ls -Z
11. Samba 11
Samba configuratie
● /etc/samba/smb.conf
– Structuur .ini-bestand:
[sectie]
# Uitleg in commentaar
var1 = val1
var2 = val2
; var3 = val3 (in commentaar)
– Na elke wijziging (en/of):
service smb restart
service nmb restart
12. Samba 12
Pro Tips
● Maak backup van origineel en eventueel ook telkens
van laatst werkende versie
● Kleine veranderingen
– Valideer telkens configuratie: testparm -s [CONFIG]
– Controleer telkens resultaat
● Volg de logs!
– /var/log/samba/*
– /var/log/messages
– /var/log/audit/audit.log (SELinux)
● Verwijder onnodige commentaar
13. Samba 13
Pro Tips
● Let op bij combineren HOWTO's
– verschillende manieren om zelfde configuratie
toe te passen (zie man smb.conf), vb.:
writable = no
read only = yes
– voor je't weet heb je tegenstrijdige configuratie
– controleer resultaat met testparm en pas zo
nodig configbestand aan
14. Samba 14
Firewall-instellingen
● Controleer eerst de open poorten:
sudo netstat -tulnp
– TCP: 139, 445 (smbd)
– UDP: 137, 138 (nmbd)
● /etc/sysconfig/iptables
– na wijzigen: service iptables restart
15. Samba 15
Testen
● WINS name resolution
– Zodat "nasbox" in Windows Explorer werkt
– nmblookup -B SERVER '*'
– nmblookup -d 2 '*'
● Lijst van publiek gedeelde mappen
– smbclient -L //localhost -U%
– smbclient -L //IPADRES -U%
– smbclient -L //nasbox -U%
16. Samba 16
Toegang shares testen
● Als gast
smbclient //nasbox/public -U%
● Geregistreerde gebruiker:
smbclient //nasbox/public -Ualice
● Eerst lokaal, dan vanop hostsysteem
– Windows Explorer: vb. nasboxpublic
– "Map network drive"
– net use x: nasboxpublic
17. Samba 17
Toegang shares testen
● Linux hostsysteem:
– File manager > Connect to server of Ctrl + L
– Als gast: smb://nasbox/public
– Gebruiker: smb://alice@nasbox/public
– Opgelet voor firewall!
● "samba-client" toelaten, of poorten 137, 138 UDP
18. Samba 18
Toegang shares testen
● Aanbevolen: smbclient
– meest flexibel
– kan je scripten (tests automatiseren!)
– geeft beste foutboodschappen
19. Samba 19
Smbclient
● Overzicht gedeelde mappen:
– als gast: smbclient -L //nasbox -U%
– gebruiker: smbclient -L //nasbox -Ualice
● Inloggen op een share
– als gast: smbclient //nasbox/public -U%
– gebruiker: smbclient //nasbox/public -Ualice
● "commando-shell"
– ls, cd, pwd, mkdir, rmdir, del, chmod, chown, enz.
– get pub.txt, mget *.txt
– put somefile.txt, mput *.txt
– exit (of Ctrl+D)
20. Samba 20
Schrijftoegang
● Moet op verschillende niveaus kloppen!
– Linux bestandspermissies
– Samba configuratie
(vb. write list, writeable, valid users)
– SELinux-instellingen
(setsebool en semanage fcontext)
21. Samba 21
Meer info
● RedHat 6 Deployment Guide, hst 19.1 "Samba"
https://access.redhat.com/site/documentation/en-
US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/ch-
File_and_Print_Servers.html#s1-Samba
● The Official Samba 3.5.x HOWTO and Reference Guide, hst 38
"The Samba Checklist"
https://www.samba.org/samba/docs/man/Samba-HOWTO-
Collection/diagnosis.html
● man smb.conf
https://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html
● CentOS Wiki: HowTo SELinux
http://wiki.centos.org/HowTos/SELinux
● SELinux for mere mortals (Thomas Cameron)
http://www.youtube.com/watch?v=MxjenQ31b70