09942efbec5a1c7e49e73538abcd535c69b13116
[fwknop.git] / fwknop.spec
1 %define _prefix /usr
2 %define _bindir /usr/bin
3 %define _sbindir /usr/sbin
4 %define _includedir /usr/include
5 %ifarch x86_64
6 %define _libdir /usr/lib64
7 %else
8 %define _libdir /usr/lib
9 %endif
10 %define _sysconfdir /etc
11 %define _localstatedir /var
12 %define _infodir /usr/share/info
13 %define _mandir /usr/share/man
14
15 Name:           fwknop
16 Version:        2.0.2
17 Epoch:      1
18 Release:        1%{?dist}
19 Summary:        Firewall Knock Operator client.  An implementation of Single Packet Authorization.
20
21 Group:          Applications/Internet
22 License:        GPL
23 URL:            http://www.cipherdyne.org/fwknop/
24 Source0:        fwknop-%{version}.tar.gz
25 BuildRoot:      %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
26
27 BuildRequires:  gpg, gpgme-devel, libpcap-devel, gdbm-devel, iptables
28
29 Requires:       libfko, iptables
30
31
32 %package -n libfko
33 Version:        0.0.3
34 Summary:        The fwknop library
35 Group:          Development/Libraries
36 Requires:   gpg, gpgme
37
38 %package -n libfko-devel
39 Version:        0.0.3
40 Summary:        The fwknop library header and API docs
41 Group:          Development/Libraries
42 Requires:       libfko
43
44 %package server
45 Summary:        The Firewall Knock Operator server.  An implementation of Single Packet Authorization.
46 Group:          System Environment/Daemons
47 Requires:       libfko, libpcap, gdbm, iptables
48
49
50 %description
51 Fwknop implements an authorization scheme known as Single Packet Authorization
52 (SPA) for Linux systems running iptables.  This mechanism requires only a
53 single encrypted and non-replayed packet to communicate various pieces of
54 information including desired access through an iptables policy. The main
55 application of this program is to use iptables in a default-drop stance to
56 protect services such as SSH with an additional layer of security in order
57 to make the exploitation of vulnerabilities (both 0-day and unpatched code)
58 much more difficult.
59
60 %description -n libfko
61 The Firewall Knock Operator library, libfko, provides the Single Packet
62 Authorization implementation and API for the other fwknop components.
63
64 %description -n libfko-devel
65 This is the libfko development header and API documentation.
66
67 %description server
68 The Firewall Knock Operator server component for the FireWall Knock Operator,
69 and is responsible for monitoring Single Packet Authorization (SPA) packets
70 that are generated by fwknop clients, modifying a firewall or acl policy to
71 allow the desired access after decrypting a valid SPA packet, and removing
72 access after a configurable timeout.
73
74 %prep
75 %setup -q
76
77
78 %build
79 ./configure \
80     --prefix=%{_prefix} \
81     --sysconfdir=%{_sysconfdir} \
82     --localstatedir=%{_localstatedir} \
83     --libdir=%{_libdir} \
84     --with-gpgme
85
86 make %{?_smp_mflags}
87
88 %install
89 rm -rf $RPM_BUILD_ROOT
90 make install DESTDIR=$RPM_BUILD_ROOT
91 install -D ./extras/fwknop.init.redhat ${RPM_BUILD_ROOT}/etc/rc.d/init.d/fwknopd
92 # Just in case...
93 [ -d "${RPM_BUILD_ROOT}/usr/share/info" ] \
94     || mkdir -p ${RPM_BUILD_ROOT}/usr/share/info
95 [ -f "${RPM_BUILD_ROOT}/usr/share/info/dir" ] \
96     || touch ${RPM_BUILD_ROOT}/usr/share/info/dir
97
98 %clean
99 rm -rf $RPM_BUILD_ROOT
100
101 %post -n libfko-devel
102 /sbin/ldconfig
103 /sbin/install-info %{_infodir}/libfko.info* %{_infodir}/dir
104
105 %post -n fwknop-server
106 /sbin/chkconfig --add fwknopd
107 /sbin/chkconfig fwknopd off
108
109 %preun -n fwknop-server
110 /sbin/chkconfig --del fwknopd
111
112 %preun -n libfko-devel
113 if [ "$1" = 0 ]; then
114  /sbin/install-info --delete %{_infodir}/libfko.info* %{_infodir}/dir
115 fi
116
117 %postun -n libfko
118 /sbin/ldconfig
119
120 %files
121 %defattr(-,root,root,-)
122 %attr(0755,root,root) %{_bindir}/fwknop
123 %attr(0644,root,root) %{_mandir}/man8/fwknop.8*
124 %exclude %{_infodir}/dir
125
126 %files -n libfko
127 %defattr(-,root,root,-)
128 %attr(0644,root,root) %{_libdir}/libfko.*
129
130 %files -n libfko-devel
131 %defattr(-,root,root,-)
132 %attr(0644,root,root) %{_includedir}/fko.h
133 %attr(0644,root,root) %{_infodir}/libfko.info*
134
135 %files server
136 %defattr(-,root,root,-)
137 %attr(0755,root,root) %{_sbindir}/fwknopd
138 %attr(0755,root,root) /etc/rc.d/init.d/fwknopd
139 %attr(0644,root,root) %{_mandir}/man8/fwknopd.8*
140 %config(noreplace) %attr(0600,root,root) %{_sysconfdir}/fwknop/fwknopd.conf
141 %config(noreplace) %attr(0600,root,root) %{_sysconfdir}/fwknop/access.conf
142
143 %changelog
144 * Thu Jul 15 2010 Damien Stuart <dstuart@dstuart.org>
145 - Fixed some misplaced depenencies (moved gpgpme from server to libfko).
146
147 * Wed Jul  7 2010 Damien Stuart <dstuart@dstuart.org>
148 - Made the post and preun steps specific to libfko-devel.
149
150 * Tue Jul  6 2010 Damien Stuart <dstuart@dstuart.org>
151 - Initial RPMification.
152
153 ###EOF###