498 lines
11 KiB
Groff
498 lines
11 KiB
Groff
.\" $NetBSD: fixdist-3.2,v 1.1.1.1 2004/03/28 08:56:08 martti Exp $
|
|
.\"
|
|
#!/bin/sh
|
|
#
|
|
# Install IPFilter into the source tree of OpenBSD 3.2
|
|
#
|
|
|
|
if [ $# -eq 1 ] ; then
|
|
if [ "$1" = "-d" ] ; then
|
|
debug=echo
|
|
fi
|
|
fi
|
|
|
|
copyfiles() {
|
|
while [ $# -gt 0 ] ; do
|
|
if [ X"$1" = X"\\" ] ; then
|
|
:
|
|
elif [ -f $IPFDIR/$1 ] ; then
|
|
$debug cp -p $IPFDIR/$1 .
|
|
elif [ -f $IPFDIR/man/$1 ] ; then
|
|
$debug cp -p $IPFDIR/man/$1 .
|
|
elif [ -f $IPFDIR/iplang/$1 ] ; then
|
|
$debug cp -p $IPFDIR/iplang/$1 .
|
|
elif [ -f $IPFDIR/ipsend/$1 ] ; then
|
|
$debug cp -p $IPFDIR/ipsend/$1 .
|
|
else
|
|
echo "Could not find $IPFDIR/$1"
|
|
fi
|
|
shift
|
|
done
|
|
}
|
|
|
|
prep() {
|
|
$debug mkdir $1
|
|
$debug cd $1
|
|
}
|
|
|
|
IPFDIR=`pwd`
|
|
SRC=/usr/src
|
|
|
|
#
|
|
# 3 Programs into /sbin: ipf, ipfstat, ipnat
|
|
#
|
|
cd $SRC/sbin
|
|
/bin/rm -rf ipf ipfstat ipnat
|
|
|
|
prep ipf
|
|
MFILES="ipf.8 ipf.4 ipf.5 ipl.4"
|
|
SFILES="ipf.c parse.c opt.c facpri.c common.c"
|
|
IFILES="ipf.h facpri.h"
|
|
if [ X$debug = X ] ; then
|
|
OFILE=Makefile
|
|
else
|
|
OFILE=/dev/tty
|
|
fi
|
|
cat > ${OFILE} << __EOF__
|
|
# $OpenBSD: Makefile,v 1.10 2001/01/17 05:00:57 fgsch Exp $
|
|
|
|
PROG= ipf
|
|
MAN= ${MFILES}
|
|
SRCS= ${SFILES}
|
|
CFLAGS+=-DUSE_INET6 -I\${.CURDIR}/../../sys/netinet
|
|
|
|
.include <bsd.prog.mk>
|
|
__EOF__
|
|
copyfiles $MFILES $SFILES $IFILES
|
|
echo "`pwd` done"
|
|
|
|
#
|
|
# Setup ipfstat(8)
|
|
#
|
|
prep ../ipfstat
|
|
MFILES=ipfstat.8
|
|
SFILES="fils.c parse.c opt.c kmem.c facpri.c common.c printstate.c"
|
|
IFILES=kmem.h
|
|
cat > ${OFILE} << __EOF__
|
|
# $OpenBSD: Makefile,v 1.8 2001/02/13 01:12:33 fgsch Exp $
|
|
|
|
PROG= ipfstat
|
|
MAN= ${MFILES}
|
|
SRCS= ${SFILES}
|
|
.PATH: \${.CURDIR}/../../sbin/ipf
|
|
CFLAGS+=-DUSE_INET6 -I\${.CURDIR}/../../sbin/ipf -DSTATETOP \\
|
|
-I\${.CURDIR}/../../sys/netinet
|
|
DPADD= \${LIBCURSES}
|
|
LDADD= -lcurses -lkvm
|
|
|
|
.include <bsd.prog.mk>
|
|
__EOF__
|
|
copyfiles $MFILES $SFILES $IFILES
|
|
echo "`pwd` done"
|
|
|
|
#
|
|
# Setup ipnat(8)
|
|
#
|
|
prep ../ipnat
|
|
MFILES="ipnat.8 ipnat.4 ipnat.5"
|
|
SFILES="ipnat.c kmem.c natparse.c common.c printnat.c"
|
|
IFILES=
|
|
cat > ${OFILE} << __EOF__
|
|
# $OpenBSD: Makefile,v 1.10 2001/01/17 05:01:01 fgsch Exp $
|
|
|
|
PROG= ipnat
|
|
MAN= ${MFILES}
|
|
SRCS= ${SFILES}
|
|
.PATH: \${.CURDIR}/../ipfstat \${.CURDIR}/../ipf
|
|
CFLAGS+=-DUSE_INET6 -I\${.CURDIR}/../../sbin/ipfstat -I\${.CURDIR}/../ipf \\
|
|
-I\${.CURDIR}/../../sys/netinet
|
|
LDADD= -lkvm
|
|
|
|
.include <bsd.prog.mk>
|
|
__EOF__
|
|
copyfiles $MFILES $SFILES
|
|
echo "`pwd` done"
|
|
|
|
#
|
|
# Now fix up the top level Makefile
|
|
#
|
|
cd $SRC/sbin
|
|
grep -q ipf Makefile
|
|
if [ $? -ne 0 ] ; then
|
|
cat <<__EOF__ | patch
|
|
*** Makefile.orig Sat Sep 7 07:15:55 2002
|
|
--- Makefile Wed Nov 13 12:33:36 2002
|
|
***************
|
|
*** 33,36 ****
|
|
--- 33,39 ----
|
|
# Man pages (and manpages to do)
|
|
SUBDIR+= fdisk pdisk ancontrol wicontrol wsconsctl
|
|
|
|
+ # IPFilter
|
|
+ SUBDIR+= ipf ipfstat ipnat
|
|
+
|
|
.include <bsd.subdir.mk>
|
|
__EOF__
|
|
fi
|
|
|
|
|
|
#
|
|
# 3 Programs into /usr/sbin: ipfs, ipfstat, ipmon
|
|
# Also, include ipsend suite of tools.
|
|
#
|
|
cd $SRC/usr.sbin
|
|
/bin/rm -rf ipfs ipftest ipmon ipsend
|
|
|
|
#
|
|
# Create directory for ipftest
|
|
#
|
|
prep ipftest
|
|
MFILES=ipftest.1
|
|
SFILES="ipt.c fil.c ipft_hx.c ipft_sn.c ipft_ef.c ipft_td.c ipft_pc.c \\
|
|
ipft_tx.c misc.c parse.c opt.c ip_frag.c ip_nat.c ip_state.c \\
|
|
ip_auth.c ip_fil.c ip_proxy.c facpri.c natparse.c common.c \\
|
|
printnat.c printstate.c ip_log.c"
|
|
IFILES="ipt.h pcap.h snoop.h kmem.h bpf.h"
|
|
cat > ${OFILE} << __EOF__
|
|
# $OpenBSD: Makefile,v 1.9 2001/01/17 06:01:21 fgsch Exp $
|
|
|
|
PROG= ipftest
|
|
MAN= ${MFILES}
|
|
SRCS= ${SFILES}
|
|
|
|
.PATH: \${.CURDIR}/../../sbin/ipf \${.CURDIR}/../../sbin/ipfstat \\
|
|
\${.CURDIR}/../../sys/netinet \${.CURDIR}/../../sbin/ipnat
|
|
|
|
CFLAGS+=-DUSE_INET6 -I\${.CURDIR}/../../sbin/ipf -DIPFILTER_LOG \\
|
|
-I\${.CURDIR}/../../sys/netinet -I\${.CURDIR}/../../sys -I\${.CURDIR}
|
|
|
|
.include <bsd.prog.mk>
|
|
__EOF__
|
|
copyfiles $MFILES $SFILES $IFILES
|
|
echo "`pwd` done"
|
|
|
|
|
|
#
|
|
# Create directory for ipfs
|
|
#
|
|
prep ../ipfs
|
|
MFILES=ipfs.8
|
|
SFILES=ipfs.c
|
|
IFILES=
|
|
cat > ${OFILE} << __EOF__
|
|
# \$OpenBSD: Makefile,v 1.1 2001/01/17 06:31:06 fgsch Exp \$
|
|
|
|
PROG= ipfs
|
|
MAN= ${MFILES}
|
|
SRCS= ${SFILES}
|
|
|
|
CFLAGS+=-DUSE_INET6 -I\${.CURDIR}/../../sbin/ipf \\
|
|
-I\${.CURDIR}/../../sys/netinet
|
|
|
|
.include <bsd.prog.mk>
|
|
__EOF__
|
|
copyfiles $MFILES $SFILES $IFILES
|
|
echo "`pwd` done"
|
|
|
|
|
|
#
|
|
#
|
|
#
|
|
prep ../ipmon
|
|
MFILES=ipmon.8
|
|
SFILES=ipmon.c
|
|
IFILES=
|
|
cat > ${OFILE} << __EOF__
|
|
# \$OpenBSD: Makefile,v 1.4 1998/09/15 10:01:38 pattonme Exp \$
|
|
|
|
PROG= ipmon
|
|
MAN= ${MFILES}
|
|
SRCS= ${SFILES}
|
|
CFLAGS+=-DUSE_INET6 -I\${.CURDIR}/../../sys/netinet
|
|
|
|
.include <bsd.prog.mk>
|
|
__EOF__
|
|
copyfiles $MFILES $SFILES $IFILES
|
|
echo "`pwd` done"
|
|
|
|
|
|
#
|
|
# Create top level directories for ipsend
|
|
#
|
|
prep ../ipsend
|
|
cat > ${OFILE} << __EOF__
|
|
# $OpenBSD: Makefile,v 1.4 1997/09/21 11:43:47 deraadt Exp $
|
|
|
|
SUBDIR= ipsend ipresend iptest
|
|
|
|
.include <bsd.subdir.mk>
|
|
__EOF__
|
|
echo "`pwd` done"
|
|
|
|
prep iplang
|
|
copyfiles iplang.h
|
|
|
|
#
|
|
# 1st ipsend program - ipsend itself
|
|
#
|
|
prep ../ipsend
|
|
MFILES="ipsend.1 ipsend.5"
|
|
SFILES="ipsend.c ip.c ipsopt.c sbpf.c sock.c 44arp.c iplang_y.y iplang_l.l"
|
|
IFILES="ipsend.h iplang.h"
|
|
cat > ${OFILE} << __EOF__
|
|
# $OpenBSD: Makefile,v 1.3 1998/01/26 19:46:23 weingart Exp $
|
|
|
|
PROG= ipsend
|
|
BINDIR= /usr/sbin
|
|
MAN= ${MFILES}
|
|
SRCS= ${SFILES}
|
|
CFLAGS+= -DDOSOCKET -I\${.CURDIR}/../common -I\${.CURDIR}/../../ipftest \\
|
|
-I\${.CURDIR}/../../../sbin/ipf -I\${.CURDIR}/../../../sys/netinet \\
|
|
-I\${.CURDIR}/.. -I\${.OBJDIR}
|
|
|
|
LDADD= -lfl
|
|
CLEANFILES+=y.tab.h
|
|
|
|
.PATH: \${.CURDIR}/../common
|
|
|
|
.include <bsd.prog.mk>
|
|
__EOF__
|
|
copyfiles $MFILES $SFILES $IFILES
|
|
echo "`pwd` done"
|
|
|
|
|
|
#
|
|
# 2nd ipsend program - ipresend
|
|
#
|
|
prep ../ipresend
|
|
MFILES=ipresend.1
|
|
SFILES="ipresend.c resend.c \\
|
|
ipft_ef.c ipft_hx.c ipft_pc.c ipft_sn.c ipft_td.c ipft_tx.c opt.c \\
|
|
sock.c 44arp.c sbpf.c ip.c"
|
|
IFILES="ipsend.h bpf.h"
|
|
cat > ${OFILE} << __EOF__
|
|
# \$OpenBSD: Makefile,v 1.4 1999/02/21 23:11:05 tholo Exp \$
|
|
|
|
PROG= ipresend
|
|
BINDIR= /usr/sbin
|
|
MAN= ${MFILES}
|
|
SRCS= ${SFILES}
|
|
CFLAGS+=-DDOSOCKET -I\${.CURDIR}/../common -I\${.CURDIR}/../../ipftest \\
|
|
-I\${.CURDIR}/../../../sbin/ipf \\
|
|
-I\${.CURDIR}/../../../sys/netinet -I\${.CURDIR}/..
|
|
.PATH: \${.CURDIR}/../common \${.CURDIR}/../../ipftest \\
|
|
\${.CURDIR}/../../../sbin/ipf
|
|
|
|
.include <bsd.prog.mk>
|
|
__EOF__
|
|
copyfiles $MFILES $SFILES $IFILES
|
|
echo "`pwd` done"
|
|
|
|
|
|
#
|
|
# 3rd ipsend program - iptest
|
|
#
|
|
prep ../iptest
|
|
MFILES=iptest.1
|
|
SFILES="iptest.c iptests.c ip.c sbpf.c sock.c 44arp.c"
|
|
IFILES="ipsend.h"
|
|
cat > ${OFILE} << __EOF__
|
|
# \$OpenBSD: Makefile,v 1.2 1998/01/26 04:17:08 dgregor Exp \$
|
|
|
|
PROG= iptest
|
|
BINDIR= /usr/sbin
|
|
MAN= ${MFILES}
|
|
SRCS= ${SFILES}
|
|
CFLAGS+=-DDOSOCKET -I\${.CURDIR}/../common -I\${.CURDIR}/../../ipftest \\
|
|
-I\${.CURDIR}/../../../sys/netinet \\
|
|
-I\${.CURDIR}/../../../sbin/ipf -I\${.CURDIR}/..
|
|
.PATH: \${.CURDIR}/../common
|
|
|
|
.include <bsd.prog.mk>
|
|
__EOF__
|
|
copyfiles $MFILES $SFILES $IFILES
|
|
echo "`pwd` done"
|
|
|
|
cd $SRC/usr.sbin
|
|
grep -q ipmon Makefile
|
|
if [ $? -ne 0 ] ; then
|
|
cat << __EOF__ | patch
|
|
*** Makefile.orig Fri Jun 21 16:22:20 2002
|
|
--- Makefile Wed Nov 13 12:33:43 2002
|
|
***************
|
|
*** 40,43 ****
|
|
--- 40,46 ----
|
|
SUBDIR+=ypbind yppoll ypset ypserv
|
|
.endif
|
|
|
|
+ # IPFilter
|
|
+ SUBDIR+=ipftest ipfs ipmon ipsend
|
|
+
|
|
.include <bsd.subdir.mk>
|
|
__EOF__
|
|
fi
|
|
|
|
echo "Patching base install set"
|
|
cd $SRC
|
|
cd distrib/sets/lists/base
|
|
grep -q ipfstat mi
|
|
if [ $? -ne 0 ] ; then
|
|
cat << __EOF__ | patch
|
|
*** mi.orig Mon Sep 30 04:28:45 2002
|
|
--- mi Wed Nov 13 12:33:44 2002
|
|
***************
|
|
*** 90,95 ****
|
|
--- 90,98 ----
|
|
./sbin/halt
|
|
./sbin/ifconfig
|
|
./sbin/init
|
|
+ ./sbin/ipf
|
|
+ ./sbin/ipfstat
|
|
+ ./sbin/ipnat
|
|
./sbin/ipsecadm
|
|
./sbin/isakmpd
|
|
./sbin/lmccontrol
|
|
***************
|
|
*** 1273,1278 ****
|
|
--- 1276,1287 ----
|
|
./usr/sbin/httpd
|
|
./usr/sbin/inetd
|
|
./usr/sbin/iostat
|
|
+ ./usr/sbin/ipfs
|
|
+ ./usr/sbin/ipftest
|
|
+ ./usr/sbin/ipmon
|
|
+ ./usr/sbin/ipresend
|
|
+ ./usr/sbin/ipsend
|
|
+ ./usr/sbin/iptest
|
|
./usr/sbin/kadmin
|
|
./usr/sbin/kdb_destroy
|
|
./usr/sbin/kdb_edit
|
|
__EOF__
|
|
fi
|
|
|
|
echo "Patching etc Makefile"
|
|
cd $SRC
|
|
cd etc
|
|
grep -q ipf.conf Makefile
|
|
if [ $? -ne 0 ] ; then
|
|
cat << __EOF__ | patch
|
|
*** Makefile.orig Sat Sep 7 07:30:22 2002
|
|
--- Makefile Wed Nov 13 12:38:44 2002
|
|
***************
|
|
*** 14,20 ****
|
|
BINGRP= wheel
|
|
BIN1= bootptab changelist ccd.conf csh.cshrc csh.login csh.logout \\
|
|
daily dhcpd.conf dhcpd.interfaces exports ftpusers \\
|
|
! ftpchroot gettytab group hosts hosts.lpd inetd.conf \\
|
|
ksh.kshrc locate.rc man.conf monthly motd mrouted.conf \\
|
|
myname netstart networks newsyslog.conf pf.conf \\
|
|
phones printcap protocols rbootd.conf rc rc.conf rc.local \\
|
|
--- 14,20 ----
|
|
BINGRP= wheel
|
|
BIN1= bootptab changelist ccd.conf csh.cshrc csh.login csh.logout \\
|
|
daily dhcpd.conf dhcpd.interfaces exports ftpusers \\
|
|
! ftpchroot gettytab group hosts hosts.lpd inetd.conf ipf.conf \\
|
|
ksh.kshrc locate.rc man.conf monthly motd mrouted.conf \\
|
|
myname netstart networks newsyslog.conf pf.conf \\
|
|
phones printcap protocols rbootd.conf rc rc.conf rc.local \\
|
|
__EOF__
|
|
fi
|
|
|
|
echo "Patching etc mi install set"
|
|
cd $SRC
|
|
cd distrib/sets/lists/etc
|
|
grep -q ipf.conf mi
|
|
if [ $? -ne 0 ] ; then
|
|
cat << __EOF__ | patch
|
|
*** mi.orig Sat Sep 28 20:23:13 2002
|
|
--- mi Wed Nov 13 12:33:44 2002
|
|
***************
|
|
*** 29,34 ****
|
|
--- 29,35 ----
|
|
./etc/hosts.equiv
|
|
./etc/hosts.lpd
|
|
./etc/inetd.conf
|
|
+ ./etc/ipf.conf
|
|
./etc/kerberosIV/README
|
|
./etc/kerberosIV/krb.conf
|
|
./etc/kerberosIV/krb.equiv
|
|
__EOF__
|
|
fi
|
|
|
|
echo "Patching man install set"
|
|
cd $SRC
|
|
cd distrib/sets/lists/man
|
|
grep -q ipfstat mi
|
|
if [ $? -ne 0 ] ; then
|
|
cat << __EOF__ | patch
|
|
*** mi.orig Thu Oct 3 09:49:02 2002
|
|
--- mi Wed Nov 13 12:33:45 2002
|
|
***************
|
|
*** 322,327 ****
|
|
--- 322,331 ----
|
|
./usr/share/man/cat1/intro.0
|
|
./usr/share/man/cat1/ipcrm.0
|
|
./usr/share/man/cat1/ipcs.0
|
|
+ ./usr/share/man/cat1/ipftest.0
|
|
+ ./usr/share/man/cat1/ipresend.0
|
|
+ ./usr/share/man/cat1/ipsend.0
|
|
+ ./usr/share/man/cat1/iptest.0
|
|
./usr/share/man/cat1/jobs.0
|
|
./usr/share/man/cat1/join.0
|
|
./usr/share/man/cat1/jot.0
|
|
***************
|
|
*** 1063,1068 ****
|
|
--- 1067,1075 ----
|
|
./usr/share/man/cat4/ip.0
|
|
./usr/share/man/cat4/ip6.0
|
|
./usr/share/man/cat4/ipcomp.0
|
|
+ ./usr/share/man/cat4/ipf.0
|
|
+ ./usr/share/man/cat4/ipl.0
|
|
+ ./usr/share/man/cat4/ipnat.0
|
|
./usr/share/man/cat4/ipsec.0
|
|
./usr/share/man/cat4/isa.0
|
|
./usr/share/man/cat4/isapnp.0
|
|
***************
|
|
*** 1434,1439 ****
|
|
--- 1441,1449 ----
|
|
./usr/share/man/cat5/info.0
|
|
./usr/share/man/cat5/inode.0
|
|
./usr/share/man/cat5/intro.0
|
|
+ ./usr/share/man/cat5/ipf.0
|
|
+ ./usr/share/man/cat5/ipnat.0
|
|
+ ./usr/share/man/cat5/ipsend.0
|
|
./usr/share/man/cat5/isakmpd.conf.0
|
|
./usr/share/man/cat5/isakmpd.policy.0
|
|
./usr/share/man/cat5/keynote.0
|
|
***************
|
|
*** 1681,1686 ****
|
|
--- 1691,1701 ----
|
|
./usr/share/man/cat8/intro.0
|
|
./usr/share/man/cat8/iopctl.0
|
|
./usr/share/man/cat8/iostat.0
|
|
+ ./usr/share/man/cat8/ipf.0
|
|
+ ./usr/share/man/cat8/ipfs.0
|
|
+ ./usr/share/man/cat8/ipfstat.0
|
|
+ ./usr/share/man/cat8/ipmon.0
|
|
+ ./usr/share/man/cat8/ipnat.0
|
|
./usr/share/man/cat8/ipsecadm.0
|
|
./usr/share/man/cat8/isakmpd.0
|
|
./usr/share/man/cat8/kadmin.0
|
|
__EOF__
|
|
fi
|
|
|
|
echo Creating etc/ipf.conf
|
|
cd $SRC
|
|
cd etc
|
|
if [ ! -f ipf.conf ] ; then
|
|
cat > ipf.conf << __EOF__
|
|
#
|
|
# See ipf(5) for syntax and examples.
|
|
#
|
|
# Pass all packets in and out (these are the implicit first two rules.)
|
|
# pass in all
|
|
# pass out all
|
|
__EOF__
|
|
fi
|
|
exit 0
|