Dydaktyka:
FeedbackTo jest stara wersja strony!
Ze względu na to, że w trakcie zajęć z firewalla część ćwiczeń (i spory odsetek popełnianych błędów) odcina komputer od internetu, wykonanie tych zajęć na zdalnych maszynach byłoby utrudnione.
Jako że do zajęć z filtracji i translacji pakietów w Linuksie należy dysponować przynajmniej trzema komputerami w jednej sieci, proszę o odpowiednie przygotowanie się. Można oczywiście użyć trzech maszyn wirtualnych uruchomionych na jednym komputerze i połączonych odpowiednio w sieć.
Osoby które dysponują wystarczającą ilością pamięci RAM zachęcam do stworzenia własnych maszyn wirtualnych z ulubioną dystrybucją Linuksa.
Poniżej krótko opisuję jak można wykorzystując qemu i gns3 (opcjonalnie) uruchomić trzy maszyny spięte w żądaną sieć.
Dla osób które mają niewielką ilość pamięci RAM polecam skorzystanie z gotowego bardzo okrojonego obrazu używanego w poniższych przykładach (linki: dysk i kernel1)).
Użycie program GNS3 do budowy potrzebnych sieci prezentuje: gns3_alpines.pdf
Do "ręcznego" złożenia potrzebnej sieci w Linuksie najłatwiej stworzyć w systemie operacyjnym odpowiednią ilość mostków, a następnie podpiąć maszyny wirtualne do właściwych urządzeń.
Uwaga: wszystkie komendy należy wykonywać z uprawieniami roota.
Stworzenie i konfiguracja mostków używając Network Manager:
nmcli connection add type bridge ifname br0 nmcli connection modify bridge-br0 ipv4.method shared nmcli connection add type bridge ifname br1
Stworzenie i konfiguracja mostków ręcznie:
ip link add br1 type bridge ip link set dev br1 up ip link add br0 type bridge ip link set dev br0 up ip address add dev br0 10.42.0.1/24 sysctl net.ipv4.conf.all.forwarding=1 iptables -t nat -A POSTROUTING -s 10.42.0.0/24 ! -d 10.42.0.0/24 -j MASQUERADE dnsmasq -i br0 --dhcp-range=10.42.0.2,10.42.0.254,3h
Uruchomienie maszyn dla filtrowania:
# start (każdej) maszyny wirtualnej: qemu-system-x86_64 -kernel kernel -hda alp_fs.qcow2 -device e1000,netdev=N -netdev bridge,br=br0,id=N -accel kvm -serial stdio -snapshot # -kernel kernel <- użyj tego pliku jako jądra systemu operacyjnego # -hda alp_fs.qcow2 <- użyj tego pliku jako dysku twardego # -device e1000,netdev=N <- dodaj do maszyny wirtualnej kartę sieciową obsługiwaną przez sterownik e1000 i połącz z urządzeniem 'N' # -netdev bridge,br=br0,id=N <- skonfiguruj urządzenie 'N' jako podłączenie do mostka o nazwie br0 # -accel kvm <- użyj KVM jako wsparcia dla wirtualizacji # -serial stdio <- podłącz port szeregowy do standardowego wejścia/wyjścia # -snapshot <- otwiera wszystkie pliki w trybie tylko do odczytu, zmiany są tracone po zamknięciu maszyny
Uruchomienie maszyn dla translacji adresów:
# maszyna "w internecie" qemu-system-x86_64 -kernel kernel -hda alp_fs.qcow2 -device e1000,netdev=N -netdev bridge,br=br0,id=N -accel kvm -serial stdio -snapshot # maszyna "router" qemu-system-x86_64 -kernel kernel -hda alp_fs.qcow2 -device e1000,netdev=N1 -netdev bridge,br=br0,id=N1 -device e1000,netdev=N2 -netdev bridge,br=br1,id=N2 -accel kvm -serial stdio -snapshot # maszyna "za NATem" qemu-system-x86_64 -kernel kernel -hda alp_fs.qcow2 -device e1000,netdev=N -netdev bridge,br=br1,id=N -accel kvm -serial stdio -snapshot