KVM etabliert sich als Standardlösung zur Virtualisierung unter Linux. Der ADMIN-Schwerpunkt hilft beim Bau virtueller Linux-Maschinen, stellt das ... (mehr)

Quellcode inklusive

Glücklicherweise erzeugt das Tool nicht nur das binäre Modul, sondern auch die Sourcen dazu. Das nutze ich dazu, um mir die Möglichkeit offenzuhalten, den Zugriff auf den IRC-Port mittels eines Booleans dynamisch aus- und einzuschalten. Ich erweitere also die von »audit2allow« erzeugte Type-Enforcement-Datei um die entsprechenden Anweisungen für ein Boolean. Ist das RPM-Paket »selinux-policy« installiert, befindet sich auf dem Fedora-System im Ordner »/usr/share/selinux/devel« ein Makefile, mit dessen Hilfe ich die Source-Dateien sehr einfach in ein neues, binäres Policy-Modul wandeln kann ( Listing 1 ).

Listing 1

Makefile

01 # make -f /usr/share/selinux/devel/Makefile
02 Compiling targeted xguest_irc module
03 /usr/bin/checkmodule:  loading policy configuration from tmp/xguest_irc.tmp
04 /usr/bin/checkmodule:  policy configuration loaded
05 /usr/bin/checkmodule:  writing binary representation (version 10) to
06 tmp/xguest_irc.mod
07 Creating targeted xguest_irc.pp policy package
08 rm tmp/xguest_irc.mod.fc tmp/xguest_irc.mod

Anschließend lade ich das so erzeugte Modul zum SE-Linux-Standardregelwerk hinzu:

semodule -i xguest_irc.pp

Der folgende Befehl zeigt an, dass nun eine entsprechende Regel auf dem System bekannt ist:

$ sesearch -A -s xguest_t -t ircd_port_t
Found 1 semantic av rules:
 allow xguest_t ircd_port_t : tcp_socketname_connect ;

Diese Policy läuft nun schon eine Zeitlang auf dem Familien-Rechner, und bisher hat sich noch niemand beschwert. Der Zugriff auf das Web und die Kommunikation mit den Kumpels über IRC klappt weiterhin ohne Probleme. Sollte jetzt irgendein Programm versuchen, sich ungewollten Zugriff auf das Netzwerk zu verschaffen, wird dies jetzt wirkungsvoll verhindert. Dank der dynamisch gehaltenen Policy bin ich nun sogar in der Lage, den Zugriff auf die IRC-Server zu deaktivieren, sollte die häusliche Situation dies einmal erfordern:

setsebool xguest_use_irc off

Zum Schluss nun noch einmal der komplette Aufruf von »audit2allow« mit dem von mir manuell abgeänderten Policy-Modul für den Zugriff auf einen IRC-Server ( Listing 2 ).

Listing 2

Policy-Modul

01 # grep xchat /var/log/audit/audit.log | audit2allow -R -M xguest_irc
02
03 policy_module(xguest_irc,1.0.0)
04
05 require {
06   type xguest_t;
07 }
08
09 ## <desc>
10 ## <p>a
11 ## Allow xguest users to use IRC
12 ## </p>
13 ## </desc>
14 gen_tunable(xguest_use_irc, true)
15
16 tunable_policy(`xguest_use_irc',`
17   corenet_tcp_connect_ircd_port(xguest_t)
18 '

Der Autor

Thorsten Scherf arbeitet als Senior Consultant für Red Hat EMEA. Er ist oft als Vortragender auf Konferenzen anzutreffen. Wenn neben Arbeit und Familie noch Zeit bleibt, nimmt er gerne an Marathonläufen teil.

comments powered by Disqus
Mehr zum Thema

Programme mit SELinux-Sandbox absichern

Das Surfen im World Wide Web wird immer gefährlicher. Viele Anwender wünschen sich deshalb einen besonders sicheren Webbrowser, der sie vor Malware und anderen unliebsamen Überraschungen schützt. Mit Hilfe von SELinux lassen sich besonders gefährdete Anwendungen nun in einen Käfig einsperren.
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