Linux.samba: Unterschied zwischen den Versionen
Root (Diskussion | Beiträge) |
Root (Diskussion | Beiträge) |
||
Zeile 12: | Zeile 12: | ||
== Konfiguration == | == Konfiguration == | ||
=== Beispiel 1 === | |||
[global] | |||
# System | |||
time server = yes | |||
# Identifikation | |||
workgroup = LUMMERLAND | |||
server string = | |||
netbios name = RAIB91 | |||
# Sicherheit | |||
security = share | |||
guest ok = yes | |||
guest account = nobody | |||
encrypt passwords = yes | |||
null passwords = yes | |||
# Netzwerk | |||
bind interfaces only = yes | |||
interfaces = 192.168.115.91 | |||
hosts allow = 192.168.115.0/255.255.255.0 | |||
# Namensaufloesung | |||
# os level = 99 | |||
wins support = yes | |||
# local master = yes | |||
# domain master = yes | |||
# preferred master = yes | |||
[share$] | |||
comment = Windows SMB Freigabe | |||
path = /srv/smb | |||
browseable = yes | |||
read only = no | |||
writeable = yes | |||
writable = yes | |||
guest ok = yes | |||
locking = no | |||
public = yes | |||
create mode = 777 | |||
directory mode = 777 | |||
[web$] | |||
comment = Windows SMB Freigabe | |||
path = /srv/www/htdocs | |||
browseable = yes | |||
read only = no | |||
writeable = yes | |||
writable = yes | |||
guest ok = yes | |||
locking = no | |||
public = yes | |||
create mode = 777 | |||
directory mode = 777 | |||
=== Beispiel 2 === | |||
<code> | <code> | ||
Zeile 68: | Zeile 125: | ||
</code> | </code> | ||
=== Beispiel 3 === | |||
<code> | <code> |
Version vom 6. März 2008, 10:12 Uhr
samba benutzen wir zur Freigabe von Festplatten-Kapazität für das ganze Netzwerk. Samba nimmt jedoch auch an der Windows-Speziefischen Namensauflösung teil.
Aktivierung
chkconfig --add smb
chkconfig --add nmb
rcnmb start
rcsmb start
Konfiguration
Beispiel 1
[global] # System time server = yes # Identifikation workgroup = LUMMERLAND server string = netbios name = RAIB91 # Sicherheit security = share guest ok = yes guest account = nobody encrypt passwords = yes null passwords = yes # Netzwerk bind interfaces only = yes interfaces = 192.168.115.91 hosts allow = 192.168.115.0/255.255.255.0 # Namensaufloesung # os level = 99 wins support = yes # local master = yes # domain master = yes # preferred master = yes [share$] comment = Windows SMB Freigabe path = /srv/smb browseable = yes read only = no writeable = yes writable = yes guest ok = yes locking = no public = yes create mode = 777 directory mode = 777 [web$] comment = Windows SMB Freigabe path = /srv/www/htdocs browseable = yes read only = no writeable = yes writable = yes guest ok = yes locking = no public = yes create mode = 777 directory mode = 777
Beispiel 2
[global]
# System
log level = 1
time server = yes
unix extensions = yes
character set = ISO8859-15
client code page = 850
veto files = /*.eml/*.nws/riched20.dll/*.{*}/
# Identifikation
workgroup = LUMMERLAND
server string =
netbios name = RAIB64
# Sicherheit
security = share
guest ok = yes
guest account = nobody
encrypt passwords = yes
null passwords = yes
# Netzwerk
bind interfaces only = yes
interfaces = 192.168.115.183
hosts allow = 192.168.115.0/255.255.255.0
socket options = SO_KEEPALIVE IPTOS_LOWDELAY TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
keepalive = 0
# Namensaufloesung
os level = 99
wins support = yes
local master = yes
domain master = yes
preferred master = yes
[web$]
comment = Apache Home
path = /srv/www/htdocs
browseable = yes
read only = no
writeable = yes
writable = yes
guest ok = yes
locking = no
public = yes
create mode = 777
directory mode = 777
Beispiel 3
#
# /etc/samba/smb.conf: (ersetzen bzw. aktivieren, ex sind globale einstellungen!)
[global]
log level = 1
workgroup = Lummerland
server string = Samba
netbios name = LINUX
security = share
# ACHTUNG: Bei >1 Netzwerkkarte ist interfaces zwingend!
interfaces = 192.168.115.92
hosts allow = 192.168.115.0/255.255.255.0
os level = 99
time server = yes
unix extensions = yes
encrypt passwords = yes
null passwords = yes
printing = CUPS
printcap name = CUPS
socket options = SO_KEEPALIVE IPTOS_LOWDELAY TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
keepalive = 0
wins support = yes
local master = yes
domain master = yes
preferred master = yes
guest account = nobody
character set = ISO8859-15
client code page = 850
veto files = /*.eml/*.nws/riched20.dll/*.{*}/
bind interfaces only = yes
guest ok = yes
[homes]
comment = Home Directories
valid users = %S
browseable = no
writeable = yes
create mask = 0640
directory mask = 0750
[printers]
comment = All Printers
path = /var/tmp
printable = yes
create mask = 0600
browseable = no
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @ntadmin root
force group = ntadmin
create mask = 0664
directory mask = 0775
[user]
comment = Benutzer Freigabe
path = /freigabe
browseable = yes
read only = no
writeable = yes
writable = yes
guest ok = yes
locking = no
public = yes
create mode = 777
directory mode = 777
Verzeichnisrechte
nun eine Terminal-Session starten (Symbol mit der Muschel in der Startleiste)
cd / * wechselt ins hauptverzeichnis
mkdir /freigabe * erstellt den Pfad, der freigegeben wird
chmod 0777 -R /freigabe * alle Rechte f?e
rcsmb start * samba nun starten
Wenn später weitere Verzeichnisse freigegeben werden sollen: in einer Terminal Session , samba stoppen:
rcsmb stop
mkdir /<Ihr neues Verzeichnis>
chmod 0777 -R /<Ihr neues Verzeichnis>
nun wieder /etc/smb.conf editieren
neu eingeben (ganz unten)
[NeuerFreigabeName]
comment = "ihr kommentar"
path = /<Ihr neues Verzeichnis>
... Rest wie oben ...
Windows XP
Einbinden (Mappen / Netzlaufwerk verbinden) eines Samba- Shares: Windows Explorer start: Extras, Netzlaufwerk verbinden, Einen freien Laufwerksbuchstaben suchen. Eingeben
\\<smb-Hostname oder smb-IP-Adresse>\<Share oder Freigabename, das ist das Wort in den eckigen Klammern der smb.conf>
Beispiel:
\\raib726\user
Wenn man auf Linux eine samba-Freigabe (einer Linux Maschine) nutzen will
mount -t cifs -o username=fred,password=fred //brutus/User /g
alternativ, wenn Gastzugriffe möglich sind
mount -t cifs //brutus/User /g
wobei "/g" ist das Unterverzeichnis in welches die Freigabe eingehängt wird (muss existieren) fred,fred ist username/pwd die Zugriff zu dieser Freigabe ermöglich, ist die Freigabe public werden die Angaben ignoriert. //brutus der w2k-Server (oder auch ein Linux-Server) /User der Freigabename des Share.
Hier gibt es mehr Info zu cifs: http://pserver.samba.org/samba/ftp/cifs-cvs/linux-cifs-client-guide.pdf
SMB Diagnose
Hochsetzen des Log Levels im /etc/samba/smb.conf:
log level =
Probleme bei der Namensauflösung einkreisen:
nmblookup <ArbeitsgruppenName> smbclient -L localhost -U%
Sicherheit
- durch Interfaces= nur die absolut notwendigen Netze zulassen und sich selbst.
- browseable auf false setzen, damit nicht grad jeder das Share sehen kann.
- Verzeichnisse nur für bestimmte User sichtbar machen. Das Verzeichnis einer Benutzergruppe zuordnen (z.B. mp3users), die Du vorher anlegst und der Du Deine Berechtigten hinzufügen aber nicht den Chef. Die Berechtigungen entsprechend setzen (kein r-x f?ot;nobody") und dazu "hide unreadable = yes" in die Share-Definition.
Details Windows XP
Port 80/445 Problem
Windows XP Professional zeigt nach eigenem Neustart den samba-share als "gestört an (rotes kleines "X" im Symbol). Der erste Zugriff erfolgt im Windows Explorer dann auch nach eine langen Denkpause. Pflichtbewust wurden jedoch die smb Ports 136,137,138,445 geöffnetet, damit gings aber auch nicht.
2. Formulierung des Problems: Alles ging -- ausser bei Windows XP Prof Clients, diese hatten beim ersten Zugriff auf ein smb-Share z.B. im Explorer doppelklick auf den Laufwerksbuchstaben eine "Wartezeit" von ca. 8 Sekunden (hey, das ist verdammt lange). Danach war alles in Butter. Bis zu dem Moment, wo etwa 15 Minuten kein Zugriff auf diesen Share auf diesem Client erfolgte (oder sofort nach einem Neustart des Clients). Danach wieder diese Denkpause.
Die Lösung war: XP Prof SP1 versucht eine Kontaktaufnahme mit dem Samba-Server auf Port 80 (in Worten !achtzig!). Wir hatten das als "Angriff" aus dem internen Netz gewertet und geDROPed. (Auf port 80 haben wir keinen dienst auf unserem Server!). Bis XP gemerkt hatte, dass auf port 80 nix geht, machte es einen Kurzschlaf (eben diese 8 Sekunden).
- Lösung 1: Einen REJECT in der Firewall machen, keinen DROP. Hintergrund: DROP: Paket vernichten, keine Benachrichtigung des Absenders. REJECT: Das Paket wird aktiv abgewiesen, der Absender erhält eine negative Kurzantwort auf das Paket.
- Lösung 2: Den Port 80 öffnen z.B. durch einen Webserver.
Die passenden Ports in der Zusammenfassung
netbios-ns 137/udp # NETBIOS Name Service
netbios-dgm 138/udp # NETBIOS Datagram Service
netbios-ssn 139/tcp # NETBIOS Session Service
microsoft-ds 445/udp # Direct-Hosted Service
microsoft-ds 445/tcp # Direct-Hosted Service
http 80/tcp www www-http # World Wide Web
# nur bei XP Clients notwendig