Bombenlegers Black Black Penguin Penguin Blog

<<<   >>>
DMZ-Alternative mit Xen und zweiter Firewall

Für mein lokales Netz konnte ich leider keine DMZ (demilitarized zone) nach der klassischen Firewall-Lehre implementieren. Einmal fehlte mir dazu ein dritter Port an der Firewall, zum anderen ein zweiter Serverrechner. Daher habe ich eine Alternative aufgesetzt, die ohne diese Voraussetzungen auskommt und sicherheitstechnisch ähnlich positioniert ist.

dmz.png

Bei der üblichen Architektur mit einer DMZ erlaubt die Firewall Verbindungen vom internen Netz nach außen (grün) und zur DMZ (orange), von außen aber nur in die DMZ (blau), in der die öffentlich erreichbaren Dienste beheimatet sind. Selbst bei einem erfolgreichen Angriff auf einen Rechner der DMZ ist damit kein Zugriff auf Hosts am internen Netz möglich.

Als Nachteil ist jedoch zu sehen, daß die DMZ-Rechner sich gegenseitig erreichen können, ohne daß eine weitere Firewall sie voneinander abschirmt. Für den Angreifer ist es also leichter, weitere DMZ-Hosts zu übernehmen, sobald er einen davon erobert hat. Meine Variante der DMZ wurde zwar aus der Not praktischer Einschränkungen geboren, vermeidet aber dieses Szenario.

vserver.png

Hier gibt es nur ein Netzsegment hinter der Firewall, jedoch ein virtuelles Netz innerhalb des Servers. Auf diesem laufen mit Hilfe von Xen neben dem eigentlichen internen Server in Domain 0 mehrere virtuelle Server in unprivilegierten Domains. Für jeden nach außen sichtbaren Dienst (Mail, Web, Nameserver, ...) gibt es einen eigenen virtuellen Host. Die Kommunikation der Xen-Domains erfolgt nicht wie sonst üblich eine virtuelle Ethernet-Bridge, sondern wird vom Kernel auf IP-Ebene geroutet (was bei den von Xen mitgelieferten Skripten zwar vorgesehen ist, aber leider etwas stiefmütterlich behandelt wird). Da die Weiterleitung der Pakete somit auf Layer 3 statt Layer 2 erfolgt, ist eine Filterung durch eine Firewall in der Domain 0 möglich.

Kommt nun von außen eine Verbindung zu einem sichtbaren Port, beispielweise 80 (HTTP), leitet die äußere Firewall diese auf die IP-Adresse des virtuellen Webserver-Hosts um. Die innere Firewall erlaubt solche Zugriffe auch, und der Webserver kann die Anfrage beantworten.

Soweit alles ganz normal, der Unterschied zur einer "normalen" DMZ tritt aber zutage, wenn man einen erfolgreichen Angriff auf den Webserver durchspielt. In diesem Fall kann die interne Firewall Verbindungen vom Webserver zu anderen internen Hosts (real oder virtuell) abfangen und verhindern.

Die weiteren Eckpunkte des Konzepts in Stichpunkten:

  • Jeder von außen erreichbare Dienst läuft auf einem eigenen virtuellen Host (oder ausnahmsweise eine eng verwandte Gruppe von Diensten). Falls dieser einmal einem Angriff zum Opfer fallen sollte, so ist wenigstens nur er allein davon betroffen, keine weiteren Dienste.

  • Die virtuellen Server werden alle durch die Firewall in Domain 0 abgeschottet, d.h. für sie sind von außen nur genau die nötigen Ports freigeschaltet, und umgekehrt dürfen sie nur soweit wie unbedingt nötig auf Domain 0 oder nach außen zugreifen. Dies erschwert es einem erfolgreichen Angreifer, von seinem Brückenkopf aus weitere Attacken durchzuführen.

  • Wichtig ist auch, daß die abschirmende Firewall nicht auf den virtuellen Servern selbst läuft, denn sonst könnte ein Angreifer, der root-Rechte erlangt hat, sie leicht umgehen.

  • Die virtuellen Server können von außen nur über Portforwarding erreicht werden. Damit laufen zwar von außen kommende Pakete durch das interne Netz, ihr Ziel wird aber von der äußeren Firewall kontrolliert und es können keine beliebigen internen Rechner erreicht werden.

  • Interne Rechner greifen normalerweise nicht direkt auf die Dienste der virtuellen Server zu, damit sie nicht unmittelbar mit unter Umständen fremdkontrollierten Servern zu tun haben. Eine Ausnahme habe ich für den Webserver gemacht, da es unverhältnismäßig umständlich erschien, einen zweiten Webserver mit den gleichen Daten zu betreiben und beide konsistent zu halten. In anderen Fällen, z.B. für den Mailserver, gibt es einen Proxy auf dem internen Server in Domain 0.

Vergleicht man dieses Konzept mit dem der klassischen DMZ, punktet die Abschottung der virtuellen Serverhosts gegenüber einander und dem Rest des internen Netzes. Als Nachteil ist zu werten, daß von außen stammende Daten durch das interne Netz geleitet werden. Eine Entschärfung kommt jedoch dadurch zustande, daß das Ziel dieser Daten von der äußeren Firewall festgelegt wird und nicht beliebige interne Hosts erreicht werden können.

<<<   >>>

Powered by: ESTW, AMD, Linux, Xen, Debian, Perl, Apache, mod_perl2, RoBlog, Leikeim, Gauloises, myself, and probably many more.

Valid XHTML 1.0! Valid CSS!