diff --git a/.gitignore b/.gitignore
index d1d0c72..9e2513d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,3 +15,11 @@ nagios-3.2.1.tar.gz
/nagioscore-nagios-4.3.4.tar.gz
/nagioscore-nagios-4.4.2.tar.gz
/nagioscore-nagios-4.4.3.tar.gz
+/nagioscore-nagios-4.4.5.tar.gz
+/nagioscore-nagios-4.4.6.tar.gz
+/nagioscore-nagios-4.4.7.tar.gz
+/nagioscore-nagios-4.4.8.tar.gz
+/nagioscore-nagios-4.4.9.tar.gz
+/nagioscore-nagios-4.4.10.tar.gz
+/nagioscore-nagios-4.4.14.tar.gz
+/nagioscore-nagios-4.5.9.tar.gz
diff --git a/nagios-0003-Install-config-files-too.patch b/nagios-0003-Install-config-files-too.patch
index 4bf4aa2..3194a02 100644
--- a/nagios-0003-Install-config-files-too.patch
+++ b/nagios-0003-Install-config-files-too.patch
@@ -1,7 +1,8 @@
-diff -up ./Makefile.in.install_config ./Makefile.in
---- ./Makefile.in.install_config 2017-04-19 19:11:47.783707415 -0400
-+++ ./Makefile.in 2017-04-19 19:11:47.785707384 -0400
-@@ -377,7 +377,7 @@ dox:
+diff --git a/Makefile.in b/Makefile.in
+index b992ab1e..ef2a797f 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -439,7 +439,7 @@ dox:
doxygen doxy.conf
diff --git a/nagios-0009-fix-localstatedir-for-linux.patch b/nagios-0009-fix-localstatedir-for-linux.patch
index 3c18043..070285f 100644
--- a/nagios-0009-fix-localstatedir-for-linux.patch
+++ b/nagios-0009-fix-localstatedir-for-linux.patch
@@ -264,9 +264,9 @@ diff -up ./startup/default-service.in.fix_localstatedir ./startup/default-servic
ExecStop=@BIN_KILL@ -s TERM ${MAINPID}
-ExecStopPost=@BIN_RM@ -f @localstatedir@/rw/nagios.cmd
+ExecStopPost=@BIN_RM@ -f @localstatedir@/spool/nagios/cmd/nagios.cmd
+ ExecReload=@bindir@/nagios -v @sysconfdir@/nagios.cfg
ExecReload=@BIN_KILL@ -s HUP ${MAINPID}
- [Install]
diff -up ./t-tap/Makefile.in.fix_localstatedir ./t-tap/Makefile.in
--- ./t-tap/Makefile.in.fix_localstatedir 2019-01-16 14:24:14.944312569 -0600
+++ ./t-tap/Makefile.in 2019-01-16 14:24:42.359858604 -0600
diff --git a/nagios-0010-remove-information-leak.patch b/nagios-0010-remove-information-leak.patch
index 46c62e1..cd3b400 100644
--- a/nagios-0010-remove-information-leak.patch
+++ b/nagios-0010-remove-information-leak.patch
@@ -1,6 +1,6 @@
-diff -up ./cgi/extinfo.c.rm_youtube ./cgi/extinfo.c
---- ./cgi/extinfo.c.rm_youtube 2018-11-28 14:23:47.609805066 -0600
-+++ ./cgi/extinfo.c 2018-11-28 14:28:35.513997180 -0600
+diff -up ./cgi/extinfo.c.remove_3rdparty_links ./cgi/extinfo.c
+--- ./cgi/extinfo.c.remove_3rdparty_links 2019-08-20 15:29:34.000000000 +0000
++++ ./cgi/extinfo.c 2019-08-29 18:17:32.321544245 +0000
@@ -557,27 +557,6 @@ void document_header(int use_stylesheet)
printf("\n", url_stylesheets_path, NAGFUNCS_CSS);
}
@@ -29,10 +29,10 @@ diff -up ./cgi/extinfo.c.rm_youtube ./cgi/extinfo.c
printf("\n");
printf("
\n");
-diff -up ./cgi/status.c.rm_youtube ./cgi/status.c
---- ./cgi/status.c.rm_youtube 2018-11-28 14:28:56.072653859 -0600
-+++ ./cgi/status.c 2018-11-28 14:32:05.038498204 -0600
-@@ -537,31 +537,8 @@ void document_header(int use_stylesheet)
+diff -up ./cgi/status.c.remove_3rdparty_links ./cgi/status.c
+--- ./cgi/status.c.remove_3rdparty_links 2019-08-20 15:29:34.000000000 +0000
++++ ./cgi/status.c 2019-08-29 18:17:32.322544264 +0000
+@@ -556,31 +556,8 @@ void document_header(int use_stylesheet)
/* JS function to append content to elements on page */
printf("
-
+ getCoreStatus();
+ });
--
--
--
--
-
- >
-
diff --git a/nagios-0011-remove-rpmbuild.patch b/nagios-0011-remove-rpmbuild.patch
index 77c6ce6..4e4bc1d 100644
--- a/nagios-0011-remove-rpmbuild.patch
+++ b/nagios-0011-remove-rpmbuild.patch
@@ -1,13 +1,16 @@
-diff -up ./contrib/Makefile.in.remove_rpmbuild ./contrib/Makefile.in
---- ./contrib/Makefile.in.remove_rpmbuild 2019-01-16 15:00:18.627548108 -0600
-+++ ./contrib/Makefile.in 2019-01-16 15:00:38.756215308 -0600
-@@ -84,35 +84,3 @@ $(CGI_O): $(CGI_C)
+diff --git a/contrib/Makefile.in b/contrib/Makefile.in
+index 72e4d4a9..62415152 100644
+--- a/contrib/Makefile.in
++++ b/contrib/Makefile.in
+@@ -84,52 +84,3 @@ $(CGI_O): $(CGI_C)
%.cgi : %.c
$(CC) $(CFLAGS) $(LDFLAGS) $< $(CGI_O) -o $@
-
-##############################################################################
--# rpm making automation for CentOS/RHEL.
+-# making similar EPEL rpm for Fedora/RHEL/CentOS
+-
+-ifneq ("$(wildcard /etc/redhat-release)","")
-
-ARCH ?= $(shell uname -m)
-ifeq ($(ARCH),x86_64)
@@ -24,16 +27,31 @@ diff -up ./contrib/Makefile.in.remove_rpmbuild ./contrib/Makefile.in
- endif
-endif
-
--rpm:
+-# Create our own tarball and put ino rpmbuild/SOURCES
+-localsrc-rpm:
- # create nagios tar ball.
- @(cd ..;rm -f nagios-@VERSION@)
- @(cd ..;ln -s . nagios-@VERSION@)
- @(cd ..;tar zhcf nagios-@VERSION@.tar.gz --exclude nagios-@VERSION@/nagios-@VERSION@.tar.gz --exclude nagios-@VERSION@/nagios-@VERSION@ --exclude RCS --exclude CVS --exclude build-* --exclude *~ --exclude .git* nagios-@VERSION@/)
- @(cd ..;rm -f nagios-@VERSION@)
- # build the rpm using rpmbuild from ./rmbuild as topdir
-- @rm -rf rpmbuild && mkdir -p rpmbuild/SOURCES
+- @rm -rf rpmbuild && mkdir -p ./rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
- @cp ../nagios-@VERSION@.tar.gz rpmbuild/SOURCES/nagios-@VERSION@.tar.gz
-- @rpmbuild -ba --define "_topdir ${PWD}/rpmbuild" ../nagios.spec
-- @mv rpmbuild/RPMS/$(RPM_ARCH)/*.rpm .
+- @cp epel-patches/* ./rpmbuild/SOURCES
+- @rpmbuild -ba --define "_topdir ${PWD}/rpmbuild" epel-nagios.spec
+- @cp rpmbuild/RPMS/$(RPM_ARCH)/*.rpm .
+- @cp rpmbuild/SRPMS/*.src.rpm .
- @ls -l *.rpm
-
+-# tarball from https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-%{version}/nagios-%{version}.tar.gz
+-rpm: init-epelrpm build-epelrpm
+- @mv rpmbuild/RPMS/$(RPM_ARCH)/*.rpm .
+- @ls -l *.rpm
+-init-epelrpm:
+- # build the rpm using rpmbuild from ./rmbuild as topdir
+- @rm -rf ./rpmbuild && mkdir -p ./rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
+- @spectool -C ./rpmbuild/SOURCES -g epel-nagios.spec
+- @cp epel-patches/* ./rpmbuild/SOURCES
+-build-epelrpm:
+- @rpmbuild -ba --define "_topdir ${PWD}/rpmbuild" epel-nagios.spec
+-endif
diff --git a/nagios-0015-Changelog.patch b/nagios-0015-Changelog.patch
new file mode 100644
index 0000000..5ef3490
--- /dev/null
+++ b/nagios-0015-Changelog.patch
@@ -0,0 +1,13 @@
+diff --git a/Changelog b/Changelog
+index a5fd04c6..51394645 100644
+--- a/Changelog
++++ b/Changelog
+@@ -9,7 +9,7 @@ FIXES
+ * Fixed duplicate properties appearing in statusjson.cgi (#718) (Sebastian Wolf)
+ * Fixed NERD not building when enabled in ./configure (#723) (Sebastian Wolf)
+ * Fixed build process when using GCC 10 (#721) (Michael Orlitzky)
+-* Fixed postauth vulnerabilities in histogram.js, map.js, trends.js (CVE-2020-1408) (Thanks UraSec Team) (Sebastian Wolf)
++* Fixed postauth vulnerabilities in histogram.js, map.js, trends.js (CVE-2020-13977) (Thanks UraSec Team) (Sebastian Wolf)
+ * When using systemd, configuration will be verified before reloading (#715) (tatref)
+ * Fixed HARD OK states triggering on the maximum check attempt (#757) (Sebastian Wolf)
+
diff --git a/nagios-socket.te b/nagios-socket.te
deleted file mode 100644
index d9ed56b..0000000
--- a/nagios-socket.te
+++ /dev/null
@@ -1,16 +0,0 @@
-module nagios-socket 1.1;
-
-require {
- type nagios_t;
- type nagios_spool_t;
- class sock_file { write create unlink };
- class unix_stream_socket connectto;
-}
-
-
-#============= nagios_t ==============
-
-#!!!! This avc is allowed in the current policy
-allow nagios_t nagios_spool_t:sock_file { write create unlink };
-#!!!! This avc can be allowed using the boolean 'daemons_enable_cluster_mode'
-allow nagios_t self:unix_stream_socket connectto;
diff --git a/nagios.fc b/nagios.fc
new file mode 100644
index 0000000..d66d7b7
--- /dev/null
+++ b/nagios.fc
@@ -0,0 +1,114 @@
+/etc/nagios(/.*)? gen_context(system_u:object_r:nagios_etc_t,s0)
+/etc/icinga(/.*)? gen_context(system_u:object_r:nagios_etc_t,s0)
+/etc/nagios/nrpe\.cfg -- gen_context(system_u:object_r:nrpe_etc_t,s0)
+/etc/nrpe\.d(/.*)? gen_context(system_u:object_r:nrpe_etc_t,s0)
+/etc/pnp4nagios(/.*)? gen_context(system_u:object_r:nagios_etc_t,s0)
+/etc/rc\.d/init\.d/nagios -- gen_context(system_u:object_r:nagios_initrc_exec_t,s0)
+/etc/rc\.d/init\.d/nrpe -- gen_context(system_u:object_r:nagios_initrc_exec_t,s0)
+
+
+/usr/bin/nagios -- gen_context(system_u:object_r:nagios_exec_t,s0)
+/usr/bin/icinga -- gen_context(system_u:object_r:nagios_exec_t,s0)
+/usr/bin/nrpe -- gen_context(system_u:object_r:nrpe_exec_t,s0)
+
+/usr/sbin/nagios -- gen_context(system_u:object_r:nagios_exec_t,s0)
+/usr/sbin/icinga -- gen_context(system_u:object_r:nagios_exec_t,s0)
+/usr/sbin/nrpe -- gen_context(system_u:object_r:nrpe_exec_t,s0)
+
+/usr/lib/cgi-bin/netsaint(/.*)? gen_context(system_u:object_r:nagios_script_exec_t,s0)
+/usr/lib/nagios/cgi(/.*)? gen_context(system_u:object_r:nagios_script_exec_t,s0)
+/usr/lib/icinga/cgi(/.*)? gen_context(system_u:object_r:nagios_script_exec_t,s0)
+
+/var/log/nagios(/.*)? gen_context(system_u:object_r:nagios_log_t,s0)
+/var/log/icinga(/.*)? gen_context(system_u:object_r:nagios_log_t,s0)
+/var/log/netsaint(/.*)? gen_context(system_u:object_r:nagios_log_t,s0)
+/var/log/pnp4nagios(/.*)? gen_context(system_u:object_r:nagios_log_t,s0)
+
+/var/lib/pnp4nagios(/.*)? gen_context(system_u:object_r:nagios_var_lib_t,s0)
+
+/var/run/nagios.* gen_context(system_u:object_r:nagios_var_run_t,s0)
+
+/var/spool/nagios(/.*)? gen_context(system_u:object_r:nagios_spool_t,s0)
+/var/spool/icinga(/.*)? gen_context(system_u:object_r:nagios_spool_t,s0)
+
+ifdef(`distro_debian',`
+/usr/sbin/nagios -- gen_context(system_u:object_r:nagios_exec_t,s0)
+')
+/usr/lib/cgi-bin/nagios(/.+)? gen_context(system_u:object_r:nagios_script_exec_t,s0)
+/usr/lib/nagios/cgi-bin(/.*)? gen_context(system_u:object_r:nagios_script_exec_t,s0)
+
+# admin plugins
+/usr/lib/nagios/plugins/check_file_age -- gen_context(system_u:object_r:nagios_admin_plugin_exec_t,s0)
+
+# check disk plugins
+/usr/lib/nagios/plugins/check_disk -- gen_context(system_u:object_r:nagios_checkdisk_plugin_exec_t,s0)
+/usr/lib/nagios/plugins/check_disk_smb -- gen_context(system_u:object_r:nagios_checkdisk_plugin_exec_t,s0)
+/usr/lib/nagios/plugins/check_ide_smart -- gen_context(system_u:object_r:nagios_checkdisk_plugin_exec_t,s0)
+/usr/lib/nagios/plugins/check_linux_raid -- gen_context(system_u:object_r:nagios_checkdisk_plugin_exec_t,s0)
+
+# mail plugins
+/usr/lib/nagios/plugins/check_mailq -- gen_context(system_u:object_r:nagios_mail_plugin_exec_t,s0)
+
+/usr/lib/pnp4nagios(/.*)? gen_context(system_u:object_r:nagios_var_lib_t,s0)
+
+# system plugins
+/usr/lib(64)?/nagios/plugins/check_breeze -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_dummy -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_flexlm -- gen_context(system_u:object_r:nagios_system_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_ifoperstatus -- gen_context(system_u:object_r:nagios_system_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_ifstatus -- gen_context(system_u:object_r:nagios_system_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_load -- gen_context(system_u:object_r:nagios_system_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_log -- gen_context(system_u:object_r:nagios_system_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_mrtg -- gen_context(system_u:object_r:nagios_system_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_mrtgtraf -- gen_context(system_u:object_r:nagios_system_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_nagios -- gen_context(system_u:object_r:nagios_system_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_nwstat -- gen_context(system_u:object_r:nagios_system_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_overcr -- gen_context(system_u:object_r:nagios_system_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_procs -- gen_context(system_u:object_r:nagios_system_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_sensors -- gen_context(system_u:object_r:nagios_system_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_swap -- gen_context(system_u:object_r:nagios_system_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_users -- gen_context(system_u:object_r:nagios_system_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_wave -- gen_context(system_u:object_r:nagios_system_plugin_exec_t,s0)
+
+# services plugins
+/usr/lib(64)?/nagios/plugins/check_cluster -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_dhcp -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_dig -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_dns -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_game -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_fping -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_hpjd -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_http -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_icmp -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_ircd -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_ldap -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_mysql -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_mysql_query -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_nrpe -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_nt -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_ntp.* -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_oracle -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_pgsql -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_ping -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_radius -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_real -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_rpc -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_tcp -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_time -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_sip -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_smtp -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_snmp.* -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_ssh -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+/usr/lib(64)?/nagios/plugins/check_ups -- gen_context(system_u:object_r:nagios_services_plugin_exec_t,s0)
+
+# openshift plugins
+/usr/lib64/nagios/plugins/check_node_accept_status -- gen_context(system_u:object_r:nagios_openshift_plugin_exec_t,s0)
+/usr/lib64/nagios/plugins/check_number_openshift_apps -- gen_context(system_u:object_r:nagios_openshift_plugin_exec_t,s0)
+
+# label all nagios plugin as unconfined by default
+/usr/lib/nagios/plugins/.* -- gen_context(system_u:object_r:nagios_unconfined_plugin_exec_t,s0)
+
+# eventhandlers
+/usr/lib/nagios/plugins/eventhandlers(/.*) gen_context(system_u:object_r:nagios_eventhandler_plugin_exec_t,s0)
+/usr/lib/icinga/plugins/eventhandlers(/.*) gen_context(system_u:object_r:nagios_eventhandler_plugin_exec_t,s0)
+
diff --git a/nagios.if b/nagios.if
new file mode 100644
index 0000000..13a034d
--- /dev/null
+++ b/nagios.if
@@ -0,0 +1,367 @@
+## Net Saint / NAGIOS - network monitoring server
+
+########################################
+##
+## Create a set of derived types for various
+## nagios plugins,
+##
+##
+##
+## The name to be used for deriving type names.
+##
+##
+#
+template(`nagios_plugin_template',`
+ gen_require(`
+ attribute nagios_plugin_domain;
+ type nagios_t, nrpe_t;
+ ')
+
+ type nagios_$1_plugin_t, nagios_plugin_domain;
+ type nagios_$1_plugin_exec_t;
+ application_domain(nagios_$1_plugin_t, nagios_$1_plugin_exec_t)
+ role system_r types nagios_$1_plugin_t;
+
+ domtrans_pattern(nrpe_t, nagios_$1_plugin_exec_t, nagios_$1_plugin_t)
+ allow nagios_t nagios_$1_plugin_exec_t:file ioctl;
+
+ # needed by command.cfg
+ domtrans_pattern(nagios_t, nagios_$1_plugin_exec_t, nagios_$1_plugin_t)
+
+ kernel_read_system_state(nagios_$1_plugin_t)
+
+')
+
+########################################
+##
+## Execute the nagios unconfined plugins with
+## a domain transition.
+##
+##
+##
+## Domain allowed access.
+##
+##
+#
+interface(`nagios_domtrans_unconfined_plugins',`
+ gen_require(`
+ type nagios_unconfined_plugin_t;
+ type nagios_unconfined_plugin_exec_t;
+ ')
+
+ domtrans_pattern($1, nagios_unconfined_plugin_exec_t, nagios_unconfined_plugin_t)
+')
+
+########################################
+##
+## Do not audit attempts to read or write nagios
+## unnamed pipes.
+##
+##
+##
+## Domain to not audit.
+##
+##
+#
+interface(`nagios_dontaudit_rw_pipes',`
+ gen_require(`
+ type nagios_t;
+ ')
+
+ dontaudit $1 nagios_t:fifo_file rw_fifo_file_perms;
+')
+
+########################################
+##
+## Allow the specified domain to read
+## nagios configuration files.
+##
+##
+##
+## Domain allowed access.
+##
+##
+##
+#
+interface(`nagios_read_config',`
+ gen_require(`
+ type nagios_etc_t;
+ ')
+
+ allow $1 nagios_etc_t:dir list_dir_perms;
+ allow $1 nagios_etc_t:file read_file_perms;
+ files_search_etc($1)
+')
+######################################
+##
+## Read nagios lib files.
+##
+##
+##
+## Domain allowed access.
+##
+##
+#
+interface(`nagios_read_lib',`
+ gen_require(`
+ type nagios_var_lib_t;
+ ')
+
+ files_search_var($1)
+ list_dirs_pattern($1, nagios_var_lib_t, nagios_var_lib_t)
+ read_files_pattern($1, nagios_var_lib_t, nagios_var_lib_t)
+')
+
+######################################
+##
+## Read nagios logs.
+##
+##
+##
+## Domain allowed access.
+##
+##
+#
+interface(`nagios_read_log',`
+ gen_require(`
+ type nagios_log_t;
+ ')
+
+ logging_search_logs($1)
+ read_files_pattern($1, nagios_log_t, nagios_log_t)
+')
+
+########################################
+##
+## Do not audit attempts to read or write nagios logs.
+##
+##
+##
+## Domain to not audit.
+##
+##
+#
+interface(`nagios_dontaudit_rw_log',`
+ gen_require(`
+ type nagios_log_t;
+ ')
+
+ dontaudit $1 nagios_log_t:file rw_file_perms;
+')
+
+########################################
+##
+## Search nagios spool directories.
+##
+##
+##
+## Domain allowed access.
+##
+##
+#
+interface(`nagios_search_spool',`
+ gen_require(`
+ type nagios_spool_t;
+ ')
+
+ allow $1 nagios_spool_t:dir search_dir_perms;
+ files_search_spool($1)
+')
+
+########################################
+##
+## Append nagios spool files.
+##
+##
+##
+## Domain allowed access.
+##
+##
+#
+interface(`nagios_append_spool',`
+ gen_require(`
+ type nagios_spool_t;
+ ')
+
+ allow $1 nagios_spool_t:file append_file_perms;
+ files_search_spool($1)
+')
+
+########################################
+##
+## Allow the specified domain to read
+## nagios temporary files.
+##
+##
+##
+## Domain allowed access.
+##
+##
+#
+interface(`nagios_read_tmp_files',`
+ gen_require(`
+ type nagios_tmp_t;
+ ')
+
+ allow $1 nagios_tmp_t:file read_file_perms;
+ files_search_tmp($1)
+')
+
+########################################
+##
+## Allow the specified domain to read
+## nagios temporary files.
+##
+##
+##
+## Domain allowed access.
+##
+##
+#
+interface(`nagios_rw_inerited_tmp_files',`
+ gen_require(`
+ type nagios_tmp_t;
+ ')
+
+ allow $1 nagios_tmp_t:file rw_inherited_file_perms;
+ files_search_tmp($1)
+')
+
+########################################
+##
+## Execute the nagios NRPE with
+## a domain transition.
+##
+##
+##
+## Domain allowed to transition.
+##
+##
+#
+interface(`nagios_domtrans_nrpe',`
+ gen_require(`
+ type nrpe_t, nrpe_exec_t;
+ ')
+
+ domtrans_pattern($1, nrpe_exec_t, nrpe_t)
+')
+
+######################################
+##
+## Do not audit attempts to write nrpe daemon unnamed pipes.
+##
+##
+##
+## Domain allowed access.
+##
+##
+#
+interface(`nagios_dontaudit_write_pipes_nrpe',`
+ gen_require(`
+ type nrpe_t;
+ ')
+
+ dontaudit $1 nrpe_t:fifo_file write;
+')
+
+########################################
+##
+## All of the rules required to administrate
+## an nagios environment
+##
+##
+##
+## Domain allowed access.
+##
+##
+##
+##
+## The role to be allowed to manage the nagios domain.
+##
+##
+##
+#
+interface(`nagios_admin',`
+ gen_require(`
+ type nagios_t, nrpe_t, nagios_initrc_exec_t;
+ type nagios_tmp_t, nagios_log_t, nagios_var_run_t;
+ type nagios_etc_t, nrpe_etc_t, nagios_spool_t;
+ ')
+
+ allow $1 nagios_t:process signal_perms;
+ ps_process_pattern($1, nagios_t)
+ tunable_policy(`deny_ptrace',`',`
+ allow $1 nagios_t:process ptrace;
+ ')
+
+ init_labeled_script_domtrans($1, nagios_initrc_exec_t)
+ domain_system_change_exemption($1)
+ role_transition $2 nagios_initrc_exec_t system_r;
+ allow $2 system_r;
+
+ files_list_tmp($1)
+ admin_pattern($1, nagios_tmp_t)
+
+ logging_list_logs($1)
+ admin_pattern($1, nagios_log_t)
+
+ files_list_etc($1)
+ admin_pattern($1, nagios_etc_t)
+
+ files_list_spool($1)
+ admin_pattern($1, nagios_spool_t)
+
+ files_list_pids($1)
+ admin_pattern($1, nagios_var_run_t)
+
+ admin_pattern($1, nrpe_etc_t)
+')
+
+########################################
+##
+## Send a null signal to nagios_unconfined_plugin.
+##
+##
+##
+## Domain allowed access.
+##
+##
+#
+interface(`nagios_unconfined_signull',`
+ gen_require(`
+ type nagios_unconfined_plugin_t;
+ ')
+
+ allow $1 nagios_unconfined_plugin_t:process signull;
+')
+
+########################################
+#
+# Nagios interface compatibility blocks
+#
+# The following definitions ensure compatibility with distribution policy
+# versions that do not contain given interfaces (epel, or older Fedora
+# releases).
+# Each block tests for existence of given interface and defines it if needed.
+#
+
+########################################
+##
+## Allow caller to signull sssd.
+## Backport from RHEL8
+##
+##
+##
+## Domain allowed access.
+##
+##
+#
+ifndef(`sssd_signull',`
+ interface(`sssd_signull',`
+ gen_require(`
+ type sssd_t;
+ ')
+
+ allow $1 sssd_t:process signull;
+ ')
+')
diff --git a/nagios.spec b/nagios.spec
index 6710f9d..f945ac9 100644
--- a/nagios.spec
+++ b/nagios.spec
@@ -1,12 +1,17 @@
-%global _hardened_build 1
+# Set %%bcond_without bootstrap to build without depending on plugins for localhost monitoring
+%bcond_with bootstrap
+
+%global with_selinux 1
+%global selinuxtype targeted
Name: nagios
-Version: 4.4.3
-Release: 6%{?dist}
+Version: 4.5.9
+Release: 2%{?dist}
Summary: Host/service/network monitoring program
-License: GPLv2
+# Automatically converted from old format: GPLv2 - review is highly recommended.
+License: GPL-2.0-only
URL: https://www.nagios.org/projects/nagios-core/
Source0: https://github.com/NagiosEnterprises/nagioscore/archive/nagios-%{version}.tar.gz#/nagioscore-nagios-%{version}.tar.gz
Source1: nagios.logrotate
@@ -21,13 +26,10 @@ Source10: printer.png
Source11: router.png
Source12: switch.png
Source13: nagios.README.SELinux.rst
-Source14: nagios_epel7.te
-Source15: nagios_epel.fc
-Source16: nagios_epel6.te
+Source14: nagios.te
+Source15: nagios.fc
+Source16: nagios.if
-# Patch 0 should be a patch that we get from the maint git tree in
-# order to fix any items upstream wanted.
-#Patch0: nagios-0000-git201706.patch
Patch1: nagios-0001-default-init.patch
# Sent upstream
Patch2: nagios-0002-Fix-installation-of-httpd-conf.d-config-file.patch
@@ -35,8 +37,6 @@ Patch3: nagios-0003-Install-config-files-too.patch
Patch4: nagios-0004-Fix-path-to-CGI-executables.patch
Patch5: nagios-0005-Fixed-path-to-passwd-file-in-Apache-s-config-file.patch
Patch6: nagios-0006-Added-several-images-to-the-sample-config-revb.patch
-#Patch7: nagios-0007-Apache-2.4-configuration-fix-for-Fedora-18.patch
-Patch8: nagios-0008-Add-cfg_dir-etc-nagios-conf.d-to-the-main-nagios-con.patch
Patch9: nagios-0009-fix-localstatedir-for-linux.patch
## This has been requested for security groups not wanting to leak
## their nagios location.
@@ -47,6 +47,7 @@ Patch12: nagios-0012-fix-spool.patch
Patch13: nagios-0013-fix-plugin.patch
Patch14: nagios-0014-fix-uidgid.patch
+BuildRequires: make
BuildRequires: doxygen
BuildRequires: gcc
BuildRequires: gd-devel > 1.8
@@ -64,6 +65,7 @@ BuildRequires: perl(Test::HTML::Lint)
%endif
BuildRequires: perl(Test::More)
BuildRequires: perl(Test::Simple)
+BuildRequires: openssl-devel
# For up-to-date config.sub and config.guess
BuildRequires: libtool
@@ -71,22 +73,34 @@ BuildRequires: libtool
# For selinux tools
BuildRequires: checkpolicy, selinux-policy-devel
-%if 0%{?el7} || 0%{?fedora} > 20
-# For necessary macros
-BuildRequires: systemd
-%endif
-
Requires: httpd
Requires: php
-Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
-Requires: mailx
+Requires: %{_bindir}/mail
Requires: nagios-common
Requires: user(nagios)
Requires: group(nagios)
+# This plugins are required for localhost monitoring
+%if %{without bootstrap}
+Requires: nagios-plugins-ping
+Requires: nagios-plugins-load
+Requires: nagios-plugins-users
+Requires: nagios-plugins-http
+Requires: nagios-plugins-disk
+Requires: nagios-plugins-ssh
+Requires: nagios-plugins-swap
+Requires: nagios-plugins-procs
+%endif
+
+%if 0%{?with_selinux}
+# This ensures that the *-selinux package and all it’s dependencies are not pulled
+# into containers and other systems that do not use SELinux
+Requires: (%{name}-selinux if selinux-policy-%{selinuxtype})
+%endif
+
Requires(pre): group(nagios)
Requires(pre): user(nagios)
-%if 0%{?el7} || 0%{?fedora} > 20
+%if 0%{?rhel} > 6 || 0%{?fedora} > 20
# For necessary macros
BuildRequires: systemd
%else
@@ -112,7 +126,6 @@ files for Nagios. Development files are built as a separate package.
%package common
Summary: Provides common directories, uid and gid among nagios-related packages
-Requires(pre): shadow-utils
Requires(post): shadow-utils
Provides: user(nagios)
Provides: group(nagios)
@@ -138,16 +151,18 @@ that you specify.
This package provides include files that Nagios-related applications
may compile against.
-%if 0%{?rhel} > 5
+%if 0%{?with_selinux}
+# SELinux subpackage
%package selinux
Summary: SELinux context for %{name}
-Requires: %name = %version-%release
-Requires(post): policycoreutils
-Requires(postun): policycoreutils
-
+BuildArch: noarch
+Requires: selinux-policy-%{selinuxtype}
+Requires(post): selinux-policy-%{selinuxtype}
+BuildRequires: checkpolicy, selinux-policy-devel
+%{?selinux_requires}
%description selinux
-SElinux context for %{name}.
+SElinux security policy for %{name}.
%endif
%package contrib
@@ -157,27 +172,23 @@ Requires: %name = %version-%release
%description contrib
Various contributed items used by plugins and other tools.
+%if 0%{?with_selinux}
+# SELinux contexts are saved so that only affected files can be
+# relabeled after the policy module installation
+%pre selinux
+%selinux_relabel_pre -s %{selinuxtype}
+%endif
+
%prep
-%setup -q -n nagioscore-nagios-%{version}
-
-# patch0 would go here
-%patch1 -p1 -b .fix_el6_init
-%patch2 -p1 -b .fix_httpd_conf_d
-%patch3 -p0 -b .install_config
-%patch4 -p1 -b .fix_path_to_cgi
-%patch5 -p1 -b .fix_path_to_passwd
-%patch6 -p1 -b .more_images
-
-#%patch8 -p1 -b .conf_d
-%patch9 -p1 -b .fix_localstatedir
-%patch10 -p1 -b .remove_3rdparty_links
-%patch11 -p1 -b .remove_rpmbuild
-%patch12 -p1 -b .fix_spool
-%patch13 -p1 -b .fix_plugin
-%patch14 -p1 -b .fix_uidgid
+%autosetup -p1 -n nagioscore-nagios-%{version}
install -p -m 0644 %{SOURCE10} %{SOURCE11} %{SOURCE12} html/images/logos/
+# Create a sysusers.d config file
+cat >nagios.sysusers.conf < %{name}.htaccess
@@ -228,29 +241,27 @@ cp -f %{SOURCE5} UpgradeToVersion4.ReadMe
cp -f %{SOURCE6} UpgradeToVersion4.sh
echo >> html/stylesheets/common.css
-%if 0%{?rhel} > 5
-## SELinux configs
+%if 0%{?with_selinux}
mkdir selinux
-install -pm 644 %{SOURCE13} README.SELinux.rst
-%if 0%{?rhel} == 6
-cp -p %{SOURCE16} selinux/%{name}_epel.te
-%else
-cp -p %{SOURCE14} selinux/%{name}_epel.te
-%endif
-cp -p %{SOURCE15} selinux/%{name}_epel.fc
-touch selinux/%{name}_epel.if
-make -f %{_datadir}/selinux/devel/Makefile
+# Shipping the whole nagios policy (originally from selinux-policy-contrib)
+# this policy module will override the production module
+cp -p %{SOURCE14} selinux/
+cp -p %{SOURCE15} selinux/
+cp -p %{SOURCE16} selinux/
+
+%make_build -f %{_datadir}/selinux/devel/Makefile %{name}.pp
+bzip2 -9 %{name}.pp
%endif
%install
-rm -rf $RPM_BUILD_ROOT
-
-make DESTDIR=%{buildroot} INIT_OPTS="" INSTALL_OPTS="" COMMAND_OPTS="" CGIDIR="%{_libdir}/%{name}/cgi-bin" CFGDIR="%{_sysconfdir}/%{name}" fullinstall
+%make_install INIT_OPTS="" INSTALL_OPTS="" COMMAND_OPTS="" CGIDIR="%{_libdir}/%{name}/cgi-bin" CFGDIR="%{_sysconfdir}/%{name}" fullinstall
# relocated to sbin (Fedora-specific)
install -d -m 0755 %{buildroot}%{_bindir}
+%if 0%{?fedora} < 42 && 0%{?rhel} < 11
mv %{buildroot}%{_sbindir}/nagiostats %{buildroot}%{_bindir}/nagiostats
+%endif
install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name}/private
mv %{buildroot}%{_sysconfdir}/%{name}/resource.cfg %{buildroot}%{_sysconfdir}/%{name}/private/resource.cfg
@@ -268,40 +279,45 @@ install -d -m 0755 %{buildroot}%{_libdir}/%{name}/plugins/eventhandlers
install -d -m 0755 %{buildroot}%{_libdir}/%{name}/plugins/eventhandlers/distributed-monitoring/
install -d -m 0755 %{buildroot}%{_libdir}/%{name}/plugins/eventhandlers/redundancy-scenario1/
-install -d -m 0775 %{buildroot}%{_localstatedir}/spool/%{name}/cmd
-install -d -m 0775 %{buildroot}%{_localstatedir}/run/%{name}
+install -d -m 0755 %{buildroot}%{_localstatedir}/spool/%{name}/cmd
+install -d -m 0755 %{buildroot}%{_localstatedir}/run/%{name}
# Make a run directory
-install -d -m 0775 %{buildroot}%{_localstatedir}/run/%{name}
+install -d -m 0755 %{buildroot}%{_localstatedir}/run/%{name}
# Make logdirs
-install -d -m 0775 %{buildroot}/%{_localstatedir}/log/
-install -d -m 0775 %{buildroot}/%{_localstatedir}/log/%{name}/
-install -d -m 0775 %{buildroot}/%{_localstatedir}/log/%{name}/archives
+install -d -m 0755 %{buildroot}/%{_localstatedir}/log/
+install -d -m 0755 %{buildroot}/%{_localstatedir}/log/%{name}/
+install -d -m 0755 %{buildroot}/%{_localstatedir}/log/%{name}/archives
# Use systemd unit on rhel7 or any supported Fedora
-%if 0%{?el7} || 0%{?fedora} > 20
+%if 0%{?rhel} > 6 || 0%{?fedora} > 20
# Install systemd entry
install -D -m 0644 -p %{SOURCE8} %{buildroot}%{_tmpfilesdir}/%{name}.conf
# Remove SystemV init-script
rm -f %{buildroot}%{_initrddir}/nagios
+
+# Fix systemd unit file permissions #1676334
+chmod -x %{buildroot}%{_unitdir}/%{name}.service
%endif
# Fix permissions - FIXME remove this when unneeded
-chmod 755 %{buildroot}%{_sbindir}/nagios
+chmod 755 %{buildroot}%{_sbindir}/nagios %{buildroot}%{_bindir}/nagiostats
# Install documentation
install -d -m 0755 %{buildroot}%{_datadir}/nagios/html/docs
-%{__cp} -a Documentation/html/* %{buildroot}%{_datadir}/nagios/html/docs
+%{__cp} -r Documentation/html/* %{buildroot}%{_datadir}/nagios/html/docs
+
+%if 0%{?with_selinux}
+install -pm 0644 %{SOURCE13} README.SELinux.rst
+install -D -m 0644 %{name}.pp.bz2 %{buildroot}%{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2
+install -D -p -m 0644 selinux/%{name}.if %{buildroot}%{_datadir}/selinux/devel/include/distributed/%{name}.if
-%if 0%{?rhel} >5
-# Selinux configs
-install -p -m 644 -D %{name}_epel.pp $RPM_BUILD_ROOT%{_datadir}/selinux/packages/%{name}/%{name}_epel.pp
%endif
### CONTRIB ITEMS TAKEN FROM UPSTREAM NAGIOS SPEC
-make install -C contrib DESTDIR="%{buildroot}" INSTALL_OPTS=""
+%make_install -C contrib INSTALL_OPTS=""
install -p -m 644 contrib/eventhandlers/disable_active_service_checks %{buildroot}%{_libdir}/nagios/plugins/eventhandlers/
install -p -m 644 contrib/eventhandlers/disable_notifications %{buildroot}%{_libdir}/nagios/plugins/eventhandlers/
install -p -m 644 contrib/eventhandlers/enable_active_service_checks %{buildroot}%{_libdir}/nagios/plugins/eventhandlers/
@@ -315,16 +331,17 @@ install -p -m 644 contrib/eventhandlers/redundancy-scenario1/handle-master-proc-
%{__mv} contrib/README contrib/README.contrib
-%pre common
-getent group nagios >/dev/null || groupadd -r nagios
-getent passwd nagios >/dev/null || useradd -r -g nagios -d %{_localstatedir}/spool/%{name} -s /sbin/nologin nagios
-exit 0
+# Fix permissions #2275532
+chmod -R g-w %{buildroot}%{_datadir}/%{name} %{buildroot}%{_libdir}/%{name} %{buildroot}%{_sysconfdir} %{buildroot}%{_sbindir}
+
+install -m0644 -D nagios.sysusers.conf %{buildroot}%{_sysusersdir}/nagios.conf
+
%post
%{_sbindir}/usermod -a -G %{name} apache || :
-%if 0%{?el7} || 0%{?fedora} > 20
+%if 0%{?rhel} > 6 || 0%{?fedora} > 20
%systemd_post %{name}.service > /dev/null 2>&1 || :
%else
if [ $1 -eq 1 ]; then
@@ -347,7 +364,7 @@ fi
%endif
%preun
-%if 0%{?el7} || 0%{?fedora} > 20
+%if 0%{?rhel} > 6 || 0%{?fedora} > 20
%systemd_preun %{name}.service
%else
if [ $1 -eq 0 ]; then
@@ -378,49 +395,22 @@ fi
/bin/systemctl try-restart %{name}.service >/dev/null 2>&1 || :
%endif
-%if 0%{?rhel} >5
+%if 0%{?with_selinux}
%post selinux
-%if 0%{?el5}%{?el6}
+%selinux_modules_install -s %{selinuxtype} %{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2
+%selinux_relabel_post -s %{selinuxtype}
+
if [ "$1" -le "1" ]; then # First install
- semodule -i %{_datadir}/selinux/packages/%{name}/%{name}_epel.pp 2>/dev/null || :
- fixfiles -R %{name} restore || :
- /sbin/service %{name} condrestart > /dev/null 2>&1 || :
-fi
-%else
-if [ "$1" -le "1" ]; then # First install
- semodule -i %{_datadir}/selinux/packages/%{name}/%{name}_epel.pp 2>/dev/null || :
- fixfiles -R %{name} restore || :
%systemd_postun_with_restart %{name}.service
fi
-%endif
-%endif
-%if 0%{?rhel} >5
-%preun selinux
-%if 0%{?el6}
-if [ "$1" -lt "1" ]; then # Final removal
- semodule -r %{name}_epel 2>/dev/null || :
- fixfiles -R %{name} restore || :
- /sbin/service %{name} condrestart > /dev/null 2>&1 || :
-fi
-%else
-if [ "$1" -lt "1" ]; then # Final removal
- semodule -r %{name}_epel 2>/dev/null || :
- fixfiles -R %{name} restore || :
+%postun selinux
+if [ $1 -eq 0 ]; then
+ %selinux_modules_uninstall -s %{selinuxtype} %{name}
+ %selinux_relabel_post -s %{selinuxtype}
%systemd_postun_with_restart %{name}.service
fi
%endif
-%endif
-
-%if 0%{?rhel} >5
-%postun selinux
-if [ "$1" -ge "1" ]; then # Upgrade
- # Replaces the module if it is already loaded
- semodule -i %{_datadir}/selinux/packages/%{name}/%{name}_epel.pp 2>/dev/null || :
- # no need to restart the daemon
-fi
-%endif
-
%files
@@ -428,16 +418,19 @@ fi
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/html
%doc %{_datadir}/%{name}/html/docs
-%doc Changelog INSTALLING LICENSE README.md UPGRADING UpgradeToVersion4.ReadMe UpgradeToVersion4.sh
+%doc Changelog INSTALLING README.md UPGRADING UpgradeToVersion4.ReadMe UpgradeToVersion4.sh
%doc internet.cfg
+%license LICENSE
%{_datadir}/%{name}/html/[^cd]*
%{_datadir}/%{name}/html/contexthelp/
-%{_datadir}/%{name}/html/d3/
+%if 0%{?fedora} < 42 && 0%{?rhel} < 11
%{_sbindir}/*
+%endif
+
%{_bindir}/*
%{_libdir}/%{name}/cgi-bin/*cgi
-%if 0%{?el7} || 0%{?fedora} > 20
+%if 0%{?rhel} > 6 || 0%{?fedora} > 20
%{_unitdir}/%{name}.service
%{_tmpfilesdir}/%{name}.conf
%else
@@ -453,11 +446,11 @@ fi
%attr(0640,root,nagios) %config(noreplace) %{_sysconfdir}/%{name}/private/resource.cfg
%attr(0640,root,apache) %config(noreplace) %{_sysconfdir}/%{name}/passwd
%attr(0640,root,apache) %config(noreplace) %{_datadir}/%{name}/html/config.inc.php
-%attr(2775,nagios,nagios) %dir %{_localstatedir}/spool/%{name}/cmd
+%attr(2755,nagios,nagios) %dir %{_localstatedir}/spool/%{name}/cmd
%attr(0750,nagios,nagios) %dir %{_localstatedir}/run/%{name}
%attr(0750,nagios,nagios) %dir %{_localstatedir}/log/%{name}
%attr(0750,nagios,nagios) %dir %{_localstatedir}/log/%{name}/archives
-%attr(0770,nagios,nagios) %dir %{_localstatedir}/spool/%{name}/checkresults
+%attr(0750,nagios,nagios) %dir %{_localstatedir}/spool/%{name}/checkresults
%files common
%dir %{_sysconfdir}/%{name}
@@ -465,24 +458,145 @@ fi
%attr(0755,root,root) %dir %{_libdir}/%{name}/plugins
%attr(0755,root,root) %dir %{_libdir}/%{name}/plugins/eventhandlers/
%attr(0755,nagios,nagios) %dir %{_localstatedir}/spool/%{name}
+%{_sysusersdir}/nagios.conf
%files devel
%{_includedir}/%{name}
%attr(0644,root,root) %{_libdir}/%{name}/libnagios.a
-%if 0%{?rhel} > 5
+%if 0%{?with_selinux}
%files selinux
%doc README.SELinux.rst
-%{_datadir}/selinux/packages/%{name}/nagios_epel.pp
+%{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.*
+%{_datadir}/selinux/devel/include/distributed/%{name}.if
+%ghost %verify(not md5 size mode mtime) %{_sharedstatedir}/selinux/%{selinuxtype}/active/modules/200/%{name}
%endif
+
%files contrib
%doc contrib/README.contrib
%attr(0750,root,root) %{_libdir}/%{name}/plugins/eventhandlers/*
%{_libdir}/%{name}/cgi/
%changelog
+* Thu Jul 24 2025 Fedora Release Engineering - 4.5.9-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
+
+* Tue May 13 2025 Guido Aulisi - 4.5.9-1
+- Update to 4.5.9
+
+* Tue Feb 11 2025 Zbigniew Jędrzejewski-Szmek - 4.4.14-8
+- Add sysusers.d config file to allow rpm to create users/groups automatically
+
+* Fri Jan 17 2025 Fedora Release Engineering - 4.4.14-7
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
+
+* Mon Jul 29 2024 Miroslav Suchý - 4.4.14-6
+- convert license to SPDX
+
+* Thu Jul 18 2024 Fedora Release Engineering - 4.4.14-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
+
+* Sat Apr 27 2024 Guido Aulisi - 4.4.14-4
+- Fix permissions (#2275532)
+
+* Thu Jan 25 2024 Fedora Release Engineering - 4.4.14-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Sun Jan 21 2024 Fedora Release Engineering - 4.4.14-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Wed Aug 16 2023 Guido Aulisi - 4.4.14-1
+- Update to 4.4.14
+
+* Thu Jul 20 2023 Fedora Release Engineering - 4.4.10-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
+
+* Mon Feb 13 2023 Guido Aulisi - 4.4.10-1
+- Update to 4.4.10
+- Fix nagiostats permissions #2169033
+
+* Thu Jan 19 2023 Fedora Release Engineering - 4.4.9-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
+
+* Sat Dec 10 2022 Florian Weimer - 4.4.9-2
+- Port configure script to C99
+
+* Thu Nov 17 2022 Guido Aulisi - 4.4.9-1
+- Update to 4.4.9
+
+* Sun Oct 23 2022 Guido Aulisi - 4.4.8-1
+- Update to 4.4.8
+
+* Sun Sep 25 2022 Guido Aulisi - 4.4.7-1
+- Update to 4.4.7
+
+* Fri Jul 22 2022 Fedora Release Engineering - 4.4.6-10
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
+
+* Wed Jun 01 2022 Jitka Plesnikova - 4.4.6-9
+- Perl 5.36 rebuild
+
+* Thu Jan 20 2022 Fedora Release Engineering - 4.4.6-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
+
+* Tue Jan 04 2022 Guido Aulisi - 4.4.6-7
+- Require a generic mail program (#2036844)
+
+* Thu Jul 22 2021 Fedora Release Engineering - 4.4.6-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
+
+* Fri May 21 2021 Jitka Plesnikova - 4.4.6-5
+- Perl 5.34 rebuild
+
+* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 4.4.6-4
+- Rebuilt for updated systemd-rpm-macros
+ See https://pagure.io/fesco/issue/2583.
+
+* Sat Feb 27 2021 Guido Aulisi - 4.4.6-3
+- Require plugins needed for localhost monitoring (#1932297)
+
+* Tue Feb 23 2021 Guido Aulisi - 4.4.6-2
+- Fix systemd unit file permissions #1676334
+
+* Sat Feb 20 2021 Guido Aulisi - 4.4.6-1
+- Update to 4.4.6
+- Fix for CVE-2020-13977 #BZ1849087
+- Some spec cleanup
+
+* Tue Jan 26 2021 Fedora Release Engineering - 4.4.5-10
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+
+* Tue Jul 28 2020 Fedora Release Engineering - 4.4.5-9
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Tue Jun 23 2020 Jitka Plesnikova - 4.4.5-8
+- Perl 5.32 rebuild
+
+* Mon Mar 2 2020 Martin Jackson - 4.4.5-7
+- Update nrpe_etc_t policy in previous PR
+
+* Thu Feb 27 2020 Martin Jackson - 4.4.5-5
+- Update selinux subpackage to fix BZ#1749156 - thanks for the patch vmojzis
+
+* Wed Feb 26 2020 Vit Mojzis - 4.4.5-4
+- Update nagios-selinux based on the DSP guidelines
+
+* Tue Feb 18 2020 Stephen Smoogen - 4.4.5-3
+- Add change to allow for problems found in mass rebuild and gcc10.
+- Fix BZ#1793909
+
+* Wed Jan 29 2020 Fedora Release Engineering - 4.4.5-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
+* Thu Aug 29 2019 Stephen Smoogen - 4.4.5-1
+- Move to 4.4.5
+- Updated patches to cleanly patch
+
+* Fri Jul 26 2019 Stephen Smoogen - 4.4.3-7
+- Try to put in fixes to allow this to work on EL8
+
* Thu Jul 25 2019 Fedora Release Engineering - 4.4.3-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
diff --git a/nagios.te b/nagios.te
new file mode 100644
index 0000000..b86a8dd
--- /dev/null
+++ b/nagios.te
@@ -0,0 +1,667 @@
+policy_module(nagios, 1.13.0)
+
+########################################
+#
+# Declarations
+#
+
+##
+##
+## Allow nagios/nrpe to call sudo from NRPE utils scripts.
+##
+##
+gen_tunable(nagios_run_sudo, false)
+
+##
+##
+## Allow nagios run in conjunction with PNP4Nagios.
+##
+##
+gen_tunable(nagios_run_pnp4nagios, false)
+
+##
+##
+## Determine whether Nagios, NRPE can
+## access nfs file systems.
+##
+##
+gen_tunable(nagios_use_nfs, false)
+
+gen_require(`
+ class passwd rootok;
+ class passwd passwd;
+')
+
+attribute nagios_plugin_domain;
+
+type nagios_t;
+type nagios_exec_t;
+init_daemon_domain(nagios_t, nagios_exec_t)
+
+type nagios_etc_t;
+files_config_file(nagios_etc_t)
+
+type nagios_initrc_exec_t;
+init_script_file(nagios_initrc_exec_t)
+
+type nagios_log_t;
+logging_log_file(nagios_log_t)
+
+type nagios_tmp_t;
+files_tmp_file(nagios_tmp_t)
+
+type nagios_var_run_t;
+files_pid_file(nagios_var_run_t)
+
+type nagios_spool_t;
+files_spool_file(nagios_spool_t)
+
+type nagios_var_lib_t;
+files_type(nagios_var_lib_t)
+
+nagios_plugin_template(admin)
+nagios_plugin_template(checkdisk)
+nagios_plugin_template(mail)
+nagios_plugin_template(services)
+nagios_plugin_template(system)
+nagios_plugin_template(unconfined)
+nagios_plugin_template(eventhandler)
+nagios_plugin_template(openshift)
+
+type nagios_eventhandler_plugin_tmp_t;
+files_tmp_file(nagios_eventhandler_plugin_tmp_t)
+
+type nagios_system_plugin_tmp_t;
+files_tmp_file(nagios_system_plugin_tmp_t)
+
+type nagios_openshift_plugin_tmp_t;
+files_tmp_file(nagios_openshift_plugin_tmp_t)
+
+type nrpe_t;
+type nrpe_exec_t;
+init_daemon_domain(nrpe_t, nrpe_exec_t)
+
+type nrpe_etc_t;
+files_config_file(nrpe_etc_t)
+
+type nrpe_var_run_t;
+files_pid_file(nrpe_var_run_t)
+
+######################################
+#
+# Common plugin domain local policy
+#
+
+allow nagios_plugin_domain self:fifo_file rw_fifo_file_perms;
+
+allow nrpe_t nagios_plugin_domain:process { sigkill signal };
+
+allow nagios_t nagios_plugin_domain:process signal_perms;
+allow nagios_plugin_domain nagios_t:process signal_perms;
+
+# cjp: leaked file descriptor
+dontaudit nagios_plugin_domain nrpe_t:tcp_socket { read write };
+dontaudit nagios_plugin_domain nagios_log_t:file { read write };
+
+dev_read_urand(nagios_plugin_domain)
+dev_read_rand(nagios_plugin_domain)
+dev_read_sysfs(nagios_plugin_domain)
+
+userdom_use_inherited_user_ptys(nagios_plugin_domain)
+userdom_use_inherited_user_ttys(nagios_plugin_domain)
+
+########################################
+#
+# Nagios local policy
+#
+
+allow nagios_t self:capability { chown dac_read_search setgid setuid };
+dontaudit nagios_t self:capability sys_tty_config;
+allow nagios_t self:process { setpgid signal_perms };
+allow nagios_t self:fifo_file rw_fifo_file_perms;
+allow nagios_t self:tcp_socket { accept listen };
+allow nagios_t self:unix_stream_socket { connectto };
+
+allow nagios_t nagios_plugin_domain:process signal_perms;
+
+allow nagios_t nagios_eventhandler_plugin_exec_t:dir list_dir_perms;
+
+allow nagios_t nagios_etc_t:dir list_dir_perms;
+allow nagios_t nagios_etc_t:file { map read_file_perms };
+allow nagios_t nagios_etc_t:lnk_file read_lnk_file_perms;
+
+#allow nagios_t nagios_log_t:dir setattr_dir_perms;
+#append_files_pattern(nagios_t, nagios_log_t, nagios_log_t)
+#create_files_pattern(nagios_t, nagios_log_t, nagios_log_t)
+#setattr_files_pattern(nagios_t, nagios_log_t, nagios_log_t)
+manage_files_pattern(nagios_t, nagios_log_t, nagios_log_t)
+manage_dirs_pattern(nagios_t, nagios_log_t, nagios_log_t)
+logging_log_filetrans(nagios_t, nagios_log_t, { dir file })
+allow nagios_t nagios_log_t:file map;
+
+manage_dirs_pattern(nagios_t, nagios_tmp_t, nagios_tmp_t)
+manage_files_pattern(nagios_t, nagios_tmp_t, nagios_tmp_t)
+files_tmp_filetrans(nagios_t, nagios_tmp_t, { dir file })
+
+manage_files_pattern(nagios_t, nagios_var_run_t, nagios_var_run_t)
+files_pid_filetrans(nagios_t, nagios_var_run_t, file)
+
+manage_fifo_files_pattern(nagios_t, nagios_spool_t, nagios_spool_t)
+manage_files_pattern(nagios_t, nagios_spool_t, nagios_spool_t)
+manage_sock_files_pattern(nagios_t, nagios_spool_t, nagios_spool_t)
+files_spool_filetrans(nagios_t, nagios_spool_t, { file fifo_file })
+allow nagios_t nagios_spool_t:file map;
+
+manage_files_pattern(nagios_t, nagios_var_lib_t, nagios_var_lib_t)
+manage_fifo_files_pattern(nagios_t, nagios_var_lib_t, nagios_var_lib_t)
+manage_dirs_pattern(nagios_t, nagios_var_lib_t, nagios_var_lib_t)
+files_var_lib_filetrans(nagios_t, nagios_var_lib_t, { dir file fifo_file })
+
+kernel_read_system_state(nagios_t)
+kernel_read_kernel_sysctls(nagios_t)
+kernel_read_software_raid_state(nagios_t)
+
+corecmd_exec_bin(nagios_t)
+corecmd_exec_shell(nagios_t)
+
+corenet_all_recvfrom_netlabel(nagios_t)
+corenet_tcp_sendrecv_generic_if(nagios_t)
+corenet_tcp_sendrecv_generic_node(nagios_t)
+
+corenet_sendrecv_all_client_packets(nagios_t)
+corenet_tcp_connect_all_ports(nagios_t)
+corenet_tcp_sendrecv_all_ports(nagios_t)
+
+corenet_dontaudit_tcp_bind_all_reserved_ports(nagios_t)
+corenet_dontaudit_udp_bind_all_reserved_ports(nagios_t)
+
+dev_read_sysfs(nagios_t)
+dev_read_urand(nagios_t)
+
+domain_use_interactive_fds(nagios_t)
+domain_read_all_domains_state(nagios_t)
+
+files_read_etc_runtime_files(nagios_t)
+files_read_kernel_symbol_table(nagios_t)
+files_search_spool(nagios_t)
+
+fs_getattr_all_fs(nagios_t)
+fs_search_auto_mountpoints(nagios_t)
+fs_search_cgroup_dirs(nagios_t)
+
+hostname_exec(nagios_t)
+
+auth_use_nsswitch(nagios_t)
+
+logging_send_syslog_msg(nagios_t)
+libs_exec_ldconfig(nagios_t)
+
+userdom_dontaudit_use_unpriv_user_fds(nagios_t)
+userdom_dontaudit_search_user_home_dirs(nagios_t)
+
+mta_send_mail(nagios_t)
+mta_signal_system_mail(nagios_t)
+mta_kill_system_mail(nagios_t)
+
+systemd_exec_systemctl(nagios_t)
+
+tunable_policy(`nagios_run_sudo',`
+ allow nagios_t self:capability { chown setgid setuid sys_ptrace sys_resource };
+ allow nagios_t self:process { setrlimit setsched };
+
+ allow nagios_t self:key write;
+
+ allow nagios_t self:passwd { passwd rootok };
+
+ auth_rw_lastlog(nagios_t)
+ auth_rw_faillog(nagios_t)
+
+ auth_domtrans_chkpwd(nagios_t)
+
+ selinux_compute_access_vector(nagios_t)
+
+ systemd_write_inherited_logind_sessions_pipes(nagios_t)
+ systemd_dbus_chat_logind(nagios_t)
+
+ logging_send_audit_msgs(nagios_t)
+')
+
+optional_policy(`
+ apache_systemctl(nagios_t)
+')
+
+optional_policy(`
+ dbus_system_bus_client(nagios_t)
+')
+
+optional_policy(`
+ tunable_policy(`nagios_run_sudo',`
+ sudo_exec(nagios_t)
+ sudo_manage_db(nagios_t)
+ ')
+')
+
+optional_policy(`
+ tunable_policy(`nagios_run_sudo',`
+ init_read_utmp(nagios_t)
+ ')
+')
+
+tunable_policy(`nagios_run_pnp4nagios',`
+ allow nagios_t nagios_log_t:file execute;
+')
+
+tunable_policy(`nagios_use_nfs',`
+ fs_manage_nfs_files(nagios_t)
+ fs_manage_nfs_dirs(nagios_t)
+ fs_manage_nfs_symlinks(nagios_t)
+')
+
+optional_policy(`
+ netutils_kill_ping(nagios_t)
+')
+
+optional_policy(`
+ seutil_sigchld_newrole(nagios_t)
+')
+
+optional_policy(`
+ udev_read_db(nagios_t)
+')
+
+########################################
+#
+# CGI local policy
+#
+
+optional_policy(`
+ apache_content_template(nagios)
+ apache_content_alias_template(nagios, nagios)
+ typealias nagios_script_t alias nagios_cgi_t;
+ typealias nagios_script_exec_t alias nagios_cgi_exec_t;
+
+ allow nagios_script_t self:process signal_perms;
+
+ read_files_pattern(nagios_script_t, nagios_t, nagios_t)
+ read_lnk_files_pattern(nagios_script_t, nagios_t, nagios_t)
+
+ allow nagios_script_t nagios_etc_t:dir list_dir_perms;
+ allow nagios_script_t nagios_etc_t:file { map read_file_perms };
+ allow nagios_script_t nagios_etc_t:lnk_file read_lnk_file_perms;
+
+ files_search_spool(nagios_script_t)
+ rw_fifo_files_pattern(nagios_script_t, nagios_spool_t, nagios_spool_t)
+ read_files_pattern(nagios_script_t, nagios_spool_t, nagios_spool_t)
+ allow nagios_script_t nagios_spool_t:file map;
+
+ allow nagios_script_t nagios_log_t:dir list_dir_perms;
+ read_files_pattern(nagios_script_t, nagios_etc_t, nagios_log_t)
+ read_lnk_files_pattern(nagios_script_t, nagios_etc_t, nagios_log_t)
+ allow nagios_script_t nagios_log_t:file map;
+
+ kernel_read_system_state(nagios_script_t)
+
+ domain_dontaudit_read_all_domains_state(nagios_script_t)
+
+ files_read_etc_runtime_files(nagios_script_t)
+ files_read_kernel_symbol_table(nagios_script_t)
+
+ dev_list_sysfs(nagios_script_t)
+
+ logging_send_syslog_msg(nagios_script_t)
+')
+
+########################################
+#
+# Nrpe local policy
+#
+
+allow nrpe_t self:capability { kill setgid setuid };
+dontaudit nrpe_t self:capability { sys_resource sys_tty_config };
+allow nrpe_t self:process { setpgid setrlimit setsched signal_perms };
+allow nrpe_t self:fifo_file rw_fifo_file_perms;
+allow nrpe_t self:tcp_socket { accept listen };
+
+allow nrpe_t nagios_plugin_domain:process { sigkill signal };
+
+list_dirs_pattern(nrpe_t, nrpe_etc_t, nrpe_etc_t)
+read_files_pattern(nrpe_t, nagios_etc_t, nrpe_etc_t)
+
+manage_files_pattern(nrpe_t, nrpe_var_run_t, nrpe_var_run_t)
+files_pid_filetrans(nrpe_t, nrpe_var_run_t, file)
+
+domtrans_pattern(nrpe_t, nagios_checkdisk_plugin_exec_t, nagios_checkdisk_plugin_t)
+
+kernel_read_system_state(nrpe_t)
+kernel_read_kernel_sysctls(nrpe_t)
+kernel_read_software_raid_state(nrpe_t)
+kernel_read_fs_sysctls(nrpe_t)
+
+can_exec(nagios_t, nagios_exec_t)
+
+corecmd_exec_bin(nrpe_t)
+corecmd_exec_shell(nrpe_t)
+
+corenet_all_recvfrom_unlabeled(nrpe_t)
+corenet_all_recvfrom_netlabel(nrpe_t)
+corenet_tcp_sendrecv_generic_if(nrpe_t)
+corenet_tcp_sendrecv_generic_node(nrpe_t)
+corenet_tcp_bind_generic_node(nrpe_t)
+
+corenet_sendrecv_inetd_child_server_packets(nrpe_t)
+corenet_tcp_bind_inetd_child_port(nrpe_t)
+corenet_tcp_sendrecv_inetd_child_port(nrpe_t)
+
+dev_read_sysfs(nrpe_t)
+dev_read_urand(nrpe_t)
+dev_rw_lvm_control(nrpe_t)
+
+domain_use_interactive_fds(nrpe_t)
+domain_read_all_domains_state(nrpe_t)
+
+files_list_var(nrpe_t)
+files_read_etc_runtime_files(nrpe_t)
+
+fs_getattr_all_fs(nrpe_t)
+fs_search_auto_mountpoints(nrpe_t)
+
+auth_use_nsswitch(nrpe_t)
+
+logging_send_syslog_msg(nrpe_t)
+
+userdom_dontaudit_use_unpriv_user_fds(nrpe_t)
+
+tunable_policy(`nagios_run_sudo',`
+ allow nrpe_t self:capability { setgid setuid sys_ptrace sys_resource };
+ allow nrpe_t self:process { setrlimit setsched };
+
+ allow nrpe_t self:key write;
+
+ allow nrpe_t self:passwd { passwd rootok };
+
+ auth_rw_lastlog(nrpe_t)
+ auth_rw_faillog(nrpe_t)
+
+ auth_domtrans_chkpwd(nrpe_t)
+
+ init_read_utmp(nrpe_t)
+
+ selinux_compute_access_vector(nrpe_t)
+
+ systemd_write_inherited_logind_sessions_pipes(nrpe_t)
+ systemd_dbus_chat_logind(nrpe_t)
+
+ logging_send_audit_msgs(nrpe_t)
+')
+
+optional_policy(`
+ tunable_policy(`nagios_run_sudo',`
+ sudo_exec(nrpe_t)
+ sudo_manage_db(nrpe_t)
+ ')
+')
+
+optional_policy(`
+ tunable_policy(`nagios_run_sudo',`
+ sssd_read_config(nrpe_t)
+ sssd_manage_lib_files(nrpe_t)
+ sssd_read_pid_files(nrpe_t)
+ sssd_signull(nrpe_t)
+ ')
+')
+
+tunable_policy(`nagios_use_nfs',`
+ fs_manage_nfs_files(nrpe_t)
+ fs_manage_nfs_dirs(nrpe_t)
+ fs_manage_nfs_symlinks(nrpe_t)
+')
+
+optional_policy(`
+ dbus_system_bus_client(nrpe_t)
+')
+
+optional_policy(`
+ inetd_tcp_service_domain(nrpe_t, nrpe_exec_t)
+')
+
+optional_policy(`
+ lvm_read_metadata(nrpe_t)
+')
+
+optional_policy(`
+ mta_send_mail(nrpe_t)
+')
+
+optional_policy(`
+ seutil_sigchld_newrole(nrpe_t)
+')
+
+optional_policy(`
+ tcpd_wrapped_domain(nrpe_t, nrpe_exec_t)
+')
+
+optional_policy(`
+ udev_read_db(nrpe_t)
+')
+
+#####################################
+#
+# Admin local policy
+#
+
+corecmd_read_bin_files(nagios_admin_plugin_t)
+corecmd_read_bin_symlinks(nagios_admin_plugin_t)
+
+dev_getattr_all_chr_files(nagios_admin_plugin_t)
+dev_getattr_all_blk_files(nagios_admin_plugin_t)
+
+files_getattr_all_dirs(nagios_admin_plugin_t)
+files_getattr_all_files(nagios_admin_plugin_t)
+files_getattr_all_symlinks(nagios_admin_plugin_t)
+files_getattr_all_pipes(nagios_admin_plugin_t)
+files_getattr_all_sockets(nagios_admin_plugin_t)
+files_getattr_all_file_type_fs(nagios_admin_plugin_t)
+
+######################################
+#
+# Mail local policy
+#
+
+allow nagios_mail_plugin_t self:capability { dac_read_search setgid setuid };
+allow nagios_mail_plugin_t self:netlink_route_socket r_netlink_socket_perms;
+allow nagios_mail_plugin_t self:tcp_socket create_stream_socket_perms;
+allow nagios_mail_plugin_t self:udp_socket create_socket_perms;
+
+kernel_read_kernel_sysctls(nagios_mail_plugin_t)
+
+corecmd_read_bin_files(nagios_mail_plugin_t)
+corecmd_read_bin_symlinks(nagios_mail_plugin_t)
+
+logging_send_syslog_msg(nagios_mail_plugin_t)
+
+sysnet_dns_name_resolve(nagios_mail_plugin_t)
+
+optional_policy(`
+ mta_send_mail(nagios_mail_plugin_t)
+')
+
+optional_policy(`
+ nscd_dontaudit_search_pid(nagios_mail_plugin_t)
+')
+
+optional_policy(`
+ postfix_stream_connect_master(nagios_mail_plugin_t)
+ postfix_exec_postqueue(nagios_mail_plugin_t)
+')
+
+######################################
+#
+# Disk local policy
+#
+
+allow nagios_checkdisk_plugin_t self:capability { sys_admin sys_rawio };
+
+kernel_read_software_raid_state(nagios_checkdisk_plugin_t)
+
+corecmd_exec_bin(nagios_checkdisk_plugin_t)
+
+files_getattr_all_dirs(nagios_checkdisk_plugin_t)
+files_getattr_all_mountpoints(nagios_checkdisk_plugin_t)
+files_read_etc_runtime_files(nagios_checkdisk_plugin_t)
+
+fs_read_configfs_files(nagios_checkdisk_plugin_t)
+fs_read_configfs_dirs(nagios_checkdisk_plugin_t)
+fs_getattr_all_fs(nagios_checkdisk_plugin_t)
+
+storage_raw_read_fixed_disk(nagios_checkdisk_plugin_t)
+
+#######################################
+#
+# Services local policy
+#
+
+allow nagios_services_plugin_t self:capability { net_bind_service net_raw setuid };
+allow nagios_services_plugin_t self:process { sigkill signal };
+allow nagios_services_plugin_t self:tcp_socket create_stream_socket_perms;
+allow nagios_services_plugin_t self:udp_socket create_socket_perms;
+allow nagios_services_plugin_t self:unix_dgram_socket create_socket_perms;
+allow nagios_services_plugin_t self:rawip_socket create_socket_perms;
+
+corecmd_exec_bin(nagios_services_plugin_t)
+
+corenet_all_recvfrom_unlabeled(nagios_services_plugin_t)
+corenet_all_recvfrom_netlabel(nagios_services_plugin_t)
+corenet_tcp_sendrecv_generic_if(nagios_services_plugin_t)
+corenet_udp_sendrecv_generic_if(nagios_services_plugin_t)
+corenet_tcp_sendrecv_generic_node(nagios_services_plugin_t)
+corenet_udp_sendrecv_generic_node(nagios_services_plugin_t)
+corenet_udp_bind_generic_node(nagios_services_plugin_t)
+
+corenet_sendrecv_all_client_packets(nagios_services_plugin_t)
+corenet_tcp_connect_all_ports(nagios_services_plugin_t)
+corenet_tcp_sendrecv_all_ports(nagios_services_plugin_t)
+
+corenet_sendrecv_dhcpc_server_packets(nagios_services_plugin_t)
+corenet_udp_bind_dhcpc_port(nagios_services_plugin_t)
+corenet_udp_sendrecv_dhcpc_port(nagios_services_plugin_t)
+
+auth_use_nsswitch(nagios_services_plugin_t)
+
+domain_read_all_domains_state(nagios_services_plugin_t)
+logging_send_syslog_msg(nagios_services_plugin_t)
+
+optional_policy(`
+ netutils_domtrans_ping(nagios_services_plugin_t)
+ netutils_signal_ping(nagios_services_plugin_t)
+ netutils_kill_ping(nagios_services_plugin_t)
+')
+
+optional_policy(`
+ mysql_stream_connect(nagios_services_plugin_t)
+ mysql_read_config(nagios_services_plugin_t)
+')
+
+optional_policy(`
+ postgresql_stream_connect(nagios_services_plugin_t)
+')
+
+optional_policy(`
+ snmp_read_snmp_var_lib_files(nagios_services_plugin_t)
+')
+
+######################################
+#
+# System local policy
+#
+
+allow nagios_system_plugin_t self:capability { dac_read_search };
+dontaudit nagios_system_plugin_t self:capability { setgid setuid };
+
+allow nagios_system_plugin_t nrpe_exec_t:file read_file_perms;
+allow nagios_system_plugin_t nagios_exec_t:file read_file_perms;
+
+read_files_pattern(nagios_system_plugin_t, nagios_log_t, nagios_log_t)
+read_files_pattern(nagios_system_plugin_t, nagios_spool_t, nagios_spool_t)
+manage_files_pattern(nagios_system_plugin_t, nagios_system_plugin_tmp_t, nagios_system_plugin_tmp_t)
+manage_dirs_pattern(nagios_system_plugin_t, nagios_system_plugin_tmp_t, nagios_system_plugin_tmp_t)
+files_tmp_filetrans(nagios_system_plugin_t, nagios_system_plugin_tmp_t, { dir file })
+
+kernel_read_system_state(nagios_system_plugin_t)
+kernel_read_kernel_sysctls(nagios_system_plugin_t)
+
+corecmd_exec_bin(nagios_system_plugin_t)
+corecmd_exec_shell(nagios_system_plugin_t)
+corecmd_getattr_all_executables(nagios_system_plugin_t)
+
+dev_read_sysfs(nagios_system_plugin_t)
+
+domain_read_all_domains_state(nagios_system_plugin_t)
+
+fs_getattr_all_fs(nagios_system_plugin_t)
+
+auth_read_passwd(nagios_system_plugin_t)
+
+optional_policy(`
+ init_read_utmp(nagios_system_plugin_t)
+')
+
+optional_policy(`
+ mrtg_read_lib_files(nagios_system_plugin_t)
+')
+
+#######################################
+#
+# Event local policy
+#
+
+manage_files_pattern(nagios_eventhandler_plugin_t, nagios_eventhandler_plugin_tmp_t, nagios_eventhandler_plugin_tmp_t)
+manage_dirs_pattern(nagios_eventhandler_plugin_t, nagios_eventhandler_plugin_tmp_t, nagios_eventhandler_plugin_tmp_t)
+files_tmp_filetrans(nagios_eventhandler_plugin_t, nagios_eventhandler_plugin_tmp_t, { dir file })
+
+corecmd_exec_bin(nagios_eventhandler_plugin_t)
+corecmd_exec_shell(nagios_eventhandler_plugin_t)
+
+init_domtrans_script(nagios_eventhandler_plugin_t)
+
+systemd_exec_systemctl(nagios_eventhandler_plugin_t)
+
+allow nagios_t nagios_eventhandler_plugin_exec_t:dir list_dir_perms;
+
+optional_policy(`
+ unconfined_domain(nagios_eventhandler_plugin_t)
+')
+
+########################################
+#
+# nagios openshift plugin policy
+#
+
+allow nagios_openshift_plugin_t self:capability sys_ptrace;
+
+manage_dirs_pattern(nagios_openshift_plugin_t, nagios_openshift_plugin_tmp_t, nagios_openshift_plugin_tmp_t)
+manage_files_pattern(nagios_openshift_plugin_t, nagios_openshift_plugin_tmp_t, nagios_openshift_plugin_tmp_t)
+files_tmp_filetrans(nagios_openshift_plugin_t, nagios_openshift_plugin_tmp_t, { file dir })
+
+corecmd_exec_bin(nagios_openshift_plugin_t)
+corecmd_exec_shell(nagios_openshift_plugin_t)
+
+domain_read_all_domains_state(nagios_openshift_plugin_t)
+
+fs_getattr_all_fs(nagios_openshift_plugin_t)
+
+optional_policy(`
+ apache_read_config(nagios_openshift_plugin_t)
+')
+
+######################################
+#
+# nagios plugin domain policy
+#
+
+optional_policy(`
+ unconfined_domain(nagios_unconfined_plugin_t)
+')
+
+optional_policy(`
+ systemd_dbus_chat_logind(nagios_unconfined_plugin_t)
+')
diff --git a/nagios.tmpfiles.conf b/nagios.tmpfiles.conf
index 907ca68..4bb5bc3 100644
--- a/nagios.tmpfiles.conf
+++ b/nagios.tmpfiles.conf
@@ -1 +1 @@
-D /var/run/nagios 0755 nagios nagios -
+D /run/nagios 0755 nagios nagios -
diff --git a/sources b/sources
index ecf78f0..a618899 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (nagioscore-nagios-4.4.3.tar.gz) = 40933521eb76952ec31fc082f040f0863e45c30e8b53a257f3c7bacc7940fd1717955f3bf91b70c847725f9658751af72189d52e7d82f605d90446c0decd0246
+SHA512 (nagioscore-nagios-4.5.9.tar.gz) = 90bd71f772b6686b32fbe5f543468938f0dfc9c5bade1d41c27d63b1971d5000d16d6ca843b3eccab5550daa1bc649f16e8d68890052149126601a060ac9230d
diff --git a/tests/tests-DSP.yml b/tests/tests-DSP.yml
new file mode 100644
index 0000000..dd978d0
--- /dev/null
+++ b/tests/tests-DSP.yml
@@ -0,0 +1,41 @@
+- hosts: localhost
+
+ roles:
+ - role: standard-test-beakerlib
+ tags:
+ - classic
+ repositories:
+ - repo: https://pagure.io/DSP_test.git
+ dest: DSP_test
+ version: master
+
+ tests:
+ - DSP_test
+ environment:
+ # RPM package containing the policy module
+ TEST_RPM: nagios-selinux
+ # policy module name
+ TEST_POLICY: nagios
+ # policy sources will be extracted from corresponding .src.rpm
+ # policy tar filename regexp (e.g. "usbguard-selinux*.tar.gz")
+ # or empty string if policy sources are not inside a tar archive
+ POLICY_TAR: ''
+ # path to policy sources (in of the tar archive) -- //.(te|if|fc)
+ # or path in the src.rpm if there is no tar archive -- //.(te|if|fc)
+ # can contain wildcards (e.g. for versions etc.)
+ POLICY_PATH: .
+ # allow rules ignored by "Unsound/dangerous policy practices" test
+ IGNORE_RULES: >-
+ nagios_script_t:system_map_t:file
+ nagios_script_t:boot_t:dir
+
+ required_packages:
+ - policycoreutils
+ - selinux-policy
+ - selinux-policy-targeted
+ - setools-console
+ - libselinux-utils
+ - rpm
+ - tar
+ - git
+ - nagios-selinux