##
-## Allow openvpn to read home directories
+## Allow openvpn service access to users home directories
##
##
gen_tunable(openvpn_enable_homedirs, false)
@@ -20,7 +20,7 @@
# configuration files
type openvpn_etc_t;
-files_type(openvpn_etc_t)
+files_config_file(openvpn_etc_t)
# log files
type openvpn_var_log_t;
@@ -30,12 +30,15 @@
type openvpn_var_run_t;
files_pid_file(openvpn_var_run_t)
+type openvpn_script_exec_t;
+init_script_type(openvpn_script_exec_t)
+
########################################
#
# openvpn local policy
#
-allow openvpn_t self:capability { dac_read_search dac_override net_bind_service net_admin setgid setuid sys_tty_config };
+allow openvpn_t self:capability { dac_read_search dac_override net_bind_service net_admin setgid setuid sys_chroot sys_tty_config };
allow openvpn_t self:process { signal getsched };
allow openvpn_t self:unix_dgram_socket { create_socket_perms sendto };
@@ -47,6 +50,7 @@
allow openvpn_t openvpn_etc_t:dir list_dir_perms;
read_files_pattern(openvpn_t, openvpn_etc_t, openvpn_etc_t)
read_lnk_files_pattern(openvpn_t, openvpn_etc_t, openvpn_etc_t)
+can_exec(openvpn_t, openvpn_etc_t)
allow openvpn_t openvpn_var_log_t:file manage_file_perms;
logging_log_filetrans(openvpn_t, openvpn_var_log_t, file)
@@ -77,6 +81,7 @@
corenet_sendrecv_openvpn_server_packets(openvpn_t)
corenet_rw_tun_tap_dev(openvpn_t)
corenet_tcp_connect_openvpn_port(openvpn_t)
+corenet_tcp_connect_http_port(openvpn_t)
dev_search_sysfs(openvpn_t)
dev_read_rand(openvpn_t)
@@ -110,3 +115,12 @@
networkmanager_dbus_chat(openvpn_t)
')
+
+
+# Need to interact with terminals if config option "auth-user-pass" is used
+sysadm_use_terms(openvpn_t)
+
+optional_policy(`
+ unconfined_use_terminals(openvpn_t)
+')
+