Topton server: netwerk setup voor Proxmox
Nginx Proxy Manager (NPM)
NPM is een gebruiksvriendelijke en webgebaseerde tool voor het instellen en beheren van een reverse proxy op basis van Nginx. Het wordt veel gebruikt om meerdere diensten en applicaties op één server of netwerk toegankelijk te maken via het internet, vaak via een domeinnaam en een beveiligde verbinding (SSL).

Hoe het werkt:
Een reverse proxy fungeert als tussenpersoon tussen externe gebruikers en uw interne diensten.
- Het ontvangt aanvragen van gebruikers
- Het stuurt deze door naar de juiste interne applicatie of server
- En het stuurt antwoorden terug naar de gebruikers
We nemen Meshcentral als applicatie voorbeeld:
- U wilt uw MeshCentral systeem benaderen via: https://meshdemo.example.com
- De reverse proxy stuurt de aanvraag door naar de gekoppelde interne applicatie op bijvoorbeeld http://192.168.1.25:3000
- De interne applicatie stuurt de output vervolgens naar uw beeldscherm
Beveiliging van uw netwerk omgeving
Als u bepaalde applicaties op uw systeem via het internet wilt kunnen benaderen dan moet u dat wel goed beveiligen, u wilt natuurlijk geen criminele hackers op uw eigen netwerk hebben.

Enige goede beveiligingsmethodes:
- Meest veilige: volledige isolatie van het internet, maar dan geen externe toegang...
- Een eigen VPN wat op uw eigen apparatuur draait zoals Wireguard, OpenVPN en IPsec/IKEv2
- Met behulp van de NGINX proxy manager

Laten we de NGINX proxy manager maar eens gaan installeren op een Proxmox server met een applicatie voorbeeld.
We gaan er even van uit dat u al een Promox server operationeel heeft en u daar al een of meer applicatie containers op heeft draaien.
auto lo
iface lo inet loopback
auto wlp5s0
iface wlp5s0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
metric 200
# WiFi fallback
iface enp1s0 inet manual
iface enp2s0 inet manual
iface enp3s0 inet manual
iface enp4s0 inet manual
auto vmbr0
iface vmbr0 inet dhcp
bridge-ports enp1s0
bridge-stp off
bridge-fd 0
metric 100
# WAN-ETH0
auto vmbr1
iface vmbr1 inet manual
bridge-ports enp2s0
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
# LAN-ETH1 → Trunk naar OPNsense
auto vmbr2
iface vmbr2 inet manual
bridge-ports enp3s0
bridge-stp off
bridge-fd 0
# LAN-ETH2
auto vmbr3
iface vmbr3 inet manual
bridge-ports enp4s0
bridge-stp off
bridge-fd 0
# LAN-ETH3
source /etc/network/interfaces.d/*
nano /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=NL
network={
ssid="Wifi-A"
psk="wifi-A-wachtwoord"
priority=4
}
network={
ssid="Wifi-B"
psk="wifi-B-wachtwoord"
priority=3
}
network={
ssid="Smartphone-Hotspot"
psk="hotspot-wachtwoord"
priority=2
}
# priority waarde: hoogste cijfer wint!
# PublicRoam: alleen Internet en port 80/443 toegang!
network={
ssid="PublicRoamSSID"
key_mgmt=WPA-EAP
eap=PEAP
identity="uw-id"
password="uw-wachtwoord"
phase1="peaplabel=0"
phase2="auth=MSCHAPV2"
priority=1
}
Als je de bovenstaande configuratie hebt ingesteld en je daarna je Topton server herstart zonder de WAN internet kabel dan wordt er een WIFI verbinding gemaakt en krijgt het systeem via DHCP de IP-instellingen binnen. Dit natuurlijk van het WIFI netwerk wat beschikbaar is en dit dan volgens de prioriteit volgorde. Voor de volgende commando's maar eens uit in de Proxmox shell, je krijgt dan zoiets te zien:
root@pvemaster:~# ip route
default via 192.168.1.1 dev wlp5s0
192.168.1.0/24 dev wlp5s0 proto kernel scope link src 192.168.1.55
root@pvemaster:~#
root@pvemaster:~# ip a
1: lo: 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 noprefixroute
valid_lft forever preferred_lft forever
2: enp1s0: mtu 1500 qdisc mq master vmbr0 state UP group default qlen 1000
link/ether 60:be:b4:1b:4e:28 brd ff:ff:ff:ff:ff:ff
3: enp2s0: mtu 1500 qdisc mq master vmbr1 state DOWN group default qlen 1000
link/ether 60:be:b4:1b:4e:29 brd ff:ff:ff:ff:ff:ff
4: enp3s0: mtu 1500 qdisc mq master vmbr1 state DOWN group default qlen 1000
link/ether 60:be:b4:1b:4e:2a brd ff:ff:ff:ff:ff:ff
5: enp4s0: mtu 1500 qdisc mq master vmbr1 state DOWN group default qlen 1000
link/ether 60:be:b4:1b:4e:2b brd ff:ff:ff:ff:ff:ff
6: wlp5s0: mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 60:e3:2b:fc:f3:96 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.55/24 brd 192.168.1.255 scope global dynamic wlp5s0
valid_lft 83146sec preferred_lft 83146sec
inet6 fd09:6986:804d:eb4c:62e3:2bff:fefc:f396/64 scope global dynamic mngtmpaddr
valid_lft 1290sec preferred_lft 1290sec
inet6 fe80::62e3:2bff:fefc:f396/64 scope link
valid_lft forever preferred_lft forever
7: vmbr1: mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 60:be:b4:1b:4e:29 brd ff:ff:ff:ff:ff:ff
inet6 fe80::62be:b4ff:fe1b:4e29/64 scope link
valid_lft forever preferred_lft forever
8: vmbr0: mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 60:be:b4:1b:4e:28 brd ff:ff:ff:ff:ff:ff
inet6 fe80::62be:b4ff:fe1b:4e28/64 scope link
valid_lft forever preferred_lft forever
9: tap1100i0: mtu 1500 qdisc pfifo_fast master vmbr0 state UNKNOWN group default qlen 1000
link/ether d2:a0:81:74:a1:ca brd ff:ff:ff:ff:ff:ff
10: tap1100i1: mtu 1500 qdisc mq master vmbr1 state UNKNOWN group default qlen 1000
link/ether ca:98:b0:a9:a1:12 brd ff:ff:ff:ff:ff:ff
11: veth1101i0@if2: mtu 1500 qdisc noqueue master vmbr1 state UP group default qlen 1000
link/ether fe:dc:14:c3:cb:0e brd ff:ff:ff:ff:ff:ff link-netnsid 0
root@pvemaster:~#
Start de server nu nog eens opnieuw op maar dan met aangesloten netwerkkabel (ETH0), zelfde commando's geven een ander resultaat:
default via 192.168.10.1 dev vmbr0
192.168.10.0/24 dev vmbr0 proto kernel scope link src 192.168.10.44
192.168.1.0/24 dev wlp5s0 proto kernel scope link src 192.168.1.55
root@pvemaster:~#
root@pvemaster:~# ip a
1: lo: 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 noprefixroute
valid_lft forever preferred_lft forever
2: enp1s0: mtu 1500 qdisc mq master vmbr0 state UP group default qlen 1000
link/ether 60:be:b4:1b:4e:28 brd ff:ff:ff:ff:ff:ff
3: enp2s0: mtu 1500 qdisc mq master vmbr1 state DOWN group default qlen 1000
link/ether 60:be:b4:1b:4e:29 brd ff:ff:ff:ff:ff:ff
4: enp3s0: mtu 1500 qdisc mq master vmbr1 state DOWN group default qlen 1000
link/ether 60:be:b4:1b:4e:2a brd ff:ff:ff:ff:ff:ff
5: enp4s0: mtu 1500 qdisc mq master vmbr1 state DOWN group default qlen 1000
link/ether 60:be:b4:1b:4e:2b brd ff:ff:ff:ff:ff:ff
6: wlp5s0: mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 60:e3:2b:fc:f3:96 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.55/24 brd 192.168.1.255 scope global dynamic wlp5s0
valid_lft 82952sec preferred_lft 82952sec
inet6 fd09:6986:804d:eb4c:62e3:2bff:fefc:f396/64 scope global dynamic mngtmpaddr
valid_lft 1715sec preferred_lft 1715sec
inet6 fe80::62e3:2bff:fefc:f396/64 scope link
valid_lft forever preferred_lft forever
7: vmbr1: mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 60:be:b4:1b:4e:29 brd ff:ff:ff:ff:ff:ff
inet6 fe80::62be:b4ff:fe1b:4e29/64 scope link
valid_lft forever preferred_lft forever
8: vmbr0: mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 60:be:b4:1b:4e:28 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.44/24 brd 192.168.10.255 scope global dynamic vmbr0
valid_lft 82947sec preferred_lft 82947sec
inet6 fe80::62be:b4ff:fe1b:4e28/64 scope link
valid_lft forever preferred_lft forever
9: tap1100i0: mtu 1500 qdisc pfifo_fast master vmbr0 state UNKNOWN group default qlen 1000
link/ether da:0c:4e:54:b4:3e brd ff:ff:ff:ff:ff:ff
10: tap1100i1: mtu 1500 qdisc mq master vmbr1 state UNKNOWN group default qlen 1000
link/ether 4e:b6:69:5c:60:d6 brd ff:ff:ff:ff:ff:ff
11: veth1101i0@if2: mtu 1500 qdisc noqueue master vmbr1 state UP group default qlen 1000
link/ether fe:f8:ee:4b:f6:f7 brd ff:ff:ff:ff:ff:ff link-netnsid 0
root@pvemaster:~#