summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-firewall/psad/psad-2.1.5-r2.ebuild')
-rw-r--r--net-firewall/psad/psad-2.1.5-r2.ebuild149
1 files changed, 149 insertions, 0 deletions
diff --git a/net-firewall/psad/psad-2.1.5-r2.ebuild b/net-firewall/psad/psad-2.1.5-r2.ebuild
new file mode 100644
index 000000000000..049b3ecc0d7d
--- /dev/null
+++ b/net-firewall/psad/psad-2.1.5-r2.ebuild
@@ -0,0 +1,149 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-firewall/psad/psad-2.1.5-r2.ebuild,v 1.1 2010/06/03 21:55:40 battousai Exp $
+
+inherit eutils perl-app
+
+IUSE=""
+
+DESCRIPTION="Port Scanning Attack Detection daemon"
+SRC_URI="http://www.cipherdyne.org/psad/download/${P}.tar.bz2"
+HOMEPAGE="http://www.cipherdyne.org/psad"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86"
+
+DEPEND="${DEPEND}
+ dev-lang/perl"
+
+RDEPEND="virtual/logger
+ dev-perl/Unix-Syslog
+ dev-perl/Date-Calc
+ virtual/mailx
+ net-firewall/iptables
+ net-misc/whois"
+
+src_compile() {
+ cd "${S}"/deps/Net-IPv4Addr
+ SRC_PREP="no" perl-module_src_compile
+ emake test
+
+ cd "${S}"/deps/IPTables-Parse
+ SRC_PREP="no" perl-module_src_compile
+ emake test
+
+ cd "${S}"/deps/IPTables-ChainMgr
+ SRC_PREP="no" perl-module_src_compile
+ emake test
+
+ cd "${S}"
+ # We'll use the C binaries
+ emake || die "Make failed: daemons"
+}
+
+src_install() {
+ local myhostname=
+ local mydomain=
+
+ doman *.8
+
+ keepdir /var/lib/psad /var/log/psad /var/run/psad /var/lock/subsys/${PN}
+ dodir /etc/psad
+
+ cd "${S}"/deps/Net-IPv4Addr
+ perl-module_src_install
+
+ cd "${S}"/deps/IPTables-ChainMgr
+ perl-module_src_install
+
+ cd "${S}"/deps/IPTables-Parse
+ perl-module_src_install
+
+ cd "${S}"
+ insinto /usr
+ dosbin kmsgsd psad psadwatchd
+ newsbin fwcheck_psad.pl fwcheck_psad
+ newbin pscan psad-pscan
+
+ cd "${S}"
+
+ insinto /etc/psad
+ doins *.conf
+ doins psad_*
+ doins auto_dl icmp_types ip_options posf signatures pf.os
+
+ cd "${S}"/init-scripts
+ newinitd psad-init.gentoo psad
+
+ cd "${S}"/deps/snort_rules
+ dodir /etc/psad/snort_rules
+ insinto /etc/psad/snort_rules
+ doins *.rules
+
+ cd "${S}"
+ dodoc BENCHMARK CREDITS Change* FW_EXAMPLE_RULES README SCAN_LOG
+}
+
+pkg_preinst() {
+ # Set sane defaults in config file.
+ fix_psad_conf
+}
+
+pkg_postinst() {
+ if [ ! -p "${ROOT}"/var/lib/psad/psadfifo ]
+ then
+ ebegin "Creating syslog FIFO for PSAD"
+ mknod -m 600 "${ROOT}"/var/lib/psad/psadfifo p
+ eend $?
+ fi
+
+ echo
+ elog "Please be sure to edit /etc/psad/psad.conf to reflect your system's"
+ elog "configuration or it may not work correctly or start up. Specifically, check"
+ elog "the validity of the HOSTNAME setting and replace the EMAIL_ADDRESSES and"
+ elog "HOME_NET settings at the least."
+ elog
+ if has_version ">=app-admin/syslog-ng-0.0.0"
+ then
+ ewarn "You appear to have installed syslog-ng. If you are using syslog-ng as your"
+ ewarn "default system logger, please change the SYSLOG_DAEMON entry in"
+ ewarn "/etc/psad/psad.conf to the following (per examples in psad.conf):"
+ ewarn " SYSLOG_DAEMON syslog-ng;"
+ ewarn
+ fi
+ if has_version ">=app-admin/sysklogd-0.0.0"
+ then
+ elog "You have sysklogd installed. If this is your default system logger, no"
+ elog "special configuration is needed. If it is not, please set SYSLOG_DAEMON"
+ elog "in /etc/psad/psad.conf accordingly."
+ elog
+ fi
+ if has_version ">=app-admin/metalog-0.0"
+ then
+ ewarn "You appear to have installed metalog. If you are using metalog as your"
+ ewarn "default system logger, please change the SYSLOG_DAEMON entry in"
+ ewarn "/etc/psad/psad.conf to the following (per examples in psad.conf):"
+ ewarn " SYSLOG_DAEMON metalog"
+ fi
+
+ ewarn "NOTE: You need firewall rules to log dropped packets. Otherwise PSAD will"
+ ewarn "not be aware of any port scan attacks. Please see FW_EXAMPLE_RULES in the"
+ ewarn "psad documentation directory (ie /usr/share/doc/${P}) for the criteria and"
+ ewarn "sample rules."
+}
+
+fix_psad_conf() {
+ PSADCONF="${D}/etc/psad/psad.conf"
+
+ # Ditch the _CHANGEME_ for hostname, substituting in our real hostname
+ [ -e /etc/hostname ] && myhostname="$(< /etc/hostname)"
+ [ "${myhostname}" == "" ] && myhostname="$HOSTNAME"
+ mydomain=".$(grep ^domain /etc/resolv.conf | cut -d" " -f2)"
+ sed -i "s:HOSTNAME\(.\+\)\_CHANGEME\_;:HOSTNAME\1${myhostname}${mydomain};:" "${PSADCONF}" || die "fix_psad_conf failed"
+
+ # Fix up paths
+ sed -i "s:/sbin/syslogd:/usr/sbin/syslogd:g" "${PSADCONF}" || die "fix_psad_conf failed"
+ sed -i "s:/sbin/syslog-ng:/usr/sbin/syslog-ng:g" "${PSADCONF}" || die "fix_psad_conf failed"
+ sed -i "s:/usr/bin/whois_psad:/usr/bin/whois:g" "${PSADCONF}" || die "fix_psad_conf failed"
+}