Fedora 19에서 selinux(selinux-policy-targeted)를 사용하여 시행 모드에서 OpenVPN을 실행하려고 하는데 AVC를 실행 중이고 어떻게 처리해야 할지 잘 모르겠습니다.
루트로 명령줄에서 OpenVPN을 시작하면 문제가 없지만 systemd( 있는 systemctl start openvpn@vpcbridge
경우
/etc/openvpn/vpcbridge.conf
)를 통해 시작하면 다음과 같은 결과가 발생합니다.
ERROR: Cannot ioctl TUNSETIFF tap0: Permission denied (errno=13)
그리고 /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
참고로 OpenVPN 구성은 다음과 같습니다.
port 1194
user openvpn
dev tap0
proto udp
secret vpcbridge.key
keepalive 10 120
persist-tun
persist-key
을 실행하면 audit2allow
다음과 같은 모듈 파일이 생성됩니다.
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;
하지만 로드하면 오류가 발생합니다.
# 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!
이 오류를 처리하는 방법을 모르겠습니다.
고쳐 쓰다: 요청 시 출력 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
답변1
지금은 확인할 Fedora 시스템이 없지만 나중에 읽어보니 "openvpn"이라는 이름이 다소 일반적인 것 같습니다. OpenVPN 패키지 자체에는 설치 중에 유형 정보를 추가하는 모듈이 있을 수 있습니다. 모듈에 다른 이름을 지정해도 이런 현상이 계속 발생합니까? 뭔가 마음에 드시나요 openvpn-tun
?
세부 사항에 대해 100% 확신할 수는 없지만(기본적으로 그냥 추측일 뿐입니다) 두 모듈의 이름이 같으면 충돌이 있을 것 같습니다. 특히 모듈의 경우의존하다상대방에 대한 정보.
편집하다:
드디어 집에 도착했습니다. 해당 이름을 가진 기본 SELinux 모듈이 있는 것 같습니다.
[root@localhost test]# cat /etc/fedora-release
Fedora release 18 (Spherical Cow)
[root@localhost test]# semodule -l | grep openvpn
openvpn 1.11.0
그러나 SELinux가 Fedora에서 어떻게 작동하는지에 대한 나의 이해가 잘못된 것 같습니다. 전체 배포에 대해 하나의 정책 패키지에 모두 들어 있는 것처럼 보입니다.
[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