====== Linux zum Router konfigurieren ====== ===== Voraussetzungen ===== Ein Computersystem mit zwei Netzwerkschnittstellen und einem installierten Ubuntu Server 18.04 LTS. Eine Netzwerkkarte muss mit dem Internet verbinden sein, die andere mit dem lokalen Netzwerk. Hinweis: Da man im Zuge der Konfiguration die Linux-Firewall aktiviert, sollte man die Konfiguration nicht per SSH durchführen. ==== Konfiguration der Netzwerkkarten ==== Interface mit Internetzugriff: auf DHCP belassen (oder die vom Provider angegebenen Einstellungen übernehmen) Interface mit LAN-Zugriff: Statische IP aus dem Subnetz, das für das LAN verwendet werden soll. In Ubuntu 18.04 LTS geschieht die Konfiguration der Netzwerkadapter mit Hilfe von [[linux:systemd_netzwerkeinstellungen_aendern|Netplan]] Die geänderte Netzwerkkonfiguration wird mit folgenden Befehlen gespeichert und angewendet: sudo netplan generate sudo netplan apply ==== DHCP-Server aufsetzen ==== Zur Verteilung der Netzwerkeinstellungen installiert man einen DHCP-Server. Bei Ubuntu 18.04 LTS habe ich diesen genommen: sudo apt-get install isc-dhcp-server Als erstes gibt man in der Datei /etc/default/isc-dhcp-server an, auf welchen Interfaces das DHCP Anfragen beantworten soll (Option INTERFACESv4) In der dhcpd.conf definiert man die zu verteilenden Einstellungen: option domain-name-servers 8.8.8.8, 8.8.4.4; option routers **IPAdresse des Servers hier eintragen**; default-lease-time 600; max-lease-time 7200; ddns-update-style none; authoritative; subnet 172.16.0.0 netmask 255.255.0.0 { range 172.16.10.0 172.16.99.255; option subnet-mask 255.255.0.0; option broadcast-address 172.16.255.255; } Alternativ einzelnen Hosts feste IP-Adressen zuteilen: host wiki { hardware ethernet 00:00:0e:d2:da:be; fixed-address 192.168.2.5; option host-name "wiki"; } Zuletzt DHCP aktivieren und als selbststartenden Serverdienst registrieren: sudo systemctl restart isc-dhcp-server sudo systemctl enable isc-dhcp-server ==== Firewall ==== Firewall aktivieren: sudo ufw enable Weiterleitung von IP-Paketen zwischen den Interfaces erlauben: /etc/ufw/sysctl.conf file: net/ipv4/ip_forward=1 Die Firewall wird mit Hilfe von iptables-Einstellungen konfiguriert. Sollen diese nach einem Neustart wieder angewendet werden, müssen diese beim Start des Servers über ein Script ausgeführt werden. Das geht beispielsweise durch das Anlegen der rc.local sudo nano /etc/rc.local In diesem Script ist eth0 die WAN-Schnittstelle und eth1 die LAN-Schnittstelle. Bitte entsprechend den Begebenheiten anpassen. #!/bin/bash # Standard-Policy: Alle eingehenden Packete verwerfen iptables -P INPUT DROP iptables -P FORWARD DROP # Eingehende Packete von Localhost und vom LAN akzeptieren iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i eth1 -j ACCEPT # Eingehende Packete von WAN akzeptieren, wenn der Router die Verbindung geöffnet hat iptables -A INPUT -i eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # LAN-Packete zur WAN-Schnittstelle weiterleiten iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT # WAN-Packete zum LAN weiterleiten, wenn die Verbindung vom Router geöffnet wurde iptables -A FORWARD -i eth0 -o eth1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # Ausgehenden Traffic per NAT maskieren iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # rc.local mus mit exit 0 enden exit 0 Die rc.local muss mit sudo chmod 755 /etc/rc.local ausführbar gemacht werden. [[https://www.ascinc.com/blog/linux/how-to-build-a-simple-router-with-ubuntu-server-18-04-1-lts-bionic-beaver/|Quelle]] Weitere Infos bzgl. [[https://linux.die.net/man/8/iptables|iptables]] {{tag>[Linux Router configuration]}}