Linux Router (NAT, IP Forwarding)

LINUX
Priorytet: Normalny Szkic

Zadanie 131: Linux jako Router (NAT i Forwarding)

Cel zadania

Celem zadania jest przekształcenie jednej z maszyn wirtualnych (np. z Zadania 130) w router, który udostępni połączenie internetowe drugiej maszynie znajdującej się w sieci wewnętrznej.

Wymagania

  1. Środowisko:

    • Kontynuacja Zadania 130.
    • Maszyna 1 (Router): Musi posiadać dwie karty sieciowe:
      • Karta 1: Sieć wewnętrzna (skonfigurowana w Zad. 130).
      • Karta 2: NAT (lub Mostkowana), która ma dostęp do internetu (w VirtualBox ustaw jako "NAT" lub "Sieć NAT").
    • Maszyna 2 (Klient): Pozostaje w sieci wewnętrznej (tylko 1 karta).
  2. Konfiguracja Maszyny 1 (Router):

    • Skonfiguruj interfejsy sieciowe (Netplan):
      • Interfejs LAN (wewnętrzny): Statyczny IP (np. 172.16.0.1/22 - lub ten który ustawiłeś w Zad. 130).
      • Interfejs WAN (internet): Dynamiczny (DHCP) lub statyczny (zgodny z podsiecią NAT VirtualBoxa).
    • Włącz przekazywanie pakietów (IP Forwarding) w jądrze systemu.
    • Skonfiguruj NAT (Maskaradę) przy użyciu iptables (lub ufw), aby ruch z sieci wewnętrznej był tłumaczony na adres interfejsu WAN.
  3. Konfiguracja Maszyny 2 (Klient):

    • Ustaw Bramę Domyślną (Gateway) na adres IP Maszyny 1 (interfejs wewnętrzny).
    • Ustaw serwer DNS (np. 8.8.8.8 lub 1.1.1.1).

Kroki do wykonania

Krok 1: Dodanie karty sieciowej (Maszyna 1)

  1. Wyłącz Maszynę 1.
  2. W ustawieniach VirtualBox -> Sieć -> Karta 2 -> Włącz kartę sieciową -> Podłączona do: NAT.
  3. Uruchom maszynę.

Krok 2: Konfiguracja Netplan (Maszyna 1)

  1. Sprawdź nazwę nowego interfejsu (ip a).
  2. Edytuj plik w /etc/netplan/.
  3. Dodaj konfigurację dla drugiego interfejsu (zazwyczaj dhcp4: true dla NAT).
  4. Zastosuj zmiany: sudo netplan apply.
  5. Sprawdź, czy masz internet na Maszynie 1 (ping google.com).

Krok 3: Włączenie routingu (Maszyna 1)

  1. Edytuj plik /etc/sysctl.conf.
  2. Odkomentuj linię: net.ipv4.ip_forward=1.
  3. Przeładuj ustawienia: sudo sysctl -p.

Krok 4: Konfiguracja NAT (Maszyna 1)

Możesz użyć iptables (tradycyjnie) lub innego narzędzia. Przykład iptables (zakładając, że enp0s8 to interfejs WAN z internetem):

sudo iptables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE

Pamiętaj, aby zapisać reguły iptables (np. pakiet iptables-persistent), aby przetrwały restart.

Krok 5: Konfiguracja Klienta (Maszyna 2)

  1. Na Maszynie 2 edytuj Netplan.
  2. Dodaj gateway4: ADRES_IP_MASZYNY_1_WEW (np. 172.16.0.1).
  3. Dodaj sekcję nameservers i adresy (np. [8.8.8.8, 1.1.1.1]).
  4. sudo netplan apply.

Krok 6: Weryfikacja

  1. Z Maszyny 2 spróbuj pingować 8.8.8.8 (test połączenia IP).
  2. Z Maszyny 2 spróbuj pingować google.com (test DNS).
  3. Użyj traceroute 8.8.8.8 na Maszynie 2, aby zobaczyć, czy ruch przechodzi przez Maszynę 1.

Zadanie do oddania

Przygotuj sprawozdanie zawierające:

  1. Maszyna 1: Wynik ip a (pokazujący 2 interfejsy).
  2. Maszyna 1: Wynik sysctl net.ipv4.ip_forward.
  3. Maszyna 1: Zrzut reguł NAT (sudo iptables -t nat -L -v).
  4. Maszyna 2: Wynik ip route (pokazujący default gateway).
  5. Maszyna 2: Wynik ping google.com (potwierdzenie dostępu do internetu).