TU Wien | ZID | ZIDline 13 | Firewall-Regeln für Windows Domain Controller

Firewall-Regeln für Windows Domain Controller

(und diesbezügliche Erfahrungen mit Vista)

Walter Selos
Da öfters der Wunsch besteht, den Domain Controller hinter einen Firewall zu stellen, um ihn sowohl von außen, wie auch vor den Domain Members zu schützen, haben wir im Zuge der Vista-Betatests eine Konfiguration getestet, bei der der Domain Controller hinter einem "bridging Firewall" (siehe Seite 32) betrieben wird.
Die folgenden Hinweise gelten sowohl für Windows 2000/2003 Domains als auch für die Betaversion von Vista.
Zuerst müssen folgende Ports des Domain Controllers erreichbar sein:
Port Protokoll Name
135 tcp rpc-portmapper
389 tcp + udp ldap
636 tcp ldap ssl
3268 tcp ldap gc
326 tcp ldap gc ssl
53 tcp + udp dns
88 tcp + udp kerberos
445 tcp smb
137-139 tcp + udp (smb für Windows NT)
Für Remotemanagement u.a.m. (DCOM) müssten außerdem alle UDP-Ports geöffnet werden (sie werden dynamisch vergeben). Das ist natürlich für eine Firewall-Konfiguration untragbar. Eine gewisse Abhilfe schafft ein Registry-Eintrag am Server :
Damit ist der Portrange auf 100 Ports beschränkt, bei kleineren Domänen kann man auch weniger angeben.
Dann braucht man nur diesen UDP-Portrange am Firewall zulassen. Auch das Protokoll icmp muss zugelassen sein.
Bei der Beta-Version von Vista war es damit allerdings nicht getan.
Das Domain-Logon von einem Vista Member zu einem Vista Domain Controller funktionierte nicht, von Windows XP Members zu ebendiesem Domain Controller allerdings schon.
Das lag daran, dass die beiden Vista-Maschinen den UDP-Transfer mit oben genannten dynamisch vergebenen Ports via IPv6 bewerkstelligen, welcher Transfer über das IPv4-Protokoll 41 getunnelt wird, also muss am Firewall noch das IP-Protokoll 41 zugelassen werden.
Das ist zwar eine schönere Lösung als die Portranges, man sollte sich aber dessen bewusst sein und weitere sicherheitsmäßige Implikationen berücksichtigen.
Tests mit Sniffern haben auch ergeben, dass Vista versucht, mit Routern über IPv6 Kontakt aufzunehmen. Das sind alles keine Sicherheitslücken, solange man es weiss und die Router das Protokoll nicht können. Zukünftige Hacker und Virenprogrammierer könnten allerdings jenen, die das nicht wissen, das Leben schwerer machen, vor allem was die Verteilung von Viren und Backdoors zwischen Rechnern anbelangt, welche nicht durch Firewalls geschützt oder durch nicht IPv6-fähige Router getrennt sind. Es ist zu hoffen, dass bei der Produktionsversion von Vista die Paketfilter des systemeigenen Firewalls auch IPv6 voll berücksichtigen werden.
Hier noch eine Beispielkonfiguration für den "bridging Firewall" mit iptables:
iptables-Beispiel für funktionierende win2003/vista-Domain:
(in diesem Beispiel ist 128.131.36.49 der Domaincontroller, Zugriffe sind nur vom Subnetz 128.131.36.0 erlaubt, dazwischen ist der Firewall )

Chain FORWARD (policy DROP)
target     prot opt source               destination
ACCEPT     41   --  128.131.36.0/24      128.131.36.49
ACCEPT     tcp  --  128.131.36.0/24      128.131.36.49       tcp dpts:137:139
ACCEPT     udp  --  128.131.36.0/24      128.131.36.49       udp dpts:5000:5100
ACCEPT     tcp  --  128.131.36.0/24      128.131.36.49       tcp dpt:3389
ACCEPT     icmp --  128.131.36.0/24      128.131.36.49
ACCEPT     tcp  --  128.131.36.0/24      128.131.36.49       tcp dpt:445
ACCEPT     tcp  --  128.131.36.0/24      128.131.36.49       tcp dpt:88
ACCEPT     udp  --  128.131.36.0/24      128.131.36.49       udp dpt:88
ACCEPT     udp  --  128.131.36.0/24      128.131.36.49       udp dpt:53
ACCEPT     tcp  --  128.131.36.0/24      128.131.36.49       tcp dpt:53
ACCEPT     tcp  --  128.131.36.0/24      128.131.36.49       tcp dpt:3269
ACCEPT     tcp  --  128.131.36.0/24      128.131.36.49       tcp dpt:3268
ACCEPT     tcp  --  128.131.36.0/24      128.131.36.49       tcp dpt:636
ACCEPT     udp  --  128.131.36.0/24      128.131.36.49       udp dpt:389
ACCEPT     tcp  --  128.131.36.0/24      128.131.36.49       tcp dpt:389
ACCEPT     tcp  --  128.131.36.0/24      128.131.36.49       tcp dpt:135
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           PHYSDEV match -physdev-is-bridged state RELATED,ESTABLISHED
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           PHYSDEV match --physdev-in eth1 --physdev-out eth0 state NEW
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           PHYSDEV match --physdev-in eth2 --physdev-out eth0 state NEW
REJECT     tcp  --  0.0.0.0/0            0.0.0.0/0           PHYSDEV match -physdev-in eth0 tcp dpt:113 reject-with icmp-port-unreachable
REJECT     udp  --  0.0.0.0/0            0.0.0.0/0           PHYSDEV match --physdev-in eth0 udp dpt:113 reject-with icmp-port-unreachable

Seitenanfang | ZIDline 13 - Dezember 2005 | ZID | TU Wien