High Availability lässt sich heute mit günstiger Hardware und einer großen Auswahl an kommerzieller sowie freier Software realisieren. ADMIN erklärt die ... (mehr)

Policy-Paket und eigene Regeln

Das abschließende Select-Statement versucht nun auf alle Spalten der Mitarbeiter-Tabelle zuzugreifen. Dies endet in einer SELinux-Fehlermeldung, da der Zugriff aus der Domäne »user_t« auf ein Datenbankobjekt mit dem Typ »sepgsql_secret_table_t« nicht gestattet ist. Die hierfür notwendigen Regeln hat das Policy-Paket »sepostgresql-devel.pp« dem systemweiten SELinux-Regelwerk bei der Installation von SE PostgreSQL hinzugefügt. Es lässt sich, genau wie auch bei Mod-SELinux, durch eigene Regelsätze erweitern. Die Manpage von »sepostgresql« listet alle möglichen SELinux-Typen und deren Berechtigungen auf.

Wie bereits im letzten Abschnitt erwähnt, verwendet SE PostgreSQL immer den SELinux-Kontext des zugreifenden Client-Sockets, um eine Zugriffsentscheidung auf ein Objekt innerhalb der Datenbank zu treffen. Hierbei handelt es sich entweder um den Security Context eines zugreifenden Prozesses (beispielsweise »httpd_t« ) oder den Kontext der Shell des Benutzers (beispielsweise »user_t« ). Den Kontext des zugreifenden Sockets zeigt »psql« über ein »SELECT sepgsql_getcon();« -Statement an.

Findet der Zugriff nicht von der lokalen Maschine, sondern von dem Apache einer anderen Maschine statt, sieht SE PostgreSQL nur den Kontext des zugreifenden Netzwerk-Sockets. Hierfür existiert mit Labeled Networking eine elegante Lösung. Damit lassen sich beliebige IPsec-Tunnel zwischen verschiedenen Systemen aufbauen, die den Security Context eines Prozesses über Netzwerkgrenzen hinweg übertragen [5] .

Feiner Schutz

Mod-SELinux erlaubt einen viel feiner granulierten Zugriff auf SELinux-Objekte als bisher möglich. App Armor bietet zwar mit Apache-Heads eine ähnliche Lösung, sie erfordert aber den Einsatz eines speziellen Apache-Servers, was hier nicht der Fall ist.

Kommt SEPostgreSQL als Backend der Webapplikation zum Einsatz, lässt sich das Einsatzgebiet der Mandatory Access Control auch auf Datenbankobjekte ausweiten. Gerade eine Kombination aus beiden Systemen verspricht beim Einsatz von Webapplikationen weitaus mehr Sicherheit.

Infos

  1. Tim Schürmann, "Web Application Firewall mit Mod-Security und Apache": Linux-Magazin Sonderheft 02/08, S. 114
  2. SEPostgreSQL (Security Enhanced PostgreSQL): http://wiki.postgresql.org/wiki/SEPostgreSQL
  3. Mod-SELinux: http://code.google.com/p/sepgsql/
  4. Thorsten Scherf, "Grafisches Frontend für SELinux": Linux-Magazin-Sonderheft 01/09, S. 102
  5. Thorsten Scherf, "SELinux kontrolliert Netzwerk-Traffic": Linux-Magazin-Sonderheft 01/09, S. 19
comments powered by Disqus
Mehr zum Thema

PostgreSQL 9.5 ist fertig

Die neue Version der Datenbanksoftware implementiert das lange erwartete UPSERT-Feature.

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

Ausgabe /2023