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@vpcbridge
wo
/etc/openvpn/vpcbridge.conf
vorhanden) 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
seinfo -t | grep openvpn
für uns posten ? Es wäre nur gut zu sehen, ob openvpn_t tatsächlich definiert wurde.openvpn_t
definiert zu sein.openvpn-tun
oder so?Antworten:
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-tun
oder 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:
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:
quelle