Sự cố dán nhãn lại trong khi cố gắng chạy OpenVPN


7

Tôi đang cố chạy OpenVPN theo Fedora 19 với selinux (nhắm mục tiêu theo chính sách của selinux) trong chế độ thực thi và tôi đang chạy vào AVC Tôi không hoàn toàn chắc chắn cách xử lý.

Bắt đầu OpenVPN từ dòng lệnh khi root hoạt động tốt, nhưng bắt đầu nó thông qua systemd ( systemctl start openvpn@vpcbridge, nơi /etc/openvpn/vpcbridge.conftồn tại) dẫn đến:

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

Và trong /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

Để tham khảo, đây là cấu hình OpenVPN:

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

Nếu tôi chạy audit2allow, tôi nhận được một tệp mô-đun trông như thế này:

  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;

Nhưng tải mà tạo ra một lỗi:

  # 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!

Tôi không biết phải làm gì với lỗi này.

Cập nhật : Theo yêu cầu, đầu ra của 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

Tôi đã đổi tên câu hỏi của bạn, một câu hỏi khác mặc dù buồn cười không thực sự thích hợp 8-).
slm

Bạn có thể gửi đầu ra seinfo -t | grep openvpncho chúng tôi? Sẽ thật tốt nếu xem openvpn_t thực sự được xác định.
Bratchley

@JoelDavis Tôi đã cập nhật câu hỏi. Nó xuất hiện openvpn_tđược xác định.
larsks

Tôi không có hệ thống Fedora ngay bây giờ để kiểm tra, nhưng bây giờ tôi đang đọc cái này một thời gian sau "openvpn" vì một cái tên có vẻ như chung chung. Đến mức có thể bản thân gói OpenVPN có thể có một mô-đun được đặt tên cho thông tin loại mà nó thêm vào khi được cài đặt. Điều này vẫn xảy ra nếu bạn đặt cho mô-đun một tên khác? Thích openvpn-tunhay sao?
Bratchley

Ôi, suy nghĩ thú vị. Tôi sẽ thử nó.
larsks

Câu trả lời:


2

Tôi không có hệ thống Fedora ngay bây giờ để kiểm tra, nhưng bây giờ tôi đang đọc cái này một thời gian sau "openvpn" vì một cái tên có vẻ như chung chung. Đến mức có thể bản thân gói OpenVPN có thể có một mô-đun được đặt tên cho thông tin loại mà nó thêm vào khi được cài đặt. Điều này vẫn xảy ra nếu bạn đặt cho mô-đun một tên khác? Thích openvpn-tunhay sao?

Tôi không chắc chắn 100% về các chi tiết khó chịu (về cơ bản đây chỉ là một phỏng đoán hoang dã) nhưng có vẻ như nó sẽ tạo ra một cuộc xung đột nếu hai mô-đun có cùng tên. Đặc biệt là nếu một mô-đun phụ thuộc vào thông tin trong mô-đun kia.

BIÊN TẬP:

Cuối cùng cũng về đến nhà. Có vẻ như có một mô-đun SELinux riêng có tên đó:

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

Nhưng có vẻ như tôi đã sai về cách thức hoạt động của Selinux trên Fedora. Dường như tất cả xuất hiện trong một gói chính sách duy nhất cho toàn bộ phân phối:

[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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.