Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Herbster0815
fail2ban
fail2ban.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File fail2ban.spec of Package fail2ban
# # spec file for package fail2ban # # Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %{!?tmpfiles_create:%global tmpfiles_create systemd-tmpfiles --create} #Compat macro for new _fillupdir macro introduced in Nov 2017 %if ! %{defined _fillupdir} %define _fillupdir %{_localstatedir}/adm/fillup-templates %endif %define _python_version 3.12 %define _python_package 312 Name: fail2ban Version: 1.1.x Release: 0 Summary: Bans IP addresses that make too many authentication failures License: GPL-2.0-or-later Group: Productivity/Networking/Security URL: http://www.fail2ban.org/ Source0: https://github.com/fail2ban/fail2ban/archive/%{name}-%{version}.tar.xz Source2: %{name}.sysconfig Source3: %{name}.logrotate Source5: %{name}.tmpfiles Source6: sfw-fail2ban.conf Source7: f2b-restart.conf # Path definitions have been submitted to upstream Source8: paths-opensuse.conf # PATCH-FIX-OPENSUSE fail2ban-opensuse-locations.patch bnc#878028 jweberhofer@weberhofer.at -- update default locations for logfiles Patch100: %{name}-opensuse-locations.patch # PATCH-FIX-OPENSUSE fail2ban-opensuse-service.patch jweberhofer@weberhofer.at -- openSUSE modifications to the service file Patch101: %{name}-opensuse-service.patch # PATCH-FIX-OPENSUSE fail2ban-0.10.4-env-script-interpreter.patch jweberhofer@weberhofer.at -- use exact path to define interpretor Patch201: %{name}-0.10.4-env-script-interpreter.patch # PATCH-FEATURE-OPENSUSE harden_fail2ban.service.patch jsegitz@suse.com -- Added hardening to systemd service(s) bsc#1181400 Patch301: harden_fail2ban.service.patch BuildRequires: xz BuildRequires: fdupes BuildRequires: logrotate BuildRequires: python%{_python_package}-devel BuildRequires: python%{_python_package}-setuptools BuildRequires: python%{_python_package}-systemd BuildRequires: python-rpm-macros BuildRequires: pkgconfig(systemd) BuildRequires: timezone Requires: cron Requires: ed Requires: iptables Requires: logrotate Requires: python3 >= 3.2 Requires: whois %if 0%{?suse_version} != 1110 BuildArch: noarch %endif Requires: python%{_python_package}-systemd Requires: systemd > 204 %{?systemd_requires} %if 0%{?suse_version} >= 1140 && 0%{?suse_version} != 1010 && 0%{?suse_version} != 1110 && 0%{?suse_version} != 1315 BuildRequires: python3-pyinotify >= 0.8.3 Requires: python3-pyinotify >= 0.8.3 %endif %description Fail2ban scans log files like %{_localstatedir}/log/messages and bans IP addresses that makes too many password failures. It updates firewall rules to reject the IP address, can send e-mails, or set host.deny entries. These rules can be defined by the user. Fail2Ban can read multiple log files such as sshd or Apache web server ones. %if !0%{?suse_version} > 1500 %package -n SuSEfirewall2-%{name} Summary: Files for integrating fail2ban into SuSEfirewall2 via systemd Group: Productivity/Networking/Security Requires: SuSEfirewall2 Requires: fail2ban %description -n SuSEfirewall2-%{name} This package ships systemd files which will cause fail2ban to be ordered in relation to SuSEfirewall2 such that the two can be run concurrently within reason, i.e. SFW will always run first because it does a table flush. %endif %package -n monitoring-plugins-%{name} %define nagios_plugindir %{_libexecdir}/nagios/plugins Summary: Check fail2ban server and how many IPs are currently banned Group: System/Monitoring Provides: nagios-plugins-%{name} = %{version} Obsoletes: nagios-plugins-%{name} < %{version} %description -n monitoring-plugins-%{name} This plugin checks if the fail2ban server is running and how many IPs are currently banned. You can use this plugin to monitor all the jails or just a specific jail. How to use ---------- Just have to run the following command: $ ./check_fail2ban --help %prep %autosetup -p1 install -m644 %{SOURCE8} config/paths-opensuse.conf # Use openSUSE paths sed -i -e 's/^before = paths-.*/before = paths-opensuse.conf/' config/jail.conf rm config/paths-arch.conf \ config/paths-debian.conf \ config/paths-fedora.conf \ config/paths-freebsd.conf \ config/paths-osx.conf # correct doc-path sed -i -e 's|%{_datadir}/doc/%{name}|%{_docdir}/%{name}|' setup.py # remove syslogd-logger settings for older distributions %if 0%{?suse_version} < 1230 sed -i -e 's|^\([^_]*_backend = systemd\)|#\1|' config/paths-opensuse.conf %endif %build PYTHON=%{_bindir}/python%{_python_version} export CFLAGS="%{optflags}" $PYTHON setup.py build gzip man/*.{1,5} %install PYTHON=%{_bindir}/python%{_python_version} $PYTHON setup.py install \ --root=%{buildroot} \ --prefix=%{_prefix} install -d -m 755 %{buildroot}%{_mandir}/man{1,5} install -p -m 644 man/fail2ban-*.1.gz %{buildroot}%{_mandir}/man1 install -p -m 644 man/jail.conf.5.gz %{buildroot}%{_mandir}/man5 install -d -m 755 %{buildroot}%{_sbindir} # use /run directory install -d -m 755 %{buildroot}/run touch %{buildroot}/run/%{name} # systemd install -d -m 755 %{buildroot}%{_unitdir} install -p -m 644 files/%{name}.service.in %{buildroot}%{_unitdir}/%{name}.service ln -sf service %{buildroot}%{_sbindir}/rc%{name} install -d -m 755 %{buildroot}%{_tmpfilesdir} install -p -m 644 %{SOURCE5} %{buildroot}%{_tmpfilesdir}/%{name}.conf echo "# Do all your modifications to the jail's configuration in jail.local!" > %{buildroot}%{_sysconfdir}/%{name}/jail.local install -d -m 0755 %{buildroot}%{_localstatedir}/lib/%{name}/ install -d -m 755 %{buildroot}%{_fillupdir} install -p -m 644 %{SOURCE2} %{buildroot}%{_fillupdir}/sysconfig.%{name} install -d -m 755 %{buildroot}%{_sysconfdir}/logrotate.d install -p -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/logrotate.d/%{name} %if !0%{?suse_version} > 1500 %if 0%{?_unitdir:1} install -Dm 0644 "%{_sourcedir}/sfw-fail2ban.conf" \ "%{buildroot}%{_unitdir}/SuSEfirewall2.service.d/fail2ban.conf" install -D -m 0644 "%{_sourcedir}/f2b-restart.conf" \ "%{buildroot}%{_unitdir}/fail2ban.service.d/SuSEfirewall2.conf" %endif %endif install -D -m 755 files/nagios/check_fail2ban %{buildroot}%{nagios_plugindir}/check_%{name} # install docs using the macro rm -r %{buildroot}%{_docdir}/%{name} # remove duplicates %fdupes -s %{buildroot}/usr/lib/python%{_python_version}/site-packages/ %check #stat /dev/log #python -c "import platform; print(platform.system())" # tests require python-pyinotify to be installed, so don't run them on older versions %if 0%{?suse_version} >= 1140 && 0%{?suse_version} != 1010 && 0%{?suse_version} != 1110 && 0%{?suse_version} != 1315 # Need a UTF-8 locale to work export LANG=en_US.UTF-8 ./fail2ban-testcases-all --no-network || true %endif %pre %if 0%{?suse_version} >= 1230 %service_add_pre %{name}.service %endif %post %fillup_only %if 0%{?suse_version} >= 1230 %tmpfiles_create %{_tmpfilesdir}/%{name}.conf # The next line is not workin in Leap 42.1, so keep the old way #%%tmpfiles_create %%{_tmpfilesdir}/%%{name}.conf %service_add_post %{name}.service %endif %preun %if 0%{?suse_version} >= 1230 %service_del_preun %{name}.service %else %stop_on_removal %{name} %endif %postun %if 0%{?suse_version} >= 1230 %service_del_postun %{name}.service %else %restart_on_update %{name} %insserv_cleanup %endif %if !0%{?suse_version} > 1500 %if 0%{?_unitdir:1} %post -n SuSEfirewall2-%{name} %{_bindir}/systemctl daemon-reload >/dev/null 2>&1 || : %postun -n SuSEfirewall2-%{name} %{_bindir}/systemctl daemon-reload >/dev/null 2>&1 || : %endif %endif %files %defattr(-, root, root) %dir %{_sysconfdir}/%{name} %dir %{_sysconfdir}/%{name}/action.d %dir %{_sysconfdir}/%{name}/%{name}.d %dir %{_sysconfdir}/%{name}/filter.d %dir %{_sysconfdir}/%{name}/jail.d # %config %{_sysconfdir}/%{name}/action.d/* %config %{_sysconfdir}/%{name}/filter.d/* # %config(noreplace) %{_sysconfdir}/%{name}/%{name}.conf %config %{_sysconfdir}/%{name}/jail.conf %config %{_sysconfdir}/%{name}/paths-common.conf %config %{_sysconfdir}/%{name}/paths-opensuse.conf # %config(noreplace) %{_sysconfdir}/%{name}/jail.local # %config %{_sysconfdir}/logrotate.d/%{name} %dir %{_localstatedir}/lib/%{name}/ %if 0%{?suse_version} > 1310 # use /run directory %ghost /run/%{name} %else # use /var/run directory %dir %ghost %{_localstatedir}/run/%{name} %endif %if 0%{?suse_version} >= 1230 # systemd %{_unitdir}/%{name}.service %{_tmpfilesdir}/%{name}.conf %else # without-systemd %{_initddir}/%{name} %endif %{_sbindir}/rc%{name} %{_bindir}/%{name}-server %{_bindir}/%{name}-client %{_bindir}/%{name}-python %{_bindir}/%{name}-regex /usr/lib/python%{_python_version}/site-packages/%{name} %exclude /usr/lib/python%{_python_version}/site-packages/%{name}/tests /usr/lib/python%{_python_version}/site-packages/%{name}-* %{_fillupdir}/sysconfig.%{name} %{_mandir}/man1/* %{_mandir}/man5/* %license COPYING %doc README.md TODO ChangeLog doc/*.txt # do not include tests as they are executed during the build process %exclude %{_bindir}/%{name}-testcases %exclude /usr/lib/python%{_python_version}/site-packages/%{name}/tests %if !0%{?suse_version} > 1500 %if 0%{?_unitdir:1} %files -n SuSEfirewall2-%{name} %defattr(-,root,root) %{_unitdir}/SuSEfirewall2.service.d %{_unitdir}/%{name}.service.d %endif %endif %files -n monitoring-plugins-%{name} %defattr(-,root,root) %license COPYING %doc files/nagios/README %dir %{_libexecdir}/nagios %dir %{nagios_plugindir} %{nagios_plugindir}/check_%{name} %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor