Proxmox + Hetzner + 1 Public IP - Privates Lan erstellen (Problematik)

neevot

New Member
Hallo zusammen,

ich habe seit kurzem einen Dedi. Server bei Hetzner gemietet und bin sofort auf eine kleine Herausforderung gestoßen.


Ich habe nur eine öffentliche IP-Adresse und möchte bei dieser einen bleiben. Ich habe ein kleines privates Subnetz erstellt, das wie folgt aussieht:

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

auto lo
iface lo inet loopback


iface lo inet6 loopback


auto enp9s0
iface enp9s0 inet static
        address xxxxx/26
        gateway xxxx
        up route add -net xxxx netmask 255.255.255.192 gw xxxx dev enp9s0
# gw


iface enp9s0 inet6 static
        address XXXX
        gateway fe80::1


auto vmbr99
iface vmbr99 inet static
        address 10.1.1.1
        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.1.1.0/24' -o enp9s0 -j MASQUERADE
        post-down iptables -t nat -D POSTROUTING -s '10.1.1.0/24' -o enp9s0 -j MASQUERADE

Was ich zusätzlich getestet habe, ist das Folgende. Allerdings habe ich kein positives Ergebnis erhalten:
Beispiel:
Code:
iptables -t nat -A PREROUTING -d xxx -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.1.1.3:80

Meine VMS/LXC-Container können auf das Internet zugreifen. Allerdings kann ich z.B. auf den WebServer von EXTERN (VM1) über Port 80 nicht zugreifen. Woran könnte das noch liegen?
 
Last edited:
Code:
iptables -t nat -A PREROUTING -d xxx -p tcp -m tcp --dport 443 -j DNAT --to-destination 10.1.1.3:80
Du leitest den https-Port auf den http-Port um? :confused: Dann musst Du ja im Browser angeben: http://deinedomain.tld:443. Da könnte ich vermuten, dass Dir so mancher Browser das nicht frisst und da https draus macht, was zu einem Fehler führt. Du kannst natürlich auch noch in der VM https auf Port 80 konfigurieren - kleiner Scherz :p. Ich schlage vor erst einmal entweder http + 80 oder https + 443. Alternative wäre mal mit Kommandozeilenprogrammen zu testen(wget), die machen mehr, was Du sagst.

Kannst Du die VM 10.1.1.3 vom Proxmox-Host aus erfolgreich pingen?

Ansonsten: Wenn Du von irgend einem Rechner ausserhalb des dedizierten Servers Deine Public-IP:443 oder Public-IP:80 aufruftst, dann ...

a) Siehst Du mit tcpdump auf dem Proxmox-Host den ankommenden Request?
b) Siehst Du mit tcpdump auf der VM(10.1.1.3) den ankommenden Request?
 
Hallo und danke für die schnelle Antwort!

Der Port war leider nur ein Tippfehler meinerseits, ich habe ihn kurz von einer Website kopiert und geändert. Auf Proxmox war er natürlich vorher richtig.

- Ich konnte die Maschine mit Proxmox erfolgreich auf der VM anpingen.

TCPDump sagt mir im Moment leider nichts. Werde ich mir morgen erstmal anschauen!
 
Hallo,

Proxmox -> Virtual Machine 10.1.1.5:
Code:
root@proxmox ~ # ping 10.1.1.5
PING 10.1.1.5 (10.1.1.5) 56(84) bytes of data.
64 bytes from 10.1.1.5: icmp_seq=1 ttl=64 time=0.052 ms
64 bytes from 10.1.1.5: icmp_seq=2 ttl=64 time=0.012 ms
64 bytes from 10.1.1.5: icmp_seq=3 ttl=64 time=0.012 ms
64 bytes from 10.1.1.5: icmp_seq=4 ttl=64 time=0.012 ms
^C
--- 10.1.1.5 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3064ms
rtt min/avg/max/mdev = 0.012/0.022/0.052/0.017 ms


Virtual Machine -> Internet:
Code:
root@test:~# apt-get update
Hit:1 https://download.docker.com/linux/ubuntu focal InRelease
Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
Get:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Get:4 http://archive.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Fetched 228 kB in 1s (269 kB/s)
Reading package lists... Done
 
Ein weiteres, hilfreiches Werkzeug für die Fehlersuche ist noch  nmap:

Von außen schauen, ob - einer oder mehrere - Ports offen sind:

Code:
nmap -p80 -P0 publicIP

Das -P0 braucht man nur in Ausnahmefällen.
 
Port scheint geschlossen zu sein.

Ich kann jedoch von Proxmox aus (intern) per curl die Apache Website öffnen (port 80).

Und die Firewall ist ebenfalls inaktiv..
 
Das da einmal 10.1.1.3 und ein anderes 10.1.1.5 steht ist auch keine Verwechslung?
 
Last edited:
Unabhängig von der Fehlersuche
Gerade bei HTTP/HTTPS würde ich allein schon aus Gründen der Sicherheit, Verfügbarkeit und Protokollierung auf dem Host einen kleinen Reverse-Proxy erstellen und nur benamte vHosts auf die einzelnen VMs durchrouten.
 
Back
Top