SELinux-Problem beim erneuten Beschriften beim Versuch, OpenVPN auszuführen

7

Ich versuche, OpenVPN unter Fedora 19 mit Selinux (auf Selinux-Richtlinien ausgerichtet) im Durchsetzungsmodus auszuführen, und ich stoße auf einen AVC, bei dem ich nicht ganz sicher bin, wie ich damit umgehen soll.

Das Starten von OpenVPN über die Befehlszeile als root funktioniert einwandfrei, aber das Starten über systemd ( systemctl start openvpn@vpcbridgewo /etc/openvpn/vpcbridge.confvorhanden) führt zu:

  ERROR: Cannot ioctl TUNSETIFF tap0: Permission denied (errno=13)

Und in /var/log/audit:

  type=AVC msg=audit(1376412420.435:60): avc:  denied  { relabelfrom } for
  pid=720 comm="openvpn" scontext=system_u:system_r:openvpn_t:s0
  tcontext=system_u:system_r:ifconfig_t:s0 tclass=tun_socket

Als Referenz ist hier die OpenVPN-Konfiguration:

port 1194
user openvpn
dev tap0
proto udp
secret vpcbridge.key
keepalive 10 120
persist-tun
persist-key

Wenn ich starte audit2allow, erhalte ich eine Moduldatei, die folgendermaßen aussieht:

  module openvpn 1.0;

  require {
        type openvpn_t;
        type ifconfig_t;
        class tun_socket relabelfrom;
  }

  #============= openvpn_t ==============
  allow openvpn_t ifconfig_t:tun_socket
  relabelfrom;

Aber das Laden, das einen Fehler erzeugt:

  # semodule -i openvpn.pp
  libsepol.print_missing_requirements: openvpn's global requirements were
  not met: type/attribute openvpn_t (No such file or directory).
  libsemanage.semanage_link_sandbox: Link packages failed (No such file or
  directory).
  semodule:  Failed!

Ich bin mir nicht sicher, was ich mit diesem Fehler anfangen soll.

Update : Wie gewünscht, die Ausgabe von seinfo -t ...:

# seinfo -t | grep openvpn
   openvpn_tmp_t
   openvpn_unconfined_script_exec_t
   openvpn_status_t
   openvpn_etc_rw_t
   openvpn_var_lib_t
   openvpn_var_run_t
   openvpn_port_t
   openvpn_server_packet_t
   openvpn_etc_t
   openvpn_initrc_exec_t
   openvpn_var_log_t
   openvpn_unconfined_script_t
   openvpn_exec_t
   openvpn_t
   openvpn_client_packet_t
Larsks
quelle
Ich habe deine Frage umbenannt, die andere, obwohl lustig, war nicht wirklich angemessen 8-).
slm
Können Sie die Ausgabe von seinfo -t | grep openvpnfür uns posten ? Es wäre nur gut zu sehen, ob openvpn_t tatsächlich definiert wurde.
Bratchley
@ JoelDavis Ich habe die Frage aktualisiert. Es scheint openvpn_tdefiniert zu sein.
Larsks
Ich habe momentan kein Fedora-System, mit dem ich nachsehen kann, aber jetzt, wo ich dies einige Zeit später lese, scheint "openvpn" als Name irgendwie generisch zu sein. Bis zu dem Punkt, an dem es möglich ist, dass das OpenVPN-Paket selbst ein Modul mit dem Namen für die Typinformationen hat, die es bei der Installation hinzufügt. Geschieht dies immer noch, wenn Sie dem Modul einen anderen Namen geben? Wie openvpn-tunoder so?
Bratchley
Ooo, interessanter Gedanke. Ich werde das ausprobieren.
Larsks

Antworten:

2

Ich habe momentan kein Fedora-System, mit dem ich nachsehen kann, aber jetzt, wo ich dies einige Zeit später lese, scheint "openvpn" als Name irgendwie generisch zu sein. Bis zu dem Punkt, an dem es möglich ist, dass das OpenVPN-Paket selbst ein Modul mit dem Namen für die Typinformationen hat, die es bei der Installation hinzufügt. Geschieht dies immer noch, wenn Sie dem Modul einen anderen Namen geben? Wie openvpn-tunoder so?

Ich bin mir nicht hundertprozentig sicher, was die Details angeht (dies ist im Grunde nur eine wilde Vermutung), aber es scheint, als würde es zu einem Konflikt kommen, wenn die beiden Module denselben Namen hätten. Vor allem, wenn ein Modul von Informationen abhängt , die sich im anderen befinden.

BEARBEITEN:

Endlich nach Hause gekommen. Es gibt anscheinend ein natives SELinux-Modul mit diesem Namen:

[root@localhost test]# cat /etc/fedora-release 
Fedora release 18 (Spherical Cow)
[root@localhost test]# semodule -l | grep openvpn
openvpn 1.11.0  

Aber es sieht so aus, als hätte ich mich geirrt, wie SELinux unter Fedora funktioniert. Es sieht so aus, als ob alles unter einem einzigen Richtlinienpaket für die gesamte Distribution zusammengefasst ist:

[root@localhost modules]# pwd
/etc/selinux/targeted/modules/active/modules
[root@localhost modules]# ls -lh openvpn.pp
-rw-r--r--. 1 root root 12K Jun 27 08:59 openvpn.pp
[root@localhost modules]# rpm -qf $PWD/openvpn.pp
selinux-policy-targeted-3.11.1-98.fc18.noarch
Bratchley
quelle