diff options
Diffstat (limited to 'net-firewall/psad/psad-1.4.2.ebuild')
-rw-r--r-- | net-firewall/psad/psad-1.4.2.ebuild | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/net-firewall/psad/psad-1.4.2.ebuild b/net-firewall/psad/psad-1.4.2.ebuild new file mode 100644 index 000000000000..4717ab543b4d --- /dev/null +++ b/net-firewall/psad/psad-1.4.2.ebuild @@ -0,0 +1,158 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-firewall/psad/psad-1.4.2.ebuild,v 1.1 2005/07/31 03:09:02 battousai Exp $ + +inherit eutils perl-module + +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="~x86 ~amd64 ~ppc ~alpha ~sparc" + +DEPEND="${DEPEND} + dev-lang/perl" + +RDEPEND="virtual/logger + dev-perl/Unix-Syslog + dev-perl/Date-Calc + virtual/mailx + net-firewall/iptables" + +src_compile() { + cd ${S}/Psad + SRC_PREP="no" perl-module_src_compile + emake test + + cd ${S}/Net-IPv4Addr + SRC_PREP="no" perl-module_src_compile + emake test + + cd ${S}/IPTables-Parse + SRC_PREP="no" perl-module_src_compile + emake test + + cd ${S}/IPTables-ChainMgr + SRC_PREP="no" perl-module_src_compile + emake test + + cd ${S}/whois + emake || die "Make failed: whois" + + 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}/Psad + emake install DESTDIR=${D} || die "Install failed: Psad.pm" + + cd ${S}/Net-IPv4Addr + emake install DESTDIR=${D} || die "Install failed: Net-IPv4Addr.pm" + + cd ${S}/IPTables-ChainMgr + emake install DESTDIR=${D} || die "Install failed: IPTables-Mgr.pm" + + cd ${S}/IPTables-Parse + emake install DESTDIR=${D} || die "Install failed: IPTables-Parse.pm" + + cd ${S}/whois + # Makefile seems borken, do install by hand... + insinto /usr + newbin whois whois_psad + newman whois.1 whois_psad.1 + + cd ${S} + insinto /usr + dosbin kmsgsd psad psadwatchd + newsbin fwcheck_psad.pl fwcheck_psad + dobin pscan + + cd ${S} + + fix_psad_conf + + insinto /etc/psad + doins *.conf + doins psad_* + doins auto_dl icmp_types posf signatures pf.os + + cd ${S}/init-scripts + exeinto /etc/init.d + newexe psad-init.gentoo psad + + cd ${S}/snort_rules + dodir /etc/psad/snort_rules + insinto /etc/psad/snort_rules + doins *.rules + + cd ${S} + dodoc BENCHMARK CREDITS Change* FW_EXAMPLE_RULES README LICENSE SCAN_LOG +} + +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 + einfo "Please be sure to edit /etc/psad/psad.conf to reflect your system's" + einfo "configuration or it may not work correctly or start up. Specifically, check" + einfo "the validity of the HOSTNAME setting and replace the EMAIL_ADDRESSES and" + einfo "HOME_NET settings at the least." + echo + 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;" + echo + fi + if has_version ">=app-admin/sysklogd-0.0.0" + then + einfo "You have sysklogd installed. If this is your default system logger, no" + einfo "special configuration is needed. If it is not, please set SYSLOG_DAEMON" + einfo "in /etc/psad/psad.conf accordingly." + echo + 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 +} + +fix_psad_conf() { + cp psad.conf psad.conf.orig + + # 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};:" psad.conf || die "fix_psad_conf failed" + + # Fix up paths + sed -i "s:/sbin/syslogd:/usr/sbin/syslogd:g" psad.conf || die "fix_psad_conf failed" + sed -i "s:/sbin/syslog-ng:/usr/sbin/syslog-ng:g" psad.conf || die "fix_psad_conf failed" + sed -i "s:/bin/uname:/usr/bin/uname:g" psad.conf || die "fix_psad_conf failed" + sed -i "s:/bin/mknod:/usr/bin/mknod:g" psad.conf || die "fix_psad_conf failed" +} + |