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).

Nginx Proxy Manager (NPM)
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.

Houdt uw netwerk veilig!

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
proxmox

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:~# 

Proxmox VE Helper-Scripts
Hiermee zijn we aan het eind van dit stappenplan, ik hoop dat u er wat aan gehad heeft!