staging.inyokaproject.org

ssh mit öffentlicher IP-Adresse bei aktivier wireguard-Verbindung nutzen.

Status: Ungelöst | Ubuntu-Version: Server 22.04 (Jammy Jellyfish)
Antworten |

Nanomo

Anmeldungsdatum:
5. April 2021

Beiträge: 12

Liebes Forum,

ich betreibe einen Ubuntu-Server 22.04 mit einer aktiven Internetverbindung der ca. 60 KM weiter entfernt ist und möchte diesen bei aktiver wireguard-Verbindung per SSH verwalten können.

Ich habe den entfernten Rechner in meiner Netzwerkumgebung zuhause nachgestellt und möchte nun die Konfiguration ssh und aktiver Wireguard-Verbindung zunächst vorab testweise vorkonfigurieren, bevor ich an meinen produktiven Rechner herantrete.

Vorab: Die Wireguard-VPN Verbindung steht und ich kann ein VPN zwischen pc1 (Windows 11 Client) und pc2 (Ubuntu-Server 22.04) herstellen.

Hier die Konfiguration: <Auf dem Windows11-Client-PC>

[Interface]
PrivateKey = IOiWe4rAVOUY2UD4ovX93apBoOYbBS5v5OQrLeF94lw=
Address = 10.7.0.2/24

[Peer]
PublicKey = 9k2hkNPMYqOZ+x8RYEvFRFY4UUl8BYm1S9xSDulvYAs=
AllowedIPs = 0.0.0.0/0
Endpoint = 192.168.178.61:51820
PersistentKeepalive = 15

<Auf dem Wireguard-Server-PC>

[Interface]
##My VPN Server private IP Address
Address = 10.7.0.1/24

PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens1 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTIN>
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -0 wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens1 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUT>

#PostUp = ip route add 192.168.178.61/1 dev ens1
#PostDown = ip route del 192.168.178.61/1 dev ens1

PostUp = ip route add default via 192.168.178.1 dev ens1 table ssh
PostUp = ip rule add fwmark 0x2 table ssh
PostUp = /sbin/iptables -A OUTPUT -t mangle -o wg0 -p tcp --sport 22 -j MARK --set-mark 2

PreDown = /sbin/iptables -D OUTPUT -t mangle -o wg0 -p tcp --sport 22 -j MARK --set-mark 2
PreDown = ip rule del fwmark 0x2 table ssh
PreDown = ip route del default via 192.168.1.1 dev ens1 table ssh

##My VPN Server UDP Port
ListenPort = 51820

##My VPN Server private key
PrivateKey = [key]

[Peer]
##client Public Key
PublicKey = [key]


##client Ip Address
AllowedIPs = 10.7.0.2/32,10.7.0.1/31

sshd-server habe ich wie folgt konfiguriert:

Include /etc/ssh/sshd_config.d/*.conf

##AddressFamily any
ListenAddress 10.7.0.1        #Ubuntu VPN-Addresse
ListenAddress 192.168.178.61  #Ubuntu lokale Addresse

Wenn ich das VPN aktiviere, dann wird auf dem Windows11-Client die Netzwerkkarte deaktiviert und ich kann keine Verbindung zum Ubuntu-Server via ssh aufbauen.

Was muss ich noch tun um beides parallel betreiben zu können, sowohl wireguard als auch ssh auf die öffentliche IP-Adresse?

Besten Dank im Voraus und liebe Grüße

Bearbeitet von sebix:

Bitte verwende in Zukunft Codeblöcke, um die Übersicht im Forum zu verbessern!

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14402

Nanomo schrieb:

Vorab: Die Wireguard-VPN Verbindung steht und ich kann ein VPN zwischen pc1 (Windows 11 Client) und pc2 (Ubuntu-Server 22.04) herstellen.

Wenn ich das VPN aktiviere, dann wird auf dem Windows11-Client die Netzwerkkarte deaktiviert und ich kann keine Verbindung zum Ubuntu-Server via ssh aufbauen.

Konfiguriere bei allen WG-peers (Client, Server) bei den AllowedIPs, nur:

AllowedIPs = 10.7.0.0/24

Nanomo schrieb:

Was muss ich noch tun um beides parallel betreiben zu können, sowohl wireguard als auch ssh auf die öffentliche IP-Adresse?

Dein Server wird nicht border device (wenn es um IPv4 geht) sein, oder? Hast Du im Router, die Portweiterleitung (Port 22) auf die ssh-Server-IP-Adresse (192.168.178.61) konfiguriert? Source-NAT (MASQUERADE) sollte auch auf allen WG-Peers und für alle NICs (auch für die WG-NICs) konfiguriert sein.
Testen kannst Du auch mit:

ip r g <Ziel-IP>
ping -c 3 <Ziel-IP>
sudo scanssh -I -i <Interface> -s ssh -n 22 <IP-Adresse-ssh-Server>

(oder gleichwertig, wenn es um Windows geht).

Nanomo

(Themenstarter)

Anmeldungsdatum:
5. April 2021

Beiträge: 12

Hallo und entschudligt bitte die späte Rückmeldung.

Mein Ergebnis: Ich kann mich nun auf den wireguard-server via wg-tunnel und via ssh gleichzeitig anmelden. Das hat funktioniert. Besten Dank dafür.

Mein letztes Ziel ist folgendes:

Ich habe zwei Virtuelle Maschinen (NAT-Network) auf dem Server laufen und möchte diese nun via "remote desktop" steuern können. Allerdings sollen die Ports der beiden VMs über den wireguard Tunnel geroutet werden.

Ohne Wireguard-Tunnel funktioniert das einwandfrei. Nun möchte ich aber das die Leitung gesichert ist. Die Krux an der Sache ist, dass ich auf jeder VM einen Webserver laufen habe, der entsprechend auch im Internet verfügbar ist. Auch das funktioniert und soll auch künftig funktionieren. Ich möchte eben das lediglich die Remote Desktop Verbindungen über wireguard laufen. Alles andere soll weiterhin so funktionieren wie gehabt.

Was muss ich dafür noch in der wireguard-Konfiguration ändern um das wie beschrieben hinzubekommen?

Recht herzlichen Dank für Eure Hilfe. Ich weiss das wirklich sehr zu schätzen.

Beste Grüße

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14402

Nanomo schrieb:

Was muss ich dafür noch in der wireguard-Konfiguration ändern um das wie beschrieben hinzubekommen?

Konfiguriere in jeder VM einen WireGuard-Client, der die Verbindung zum WireGuard-Server (Endpoint) herstellt.

Nanomo

(Themenstarter)

Anmeldungsdatum:
5. April 2021

Beiträge: 12

Auch wenn die beiden VMs auf dem Endpoint selbst laufen? In dem Fall würden also die Gast-Maschinen eine wireguard-Verbindung zum Host selbst aufbauen, richtig?

Nanomo

(Themenstarter)

Anmeldungsdatum:
5. April 2021

Beiträge: 12

Ok...die wireguard Verbindung zum Host ist erledigt und funktioniert. Nun möchte ich für meinen RDP Zugriff noch folgendes erreichen: Bisher bin ich via RemoteDesktop unter Angabe folgender Kombination auf die Maschine gelangt: z.B. xxx.xxx.xxx.xxx:15774 Genau das möchte ich künftig vermeiden und folgendes in den IP-Tables konfigurieren:

1.) die öffentliche IP-Adresse "192.168.2.1" in Verbindung mit dem Port soll künftig niemanden mehr übers Netz auf die Maschine lassen.

2.) Es soll nur noch RDP über die interne ip-Adresse z.B. 10.7.0.1 (wireguard-server - host) bzw. 10.7.0.3 (wireguard peer - VirtualBox guest) über wireguard genutzt werden können.

3.) Zudem soll von Außen übers Internet der Webserver, der auf der Virtuellen Maschine läuft, erreichbar sein. Also http und https.

Wie bekomme ich am effektivsten die ufw - iptables für diesen Zweck so gebaut?

Ich habe schon etliches versucht und alles ist gescheitert. Ich kriege es mit dem Portforwarding einfach nicht hin. Hoffentlich lerne ich mehr von Euch.

Besten Dank im Voraus.

Antworten |