ndreier933
Goto Top

Proxmox Netzwerk mit nur einer public IP

Hallo Community,
ich hatte schonmal eine Frage hier gehabt mit dem selben Thema nun aber etwas anders deshalb neue Frage: Ich bin momentan dabei mein Proxmox für private Testzwecke aufzusetzen und habe dafür einen Root Server bei Hetzner gemietet. Dazu habe ich eine Public IPv4 Adresse bekommen und ein IPv6 Subnetz(IPv6 kommt bei mir nicht in Frage!). Habe Proxmox installiert was dank der ISO kein Hexenwerk ist und habe eine VM mit Windows 10 schon am laufen bekommen. Jetzt bin ich bei der Netzwerkkonfiguration was sich etwas schwierig erweist da ich nur eine IP habe. Im Internet bin ich auf das NAT verfahren gestoßen und habe dies versucht umzusetzen so sieht meine Interfaces Datei aus:
### Hetzner Online GmbH installimage

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback
iface lo inet6 loopback

auto enp3s0
iface enp3s0 inet static
  address 144.76.X.XXX
  netmask 255.255.255.XXX
  gateway 144.76.8.XXX
  # route 144.76.8.XXX/27 via 144.76.8.XXX
  up route add -net 144.76.X.XXXnetmask 255.255.255.XXX gw 144.76.8.XXXdev enp3s0

iface enp3s0 inet6 static
  address 2a01:4f8:190:83e6::2
  netmask 64
  gateway fe80::1

auto vmbr0
iface vmbr0 inet static
        address  172.16.255.254
        netmask  255.255.0.0
        bridge_ports none
        bridge_stp off
        bridge_fd 0

auto vmbr1
iface vmbr1 inet static
        address  192.168.1.253
        netmask  255.255.255.252
        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 '192.168.1.252/30' -o enp3s0 -j MASQUERADE  
        post-down iptables -t nat -D POSTROUTING -s '192.168.1.252/30' -o enp3s0 -j MASQUERADE  

Und dann alles in der VM manuell nachgetragen in den Adapter Einstellungen
Leider baut die VM keine Verbindung zum Internet auf: Bild im Anhang!
Vieleicht habt ihr ja noch eine Lösung
Danke im Vorraus
unbenannt

Content-ID: 487161

Url: https://administrator.de/contentid/487161

Ausgedruckt am: 24.11.2024 um 04:11 Uhr

140770
Lösung 140770 21.08.2019 aktualisiert um 14:04:18 Uhr
Goto Top
Hallo,

hast du nach der Anpassung die Interfaces reloaded?
Prüfen kannst du das mit den Befehlen "ip link" (vmbr1 müsste sichtbar sein) und "iptables -t nat -L" (NAT Einträge müssten drin stehen).

Funktioniert die Internet Verbindung von dem Hostsystem? Wenn nicht, hast du an die Hetzner Firewall gedacht?
VM ist an die Bridge gekoppelt? Ping vom Hostsystem an die VM funktoniert? (Beachte: bei Windows muss eine separate ICMP Regel erstellt werden in der lokalen FW)

Viele Grüße
it-fraggle
it-fraggle 21.08.2019 um 14:57:00 Uhr
Goto Top
Nach dem du die Bridge einestellt hast, bekommst du den Hinweis, dass du den Server neu starten musst. Hast du das gemacht?
ndreier933
ndreier933 21.08.2019 um 15:10:10 Uhr
Goto Top
Danke für die vielen Antworten
habe gerade mit Hetzner gesprochen haben keine Firewall - also kann es das nicht sein
Den Server habe ich auch mehrmals neugestartet.
Mit dem Host kann ich auch ins Internet also besteht difinitiv eine Internetverbindung bis zum Server diese wird nur nicht weitergeleitet an die VMs.

ip link und das Ergebniss ist im Anhang!
unbenannt
140770
140770 21.08.2019 um 15:18:49 Uhr
Goto Top
habe gerade mit Hetzner gesprochen haben keine Firewall - also kann es das nicht sein

Klar bietet Hetzner zu jedem dedizierten Server (auch die aus der Serverbörse) eine kostenlose Firewall, welche man im Robot konfigurieren kann. Vermutlich sind dort die Standardregeln aktiv oder die ist komplett deaktiviert, weil dein Host ja Internet Verbindung hat.

Bitte beantworte noch die anderen Fragen. Dann können wir gerne weitersehen.

Kannst du die VM vom Hostsystem pingen? (Beachte ggf. Windows Firewall)
NAT Regeln via iptables geprüft?
ndreier933
ndreier933 21.08.2019 um 16:23:22 Uhr
Goto Top
Also im Robot geprüft Firewall ist abgeschaltet.
Das Pingen klappt leider nicht!!!
Windows Firewall habe ich zeitweise deaktiviert bringt auch keine Veränderung!!!
"(Beachte: bei Windows muss eine separate ICMP Regel erstellt werden in der lokalen FW)" Damit weiß ich nichts anzufangen genauso wie ich auch nicht weiß wie ich gegen prüfen soll mit IPTables.
Anbei sende ich die Netzwerk Configs von der Proxmox Oberfläche wo alles erkennbar sein sollte!
Danke im Vorraus.
unbenannt
2
140770
Lösung 140770 21.08.2019 aktualisiert um 16:45:14 Uhr
Goto Top
Damit weiß ich nichts anzufangen genauso wie ich auch nicht weiß wie ich gegen prüfen soll mit IPTables.

Die Befehle habe hier bereits gepostet? Aber egal.

Bitte mal von den folgenden Befehlen die Ausgabe posten:

  • iptables -t nat -L
  • iptables -L -n -v
  • ip route
  • cat /proc/sys/net/ipv4/ip_forward

Die Proxmox interne Firewall ist ausgeschaltet?

Edit: Hast du ggf. nachträglich noch über das Proxmox Webinterface die Netzwerk Interfaces deines Hosts konfiguriert? Weil Proxmox überschreibt dann vollständig die Netzwerkkonfiguration einschließlich den NAT Regeln, die du manuell in die /etc/interface Datei geschrieben hast.
ndreier933
ndreier933 21.08.2019 aktualisiert um 16:55:20 Uhr
Goto Top
Sorry habe ich wohl überlesen.
Hier sind die Ergebnisse, ist leider etwas lang:

root@uds-server1 ~ # iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
PREROUTING_direct  all  --  anywhere             anywhere
PREROUTING_ZONES_SOURCE  all  --  anywhere             anywhere
PREROUTING_ZONES  all  --  anywhere             anywhere

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
OUTPUT_direct  all  --  anywhere             anywhere

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
POSTROUTING_direct  all  --  anywhere             anywhere
POSTROUTING_ZONES_SOURCE  all  --  anywhere             anywhere
POSTROUTING_ZONES  all  --  anywhere             anywhere
MASQUERADE  all  --  192.168.1.252/30     anywhere

Chain OUTPUT_direct (1 references)
target     prot opt source               destination

Chain POSTROUTING_ZONES (1 references)
target     prot opt source               destination
POST_public  all  --  anywhere             anywhere            [goto]

Chain POSTROUTING_ZONES_SOURCE (1 references)
target     prot opt source               destination

Chain POSTROUTING_direct (1 references)
target     prot opt source               destination

Chain POST_public (1 references)
target     prot opt source               destination
POST_public_log  all  --  anywhere             anywhere
POST_public_deny  all  --  anywhere             anywhere
POST_public_allow  all  --  anywhere             anywhere

Chain POST_public_allow (1 references)
target     prot opt source               destination

Chain POST_public_deny (1 references)
target     prot opt source               destination

Chain POST_public_log (1 references)
target     prot opt source               destination

Chain PREROUTING_ZONES (1 references)
target     prot opt source               destination
PRE_public  all  --  anywhere             anywhere            [goto]

Chain PREROUTING_ZONES_SOURCE (1 references)
target     prot opt source               destination

Chain PREROUTING_direct (1 references)
target     prot opt source               destination

Chain PRE_public (1 references)
target     prot opt source               destination
PRE_public_log  all  --  anywhere             anywhere
PRE_public_deny  all  --  anywhere             anywhere
PRE_public_allow  all  --  anywhere             anywhere

Chain PRE_public_allow (1 references)
target     prot opt source               destination

Chain PRE_public_deny (1 references)
target     prot opt source               destination

Chain PRE_public_log (1 references)
target     prot opt source               destination
root@uds-server1 ~ # iptables -L -n -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
58268   18M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
  248 16512 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
19591 1278K INPUT_direct  all  --  *      *       0.0.0.0/0            0.0.0.0/0
16636 1100K INPUT_ZONES_SOURCE  all  --  *      *       0.0.0.0/0            0.0.0.0/0
16636 1100K INPUT_ZONES  all  --  *      *       0.0.0.0/0            0.0.0.0/0
 2671  335K DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID
 8191  469K REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
13417  941K FORWARD_direct  all  --  *      *       0.0.0.0/0            0.0.0.0/0
13417  941K FORWARD_IN_ZONES_SOURCE  all  --  *      *       0.0.0.0/0            0.0.0.0/0
13417  941K FORWARD_IN_ZONES  all  --  *      *       0.0.0.0/0            0.0.0.0/0
13417  941K FORWARD_OUT_ZONES_SOURCE  all  --  *      *       0.0.0.0/0            0.0.0.0/0
13417  941K FORWARD_OUT_ZONES  all  --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID
13417  941K REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 96600 packets, 42M bytes)
 pkts bytes target     prot opt in     out     source               destination
96991   42M OUTPUT_direct  all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain FORWARD_IN_ZONES (1 references)
 pkts bytes target     prot opt in     out     source               destination
13417  941K FWDI_public  all  --  +      *       0.0.0.0/0            0.0.0.0/0           [goto]

Chain FORWARD_IN_ZONES_SOURCE (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD_OUT_ZONES (1 references)
 pkts bytes target     prot opt in     out     source               destination
13417  941K FWDO_public  all  --  *      +       0.0.0.0/0            0.0.0.0/0           [goto]

Chain FORWARD_OUT_ZONES_SOURCE (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD_direct (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain FWDI_public (1 references)
 pkts bytes target     prot opt in     out     source               destination
13417  941K FWDI_public_log  all  --  *      *       0.0.0.0/0            0.0.0.0/0
13417  941K FWDI_public_deny  all  --  *      *       0.0.0.0/0            0.0.0.0/0
13417  941K FWDI_public_allow  all  --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0

Chain FWDI_public_allow (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain FWDI_public_deny (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain FWDI_public_log (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain FWDO_public (1 references)
 pkts bytes target     prot opt in     out     source               destination
13417  941K FWDO_public_log  all  --  *      *       0.0.0.0/0            0.0.0.0/0
13417  941K FWDO_public_deny  all  --  *      *       0.0.0.0/0            0.0.0.0/0
13417  941K FWDO_public_allow  all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain FWDO_public_allow (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain FWDO_public_deny (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain FWDO_public_log (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain INPUT_ZONES (1 references)
 pkts bytes target     prot opt in     out     source               destination
16636 1100K IN_public  all  --  +      *       0.0.0.0/0            0.0.0.0/0           [goto]

Chain INPUT_ZONES_SOURCE (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain INPUT_direct (1 references)
 pkts bytes target     prot opt in     out     source               destination
 2955  178K REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 22 match-set fail2ban-sshd src reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 10000 match-set fail2ban-webmin-auth src reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 21,20,990,989 match-set fail2ban-proftpd src reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 25,465,587 match-set fail2ban-postfix src reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 110,995,143,993,587,465,4190 match-set fail2ban-dovecot src reject-with icmp-port-unreachable
    0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 22,115 match-set fail2ban-ssh-ddos src reject-with icmp-port-unreachable

Chain IN_public (1 references)
 pkts bytes target     prot opt in     out     source               destination
16636 1100K IN_public_log  all  --  *      *       0.0.0.0/0            0.0.0.0/0
16636 1100K IN_public_deny  all  --  *      *       0.0.0.0/0            0.0.0.0/0
16636 1100K IN_public_allow  all  --  *      *       0.0.0.0/0            0.0.0.0/0
  197 11691 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0

Chain IN_public_allow (1 references)
 pkts bytes target     prot opt in     out     source               destination
    2   100 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:587 ctstate NEW
    3   120 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:53 ctstate NEW
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:20 ctstate NEW
    3   124 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:2222 ctstate NEW
   32  1504 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpts:10000:10100 ctstate NEW
    2   100 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:20000 ctstate NEW
 2852  124K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpts:1025:65535 ctstate NEW
   11   726 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:53 ctstate NEW
 2498  149K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22 ctstate NEW
    4   232 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:25 ctstate NEW
    3   180 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:465 ctstate NEW
    5   236 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:21 ctstate NEW
   11   660 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:110 ctstate NEW
    1    44 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:995 ctstate NEW
    4   224 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:143 ctstate NEW
    4   220 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:993 ctstate NEW
   99  5196 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 ctstate NEW
   43  2268 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 ctstate NEW

Chain IN_public_deny (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain IN_public_log (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT_direct (1 references)
 pkts bytes target     prot opt in     out     source               destination
root@uds-server1 ~ # ip route
default via 144.76.X.XXX dev enp3s0 onlink
144.76.X.XXX/27 via 144.76.8.225 dev enp3s0
144.76.X.XXX/27 dev enp3s0 proto kernel scope link src 144.76.X.XXX
172.16.0.0/16 dev vmbr0 proto kernel scope link src 172.16.XXX.XXX
192.168.1.252/30 dev vmbr1 proto kernel scope link src 192.168.1.253
root@uds-server1 ~ # cat /proc/sys/net/ipv4/ip_forward
1
root@uds-server1 ~ #

Interne Firewall ist jetzt ausgeschaltet! Und der Server neugestartet keine Veränderung!
Ob die NAT Regeln noch drin sind sieht man in der Datei und diese Sieht für den Leihen face-smile gut aus

Danke im Vorraus
it-fraggle
it-fraggle 21.08.2019 um 17:46:15 Uhr
Goto Top
Damit weiß ich nichts anzufangen genauso wie ich auch nicht weiß wie ich gegen prüfen soll mit IPTables.
Und dann mietest du dir einen Server? Meiner Meinung nach nicht die beste Idee gewesen. Wie willst du denn sicherstellen, dass dir damit niemand Unfug treibt?
140770
140770 21.08.2019 aktualisiert um 18:23:33 Uhr
Goto Top
Hab mir die ganzen vorhandenen Regeln nicht angeschaut aber setze mal die iptables auf die Standardeinstellungen zurück, um ganz sicher zu gehen, dass dort nichts geblockt wird.

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

Anschließend solltest du vom Hostsystem deine Windows Kiste anpingen können und natürlich umgekehrt.
Windows Firewall ggf. deaktivieren oder ICMP Regel vorher erstellen.
ndreier933
ndreier933 21.08.2019 um 19:33:04 Uhr
Goto Top
Alles klar habe alle die einzelnen Codes ausgeführt.
Leider zeigt auch das keine veränderung!
Gibt es vielleicht sowas wie einen Virtuellen Router den man aufs Haupt Sys installiert und dann dort wie beim klasischen Heimnetz
fungiert also mit DHCP, usw. Vieleicht hat da auch jemand einen Lösungsvorschlag oder am besten ein Tutorial.
Danke aber nochmal an alle für die Geduld und Hilfsbereitschaft hat man nicht überall face-smile

Mit der Server Sicherheit habe ich kein Problem da weiß ich sehr genau wie soetwas abzulaufen hat schließlich ist das
nicht mein einziger gemieteter Server, jedoch ist das mein erster größerer Server wo ich zum ersten mal versuchen möchte mit
Proxmox zu arbeiten und beim Networking leider auf probleme gestoßen bin. Ich bin in sachen Linux und Netzwerk Technik kein
Neuling mir fehlt halt eben die erfahrung für KVM ins besondere Proxmox.
140770
140770 21.08.2019 aktualisiert um 19:53:20 Uhr
Goto Top
Leider zeigt auch das keine veränderung!

Dann hast du irgendwo noch ein Fehler drin.

Gibt es vielleicht sowas wie einen Virtuellen Router den man aufs Haupt Sys installiert und dann dort wie beim klasischen Heimnetz
fungiert also mit DHCP, usw.

Ja. Dazu brauchst du eine zusätzliche IP.
Bei Hetzner musst du eine separate MAC beantragen. Diese zweite virtuelle MAC verknüpfst du dann mit deiner Router VM.

Für dein Vorhaben wahrscheinlich unnötig. Zumal du da ebenfalls Kenntnisse in Linux und Netzwerk benötigst.

Vieleicht hat da auch jemand einen Lösungsvorschlag oder am besten ein Tutorial.

Gibts massenweise. Beispiel:
https://community.hetzner.com/tutorials/install-and-configure-proxmox_ve ...

Ich bin in sachen Linux und Netzwerk Technik kein
Neuling mir fehlt halt eben die erfahrung für KVM ins besondere Proxmox.

Netzwerk hat aber nichts mit KVM zu tun und das oben sind alles simple Basics. face-wink

Eigentlich recht simple:
  • Netzwerk Bridge erstellen
  • Host und VM dieser Bridge hinzufügen
  • Netzwerkkonfiguration innerhalb der VM durchführen

Anschließend noch die NAT Regeln machen. Fertig.