OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Mario885
Beiträge: 39
Registriert: 03.10.2018 22:47:39

OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Beitrag von Mario885 » 01.04.2019 20:53:26

Hi.

Aktuell habe ich einen gut funktionierenden vServer mit meiner Webseite, Mailserver und Owncloud. Jedoch kostet mich das Teil halt monatlich Geld, was ich mir sparen könnte, da ich selbst zu Hause einen HP Microserver habe und daruf das ganze abbilden will (in einer Hyper V VM).
Das ganze läuft auch schon ganz gut (es ist natürlich noch nichts groß umgezogen oder eingerichtet). Leider stecke ich an einem Punkt fest, wo ich zugegeben leider nicht so fit drin bin (bin auch nicht der große Linux/Debian Crack, das gleich vorweg. Und bitte keine großen Belehrungen! Hinweise oder direkte Hilfe wären Zielführend).

Ich bekomme das mit dem Forwarding (IPTables) nicht so hin.
Aktuell bekomme ich soweit alles zum Server durch. Ping der tun - Interfaces in beide Richtungen geht und ich kann die apache-Seite, sowie die Seiten von iRedMail (Mail und iredadmin) aufrufen. Ich kann vom Client aus auch einen ping zu google oder bild.de oder was auch immer erfolgreich absetzen. Nur kann ich z.B. über wget am VPN-Client nichts mehr laden und auch apt-get strekt z.B. mit folgenden Fehlern:
apt update
Ign:1 http://security.debian.org/debian-security stretch/updates InRelease
Ign:2 http://packages.hs-regensburg.de/debian stretch InRelease
Fehl:3 http://security.debian.org/debian-security stretch/updates Release
404 Not Found
Ign:4 http://packages.hs-regensburg.de/debian stretch-updates InRelease
Fehl:5 http://packages.hs-regensburg.de/debian stretch Release
404 Not Found
Fehl:6 http://packages.hs-regensburg.de/debian stretch-updates Release
404 Not Found
Paketlisten werden gelesen... Fertig
E: The repository 'http://security.debian.org/debian-security stretch/updates Release' does no longer have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'http://packages.hs-regensburg.de/debian stretch Release' does no longer have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'http://packages.hs-regensburg.de/debian stretch-updates Release' does no longer have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
Es scheint einfach nichts über http per Terminal zu funktionieren (meine https auch nicht).

Die iptables am Server sehen aktuell so aus (und ja, habe schon bissl rumprobiert, daher das Chaos bzw. die uncomments):
#!/bin/sh
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o ens192 -j MASQUERADE
iptables -A INPUT -i ens192 -p udp --dport 1194 -j ACCEPT
# Masquerade outgoing traffic
iptables -t nat -A POSTROUTING -o ens192 -j MASQUERADE
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
# Allow return traffic
iptables -A INPUT -i ens192 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
# Forward everything
iptables -A FORWARD -j ACCEPT
iptables -A FORWARD -i ens192 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o ens192 -j ACCEPT

#sudo iptables -t nat -I POSTROUTING 1 -o tun0 -j MASQUERADE
#sudo iptables -I FORWARD 1 -i tun0 -o ens192 -m state --state RELATED,ESTABLISHED -j ACCEPT
#sudo iptables -I FORWARD 1 -i ens192 -o tun0 -j ACCEPT
#orig:
#iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o ens192 -j MASQUERADE
#iptables -A INPUT -i tun0 -j ACCEPT
#iptables -A FORWARD -i ens192 -o tun0 -j ACCEPT
#iptables -A FORWARD -i tun0 -o ens192 -j ACCEPT
#iptables -A INPUT -i ens192 -p udp --dport 1194 -j ACCEPT
#additional:
#iptables -I INPUT -p tcp --dport 443 -j ACCEPT
#iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 10.8.0.2:80
iptables -A FORWARD -d 10.8.0.2 -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to 10.8.0.2:443
iptables -A FORWARD -d 10.8.0.2 -p tcp --dport 443 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 993 -j DNAT --to 10.8.0.2:993
iptables -A FORWARD -d 10.8.0.2 -p tcp --dport 993 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 587 -j DNAT --to 10.8.0.2:587
iptables -A FORWARD -d 10.8.0.2 -p tcp --dport 587 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 18000 -j DNAT --to 10.8.0.2:18000
iptables -A FORWARD -d 10.8.0.2 -p tcp --dport 18000 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 4190 -j DNAT --to 10.8.0.2:4190
iptables -A FORWARD -d 10.8.0.2 -p tcp --dport 4190 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 110 -j DNAT --to 10.8.0.2:110
iptables -A FORWARD -d 10.8.0.2 -p tcp --dport 110 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 143 -j DNAT --to 10.8.0.2:1430
iptables -A FORWARD -d 10.8.0.2 -p tcp --dport 143 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 995 -j DNAT --to 10.8.0.2:995
iptables -A FORWARD -d 10.8.0.2 -p tcp --dport 995 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 25 -j DNAT --to 10.8.0.2:25
iptables -A FORWARD -d 10.8.0.2 -p tcp --dport 25 -j ACCEPT
IPv4 Forwarding in der Config ist aktiviert [net.inet.ip.forwarding=1].

Ich hoffe mir kann einer helfen.

Danke im Voraus.

PS: Falls einer weiß, wie ich (auf einfachem Weg und ohne den Zielserver zu schrotten) den bisherigen Server auf den bei mir umziehe (beide Debian 9), so würde ich mich auch über Hinweise dazu freuen. Meine Versuche gem. HowTo's aus dem Netz mit rsync etc. führten akteull immer dazu, dass iptables, ufw und aqmavisd am Zielserver dann im Eimer waren. Rest ging (augenscheinlich) problemlos.

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Beitrag von bluestar » 02.04.2019 09:56:32

Mario885 hat geschrieben: ↑ zum Beitrag ↑
01.04.2019 20:53:26
Hinweise oder direkte Hilfe wären Zielführend).
Sind auch Fragen erlaubt?
Auf welchem System laufen die Firewall-Scripte?
Welchen Provider für deine statische IP verwendest du?
Wie sieht die Netzwerkkonfiguration deiner VM aus?
Welche Dienste sollen/müssen über die externe IP erreichbar sein?

Ich orakele für dich schon mal das nächste Problem: Rechner im LAN greift auf ext. IP deines Servers zu, ergo fließt der Traffic über den Router ins Internet zu dem Provider und dann über den VPN-Tunnel zurück zu deiner VM, das ergibt eine super Performance.... :facepalm:

Mario885
Beiträge: 39
Registriert: 03.10.2018 22:47:39

Re: OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Beitrag von Mario885 » 02.04.2019 12:11:10

Sind auch Fragen erlaubt?
Auf welchem System laufen die Firewall-Scripte?
Welchen Provider für deine statische IP verwendest du?
Wie sieht die Netzwerkkonfiguration deiner VM aus?
Welche Dienste sollen/müssen über die externe IP erreichbar sein?

Ich orakele für dich schon mal das nächste Problem: Rechner im LAN greift auf ext. IP deines Servers zu, ergo fließt der Traffic über den Router ins Internet zu dem Provider und dann über den VPN-Tunnel zurück zu deiner VM, das ergibt eine super Performance.... :facepalm:
Hallo Bluestar.
Danke erstmal für die Antwort und ja, Fragen sind erlaubt.

Ich gehe mal deine durch:
Auf welchem System laufen die Firewall-Scripte?
Auf dem Debian 9 Server (der mit der statischen externen IP).
Welchen Provider für deine statische IP verwendest du?
Die statische IP hat der externe Debian 9 vServer. Ist ein vServer von Strato.
Wie sieht die Netzwerkkonfiguration deiner VM aus?
Meine VM hat eine statische Netzwerkkonfiguration.
Hier die Konfig. von /etc/network/interfaces:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.178.11
netmask 255.255.255.0
gateway 192.168.178.254
dns.nameservers 192.168.178.254 8.8.8.8
# This is an autoconfigured IPv6 interface
iface eth0 inet6 auto
ifconfig sagt folgendes:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.178.11 netmask 255.255.255.0 broadcast 192.168.178.255
ether 00:15:5d:b2:0a:00 txqueuelen 1000 (Ethernet)
RX packets 187024 bytes 37518451 (35.7 MiB)
RX errors 0 dropped 28348 overruns 0 frame 0
TX packets 22172 bytes 3265030 (3.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1 (Lokale Schleife)
RX packets 227100 bytes 21169132 (20.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 227100 bytes 21169132 (20.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
inet 10.8.0.2 netmask 255.255.255.0 destination 10.8.0.2
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 100 (UNSPEC)
RX packets 10400 bytes 899600 (878.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 13483 bytes 1710303 (1.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Welche Dienste sollen/müssen über die externe IP erreichbar sein?
Folgende:
- erstmal nur http, https, IMAP, SMTP (konkret reichen: 80, 443, 993, 587) sowohl rein, als auch raus (noch zwei andere, aber die genügen auch intern und sind geheim :-D )
- POP etc. ist optional und muss nicht unbedingt

PS: Bezüglich traffic:
Das passt so, glaubs mir und ist an sich ja auch mein Problem. Aber 100MBit eingehend und 40MBit ausgehend reichen für meine Popelwebseite und das bissl Mailverkehr voll und ganz. Und für das andere was noch läuft (owncloud) langt mir das auch. Dann dauert es halt n klitze länger, was mir an sich egal ist. Zudem werde ich wie jetzt auch CloudFlare wieder vorschalten, was den Speed der Webseite ohnehin wieder extrem anhebt. Somit ist der Rest an sich erstmal egal. Soll erstmal funktionieren. Über anderes mache ich mir ggf. später Gedanken, wenn erforderlich.

Hoffe die Antworten genügen so. ;-)

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Beitrag von bluestar » 02.04.2019 16:25:29

wie sehen denn deine unterschiedlichen Routingtabellen deiner VM aus? Welche Regeln verwendest du um die richtige Routing-Tabelle auszuwählen?

Mario885
Beiträge: 39
Registriert: 03.10.2018 22:47:39

Re: OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Beitrag von Mario885 » 02.04.2019 17:50:51

Hallo.

Meine VM (zu Hause) gibt folgendes her: (netstat -r)
Kernel-IP-Routentabelle
Ziel Router Genmask Flags MSS Fenster irtt Iface
0.0.0.0 10.8.0.1 128.0.0.0 UG 0 0 0 tun0
default fritz.box 0.0.0.0 UG 0 0 0 eth0
10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
82.XXX.XXX.XX fritz.box 255.255.255.255 UGH 0 0 0 eth0 [82.XXX.XXX.XX = Strato 1und1]
128.0.0.0 10.8.0.1 128.0.0.0 UG 0 0 0 tun0
192.168.178.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
PS: Hatte da in meinem einen Beitrag nen Fehler drin. Ist kein Strato, sondern ein 1und1 vServer.
Bei Strato läuft noch aktuell meine Webseite etc. auf nem vServer.
1und1 vServer netstat -r Ausgabe:
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default 10.255.255.1 0.0.0.0 UG 0 0 0 ens192
10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
10.255.255.1 0.0.0.0 255.255.255.255 UH 0 0 0 ens192
(irgendwie recht übersichtlich...)
Wo ist nun der Fehler??? Aber wenn ich das so überfliege, stimmt da was beim Client nicht oder?
Zuletzt geändert von Mario885 am 02.04.2019 17:56:51, insgesamt 1-mal geändert.

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Beitrag von bluestar » 02.04.2019 17:56:10

Hast du auf deiner VM eine separate Routing-Tabelle für den Tunnel eingerichtet?

Mario885
Beiträge: 39
Registriert: 03.10.2018 22:47:39

Re: OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Beitrag von Mario885 » 02.04.2019 17:58:09

Nur wie im ersten Beitrag die iptables. sonst ist nichts eingerichtet (alles im ersten Beitrag).

Mario885
Beiträge: 39
Registriert: 03.10.2018 22:47:39

Re: OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Beitrag von Mario885 » 02.04.2019 18:00:38

bluestar hat geschrieben: ↑ zum Beitrag ↑
02.04.2019 17:56:10
Hast du auf deiner VM eine separate Routing-Tabelle für den Tunnel eingerichtet?
Konkret nochmal: Auf meiner VM zu Hause ist keienrlei Routing oder so eingerichtet.
IPtables gibt es auf der VM bei mir überhaupt nicht. Es ist lediglich ufw vorgeschalten, aber da sind alle erforderlichen Ports auf.
Der Client bekommt nur per openvpn seine Infos vom 1und1 vServer.

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Beitrag von bluestar » 02.04.2019 18:03:06

Mario885 hat geschrieben: ↑ zum Beitrag ↑
02.04.2019 18:00:38
Auf meiner VM zu Hause ist keienrlei Routing oder so
Da liegt doch der Fehler, du brauchst für dein Setup mind. eine zweite Routingtabelle und Routing Regeln anhand der Quell-IP.

Mario885
Beiträge: 39
Registriert: 03.10.2018 22:47:39

Re: OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Beitrag von Mario885 » 02.04.2019 18:16:03

bluestar hat geschrieben: ↑ zum Beitrag ↑
02.04.2019 18:03:06
Mario885 hat geschrieben: ↑ zum Beitrag ↑
02.04.2019 18:00:38
Auf meiner VM zu Hause ist keienrlei Routing oder so
Da liegt doch der Fehler, du brauchst für dein Setup mind. eine zweite Routingtabelle und Routing Regeln anhand der Quell-IP.
Ok.
Kannst Du mir da bitte helfen.
Wie gesagt. Bin bzgl. iptables nicht gerade der Crack, wie man sieht im ersten Beitrag. Habe mir das auch nur zusammengesucht.
Heißt das, ich müsste im Prinzip das gleiche wie es am Server ist am Client abbilden, nur umgekehr oder wie?
Mir fehlt jedoch unter /etc/ der Ordner iptables mit den zugehörigen Files. Iptables ist aber laut apt in der aktuellen Version installiert.
Kann ich da einfach das ganze anlegen oder wie gehe ich das nun an.
Es kann wegen mir der gesamte Traffic über den tunnel laufen. Es genügt mir, wenn ich von intern über die interne ip auf die VM komme. alles andere soll über tun0 gehen (sprich 80, 443, 993, 587 etc.)

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Beitrag von bluestar » 02.04.2019 19:00:28

Mario885 hat geschrieben: ↑ zum Beitrag ↑
02.04.2019 18:16:03
Wie gesagt. Bin bzgl. iptables nicht gerade der Crack, wie man sieht im ersten Beitrag. Habe mir das auch nur zusammengesucht.
Nein das hat mit iptables erst mal gar nichts zu tun.
Du wirst im Linux Advanced Routing Howto dazu was findenhttp://lartc.richb-hanover.com/howto/index.html

Wenn du damit durch bist, dann können wir dir hier bei konkreten Fragen sicherlich helfen, einem Netzwerk-Newbee werde ich nicht eine Blaupause liefern, dein Wunsch erfordert einiges an Netzwerkwissen.

Merke dabei, wenn deine VM über den Tunnel gehackt wird, dann steht dem Angreifer dein LAN komplett offen.

Mario885
Beiträge: 39
Registriert: 03.10.2018 22:47:39

Re: OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Beitrag von Mario885 » 02.04.2019 19:06:38

Scheint aber an irgendwas anderem zu liegen.

Wenn ich z.B. einen ping von meinem PC aus ausführe zu www.bild.de und dies auch von meinem vServer zu Hause ausführe, kommt der ping an der gleichen ip an. ebenso ein traceroute führt zum gleichen Ergebnis:
traceroute www.bild.de
traceroute to www.bild.de (2.20.180.158), 30 hops max, 60 byte packets
1 10.8.0.1 (10.8.0.1) 22.774 ms 22.785 ms 22.782 ms
2 10.255.255.2 (10.255.255.2) 22.779 ms 22.777 ms 22.775 ms
3 * ae-20-202.gw-distp-a.bap.rhr.de.oneandone.net (93.90.196.2) 23.329 ms *
4 ae-1.bb-b.bap.rhr.de.oneandone.net (212.227.121.173) 23.434 ms 23.341 ms 23.408 ms
5 ae-3.bb-b.bs.kae.de.oneandone.net (212.227.120.70) 26.682 ms 26.792 ms 26.790 ms
6 ae-5.bb-c.act.fra.de.oneandone.net (212.227.120.19) 70.689 ms 44.405 ms 43.957 ms
7 decix-fra5.netarch.akamai.com (80.81.192.168) 26.803 ms 26.698 ms 26.657 ms
8 a2-20-180-158.deploy.static.akamaitechnologies.com (2.20.180.158) 28.303 ms 28.189 ms 28.068 ms
Hab das auch mit anderen Servern getestet. Er geht wie man sieht korrekt über den vServer (1und1 vServer) über den Tunnel raus und findet auch sein Ziel. Nur halt geht scheinbar http (und ggf. https; weiteres konnte ich nocht nicht testen) nicht korrekt raus oder wasauch immer. Zumindest kommt per apt update immer nur Error 404
[Nochmal ein Beispiel der ausgabe von apt update am vserver hier bei mir:
Fehl:6 http://packages.hs-regensburg.de/debian stretch-updates Release
404 Not Found
Paketlisten werden gelesen... Fertig
E: The repository 'http://security.debian.org/debian-security stretch/updates Release' does no longer have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.]
Wenn ich das gelöst bekomme, steht meinem Projekt meine ich nichts mehr im Weg. Alles andere scheint soweit ja zu passen.

Mario885
Beiträge: 39
Registriert: 03.10.2018 22:47:39

Re: OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Beitrag von Mario885 » 02.04.2019 19:12:35

bluestar hat geschrieben: ↑ zum Beitrag ↑
02.04.2019 19:00:28
Mario885 hat geschrieben: ↑ zum Beitrag ↑
02.04.2019 18:16:03
Wie gesagt. Bin bzgl. iptables nicht gerade der Crack, wie man sieht im ersten Beitrag. Habe mir das auch nur zusammengesucht.
Nein das hat mit iptables erst mal gar nichts zu tun.
Du wirst im Linux Advanced Routing Howto dazu was findenhttp://lartc.richb-hanover.com/howto/index.html

Wenn du damit durch bist, dann können wir dir hier bei konkreten Fragen sicherlich helfen, einem Netzwerk-Newbee werde ich nicht eine Blaupause liefern, dein Wunsch erfordert einiges an Netzwerkwissen.

Merke dabei, wenn deine VM über den Tunnel gehackt wird, dann steht dem Angreifer dein LAN komplett offen.
Bin vielleicht kein Crack, was Linux angeht, aber bin sicherlich kein Newbee, was Netzwerk angeht. Sorry. Aber arbeite sogar in der Branche (nur halt eher/ausschließlich auf der Windows Schiene :-/ ).
Ich abe nur leider keinen blassen, wie ich die entsprechenden Parameter wo genau setze, dass ich z.B. 80, 443, 993 und 587 (und ggf. 25) von eth0 wieder über tun0 raus route.
Es ist mir schon klar, dass ich das nicht alles wie ein Scheunentor aufmachen soll und will. von daher frage ich ja hier konkret.
Kann doch nicht so ein Hexenwerk sein, das zu realisieren...

TomL

Re: OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Beitrag von TomL » 02.04.2019 20:21:32

Mario885 hat geschrieben: ↑ zum Beitrag ↑
02.04.2019 19:12:35
wie ich die entsprechenden Parameter wo genau setze, dass ich z.B. 80, 443, 993 und 587 (und ggf. 25) von eth0 wieder über tun0 raus route.
Der Lösungsansatz ist meiner Meinung nach grundsätzlich falsch. Warum muss der OpenVPN-Server den Client-Traffic quasi wie ein Proxy überhaupt untersuchen? Darüber kann man doch keine Sicherheit aufbauen, weder für den Client noch für den Server. Der VPN-Server hat nur die Pakete vom Client ans Default-Gateway zu routen und/oder, sofern das gewünscht ist, auch ins lokale Netz... aber nix mehr. Die Aufgabe des VPN ist der Tunnel um den Pakete-Transportweg zu sichern, aber nicht noch zusätzliche Proxy-Aufgaben.

Wenn dem VPN-Client gewisse Ports verboten sind, dann deinstalliere auf dem Client die Prozesse, die diese Ports benutzen. Wenn die Ports (und Prozesse) notwendig sind, dann muss sich der VPN-Server auch nicht weiter drum kümmern, sondern er hat sie einfach nur ans Default-Gateway durchzuleiten. Zumal solche einfach nur ge'forward'eten Pakete sowieso keine Prozesse auf dem OpenVPN-Server erreichen.

Dieses iptables-Beispiel von oben ist imho Quatsch und verbessert auch nicht im geringsten die Sicherheit. Der Filter mit einzelnen erlaubten Ports hat faktisch Null Effekt, weil die Policies per Default sowieso auf Accept stehen. Tatsächlich brauchst Du den Paketfilter nur, um die VPN-Client-Pakete via NAT zu maskieren und allenfalls noch um den Zugriff aufs LAN zu erlauben oder zu verbieten. Das sind dann allenfalls eine Handvoll Filterregeln. Wegen dem Masquerade ist auch kein Eingriff auf die regulären LAN-Routingtabellen notwendig... allenfalls beim Router, dem mitgeteilt werden muss, dass VPN-Pakete auf Port xyz an den VPN-Server weitergeleitet werden sollen. Ausdrücklich damit ist auch kein Risiko für den Server verbunden. Die Risiken für den Server bestehen möglicherweise an ganz anderer Stelle.

Mario885
Beiträge: 39
Registriert: 03.10.2018 22:47:39

Re: OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Beitrag von Mario885 » 02.04.2019 20:59:46

TomL hat geschrieben: ↑ zum Beitrag ↑
02.04.2019 20:21:32
Mario885 hat geschrieben: ↑ zum Beitrag ↑
02.04.2019 19:12:35
wie ich die entsprechenden Parameter wo genau setze, dass ich z.B. 80, 443, 993 und 587 (und ggf. 25) von eth0 wieder über tun0 raus route.
Der Lösungsansatz ist meiner Meinung nach grundsätzlich falsch. Warum muss der OpenVPN-Server den Client-Traffic quasi wie ein Proxy überhaupt untersuchen? Darüber kann man doch keine Sicherheit aufbauen, weder für den Client noch für den Server. Der VPN-Server hat nur die Pakete vom Client ans Default-Gateway zu routen und/oder, sofern das gewünscht ist, auch ins lokale Netz... aber nix mehr. Die Aufgabe des VPN ist der Tunnel um den Pakete-Transportweg zu sichern, aber nicht noch zusätzliche Proxy-Aufgaben.

Wenn dem VPN-Client gewisse Ports verboten sind, dann deinstalliere auf dem Client die Prozesse, die diese Ports benutzen. Wenn die Ports (und Prozesse) notwendig sind, dann muss sich der VPN-Server auch nicht weiter drum kümmern, sondern er hat sie einfach nur ans Default-Gateway durchzuleiten. Zumal solche einfach nur ge'forward'eten Pakete sowieso keine Prozesse auf dem OpenVPN-Server erreichen.

Dieses iptables-Beispiel von oben ist imho Quatsch und verbessert auch nicht im geringsten die Sicherheit. Der Filter mit einzelnen erlaubten Ports hat faktisch Null Effekt, weil die Policies per Default sowieso auf Accept stehen. Tatsächlich brauchst Du den Paketfilter nur, um die VPN-Client-Pakete via NAT zu maskieren und allenfalls noch um den Zugriff aufs LAN zu erlauben oder zu verbieten. Das sind dann allenfalls eine Handvoll Filterregeln. Wegen dem Masquerade ist auch kein Eingriff auf die regulären LAN-Routingtabellen notwendig... allenfalls beim Router, dem mitgeteilt werden muss, dass VPN-Pakete auf Port xyz an den VPN-Server weitergeleitet werden sollen. Ausdrücklich damit ist auch kein Risiko für den Server verbunden. Die Risiken für den Server bestehen möglicherweise an ganz anderer Stelle.
Alles gut und schön und auch vielen Dank für die Hinweise.
Und ja. Wie ich im Eingangspost schrieb, ist das eine iptable mit einigen versuchen und sicher "anpassungwürdig", aber es funktioniert aktuell und dabei mag ich es im Moment belassen.
Gerne kannst du mir aber mitteilen, was da zu optimieren ist.

Was ich nicht ganz verstehe, warum einem hier keiner konkret sagen kann, wie ich mein Problem nun genau löse. Der eingehende Traffic auf den entsprechenden Ports läuft augenscheinlich und auch ausgehend, wie ich gepostet habe läuft es wohl auch (augenscheinlich). Ich bekomme lediglich aktuell Probleme bei apt get, wenn am Client (mein interner Server) der Tunnel verbunden ist. Trenne ich den, ist alles toll. Baue ich den auf, geht sowohl pibg, als auch Namensauflösung 8wie bereits oben gepostet), nur bekomme ich z.B. bei apt update die auch oben geposteten Fehler.

Wenn mir einer dabei helfen kann und sagen kann, wo ich konkret was anpassen muss, damit der Traffic ausgehend auch Fehlerfrei läuft, wäre das Top.
Alles andere hilft mir aktuell nicht weiter!

Danke im Voraus.

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Beitrag von bluestar » 02.04.2019 21:05:04

Mario885 hat geschrieben: ↑ zum Beitrag ↑
02.04.2019 20:59:46
Was ich nicht ganz verstehe, warum einem hier keiner konkret sagen kann, wie ich mein Problem nun genau löse.
Weil niemand hier dein Setup 1:1 nachbaut um deine Probleme zu verstehen und sie letztendlich zu lösen.
Wenn mir einer dabei helfen kann und sagen kann, wo ich konkret was anpassen muss, damit der Traffic ausgehend auch Fehlerfrei läuft, wäre das Top.
Advanced Routing Howto lesen, da steht exakt diese Thematik drinne...

Mario885
Beiträge: 39
Registriert: 03.10.2018 22:47:39

Re: OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Beitrag von Mario885 » 02.04.2019 21:05:55

TomL hat geschrieben: ↑ zum Beitrag ↑
02.04.2019 20:21:32
Mario885 hat geschrieben: ↑ zum Beitrag ↑
02.04.2019 19:12:35
wie ich die entsprechenden Parameter wo genau setze, dass ich z.B. 80, 443, 993 und 587 (und ggf. 25) von eth0 wieder über tun0 raus route.
Wenn dem VPN-Client gewisse Ports verboten sind, dann deinstalliere auf dem Client die Prozesse, die diese Ports benutzen. Wenn die Ports (und Prozesse) notwendig sind, dann muss sich der VPN-Server auch nicht weiter drum kümmern, sondern er hat sie einfach nur ans Default-Gateway durchzuleiten. Zumal solche einfach nur ge'forward'eten Pakete sowieso keine Prozesse auf dem OpenVPN-Server erreichen.
Was du damit übrigens konkret meinst erschließt sich mir nicht. Ich will meinem Client keine Ports verbienten (und wenn, dann konfiguriere ich das per ufw) sondern es sollen vom internen Server hier bei mir die oben genannten Ports (mindestens) über den openVPN-Tunnel über den externen vServer bei 1und1 (der eigentlich eher nur als statische öffentliche IP dienen soll) ins Internet.
z.B. http --> vServer intern --> vServer extern --> Internet
Oder : "gesamter Traffic" --> vServer intern --> vServer extern --> Internet

Andersrum z.B. läuft es: http --> auf meine externe IP = Aufruf meines Webservers - OK
Zuletzt geändert von Mario885 am 02.04.2019 21:19:14, insgesamt 2-mal geändert.

Mario885
Beiträge: 39
Registriert: 03.10.2018 22:47:39

Re: OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Beitrag von Mario885 » 02.04.2019 21:18:10

bluestar hat geschrieben: ↑ zum Beitrag ↑
02.04.2019 21:05:04
Mario885 hat geschrieben: ↑ zum Beitrag ↑
02.04.2019 20:59:46
Was ich nicht ganz verstehe, warum einem hier keiner konkret sagen kann, wie ich mein Problem nun genau löse.
Weil niemand hier dein Setup 1:1 nachbaut um deine Probleme zu verstehen und sie letztendlich zu lösen.
Das ist mir schon klar. Aber einen hinweis (konkreteren), wo ich ggf. genau schauen kann. Das ist doch sicher drin oder?
Wenn mir einer dabei helfen kann und sagen kann, wo ich konkret was anpassen muss, damit der Traffic ausgehend auch Fehlerfrei läuft, wäre das Top.
Advanced Routing Howto lesen, da steht exakt diese Thematik drinne...
Habe ich mir bereits angeschaut. Werde aber daraus nicht ganz schlau. Vor allem wo ich das was genau eintragen muss.

Ich Frage jetzt mal doof:
Konkret bräuchte ich einen Routing Befehl, der sagt:
route alles (oder die genannten Ports) von [interner ip/eth0] nach tun0 (tunnel IP des externen Servers)
Dies muss ich doch irgendwo angeben können oder?
Das sagt IP route show. Ist da ggf was falsch bzw. wie und wo kann ich da was anpassen?
ip route show
0.0.0.0/1 via 10.8.0.1 dev tun0 //10.8.0.1 (tun0 Adresse externer Server)
default via 192.168.XXX.[GW] dev eth0 onlink
10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.2 //10.8.0.2 (tun0 Adresse interner Server)
82.XXX.XXX.XX via 192.168.XXX.[GW] dev eth0 // 82.XXX.XXX.XX = öffentliche IP dees externen Servers die andere ist mein Router
128.0.0.0/1 via 10.8.0.1 dev tun0 /// ??
192.168.XXX.0/24 dev eth0 proto kernel scope link src 192.168.XXX.[iSRV] // internes Netzwerk und 192.168.XXX.[iSRV] ist der interne Server
192.168.XXX.[iSRV] via 10.8.0.1 dev tun0 // interner Server via tun0 externer Server
Vielelicht erbarmt sich doch einer und kann mir da helfen. Weiß sonst im Moment grad echt nicht weiter und werde wie gesagt aus dem hier
"http://lartc.richb-hanover.com/howto/index.html" nicht recht schlau. Zumal ich da nicht konkret finde, was ich suche. Sorry.

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Beitrag von bluestar » 02.04.2019 21:25:23

Mario885 hat geschrieben: ↑ zum Beitrag ↑
02.04.2019 21:18:10
Ich Frage jetzt mal doof:
Konkret bräuchte ich einen Routing Befehl, der sagt:
route alles (oder die genannten Ports) von [interner ip/eth0] nach tun0 (tunnel IP des externen Servers)

Code: Alles auswählen

ip rule add from a.b.c.d lookup nn
Dazu legst du ne zweite Routingtabelle „nn“ an, a.b.c.d ist deine IP auf tun0

Apropos ich würd es nicht so machen, sondern auf eth0 das gateway weglassen, eine Hostroute für deinen öffentlichen vServer setzen und das Default-GW einfach auf die IP 10.8.0.1 setzen.

TomL

Re: OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Beitrag von TomL » 02.04.2019 21:44:04

Mario885 hat geschrieben: ↑ zum Beitrag ↑
02.04.2019 21:05:55
Was du damit übrigens konkret meinst erschließt sich mir nicht.
Dieses Regel-Paket, was völlig unsinning ist:

Code: Alles auswählen

ptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 10.8.0.2:80
iptables -A FORWARD -d 10.8.0.2 -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to 10.8.0.2:443
iptables -A FORWARD -d 10.8.0.2 -p tcp --dport 443 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 993 -j DNAT --to 10.8.0.2:993
iptables -A FORWARD -d 10.8.0.2 -p tcp --dport 993 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 587 -j DNAT --to 10.8.0.2:587
iptables -A FORWARD -d 10.8.0.2 -p tcp --dport 587 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 18000 -j DNAT --to 10.8.0.2:18000
iptables -A FORWARD -d 10.8.0.2 -p tcp --dport 18000 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 4190 -j DNAT --to 10.8.0.2:4190
iptables -A FORWARD -d 10.8.0.2 -p tcp --dport 4190 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 110 -j DNAT --to 10.8.0.2:110
iptables -A FORWARD -d 10.8.0.2 -p tcp --dport 110 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 143 -j DNAT --to 10.8.0.2:1430
iptables -A FORWARD -d 10.8.0.2 -p tcp --dport 143 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 995 -j DNAT --to 10.8.0.2:995
iptables -A FORWARD -d 10.8.0.2 -p tcp --dport 995 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 25 -j DNAT --to 10.8.0.2:25
iptables -A FORWARD -d 10.8.0.2 -p tcp --dport 25 -j ACCEPT
Mario885 hat geschrieben: ↑ zum Beitrag ↑
02.04.2019 21:18:10
Konkret bräuchte ich einen Routing Befehl, der sagt:
Nein, brauchst Du nicht... das ist durch das Masquerading automatisch geregelt. Die Client-Pakete (von außen) bekommen damit automatisch die IP des OpenVPN-Server und Pakete finden damit auch automatisch das Default-Gateway.

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Beitrag von bluestar » 02.04.2019 21:49:04

TomL, du bist auf der falschen Fährte, der Te benötigt schon die Regeln...

Sein Setup hat mit VPN-Server/-Client nichts zu tun, er will über einen „wie auch immer schlecht/falsch konfigurierten“ OpenVPN Tunnel Dienste im LAN über DNAT vom Ende des Tunnels anbieten. Von Point-to-Point und von /32 Netzen hat er dabei noch nix gehört.

Mario885
Beiträge: 39
Registriert: 03.10.2018 22:47:39

Re: OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Beitrag von Mario885 » 02.04.2019 21:50:43

bluestar hat geschrieben: ↑ zum Beitrag ↑
02.04.2019 21:25:23
Mario885 hat geschrieben: ↑ zum Beitrag ↑
02.04.2019 21:18:10
Ich Frage jetzt mal doof:
Konkret bräuchte ich einen Routing Befehl, der sagt:
route alles (oder die genannten Ports) von [interner ip/eth0] nach tun0 (tunnel IP des externen Servers)

Code: Alles auswählen

ip rule add from a.b.c.d lookup nn
Dazu legst du ne zweite Routingtabelle „nn“ an, a.b.c.d ist deine IP auf tun0

Apropos ich würd es nicht so machen, sondern auf eth0 das gateway weglassen, eine Hostroute für deinen öffentlichen vServer setzen und das Default-GW einfach auf die IP 10.8.0.1 setzen.
Ok.
Schätze mal, gemäß deinem Link, muss das ganze unter /etc/iproute2.
Nur finde ich da zu den aktuellen Routen nichts und habe somit nicht mal einen Anhalt/Hinweis, wie das dann aussehen muss (muss die Datei dann nn.conf heißen (stzeht meine ich so in der howto, die Du verlinkt hast)).
in /etc/iproute2 ist folgendes:
ls
bpf_pinning ematch_map group nl_protos rt_dsfield rt_protos rt_realms rt_scopes rt_tables rt_tables.d
Und sorry für meine Dummheit, aber wie/wo meinst du das hier Konkret?:
Apropos ich würd es nicht so machen, sondern auf eth0 das gateway weglassen, eine Hostroute für deinen öffentlichen vServer setzen und das Default-GW einfach auf die IP 10.8.0.1 setzen.
In der IP-konfig am vServer intern das Gateway entfernen und eine Hostroute auf die 10.8.0.1 mit Gateway 10.8.0.1. Das kann ich jetzt nicht nachvollziehen oder verstehe ich dich falsch.

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Beitrag von bluestar » 02.04.2019 22:17:19

Mario885 hat geschrieben: ↑ zum Beitrag ↑
02.04.2019 21:50:43
In der IP-konfig am vServer intern das Gateway entfernen und eine Hostroute auf die 10.8.0.1 mit Gateway 10.8.0.1. Das kann ich jetzt nicht nachvollziehen oder verstehe ich dich falsch.
Die Hostroute für die externe Strato IP:

Code: Alles auswählen

/sbin/ip route add 82.xx.xx.xx via 192.168.178.1
Am besten in den Lan Abschnitt deiner network/interfaces als „up“ Command.

Mario885
Beiträge: 39
Registriert: 03.10.2018 22:47:39

Re: OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Beitrag von Mario885 » 02.04.2019 22:49:14

Vielen vielen herzlichen Dank.

Es scheint nun zu funktionieren.
Endlich. Nach gut einer Woche probieren und basteln.
Webserver ist von außen erreichbar. Ping zwischen den Servern geht. Adressauflösung läuft und apt update und apt get am internen vServer funktioniert.

Herzlichsten Dank nochmal und einen schönen Abend.

PS: die überflüssigen iptables habe ich auskommentiert.
Danke auch für den Hinweis.

Jetzt muss nur noch alles umgezogen und abgesichert werden (bzw. anders rum ;-) ).

nochmal... Danke.

Mario885
Beiträge: 39
Registriert: 03.10.2018 22:47:39

Re: OpenVPN Server mit statischer IP als "Schleuse" für Server hinter Privatanschluss

Beitrag von Mario885 » 02.04.2019 23:32:04

Puh.

Leider zu früh gefreut.
Hatte ich vergessen. Das hatte ich in der Konstellation an sich so auch schon.
Scheinbar bringt der Hosteintrag in der interfaces leider nicht wirklich was oder ich habe es leider verbockt und da was falsch.

Es lag dran, dass ich leider die Webserverseite noch im Cache des Browsers hatte. Nach dem schließen des Browsers war kein Zugriff mehr möglich.

Ping und apt etc. am Client geht. ebenso ping vom Server zum Client.

Jedoch wie gesagt kein Webserver/Webseitenaufruf von Extern zum internen vServer. Das iegt daran (hatte ich auch schon rausgefunden), wenn ich die ipTables, wie von "TomL" vorgeschlagen lösche/auskommentiere. Dann tritt genau aktuelle Konstellation auf. Aktiviere ich das Ganze wieder, geht der zugriff auf den Webserver wieder etc., nur geht am vServer intern (Client) z.B. apt update und wget nicht. Bin also wieder am Anfang.

/etc/network/interfaces sieht nun so aus:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.178.11
netmask 255.255.255.0
gateway 192.168.178.XXX
dns.nameservers 10.8.0.1 192.168.178.XXX
/sbin/ip route add 82.XXX.XXX.XX via 192.168.178.11 up
# This is an autoconfigured IPv6 interface
iface eth0 inet6 auto
Hoffe ist so korrekt. Wie gesagt bzgl. Routing etc. hab ich leider kein so Plan.
Gateway da entfernen, wie vorgeschlagen wurde (wenn ich das korrekt verstanden habe) geht ja nicht, da ich dann keine Internetverbindung mehr habe, somit keinen Tunnel aufbauen kann.

Hoffe es hat noch einer ne Idee.
Werde echt langsam verrückt. Kann doch nicht so ein Hexenwerk sein verdammte Kac*** :roll: :roll: :cry:

Antworten