stefankittel
Goto Top

Gibt es ein fertiges Web-Tunnel-Gateway?

Hallo,

für einen Kunden frage ich mich ob es nicht ein Web-Tunnel-Gateway gibt.
Dann bräuchte man auf den Clients (Windows 7-10, MAC Uralt bis aktuell, Android und IOS) nichts zu konfigurieren.

Es reicht der Zugriff auf einen einzelnen Port. Das Ziel-System ist über https verschlüsselt.

Ich stelle mir das ganz einfach vor:
- Anmeldung auf einem Webinterface mit Zugangsdaten und Google Authentificator (Token)
- Das System fügt eine Port-Weiterleitung mit der externen IP des Besuchers hin (IP des Clients:* -> Externe IP:5001 -> Interne IP:443)

Die Verbindung ist über https verschlüsselt und unerlaubte Zugriffe über das Gateway verhindert.

Gibt es sowas fertig?

Stefan

Content-Key: 321612

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

Printed on: April 25, 2024 at 16:04 o'clock

Member: Epixc0re
Epixc0re Nov 20, 2016 at 23:48:06 (UTC)
Goto Top
Hi Stefan,

ich hab so eine Lösung basierend auf MikroTik im Einsatz.


LG,
Stefan
Member: aqui
aqui Nov 21, 2016 updated at 08:19:19 (UTC)
Goto Top
Welches MT Feature nutzt du da genau ? Die Bezeichnung "Web-Tunnel-Gateway" ist ja eher kryptisch und sagt nichts aus über das verwendete Verfahren oder was das genau sein soll. face-sad
Man kann darunter mit viel gutem Willen ein SSL VPN Gateway vermuten:
SSL-VPNs im Enterprise Umfeld
das einen VPN Tunnel über eine Website bzw. Website Access (mit Java) realisiert.
Da der MT das aber nicht kann wäre es mal interessant zu erfahren wie du das mit dem MT gelöst hast.
Mal ganz davon abgesehen was "Web-Tunnel-Gateway" IT technisch denn genau sein soll.
Member: StefanKittel
StefanKittel Nov 21, 2016 at 08:31:28 (UTC)
Goto Top
Moin,

sorry. was ist ein MT?

Ich habe eine aktuelle pfsense als Firewall.
Aus dem Internet ist aktuell kein System erreichbar.

Nun könnte ich einfach eine Port-Weiterleitung auf das HTTPs-System hinzufügen.
Allerdings möchte ich das System gegen unerlaubten Zugriff sichern.
Es ist zwar verschlüsselt kann sich aber gegen verschiedene Angriffe design-bedingt nicht wehren.

Also würde ich gerne diese Portweiterleitung mit der firewall der pfsense nur für bestimmte IPs erlauben.
Aber die leute haben alle dynamische IPs.

Also suche ich ein Webinterface wo sich der Benutzer anmeldet und das System in der Firewall eine Regel einträgt damit man von dieser IP die Port-Weiterleitung nutzen kann.

Ich könnte es auch einfach per VPN machen.
Ich dachte mir nur, dass so ein Gateway einfacher wäre wenn es so etwas fertig gibt.

Stefan
Member: StefanKittel
StefanKittel Nov 21, 2016 at 08:33:05 (UTC)
Goto Top
Ich kann den Titel nachträglich nicht ändern.
Besserwäre: Gibt es ein Modul für eine Firewall um per Webinterface IP-Adressen für Portweiterleitungen zu erlauben
Member: aqui
aqui Nov 21, 2016 updated at 08:52:50 (UTC)
Goto Top
MT = Mikrotik

IP Adressen für die Port Weiterleitung ?? Du meinst die Weiterleitung auf interne IPs und damit die internen LAN IPs oder ?
Klingt wieder kryptisch.
Grundsätzlich kann man das ja mit jeder Firewall und jedem Router machen wenn man GUI oder CLI im Internet exponiert.
Du solltest dich aber mal ernsthaft fragen ob du sowas wirklich willst...??
Port Weiterleitung bedeutet das diese Daten von jederman "gesehen" werden und vollkommen ungeschützt transferiert werden.
Deine Gednaken zum Thema VPN sind doch da viel sinnvoller und zudem erreichst du damit genau das was du willst.
Über ein VPN bist du im lokalen LAN wie ein lokaler Client und hast auf alles Zugriff. Genau der tiefere Sinn von VPNs.
Das das dann auch noch datentechnisch sicher ist der 2te Pluspunkt !

Mit Port Forwarding machst du die Firewall löchrig und schaffst immer potenzielle Angriffsfläche für dein Netz, klar !
Machen kannst du es aber dennoch. Musst ja nur die Konfig Oberfläche aus dem Internet erreichbar machen. Was in sich auch schon wieder ein NoGo ist.
Machbar ist aber alles. Ob es sicher und sinnvoll ist, ist natürlich was ganz anderes. Weisst du aber alles sicher auch selber ohne immerwährende Predigten in einem Admin Forum face-wink
Member: StefanKittel
StefanKittel Nov 21, 2016 at 09:18:40 (UTC)
Goto Top
Moin,

danke für Deine Zeit.
Entweder denke ich zu einfach oder Du zu kompliziert.

1. Ich erstelle eine Portweiterleitung von extern nach intern
Eingehender Port: 40354
Weiterleitung auf IP/Port: 192.168.15.25:443
2. Ich sage der Firewall, dass diese Port-Weiterleitung von keiner externen IP genutzt werden darf.
3. Nun kann ich der Firewall in der Shell einzelne externe IPs hinzufügen/erlauben

Jetzt brauche ich "nur" noch ein Webinterface indem der Benutzer seine IP whitelisten kann.
Nicht das normale Interface der Firewall. Eher eine Art von Captive Portal.

Stefan
Member: Lochkartenstanzer
Solution Lochkartenstanzer Nov 21, 2016 at 09:20:26 (UTC)
Goto Top
Moin,
Aqui, stefan will eo fach die firewallregel dynamisch anpassen, wenn sich der client über https authentifiziert hat.

İch würde da auf der firewall ein skript laufen lassen, daß bei erfolgreicher authentifizierung per bash-skript die filterregeln ergänzt. Wa fertiges wird es dafür wohl nicht geben.

lks
Member: StefanKittel
StefanKittel Nov 21, 2016 updated at 09:25:42 (UTC)
Goto Top
Hallo,

korrekt.
Einfach ein kleines Portal mit Benutzername, Kennwort und Token (Google Authentifikator) und fertig.
Für Systeme die nur einen Port brauchen der bereits verschlüsselt ist reicht das und ist weniger Aufwendig als ein vollwertiges VPN in einer inhomogenen Umgebung.

Stefan

Das kommt mit auf die Liste der Dinge die ich mal programmieren werde wenn ich Zeit dafür habe.
So ca. 2027
Member: aqui
Solution aqui Nov 21, 2016 at 09:31:03 (UTC)
Goto Top
OK...verstanden. Also quasi simples Port Forwarding nur mit dem Unterschied das man die inbound Absender IP in einer ACL freigeben will.
Gut, billige Router können das nicht, denn die können nicht nach Absender IP filtern sondenr nehmen alles wenn nur der Port stimmt.
Ausnahme natürlich die OpenWRT oder DD-WRT Maschinen mit denen ist das möglich allerdings nicht so komfortabel in einer GUI.
Mit den üblichen kleinen Business Routern wie Cisco, Lancom Bintec und Co geht das natürlich problemlos.
Bei Cisco ist das eine simple Zeile in der ACL.
Das Problem ist aber das keiner dieser Router sowas wie ein Klicki Bunti GUI dafür hat das der User der das nutzen will quasi sich nach Authentisierung mit einem Mausklick seine Absender IP freischalten kann.
Mal abgesehen davon das User die nicht IT affin sind ohnehin Problem haben werden ihre öffentliche Absender IP, sofern diese dynamisch zugeteilt wurde, zu ermitteln.
Nicht auszumalen was passiert wenn jemand leichtfertig so ein Passwort weitergeben würde.
Die Frage der Sinnhaftigkeit bleibt also.
Fragt sich ob man da nicht mit einem simplen VPN und einer User bezogenen ACL nicht einfacher fährt ?!
Member: StefanKittel
StefanKittel Nov 21, 2016 at 09:33:26 (UTC)
Goto Top
Hallo,

Danke.

Das es sowas nicht fertig gibt, erledigt sich die Frage erstmal.
Ich habe 2 fertige Systeme nach dem Prinzip gefunden. Eines welches zuletzt 2008 aktualisiert wurde und das andere in Version 0.02.

Wenn ich mal Zeit habe....

Stefan
Member: sk
sk Nov 21, 2016 updated at 12:26:11 (UTC)
Goto Top
Zitat von @StefanKittel:
Das es sowas nicht fertig gibt, erledigt sich die Frage erstmal.

Selbstverständlich gibt es das fix und fertig. Das kann jede Firewall, die Webbased Authentication sowie die Berücksichtigung derselben bei den Firewallregeln unterstützt (User aware). Ich würde erwarten, dass das jede aktuelle Firewall kann - per Definition jedenfalls jede UTM oder NGFW. Bei den USGs von Zyxel, Sonicwall und Fortinet ist dies jedenfalls kein Problem. Auch Cisco kann das: http://www.cisco.com/c/en/us/support/docs/security/asa-5500-x-series-ne ...
Das ist im Grunde nichts anderes, als ein Captive Portal - der Unterschied ist nur die Richtung des Traffics und dass die Freischaltung des Benutzers nicht anhand der MAC-Adresse, sondern anhand der Source-IP erfolgt.

Die Frage ist und bleibt allerdings, ob man einen auf der Frontfirewall laufenden Webservice im Web exponieren sollte. Die Antwort ist ganz klar: NEIN! Genau wie ein Webportal-basiertes SSL-VPN gehört diese Funktionalität auf ein dediziertes Gateway in der DMZ!

Die Nutzung von Schwachstellen in Webanwendungen oder Webservern zur Rechteausweitung ist eine der am häufigsten auftretenden Angriffsvarianten. So etwas will man nicht auf seiner Firewall laufen haben - erst recht nicht, wenn man sich vergegenwärtigt, dass bei vielen Herstellern der gleiche Webserver sowohl für die Firewallkonfiguration als auch für die webbasierte Authentifizierung und das Web-VPN zuständig ist. Findet ein Angreifer also eine Lücke im Web-VPN-Service, hat er oftmals schnell die gesamte Firewall unter Kontrolle!
Und glaubt nicht, dass solche Schwachstellen auf Firewalls nicht existieren, weil die Hersteller hierfür sensibilisiert sein müssten. Die coden oft genauso stümperhaft, wie ein Schülerpraktikant. Hier mal zwei "tolle" Beispiele aus dem Hause Zyxel:
https://www.redteam-pentesting.de/de/advisories/rt-sa-2011-003/-authenti ...
https://www.redteam-pentesting.de/de/advisories/rt-sa-2011-004/-client-s ...
Wie gesagt: nur ein (zugegeben sehr prägnantes) Beispiel, weil ich mich bei diesem Hersteller besonders gut auskenne und dies daher ad hoc zur Hand hatte.
Zu sagen, dass soetwas nur bei Billigheimern wie Zyxel passiert, wäre jedenfalls Augenwischerei. Ich kann mich z.B. an ähnliche Schwachstellen bei Juniper und Fortinet erinnern. Auch und gerade Cisco ist nicht fehlerfrei. Bei WebVPN macht Cisco ja immerhin schon vieles richtig, weil der Webserver für die Konfigurationoberfläche und WebVPN getrennte Prozesse sind. Aber selbst ein unpreviligierter WebVPN-Zugang kann in Kombination mit anderen Schwachstellen und Designfehlern schnell zum Problem werden. Siehe http://2014.ruxcon.org.au/assets/2014/slides/Breaking%20Bricks%20Ruxcon ...

Ich hoffe, es ist deutlich geworden, dass all die featureüberladenen UTM- und NG-Firewalls wie Astaro/Sophos usw. unbedarfte Admins in die Falle locken. Der Vertrieb sagt: wir können alles - und zwar in einer Box. Ich sage: mag sein - aber nutzen darf man es so nicht! Eine Front- oder Backfirewall darf keine Dienste im Internet bereitstellen - nicht nur keine Webserver, sondern z.B. auch keine IPSec- oder SSH-Dienste. All diese Dienste gehören auf dedizierte und in einer DMZ isolierte Spezial-Gateways, so dass ein Ausnutzen eventueller Schwachstellen nicht gleich zum Flächenbrand wird!

Ok. Genug in Rage geschrieben. Zurück zum Thema:

Grundsätzlich gilt: ein im Web angebotener Dienst muss möglichst sicher sein. Der Hersteller muss diesen sicher coden und Schwachstellen ggf. zeitnah fixen. Der Admin muss das System sicher konfigurieren/härten, regelmäßig patchen und vorallem monitoren. Zur sicheren Konfiguration gehört auch, dass der öffentlich erreichbare Dienst nur die unabdingbar erforderlichen Informationen speichert und minimierte Zugriffsrechte hat. --> von den "Kronjuweilen" trennen!
Es kann sinnvoll sein, die Angriffsfläche dadurch zu verkleinern, dass die Zugriffe von Extern auf bestimmte authentifizierte Benutzer und/oder Absender-IPs eingeschränkt wird. Wenn hierzu jedoch die Implementierung eines weiteren öffentlichen Dienstes erforderlich ist, muss man sich bewusst sein, dass auch dieser Schwachstellen haben kann und daher entsprechend "behandelt" werden muss. Und eine der dann zu befolgenden Grundlegeln lautet: Funktionstrennung. Keinesfalls darf man jedenfalls einen Webservice auf der Firewall im Internet exponieren!

Gruß
sk

P.S.
Statt einer (Web-)Authentifizierung könnte im vorliegenden Fall evtl. auch Portknocking eine Alternative sein. Das lässt sich z.B. mit einem Mikrotik problemlos implementieren: http://mum.mikrotik.com/presentations/US10/discher.pdf
Member: C.R.S.
Solution C.R.S. Nov 21, 2016 at 18:56:58 (UTC)
Goto Top
Zitat von @StefanKittel:

Ich habe eine aktuelle pfsense als Firewall.

Dann kannst du das auch per DynDNS der Clients lösen: Die Hostnamen in der pfSense als Alias definieren und dann die Firewall/NAT-Regel für den Alias erstellen. Das Auflösungsintervall (System>Advanced>Firewall/NAT) ist standardmäßig 5 Min. Wenn die Nutzer geduldig sind, reicht ihnen ein Update-Link ohne DynDNS-Client.

Grüße
Richard
Member: Epixc0re
Epixc0re Nov 21, 2016 at 20:42:14 (UTC)
Goto Top
Hi Stefan,

wenn du das Implementiert haben möchtest, sag Bescheid - mit 1h bekommen wir das leicht hin!


LG,
Stefan
Member: aqui
aqui Nov 22, 2016 at 08:18:49 (UTC)
Goto Top
Und das wäre jetzt dann einen normale Port Forwarding Regel die an eine inbound Firewall Regel gebunden ist wo dann manuell die entsprechenden Absender IPs eingetragen werden ?
OK, das kann man ja dann so machen ist aber etwas Handarbeit.
Weiterhin bleibt natürlich die Gefahr die mit Port Forwarding an sich einhergeht.
Member: Epixc0re
Epixc0re Nov 22, 2016 at 14:17:47 (UTC)
Goto Top
Aqui,

ja, im Prinzip:

/ip firewall nat add action=dst-nat src-address=CLIENTIP dst-port=Port dst-address=WANIPRouter proto=tcp to-addresses=Internes Ziel chain=dstnat
Die Rule lege ich dynamisch via API an, nach erfolgreicher OTP Authentifizierung.
Member: aqui
aqui Nov 22, 2016 at 17:17:52 (UTC)
Goto Top
OTP=One Time Password ?
Da muss ich mal doof nachfragen: Brauchst du dafür externe Tools ? Normal geht das ja nicht mit dem MT und Bordmitteln nicht.
Verbirgt sich ein MT Skritpt dahinter ? Klingt auf alle Fälle interessant nur rätsel ich etwas rum wie das konkret technisch geht ?! face-smile
Member: Epixc0re
Epixc0re Nov 22, 2016 at 17:48:33 (UTC)
Goto Top
Hi aqui,

OTP = one time Passwort, korrekt!

Selbstverständlich, dafür braucht man einen Webserver, der dann auf den Mikrotik zugreifen darf (via API).

LG,
Stefan
Member: StefanKittel
StefanKittel Nov 22, 2016 at 21:41:44 (UTC)
Goto Top
Wobei der Webserver ja am besten hinter der Firewall läuft.
Member: Epixc0re
Epixc0re Nov 22, 2016 at 23:43:16 (UTC)
Goto Top
Das ist dann etwas Sinnbefreit, mindestens Port 443 sollte schon erreichbar sein face-wink
Member: aqui
aqui Nov 23, 2016 at 11:06:05 (UTC)
Goto Top
Gibts da irgendwie ne Doku zu der MT API ??
Mitglied: 131381
131381 Nov 23, 2016 updated at 11:08:27 (UTC)
Goto Top
Zitat von @aqui:
Gibts da irgendwie ne Doku zu der MT API ??
http://wiki.mikrotik.com/wiki/Manual:API

Kann man aber bei Bedarf auch über einen einfachen SSH-Client und plink etc. pp abfackeln.

Gruß
Member: aqui
aqui Nov 23, 2016 at 11:42:46 (UTC)
Goto Top
Cool...wieder was gelernt face-wink
Muss ich glatt mal probieren mit SSH.
Gibts da auch irgendwie ne Sicherung ? Ohne wäre es ja fatal denn damit könnte man ja die Konfig vollständig manipulieren.
Mitglied: 131381
131381 Nov 23, 2016 updated at 11:58:37 (UTC)
Goto Top
Zitat von @aqui:
Muss ich glatt mal probieren mit SSH.
Gibts da auch irgendwie ne Sicherung ? Ohne wäre es ja fatal denn damit könnte man ja die Konfig vollständig manipulieren.
Geht natürlich per SSH nur mit Authentifizierung (user, pass) welches du mitschickst, wäre ja noch schöner face-smile

Unter Windows mit plink z.B. so
plink -ssh -pw GEHEIM admin@192.168.10.1 "/ip route print"  
Geht natürlich bevorzugt auch mit Zertifikatauth ohne Passwörter.
Member: aqui
aqui Nov 23, 2016 at 12:04:52 (UTC)
Goto Top
Ich nehme mal an bei unixoiden OS ist das dann rein SSH statt plink, richtig ?
Danke für das Beispiel !
Mitglied: 131381
131381 Nov 23, 2016 updated at 12:24:21 (UTC)
Goto Top
Zitat von @aqui:
Ich nehme mal an bei unixoiden OS ist das dann rein SSH statt plink, richtig ?
Korrekt. Machst du dann wie bei einer normalen SSH-Verbindung zwischen zwei Linux Kisten.
Member: sk
sk Nov 24, 2016 updated at 01:03:33 (UTC)
Goto Top
Zitat von @Epixc0re:
ja, im Prinzip:
> /ip firewall nat add action=dst-nat src-address=CLIENTIP dst-port=Port dst-address=WANIPRouter proto=tcp to-addresses=Internes Ziel chain=dstnat
Die Rule lege ich dynamisch via API an, nach erfolgreicher OTP Authentifizierung.

Auch wenn mein obiges Posting komplett ignoriert wurde, muss ich doch noch ein letztes Mal mahnend den Finger heben:

Meine aktive Mikrotik-Zeit ist lange her und vielleicht bin ich deshalb nicht mehr auf dem letzten Stand oder zumindest nicht tief genug im Thema, aber meines Wissens ist es in RouterOS nicht möglich, die Rechte eines MT-Users soweit einzuschränken, dass er nur eine ganz bestimmte Firewallregel setzen oder ändern kann. Deine Webanwendung oder zumindest der Prozess, der letztlich die Configänderungen in den MT schreibt, müsste m.E. die Zugangsdaten für einen User-Account auf dem MT haben, der über die Login-Policy "api" und die Config-Policy "write" verfügt. Außerdem muss natürlich die erforderliche Netzwerkkonnektivität gegeben sein.
Dies bedeutet: Das selbst gestrickte Authentifizierungsfrontend oder zumindest der dahinterliegende Prozess, der die gewünschten Config-Änderung in den MT schreiben soll, hat nahezu uneingeschränkte Rechte für Konfigurationsänderungen auf dem MT (bei fehlendem "policy" kann er z.B. keine Änderungen an der Userdatenbank vornehmen). Die Sicherheit dieses Systems steht und fällt also mit der Sicherheit und Fehlerfreiheit des Webfrontends/Änderungsprozesses!

Selbst wenn ich annehme, dass die obige Zeitangabe von einer Stunde sich nicht auf das schnelle Dahincoden in einer serverseitigen Skriptsprache bezieht, sondern rein auf die Implementierung einer durchdachten, auch unter Sicherheitsaspekten genau untersuchten und getestenten sowie in der Praxis bewährten Lösung bezieht, dann erscheint mir dies dennoch nur dann vertretbar, wenn der auf diese Weise angesteuerte Mikrotik-Router nicht gleichzeitig die bisherige Firewall substituiert, sondern innerhalb eines mehrstufigen Firewallkonzeptes lediglich für diesen speziellen Kommunikationskanal als dedizierte zusätzliche Ergänzung dient. Die von diesem Miktorik-Router ausgehenden Verbindungen müssen sämtlichst von einer davon unabhängigen Firewall reglementiert werden und im Falle nicht erwarteten Traffics muss das Monitoring ganz laut "Alarm" schreien.

Alles andere wäre meiner Meinung nach grob fahrlässig! Ein remote steuerbarer Mikrotik-Router unter fremder Kontrolle verkehrt nicht nur den hier avisierten Nutzen ins Gegenteil und verringert das angestrebte Schutzniveau beim TO, sondern kann auch als beachtliche Waffe gegenüber Dritten genutzt werden.

Bewährte Best Practices haben ihren Sinn und sollten nicht leichtfertig ignoriert werden, denn gut gemeint ist nicht immer auch gut gemacht und der Teufel ist immer ein Eichhörnchen!

Gruß
sk
Member: aqui
aqui Nov 24, 2016 updated at 09:16:07 (UTC)
Goto Top
Die Sicherheit dieses Systems steht und fällt also mit der Sicherheit und Fehlerfreiheit des Webfrontends/Änderungsprozesses!
Das war genau die Intention meiner Frage oben face-wink Deshalb danke für die Klarstellung.
Ignoriert haben wir das Posting natürlich keineswegs...im Gegenteil !