Bug 29706 - univention-firewall scheint SMB-Verbindung zu UCS 3.0-2 Memberserver zu blockieren
univention-firewall scheint SMB-Verbindung zu UCS 3.0-2 Memberserver zu block...
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: Firewall (univention-firewall)
UCS 3.1
Other Linux
: P5 normal (vote)
: UCS 3.1-0-errata
Assigned To: Alexander Kläser
Stefan Gohmann
:
Depends on:
Blocks: 29885
  Show dependency treegraph
 
Reported: 2012-12-10 17:48 CET by Arvid Requate
Modified: 2013-01-15 13:07 CET (History)
4 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Arvid Requate univentionstaff 2012-12-10 17:48:49 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
Comment 1 Sönke Schwardt-Krummrich univentionstaff 2012-12-10 17:55:20 CET
(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.
Comment 2 Arvid Requate univentionstaff 2012-12-11 11:29:14 CET
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
Comment 3 Janis Meybohm univentionstaff 2012-12-14 15:04:06 CET
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/
Comment 4 Stefan Gohmann univentionstaff 2012-12-21 22:33:04 CET
Das sollte im nächsten Appliance Image mit behoben werden.
Comment 5 Sönke Schwardt-Krummrich univentionstaff 2013-01-11 11:44:11 CET
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
Comment 6 Alexander Kläser univentionstaff 2013-01-14 17:22:11 CET
(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.
Comment 7 Alexander Kläser univentionstaff 2013-01-14 17:26:24 CET
(In reply to comment #6)
> ...
> daher → REOPEN. Bitte Einschränkungen auf .debian, .dpkg-new, .dpkg-old (noch
> andere) beschränken.

... Einschränkungen beschränken :) .
Comment 8 Alexander Kläser univentionstaff 2013-01-15 10:03:34 CET
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
Comment 9 Stefan Gohmann univentionstaff 2013-01-15 12:04:14 CET
OK, Tests waren erfolgreich. YAML + Changelog OK.
Comment 10 Moritz Muehlenhoff univentionstaff 2013-01-15 13:07:45 CET
http://errata.univention.de/3.1-errata8.html