2334e9c6fe4464151f8fe74605821c59fa3edf17
[psad.git] / packaging / psad-nodeps.spec
1 %define name psad
2 %define version 2.2
3 %define release 1
4 %define psadlogdir /var/log/psad
5 %define psadrundir /var/run/psad
6 %define psadvarlibdir /var/lib/psad
7
8 Summary: psad analyzes iptables log messages for suspect traffic
9 Name: %name
10 Version: %version
11 Release: %release
12 License: GPL
13 Group: Applications/Internet
14 Url: http://www.cipherdyne.org/psad/
15 Source: %name-%version.tar.gz
16 BuildRoot: %_tmppath/%{name}-buildroot
17 Requires: iptables
18 #Prereq: rpm-helper
19
20 %description
21 Port Scan Attack Detector (psad) is a collection of three lightweight
22 system daemons written in Perl and in C that are designed to work with Linux
23 iptables firewalling code to detect port scans and other suspect traffic.  It
24 features a set of highly configurable danger thresholds (with sensible
25 defaults provided), verbose alert messages that include the source,
26 destination, scanned port range, begin and end times, tcp flags and
27 corresponding nmap options, reverse DNS info, email and syslog alerting,
28 automatic blocking of offending ip addresses via dynamic configuration of
29 iptables rulesets, and passive operating system fingerprinting.  In addition,
30 psad incorporates many of the tcp, udp, and icmp signatures included in the
31 snort intrusion detection system (http://www.snort.org) to detect highly
32 suspect scans for various backdoor programs (e.g. EvilFTP, GirlFriend,
33 SubSeven), DDoS tools (mstream, shaft), and advanced port scans (syn, fin,
34 xmas) which are easily leveraged against a machine via nmap.  psad can also
35 alert on snort signatures that are logged via fwsnort
36 (http://www.cipherdyne.org/fwsnort/), which makes use of the
37 iptables string match module to detect application layer signatures.
38
39
40 %prep
41 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
42
43 %setup -q
44
45 %build
46 ### build psad binaries (kmsgsd and psadwatchd)
47 make OPTS="$RPM_OPT_FLAGS"
48
49 %install
50 ### config directory
51 #mkdir -p $RPM_BUILD_ROOT%psadetcdir
52 ### log directory
53 mkdir -p $RPM_BUILD_ROOT%psadlogdir
54 ### dir for psadfifo
55 mkdir -p $RPM_BUILD_ROOT%psadvarlibdir
56 ### dir for pidfiles
57 mkdir -p $RPM_BUILD_ROOT%psadrundir
58
59 mkdir -p $RPM_BUILD_ROOT%_bindir
60 mkdir -p $RPM_BUILD_ROOT%{_mandir}/man8
61 mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1
62 mkdir -p $RPM_BUILD_ROOT%_sbindir
63 ### psad config
64 mkdir -p $RPM_BUILD_ROOT%_sysconfdir/%name
65 ### psad init script
66 mkdir -p $RPM_BUILD_ROOT%_initrddir
67
68 ### the 700 permissions mode is fixed in the
69 ### %post phase
70 install -m 700 psad $RPM_BUILD_ROOT%_sbindir/
71 install -m 700 kmsgsd $RPM_BUILD_ROOT%_sbindir/
72 install -m 700 psadwatchd $RPM_BUILD_ROOT%_sbindir/
73 install -m 500 fwcheck_psad.pl $RPM_BUILD_ROOT%_sbindir/fwcheck_psad
74 install -m 755 nf2csv $RPM_BUILD_ROOT/usr/bin/nf2csv
75 install -m 755 init-scripts/psad-init.redhat $RPM_BUILD_ROOT%_initrddir/psad
76 install -m 644 psad.conf $RPM_BUILD_ROOT%_sysconfdir/%name/
77 install -m 644 signatures $RPM_BUILD_ROOT%_sysconfdir/%name/
78 install -m 644 icmp_types $RPM_BUILD_ROOT%_sysconfdir/%name/
79 install -m 644 icmp6_types $RPM_BUILD_ROOT%_sysconfdir/%name/
80 install -m 644 ip_options $RPM_BUILD_ROOT%_sysconfdir/%name/
81 install -m 644 auto_dl $RPM_BUILD_ROOT%_sysconfdir/%name/
82 install -m 644 snort_rule_dl $RPM_BUILD_ROOT%_sysconfdir/%name/
83 install -m 644 pf.os $RPM_BUILD_ROOT%_sysconfdir/%name/
84 install -m 644 posf $RPM_BUILD_ROOT%_sysconfdir/%name/
85 install -m 644 *.8 $RPM_BUILD_ROOT%{_mandir}/man8/
86 install -m 644 nf2csv.1 $RPM_BUILD_ROOT%{_mandir}/man1/
87
88 %clean
89 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
90
91 %pre
92 #if [ ! -p /var/lib/psad/psadfifo ];
93 #then [ -e /var/lib/psad/psadfifo ] && /bin/rm -f /var/lib/psad/psadfifo
94 #fi
95 #/bin/mknod -m 600 /var/lib/psad/psadfifo p
96 #chown root.root /var/lib/psad/psadfifo
97 #chmod 0600 /var/lib/psad/psadfifo
98
99 %post
100 ### put the current hostname into the psad C binaries
101 ### (kmsgsd and psadwatchd).
102 perl -p -i -e 'use Sys::Hostname; my $hostname = hostname(); s/HOSTNAME(\s+)_?CHANGE.?ME_?/HOSTNAME${1}$hostname/' %_sysconfdir/%name/psad.conf
103 perl -p -i -e 'use Sys::Hostname; my $hostname = hostname(); s/HOSTNAME(\s+)_?CHANGE.?ME_?/HOSTNAME${1}$hostname/' %_sysconfdir/%name/psadwatchd.conf
104
105 /bin/touch %psadlogdir/fwdata
106 chown root.root %psadlogdir/fwdata
107 chmod 0500 %_sbindir/psad
108 chmod 0500 %_sbindir/kmsgsd
109 chmod 0500 %_sbindir/psadwatchd
110 chmod 0600 %psadlogdir/fwdata
111 if [ ! -p %psadvarlibdir/psadfifo ];
112 then [ -e %psadvarlibdir/psadfifo ] && /bin/rm -f %psadvarlibdir/psadfifo
113 /bin/mknod -m 600 %psadvarlibdir/psadfifo p
114 fi
115 chown root.root %psadvarlibdir/psadfifo
116 chmod 0600 %psadvarlibdir/psadfifo
117 ### make psad start at boot
118 /sbin/chkconfig --add psad
119 if grep -q "EMAIL.*root.*localhost" /etc/psad/psad.conf;
120 then
121 echo "[+] You can edit the EMAIL_ADDRESSES variable in /etc/psad/psad.conf"
122 echo "    /etc/psad/psadwatchd.conf to have email alerts sent to an address"
123 echo "    other than root\@localhost"
124 fi
125
126 if grep -q "HOME_NET.*CHANGEME" /etc/psad/psad.conf;
127 then
128 echo "[+] Be sure to edit the HOME_NET variable in /etc/psad/psad.conf"
129 echo "    to define the internal network(s) attached to your machine."
130 fi
131
132 %preun
133 #%_preun_service psad
134
135 %files
136 %defattr(-,root,root)
137 %dir %psadlogdir
138 %dir %psadvarlibdir
139 %dir %psadrundir
140 %_initrddir/*
141 %_sbindir/*
142 %_bindir/*
143 %{_mandir}/man8/*
144 %{_mandir}/man1/*
145
146 %dir %_sysconfdir/%name
147 %config(noreplace) %_sysconfdir/%name/*.conf
148 %config(noreplace) %_sysconfdir/%name/signatures
149 %config(noreplace) %_sysconfdir/%name/auto_dl
150 %config(noreplace) %_sysconfdir/%name/ip_options
151 %config(noreplace) %_sysconfdir/%name/snort_rule_dl
152 %config(noreplace) %_sysconfdir/%name/posf
153 %config(noreplace) %_sysconfdir/%name/pf.os
154 %config(noreplace) %_sysconfdir/%name/icmp_types
155 %config(noreplace) %_sysconfdir/%name/icmp6_types
156
157 %changelog
158 * Wed Apr 18 2012 Michael Rash <mbr@cipherdyne.org>
159 - Update to use the NetAddr::IP module for all IP/subnet calculations
160 - psad-2.2 release
161
162 * Wed Jul 14 2010 Michael Rash <mbr@cipherdyne.org>
163 - psad-2.1.7 release
164
165 * Fri Jul 09 2010 Michael Rash <mbr@cipherdyne.org>
166 - psad-2.1.6 release
167
168 * Fri Feb 20 2009 Michael Rash <mbr@cipherdyne.org>
169 - psad-2.1.5 release
170
171 * Sun Aug 21 2008 Michael Rash <mbr@cipherdyne.org>
172 - This spec file omits installing any perl modules that psad depends upon.
173 - psad-2.1.4 release
174
175 * Sat Jun 07 2008 Michael Rash <mbr@cipherdyne.org>
176 - psad-2.1.3 release
177
178 * Thu Apr 03 2008 Michael Rash <mbr@cipherdyne.org>
179 - psad-2.1.2 release
180
181 * Fri Jan 25 2008 Michael Rash <mbr@cipherdyne.org>
182 - psad-2.1.1 release
183
184 * Fri Oct 19 2007 Michael Rash <mbr@cipherdyne.org>
185 - psad-2.1 release
186
187 * Mon Jul 27 2007 Michael Rash <mbr@cipherdyne.org>
188 - psad-2.0.8 release
189
190 * Mon May 28 2007 Michael Rash <mbr@cipherdyne.org>
191 - psad-2.0.7 release
192
193 * Fri Mar 24 2007 Michael Rash <mbr@cipherdyne.org>
194 - psad-2.0.6 release
195
196 * Thu Mar 01 2007 Michael Rash <mbr@cipherdyne.org>
197 - psad-2.0.5 release
198 - Removed all config files except for psad.conf since the psad daemons now all
199   reference the same config file (psad.conf).
200
201 * Sat Jan 27 2007 Michael Rash <mbr@cipherdyne.org>
202 - psad-2.0.4 release
203
204 * Sun Dec 31 2006 Michael Rash <mbr@cipherdyne.org>
205 - psad-2.0.3 release
206 - Removed Psad.pm perl module and kmsgsd.pl and psadwatchd.pl scripts.  This
207   is a major change that allows psad to be more flexible and completely derive
208   its config from the psad.conf file and from the command line.  In the
209   previous scheme, psad imported its config with a function within Psad.pm,
210   and this required that psad imported the Psad perl module before reading its
211   config.  A consequence is that the PSAD_LIBS_DIR var could not be specified
212   usefully within the config file.
213
214 * Sat Dec 23 2006 Michael Rash <mbr@cipherdyne.org>
215 - psad-2.0.2 release
216
217 * Mon Dec 12 2006 Michael Rash <mbr@cipherdyne.org>
218 - psad-2.0.1 release
219
220 * Sun Dec 10 2006 Michael Rash <mbr@cipherdyne.org>
221 - psad-2.0 release.
222 - Added ip_options file for the Snort ipopts rule keyword.
223 - Added nf2csv so that normal users can get CSV output from
224   iptables log messages.
225
226 * Sun Oct 15 2006 Michael Rash <mbr@cipherdyne.org>
227 - psad-1.4.8 release.
228
229 * Sun Sep 10 2006 Michael Rash <mbr@cipherdyne.org>
230 - psad-1.4.7 release.
231
232 * Sat Sep 02 2006 Michael Rash <mbr@cipherdyne.org>
233 - Added updates from Mate Wierdl to get psad RPM building on x86_64
234   platforms.
235
236 * Tue Jun 13 2006 Michael Rash <mbr@cipherdyne.org>
237 - Added installation of snort_rule_dl file.
238 - psad-1.4.6 release.
239
240 * Fri Jan 13 2006 Michael Rash <mbr@cipherdyne.org>
241 - psad-1.4.5 release.
242
243 * Sun Nov 27 2005 Michael Rash <mbr@cipherdyne.org>
244 - psad-1.4.4 release.
245
246 * Tue Nov 22 2005 Michael Rash <mbr@cipherdyne.org>
247 - Removed smtpdaemon dependency since psad can be run without sending
248   email alerts by configuring /etc/psad/alert.conf appropriately.
249
250 * Tue Jul 12 2005 Michael Rash <mbr@cipherdyne.org>
251 - Updated to only update syslog.conf if it actually exists. psad
252   is now comptable with other syslog daemons, and also with ulogd.
253
254 * Thu Mar 10 2005 Michael Rash <mbr@cipherdyne.org>
255 - Updated to new IPTables-Parse and IPTables-ChainMgr modules.
256 - psad-1.4.1 release.
257
258 * Fri Nov 26 2004 Michael Rash <mbr@cipherdyne.org>
259 - Added ps.os file.
260 - psad-1.4.0 release.
261
262 * Sun Oct 17 2004 Michael Rash <mbr@cipherdyne.org>
263 - psad-1.3.4 release.
264
265 * Sat Sep 25 2004 Michael Rash <mbr@cipherdyne.org>
266 - Added Bit::Vector back since not having it causes dependency
267   problems with Date::Calc even though psad does not require any
268   Date::Calc functions that require Bit::Vector functions.
269
270 * Mon Sep 06 2004 Michael Rash <mbr@cipherdyne.org>
271 - Updated to psad-1.3.3.
272 - Fixed path to psad-init.redhat (Mate Wierdl)
273
274 * Thu Jun 24 2004 Michael Rash <mbr@cipherdyne.org>
275 - Updated to psad-1.3.2 (added fwcheck_psad.pl and fw_search.conf
276   installation).
277
278 * Mon Oct 14 2003 Michael Rash <mbr@cipherdyne.org>
279 - Removed ipchains text from description.
280 - Added test and config warning message for HOME_NET variable.
281 - Updated to version 1.3
282
283 * Mon Oct 14 2003 Michael Rash <mbr@cipherdyne.org>
284 - Removed diskmond since psad handles disk space thresholds
285   directly.
286
287 * Sat Oct 11 2003 Michael Rash <mbr@cipherdyne.org>
288 - Updated spec file to build properly on both Red Hat 7.2 and
289   Red Hat 9 systems.
290
291 * Tue Sep 23 2003 Lenny Cartier <lenny@mandrakesoft.com> 1.2.3-1mdk
292 - mandrakized specfile
293
294 * Fri Sep 12 2003 Michael Rash <mbr@cipherdyne.org>
295 - Added interface tracking for scans.
296 - Bugfix for not opening /etc/hosts.deny the right way in
297   tcpwr_block().
298 - Bugfix for psadfifo path in syslog-ng config.
299 - Better format for summary stats section in email alerts.
300 - Bugfix for INIT_DIR path on non-RedHat systems.
301 - Bugfix for gzip path.
302 - Make Psad.pm installed last of all perl modules installed
303   by psad.
304 - Added additional call to incr_syscall_ctr() in psadwatchd.c
305
306 * Mon Jul 28 2003 Michael Rash <mbr@cipherdyne.org>
307 - Initial version.