Unix-/Linux Netz

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Netzwerk der Schulung

  • Die WAN-IP wird die 172.22.1.(100 + eigene Nr.)
  • Die Demilitarisierte Zone (DMZ) enthält Services, die von außen erreichbar sein sollen
  • Im LAN befindet sich unser Administratorrechner von dem wir unsere Rechner konfigurieren
  • Das LAN soll Verbindungen ins Internet initiieren können, aber nicht direkt von außen erreichbar sein
xx in den folgenden Bildern durch die eigene Nummer ersetzen
Benutzername für virtuelle Maschinen ist xinux oder root
Passwort ist immer 123Start$

Labor Tag 1

Vorbereiten der Firewall als Router

  • Wir klonen den Rechner "debian-server" und nennen ihn "Firewall"
  • Dieser braucht 3 Netzwerkadapter:
  1. Netzwerkbrücke
  2. Internes Netzwerk "LAN"
  3. Internes Netzwerk "DMZ"
  • Wir starten die Firewall und konfigurieren statische IP Adressen für alle 3 Netzwerkadapter
  • vim /etc/network/interfaces
auto lo
iface lo inet loopback

auto enp0s3
iface enp0s3 inet static
 address 172.22.1.1xx/16
 gateway 172.22.1.1

auto enp0s8
iface enp0s8 inet static
 address 192.168.0.1/24

auto enp0s9
iface enp0s9 inet static
 address 10.0.1.1xx.1/24
  • Interfaces runter und wieder hochfahren, um die neue Konfiguration zu laden
  • ifdown -va
  • ifup -va
  • Danach sollte der Befehl ip address show (oder ip a) die neuen IP Adressen anzeigen
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1456 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:9b:79:a1 brd ff:ff:ff:ff:ff:ff
    inet 172.22.1.1xx/16 brd 172.22.255.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 2003:e5:173a:c401:a00:27ff:fe9b:79a1/64 scope global dynamic mngtmpaddr 
       valid_lft 7134sec preferred_lft 1215sec
    inet6 fe80::a00:27ff:fe9b:79a1/64 scope link 
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:15:03:b7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.1/24 brd 192.168.0.255 scope global enp0s8
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe15:3b7/64 scope link 
       valid_lft forever preferred_lft forever
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:31:01:09 brd ff:ff:ff:ff:ff:ff
    inet 10.0.1xx.1/24 brd 10.0.100.255 scope global enp0s9
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe31:109/64 scope link 
       valid_lft forever preferred_lft forever
  • Im Moment verwirft die Firewall alle Pakete mit IP-Adressen, die nicht für ihn selbst bestimmt sind
  • Um die Pakete uns Default-Gateway weiterzuleiten muss der Kernelparameter net.ipv4.ip_forward gesetzt sein
  • Temporär (bleibt nicht nach einem Reboot):
    • sysctl -w net.ipv4.ip_forward=1 # Einschalten
    • sysctl -w net.ipv4.ip_forward=0 # Ausschalten
  • Für eine persistente Konfiguration muss dieser Parameter in der die Datei /etc/sysctl.conf stehen
  • vim /etc/sysctl.conf
...

# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
...
  • sysctl -p
net.ipv4.ip_forward = 1
  • Source Network Address Translation muss noch geschehen, damit die Pakete mit IP Adressen aus einem privaten Netzwerk den Weg zurück finden
  • vim /etc/nftables.conf
#!/usr/sbin/nft -f

flush ruleset

table inet filter {
    chain input {
        type filter hook input priority 0;
    }
    chain forward {
        type filter hook forward priority 0;
    }
    chain output {
        type filter hook output priority 0;
    }
}

table inet nat {
    chain postrouting {
        type nat hook postrouting priority 100; policy accept;
        oif enp0s3 masquerade
    }
}
  • systemctl restart nftables

Workstation im LAN zum Systemadministrator machen

  • Den Netzwerkadapter von VM "arch-grafisch" auf "Internes Netzwerk LAN" umstellen und die VM starten
  • Wenn wir unsere Netzwerkkonfiguration anschauen, dann sehen wir keine IP Adresse, da noch kein DHCP läuft
  • Deshalb geben wir uns eine temporäre IP, um per SSH auf die Firewall zu kommen
  • ip address add 192.168.0.2/24 dev enp0s3
  • Nun können wir die Firewall per SSH erreichen
  • ssh xinux@192.168.0.1
  • als erstes ändern wir den hostnamen der Firewall von debian zu firewall
  • hostnamectl set-hostname firewall
  • vim /etc/hosts
127.0.0.1 localhost
127.0.1.1 firewall
...
  • Ein erneutes einloggen updatet den Namen im Prompt
  • als nächstes installieren wir einen DHCP Server, um Rechnern im LAN automatisch eine Netzwerkkonfiguration zu geben
  • apt install isc-dhcp-server
  • Am Ende der Installation wird es eine Fehlermeldung geben, da systemd versucht den Dienst zu starten, obwohl noch keine Konfiguration da ist
  • vim /etc/default/isc-dhcp-server
DHCPDv4_CONF=/etc/dhcp/dhcpd.conf
INTERFACESv4="enp0s8"
  • vim /etc/dhcp/dhcpd.conf
option domain-name-servers 1.1.1.1;
default-lease-time 600;
max-lease-time 7200;
authoritative;

subnet 192.168.0.0 netmask 255.255.255.0 {
    range 192.168.0.50 192.168.0.100;
    option routers 192.168.0.1;
}

# Feste IP-Adresse für eine bestimmte MAC-Adresse
host controller {
    hardware ethernet MAC Adresse vom Arch;
    fixed-address 192.168.0.2;
    option routers 192.168.0.1;
}
  • Dienst mit der neuen Konfiguration starten und überprüfen
  • systemctl restart isc-dhcp-server
  • systemctl status isc-dhcp-server
  • Beim Neustart von Arch sollte dann automatisch die 192.168.179.2 bekommen (falls nicht MAC-Adresse überprüfen)

Labor Tag 2

Labor Tag 3

Labor Tag 4

Labor Tag 5