Problem mit IP Forwarding.

ByteFax

Member
Apr 5, 2020
11
0
6
49
Guten Tag,

Ich habe ein kleines Problem.

Mein ProxMox Server steht im Internet mit einer "öffentlichen" IP
zwei der Virtuellen Maschinen haben ebenfalls öffentliche IPs, diese werden über den ProxMox Server routet.

Soweit klappt das eigentlich, einer der beiden Server ist z.B. ein Web Server, und dieser ist auch aus dem Internet erreichbar.

Aber im logfile des Webservers werden alle anfrage so angezeigt als hätte der Proxmox diese geschickt,
also Absender IP ist nicht die des jeweiligen users sondern die IP des Proxmox.
(mit Ausnahme von IPv6, da wird alles richtig angezeigt)

Das ganze setzt sich auch so fort, das ich z.B. auf den Web Server via SSH connecten kann, aber auch bei dieser Verbindung wird der Hauptserver
als Absender angezeigt.

Versucht nun jemand fremdes (und das passiert irgendwie ja andauernd) auf den SSH zu connecten wird seine IP nach ein paar fehlversuchen geblacklistet.
Da aber die IP des Hauptservers angezeigt wird und nicht die des Angreifers, wird natürlich diese gebacklistet, und es ist gar kein Zugang zum SSH mehr möglich.
(auch hier funktioniert es mit IPv6 vernünftig, nur bei IPv4 gibts dieses Problem)
 
Wie sieht denn die Netzwerkkonfiguration auf dem Proxmox für die VM's aus?
 
Ich habe jetzt schon viel herum probiert, und hoffentlich damit nicht einiges verschlimmbessert ..

so wie sie aktuell ist funktioniert eigenltich alles nur halt eben die beiden VMs welche die öffentlichen IPs erhalten
sehen als absender nur den Proxmox

Code:
source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback
iface lo inet6 loopback

auto enp2s0
iface enp2s0 inet static
        address 144.76.222.51
        netmask 255.255.255.255
        gateway 144.76.222.33
        pointopoint 144.76.222.33
        up route add -net 144.76.222.32 netmask 255.255.255.224 gw 144.76.222.33 dev enp2s0

iface enp2s0 inet6 static
        address 2a01:4f8:201:32:c0ca:c01a:add5:11fe
        netmask 128
        gateway fe80::1
        up sysctl -p


auto vmbr0
iface vmbr0 inet static
        address 144.76.222.51/32
        bridge-ports none
        bridge-stp off
        bridge-fd 0
        bridge_maxwait 0
        pre-up brctl addbr vmbr0

        up ip route add 144.76.222.26/32 dev vmbr0
        up ip route add 144.76.222.21/32 dev vmbr0
        
        iface vmbr0 inet6 static
        address 2a01:4f8:201:32::2
        netmask 64
        up ip -6 route add 2a01:4f8:201:32::/64  dev vmbr0


auto vmbr2
iface vmbr2 inet static
    address 10.0.0.254
    netmask 255.255.255.0
    bridge_ports none
    bridge_stp off
    bridge_fd 0
    post-up echo 1 > /proc/sys/net/ipv4/ip_forward
    post-up iptables -t nat -A POSTROUTING -s '10.0.0.0/24' -o vmbr0 -j MASQUERADE
    post-down iptables -t nat -F



oben ist der Proxmox

und das hier unten ist die z.B. die .21





Code:
source /etc/network/interfaces.d/*


auto lo
iface lo inet loopback

# ens18
auto ens18
iface ens18 inet static
        address 144.76.222.21
        netmask 255.255.255.255
        pointopoint 144.76.222.51

        post-up ip route add 144.76.222.51 dev ens18
        post-up ip route add default via 144.76.222.51 dev ens18
        pre-down ip route del default via 144.76.222.51 dev ens18
        pre-down ip route del 144.76.222.51 dev ens18

        dns-nameservers 1.1.1.1



iface ens18 inet6 static
        address 2a01:4f8:201:32:c01d:feed::21
        netmask 64
        gateway 2a01:4f8:201:32::2



# ens19
allow-hotplug ens19
iface ens19 inet static
        address 10.0.0.221/24

log von dem nginx sieht dann z.B. so aus


Code:
root@web:/home/bytefax# tail /var/log/nginx/access.log
144.76.222.51 - - [05/Apr/2020:20:10:34 +0200] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4090.0 Safari/537.36 Edg/83.0.467.0"
144.76.222.51 - - [05/Apr/2020:20:10:34 +0200] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4090.0 Safari/537.36 Edg/83.0.467.0"
2a02:8106:1e:1a80:91d3:933:417e:9895 - - [05/Apr/2020:20:10:39 +0200] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4090.0 Safari/537.36 Edg/83.0.467.0"
144.76.222.51 - - [05/Apr/2020:20:10:42 +0200] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4090.0 Safari/537.36 Edg/83.0.467.0"
144.76.222.51 - - [05/Apr/2020:20:11:03 +0200] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4090.0 Safari/537.36 Edg/83.0.467.0"
144.76.222.51 - - [05/Apr/2020:20:12:49 +0200] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4090.0 Safari/537.36 Edg/83.0.467.0"
144.76.222.51 - - [05/Apr/2020:20:22:49 +0200] "GET / HTTP/1.1" 200 396 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
144.76.222.51 - - [05/Apr/2020:20:32:02 +0200] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4090.0 Safari/537.36 Edg/83.0.467.0"
144.76.222.51 - - [05/Apr/2020:20:51:23 +0200] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 173 "-" "-"
144.76.222.51 - - [05/Apr/2020:21:16:40 +0200] "GET / HTTP/1.0" 200 612 "-" "-"

alle zugriffe erfolgen von der 51 , nur die IPv6 zugriffe sind richtig addressiert
 
Nach deiner Konfiguration routest du den ganzen IPV4 Verkehr über die ip mit der x.52 am Ende.
Daher ist das auch die IP, welche in den Logs auftaucht.

Das müsste eher so aussehen:


iface enp2s0 inet manual

auto vmbr0
iface vmbr0 inet static
address 144.76.222.51/32
netmask 255.255.255.255
gateway 144.76.222.33
bridge-ports enp2s0
bridge-stp off
bridge-fd 0
bridge_maxwait 0
pre-up brctl addbr vmbr0
# pointopoint 144.76.222.33 #

Diese IP 144.76.222.26/32 vergibst du in der VM1 und hängst die an vmbr0
Als Gateway in der VM dann 144.76.222.33

DIese IP144.76.222.21/32 vergibst du in der VM2 und hängst die auch an vmbr0
Als Gateway in der VM dann 144.76.222.33

Bitte vorher noch mal gegenprüfen und nicht einfach copy'n paste machen.
Es kann hier Probleme geben, da nun auf dem Interface enp2s0 mehrere MAC Adressen auflaufen.
( die der NIX enp2s0 und die beiden der VM's) Evtl. mag dein Hoster das nicht.
 
Last edited:
ich hatte es gerade mal so versucht wie du es hier geschrieben hast.

dann waren plötzlich alle zugriffe im log nicht mehr von der x.51 sondern von der x.26
bis ich gemerkt hatte das du noch ein gateway eingefügt hattes, .. nach dem einfügen des gateways war allerdings keinerlei
kontaktaufnahme mehr möglich
 
Ich hatte meinen Post zu früh abgeschickt und noch mal geändert, weil da Müll drin war.
So wie er jetzt oben steht kann es evtl. funktionieren.
 
Ich hab das aktuell noch nicht durchgeführt, ich erinnere mich etwas "ähnliches" am Anfang mal probiert zu haben .
( ich muss bevor ich das einbauen kann erstmal neue Mac Adressen vom Provider anfordern sonst funktionieren die IPs nicht)

Damals hatte ich bei dieser Konfiguration allerdings die Problematik das ich das IPv6 nicht mehr zum laufen bekommen habe

Ich schau eben mal nochmal wie ich mac adressen für die IPs angefordert bekomm ;)
 
okay, hab die Macs bekommen , und in die entsprechenden VMs eingebaut, und die config nun ausprobiert ..

leider ist sowohl Proxmox als auch alles dahinter nun komplett unresponsive ..

// edit

ich muss mich korrigieren, der proxmox is unresponsiv , aber die 21 kann ich noch erreichen


vorher

Code:
  1    <1 ms    <1 ms    <1 ms  WIN-6BEJ9CP8L8R [172.31.250.1]
  2     1 ms    <1 ms    <1 ms  static.225.196.243.136.clients.your-server.de [136.243.196.225]
  3     1 ms    <1 ms    <1 ms  core23.fsn1.hetzner.com [213.239.229.57]
  4     1 ms     1 ms    <1 ms  ex9k1.dc11.fsn1.hetzner.com [213.239.203.142]
  5     1 ms     1 ms    <1 ms  edge.bytefax.de [144.76.222.51]
  6     1 ms     1 ms    <1 ms  web.bytefax.de [144.76.222.21]

nachher

Code:
  1     1 ms    <1 ms    <1 ms  WIN-6BEJ9CP8L8R [172.31.250.1]
  2     1 ms     3 ms     2 ms  static.225.196.243.136.clients.your-server.de [136.243.196.225]
  3     5 ms     3 ms     1 ms  core23.fsn1.hetzner.com [213.239.229.57]
  4     1 ms     3 ms     2 ms  ex9k1.dc11.fsn1.hetzner.com [213.239.203.142]
  5     1 ms    <1 ms    <1 ms  web.bytefax.de [144.76.222.21]

nu muss ich erstmal schauen wie ich an den proxmox wieder herrankomm ;)
 
Für mich riecht das nach NAT. Wenn der Traffic vom Proxmox an die VM geroutet wird, und dabei die Absenderadresse durch die IP des Proxmox ersetzt wird, ist das ein Routing mit NAT.
Ich bin kein Kunde bei Hetzner und kann daher auch nicht wirklich was zu deren Netzwerk sagen, aber eigentlich sollte eine öffentliche IP nicht per NAT sondern ganz normal geroutet werden.
 
Ja offenbar verträgt sich Routing + Nat nicht , bzw. ist dieses nicht kombinierbar

2 VMs sollten ja direkt zwei öffentliche IPs geroutet bekommen über eine eigene Bridge,
hingegen sollten 4 andere VMs welche an einer andere Bridge angebunden sind zumindest nach außen mit dem Internet kommunizieren können.
Diese müssen von außen nicht erreichbar sein, bzw. sollen es direkt auch eigentlich gar nicht.

Offenbar ist diese nicht so ohne weiteres möglich.

Ich habe das NAT nun erst einmal entfernt, und die beiden VMs können nun auch so wie es gedacht war ihre Öffentlichen IPs nutzen.
 
Routing und NAT gehen schon immer Hand in Hand. Bei jedem Router zu Hause wird NAT gemacht um die privaten IP Adressen deines eigenen Netzwerks bei dir zu Hause auf die öffentlichen IP Adresse des Providers auf der WAN Seite deines Routers zu übersetzen.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!