OpenVPN을 실행하려고 할 때 SELinux 레이블 재지정 문제

OpenVPN을 실행하려고 할 때 SELinux 레이블 재지정 문제

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

관련 정보