%define psadlogdir %{_localstatedir}/log/psad %define psadrundir %{_localstatedir}/run/psad %define psadvarlibdir %{_localstatedir}/lib/psad Summary: Port Scan Attack Detector (psad) watches for suspect traffic Name: psad Version: 2.1.7 Release: 6%{?dist} License: GPLv2+ Group: System Environment/Daemons Url: http://www.cipherdyne.org/psad/ Source: http://www.cipherdyne.org/psad/download/%name-%version.tar.bz2 Patch1: psad-2.1.2-initscript.patch Patch2: psad-2.1.7-archive.patch Patch3: psad-2.1.7-qw.patch Patch4: psad-2.1.7-tmp.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Requires: iptables Requires(post): chkconfig Requires(preun): chkconfig, initscripts Requires(postun): initscripts # The automatic dependency generator doesn't find this Requires: perl(IPTables::ChainMgr) Requires: perl(Net::IPv4Addr) Requires: perl(Date::Calc) Requires: perl(Unix::Syslog) %description Port Scan Attack Detector (psad) is a collection of three lightweight system daemons written in Perl and in C that are designed to work with Linux iptables firewalling code to detect port scans and other suspect traffic. It features a set of highly configurable danger thresholds (with sensible defaults provided), verbose alert messages that include the source, destination, scanned port range, begin and end times, tcp flags and corresponding nmap options, reverse DNS info, email and syslog alerting, automatic blocking of offending ip addresses via dynamic configuration of iptables rulesets, and passive operating system fingerprinting. In addition, psad incorporates many of the tcp, udp, and icmp signatures included in the snort intrusion detection system (http://www.snort.org) to detect highly suspect scans for various backdoor programs (e.g. EvilFTP, GirlFriend, SubSeven), DDoS tools (mstream, shaft), and advanced port scans (syn, fin, xmas) which are easily leveraged against a machine via nmap. psad can also alert on snort signatures that are logged via fwsnort (http://www.cipherdyne.org/fwsnort/), which makes use of the iptables string match module to detect application layer signatures. %prep %setup -q %patch1 -p1 -b .init %patch2 -p1 -b .archive %patch3 -p1 -b .qw %patch4 -p1 -b .tmp sed -i 's,_CHANGEME_,localhost,' psad.conf %build ### build psad binaries (kmsgsd and psadwatchd) make OPTS="$RPM_OPT_FLAGS" %{?_smp_mflags} ### build the whois client make OPTS="$RPM_OPT_FLAGS" -C deps/whois %install rm -rf $RPM_BUILD_ROOT ### log directory mkdir -p $RPM_BUILD_ROOT%psadlogdir ### dir for psadfifo mkdir -p $RPM_BUILD_ROOT%psadvarlibdir ### dir for pidfiles mkdir -p $RPM_BUILD_ROOT%psadrundir ### whois_psad binary mkdir -p $RPM_BUILD_ROOT%{_bindir} mkdir -p $RPM_BUILD_ROOT%{_mandir}/man8 mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1 mkdir -p $RPM_BUILD_ROOT%{_sbindir} ### psad config mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/%{name} ### psad init script mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d ### psad install -p -m 755 psad $RPM_BUILD_ROOT%{_sbindir}/ install -p -m 755 kmsgsd $RPM_BUILD_ROOT%{_sbindir}/ install -p -m 755 psadwatchd $RPM_BUILD_ROOT%{_sbindir}/ install -p -m 755 fwcheck_psad.pl $RPM_BUILD_ROOT%{_sbindir}/fwcheck_psad install -p -m 755 deps/whois/whois $RPM_BUILD_ROOT/%{_bindir}/whois_psad install -p -m 755 nf2csv $RPM_BUILD_ROOT/%{_bindir}/nf2csv install -p -m 755 init-scripts/psad-init.fedora $RPM_BUILD_ROOT/etc/rc.d/init.d/psad install -p -m 644 logrotate.psad $RPM_BUILD_ROOT/etc/logrotate.d/psad install -p -m 644 psad.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/ install -p -m 644 signatures $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/ install -p -m 644 icmp_types $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/ install -p -m 644 ip_options $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/ install -p -m 644 auto_dl $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/ install -p -m 644 snort_rule_dl $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/ install -p -m 644 pf.os $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/ install -p -m 644 posf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/ install -p -m 644 *.8 $RPM_BUILD_ROOT%{_mandir}/man8/ install -p -m 644 nf2csv.1 $RPM_BUILD_ROOT%{_mandir}/man1/ ### install snort rules files cp -r deps/snort_rules $RPM_BUILD_ROOT%{_sysconfdir}/%{name} %clean rm -rf $RPM_BUILD_ROOT %post /sbin/chkconfig --add psad %preun if [ $1 -eq 0 ]; then /sbin/service psad stop > /dev/null 2>&1 /sbin/chkconfig --del psad fi %postun if [ $1 -ge 1 ]; then /sbin/service psad condrestart >/dev/null 2>&1 || : fi %files %defattr(-,root,root) %doc BENCHMARK FW_HELP FW_EXAMPLE_RULES README README.SYSLOG SCAN_LOG %{_sbindir}/* %{_bindir}/* %{_mandir}/man1/* %{_mandir}/man8/* %{_initrddir}/psad %dir %{_sysconfdir}/%{name} %config(noreplace) %{_sysconfdir}/logrotate.d/psad %config(noreplace) %{_sysconfdir}/%{name}/*.conf %config(noreplace) %{_sysconfdir}/%{name}/signatures %config(noreplace) %{_sysconfdir}/%{name}/auto_dl %config(noreplace) %{_sysconfdir}/%{name}/ip_options %config(noreplace) %{_sysconfdir}/%{name}/snort_rule_dl %config(noreplace) %{_sysconfdir}/%{name}/posf %config(noreplace) %{_sysconfdir}/%{name}/pf.os %config(noreplace) %{_sysconfdir}/%{name}/icmp_types %dir %{_sysconfdir}/%{name}/snort_rules %config(noreplace) %{_sysconfdir}/%{name}/snort_rules/* %dir %psadlogdir %dir %psadvarlibdir %dir %psadrundir %changelog * Sat Jul 21 2012 Fedora Release Engineering - 2.1.7-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild * Tue Feb 07 2012 Peter Vrabec 2.1.7-5 - don't write to /tmp (#782527) * Thu Jan 19 2012 Peter Vrabec 2.1.7-4 - adjust qw() use to new perl (#771779) * Sat Jan 14 2012 Fedora Release Engineering - 2.1.7-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild * Wed Feb 09 2011 Fedora Release Engineering - 2.1.7-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild * Thu Nov 25 2010 Peter Vrabec 2.1.7-1 - upgrade * Tue Aug 11 2009 Ville Skyttä - 2.1.3-4 - Use bzipped upstream tarball. * Sun Jul 26 2009 Fedora Release Engineering - 2.1.3-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild * Thu Feb 26 2009 Fedora Release Engineering - 2.1.3-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild * Wed Aug 13 2008 Peter Vrabec 2.1.3-1 - some adjustments to meet fedora standartds * Sun Apr 27 2008 Steve Grubb 2.1.2-1 - Initial packaging