Univention Bugzilla – Bug 29706
univention-firewall scheint SMB-Verbindung zu UCS 3.0-2 Memberserver zu blockieren
Last modified: 2013-01-15 13:07:45 CET
Heute fielen in einer UCS 3.0-2 Samba4-Testumgebung Probleme bei der SMB-Verbindung zu einem UCS 3.0-2 Memberserver auf: ======================================================================== arequate@lagra:~$ smbclient -L 10.200.31.249 -UAdministrator%univention Connection to 10.200.31.249 failed (Error NT_STATUS_CONNECTION_REFUSED) ======================================================================== Nach Stoppen der Firewall geht es: ========================================================================root@member302:~# /etc/init.d/univention-firewall stop Stopping Univention iptables configuration::. root@member302:~# Abgemeldet Connection to 10.200.31.249 closed. arequate@lagra:~$ smbclient -L 10.200.31.249 -UAdministrator%univention Domain=[RC6TEST] OS=[Unix] Server=[Samba 3.5.11] Sharename Type Comment --------- ---- ------- print$ Disk Printer Drivers IPC$ IPC IPC Service (member302 univention corporate server) Domain=[RC6TEST] OS=[Unix] Server=[Samba 3.5.11] Server Comment --------- ------- MEMBER302 member302 univention corporate server Workgroup Master --------- ------- RC6TEST root@oddamember:~# ucr search --brief packetfilter | grep -E '(139|445)' security/packetfilter/package/univention-samba/tcp/137:139/all/en: netbios (Samba) security/packetfilter/package/univention-samba/tcp/137:139/all: ACCEPT security/packetfilter/package/univention-samba/tcp/445/all/en: microsoft-ds (Samba) security/packetfilter/package/univention-samba/tcp/445/all: ACCEPT security/packetfilter/package/univention-samba/udp/137:139/all/en: netbios (Samba) security/packetfilter/package/univention-samba/udp/137:139/all: ACCEPT security/packetfilter/package/univention-samba/udp/445/all/en: microsoft-ds (Samba) security/packetfilter/package/univention-samba/udp/445/all: ACCEPT ======================================================================== In der Ausgabe von netstat sieht es außerdem so aus, als würde der smbd nur auf IPv6 lauschen, man kommt aber per IPv4 dran: tcp6 0 0 :::445 :::* LISTEN 15472/smbd tcp6 0 0 :::139 :::* LISTEN 15472/smbd
(In reply to comment #0) > In der Ausgabe von netstat sieht es außerdem so aus, als würde der smbd nur auf > IPv6 lauschen, man kommt aber per IPv4 dran: > > tcp6 0 0 :::445 :::* LISTEN > 15472/smbd > tcp6 0 0 :::139 :::* LISTEN > 15472/smbd tcp6- und udp6-Sockets hören i.d.R. auch auf IPv4-Adressen, sofern der Socket nicht explizit an eine IPv6-Adresse gebunden ist. Hier sind die Sockets an die Adresse "::" (aka 0000:0000:0000:0000:0000:0000:0000:0000) gebunden und nehmen somit jede Verbindung an. Die Firewallregeln sind davon jedoch vollkommen unabhängig und müssen sowohl für IPv4 als auch IPv6 definiert werden.
Sönke hat sich das gerade nochmal angeschaut, Destination-Port 137-139 und 445 waren in iptables trotz der UCR-Variable nicht geöffnet. Ursache sind hier .debian-Dateien im packetfilter.d-Verzeichnis, die die richtigen UCR-Templates überschatten: root@member:~# ls -l /etc/security/packetfilter.d/ insgesamt 32 -rwxr-xr-x 1 root root 7699 10. Dez 11:13 10_univention-firewall_start.sh -rwxr-xr-x 1 root root 6943 10. Dez 11:12 10_univention-firewall_start.sh.debian -rwxr-xr-x 1 root root 618 22. Okt 2011 50_local.sh -rwxr-xr-x 1 root root 1989 10. Dez 11:13 80_univention-firewall_policy.sh -rwxr-xr-x 1 root root 1989 10. Dez 11:12 80_univention-firewall_policy.sh.debian -rwxr-xr-x 1 root root 1736 10. Dez 11:13 90_univention-samba.sh 10_univention-firewall_start.sh.debian war eine aus dem UCR-Template /etc/univention/templates/files/etc/security/packetfilter.d/10_univention-firewall_start.sh generierte Konfigurationsdatei, die diverted wurde. Die VM wurde aus dem UCS 3.0-2 Generic VM-Template erzeugt: root@member:~# ucr search --brief version repository/mirror/version/end: <empty> repository/mirror/version/start: <empty> update/umc/nextversion: true version/erratalevel: 93 version/patchlevel: 2 version/releasename: Horn-Lehe version/security-patchlevel: <empty> version/version: 3.0
Ich hatte gerade genau das gleiche Verhalten: UCS 3.0-2 Generic amd64 als Member Software: "Windows Memberserver" Um sowas in Zukunft zu verhindern kann man evtl. nur *.sh Files unter /etc/security/packetfilter.d/ ausführen lassen? run-parts --test --regex='^[a-zA-Z0-9_-]+\.sh$' /etc/security/packetfilter.d/
Das sollte im nächsten Appliance Image mit behoben werden.
Die .debian-Dateien werden von UCR erstellt, weil beim Update auf 3.1-0 ein Divert mit Rename gemacht wird (sofern es noch fehlt). Daher werden jetzt alle Dateien ausgeschlossen, die nicht auf ".sh" enden: run-parts --test --regex='^[a-zA-Z0-9_-]+[.]sh$' /etc/security/packetfilter.d/ UCS 3.1-1: univention-firewall (5.0.4-1) unstable; urgency=low Changelogeintrag für 3.1-1: done YAML: 2013-01-11-univention-firewall.yaml
(In reply to comment #5) > Die .debian-Dateien werden von UCR erstellt, weil beim Update auf 3.1-0 ein > Divert mit Rename gemacht wird (sofern es noch fehlt). Daher werden jetzt alle > Dateien ausgeschlossen, die nicht auf ".sh" enden: > > run-parts --test --regex='^[a-zA-Z0-9_-]+[.]sh$' /etc/security/packetfilter.d/ > > UCS 3.1-1: univention-firewall (5.0.4-1) unstable; urgency=low > Changelogeintrag für 3.1-1: done > YAML: 2013-01-11-univention-firewall.yaml Diese Einschränkung in einem Errata (!) scheint mir zu hart mit potentiellen Seiteneffekten, bspw.: ==================== root@master55:~# ll /etc/security/packetfilter.d/ total 24 -rwxr-xr-x 1 root root 10413 Jan 14 11:26 10_univention-firewall_start.sh -rwxr-xr-x 1 root root 1608 Jan 14 11:24 20squid -rwxr-xr-x 1 root root 618 Oct 22 2011 50_local.sh -rwxr-xr-x 1 root root 1989 Jan 14 11:26 80_univention-firewall_policy.sh root@master55:~# dpkg -S 20squid univention-squid: /etc/univention/templates/files/etc/security/packetfilter.d/20squid ... ==================== daher → REOPEN. Bitte Einschränkungen auf .debian, .dpkg-new, .dpkg-old (noch andere) beschränken.
(In reply to comment #6) > ... > daher → REOPEN. Bitte Einschränkungen auf .debian, .dpkg-new, .dpkg-old (noch > andere) beschränken. ... Einschränkungen beschränken :) .
Eigentlich werden Skripte mit "." im Namen nicht ausgeführt. Daher scheint es sinnvoller, nur die Endung .sh zu erlauben: ==================== for i in foo.debian foo.sh foo.dpkg-new foo foo.dpkg-old foo-bar _foo foo_bar do touch $i chmod +x $i done $ run-parts --test . ./_foo ./foo ./foo-bar ./foo_bar $ run-parts --regex='^[a-zA-Z0-9_-]+([.]sh)?$' --test . ./_foo ./foo ./foo-bar ./foo.sh ./foo_bar ==================== Ich konnte ich den Fehler reproduzieren, mit der Anpassung war er behoben: * DC-Master mit Samba4 * Memberserver mit Samba3 in die Domäne joinen * smbclient gegen Memberserver Getestet unter 3.0-2 (nicht 3.1). Pakete wurden gebaut (errata + 3.1-1), Changelog und YAML-Datei wurden angepasst. univention-firewall (5.0.4-2) unstable; urgency=low . * allow firewall scripts without "." and allow postfix ".sh"; Bug #29706
OK, Tests waren erfolgreich. YAML + Changelog OK.
http://errata.univention.de/3.1-errata8.html