Linux.samba: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 1: | Zeile 1: | ||
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. | 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 == | |||
<code> | |||
chkconfig --add smb | |||
chkconfig --add nmb | |||
rcnmb start | |||
rcsmb start | |||
</code> | |||
== Konfiguration == | |||
<code> | |||
# | |||
# /etc/samba/smb.conf: (ersetzen bzw. aktivieren, ex sind globale einstellungen!) | |||
[global] | [global] | ||
log level = 1 | log level = 1 | ||
Zeile 40: | Zeile 51: | ||
create mask = 0640 | create mask = 0640 | ||
directory mask = 0750 | directory mask = 0750 | ||
[printers] | [printers] | ||
comment = All Printers | comment = All Printers | ||
Zeile 47: | Zeile 58: | ||
create mask = 0600 | create mask = 0600 | ||
browseable = no | browseable = no | ||
[print$] | [print$] | ||
comment = Printer Drivers | comment = Printer Drivers | ||
Zeile 55: | Zeile 66: | ||
create mask = 0664 | create mask = 0664 | ||
directory mask = 0775 | directory mask = 0775 | ||
[user] | [user] | ||
comment = Benutzer Freigabe | comment = Benutzer Freigabe | ||
Zeile 70: | Zeile 79: | ||
create mode = 777 | create mode = 777 | ||
directory mode = 777 | directory mode = 777 | ||
</code> | |||
== Verzeichnisrechte == | |||
nun eine Terminal-Session starten (Symbol mit der Muschel in der Startleiste) | |||
<code> | |||
cd / * wechselt ins hauptverzeichnis | cd / * wechselt ins hauptverzeichnis | ||
mkdir /freigabe * erstellt den Pfad, der freigegeben wird | mkdir /freigabe * erstellt den Pfad, der freigegeben wird | ||
chmod 0777 -R /freigabe * alle Rechte f?e | chmod 0777 -R /freigabe * alle Rechte f?e | ||
rcsmb start * samba nun starten | rcsmb start * samba nun starten | ||
</code> | |||
Wenn später weitere Verzeichnisse freigegeben werden sollen: in einer Terminal Session , samba stoppen: | |||
<code> | |||
rcsmb stop | rcsmb stop | ||
mkdir /<Ihr neues Verzeichnis> | mkdir /<Ihr neues Verzeichnis> | ||
Zeile 87: | Zeile 105: | ||
path = /<Ihr neues Verzeichnis> | path = /<Ihr neues Verzeichnis> | ||
... Rest wie oben ... | ... Rest wie oben ... | ||
</code> | |||
== 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 | |||
== Linux benutzt ein Samba Share == | == Linux benutzt ein Samba Share == |
Version vom 11. Dezember 2006, 11:51 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
#
# /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 smbfs -o username=fred,password=fred //brutus/User /g
alternativ, wenn Gastzugriffe möglich sind
mount -t smbfs //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.
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