diff --git a/.gitignore b/.gitignore index 3ac2d64..9e2513d 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,9 @@ nagios-3.2.1.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-0010-remove-information-leak.patch b/nagios-0010-remove-information-leak.patch index b417e5b..cd3b400 100644 --- a/nagios-0010-remove-information-leak.patch +++ b/nagios-0010-remove-information-leak.patch @@ -32,7 +32,7 @@ diff -up ./cgi/extinfo.c.remove_3rdparty_links ./cgi/extinfo.c 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 -@@ -555,31 +555,8 @@ void document_header(int use_stylesheet) +@@ -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 401cad0..4e4bc1d 100644 --- a/nagios-0011-remove-rpmbuild.patch +++ b/nagios-0011-remove-rpmbuild.patch @@ -8,7 +8,7 @@ index 72e4d4a9..62415152 100644 $(CC) $(CFLAGS) $(LDFLAGS) $< $(CGI_O) -o $@ - -############################################################################## --# making similiar EPEL rpm for Fedora/RHEL/CentOS +-# making similar EPEL rpm for Fedora/RHEL/CentOS - -ifneq ("$(wildcard /etc/redhat-release)","") - diff --git a/nagios.if b/nagios.if index d012e9b..13a034d 100644 --- a/nagios.if +++ b/nagios.if @@ -334,3 +334,34 @@ interface(`nagios_unconfined_signull',` 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 0c9d2b8..f945ac9 100644 --- a/nagios.spec +++ b/nagios.spec @@ -1,16 +1,17 @@ -# Set bootstrap = 1 to build without depending on plugins for localhost monitoring -%global bootstrap 0 +# 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.6 -Release: 4%{?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 @@ -45,7 +46,6 @@ Patch11: nagios-0011-remove-rpmbuild.patch Patch12: nagios-0012-fix-spool.patch Patch13: nagios-0013-fix-plugin.patch Patch14: nagios-0014-fix-uidgid.patch -Patch15: %{name}-0015-Changelog.patch BuildRequires: make BuildRequires: doxygen @@ -65,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 @@ -72,21 +73,15 @@ BuildRequires: libtool # For selinux tools BuildRequires: checkpolicy, selinux-policy-devel -%if 0%{?rhel} > 6 || 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 ! 0%{?bootstrap} +%if %{without bootstrap} Requires: nagios-plugins-ping Requires: nagios-plugins-load Requires: nagios-plugins-users @@ -131,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) @@ -161,7 +155,6 @@ may compile against. # SELinux subpackage %package selinux Summary: SELinux context for %{name} -Requires: %{name} = %{version}-%{release} BuildArch: noarch Requires: selinux-policy-%{selinuxtype} Requires(post): selinux-policy-%{selinuxtype} @@ -191,6 +184,11 @@ Various contributed items used by plugins and other tools. install -p -m 0644 %{SOURCE10} %{SOURCE11} %{SOURCE12} html/images/logos/ +# Create a sysusers.d config file +cat >nagios.sysusers.conf < 6 || 0%{?fedora} > 20 @@ -302,15 +303,17 @@ 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 + %endif ### CONTRIB ITEMS TAKEN FROM UPSTREAM NAGIOS SPEC @@ -328,10 +331,11 @@ 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 @@ -419,9 +423,11 @@ fi %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%{?rhel} > 6 || 0%{?fedora} > 20 @@ -440,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} @@ -452,6 +458,7 @@ 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 @@ -462,7 +469,8 @@ fi %files selinux %doc README.SELinux.rst %{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.* -%ghost %{_sharedstatedir}/selinux/%{selinuxtype}/active/modules/200/%{name} +%{_datadir}/selinux/devel/include/distributed/%{name}.if +%ghost %verify(not md5 size mode mtime) %{_sharedstatedir}/selinux/%{selinuxtype}/active/modules/200/%{name} %endif @@ -472,9 +480,79 @@ fi %{_libdir}/%{name}/cgi/ %changelog -* Wed Mar 03 2021 Guido Aulisi - 4.4.6-4 -- Add missing require for nagios-plugins-ping -- Fix run path +* 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) @@ -487,6 +565,9 @@ fi - 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 diff --git a/nagios.te b/nagios.te index 60c9803..b86a8dd 100644 --- a/nagios.te +++ b/nagios.te @@ -94,7 +94,7 @@ files_pid_file(nrpe_var_run_t) allow nagios_plugin_domain self:fifo_file rw_fifo_file_perms; -allow nrpe_t nagios_plugin_domain:process { signal sigkill }; +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; @@ -127,7 +127,7 @@ 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 { read_file_perms map }; +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; @@ -206,7 +206,7 @@ mta_kill_system_mail(nagios_t) systemd_exec_systemctl(nagios_t) tunable_policy(`nagios_run_sudo',` - allow nagios_t self:capability { chown setuid setgid sys_resource sys_ptrace }; + 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; @@ -316,13 +316,13 @@ optional_policy(` # Nrpe local policy # -allow nrpe_t self:capability { setuid setgid kill }; -dontaudit nrpe_t self:capability { sys_tty_config sys_resource }; -allow nrpe_t self:process { setpgid signal_perms setsched setrlimit }; +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 { signal sigkill }; +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) @@ -372,7 +372,7 @@ logging_send_syslog_msg(nrpe_t) userdom_dontaudit_use_unpriv_user_fds(nrpe_t) tunable_policy(`nagios_run_sudo',` - allow nrpe_t self:capability { setuid setgid sys_resource sys_ptrace }; + allow nrpe_t self:capability { setgid setuid sys_ptrace sys_resource }; allow nrpe_t self:process { setrlimit setsched }; allow nrpe_t self:key write; @@ -390,7 +390,6 @@ tunable_policy(`nagios_run_sudo',` systemd_write_inherited_logind_sessions_pipes(nrpe_t) systemd_dbus_chat_logind(nrpe_t) - systemd_logind_read_state(nrpe_t) logging_send_audit_msgs(nrpe_t) ') @@ -468,7 +467,7 @@ files_getattr_all_file_type_fs(nagios_admin_plugin_t) # Mail local policy # -allow nagios_mail_plugin_t self:capability { setuid setgid dac_read_search }; +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; @@ -521,8 +520,8 @@ storage_raw_read_fixed_disk(nagios_checkdisk_plugin_t) # Services local policy # -allow nagios_services_plugin_t self:capability { setuid net_bind_service net_raw }; -allow nagios_services_plugin_t self:process { signal sigkill }; +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; @@ -576,7 +575,7 @@ optional_policy(` # allow nagios_system_plugin_t self:capability { dac_read_search }; -dontaudit nagios_system_plugin_t self:capability { setuid setgid }; +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; diff --git a/sources b/sources index 8d9f3c3..a618899 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nagioscore-nagios-4.4.6.tar.gz) = db3a205f1675693301c059b0ecdc767cdc423923cff0729c5584a48e04fb18d6c119d51991dd24290a539eb8578b2cb82316275039b36827871bb028883b495f +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