Dieser CT dient als Firewall zwischen den einzelnen Netzen.
ToDo:
Template natürlich das eigene!
Eine Festplatte mir nur 1GB? Reicht problemlos, denn wirklich viele Daten fallen auf diesem CT nicht an.
Auch beim Speicher dürfen wir knausern. Selbst bei nur 128mb kommt die Firewall nicht zum swappen, somit sind selbst die 16mb eigentlich zu viel.
Das Thema Netzwerk habe ich in den Vorgaben erschlagen. Für den Start müssen wir mit der Firewall ins Haus-Netz (eth0).
Oben Rechts im Proxmox-Frontend auf 'Create CT' klicken um den Container zu erstellen.
Der neue Container wird noch nicht gestartet!
Für unseren neuen Container müssen wir auch noch die weiteren Netzwerk-Karten installieren. Also Links auf unseren Container '230', dann Rechts auf das Tab 'Network'. Jeweils mit 'Add' erstellen wir zwei weitere Interfaces, so dass am Schluss 3 vorhanden sind:
Die Firewall muss automatisch gestartet werden. Also die entsprechende Option aktivieren.
Die im CT, nicht die vom Host, also die "/Pool1/subvol-230-disk-1/etc/hosts"
127.0.0.1 localhost 192.168.99.248 firewall.intern.comasys.ch firewall ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
Und gleich mit SSH Auf den Container:
ssh root@62.2.169.230 -p55
Die Firewall wird später noch optimiert - und sicherer gemacht.
Vorerst müssen wir nur das Masquerading für das LAN und das rechnerinterne Netz einschalten, und dafür sorgen dass Pakete aus den Netzen gegenseitig weitergereicht werden.
Ich gebe zu, Firewall sollte das nicht wirklich genannt werden, schliesslich wird hier nichts geblockt - aber für die ersten Tests reicht es. Insbesondere steht der Rechner ja noch nicht im Internet.
Neu zu erstellen
#! /bin/bash echo 1 >/proc/sys/net/ipv4/ip_forward iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE iptables -t nat -A POSTROUTING -s 192.168.99.0/24 -o eth0 -j MASQUERADE iptables -A FORWARD -s 192.168.0.0/24 -d 192.168.99.0/24 -j ACCEPT iptables -A FORWARD -s 192.168.99.0/24 -d 192.168.0.0/24 -j ACCEPT
Das Script muss ausführbar sein, also
chmod +x /etc/network/firewall.sh
Die muss angepasst werden:
beim letzten "iface eth..." muss noch folgende Zeile angefügt werden:
post-up /etc/network/firewall.sh
Das Resultat müsste dann in etwa so aussehen
auto lo iface lo inet loopback auto eth1 iface eth1 inet static address 192.168.0.230 netmask 255.255.255.0 auto eth0 iface eth0 inet static address 62.2.169.230 netmask 255.255.255.240 gateway 62.2.169.40 auto eth9 iface eth9 inet static address 192.168.99.230 netmask 255.255.255.0 post-up /etc/network/firewall.sh
Die endgültige Fassung hat alle Netzwerke eingetragen.
127.0.0.1 localhost 192.168.0.230 firewall.local.comasys.ch 62.2.169.230 firewall.comasys.ch 192.168.99.230 firewall.intern.comasys.ch firewall ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
Jetzt muss der Container neu gestartet werden, dann per ssh wieder drauf. Unbedingt testen, ob auch das Internet noch funktionniert:
müsste etwa so aussehen
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=?? time=?? ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=?? time=?? ms 64 bytes from 8.8.8.8: icmp_seq=3 ttl=?? time=?? ms --- 8.8.8.8 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time ??ms rtt min/avg/max/mdev = ??/??/??/?? ms
Der Host ist in Zukunft nicht mehr als 62.2.169.248 sondern als 192.168.99.248 erreichbar.
127.0.0.1 localhost 192.168.99.248 proxmox1.intern.comasys.ch proxmox1 ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
Bei der aktuellen vmbr0 wird alles rausgelöscht
Die vmbr1 bleibt leer
Und die virtuelle vmbr9 wird aktiviert
Damit dies Änderungen aktiv werden, muss der Rechner (nicht der Container!) eines letztes mal neu gestartet werden.
In der aktuellen Version (Debian 8 mit systemd, Proxmox
Kern 4.4.35-2)
braucht es gelegentlich zwei oder sogar drei Reboots bis die
Netzwerk-Konfiguration richtig übernommen wird.
Früher konnte ich einfach die "/etc/network/interfaces" von Hand
editieren, aber jetzt erstellt proxmox die Datei dynamisch,
nur offensichtlich nicht immer sauber...
Nach den Reboot jeweils kontrollieren, ob die neue OK ist:
müsste wie folgt aussehen:
default via 192.168.99.230 dev vmbr9 192.168.99.0/24 dev vmbr9 proto kernel scope link src 62.2.169.248
Die ersten beiden Hops sind die Firewall und dann der Router:
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets 1 192.168.99.230 (192.168.99.230) 0.?? ms 0.?? ms 0.?? ms 2 62.2.169.40 (62.2.169.40) 0.?? ms 0.?? ms 0.?? ms
Sobald beide Ausgaben passen, sind wir mit der Firewall erst mal fertig.
Jetzt ist nur noch der Firewall-CT von aussen erreichber, der Host kommuniziert ausschliesslich darüber.