summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am10
-rw-r--r--README11
-rw-r--r--configure.ac5
-rw-r--r--vpn/connman-task.te16
4 files changed, 42 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
index b22213ee..21d820e7 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -377,6 +377,16 @@ else
endif
endif
+if SELINUX
+if VPN
+EXTRA_DIST += connman-task.pp
+CLEANFILES += connman-task.pp
+endif
+
+connman-task.pp: vpn/connman-task.te
+ make -f /usr/share/selinux/devel/Makefile
+endif
+
include/connman/version.h: include/version.h
$(AM_V_at)$(MKDIR_P) include/connman
$(AM_V_GEN)$(LN_S) $(abs_top_builddir)/$< $@
diff --git a/README b/README
index 4ae17a9c..52a2e4d5 100644
--- a/README
+++ b/README
@@ -191,6 +191,17 @@ For a working system, certain configuration options need to be enabled:
configured by other means, the command line client can be
disabled and the dependency on readline is removed.
+ --enable-selinux
+
+ Enable support for compiling SElinux type enforcement rules
+
+ The TE rules are needed if host environment is in enforcing
+ mode. Without this option, the VPN client process cannot
+ send notification to connman-vpnd via net.connman.Task
+ interface. The compiled connman-task.pp module needs to
+ also installed using this command
+ # semodule -i connman-task.pp
+ in order to enable the dbus access.
wpa_supplicant configuration
============================
diff --git a/configure.ac b/configure.ac
index 51df9d60..87580c45 100644
--- a/configure.ac
+++ b/configure.ac
@@ -343,6 +343,11 @@ if (test "${enable_polkit}" != "no"); then
fi
AM_CONDITIONAL(POLKIT, test "${enable_polkit}" != "no")
+AC_ARG_ENABLE(selinux, AC_HELP_STRING([--enable-selinux],
+ [enable selinux support]),
+ [enable_selinux=${enableval}], [enable_selinux="no"])
+AM_CONDITIONAL(SELINUX, test "${enable_selinux}" != "no")
+
AC_ARG_ENABLE(loopback, AC_HELP_STRING([--disable-loopback],
[disable loopback support]),
[enable_loopback=${enableval}])
diff --git a/vpn/connman-task.te b/vpn/connman-task.te
new file mode 100644
index 00000000..dd777107
--- /dev/null
+++ b/vpn/connman-task.te
@@ -0,0 +1,16 @@
+# SElinux policy file for allowing various vpn clients
+# to access net.connman.Task dbus interface
+
+module connman-task 1.0;
+
+require {
+ type openvpn_t;
+ type openconnect_t;
+ type vpnc_t;
+ type initrc_t;
+ class dbus send_msg;
+}
+
+allow openvpn_t initrc_t:dbus send_msg;
+allow openconnect_t initrc_t:dbus send_msg;
+allow vpnc_t initrc_t:dbus send_msg;