Firewalling auf Benutzerebene mit Portsmith

Parole

Der Linux-Paketfilter IPTables ist schon länger eine ernst zu nehmende Alternative zu kommerziellen Firewall-Lösungen. Eine Funktion, die einzelne Ports für angemeldete Benutzer dynamisch frei schaltet, sucht man jedoch vergebens. In diese Bresche springt Portsmith, das es Benutzern ermöglicht, gewünschte Verbindungen selbst zu aktivieren.

Die dynamische Freischaltung von Ports nach erfolgter Anmeldung eines Benutzers kennen CheckPoint- und Cisco-Administratoren schon länger unter den Begriffen "Client Authentication" und "Cut-through Proxy". In den allermeisten Fällen findet sich diese Funktionalität aber eher in Schulungen oder entsprechenden Prüfungen als in der Realität wieder, vorwiegend da die Umsetzung nur wenig benutzerfreundlich ist, oder aufgrund von Einschränkungen erst gar nicht genutzt werden kann.

Vermutlich ist dies auch der Grund, warum IPTables eine solche Eigenschaft von Haus aus erst gar nicht mitbringt. Natürlich ließe sich eine solche Funktionalität mit einigen selbst geschriebenen Skripts nachbilden. Ob die selbst gestrickte Lösung dann aber auch von den Benutzern angenommen wird steht auf einem anderen Blatt, da für den Administrator primär zumeist die Funktionalität und Sicherheit zählt. Die Benutzbarkeit durch den Endnutzer bleibt hier in viele Fällen auf der Strecke.

Portsmith macht Ports frei

Abhilfe hierbei schafft das unter GPL stehende Portsmith [1], das die nötige Infrastruktur bereitstellt, um authentifizierten Benutzern die Freischaltung von Ports per Webbrowser zu ermöglichen. Mir Portsmith können sie Ports auf der Firewall nicht nur selbst öffnen, sondern vor auch Weiterleitungen von Verbindungen an interne Server einrichten. Während Ersteres praktisch für den Administrator sein kann, den SSH-Zugang von außen nur im Bedarfsfall für sich zu öffnen, zielt die zweite Variante vor allem auf Endnutzer ab, die sich beispielsweise so über das Internet mit einem internen Terminalserver verbinden können.

Um potentiellen Sicherheitsrisiken vorzubeugen, bleibt der Administrator hierbei natürlich trotz allem Herr über die jeweiligen Freischaltungen. Jedem Benutzer werden die für ihn benötigten Kommunikationsbeziehungen explizit zugeordnet, so dass dieser ausschließlich Zugriff auf die für ihn freigegebenen Ressourcen erhält. Somit wird sichergestellt, dass in Nutzer nicht plötzlich das Firewall-Regelwerk in Eigenregie unterminieren kann.

Potentieller Einsatzweck einer Portsmith-basierten Firewall wäre beispielsweise ein "VPN-Ersatz": Durch die erfolgte Anmeldung ist sichergestellt, dass ein bestimmter Dienst ausschließlich durch den authentisierten Nutzer in Anspruch genommen werden kann. Dem Mitlesen von Verbindungen würde weiterhin durch den Einsatz verschlüsselter Verbindungen (SSH, SSL, …) ein Riegel vorgeschoben. Auf den Einsatz eines dedizierten VPN-Servers könnte somit verzichtet werden.

Als weiteres Schmankerl bringt Portsmith eine integrierte, per Webbrowser bedienbare Backuplösung mit. Per Knopfdruck werden hierbei das Regelwerk, wichtige Dateien und die Datenbank auf einen CD-Rohling gebrannt. Ein entsprechender Brenner in der Maschine ist hierfür natürlich obligatorisch.

Zutaten

Als Basis für Portsmith ist Ubuntu 8.0.4 Server LTS [2] vorgesehen. Natürlich steht dem Einsatz einer anderen Distribution wenig im Wege, der zuständige Administrator sollte allerdings in der Lage sein, Pfade und das Handling der Komponenten an die Bedürfnisse von Portsmith anzupassen. Das Ganze basiert auf dem Apache-Webserver [3] mit aktiviertem PHP5-Modul [4] und dessen Modul für die PostgreSQL-Datenbank [5]. Andere Datenbanksysteme bleiben außen vor, sie sind schlichtweg nicht unterstützt.

Der Webserver dient im weiteren Verlauf als Frontend sowohl für den Administrator als auch für die Benutzer, deren Konten in der Postgres-Datenbank vorgehalten werden. Auch das dynamische Regelwerk wird in der Datenbank gespeichert und bei Bedarf von dort abgerufen. Im Hintergrund ablaufende Scripte erzeugen aus den Extrakten der Datenbank regelmäßig die entsprechenden IPTables-Kommandos, und fügen diese dem Regelwerk hinzu.

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019