Hallo Zusammen,
Ich hoffe Ihr hattet alle schöne Weihnachten.
Schliderung der Ausgangslage.
So sieht das Netzwerk bei mir Zuhause momentan aus.
+-------------------------+ (public IP)| | {INTERNET}=============={ Router | | | | LAN switch | +------------+------------+ | (192.168.0.1) | | +-----------------------+ | | | | | OpenVPN | eth0: 192.168.0.10/24 +--------------{eth0 server | tun0: 10.8.0.1/24 | | | | | {tun0} | | +-----------------------+ | +--------+-----------+ | | | Other LAN clients | | | | 192.168.0.0/24 | | (internal net) | +--------------------+
Portforwarding (Konfigurierter OpenVPN Port UDP auf OpenVPN Server)
OS auf OpenVPN Server Ubunut 16.04 LTS Server Version (ohne GUI)
Nun möchte ich von extern mit meinem Windows 10 Client mit Installieretem OpenVPN Client auf das Heimnetzwerk zugreifen und mit den Geräten kommunizieren. Zudem sollten die Geräte im LAN noch mit dem Internet Kommunizieren dürfen.
Dafür habe ich folgendes auf dem VPN Server eingerichtet.
# Allow traffic initiated from VPN to access LAN iptables -I FORWARD -i tun0 -o eth0 \ -s 10.8.0.0/24 -d 192.168.0.0/24 \ -m conntrack --ctstate NEW -j ACCEPT # Allow established traffic to pass back and forth iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED \ -j ACCEPT
# Masquerade all traffic from VPN clients -- done in the nat table iptables -t nat -I POSTROUTING -o eth0 \ -s 10.8.0.0/24 -j MASQUERADE
Wenn ich mich nun mit dem Windows 10 Client im LAN befinde kann ich den VPN Tunnel zum OpenVPN Server aufbauen und erhalte eine IP Adresse im Bereich 10.8.0.x.
Nun kann ich mit dem Server über ssh kommunizieren. Ob nun die Verbindung über den Tunnel verwendet wird oder über das normale Interface hab ich noch nicht getestet.
Ich werde wenn nötig, mit Wireshark an den jeweiligen Interfaces Sniffen um genaueres herauszufinden.
Jetzt zum eigentlichen Problem.
Verbinde ich mein Windows 10 Client mit meinem Android Hotspot um ein externes Netzwerk zu simulieren. Gelingt mir zwar der Verbindungsaufbau über VPN. erhalte wieder eine IP Adresse 10.8.0.y.
Doch es wird mir nicht erlaubt mit dem Server über ssh zu kommunizieren.
Nun meine Frage. Ist es tatsächlich notwendig an der Swisscom Box die benötigten Ports für ssh rdp smtp etc. zu öffnen um mit meinen Geräten zu kommunizieren. Oder kann ich das mit einer zusätzlichen Firewall Instanz auf dem OpenVPN Server lösen.
Vielen Dank für eure Hilfe
zer0g
Hallo Zusammen
Diese Anleitung hat schlussentlich zum gewünschten Ziel geführt.
OpenVPN-Installationsanleitung
Danke für die Hilfe, hier noch die konfigurationen welche zum Ziel geführt haben plus einige Zusätze für die key erstellenung.
Und nochmals die Zeichnung.
+-------------------------+ (public IP)| | {INTERNET}=============={ IB Swisscom | | | | LAN switch | +------------+------------+ | (192.168.1.1) | | +-----------------------+ | | | | | OpenVPN | enp0s25: 192.168.1.x/24 +--------------{enp0s25 server | tun0: 10.8.0.1/24 | | | | | {tun0} | | +-----------------------+ | +--------+-----------+ | | | Other LAN clients | | | | 192.168.1.x/24 | | (internal net) | +--------------------+
Zuerst die Openvpn Server Konfiguration gekürzt auf die angepassten Parameter, ohne default Werte.
port 1194 proto udp dev tun ca ca.crt cert server.crt key server.key # This file should be kept secret dh dh2048.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220" keepalive 10 120 tls-auth ta.key 0 # This file is secret key-direction 0 cipher AES-128-CBC # AES auth SHA256 comp-lzo user nobody group nogroup persist-key persist-tun status openvpn-status.log verb 9 crl-verify crl.pem
etc/uwf/before.rules
# START OPENVPN RULES # NAT table rules *nat :POSTROUTING ACCEPT [0:0] # Allow traffic from OpenVPN client to enp0s25 -A POSTROUTING -s 10.8.0.0/8 -o enp0s25 -j MASQUERADE COMMIT # END OPENVPN RULES
ufw allow OpenSSH
ufw allow 1194/udp für OpenVPN Port
~/client-configs/make_config.sh
#!/bin/bash # First argument: Client identifier KEY_DIR=~/openvpn-ca/keys OUTPUT_DIR=~/client-configs/files BASE_CONFIG=~/client-configs/base.conf cat ${BASE_CONFIG} \ <(echo -e '<ca>') \ ${KEY_DIR}/ca.crt \ <(echo -e '</ca>\n<cert>') \ ${KEY_DIR}/${1}.crt \ <(echo -e '</cert>\n<key>') \ ${KEY_DIR}/${1}.key \ <(echo -e '</key>\n<tls-auth>') \ ${KEY_DIR}/ta.key \ <(echo -e '</tls-auth>') \ > ${OUTPUT_DIR}/${1}.ovpn
base.conf für Client Konfig
client dev tun proto udp resolv-retry infinite nobind user nobody group nogroup persist-key persist-tun remote-cert-tls server cipher AES-128-CBC auth SHA256 comp-lzo key-direction 1 verb 3
Statische Route auf IB
10.8.0.0 > 255.255.255.0 > OpenVPNServerIP
Portforwarding
Eingangsort 1194 weiterleiten auf OpenVPN Server
So ich denke das ist alles. Sonst reiche ich es nach.
Danke nochmals für die Hilfe
Freundliche Grüsse
zer0g
Hallo zerg0
Ich kann dir nur die Logik aufzeigen, umsetzen auf iptables musst du dann übernehmen.
Welche Port man weiterleiten musst für VPN bei einem Doppel Nat muss ich auch zuerst nachschauen, aber Google weiss alles.
Bei mir habe ich die Subnetze auf 255.255.255.0 gesetzt.
IB = Swisscom Internet Box IP = 192.168.1.1
Wan1 von der IB IP = öffentliche IP Adresse
Lan1 von der IB IP Range DHCP = 192.168.1.100 bis 192.168.1.200
FW = deine Firewall IP = 192.168.2.1
Wan2 von der FW IP = IP von Lan1 (muss aber immer die gleiche sein, wegen Port Weiterleitung an deine FW)
Lan2 von der FW IP Range DHCP = 192.168.2.100 bis 192.168.2.200
VPN für die Geräte IP Range DHCP = 192.168.3.100 bis 192.168.3.200
Die IP Range dürfen nicht dieselben sein, ansonsten funktioniert das Routing nicht.
Ich hoffe ich konnte dir soweit helfen, habe jetzt nicht alles ins kleinste Detail beschrieben, denke du weisst jetzt wie.
Gruss
Peter
Hallo Peter,
danke für die Antwort. Das Netzwerk auf verschiedene Subnetze aufteilen, daran hab ich auch schon gedacht. Allerdings hab ich nach einer möglichkeit gesucht dies direkt auf der Swisscom Box zu machen und wollte zuerst nicht auf ein Externes Gerät zurückgreifen.
Aber ist der Gedanke korrekt, dass nur der VPN Port an das WAN2 der Firewall weitergeleitet werden muss und keine Remotesteuerungsprotokolle etc. Diese werden intern gehandhabt?
Mit meinen IPtables wollte ich das Routing ursprünglich vom internen Netz 192.168.1.x nach 10.8.0.y routen. Welches sich um das VPN Netz handelt.
Wieso muss dann noch ein weiteres Subnetz erstellen?
Grüsse
zer0g
Hallo Peter,
danke für den Input. Wenn das so ist schau ich mir mal die Konfiguration mit der ASA5505 an die müsst ich irgendwo noch rumligen haben. Hoffentlicht mit gig ports.
Ansonsten such ich nach einer weiteren Netzwerkkarte für meinen Desktop PC auf welchem momentan der VPN Server läuft. Und konfiguriere darauf das nötige. Sollte ja auch klappen.
Leider werde ich vor dem Wochenende kaum dazu kommen.
Danke für die Hilfe. Ich Informiere dich über den Stand sobald wie möglich.
Grüsse
zer0g
Also wenn der ssh Server und der openvpn Server die gleiche Maschine ist, braucht es von Seite Openvpn und Router keine weitere Konfiguration.
Daher wird vermutlich dein Setup einen Fehler haben.
Ich würde mich an das openvpn Wiki von Ubuntuusers halten. Da ist auch nochmals genauer beschrieben das für eine weitergehende Konfiguration in diesem Fall noch eine Route auf der Internet-Box (Im Wiki Fritzbox) erstellt werden muss.
Das wäre aber in diesem einfachen Fall aber gar nicht nötig.
https://wiki.ubuntuusers.de/OpenVPN/
Hallo TuxOne,
danke für deine Antwort. Ich habe mich bei der Installation und konfiguration des OpenVPN Server an die Anleitung des Ubunutu Forums gehalten.
Der ssh Server und der OpenVPN Server sind die selben. Doch es existieren noch weitere nicht Unix Systeme im Netzwerk welche über eine Remoteverbindung erreicht werden sollten. Vorzugsweise über RDP. Windows.
Beide Verbindungen funktionieren, wenn ich mich im Netzwerk befinde, daher die Frage wo die Ports geöffnet werden müssen, dass die Reotesteuerung auch vom VPN Netzwerk aus funktioniert.
Grüsse
zer0g
Das ist abhängig wie deine Maschinen konfiguriert sind. Ist auf diesen ebenfalls eine Firewall aktiv so muss diese auch angepasst werden damit diese Verbindungen aus dem VPN Netz erlauben.
Bei mir zB. ist auf dem NAS eine Firewall aktiv. Explizit habe ich hier das VPN Netz erlaubt.
Nebenbei habe ich zB. noch ein arm Serverli ohne aktives iptables. Hier sind die Regeln nur auf der Firewall definiert da diese Maschine so oder so eine dezidierte Schnittstelle zur Firewall hat.
In deinem Fall so wie ich sehe können also nur die Firewall auf dem Server und eventuell auf den Clients eine Rolle spielen.
Du kannst ja iptables mal kurzfristig deaktivieren um zu schauen wo das Problem ist.
Als Hilfe dünkt mich diese Seite nicht schlecht: https://parabing.com/2014/06/openvpn-on-ubuntu/
Da hast du die iptables Regeln auf dem vpn Server schön dargestellt.
+ das IP Routing auf dem VPN Server muss aktiviert sein
+ eine statische Route auf der Fritzbox erstellen: 10.8.0.0 255.255.255.0 > 192.168.0.10 wenn die IP's in deinem Netz wirklich so aufgebaut sind.
Hi,
Die statischen routen sind eingerichten auf das VPN Netz. Dennoch klappt es nicht. Die ufw firewall von Ubuntu hab ich ausgeschaltet und getestet um auf Firewallprobleme zu untersuchen trotztdem klappt es nicht.
Daher der Gedanke bei der Swisscom Firewall welche die Ports blockt, auch wenn es aus meiner Sicht keinen Sinn ergibt, dass Swisscom die Ports blockt.
Ich werde bei gelegenheit mal die Option von Peter mit verschiedenen Netzwerken Testen und mit einem zusätzlichen Gerät welches den VPN Tunnel eröffnet.
Ansonsten wechsle ich auf die Internetbox 2 welche VPN als Dienst mitliefert.
Grüsse und schönen Abend
zer0g
Uh wenn ich das Wort ib2 und "VPN" schon lese muss ich da fast noch etwas Energie investieren um das zu verhindern. Pfuiiii.
Also. Klar ist die Verwaltung auf einem Gerät, einer Firewall viel einfacher. Ob das eine A(N)SA, Zyxel, pfsense oder whuat ever ist soll mal hier keine Rolle spielen.
Aber auch die Konfig auf einem separaten Server ist machbar.
In deiner Grafik und dem geschriebenen hat es doch eine Diskrepanz. Dem kann man aber auf die Schliche kommen. Man braucht hier nur einige Angaben von dir. Diese kannst du hier posten.
e /etc/sysctl.conf bzw. den Part mit net.ipv4.ip_forward=1 ausdokumentiert also ohne #
die /etc/ufw/before.rules
ein sudo ufw status verbose
und die statische Route in der Internet Box
Hallo
So, habe mal meine Firewall auf Firmware 4.20 Patch 2 gepatcht.
Und habe mal wieder das Log angeschaut (Firewall ist ja in der DMZ von der IB2) hui was sehe ich da😳? Bild folgt dann.
Also das versteht Swisscom also unter DMZ 😀
Zum Glück entwickelt Swisscom keine Firewall 😂😂😂
Sorry Swisscom, konnte nicht mehr.
Aber ok, gut für mich, so muss ich mir keine gedanken mehr machen welche Port ich öffnen muss🙂
@Tux0ne ich habe schon viele Beiträge von dir gelesen, welche mir sehr geholfen haben.
Vielen Dank
Danke für die Unterstüzung,
Das Log und die Konfiguration des OpenVPN kann ich momentan nicht liefern, da ich vorübergehend nicht Zuhause bin. Ich werde diese Bestenfalls am kommenden Samstag nachreichen.
P.May
Ich sehe schon, dass ich mich noch zusätzlich über die Sicherheit Informieren muss befor ich wirklich das VPN Netz in Betrieb nehme. Da sind wohl einige SkriptKiddies unterwegs..
Bis bald und schönes neues Jahr.
Grüsse
zer0g
Easy das Forum läuft nicht davon.
Ich versuche in der Zwischenzeit noch die nomadische IPv6 Nutzung von unterwegs.
Der Entwickler oder ich sind noch am üben 🙂
https://twitter.com/Tux0ne/status/815544873243840512?lang=de
Hab noch einen Fehler in der Konfig entdeckt, welchen ich heute Abend anpassen werde.
ufw befor.rules
das interface ish flasch emp0s25 > enp0s25
Der Fehler in der Konfig von der Ubuntu Firewall war nicht ausschlaggebend dafür, dass es nicht funktioniert hat sondern ein überlegungsfehler von mir.
Hab in der Client Konfig nun mal die öffentliche IPAddresse der Internetbox eingertragen und siehe da es funktioniert..
Nun ergibts sich hier eine neue Frage und zwar ob diese öffentliche IP Adresse statisch oder dynamisch ist.
Wenn sie dynamisch ist, kann ich dan den DynDNS Namen der IB in der Konfig des OpenVPN clients angeben sodass ich nicht immer die IP-Adresse anpassen muss?
Danke für die Hilfe
Grüsse
zer0g
Da bin ich auch froh 🙂
Werde die konfig wohl noch genau reinschreiben als Lösung für künftige mal schauen wann ich dazu komme.
Schönen Abend miteinander.
Grüsse
zer0g