ADMIN
2025
06
2025-05-28T12:00:00
Mobiles Arbeiten
PRAXIS
062
Security-Tipp
Sicherheit
Remotezugriff
Pomerium
Remotezugriff ohne VPN mit Pomerium
Schnell getunnelt
von Dr. Matthias Wübbeling
Veröffentlicht in Ausgabe 06/2025 - PRAXIS
Remotezugriff auf Anwendungen im Firmennetzwerk sind heute der Standard in den meisten Unternehmen. Gerade kleine Teams agieren dabei nicht immer mit sicheren Setups und laufen damit Gefahr, Tür und Tor für Angreifer zu öffnen. Das Einrichten eines Enterprise-VPN ist mitunter umständlich, teuer und gar nicht immer nötig, um Zugänge zuverlässig zu schützen. Mit identitätsprüfenden Proxies wie Pomerium sichern Sie den Zugriff auf einzelne Anwedungen in Ihrem Firmennetzwerk einfach ab.

Fast alle Unternehmen betreiben interne Webanwendungen – etwa Wikis, Dashboards, Webseiten zur Administration oder zum Maschinenzugriff. Der Zugriff auf diese Systeme von einem Rechner außerhalb der eigenen Infrastruktur erfolgt traditionell über VPNs, Firewalls oder IP-Allowlists – manchmal sind die Zugänge aber auch einfach komplett ungeschützt über das Internet zu erreichen, etwa bei Webmailzugängen oder Ähnlichem. Das Aufsetzen eines VPNs für nur wenige Dienste steht in den Netzwerken kleiner und mittlerer Unternehmen oft nicht im Verhältnis zum Aufwand, ganz unabhängig davon, dass es vermutlich nur eine kleine IT-Abteilung gibt, die mit vielen anderen Dingen beschäftigt ist.
So ist oft das Erste, was Administratoren einrichten, ein eigener mobiler Zugang in die Unternehmensinfrastruktur, um auch von unterwegs und zu Hause auf interne Anwendungen zugreifen zu können. Dabei spielt es keine Rolle, ob die Server physisch im Unternehmen stehen oder bei einem Hoster in der Cloud oder als Bare-Metal-Server. Viele moderne Anwendungen bieten eine Weboberfläche für die Benutzung und sollen daher für die User auch erreichbar sein.
Pomerium als HTTP-Reverse-Proxy
Bei Pomerium [1] handelt es sich technisch um einen identitätsbasierten HTTP-Reverse-Proxy, der vor den Zugang zu internen Webanwendungen geschaltet wird. Vergleichbar mit Nginx oder Traefik, die eingehende Anfragen annehmen und an die Anwendungsserver weiterleiten. Nur mit dem Unterschied, dass der Benutzer sich vorher mit seinem persönlichen Zugang anmelden muss. Zur Benutzerauthentifikation können Sie beispielsweise auf bestehende SSO-Dienste wie Google Workspace, Microsoft Entra ID oder GitHub zurückgreifen.
Fast alle Unternehmen betreiben interne Webanwendungen – etwa Wikis, Dashboards, Webseiten zur Administration oder zum Maschinenzugriff. Der Zugriff auf diese Systeme von einem Rechner außerhalb der eigenen Infrastruktur erfolgt traditionell über VPNs, Firewalls oder IP-Allowlists – manchmal sind die Zugänge aber auch einfach komplett ungeschützt über das Internet zu erreichen, etwa bei Webmailzugängen oder Ähnlichem. Das Aufsetzen eines VPNs für nur wenige Dienste steht in den Netzwerken kleiner und mittlerer Unternehmen oft nicht im Verhältnis zum Aufwand, ganz unabhängig davon, dass es vermutlich nur eine kleine IT-Abteilung gibt, die mit vielen anderen Dingen beschäftigt ist.
So ist oft das Erste, was Administratoren einrichten, ein eigener mobiler Zugang in die Unternehmensinfrastruktur, um auch von unterwegs und zu Hause auf interne Anwendungen zugreifen zu können. Dabei spielt es keine Rolle, ob die Server physisch im Unternehmen stehen oder bei einem Hoster in der Cloud oder als Bare-Metal-Server. Viele moderne Anwendungen bieten eine Weboberfläche für die Benutzung und sollen daher für die User auch erreichbar sein.
Pomerium als HTTP-Reverse-Proxy
Bei Pomerium [1] handelt es sich technisch um einen identitätsbasierten HTTP-Reverse-Proxy, der vor den Zugang zu internen Webanwendungen geschaltet wird. Vergleichbar mit Nginx oder Traefik, die eingehende Anfragen annehmen und an die Anwendungsserver weiterleiten. Nur mit dem Unterschied, dass der Benutzer sich vorher mit seinem persönlichen Zugang anmelden muss. Zur Benutzerauthentifikation können Sie beispielsweise auf bestehende SSO-Dienste wie Google Workspace, Microsoft Entra ID oder GitHub zurückgreifen.
Auf Basis der Logins lassen sich dann sehr einfach unterschiedliche Zugriffsrichtlinien auf einzelne Dienste definieren. Zunächst schränken Sie den Kreis der Benutzer etwa auf die E-Mail-Adressen der eigenen Organisation ein. Damit haben beispielsweise alle Mitarbeiter Zugang zum gemeinsamen Wiki oder das Zeit- und Urlaubsmanagement. Anschließend schalten Sie ausgewählte Logins für den Zugriff auf existierende Admin-Oberflächen frei, sodass Sie und Ihr Team schon einmal arbeiten können. Den Zugriff auf Webfreigaben oder -anwendungen erlauben Sie dann abteilungsbasiert und schränken sogar zeitlich ein, wann ein Zugang möglich ist und wann nicht.
Testsetup mit Docker
Wie üblich setzen wir an dieser Stelle mit Docker eine Testinstanz von Pomerium auf, um uns die Schritte zur Einrichtung und den Betrieb näher anzusehen. Für einen einfachen Versuch empfiehlt sich ein virtueller Server bei einem der hiesigen Hoster. Vor dem Start erstellen Sie einen für die persönliche Nutznug kostenfreien Account bei Pomerium [2]. Die kommerzielle Nutzung wird pro Benutzer abgerechnet.
Da Pomerium als Open-Source-Software über Github verfügbar ist, lassen sich aber auch komplett eigene Instanzen erstellen. Für unseren Test melden Sie sich am einfachsten mit Ihrem Google- oder Github-SSO-Account an. Alternativ verwenden Sie Ihre E-Mail-Adresse, um einen Account zu erstellen. Nach der Anmeldung sehen Sie im Onboarding-Bereich unterschiedliche Technologien für die Installation. Da wir der Einfachheit halber Docker verwenden möchten, laden Sie direkt die angezeigte Datei "Compose.yaml" mit Ihrem persönlichen Token herunter.
Zum Testen stellt Pomerium eine individuelle URL bereit. Natürlich können Sie die Software auch unter Ihrer eigenen Domain betreiben, für den ersten Einblick ist die bereitgestellte Domain aber durchaus praktisch. Starten Sie nun den Container mit docker compose up
und warten Sie einen kurzen Moment. Wenn Sie nun die URL "https://localhost" aufrufen, erhalten Sie einen Fehler, dass die gewählte Route nicht verfügbar ist. Das ist kein Problem und liegt daran, dass es eben keine Route auf der Domain gibt.
Da sich Ihre Instanz im Hintergrund bei Pomerium registriert hat, greifen Sie über die URL "https://console.pomerium.app" auf die Einstellungen und Ihre Routen zu. Dort finden Sie zwei voreingestellte Routen, eine SSH-Route auf Ihren Server (dazu gleich mehr) und eine Verify-Route, mit der Sie Informationen zu Ihrem angemeldeten Benutzer erhalten. Klicken Sie zunächst auf die Verify-Route, werden Sie damit auf die lokale Instanz weitergeleitet und erhalten dort Informationen zu Ihrem angemeldeten Benutzer. Öffnen Sie die URL in einem privaten Tab, landen Sie zunächst bei der Anmeldung mit Ihren Logindaten, und gelangen anschließend wieder zurück.
Weitere Protokolle absichern
Bisher haben wir gesehen, wie sich Pomerium verhält, wenn Sie mittels HTTP auf Webseiten zugreifen möchten, die damit geschützt werden. Wie bereits angedeutet, können Sie dahinter aber auch weitere Dienste absichern, etwa den Zugang zu einem SSH-Server. Seit einiger Zeit beherrscht Pomerium die Weiterleitung von TCP und UDP unabhängig vom eingesetzten Anwendungsprotokoll. Um beispielsweise eine SSH-Verbindung aufzubauen, müssen Sie allerdings einen lokalen Client installieren, der für Sie das Port-Forwarding lokal einrichtet und den Tunnel über die HTTP-Verbindung zum Server realisiert. Authentifizierung und Prüfung der Berechtigungen finden dabei natürlich genauso statt, wie bei den HTTP-Anwendungen.
Routen und Profile definieren
Für jede Anwendung, die Sie freigeben möchten, müssen Sie im Backend eine Route konfigurieren. Wählen Sie dafür im Menü den Punkt "Routes" und klicken dann im rechten Bereich auf "New Route". Für manche Anwendungen gibt es von den Entwicklern bereitgestellte Guides zur Einrichtung, in unserem Fall erstellen wir eine "Custom Route". Unter "General" vergeben Sie Namen sowie Beschreibungen und legen die URL fest, unter der die Anwendung erreichbar sein soll. Hier setzen Sie bei der Testinstanz die Subdomain, den Rest Ihrer Domain fügt Pomerium für Sie an. Unter "To" geben Sie die interne URL der Anwendung ein – läuft diese lokal auf derselben Maschine zum Beispiel "http://localhost:8000" für Webanwendungen mit Python-Framework.
Unter "Policies" wählen Sie eine der bereits vorgegebenen Richtlinien oder legen später eine eigene fest. Klicken Sie sich zunächst durch die anderen Einstellungen der Route, etwa Pfad-Matching oder das Umschreiben von Pfaden, konfigurieren Sie Verbindungs-Timeouts und spezielle TLS-Settings. Unter "Advanced" können Sie für diese Route separate Identitätsprovider oder Webtoken konfigurieren und Pomerium für das Loadbalancing einrichten, indem Sie mehrere Backenddienste konfigurieren.
Um den Zugriff an Ihre Bedarfe anzupassen, wählen Sie im linken Menü den Punkt "Policies". In der Starter-Version, die wir für unseren Workshop verwenden, können Sie nur eine zusätzliche Policy anlegen. Um ein Gefühl dafür zu bekommen, was alles möglich ist, reicht das aber vollkommen aus. Als Erstes legen Sie fest, ob die Richtlinie für alle Routen im Cluster gelten soll oder den Routen individuell zugeordnet wird. Während die erste Option für allgemeine Richtlinien sinnvoll ist, etwa dass Benutzer mit einer bestimmten E-Mail-Adresse angemeldet sein müssen, eignen sich Policies mit der zweiten Option zur feingranularen Zugriffskontrolle basierend auf den bereitgestellten Anwendungen.
Fügen Sie nun einen sogenannten "Allow"-Block hinzu, konfigurieren Sie also positive Richtlinien für den Zugang. Klicken Sie neben "ALLOW" auf das "+"-Symbol und wählen dann beispielsweise "AND" als Verknüpfung aus. Für den Zugriff auf die Anwendung müssen dann alle Bedingungen erfüllt werden. Unter "Criteria" geben Sie nun das Kriterium an, etwa den Wochentag, die Uhrzeit oder bestimmte Anforderungen wie E-Mail-Domains oder Benutzerzertifikate und konfigurieren diese. Speichern Sie die Policy mit einem Klick auf "Save Policy" und wählen Sie diese anschließend in den angelegten Routen entsprechend aus.
Fazit
Pomerium ermöglicht es vor allem für kleine und mittelgroße Teams, interne Webanwendungen sicher und effizient zugänglich zu machen. Die komplexen VPN-Netzwerkinfrastrukturen werden durch einen identitätsbasierten und modernen Sicherheitsansatz abgelöst, der sich gut in bestehende Workflows integrieren lässt. Der Security-Tipp hat Ihnen gezeigt, wie Sie ohne großen Aufwand mit der Einrichtung starten, Routen und Policies zu konfigurieren. So stellen Sie einzelne Dienste sicher im Internet bereit, ohne diese für Angreifer frei zugänglich laufen zu lassen.
(dr)