Firewall dla maszyn połączonych mostami brctl
Stworzenie centralnego firewalla w Dom0 dla sieci utworzonej za pomocą brctl jest możliwe, jednak jak pokazały wcześniejsze przykłady, mosty brctl nie są elastycznym i prostym rozwiązaniem przy tworzeniu bardziej skomplikowanych topologii sieciowych (np podwójny NAT, dwie wydzielone podsieci połączone niezależnie do Internetu, itp), gdyż wymagają tworzenia wielu dodatkowych interfejsów typu tap, np do łączenia między sobą mostów.
Pakiety na wirtualnych interfejsach nie są niestety widziane przez iptables. Aby można było je przechwycić w iptables, musimy spełnić dwa warunki:
• musimy włączyć taką funkcjonalność (ebtables -> iptables):
• interfejs wirtualny musi być podłączony do jakiegokolwiek mostu brctl.
Dopiero po spełnieniu tych warunków, pakiety z wirtualnych interfejsów przechodzą przez iptables, dokładnie przez jego łańcuch FORWARD. Dostęp do nich nie jest możliwy normalną komendą typu: iptables -A FORWARD -i vif1.0, lecz musimy użyć do tego modułu physdev:
Firewall dla maszyn połączonych mostami VDE
Łącząc wirtualne maszyny jedynie za pomocą switchy VDE, pozbawiamy się zupełnie możliwości stworzenia centralnego firewalla w Dom0 pomiędzy tymi maszynami, za pomocą iptables. Rozwiązaniem pośrednim mogą tutaj być VLANy, kiedy ruch między VM maszynami byłby kształtowany dopiero na routerze.
Ćwiczenie 5:
Połączmy VM1 Windowsa i VM2 Debiana z wcześniejszego ćwiczenia przez NAT do Internetu. Adres IP dla br0 to 10.0.0.1/24. Za pomocą firewalla w Dom0 zablokujmy VM1 dostęp do stron www. Natomiast VM2 dostęp do zdalnych FTP.
Na obu maszynach musimy ustawić bramę 10.0.0.1/24 oraz DNS 217.8.168.244.
Pod Windowsem IP ustawiamy ręcznie.
VM2:
Dom0:
Połączenie z Internetem działa, pozostaje ograniczyć dostęp do www lub FTP.
Dom0:
Usługi www i ftp (ftp://ftp.tpnet.pl) na VM zostały zablokowane.
Ćwiczenie 6:
Pobierzmy pod VM Windows darmowy sniffer wireshark i spróbujmy przeanalizować ruch w sieci LAN. Uruchommy pinga między VM1 a VM2, a następnie VM1 a Dom0. Konfiguracja wirtualnej sieci jak w poprzednim ćwiczeniu.
Rys. Snifer wireshark podsłuchuje ruch LAN, widać pinga uruchomionego na innej maszynie w sieci
Co ciekawe, adresem źródłowym nie jest 10.0.0.2 (VM1 Debian) lecz brama. Okazuje się, że wykonany wcześniej NAT działa również pomiędzy hostami w wirtualnej sieci. Niepotrzebnie. Aby niepotrzebnie nie natować adresów z tej samej podsieci dodamy polecenie:
Pakiety pasujące do tej reguły wyjdą z łańcucha POSTROUTING i nie dojdą do kolejnej regułki.
Podsumowanie
Wykorzystując wolne oprogramowanie Xen można wdrożyć wirtualne środowisko oparte o szybką parawirtualizację. Na jednej maszynie (komputer domowy) uruchomiliśmy jednocześnie około 10 systemów operacyjnych.
Xen pozwalając na instalację pod jego nadzorem różnorakich rodzin systemów jak Linux, Windows, *BSD, staje się potężnym narzędziem, które może znaleźć zastosowania komercyjne.
Stosując techniki łączenia wirtualnych maszyn w różnorodne topologie sieciowe, uzyskaliśmy możliwość wykorzystania tak przygotowanego systemu do testowania i symulowania problemów pojawiających się w fizycznych sieciach LAN/WAN. Wśród przedstawionych projektów najciekawszym wydaje się być Open vSwitch, który pozwala na współpracę ze standardowymi mostami Linuksowymi (brctl). Również dzięki projektowi VDE, w prosty i elastyczny sposób mogliśmy łączyć wirtualne maszyny na różnych fizycznych hostach, dzięki czemu w dość prosty sposób możemy przenieść VM z jednego fizycznego komputera na inny (migracja).
Wirtualizacja z wykorzystaniem Xen, przedstawiona w tym cyklu artykułów, może być podstawą do uruchomienia wirtualnego środowiska w celu nauczania i poznawania problematyki sieci lokalnych, jak i komercyjnym wdrożeniu Xena.
Autor:
Andrzej Dymała, jest góralem, pasjonatem bluesa oraz darmowych i wolnych rozwiązań. Zajmuję się administrowaniem sieciami i Linuksem, ze szczególnym wskazaniem na bezpieczeństwo (iptables, DansGuardian) oraz podział łącza QoS.
-> Wdrożenie wirtualnego środowiska Xen cz.1
-> Wdrożenie wirtualnego środowiska Xen cz.2
-> Wdrożenie wirtualnego środowiska Xen cz.3
-> Wdrożenie wirtualnego środowiska Xen cz.4
-> Wdrożenie wirtualnego środowiska Xen cz.5
-> Wdrożenie wirtualnego środowiska Xen cz.6
-> Wdrożenie wirtualnego środowiska Xen cz.7