SpaceRat
24.04.2014, 20:01
Hallo.
Ich habe mir mal ein paar Gedanken zum Samba/CIFS auf der Box gemacht.
Finde ich es unschön, daß die /etc/samba/smb.conf nicht Bestandteil einer Einstellungssicherung ist und auch manuelles Zufügen zur Einstellungssicherung weitgehend sinnfrei ist, da diese Datei nachträglich vom Paket "enigma2-plugin-network-server" gekillt wird.
Eigentlich kann opkg ipks installieren und Konfigurationsdateien dabei nur optional schreiben, d.h. wenn es eine smb.conf schon gibt, würde die default config aus dem ipk als smb.conf.opkg geschrieben und die originale bliebe unversehrt ...
Noch blödsinniger ist es, daß "enigma2-plugin-network-server" den Samba-Server nur installiert, aber nicht aktiviert ...
Generell braucht kein Mensch mehr nmbd
nmbd ist ein Server, der Anfragen zu NetBIOS-über-IP-Namensdiensten verstehen und beantworten kann.
NetBIOS-over-TCP/IP oder kurz NBT wurde von DOS inkl. WinDOS 3.95, 3.98, 3.98SE und 4.0 (aka Windows 95, 98, 98SE, ME), Windows NT 3.xx/4.0 und OS/2 verwendet ... allesamt Clients die heutzutage noch zuhauf im Heimnetzwerk stehen .... ;)
Auch nur halbwegs aktuelle Linux-Clients (Inkl. der Uralt-Sambas auf den E2-Boxen) und Windows-Versionen "Windows 2000" und höher packen NBT nur noch mit der Kneifzange an und das auch nur, wenn man sie dazu zwingt.
Mit anderen Worten: Der nmbd läuft in den allermeisten Umgebungen völlig sinnfrei und ungenutzt auf der Box und verplempert CPU-Zeit und RAM mit Nichtstun.
Wenn irgendjemand wirklich noch einen DOS-Client oder eine Metabox (Läuft unter OS/2) rumfliegen haben sollte, dann könnte er den nmbd immer noch aus einem getrennten Paket nachinstallieren oder nachaktivieren.
IPv6-Tauglichkeit
Der verwendete Samba 3.0.37 ist nicht IPv6-tauglich. Es gibt zwar einen IPv6-Patch (von AVM) für Samba 3.0.37, ich habe allerdings den gepatchten Samba nicht kompiliert bekommen.
Nun ist IPv6 für den Samba nicht wirklich wichtig, solange die E2-Box eh nicht IPv6-only laufen kann, ich verspreche mir aber von der Nutzung von IPv6 eine höhere Zuverlässigkeit der MyFritz!-Adresse (Der MyFritz!-Dienst aus der Fritz!Box "vergißt" gelegentlich, die Zuordnung MyFritz!-Name<>Gerät aufrecht zu halten, wenn die Fritz!Box den Client für inaktiv hält. Nach meinen Beobachtungen wird diese Zuordnung umso stabiler, je mehr - auch LAN-internen - IPv6-Traffic die Box verursacht.
Nun ist es so, daß sich auch Samba durch einen Trick zumindest für eingehende Verbindungen IPv6-tauglich machen läßt, indem man den smbd einfach über inetd startet ...
Daraus ergeben sich folgende Vorschläge, die man auch ohne Neubau eines Images leicht vorab testen kann:
Löschen von /etc/etwork/if-up.d/01samba-start
=> nmbd und smbd werden nicht mehr als Daemons gestartet
/etc/inetd.conf um "microsoft-ds stream tcp6 nowait root /usr/sbin/smbd smbd" ergänzen
Ergebnis:
# /etc/inetd.conf: Internet superserver configuration database
#
# <service_name> <sock_type> <proto> <flags> <user> <server_path> <args>
#
8001 stream tcp6 nowait root /bin/streamproxy streamproxy
ftp stream tcp6 nowait root /usr/bin/vsftpd vsftpd
telnet stream tcp6 nowait root /usr/sbin/telnetd telnetd -i
ssh stream tcp6 nowait root /usr/sbin/dropbear dropbear -i
microsoft-ds stream tcp6 nowait root /usr/sbin/smbd smbd
optional könnte man noch folgende Zeilen zufügen:
#netbios-ns dgram udp wait root /usr/sbin/nmbd nmbd
#netbios-ssn stream tcp nowait root /usr/sbin/smbd smbd
dies sind die für NBT benötigten Dienste.
Da diese heutzutage eh nicht mehr benutzt werden,
- braucht es hier kein tcp6 oder udp6, die Clients die noch NBT benötigen können eh kein IPv6
- können die Zeilen auskommentiert bleiben, so sind sie für diejenigen, die sie unbedingt noch brauchen, schon da und können schnell aktiviert werden, belasten aber das System bei allen anderen nicht.
/etc/samba/smb.conf vor Überschreiben schützen
Dazu muß das ipk wie folgt geändert werden:
1. Eine Datei namens conffiles mit folgendem Inhalt erzeugen:
/etc/samba/smb.conf
2. Diese Datei "conffiles" zusammen mit der Datei "control" in die control.tar.gz packen
Ergebnis:
Offene Server-Ports:
Topf:/# netstat -lnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:41046 0.0.0.0:* LISTEN
tcp 0 0 :::8001 :::* LISTEN
tcp 0 0 :::16200 :::* LISTEN
tcp 0 0 :::80 :::* LISTEN
tcp 0 0 :::21 :::* LISTEN
tcp 0 0 :::22 :::* LISTEN
tcp 0 0 :::23 :::* LISTEN
tcp 0 0 :::443 :::* LISTEN
tcp 0 0 :::445 :::* LISTEN
bzw. mit Namen:
Topf:/# netstat -lt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:41046 0.0.0.0:* LISTEN
tcp 0 0 :::8001 :::* LISTEN
tcp 0 0 :::16200 :::* LISTEN
tcp 0 0 :::www :::* LISTEN
tcp 0 0 :::ftp :::* LISTEN
tcp 0 0 :::ssh :::* LISTEN
tcp 0 0 :::telnet :::* LISTEN
tcp 0 0 :::https :::* LISTEN
tcp 0 0 :::microsoft-ds :::* LISTEN
microsoft-ds (= SMB over TCP) ist der einzige Port, den Samba wirklich benötigt!
= vollständiger IPv6-Support. Alle Dienste der Box sind direkt mit IPv6 nutzbar.
Verbindungen:
Topf:/# netstat -t
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 Topf.fritz.box:microsoft-ds pc.fritz.box:10334 ESTABLISHED
tcp 0 0 Topf.fritz.box:microsoft-ds Ultimo.fritz.box:59540 ESTABLISHED
tcp 0 0 Topf.fritz.box:https pc.fritz.box:10315 ESTABLISHED
tcp 0 208 Topf.fritz.box:ssh pc.fritz.box:10328 ESTABLISHED
tcp 0 0 Topf.fritz.box:45188 Ultimo.fritz.box:10005 ESTABLISHED
tcp 0 0 Topf.fritz.box:56228 fritz.box:10005 ESTABLISHED
Oder mit IPs, damit's klarer wird :) :
Topf:/# netstat -nt
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 fd07:1234:d015:affe:23e:9eff:fe10:3a5b:445 fd07:1234:d015:affe:96de:80ff:fe6c:789a:10334 ESTABLISHED
tcp 0 0 ::ffff:192.168.1.17:445 ::ffff:192.168.1.16:59540 ESTABLISHED
tcp 0 0 2001:db8:2345:0:23e:9eff:fe10:3a5b:443 2001:db8:2345:0:96de:80ff:fe6c:789a:10315 ESTABLISHED
tcp 0 208 2001:db8:2345:0:23e:9eff:fe10:3a5b:22 2001:db8:2345:0:96de:80ff:fe6c:789a:10328 ESTABLISHED
tcp 0 0 fd07:1234:d015:affe:23e:9eff:fe10:3a5b:45188 fd07:1234:d015:affe:21d:ecff:fe03:6789:10005 ESTABLISHED
tcp 0 0 fd07:1234:d015:affe:23e:9eff:fe10:3a5b:56228 fd07:1234:d015:affe:9ec7:a6ff:fe23:5678:10005 ESTABLISHED
Auf dieser Box kommuniziert fast nichts mehr über IPv4, auch der Windows-Client verbindet sich (Übrigens ohne jedes Zutun, Windows bevorzugt IPv6 wenn vorhanden) mit der SMB-Freigabe der Box über IPv6 ...
tcp 0 0 fd07:1234:d015:affe:23e:9eff:fe10:3a5b:445 fd07:1234:d015:affe:96de:80ff:fe6c:789a:10334 ESTABLISHED
... der OSDingenskirchen holt sich Wasauchimmer per IPv6 von der Ultimo und der Fritz!Box ....
tcp 0 0 fd07:1234:d015:affe:23e:9eff:fe10:3a5b:45188 fd07:1234:d015:affe:21d:ecff:fe03:6789:10005 ESTABLISHED
tcp 0 0 fd07:1234:d015:affe:23e:9eff:fe10:3a5b:56228 fd07:1234:d015:affe:9ec7:a6ff:fe23:5678:10005 ESTABLISHED
... ssh und Webzugriff laufen über IPv6 ...
tcp 0 0 2001:db8:2345:0:23e:9eff:fe10:3a5b:443 2001:db8:2345:0:96de:80ff:fe6c:789a:10315 ESTABLISHED
tcp 0 208 2001:db8:2345:0:23e:9eff:fe10:3a5b:22 2001:db8:2345:0:96de:80ff:fe6c:789a:10328 ESTABLISHED
... nur noch die Samba-Kopplung Ultimo<>Topf läuft über IPv4 (Weil auch auf der Ultimo ein Samba 3.0.37 läuft) ...
tcp 0 0 ::ffff:192.168.1.17:445 ::ffff:192.168.1.16:59540 ESTABLISHED
Der für die Allgemeinheit wahrscheinlich schwerwiegendere Vorteil wäre aber, daß man nun den Samba auch direkt ins Image mit einbauen könnte:
Da er erst bei Zugriff über inetd gestartet wird, wird er bei denjenigen die Samba nicht nutzen auch nicht gestartet und belastet das System nicht. Er würde sogar bei denjenigen die ihn nutzen deutlich seltener laufen, wenn nämlich für den Zugriff autofs benutzt wird, da dieses Freigaben nur so lange offen hält, wie drauf zugegriffen wird.
Gleichzeitig entfielen mindestens zwei Arbeitsschritte bei (Neu-)Installationen:
1. Server-Plugin installieren
2. Server aktivieren
und ggf.
3. Eigene /etc/samba/smb.conf wiederherstellen
Fazit:
- nmbd entfällt = weniger CPU-/Speicherlast
- Samba standardmäßig nutzbar = weniger Konfigurationsaufwand = höhere Benutzerfreundlichkeit
- (eingeschränkte) IPv6-Kompatibilität ohne auf einen neueren (=fetteren) Samba aufrüsten zu müssen
- - - Aktualisiert - - -
PS: Meines Erachtens startet die Box sogar etwas schneller, weil jetzt der smbd und nmbd nicht mehr während des Bootens beim Herstellen der Netzwerkverbindung in den Speicher geschaufelt werden, sondern nur noch der smbd und wirklich erst, wenn ein Client zugreift.
Ich habe mir mal ein paar Gedanken zum Samba/CIFS auf der Box gemacht.
Finde ich es unschön, daß die /etc/samba/smb.conf nicht Bestandteil einer Einstellungssicherung ist und auch manuelles Zufügen zur Einstellungssicherung weitgehend sinnfrei ist, da diese Datei nachträglich vom Paket "enigma2-plugin-network-server" gekillt wird.
Eigentlich kann opkg ipks installieren und Konfigurationsdateien dabei nur optional schreiben, d.h. wenn es eine smb.conf schon gibt, würde die default config aus dem ipk als smb.conf.opkg geschrieben und die originale bliebe unversehrt ...
Noch blödsinniger ist es, daß "enigma2-plugin-network-server" den Samba-Server nur installiert, aber nicht aktiviert ...
Generell braucht kein Mensch mehr nmbd
nmbd ist ein Server, der Anfragen zu NetBIOS-über-IP-Namensdiensten verstehen und beantworten kann.
NetBIOS-over-TCP/IP oder kurz NBT wurde von DOS inkl. WinDOS 3.95, 3.98, 3.98SE und 4.0 (aka Windows 95, 98, 98SE, ME), Windows NT 3.xx/4.0 und OS/2 verwendet ... allesamt Clients die heutzutage noch zuhauf im Heimnetzwerk stehen .... ;)
Auch nur halbwegs aktuelle Linux-Clients (Inkl. der Uralt-Sambas auf den E2-Boxen) und Windows-Versionen "Windows 2000" und höher packen NBT nur noch mit der Kneifzange an und das auch nur, wenn man sie dazu zwingt.
Mit anderen Worten: Der nmbd läuft in den allermeisten Umgebungen völlig sinnfrei und ungenutzt auf der Box und verplempert CPU-Zeit und RAM mit Nichtstun.
Wenn irgendjemand wirklich noch einen DOS-Client oder eine Metabox (Läuft unter OS/2) rumfliegen haben sollte, dann könnte er den nmbd immer noch aus einem getrennten Paket nachinstallieren oder nachaktivieren.
IPv6-Tauglichkeit
Der verwendete Samba 3.0.37 ist nicht IPv6-tauglich. Es gibt zwar einen IPv6-Patch (von AVM) für Samba 3.0.37, ich habe allerdings den gepatchten Samba nicht kompiliert bekommen.
Nun ist IPv6 für den Samba nicht wirklich wichtig, solange die E2-Box eh nicht IPv6-only laufen kann, ich verspreche mir aber von der Nutzung von IPv6 eine höhere Zuverlässigkeit der MyFritz!-Adresse (Der MyFritz!-Dienst aus der Fritz!Box "vergißt" gelegentlich, die Zuordnung MyFritz!-Name<>Gerät aufrecht zu halten, wenn die Fritz!Box den Client für inaktiv hält. Nach meinen Beobachtungen wird diese Zuordnung umso stabiler, je mehr - auch LAN-internen - IPv6-Traffic die Box verursacht.
Nun ist es so, daß sich auch Samba durch einen Trick zumindest für eingehende Verbindungen IPv6-tauglich machen läßt, indem man den smbd einfach über inetd startet ...
Daraus ergeben sich folgende Vorschläge, die man auch ohne Neubau eines Images leicht vorab testen kann:
Löschen von /etc/etwork/if-up.d/01samba-start
=> nmbd und smbd werden nicht mehr als Daemons gestartet
/etc/inetd.conf um "microsoft-ds stream tcp6 nowait root /usr/sbin/smbd smbd" ergänzen
Ergebnis:
# /etc/inetd.conf: Internet superserver configuration database
#
# <service_name> <sock_type> <proto> <flags> <user> <server_path> <args>
#
8001 stream tcp6 nowait root /bin/streamproxy streamproxy
ftp stream tcp6 nowait root /usr/bin/vsftpd vsftpd
telnet stream tcp6 nowait root /usr/sbin/telnetd telnetd -i
ssh stream tcp6 nowait root /usr/sbin/dropbear dropbear -i
microsoft-ds stream tcp6 nowait root /usr/sbin/smbd smbd
optional könnte man noch folgende Zeilen zufügen:
#netbios-ns dgram udp wait root /usr/sbin/nmbd nmbd
#netbios-ssn stream tcp nowait root /usr/sbin/smbd smbd
dies sind die für NBT benötigten Dienste.
Da diese heutzutage eh nicht mehr benutzt werden,
- braucht es hier kein tcp6 oder udp6, die Clients die noch NBT benötigen können eh kein IPv6
- können die Zeilen auskommentiert bleiben, so sind sie für diejenigen, die sie unbedingt noch brauchen, schon da und können schnell aktiviert werden, belasten aber das System bei allen anderen nicht.
/etc/samba/smb.conf vor Überschreiben schützen
Dazu muß das ipk wie folgt geändert werden:
1. Eine Datei namens conffiles mit folgendem Inhalt erzeugen:
/etc/samba/smb.conf
2. Diese Datei "conffiles" zusammen mit der Datei "control" in die control.tar.gz packen
Ergebnis:
Offene Server-Ports:
Topf:/# netstat -lnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:41046 0.0.0.0:* LISTEN
tcp 0 0 :::8001 :::* LISTEN
tcp 0 0 :::16200 :::* LISTEN
tcp 0 0 :::80 :::* LISTEN
tcp 0 0 :::21 :::* LISTEN
tcp 0 0 :::22 :::* LISTEN
tcp 0 0 :::23 :::* LISTEN
tcp 0 0 :::443 :::* LISTEN
tcp 0 0 :::445 :::* LISTEN
bzw. mit Namen:
Topf:/# netstat -lt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:41046 0.0.0.0:* LISTEN
tcp 0 0 :::8001 :::* LISTEN
tcp 0 0 :::16200 :::* LISTEN
tcp 0 0 :::www :::* LISTEN
tcp 0 0 :::ftp :::* LISTEN
tcp 0 0 :::ssh :::* LISTEN
tcp 0 0 :::telnet :::* LISTEN
tcp 0 0 :::https :::* LISTEN
tcp 0 0 :::microsoft-ds :::* LISTEN
microsoft-ds (= SMB over TCP) ist der einzige Port, den Samba wirklich benötigt!
= vollständiger IPv6-Support. Alle Dienste der Box sind direkt mit IPv6 nutzbar.
Verbindungen:
Topf:/# netstat -t
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 Topf.fritz.box:microsoft-ds pc.fritz.box:10334 ESTABLISHED
tcp 0 0 Topf.fritz.box:microsoft-ds Ultimo.fritz.box:59540 ESTABLISHED
tcp 0 0 Topf.fritz.box:https pc.fritz.box:10315 ESTABLISHED
tcp 0 208 Topf.fritz.box:ssh pc.fritz.box:10328 ESTABLISHED
tcp 0 0 Topf.fritz.box:45188 Ultimo.fritz.box:10005 ESTABLISHED
tcp 0 0 Topf.fritz.box:56228 fritz.box:10005 ESTABLISHED
Oder mit IPs, damit's klarer wird :) :
Topf:/# netstat -nt
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 fd07:1234:d015:affe:23e:9eff:fe10:3a5b:445 fd07:1234:d015:affe:96de:80ff:fe6c:789a:10334 ESTABLISHED
tcp 0 0 ::ffff:192.168.1.17:445 ::ffff:192.168.1.16:59540 ESTABLISHED
tcp 0 0 2001:db8:2345:0:23e:9eff:fe10:3a5b:443 2001:db8:2345:0:96de:80ff:fe6c:789a:10315 ESTABLISHED
tcp 0 208 2001:db8:2345:0:23e:9eff:fe10:3a5b:22 2001:db8:2345:0:96de:80ff:fe6c:789a:10328 ESTABLISHED
tcp 0 0 fd07:1234:d015:affe:23e:9eff:fe10:3a5b:45188 fd07:1234:d015:affe:21d:ecff:fe03:6789:10005 ESTABLISHED
tcp 0 0 fd07:1234:d015:affe:23e:9eff:fe10:3a5b:56228 fd07:1234:d015:affe:9ec7:a6ff:fe23:5678:10005 ESTABLISHED
Auf dieser Box kommuniziert fast nichts mehr über IPv4, auch der Windows-Client verbindet sich (Übrigens ohne jedes Zutun, Windows bevorzugt IPv6 wenn vorhanden) mit der SMB-Freigabe der Box über IPv6 ...
tcp 0 0 fd07:1234:d015:affe:23e:9eff:fe10:3a5b:445 fd07:1234:d015:affe:96de:80ff:fe6c:789a:10334 ESTABLISHED
... der OSDingenskirchen holt sich Wasauchimmer per IPv6 von der Ultimo und der Fritz!Box ....
tcp 0 0 fd07:1234:d015:affe:23e:9eff:fe10:3a5b:45188 fd07:1234:d015:affe:21d:ecff:fe03:6789:10005 ESTABLISHED
tcp 0 0 fd07:1234:d015:affe:23e:9eff:fe10:3a5b:56228 fd07:1234:d015:affe:9ec7:a6ff:fe23:5678:10005 ESTABLISHED
... ssh und Webzugriff laufen über IPv6 ...
tcp 0 0 2001:db8:2345:0:23e:9eff:fe10:3a5b:443 2001:db8:2345:0:96de:80ff:fe6c:789a:10315 ESTABLISHED
tcp 0 208 2001:db8:2345:0:23e:9eff:fe10:3a5b:22 2001:db8:2345:0:96de:80ff:fe6c:789a:10328 ESTABLISHED
... nur noch die Samba-Kopplung Ultimo<>Topf läuft über IPv4 (Weil auch auf der Ultimo ein Samba 3.0.37 läuft) ...
tcp 0 0 ::ffff:192.168.1.17:445 ::ffff:192.168.1.16:59540 ESTABLISHED
Der für die Allgemeinheit wahrscheinlich schwerwiegendere Vorteil wäre aber, daß man nun den Samba auch direkt ins Image mit einbauen könnte:
Da er erst bei Zugriff über inetd gestartet wird, wird er bei denjenigen die Samba nicht nutzen auch nicht gestartet und belastet das System nicht. Er würde sogar bei denjenigen die ihn nutzen deutlich seltener laufen, wenn nämlich für den Zugriff autofs benutzt wird, da dieses Freigaben nur so lange offen hält, wie drauf zugegriffen wird.
Gleichzeitig entfielen mindestens zwei Arbeitsschritte bei (Neu-)Installationen:
1. Server-Plugin installieren
2. Server aktivieren
und ggf.
3. Eigene /etc/samba/smb.conf wiederherstellen
Fazit:
- nmbd entfällt = weniger CPU-/Speicherlast
- Samba standardmäßig nutzbar = weniger Konfigurationsaufwand = höhere Benutzerfreundlichkeit
- (eingeschränkte) IPv6-Kompatibilität ohne auf einen neueren (=fetteren) Samba aufrüsten zu müssen
- - - Aktualisiert - - -
PS: Meines Erachtens startet die Box sogar etwas schneller, weil jetzt der smbd und nmbd nicht mehr während des Bootens beim Herstellen der Netzwerkverbindung in den Speicher geschaufelt werden, sondern nur noch der smbd und wirklich erst, wenn ein Client zugreift.