forked from extern/shorewall_code
Compare commits
22 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
ba104a3528 | ||
|
505f2838fe | ||
|
ae9a4e3b83 | ||
|
70d08f97f6 | ||
|
c6065c0370 | ||
|
f9de9c3c74 | ||
|
b0f6de62d0 | ||
|
17ce463b2d | ||
|
a3e467b8e3 | ||
|
b84f6aef55 | ||
|
376999970b | ||
|
7d98721169 | ||
|
489ee29e53 | ||
|
05d99c8500 | ||
|
3336db6f86 | ||
|
b90513bd62 | ||
|
2bf6b92c02 | ||
|
e0861408cd | ||
|
326cf8ba0a | ||
|
41880276a9 | ||
|
6835caf484 | ||
|
266863713d |
31
Shorewall-core/configure
vendored
31
Shorewall-core/configure
vendored
@@ -91,6 +91,8 @@ for p in $@; do
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
cd $(dirname $0)
|
||||||
|
|
||||||
vendor=${params[HOST]}
|
vendor=${params[HOST]}
|
||||||
|
|
||||||
if [ -z "$vendor" ]; then
|
if [ -z "$vendor" ]; then
|
||||||
@@ -102,7 +104,7 @@ if [ -z "$vendor" ]; then
|
|||||||
vendor=redhat
|
vendor=redhat
|
||||||
;;
|
;;
|
||||||
debian|ubuntu)
|
debian|ubuntu)
|
||||||
ls -l /sbin/init |fgrep -q systemd | vendor=debian.systemd | vendor=debian.sysvinit
|
vendor=debian
|
||||||
;;
|
;;
|
||||||
opensuse)
|
opensuse)
|
||||||
vendor=suse
|
vendor=suse
|
||||||
@@ -122,7 +124,6 @@ if [ -z "$vendor" ]; then
|
|||||||
params[HOST]=apple
|
params[HOST]=apple
|
||||||
rcfile=shorewallrc.apple
|
rcfile=shorewallrc.apple
|
||||||
;;
|
;;
|
||||||
|
|
||||||
cygwin*|CYGWIN*)
|
cygwin*|CYGWIN*)
|
||||||
params[HOST]=cygwin
|
params[HOST]=cygwin
|
||||||
rcfile=shorewallrc.cygwin
|
rcfile=shorewallrc.cygwin
|
||||||
@@ -130,7 +131,7 @@ if [ -z "$vendor" ]; then
|
|||||||
*)
|
*)
|
||||||
if [ -f /etc/debian_version ]; then
|
if [ -f /etc/debian_version ]; then
|
||||||
params[HOST]=debian
|
params[HOST]=debian
|
||||||
rcfile=shorewallrc.debian.sysvinit
|
ls -l /sbin/init | fgrep -q systemd && rcfile=shorewallrc.debian.systemd || rcfile=shorewallrc.debian.sysvinit
|
||||||
elif [ -f /etc/redhat-release ]; then
|
elif [ -f /etc/redhat-release ]; then
|
||||||
params[HOST]=redhat
|
params[HOST]=redhat
|
||||||
rcfile=shorewallrc.redhat
|
rcfile=shorewallrc.redhat
|
||||||
@@ -143,28 +144,41 @@ if [ -z "$vendor" ]; then
|
|||||||
elif [ -f /etc/arch-release ] ; then
|
elif [ -f /etc/arch-release ] ; then
|
||||||
params[HOST]=archlinux
|
params[HOST]=archlinux
|
||||||
rcfile=shorewallrc.archlinux
|
rcfile=shorewallrc.archlinux
|
||||||
|
elif [ -f /etc/openwrt_release ]; then
|
||||||
|
params[HOST]=openwrt
|
||||||
|
rcfile=shorewallrc.openwrt
|
||||||
else
|
else
|
||||||
params[HOST]=linux
|
params[HOST]=linux
|
||||||
rcfile=shorewallrc.default
|
rcfile=shorewallrc.default
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
vendor=${params[HOST]}
|
vendor=${params[HOST]}
|
||||||
elif [ $vendor = linux ]; then
|
|
||||||
rcfile=shorewallrc.default;
|
|
||||||
else
|
else
|
||||||
rcfile=shorewallrc.$vendor
|
if [ $vendor = linux ]; then
|
||||||
|
rcfile=shorewallrc.default;
|
||||||
|
elif [ $vendor = debian -a -f /etc/debian_version ]; then
|
||||||
|
ls -l /sbin/init | fgrep -q systemd && rcfile=shorewallrc.debian.systemd || rcfile=shorewallrc.debian.sysvinit
|
||||||
|
else
|
||||||
|
rcfile=shorewallrc.$vendor
|
||||||
|
fi
|
||||||
|
|
||||||
if [ ! -f $rcfile ]; then
|
if [ ! -f $rcfile ]; then
|
||||||
echo "ERROR: $vendor is not a recognized host type" >&2
|
echo "ERROR: $vendor is not a recognized host type" >&2
|
||||||
exit 1
|
exit 1
|
||||||
|
elif [ $vendor = default ]; then
|
||||||
|
params[HOST]=linux
|
||||||
|
vendor=linux
|
||||||
|
elif [[ $vendor == debian.* ]]; then
|
||||||
|
params[HOST]=debian
|
||||||
|
vendor=debian
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $vendor = linux ]; then
|
if [ $vendor = linux ]; then
|
||||||
echo "INFO: Creating a generic Linux installation - " `date`;
|
echo "INFO: Creating a generic Linux installation - " `date`;
|
||||||
else
|
else
|
||||||
echo "INFO: Creating a ${vendor}-specific installation - " `date`;
|
echo "INFO: Creating a ${params[HOST]}-specific installation - " `date`;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo
|
echo
|
||||||
@@ -177,6 +191,7 @@ done
|
|||||||
|
|
||||||
echo '#' > shorewallrc
|
echo '#' > shorewallrc
|
||||||
echo "# Created by Shorewall Core version $VERSION configure - " `date` >> shorewallrc
|
echo "# Created by Shorewall Core version $VERSION configure - " `date` >> shorewallrc
|
||||||
|
echo "# rc file: $rcfile" >> shorewallrc
|
||||||
echo '#' >> shorewallrc
|
echo '#' >> shorewallrc
|
||||||
|
|
||||||
if [ $# -gt 0 ]; then
|
if [ $# -gt 0 ]; then
|
||||||
|
@@ -52,6 +52,9 @@ for ( @ARGV ) {
|
|||||||
$params{$pn} = $pv;
|
$params{$pn} = $pv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
use File::Basename;
|
||||||
|
chdir dirname($0);
|
||||||
|
|
||||||
my $vendor = $params{HOST};
|
my $vendor = $params{HOST};
|
||||||
my $rcfile;
|
my $rcfile;
|
||||||
my $rcfilename;
|
my $rcfilename;
|
||||||
@@ -81,12 +84,39 @@ unless ( defined $vendor ) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ( defined $vendor ) {
|
if ( defined $vendor ) {
|
||||||
$rcfilename = $vendor eq 'linux' ? 'shorewallrc.default' : 'shorewallrc.' . $vendor;
|
if ( $vendor eq 'debian' && -f '/etc/debian_version' ) {
|
||||||
die qq("ERROR: $vendor" is not a recognized host type) unless -f $rcfilename;
|
if ( -l '/sbin/init' ) {
|
||||||
|
if ( readlink('/sbin/init') =~ /systemd/ ) {
|
||||||
|
$rcfilename = 'shorewallrc.debian.systemd';
|
||||||
|
} else {
|
||||||
|
$rcfilename = 'shorewallrc.debian.sysvinit';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$rcfilename = 'shorewallrc.debian.sysvinit';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$rcfilename = $vendor eq 'linux' ? 'shorewallrc.default' : 'shorewallrc.' . $vendor;
|
||||||
|
}
|
||||||
|
|
||||||
|
unless ( -f $rcfilename ) {
|
||||||
|
die qq("ERROR: $vendor" is not a recognized host type);
|
||||||
|
} elsif ( $vendor eq 'default' ) {
|
||||||
|
$params{HOST} = $vendor = 'linux';
|
||||||
|
} elsif ( $vendor =~ /^debian\./ ) {
|
||||||
|
$params{HOST} = $vendor = 'debian';
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if ( -f '/etc/debian_version' ) {
|
if ( -f '/etc/debian_version' ) {
|
||||||
$vendor = 'debian';
|
$vendor = 'debian';
|
||||||
$rcfilename = 'shorewallrc.debian.sysvinit';
|
if ( -l '/sbin/init' ) {
|
||||||
|
if ( readlink( '/sbin/init' ) =~ /systemd/ ) {
|
||||||
|
$rcfilename = 'shorewallrc.debian.systemd';
|
||||||
|
} else {
|
||||||
|
$rcfilename = 'shorewallrc.debian.sysvinit';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$rcfilename = 'shorewallrc.debian.sysvinit';
|
||||||
|
}
|
||||||
} elsif ( -f '/etc/redhat-release' ){
|
} elsif ( -f '/etc/redhat-release' ){
|
||||||
$vendor = 'redhat';
|
$vendor = 'redhat';
|
||||||
$rcfilename = 'shorewallrc.redhat';
|
$rcfilename = 'shorewallrc.redhat';
|
||||||
@@ -143,7 +173,8 @@ my $outfile;
|
|||||||
|
|
||||||
open $outfile, '>', 'shorewallrc' or die "Can't open 'shorewallrc' for output: $!";
|
open $outfile, '>', 'shorewallrc' or die "Can't open 'shorewallrc' for output: $!";
|
||||||
|
|
||||||
printf $outfile "#\n# Created by Shorewall Core version %s configure.pl - %s %2d %04d %02d:%02d:%02d\n#\n", VERSION, $abbr[$localtime[4]], $localtime[3], 1900 + $localtime[5] , @localtime[2,1,0];
|
printf $outfile "#\n# Created by Shorewall Core version %s configure.pl - %s %2d %04d %02d:%02d:%02d\n", VERSION, $abbr[$localtime[4]], $localtime[3], 1900 + $localtime[5] , @localtime[2,1,0];
|
||||||
|
print $outfile "# rc file: $rcfilename\n#\n";
|
||||||
|
|
||||||
print $outfile "# Input: @ARGV\n#\n" if @ARGV;
|
print $outfile "# Input: @ARGV\n#\n" if @ARGV;
|
||||||
|
|
||||||
|
@@ -66,15 +66,6 @@ mywhich() {
|
|||||||
return 2
|
return 2
|
||||||
}
|
}
|
||||||
|
|
||||||
run_install()
|
|
||||||
{
|
|
||||||
if ! install $*; then
|
|
||||||
echo
|
|
||||||
echo "ERROR: Failed to install $*" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
cant_autostart()
|
cant_autostart()
|
||||||
{
|
{
|
||||||
echo
|
echo
|
||||||
@@ -88,7 +79,20 @@ delete_file() # $1 = file to delete
|
|||||||
|
|
||||||
install_file() # $1 = source $2 = target $3 = mode
|
install_file() # $1 = source $2 = target $3 = mode
|
||||||
{
|
{
|
||||||
run_install $T $OWNERSHIP -m $3 $1 ${2}
|
if cp -f $1 $2; then
|
||||||
|
if chmod $3 $2; then
|
||||||
|
if [ -n "$OWNER" ]; then
|
||||||
|
if chown $OWNER:$GROUP $2; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "ERROR: Failed to install $2" >&2
|
||||||
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
require()
|
require()
|
||||||
@@ -181,10 +185,6 @@ done
|
|||||||
|
|
||||||
[ "${INITFILE}" != 'none/' ] && require INITSOURCE && require INITDIR
|
[ "${INITFILE}" != 'none/' ] && require INITSOURCE && require INITDIR
|
||||||
|
|
||||||
T="-T"
|
|
||||||
|
|
||||||
INSTALLD='-D'
|
|
||||||
|
|
||||||
if [ -z "$BUILD" ]; then
|
if [ -z "$BUILD" ]; then
|
||||||
case $(uname) in
|
case $(uname) in
|
||||||
cygwin*|CYGWIN*)
|
cygwin*|CYGWIN*)
|
||||||
@@ -226,6 +226,8 @@ if [ -z "$BUILD" ]; then
|
|||||||
BUILD=suse
|
BUILD=suse
|
||||||
elif [ -f /etc/arch-release ] ; then
|
elif [ -f /etc/arch-release ] ; then
|
||||||
BUILD=archlinux
|
BUILD=archlinux
|
||||||
|
elif [ -f ${CONFDIR}/openwrt_release ] ; then
|
||||||
|
BUILD=openwrt
|
||||||
else
|
else
|
||||||
BUILD=linux
|
BUILD=linux
|
||||||
fi
|
fi
|
||||||
@@ -252,17 +254,15 @@ case $BUILD in
|
|||||||
|
|
||||||
[ -z "$OWNER" ] && OWNER=root
|
[ -z "$OWNER" ] && OWNER=root
|
||||||
[ -z "$GROUP" ] && GROUP=wheel
|
[ -z "$GROUP" ] && GROUP=wheel
|
||||||
INSTALLD=
|
|
||||||
T=
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
[ -z "$OWNER" ] && OWNER=root
|
if [ $(id -u) -eq 0 ]; then
|
||||||
[ -z "$GROUP" ] && GROUP=root
|
[ -z "$OWNER" ] && OWNER=root
|
||||||
|
[ -z "$GROUP" ] && GROUP=root
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
OWNERSHIP="-o $OWNER -g $GROUP"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Determine where to install the firewall script
|
# Determine where to install the firewall script
|
||||||
#
|
#
|
||||||
@@ -276,7 +276,7 @@ case "$HOST" in
|
|||||||
apple)
|
apple)
|
||||||
echo "Installing Mac-specific configuration...";
|
echo "Installing Mac-specific configuration...";
|
||||||
;;
|
;;
|
||||||
debian|gentoo|redhat|slackware|archlinux|linux|suse)
|
debian|gentoo|redhat|slackware|archlinux|linux|suse|openwrt)
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "ERROR: Unknown HOST \"$HOST\"" >&2
|
echo "ERROR: Unknown HOST \"$HOST\"" >&2
|
||||||
@@ -305,7 +305,6 @@ if [ -n "$DESTDIR" ]; then
|
|||||||
if [ $BUILD != cygwin ]; then
|
if [ $BUILD != cygwin ]; then
|
||||||
if [ `id -u` != 0 ] ; then
|
if [ `id -u` != 0 ] ; then
|
||||||
echo "Not setting file owner/group permissions, not running as root."
|
echo "Not setting file owner/group permissions, not running as root."
|
||||||
OWNERSHIP=""
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -407,9 +406,9 @@ fi
|
|||||||
if [ ${SHAREDIR} != /usr/share ]; then
|
if [ ${SHAREDIR} != /usr/share ]; then
|
||||||
for f in lib.*; do
|
for f in lib.*; do
|
||||||
if [ $BUILD != apple ]; then
|
if [ $BUILD != apple ]; then
|
||||||
eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}/${SHAREDIR}/shorewall/$f
|
eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}${SHAREDIR}/shorewall/$f
|
||||||
else
|
else
|
||||||
eval sed -i \'\' -e \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}/${SHAREDIR}/shorewall/$f
|
eval sed -i \'\' -e \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}${SHAREDIR}/shorewall/$f
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
@@ -143,29 +143,63 @@ timed_read ()
|
|||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# Determine if 'syslog -C' is running
|
# Determine if 'syslogd -C' or logd -S is running
|
||||||
#
|
#
|
||||||
syslog_circular_buffer() {
|
syslog_circular_buffer() {
|
||||||
local pid
|
local pid
|
||||||
local tty
|
local tty
|
||||||
local flags
|
local flags
|
||||||
local cputime
|
local time
|
||||||
local path
|
local path
|
||||||
local args
|
local args
|
||||||
local arg
|
local arg
|
||||||
|
|
||||||
ps ax 2> /dev/null | while read pid tty flags cputime path args; do
|
ps w 2> /dev/null | (
|
||||||
case $path in
|
while read pid tty stat time path args; do
|
||||||
syslogd|*/syslogd)
|
case $path in
|
||||||
for arg in $args; do
|
syslogd|*/syslogd)
|
||||||
if [ x$arg = x-C ]; then
|
for arg in $args; do
|
||||||
echo Yes
|
case $arg in
|
||||||
return
|
-C*)
|
||||||
fi
|
return 0
|
||||||
done
|
;;
|
||||||
;;
|
esac
|
||||||
esac
|
done
|
||||||
done
|
;;
|
||||||
|
logd|*/logd)
|
||||||
|
for arg in $args; do
|
||||||
|
case $arg in
|
||||||
|
-S*)
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
return 1 )
|
||||||
|
}
|
||||||
|
|
||||||
|
setup_logread() {
|
||||||
|
[ -z "$LOGFILE" ] && LOGFILE=/var/log/messages
|
||||||
|
|
||||||
|
if syslog_circular_buffer; then
|
||||||
|
LOGFILE=logread
|
||||||
|
if qt mywhich tac; then
|
||||||
|
g_logread="logread | tac"
|
||||||
|
else
|
||||||
|
g_logread="logread"
|
||||||
|
fi
|
||||||
|
elif [ -r $LOGFILE ]; then
|
||||||
|
if qt mywhich tac; then
|
||||||
|
g_logread="tac $LOGFILE"
|
||||||
|
else
|
||||||
|
g_logread="cat $LOGFILE"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
fatal_error "LOGFILE ($LOGFILE) does not exist or is not readable!"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -173,31 +207,59 @@ syslog_circular_buffer() {
|
|||||||
#
|
#
|
||||||
packet_log() # $1 = number of messages
|
packet_log() # $1 = number of messages
|
||||||
{
|
{
|
||||||
if [ -n "$g_showmacs" -o $VERBOSITY -gt 2 ]; then
|
if qt mywhich tac; then
|
||||||
if [ $g_family -eq 4 ]; then
|
if [ -n "$g_showmacs" -o $VERBOSITY -gt 2 ]; then
|
||||||
$g_logread | grep 'IN=.* OUT=.*SRC=.*\..*DST=' | head -n$1 | tac | sed 's/ kernel://; s/\[.*\] //' | sed s/" $host $LOGFORMAT"/" "/
|
if [ $g_family -eq 4 ]; then
|
||||||
|
$g_logread | grep 'IN=.* OUT=.*SRC=.*\..*DST=' | head -n$1 | tac | sed 's/ kernel://; s/\[.*\] //' | sed s/" $host $LOGFORMAT"/" "/
|
||||||
|
else
|
||||||
|
$g_logread | grep 'IN=.* OUT=.*SRC=.*:.*DST=' | head -n$1 | tac | sed -r 's/ kernel://; s/\[.*\] //; s/0000:/:/g; s/:::+/::/g; s/:0+/:/g' | sed s/" $host $LOGFORMAT"/" "/
|
||||||
|
fi
|
||||||
|
elif [ $g_family -eq 4 ]; then
|
||||||
|
$g_logread | grep 'IN=.* OUT=.*SRC=.*\..*DST=' | head -n$1 | tac | sed 's/ kernel://; s/MAC=.* SRC=/SRC=/; s/\[.*\] '// | sed s/" $host $LOGFORMAT"/" "/
|
||||||
else
|
else
|
||||||
$g_logread | grep 'IN=.* OUT=.*SRC=.*:.*DST=' | head -n$1 | tac | sed -r 's/ kernel://; s/\[.*\] //; s/0000:/:/g; s/:::+/::/g; s/:0+/:/g' | sed s/" $host $LOGFORMAT"/" "/
|
$g_logread | grep 'IN=.* OUT=.*SRC=.*:.*DST=' | head -n$1 | tac | sed -r 's/ kernel://; s/MAC=.* SRC=/SRC=/; s/\[.*\] //; s/0000:/:/g; s/:::+/::/g; s/:0+/:/g' | sed s/" $host $LOGFORMAT"/" "/
|
||||||
fi
|
fi
|
||||||
elif [ $g_family -eq 4 ]; then
|
|
||||||
$g_logread | grep 'IN=.* OUT=.*SRC=.*\..*DST=' | head -n$1 | tac | sed 's/ kernel://; s/MAC=.* SRC=/SRC=/; s/\[.*\] '// | sed s/" $host $LOGFORMAT"/" "/
|
|
||||||
else
|
else
|
||||||
$g_logread | grep 'IN=.* OUT=.*SRC=.*:.*DST=' | head -n$1 | tac | sed -r 's/ kernel://; s/MAC=.* SRC=/SRC=/; s/\[.*\] //; s/0000:/:/g; s/:::+/::/g; s/:0+/:/g' | sed s/" $host $LOGFORMAT"/" "/
|
if [ -n "$g_showmacs" -o $VERBOSITY -gt 2 ]; then
|
||||||
|
if [ $g_family -eq 4 ]; then
|
||||||
|
$g_logread | grep 'IN=.* OUT=.*SRC=.*\..*DST=' | tail -n$1 | sed 's/ kernel://; s/\[.*\] //' | sed s/" $host $LOGFORMAT"/" "/
|
||||||
|
else
|
||||||
|
$g_logread | grep 'IN=.* OUT=.*SRC=.*:.*DST=' | tail -n$1 | sed -r 's/ kernel://; s/\[.*\] //; s/0000:/:/g; s/:::+/::/g; s/:0+/:/g' | sed s/" $host $LOGFORMAT"/" "/
|
||||||
|
fi
|
||||||
|
elif [ $g_family -eq 4 ]; then
|
||||||
|
$g_logread | grep 'IN=.* OUT=.*SRC=.*\..*DST=' | tail -n$1 | sed 's/ kernel://; s/MAC=.* SRC=/SRC=/; s/\[.*\] '// | sed s/" $host $LOGFORMAT"/" "/
|
||||||
|
else
|
||||||
|
$g_logread | grep 'IN=.* OUT=.*SRC=.*:.*DST=' | tail -n$1 | sed -r 's/ kernel://; s/MAC=.* SRC=/SRC=/; s/\[.*\] //; s/0000:/:/g; s/:::+/::/g; s/:0+/:/g' | sed s/" $host $LOGFORMAT"/" "/
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
search_log() # $1 = IP address to search for
|
search_log() # $1 = IP address to search for
|
||||||
{
|
{
|
||||||
if [ -n "$g_showmacs" -o $VERBOSITY -gt 2 ]; then
|
if qt mywhich tac; then
|
||||||
if [ $g_family -eq 4 ]; then
|
if [ -n "$g_showmacs" -o $VERBOSITY -gt 2 ]; then
|
||||||
$g_logread | grep 'IN=.* OUT=.*SRC=.*\..*DST=' | grep "$1" | tac | sed 's/ kernel://; s/\[.*\] //' | sed s/" $host $LOGFORMAT"/" "/
|
if [ $g_family -eq 4 ]; then
|
||||||
|
$g_logread | grep 'IN=.* OUT=.*SRC=.*\..*DST=' | grep "$1" | tac | sed 's/ kernel://; s/\[.*\] //' | sed s/" $host $LOGFORMAT"/" "/
|
||||||
|
else
|
||||||
|
$g_logread | grep 'IN=.* OUT=.*SRC=.*\..*DST=' | grep "$1" | tac | sed -r 's/ kernel://; s/\[.*\] //; s/0000:/:/g; s/:::+/::/g; s/:0+/:/g' | sed s/" $host $LOGFORMAT"/" "/
|
||||||
|
fi
|
||||||
|
elif [ $g_family -eq 4 ]; then
|
||||||
|
$g_logread | grep 'IN=.* OUT=.*SRC=.*\..*DST=' | grep "$1" | tac | sed 's/ kernel://; s/MAC=.* SRC=/SRC=/; s/\[.*\] '// | sed s/" $host $LOGFORMAT"/" "/
|
||||||
else
|
else
|
||||||
$g_logread | grep 'IN=.* OUT=.*SRC=.*\..*DST=' | grep "$1" | tac | sed -r 's/ kernel://; s/\[.*\] //; s/0000:/:/g; s/:::+/::/g; s/:0+/:/g' | sed s/" $host $LOGFORMAT"/" "/
|
$g_logread | grep 'IN=.* OUT=.*SRC=.*\..*DST=' | grep "$1" | tac | sed -r 's/ kernel://; s/MAC=.* SRC=/SRC=/; s/\[.*\] //; s/0000:/:/g; s/:::+/::/g; s/:0+/:/g' | sed s/" $host $LOGFORMAT"/" "/
|
||||||
fi
|
fi
|
||||||
elif [ $g_family -eq 4 ]; then
|
|
||||||
$g_logread | grep 'IN=.* OUT=.*SRC=.*\..*DST=' | grep "$1" | tac | sed 's/ kernel://; s/MAC=.* SRC=/SRC=/; s/\[.*\] '// | sed s/" $host $LOGFORMAT"/" "/
|
|
||||||
else
|
else
|
||||||
$g_logread | grep 'IN=.* OUT=.*SRC=.*\..*DST=' | grep "$1" | tac | sed -r 's/ kernel://; s/MAC=.* SRC=/SRC=/; s/\[.*\] //; s/0000:/:/g; s/:::+/::/g; s/:0+/:/g' | sed s/" $host $LOGFORMAT"/" "/
|
if [ -n "$g_showmacs" -o $VERBOSITY -gt 2 ]; then
|
||||||
|
if [ $g_family -eq 4 ]; then
|
||||||
|
$g_logread | grep 'IN=.* OUT=.*SRC=.*\..*DST=' | grep "$1" | sed 's/ kernel://; s/\[.*\] //' | sed s/" $host $LOGFORMAT"/" "/
|
||||||
|
else
|
||||||
|
$g_logread | grep 'IN=.* OUT=.*SRC=.*\..*DST=' | grep "$1" | sed -r 's/ kernel://; s/\[.*\] //; s/0000:/:/g; s/:::+/::/g; s/:0+/:/g' | sed s/" $host $LOGFORMAT"/" "/
|
||||||
|
fi
|
||||||
|
elif [ $g_family -eq 4 ]; then
|
||||||
|
$g_logread | grep 'IN=.* OUT=.*SRC=.*\..*DST=' | grep "$1" | sed 's/ kernel://; s/MAC=.* SRC=/SRC=/; s/\[.*\] '// | sed s/" $host $LOGFORMAT"/" "/
|
||||||
|
else
|
||||||
|
$g_logread | grep 'IN=.* OUT=.*SRC=.*\..*DST=' | grep "$1" | sed -r 's/ kernel://; s/MAC=.* SRC=/SRC=/; s/\[.*\] //; s/0000:/:/g; s/:::+/::/g; s/:0+/:/g' | sed s/" $host $LOGFORMAT"/" "/
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -280,17 +342,7 @@ show_bl() {
|
|||||||
logwatch() # $1 = timeout -- if negative, prompt each time that
|
logwatch() # $1 = timeout -- if negative, prompt each time that
|
||||||
# an 'interesting' packet count changes
|
# an 'interesting' packet count changes
|
||||||
{
|
{
|
||||||
if [ -z "$LOGFILE" ]; then
|
setup_logread
|
||||||
LOGFILE=/var/log/messages
|
|
||||||
|
|
||||||
if [ -n "$(syslog_circular_buffer)" ]; then
|
|
||||||
g_logread="logread | tac"
|
|
||||||
elif [ -r $LOGFILE ]; then
|
|
||||||
g_logread="tac $LOGFILE"
|
|
||||||
else
|
|
||||||
fatal_error "LOGFILE ($LOGFILE) does not exist!"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
host=$(echo $g_hostname | sed 's/\..*$//')
|
host=$(echo $g_hostname | sed 's/\..*$//')
|
||||||
oldrejects=$($g_tool -L -v -n | grep 'LOG')
|
oldrejects=$($g_tool -L -v -n | grep 'LOG')
|
||||||
@@ -1081,17 +1133,7 @@ show_command() {
|
|||||||
log)
|
log)
|
||||||
[ $# -gt 2 ] && usage 1
|
[ $# -gt 2 ] && usage 1
|
||||||
|
|
||||||
if [ -z "$LOGFILE" ]; then
|
setup_logread
|
||||||
LOGFILE=/var/log/messages
|
|
||||||
|
|
||||||
if [ -n "$(syslog_circular_buffer)" ]; then
|
|
||||||
g_logread="logread | tac"
|
|
||||||
elif [ -r $LOGFILE ]; then
|
|
||||||
g_logread="tac $LOGFILE"
|
|
||||||
else
|
|
||||||
fatal_error "LOGFILE ($LOGFILE) does not exist!"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "$g_product $SHOREWALL_VERSION Log ($LOGFILE) at $g_hostname - $(date)"
|
echo "$g_product $SHOREWALL_VERSION Log ($LOGFILE) at $g_hostname - $(date)"
|
||||||
echo
|
echo
|
||||||
@@ -1470,17 +1512,7 @@ do_dump_command() {
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ -z "$LOGFILE" ]; then
|
setup_logread
|
||||||
LOGFILE=/var/log/messages
|
|
||||||
|
|
||||||
if [ -n "$(syslog_circular_buffer)" ]; then
|
|
||||||
g_logread="logread | tac"
|
|
||||||
elif [ -r $LOGFILE ]; then
|
|
||||||
g_logread="tac $LOGFILE"
|
|
||||||
else
|
|
||||||
fatal_error "LOGFILE ($LOGFILE) does not exist! - See http://www.shorewall.net/shorewall_logging.html"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
g_ipt_options="$g_ipt_options $g_ipt_options1"
|
g_ipt_options="$g_ipt_options $g_ipt_options1"
|
||||||
|
|
||||||
@@ -1635,7 +1667,7 @@ do_dump_command() {
|
|||||||
|
|
||||||
echo
|
echo
|
||||||
|
|
||||||
ss -${g_family}tunap
|
qt mywhich ss && ss -${g_family}tunap || { qt mywhich netstat && netatat -tunap; }
|
||||||
|
|
||||||
if [ -n "$TC_ENABLED" ]; then
|
if [ -n "$TC_ENABLED" ]; then
|
||||||
heading "Traffic Control"
|
heading "Traffic Control"
|
||||||
@@ -3563,15 +3595,7 @@ get_config() {
|
|||||||
|
|
||||||
[ -n "$PATH" ] || PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin
|
[ -n "$PATH" ] || PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin
|
||||||
|
|
||||||
[ -z "$LOGFILE" ] && LOGFILE=/var/log/messages
|
setup_logread
|
||||||
|
|
||||||
if ( ps ax 2> /dev/null | grep -v grep | qt grep 'syslogd.*-C' ) ; then
|
|
||||||
g_logread="logread | tac"
|
|
||||||
elif [ -r $LOGFILE ]; then
|
|
||||||
g_logread="tac $LOGFILE"
|
|
||||||
else
|
|
||||||
fatal_error "LOGFILE ($LOGFILE) does not exist!"
|
|
||||||
fi
|
|
||||||
#
|
#
|
||||||
# See if we have a real version of "tail" -- use separate redirection so
|
# See if we have a real version of "tail" -- use separate redirection so
|
||||||
# that ash (aka /bin/sh on LRP) doesn't crap
|
# that ash (aka /bin/sh on LRP) doesn't crap
|
||||||
@@ -3633,7 +3657,13 @@ get_config() {
|
|||||||
VERBOSITY=2
|
VERBOSITY=2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
g_hostname=$(hostname 2> /dev/null)
|
if qt mywhich hostname; then
|
||||||
|
g_hostname=$(hostname 2> /dev/null)
|
||||||
|
elif qt mywhich uname; then
|
||||||
|
g_hostname=$(uname -n 2> /dev/null)
|
||||||
|
else
|
||||||
|
g_hostname=localhost
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -n "$IPSET" ]; then
|
if [ -n "$IPSET" ]; then
|
||||||
case "$IPSET" in
|
case "$IPSET" in
|
||||||
|
@@ -33,7 +33,7 @@ startup_error() # $* = Error Message
|
|||||||
echo " ERROR: $@: Firewall state not changed" >&2
|
echo " ERROR: $@: Firewall state not changed" >&2
|
||||||
|
|
||||||
if [ $LOG_VERBOSITY -ge 0 ]; then
|
if [ $LOG_VERBOSITY -ge 0 ]; then
|
||||||
timestamp="$(date +'%_b %d %T') "
|
timestamp="$(date +'%b %d %T') "
|
||||||
echo "${timestamp} ERROR: $@" >> $STARTUP_LOG
|
echo "${timestamp} ERROR: $@" >> $STARTUP_LOG
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -50,7 +50,7 @@ startup_error() # $* = Error Message
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
if [ $LOG_VERBOSITY -ge 0 ]; then
|
if [ $LOG_VERBOSITY -ge 0 ]; then
|
||||||
timestamp="$(date +'%_b %d %T') "
|
timestamp="$(date +'%b %d %T') "
|
||||||
|
|
||||||
case $COMMAND in
|
case $COMMAND in
|
||||||
start)
|
start)
|
||||||
@@ -572,9 +572,9 @@ in_network() # $1 = IP address, $2 = CIDR network
|
|||||||
#
|
#
|
||||||
# Query NetFilter about the existence of a filter chain
|
# Query NetFilter about the existence of a filter chain
|
||||||
#
|
#
|
||||||
chain_exists() # $1 = chain name
|
chain_exists() # $1 = chain name, $2 = table name (optional)
|
||||||
{
|
{
|
||||||
qt1 $g_tool -L $1 -n
|
qt1 $g_tool -t ${2:-filter} -L $1 -n
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -782,12 +782,15 @@ mutex_on()
|
|||||||
local lockf
|
local lockf
|
||||||
lockf=${LOCKFILE:=${VARDIR}/lock}
|
lockf=${LOCKFILE:=${VARDIR}/lock}
|
||||||
local lockpid
|
local lockpid
|
||||||
|
local lockd
|
||||||
|
|
||||||
MUTEX_TIMEOUT=${MUTEX_TIMEOUT:-60}
|
MUTEX_TIMEOUT=${MUTEX_TIMEOUT:-60}
|
||||||
|
|
||||||
if [ $MUTEX_TIMEOUT -gt 0 ]; then
|
if [ $MUTEX_TIMEOUT -gt 0 ]; then
|
||||||
|
|
||||||
[ -d ${VARDIR} ] || mkdir -p ${VARDIR}
|
lockd=$(dirname $LOCKFILE)
|
||||||
|
|
||||||
|
[ -d "$lockd" ] || mkdir -p "$lockd"
|
||||||
|
|
||||||
if [ -f $lockf ]; then
|
if [ -f $lockf ]; then
|
||||||
lockpid=`cat ${lockf} 2> /dev/null`
|
lockpid=`cat ${lockf} 2> /dev/null`
|
||||||
@@ -807,6 +810,11 @@ mutex_on()
|
|||||||
chmod u+w ${lockf}
|
chmod u+w ${lockf}
|
||||||
echo $$ > ${lockf}
|
echo $$ > ${lockf}
|
||||||
chmod u-w ${lockf}
|
chmod u-w ${lockf}
|
||||||
|
elif qt mywhich lock; then
|
||||||
|
lock -${MUTEX_TIMEOUT} -r1 ${lockf}
|
||||||
|
chmod u+w ${lockf}
|
||||||
|
echo $$ > ${lockf}
|
||||||
|
chmod u-w ${lockf}
|
||||||
else
|
else
|
||||||
while [ -f ${lockf} -a ${try} -lt ${MUTEX_TIMEOUT} ] ; do
|
while [ -f ${lockf} -a ${try} -lt ${MUTEX_TIMEOUT} ] ; do
|
||||||
sleep 1
|
sleep 1
|
||||||
|
26
Shorewall-core/shorewallrc.openwrt
Normal file
26
Shorewall-core/shorewallrc.openwrt
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
#
|
||||||
|
# Created by Shorewall Core version 5.0.2-RC1 configure - Fri, Nov 06, 2015 10:02:03 AM
|
||||||
|
#
|
||||||
|
# Input: host=openwrt
|
||||||
|
#
|
||||||
|
HOST=openwrt
|
||||||
|
PREFIX=/usr
|
||||||
|
SHAREDIR=${PREFIX}/share
|
||||||
|
LIBEXECDIR=${PREFIX}/share
|
||||||
|
PERLLIBDIR=${PREFIX}/share/shorewall
|
||||||
|
CONFDIR=/etc
|
||||||
|
SBINDIR=/sbin
|
||||||
|
MANDIR=${PREFIX}/man
|
||||||
|
INITDIR=/etc/init.d
|
||||||
|
INITSOURCE=init.openwrt.sh
|
||||||
|
INITFILE=$PRODUCT
|
||||||
|
AUXINITSOURCE=
|
||||||
|
AUXINITFILE=
|
||||||
|
SERVICEDIR=
|
||||||
|
SERVICEFILE=
|
||||||
|
SYSCONFFILE=default.openwrt
|
||||||
|
SYSCONFDIR=${CONFDIR}/sysconfig
|
||||||
|
SPARSE=
|
||||||
|
ANNOTATED=
|
||||||
|
VARLIB=/lib
|
||||||
|
VARDIR=${VARLIB}/$PRODUCT
|
@@ -397,6 +397,7 @@ if [ $HOST = debian ]; then
|
|||||||
|
|
||||||
[ $configure -eq 1 ] || mkdir -p ${DESTDIR}${CONFDIR}/default
|
[ $configure -eq 1 ] || mkdir -p ${DESTDIR}${CONFDIR}/default
|
||||||
install_file sysconfig ${DESTDIR}${ETC}/default/shorewall-init 0644
|
install_file sysconfig ${DESTDIR}${ETC}/default/shorewall-init 0644
|
||||||
|
echo "sysconfig file installed in ${DESTDIR}${SYSCONFDIR}/${PRODUCT}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
IFUPDOWN=ifupdown.debian.sh
|
IFUPDOWN=ifupdown.debian.sh
|
||||||
@@ -490,7 +491,11 @@ esac
|
|||||||
if [ -z "$DESTDIR" ]; then
|
if [ -z "$DESTDIR" ]; then
|
||||||
if [ $configure -eq 1 -a -n "$first_install" ]; then
|
if [ $configure -eq 1 -a -n "$first_install" ]; then
|
||||||
if [ $HOST = debian ]; then
|
if [ $HOST = debian ]; then
|
||||||
if mywhich insserv; then
|
if [ -n "$SERVICEDIR" ]; then
|
||||||
|
if systemctl enable ${PRODUCT}.service; then
|
||||||
|
echo "Shorewall Init will start automatically at boot"
|
||||||
|
fi
|
||||||
|
elif mywhich insserv; then
|
||||||
if insserv ${INITDIR}/shorewall-init; then
|
if insserv ${INITDIR}/shorewall-init; then
|
||||||
echo "Shorewall Init will start automatically at boot"
|
echo "Shorewall Init will start automatically at boot"
|
||||||
else
|
else
|
||||||
@@ -554,7 +559,7 @@ fi
|
|||||||
|
|
||||||
[ -z "${DESTDIR}" ] && [ ! -f ~/.shorewallrc ] && cp ${SHAREDIR}/shorewall/shorewallrc .
|
[ -z "${DESTDIR}" ] && [ ! -f ~/.shorewallrc ] && cp ${SHAREDIR}/shorewall/shorewallrc .
|
||||||
|
|
||||||
if [ -f ${DESTDIR}/etc/ppp ]; then
|
if [ -d ${DESTDIR}/etc/ppp ]; then
|
||||||
case $HOST in
|
case $HOST in
|
||||||
debian|suse)
|
debian|suse)
|
||||||
for directory in ip-up.d ip-down.d ipv6-up.d ipv6-down.d; do
|
for directory in ip-up.d ip-down.d ipv6-up.d ipv6-down.d; do
|
||||||
|
@@ -6,7 +6,6 @@
|
|||||||
#
|
#
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Shorewall firewall (bootup security)
|
Description=Shorewall firewall (bootup security)
|
||||||
Wants=network.target
|
|
||||||
Before=network.target
|
Before=network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
|
@@ -174,9 +174,13 @@ if [ -f "$INITSCRIPT" ]; then
|
|||||||
remove_file $INITSCRIPT
|
remove_file $INITSCRIPT
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$SYSTEMD" ]; then
|
if [ -z "${SERVICEDIR}" ]; then
|
||||||
|
SERVICEDIR="$SYSTEMD"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$SERVICEDIR" ]; then
|
||||||
[ $configure -eq 1 ] && systemctl disable shorewall-init.service
|
[ $configure -eq 1 ] && systemctl disable shorewall-init.service
|
||||||
rm -f $SYSTEMD/shorewall-init.service
|
rm -f $SERVICEDIR/shorewall-init.service
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[ "$(readlink -m -q ${SBINDIR}/ifup-local)" = ${SHAREDIR}/shorewall-init ] && remove_file ${SBINDIR}/ifup-local
|
[ "$(readlink -m -q ${SBINDIR}/ifup-local)" = ${SHAREDIR}/shorewall-init ] && remove_file ${SBINDIR}/ifup-local
|
||||||
@@ -202,8 +206,10 @@ if [ -d ${CONFDIR}/ppp ]; then
|
|||||||
done
|
done
|
||||||
|
|
||||||
for file in if-up.local if-down.local; do
|
for file in if-up.local if-down.local; do
|
||||||
if grep -qF Shorewall-based ${CONFDIR}/ppp/$FILE; then
|
if [ -f ${CONFDIR}/ppp/$file ]; then
|
||||||
remove_file ${CONFDIR}/ppp/$FILE
|
if grep -qF Shorewall-based ${CONFDIR}/ppp/$FILE; then
|
||||||
|
remove_file ${CONFDIR}/ppp/$FILE
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
@@ -67,15 +67,6 @@ mywhich() {
|
|||||||
return 2
|
return 2
|
||||||
}
|
}
|
||||||
|
|
||||||
run_install()
|
|
||||||
{
|
|
||||||
if ! install $*; then
|
|
||||||
echo
|
|
||||||
echo "ERROR: Failed to install $*" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
cant_autostart()
|
cant_autostart()
|
||||||
{
|
{
|
||||||
echo
|
echo
|
||||||
@@ -89,7 +80,28 @@ delete_file() # $1 = file to delete
|
|||||||
|
|
||||||
install_file() # $1 = source $2 = target $3 = mode
|
install_file() # $1 = source $2 = target $3 = mode
|
||||||
{
|
{
|
||||||
run_install $T $OWNERSHIP -m $3 $1 ${2}
|
if cp -f $1 $2; then
|
||||||
|
if chmod $3 $2; then
|
||||||
|
if [ -n "$OWNER" ]; then
|
||||||
|
if chown $OWNER:$GROUP $2; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "ERROR: Failed to install $2" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
make_directory() # $1 = directory , $2 = mode
|
||||||
|
{
|
||||||
|
mkdir -p $1
|
||||||
|
chmod 755 $1
|
||||||
|
[ -n "$OWNERSHIP" ] && chown $OWNERSHIP $1
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
require()
|
require()
|
||||||
@@ -187,7 +199,7 @@ elif [ -z "${VARDIR}" ]; then
|
|||||||
VARDIR=${VARLIB}/${PRODUCT}
|
VARDIR=${VARLIB}/${PRODUCT}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for var in SHAREDIR LIBEXECDIRDIRDIR CONFDIR SBINDIR VARLIB VARDIR; do
|
for var in SHAREDIR LIBEXECDIR CONFDIR SBINDIR VARLIB VARDIR; do
|
||||||
require $var
|
require $var
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -201,8 +213,6 @@ PATH=${SBINDIR}:/bin:/usr${SBINDIR}:/usr/bin:/usr/local/bin:/usr/local${SBINDIR}
|
|||||||
# Determine where to install the firewall script
|
# Determine where to install the firewall script
|
||||||
#
|
#
|
||||||
cygwin=
|
cygwin=
|
||||||
INSTALLD='-D'
|
|
||||||
T='-T'
|
|
||||||
|
|
||||||
if [ -z "$BUILD" ]; then
|
if [ -z "$BUILD" ]; then
|
||||||
case $(uname) in
|
case $(uname) in
|
||||||
@@ -245,6 +255,8 @@ if [ -z "$BUILD" ]; then
|
|||||||
BUILD=slackware
|
BUILD=slackware
|
||||||
elif [ -f ${CONFDIR}/arch-release ] ; then
|
elif [ -f ${CONFDIR}/arch-release ] ; then
|
||||||
BUILD=archlinux
|
BUILD=archlinux
|
||||||
|
elif [ -f ${CONFDIR}/openwrt_release ]; then
|
||||||
|
BUILD=openwrt
|
||||||
else
|
else
|
||||||
BUILD=linux
|
BUILD=linux
|
||||||
fi
|
fi
|
||||||
@@ -260,16 +272,16 @@ case $BUILD in
|
|||||||
apple)
|
apple)
|
||||||
[ -z "$OWNER" ] && OWNER=root
|
[ -z "$OWNER" ] && OWNER=root
|
||||||
[ -z "$GROUP" ] && GROUP=wheel
|
[ -z "$GROUP" ] && GROUP=wheel
|
||||||
INSTALLD=
|
|
||||||
T=
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
[ -z "$OWNER" ] && OWNER=root
|
if [ $(id -u) -eq 0 ]; then
|
||||||
[ -z "$GROUP" ] && GROUP=root
|
[ -z "$OWNER" ] && OWNER=root
|
||||||
|
[ -z "$GROUP" ] && GROUP=root
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
OWNERSHIP="-o $OWNER -g $GROUP"
|
[ -n "$OWNER" ] && OWNERSHIP="$OWNER:$GROUP"
|
||||||
|
|
||||||
[ -n "$HOST" ] || HOST=$BUILD
|
[ -n "$HOST" ] || HOST=$BUILD
|
||||||
|
|
||||||
@@ -300,6 +312,9 @@ case "$HOST" in
|
|||||||
suse)
|
suse)
|
||||||
echo "Installing Suse-specific configuration..."
|
echo "Installing Suse-specific configuration..."
|
||||||
;;
|
;;
|
||||||
|
openwrt)
|
||||||
|
echo "Installing OpenWRT-specific configuration..."
|
||||||
|
;;
|
||||||
linux)
|
linux)
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
@@ -316,8 +331,9 @@ if [ -n "$DESTDIR" ]; then
|
|||||||
OWNERSHIP=""
|
OWNERSHIP=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
install -d $OWNERSHIP -m 755 ${DESTDIR}/${SBINDIR}
|
make_directory ${DESTDIR}${SBINDIR} 755
|
||||||
install -d $OWNERSHIP -m 755 ${DESTDIR}${INITDIR}
|
make_directory ${DESTDIR}${INITDIR} 755
|
||||||
|
|
||||||
else
|
else
|
||||||
if [ ! -f ${SHAREDIR}/shorewall/coreversion ]; then
|
if [ ! -f ${SHAREDIR}/shorewall/coreversion ]; then
|
||||||
echo "$PRODUCT $VERSION requires Shorewall Core which does not appear to be installed" >&2
|
echo "$PRODUCT $VERSION requires Shorewall Core which does not appear to be installed" >&2
|
||||||
@@ -357,7 +373,7 @@ fi
|
|||||||
delete_file ${DESTDIR}/usr/share/$PRODUCT/xmodules
|
delete_file ${DESTDIR}/usr/share/$PRODUCT/xmodules
|
||||||
|
|
||||||
install_file $PRODUCT ${DESTDIR}${SBINDIR}/$PRODUCT 0544
|
install_file $PRODUCT ${DESTDIR}${SBINDIR}/$PRODUCT 0544
|
||||||
[ -n "${INITFILE}" ] && install -d $OWNERSHIP -m 755 ${DESTDIR}${INITDIR}
|
[ -n "${INITFILE}" ] && make_directory ${DESTDIR}${INITDIR} 755
|
||||||
|
|
||||||
echo "$Product control program installed in ${DESTDIR}${SBINDIR}/$PRODUCT"
|
echo "$Product control program installed in ${DESTDIR}${SBINDIR}/$PRODUCT"
|
||||||
|
|
||||||
@@ -399,7 +415,7 @@ fi
|
|||||||
if [ -n "$SERVICEDIR" ]; then
|
if [ -n "$SERVICEDIR" ]; then
|
||||||
mkdir -p ${DESTDIR}${SERVICEDIR}
|
mkdir -p ${DESTDIR}${SERVICEDIR}
|
||||||
[ -z "$SERVICEFILE" ] && SERVICEFILE=$PRODUCT.service
|
[ -z "$SERVICEFILE" ] && SERVICEFILE=$PRODUCT.service
|
||||||
run_install $OWNERSHIP -m 644 $SERVICEFILE ${DESTDIR}${SERVICEDIR}/$PRODUCT.service
|
install_file $SERVICEFILE ${DESTDIR}${SERVICEDIR}/$PRODUCT.service 644
|
||||||
[ ${SBINDIR} != /sbin ] && eval sed -i \'s\|/sbin/\|${SBINDIR}/\|\' ${DESTDIR}${SERVICEDIR}/$PRODUCT.service
|
[ ${SBINDIR} != /sbin ] && eval sed -i \'s\|/sbin/\|${SBINDIR}/\|\' ${DESTDIR}${SERVICEDIR}/$PRODUCT.service
|
||||||
echo "Service file $SERVICEFILE installed as ${DESTDIR}${SERVICEDIR}/$PRODUCT.service"
|
echo "Service file $SERVICEFILE installed as ${DESTDIR}${SERVICEDIR}/$PRODUCT.service"
|
||||||
fi
|
fi
|
||||||
@@ -421,9 +437,9 @@ fi
|
|||||||
#
|
#
|
||||||
# Install the Makefile
|
# Install the Makefile
|
||||||
#
|
#
|
||||||
run_install $OWNERSHIP -m 0600 Makefile ${DESTDIR}${CONFDIR}/$PRODUCT
|
install_file Makefile ${DESTDIR}${CONFDIR}/$PRODUCT/Makefile 0600
|
||||||
[ $SHAREDIR = /usr/share ] || eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}/${CONFDIR}/$PRODUCT/Makefile
|
[ $SHAREDIR = /usr/share ] || eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}${CONFDIR}/$PRODUCT/Makefile
|
||||||
[ $SBINDIR = /sbin ] || eval sed -i \'s\|/sbin/\|${SBINDIR}/\|\' ${DESTDIR}/${CONFDIR}/$PRODUCT/Makefile
|
[ $SBINDIR = /sbin ] || eval sed -i \'s\|/sbin/\|${SBINDIR}/\|\' ${DESTDIR}${CONFDIR}/$PRODUCT/Makefile
|
||||||
echo "Makefile installed as ${DESTDIR}${CONFDIR}/$PRODUCT/Makefile"
|
echo "Makefile installed as ${DESTDIR}${CONFDIR}/$PRODUCT/Makefile"
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -438,7 +454,7 @@ echo "Default config path file installed as ${DESTDIR}${SHAREDIR}/$PRODUCT/confi
|
|||||||
for f in lib.* ; do
|
for f in lib.* ; do
|
||||||
if [ -f $f ]; then
|
if [ -f $f ]; then
|
||||||
install_file $f ${DESTDIR}${SHAREDIR}/$PRODUCT/$f 0644
|
install_file $f ${DESTDIR}${SHAREDIR}/$PRODUCT/$f 0644
|
||||||
echo "Library ${f#*.} file installed as ${DESTDIR}/${SHAREDIR}/$PRODUCT/$f"
|
echo "Library ${f#*.} file installed as ${DESTDIR}${SHAREDIR}/$PRODUCT/$f"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -451,7 +467,7 @@ echo "Common functions linked through ${DESTDIR}${SHAREDIR}/$PRODUCT/functions"
|
|||||||
#
|
#
|
||||||
|
|
||||||
install_file shorecap ${DESTDIR}${LIBEXECDIR}/$PRODUCT/shorecap 0755
|
install_file shorecap ${DESTDIR}${LIBEXECDIR}/$PRODUCT/shorecap 0755
|
||||||
[ $SHAREDIR = /usr/share ] || eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}/${LIBEXECDIR}/$PRODUCT/shorecap
|
[ $SHAREDIR = /usr/share ] || eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}${LIBEXECDIR}/$PRODUCT/shorecap
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "Capability file builder installed in ${DESTDIR}${LIBEXECDIR}/$PRODUCT/shorecap"
|
echo "Capability file builder installed in ${DESTDIR}${LIBEXECDIR}/$PRODUCT/shorecap"
|
||||||
@@ -461,17 +477,17 @@ echo "Capability file builder installed in ${DESTDIR}${LIBEXECDIR}/$PRODUCT/shor
|
|||||||
#
|
#
|
||||||
|
|
||||||
if [ -f modules ]; then
|
if [ -f modules ]; then
|
||||||
run_install $OWNERSHIP -m 0600 modules ${DESTDIR}${SHAREDIR}/$PRODUCT
|
install_file modules ${DESTDIR}${SHAREDIR}/$PRODUCT/modules 0600
|
||||||
echo "Modules file installed as ${DESTDIR}${SHAREDIR}/$PRODUCT/modules"
|
echo "Modules file installed as ${DESTDIR}${SHAREDIR}/$PRODUCT/modules"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f helpers ]; then
|
if [ -f helpers ]; then
|
||||||
run_install $OWNERSHIP -m 0600 helpers ${DESTDIR}${SHAREDIR}/$PRODUCT
|
install_file helpers ${DESTDIR}${SHAREDIR}/$PRODUCT/helpers 600
|
||||||
echo "Helper modules file installed as ${DESTDIR}${SHAREDIR}/$PRODUCT/helpers"
|
echo "Helper modules file installed as ${DESTDIR}${SHAREDIR}/$PRODUCT/helpers"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for f in modules.*; do
|
for f in modules.*; do
|
||||||
run_install $OWNERSHIP -m 0644 $f ${DESTDIR}${SHAREDIR}/$PRODUCT/$f
|
install_file $f ${DESTDIR}${SHAREDIR}/$PRODUCT/$f 644
|
||||||
echo "Module file $f installed as ${DESTDIR}${SHAREDIR}/$PRODUCT/$f"
|
echo "Module file $f installed as ${DESTDIR}${SHAREDIR}/$PRODUCT/$f"
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -482,17 +498,17 @@ done
|
|||||||
if [ -d manpages ]; then
|
if [ -d manpages ]; then
|
||||||
cd manpages
|
cd manpages
|
||||||
|
|
||||||
[ -n "$INSTALLD" ] || mkdir -p ${DESTDIR}${MANDIR}/man5/ ${DESTDIR}${MANDIR}/man8/
|
mkdir -p ${DESTDIR}${MANDIR}/man5/ ${DESTDIR}${MANDIR}/man8/
|
||||||
|
|
||||||
for f in *.5; do
|
for f in *.5; do
|
||||||
gzip -c $f > $f.gz
|
gzip -c $f > $f.gz
|
||||||
run_install $T $INSTALLD $OWNERSHIP -m 0644 $f.gz ${DESTDIR}${MANDIR}/man5/$f.gz
|
install_file $f.gz ${DESTDIR}${MANDIR}/man5/$f.gz 644
|
||||||
echo "Man page $f.gz installed to ${DESTDIR}${MANDIR}/man5/$f.gz"
|
echo "Man page $f.gz installed to ${DESTDIR}${MANDIR}/man5/$f.gz"
|
||||||
done
|
done
|
||||||
|
|
||||||
for f in *.8; do
|
for f in *.8; do
|
||||||
gzip -c $f > $f.gz
|
gzip -c $f > $f.gz
|
||||||
run_install $T $INSTALLD $OWNERSHIP -m 0644 $f.gz ${DESTDIR}${MANDIR}/man8/$f.gz
|
install_file $f.gz ${DESTDIR}${MANDIR}/man8/$f.gz 644
|
||||||
echo "Man page $f.gz installed to ${DESTDIR}${MANDIR}/man8/$f.gz"
|
echo "Man page $f.gz installed to ${DESTDIR}${MANDIR}/man8/$f.gz"
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -502,7 +518,7 @@ if [ -d manpages ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -d ${DESTDIR}${CONFDIR}/logrotate.d ]; then
|
if [ -d ${DESTDIR}${CONFDIR}/logrotate.d ]; then
|
||||||
run_install $OWNERSHIP -m 0644 logrotate ${DESTDIR}${CONFDIR}/logrotate.d/$PRODUCT
|
install_file logrotate ${DESTDIR}${CONFDIR}/logrotate.d/$PRODUCT 644
|
||||||
echo "Logrotate file installed as ${DESTDIR}${CONFDIR}/logrotate.d/$PRODUCT"
|
echo "Logrotate file installed as ${DESTDIR}${CONFDIR}/logrotate.d/$PRODUCT"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -533,13 +549,13 @@ if [ -n "$SYSCONFFILE" -a -f "$SYSCONFFILE" -a ! -f ${DESTDIR}${SYSCONFDIR}/${PR
|
|||||||
chmod 755 ${DESTDIR}${SYSCONFDIR}
|
chmod 755 ${DESTDIR}${SYSCONFDIR}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
run_install $OWNERSHIP -m 0644 ${SYSCONFFILE} ${DESTDIR}${SYSCONFDIR}/${PRODUCT}
|
install_file ${SYSCONFFILE} ${DESTDIR}${SYSCONFDIR}/${PRODUCT} 0640
|
||||||
echo "$SYSCONFFILE installed in ${DESTDIR}${SYSCONFDIR}/${PRODUCT}"
|
echo "$SYSCONFFILE installed in ${DESTDIR}${SYSCONFDIR}/${PRODUCT}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ${SHAREDIR} != /usr/share ]; then
|
if [ ${SHAREDIR} != /usr/share ]; then
|
||||||
eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}/${SHAREDIR}/${PRODUCT}/lib.base
|
eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}${SHAREDIR}/${PRODUCT}/lib.base
|
||||||
eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}/${SBINDIR}/$PRODUCT
|
eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}${SBINDIR}/$PRODUCT
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $configure -eq 1 -a -z "$DESTDIR" -a -n "$first_install" -a -z "${cygwin}${mac}" ]; then
|
if [ $configure -eq 1 -a -z "$DESTDIR" -a -n "$first_install" -a -z "${cygwin}${mac}" ]; then
|
||||||
@@ -587,6 +603,13 @@ if [ $configure -eq 1 -a -z "$DESTDIR" -a -n "$first_install" -a -z "${cygwin}${
|
|||||||
else
|
else
|
||||||
cant_autostart
|
cant_autostart
|
||||||
fi
|
fi
|
||||||
|
elif [ $HOST = openwrt -a -f ${CONFDIR}/rc.common ]; then
|
||||||
|
/etc/init.d/$PRODUCT enable
|
||||||
|
if /etc/init.d/$PRODUCT enabled; then
|
||||||
|
echo "$PRODUCT will start automatically at boot"
|
||||||
|
else
|
||||||
|
cant_autostart
|
||||||
|
fi
|
||||||
elif [ "$INITFILE" != rc.${PRODUCT} ]; then #Slackware starts this automatically
|
elif [ "$INITFILE" != rc.${PRODUCT} ]; then #Slackware starts this automatically
|
||||||
cant_autostart
|
cant_autostart
|
||||||
fi
|
fi
|
||||||
|
@@ -168,7 +168,15 @@ if [ $configure -eq 1 ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -L ${SHAREDIR}/shorewall-lite/init ]; then
|
if [ -L ${SHAREDIR}/shorewall-lite/init ]; then
|
||||||
FIREWALL=$(readlink -m -q ${SHAREDIR}/shorewall-lite/init)
|
if [ $HOST = openwrt ]; then
|
||||||
|
if [ $configure -eq 1 ] && /etc/init.d/shorewall-lite enabled; then
|
||||||
|
/etc/init.d/shorewall-lite disable
|
||||||
|
fi
|
||||||
|
|
||||||
|
FIREWALL=$(readlink ${SHAREDIR}/shorewall-lite/init)
|
||||||
|
else
|
||||||
|
FIREWALL=$(readlink -m -q ${SHAREDIR}/shorewall-lite/init)
|
||||||
|
fi
|
||||||
elif [ -n "$INITFILE" ]; then
|
elif [ -n "$INITFILE" ]; then
|
||||||
FIREWALL=${INITDIR}/${INITFILE}
|
FIREWALL=${INITDIR}/${INITFILE}
|
||||||
fi
|
fi
|
||||||
@@ -187,9 +195,11 @@ if [ -f "$FIREWALL" ]; then
|
|||||||
remove_file $FIREWALL
|
remove_file $FIREWALL
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$SYSTEMD" ]; then
|
[ -z "$SERVICEDIR" ] && SERVICEDIR="$SYSTEMD"
|
||||||
|
|
||||||
|
if [ -n "$SERVICEDIR" ]; then
|
||||||
[ $configure -eq 1 ] && systemctl disable ${PRODUCT}
|
[ $configure -eq 1 ] && systemctl disable ${PRODUCT}
|
||||||
rm -f $SYSTEMD/shorewall-lite.service
|
rm -f $SERVICEDIR/shorewall-lite.service
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -f ${SBINDIR}/shorewall-lite
|
rm -f ${SBINDIR}/shorewall-lite
|
||||||
@@ -199,6 +209,7 @@ rm -rf ${VARDIR}/shorewall-lite
|
|||||||
rm -rf ${SHAREDIR}/shorewall-lite
|
rm -rf ${SHAREDIR}/shorewall-lite
|
||||||
rm -rf ${LIBEXECDIR}/shorewall-lite
|
rm -rf ${LIBEXECDIR}/shorewall-lite
|
||||||
rm -f ${CONFDIR}/logrotate.d/shorewall-lite
|
rm -f ${CONFDIR}/logrotate.d/shorewall-lite
|
||||||
|
rm -f ${SYSCONFDIR}/shorewall-lite
|
||||||
|
|
||||||
rm -f ${MANDIR}/man5/shorewall-lite*
|
rm -f ${MANDIR}/man5/shorewall-lite*
|
||||||
rm -f ${MANDIR}/man8/shorewall-lite*
|
rm -f ${MANDIR}/man8/shorewall-lite*
|
||||||
|
@@ -7029,7 +7029,7 @@ sub isolate_source_interface( $ ) {
|
|||||||
$inets = $2;
|
$inets = $2;
|
||||||
} elsif ( $source =~ /^(.+?):\[(.+)\]\s*$/ ||
|
} elsif ( $source =~ /^(.+?):\[(.+)\]\s*$/ ||
|
||||||
$source =~ /^(.+?):(!?\+.+)$/ ||
|
$source =~ /^(.+?):(!?\+.+)$/ ||
|
||||||
$source =~ /^(.+?):(!?[&%].+)$/ ||
|
$source =~ /^(.+?):(!?[&%~].+)$/ ||
|
||||||
$source =~ /^(.+?):(\[.+\]\/(?:\d+))\s*$/
|
$source =~ /^(.+?):(\[.+\]\/(?:\d+))\s*$/
|
||||||
) {
|
) {
|
||||||
$iiface = $1;
|
$iiface = $1;
|
||||||
|
@@ -5166,6 +5166,7 @@ sub unsupported_yes_no_warning( $ ) {
|
|||||||
#
|
#
|
||||||
sub get_params( $ ) {
|
sub get_params( $ ) {
|
||||||
my $export = $_[0];
|
my $export = $_[0];
|
||||||
|
my $cygwin = ( $shorewallrc{HOST} eq 'cygwin' );
|
||||||
|
|
||||||
my $fn = find_file 'params';
|
my $fn = find_file 'params';
|
||||||
|
|
||||||
@@ -5207,14 +5208,16 @@ sub get_params( $ ) {
|
|||||||
$shell = BASH;
|
$shell = BASH;
|
||||||
|
|
||||||
for ( @params ) {
|
for ( @params ) {
|
||||||
if ( /^declare -x (.*?)="(.*[^\\])"$/ ) {
|
chomp;
|
||||||
|
if ( $cygwin && /^declare -x (.*?)="(.*)"$/ ) {
|
||||||
|
$params{$1} = $2 unless $1 eq '_';
|
||||||
|
} elsif ( /^declare -x (.*?)="(.*[^\\])"$/ ) {
|
||||||
$params{$1} = $2 unless $1 eq '_';
|
$params{$1} = $2 unless $1 eq '_';
|
||||||
} elsif ( /^declare -x (.*?)="(.*)$/ ) {
|
} elsif ( /^declare -x (.*?)="(.*)$/ ) {
|
||||||
$params{$variable=$1} = $2 eq '"' ? '' : "${2}\n";
|
$params{$variable=$1} = $2 eq '"' ? '' : "${2}\n";
|
||||||
} elsif ( /^declare -x (.*)\s+$/ || /^declare -x (.*)=""$/ ) {
|
} elsif ( /^declare -x (.*)\s+$/ || /^declare -x (.*)=""$/ ) {
|
||||||
$params{$1} = '';
|
$params{$1} = '';
|
||||||
} else {
|
} else {
|
||||||
chomp;
|
|
||||||
if ($variable) {
|
if ($variable) {
|
||||||
s/"$//;
|
s/"$//;
|
||||||
$params{$variable} .= $_;
|
$params{$variable} .= $_;
|
||||||
@@ -5235,14 +5238,16 @@ sub get_params( $ ) {
|
|||||||
$shell = OLDBASH;
|
$shell = OLDBASH;
|
||||||
|
|
||||||
for ( @params ) {
|
for ( @params ) {
|
||||||
if ( /^export (.*?)="(.*[^\\])"$/ ) {
|
chomp;
|
||||||
|
if ( $cygwin && /^export (.*?)="(.*)"$/ ) {
|
||||||
|
$params{$1} = $2 unless $1 eq '_';
|
||||||
|
} elsif ( /^export (.*?)="(.*[^\\])"$/ ) {
|
||||||
$params{$1} = $2 unless $1 eq '_';
|
$params{$1} = $2 unless $1 eq '_';
|
||||||
} elsif ( /^export (.*?)="(.*)$/ ) {
|
} elsif ( /^export (.*?)="(.*)$/ ) {
|
||||||
$params{$variable=$1} = $2 eq '"' ? '' : "${2}\n";
|
$params{$variable=$1} = $2 eq '"' ? '' : "${2}\n";
|
||||||
} elsif ( /^export ([^\s=]+)\s*$/ || /^export (.*)=""$/ ) {
|
} elsif ( /^export ([^\s=]+)\s*$/ || /^export (.*)=""$/ ) {
|
||||||
$params{$1} = '';
|
$params{$1} = '';
|
||||||
} else {
|
} else {
|
||||||
chomp;
|
|
||||||
if ($variable) {
|
if ($variable) {
|
||||||
s/"$//;
|
s/"$//;
|
||||||
$params{$variable} .= $_;
|
$params{$variable} .= $_;
|
||||||
@@ -5262,6 +5267,7 @@ sub get_params( $ ) {
|
|||||||
$shell = ASH;
|
$shell = ASH;
|
||||||
|
|
||||||
for ( @params ) {
|
for ( @params ) {
|
||||||
|
chomp;
|
||||||
if ( /^export (.*?)='(.*'"'"')$/ ) {
|
if ( /^export (.*?)='(.*'"'"')$/ ) {
|
||||||
$params{$variable=$1}="${2}\n";
|
$params{$variable=$1}="${2}\n";
|
||||||
} elsif ( /^export (.*?)='(.*)'$/ ) {
|
} elsif ( /^export (.*?)='(.*)'$/ ) {
|
||||||
@@ -5269,7 +5275,6 @@ sub get_params( $ ) {
|
|||||||
} elsif ( /^export (.*?)='(.*)$/ ) {
|
} elsif ( /^export (.*?)='(.*)$/ ) {
|
||||||
$params{$variable=$1}="${2}\n";
|
$params{$variable=$1}="${2}\n";
|
||||||
} else {
|
} else {
|
||||||
chomp;
|
|
||||||
if ($variable) {
|
if ($variable) {
|
||||||
s/'$//;
|
s/'$//;
|
||||||
$params{$variable} .= $_;
|
$params{$variable} .= $_;
|
||||||
@@ -5281,9 +5286,23 @@ sub get_params( $ ) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for ( keys %params ) {
|
for ( keys %params ) {
|
||||||
unless ( $_ eq 'SHOREWALL_INIT_SCRIPT' ) {
|
if ( /[^\w]/ ) {
|
||||||
fatal_error "The variable name $_ is reserved and may not be set in the params file"
|
#
|
||||||
if /^SW_/ || /^SHOREWALL_/ || ( exists $config{$_} && ! exists $ENV{$_} ) || exists $reserved{$_};
|
# Useless variable with special characters in its name
|
||||||
|
#
|
||||||
|
delete $params{$_};
|
||||||
|
} elsif ( /^(?:SHLVL|OLDPWD)$/ ) {
|
||||||
|
#
|
||||||
|
# The shell running getparams generates those
|
||||||
|
#
|
||||||
|
delete $params{$_};
|
||||||
|
} else {
|
||||||
|
unless ( $_ eq 'SHOREWALL_INIT_SCRIPT' ) {
|
||||||
|
fatal_error "The variable name $_ is reserved and may not be set in the params file"
|
||||||
|
if /^SW_/ || /^SHOREWALL_/ || ( exists $config{$_} && ! exists $ENV{$_} ) || exists $reserved{$_};
|
||||||
|
}
|
||||||
|
|
||||||
|
$params{$_} = '' unless defined $params{$_};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5333,6 +5352,8 @@ sub export_params() {
|
|||||||
next if exists $compiler_params{$param};
|
next if exists $compiler_params{$param};
|
||||||
|
|
||||||
my $value = $params{$param};
|
my $value = $params{$param};
|
||||||
|
|
||||||
|
chomp $value;
|
||||||
#
|
#
|
||||||
# Values in %params are generated from the output of 'export -p'.
|
# Values in %params are generated from the output of 'export -p'.
|
||||||
# The different shells have different conventions for delimiting
|
# The different shells have different conventions for delimiting
|
||||||
@@ -5343,19 +5364,27 @@ sub export_params() {
|
|||||||
$value =~ s/\\"/"/g;
|
$value =~ s/\\"/"/g;
|
||||||
} elsif ( $shell == OLDBASH ) {
|
} elsif ( $shell == OLDBASH ) {
|
||||||
$value =~ s/\\'/'/g;
|
$value =~ s/\\'/'/g;
|
||||||
|
$value =~ s/\\"/"/g;
|
||||||
|
$value =~ s/\\\\/\\/g;
|
||||||
} else {
|
} else {
|
||||||
$value =~ s/'"'"'/'/g;
|
$value =~ s/'"'"'/'/g;
|
||||||
}
|
}
|
||||||
#
|
#
|
||||||
# Don't export pairs from %ENV
|
# Don't export pairs from %ENV
|
||||||
#
|
#
|
||||||
next if defined $ENV{$param} && $value eq $ENV{$param};
|
if ( defined $ENV{$param} ) {
|
||||||
|
next if $value eq $ENV{$param};
|
||||||
|
} elsif ( exists $ENV{$param} ) {
|
||||||
|
next unless supplied $value;
|
||||||
|
}
|
||||||
|
|
||||||
emit "#\n# From the params file\n#" unless $count++;
|
emit "#\n# From the params file\n#" unless $count++;
|
||||||
#
|
#
|
||||||
# We will use double quotes and escape embedded quotes with \.
|
# We will use double quotes and escape embedded quotes with \.
|
||||||
#
|
#
|
||||||
if ( $value =~ /[\s()['"]/ ) {
|
if ( $value =~ /^"[^"]*"$/ ) {
|
||||||
|
emit "$param=$value";
|
||||||
|
} elsif ( $value =~ /[\s()['"]/ ) {
|
||||||
$value =~ s/"/\\"/g;
|
$value =~ s/"/\\"/g;
|
||||||
emit "$param='$value'";
|
emit "$param='$value'";
|
||||||
} else {
|
} else {
|
||||||
|
@@ -60,7 +60,6 @@ our @routemarked_providers;
|
|||||||
our %routemarked_interfaces;
|
our %routemarked_interfaces;
|
||||||
our @routemarked_interfaces;
|
our @routemarked_interfaces;
|
||||||
our %provider_interfaces;
|
our %provider_interfaces;
|
||||||
our @load_providers;
|
|
||||||
our @load_interfaces;
|
our @load_interfaces;
|
||||||
|
|
||||||
our $balancing;
|
our $balancing;
|
||||||
@@ -98,7 +97,6 @@ sub initialize( $ ) {
|
|||||||
%routemarked_interfaces = ();
|
%routemarked_interfaces = ();
|
||||||
@routemarked_interfaces = ();
|
@routemarked_interfaces = ();
|
||||||
%provider_interfaces = ();
|
%provider_interfaces = ();
|
||||||
@load_providers = ();
|
|
||||||
@load_interfaces = ();
|
@load_interfaces = ();
|
||||||
$balancing = 0;
|
$balancing = 0;
|
||||||
$fallback = 0;
|
$fallback = 0;
|
||||||
@@ -697,7 +695,7 @@ sub process_a_provider( $ ) {
|
|||||||
if ( $track ) {
|
if ( $track ) {
|
||||||
if ( $routemarked_interfaces{$interface} ) {
|
if ( $routemarked_interfaces{$interface} ) {
|
||||||
fatal_error "Interface $interface is tracked through an earlier provider" if $routemarked_interfaces{$interface} == ROUTEMARKED_UNSHARED;
|
fatal_error "Interface $interface is tracked through an earlier provider" if $routemarked_interfaces{$interface} == ROUTEMARKED_UNSHARED;
|
||||||
fatal_error "Multiple providers through the same interface must their IP address specified in the INTERFACES" unless $shared;
|
fatal_error "Multiple providers through the same interface must have their IP address specified in the INTERFACES column" unless $shared;
|
||||||
} else {
|
} else {
|
||||||
$routemarked_interfaces{$interface} = $shared ? ROUTEMARKED_SHARED : ROUTEMARKED_UNSHARED;
|
$routemarked_interfaces{$interface} = $shared ? ROUTEMARKED_SHARED : ROUTEMARKED_UNSHARED;
|
||||||
push @routemarked_interfaces, $interface;
|
push @routemarked_interfaces, $interface;
|
||||||
@@ -1380,15 +1378,32 @@ sub finish_providers() {
|
|||||||
emit( 'fi',
|
emit( 'fi',
|
||||||
'' );
|
'' );
|
||||||
} else {
|
} else {
|
||||||
|
if ( ( $fallback || @load_interfaces ) && $config{USE_DEFAULT_RT} ) {
|
||||||
|
emit ( q(#),
|
||||||
|
q(# Delete any default routes in the 'main' table),
|
||||||
|
q(#),
|
||||||
|
"while qt \$IP -$family route del default table $main; do",
|
||||||
|
' true',
|
||||||
|
'done',
|
||||||
|
''
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
emit ( q(#),
|
||||||
|
q(# We don't have any 'balance'. 'load=' or 'fallback=' providers so we restore any default route that we've saved),
|
||||||
|
q(#),
|
||||||
|
qq(restore_default_route $config{USE_DEFAULT_RT}),
|
||||||
|
''
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
emit ( '#',
|
emit ( '#',
|
||||||
'# We don\'t have any \'balance\' providers so we restore any default route that we\'ve saved',
|
'# Delete any routes in the \'balance\' table',
|
||||||
'#',
|
'#',
|
||||||
"restore_default_route $config{USE_DEFAULT_RT}" ,
|
"while qt \$IP -$family route del default table $balance; do",
|
||||||
'#',
|
' true',
|
||||||
'# And delete any routes in the \'balance\' table',
|
'done',
|
||||||
'#',
|
''
|
||||||
"qt \$IP -$family route del default table $balance",
|
);
|
||||||
'' );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $fallback ) {
|
if ( $fallback ) {
|
||||||
@@ -1621,6 +1636,7 @@ sub map_provider_to_interface() {
|
|||||||
|
|
||||||
sub setup_providers() {
|
sub setup_providers() {
|
||||||
our $providers;
|
our $providers;
|
||||||
|
our $pseudoproviders;
|
||||||
|
|
||||||
if ( $providers ) {
|
if ( $providers ) {
|
||||||
if ( $maxload ) {
|
if ( $maxload ) {
|
||||||
@@ -1655,6 +1671,11 @@ sub setup_providers() {
|
|||||||
|
|
||||||
push_indent;
|
push_indent;
|
||||||
|
|
||||||
|
if ( $pseudoproviders ) {
|
||||||
|
emit '';
|
||||||
|
emit "start_$providers{$_}->{what}_$_" for @providers;
|
||||||
|
}
|
||||||
|
|
||||||
emit "\nundo_routing";
|
emit "\nundo_routing";
|
||||||
emit "restore_default_route $config{USE_DEFAULT_RT}";
|
emit "restore_default_route $config{USE_DEFAULT_RT}";
|
||||||
|
|
||||||
|
@@ -452,6 +452,16 @@ sub process_mangle_rule1( $$$$$$$$$$$$$$$$$$ ) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
DROP => {
|
||||||
|
defaultchain => 0,
|
||||||
|
allowedchains => PREROUTING | FORWARD | OUTPUT | POSTROUTING,
|
||||||
|
minparams => 0,
|
||||||
|
maxparams => 0,
|
||||||
|
function => sub() {
|
||||||
|
$target = 'DROP';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
DSCP => {
|
DSCP => {
|
||||||
defaultchain => 0,
|
defaultchain => 0,
|
||||||
allowedchains => PREROUTING | FORWARD | OUTPUT | POSTROUTING,
|
allowedchains => PREROUTING | FORWARD | OUTPUT | POSTROUTING,
|
||||||
|
@@ -389,7 +389,7 @@ if [ -z "${DESTDIR}" -a $PRODUCT = shorewall -a ! -f ${SHAREDIR}/$PRODUCT/coreve
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
install_file $PRODUCT ${DESTDIR}${SBINDIR}/$PRODUCT 0755
|
install_file $PRODUCT ${DESTDIR}${SBINDIR}/$PRODUCT 0755
|
||||||
[ $SHAREDIR = /usr/share ] || eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}/${SBINDIR}/${PRODUCT}
|
[ $SHAREDIR = /usr/share ] || eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}${SBINDIR}/${PRODUCT}
|
||||||
echo "$PRODUCT control program installed in ${DESTDIR}${SBINDIR}/$PRODUCT"
|
echo "$PRODUCT control program installed in ${DESTDIR}${SBINDIR}/$PRODUCT"
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -439,31 +439,33 @@ if [ -n "$SERVICEDIR" ]; then
|
|||||||
echo "Service file $SERVICEFILE installed as ${DESTDIR}${SERVICEDIR}/$PRODUCT.service"
|
echo "Service file $SERVICEFILE installed as ${DESTDIR}${SERVICEDIR}/$PRODUCT.service"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#
|
if [ -z "$first_install" ]; then
|
||||||
# These use absolute path names since the files that they are removing existed
|
#
|
||||||
# prior to the use of directory variables
|
# These use absolute path names since the files that they are removing existed
|
||||||
#
|
# prior to the use of directory variables
|
||||||
delete_file ${DESTDIR}/usr/share/$PRODUCT/compiler
|
#
|
||||||
delete_file ${DESTDIR}/usr/share/$PRODUCT/lib.accounting
|
delete_file ${DESTDIR}/usr/share/$PRODUCT/compiler
|
||||||
delete_file ${DESTDIR}/usr/share/$PRODUCT/lib.actions
|
delete_file ${DESTDIR}/usr/share/$PRODUCT/lib.accounting
|
||||||
delete_file ${DESTDIR}/usr/share/$PRODUCT/lib.dynamiczones
|
delete_file ${DESTDIR}/usr/share/$PRODUCT/lib.actions
|
||||||
delete_file ${DESTDIR}/usr/share/$PRODUCT/lib.maclist
|
delete_file ${DESTDIR}/usr/share/$PRODUCT/lib.dynamiczones
|
||||||
delete_file ${DESTDIR}/usr/share/$PRODUCT/lib.nat
|
delete_file ${DESTDIR}/usr/share/$PRODUCT/lib.maclist
|
||||||
delete_file ${DESTDIR}/usr/share/$PRODUCT/lib.providers
|
delete_file ${DESTDIR}/usr/share/$PRODUCT/lib.nat
|
||||||
delete_file ${DESTDIR}/usr/share/$PRODUCT/lib.proxyarp
|
delete_file ${DESTDIR}/usr/share/$PRODUCT/lib.providers
|
||||||
delete_file ${DESTDIR}/usr/share/$PRODUCT/lib.tc
|
delete_file ${DESTDIR}/usr/share/$PRODUCT/lib.proxyarp
|
||||||
delete_file ${DESTDIR}/usr/share/$PRODUCT/lib.tcrules
|
delete_file ${DESTDIR}/usr/share/$PRODUCT/lib.tc
|
||||||
delete_file ${DESTDIR}/usr/share/$PRODUCT/lib.tunnels
|
delete_file ${DESTDIR}/usr/share/$PRODUCT/lib.tcrules
|
||||||
|
delete_file ${DESTDIR}/usr/share/$PRODUCT/lib.tunnels
|
||||||
|
|
||||||
if [ $PRODUCT = shorewall6 ]; then
|
if [ $PRODUCT = shorewall6 ]; then
|
||||||
delete_file ${DESTDIR}/usr/share/shorewall6/lib.cli
|
delete_file ${DESTDIR}/usr/share/shorewall6/lib.cli
|
||||||
delete_file ${DESTDIR}/usr/share/shorewall6/lib.common
|
delete_file ${DESTDIR}/usr/share/shorewall6/lib.common
|
||||||
delete_file ${DESTDIR}/usr/share/shorewall6/wait4ifup
|
delete_file ${DESTDIR}/usr/share/shorewall6/wait4ifup
|
||||||
|
fi
|
||||||
|
|
||||||
|
delete_file ${DESTDIR}/usr/share/$PRODUCT/prog.header6
|
||||||
|
delete_file ${DESTDIR}/usr/share/$PRODUCT/prog.footer6
|
||||||
fi
|
fi
|
||||||
|
|
||||||
delete_file ${DESTDIR}/usr/share/$PRODUCT/prog.header6
|
|
||||||
delete_file ${DESTDIR}/usr/share/$PRODUCT/prog.footer6
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Install the Modules file
|
# Install the Modules file
|
||||||
#
|
#
|
||||||
@@ -507,7 +509,7 @@ run_install $OWNERSHIP -m 0644 $PRODUCT.conf ${DESTDIR}${SHAREDIR}/$PR
|
|||||||
run_install $OWNERSHIP -m 0644 $PRODUCT.conf.annotated ${DESTDIR}${SHAREDIR}/$PRODUCT/configfiles/
|
run_install $OWNERSHIP -m 0644 $PRODUCT.conf.annotated ${DESTDIR}${SHAREDIR}/$PRODUCT/configfiles/
|
||||||
|
|
||||||
if [ ! -f ${DESTDIR}${CONFDIR}/$PRODUCT/$PRODUCT.conf ]; then
|
if [ ! -f ${DESTDIR}${CONFDIR}/$PRODUCT/$PRODUCT.conf ]; then
|
||||||
run_install $OWNERSHIP -m 0644 ${PRODUCT}.conf${suffix} ${DESTDIR}${CONFDIR}/$PRODUCT/$PRODUCT.conf
|
run_install $OWNERSHIP -m 0600 ${PRODUCT}.conf${suffix} ${DESTDIR}${CONFDIR}/$PRODUCT/$PRODUCT.conf
|
||||||
|
|
||||||
if [ "$SHAREDIR" != /usr/share -o "$CONFDIR" != /etc ]; then
|
if [ "$SHAREDIR" != /usr/share -o "$CONFDIR" != /etc ]; then
|
||||||
if [ $PRODUCT = shorewall ]; then
|
if [ $PRODUCT = shorewall ]; then
|
||||||
@@ -546,7 +548,7 @@ run_install $OWNERSHIP -m 0644 zones ${DESTDIR}${SHAREDIR}/$PRODUCT/co
|
|||||||
run_install $OWNERSHIP -m 0644 zones.annotated ${DESTDIR}${SHAREDIR}/$PRODUCT/configfiles/
|
run_install $OWNERSHIP -m 0644 zones.annotated ${DESTDIR}${SHAREDIR}/$PRODUCT/configfiles/
|
||||||
|
|
||||||
if [ -z "$SPARSE" -a ! -f ${DESTDIR}${CONFDIR}/$PRODUCT/zones ]; then
|
if [ -z "$SPARSE" -a ! -f ${DESTDIR}${CONFDIR}/$PRODUCT/zones ]; then
|
||||||
run_install $OWNERSHIP -m 0644 zones${suffix} ${DESTDIR}${CONFDIR}/$PRODUCT/zones
|
run_install $OWNERSHIP -m 0600 zones${suffix} ${DESTDIR}${CONFDIR}/$PRODUCT/zones
|
||||||
echo "Zones file installed as ${DESTDIR}${CONFDIR}/$PRODUCT/zones"
|
echo "Zones file installed as ${DESTDIR}${CONFDIR}/$PRODUCT/zones"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -624,7 +626,7 @@ run_install $OWNERSHIP -m 0644 params.annotated ${DESTDIR}${SHAREDIR}/$PRODUCT/c
|
|||||||
if [ -f ${DESTDIR}${CONFDIR}/$PRODUCT/params ]; then
|
if [ -f ${DESTDIR}${CONFDIR}/$PRODUCT/params ]; then
|
||||||
chmod 0644 ${DESTDIR}${CONFDIR}/$PRODUCT/params
|
chmod 0644 ${DESTDIR}${CONFDIR}/$PRODUCT/params
|
||||||
else
|
else
|
||||||
run_install $OWNERSHIP -m 0644 params${suffix} ${DESTDIR}${CONFDIR}/$PRODUCT/params
|
run_install $OWNERSHIP -m 0600 params${suffix} ${DESTDIR}${CONFDIR}/$PRODUCT/params
|
||||||
echo "Parameter file installed as ${DESTDIR}${CONFDIR}/$PRODUCT/params"
|
echo "Parameter file installed as ${DESTDIR}${CONFDIR}/$PRODUCT/params"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -1018,7 +1020,7 @@ run_install $OWNERSHIP -m 0644 actions ${DESTDIR}${SHAREDIR}/$PRODUCT/
|
|||||||
run_install $OWNERSHIP -m 0644 actions.annotated ${DESTDIR}${SHAREDIR}/$PRODUCT/configfiles/
|
run_install $OWNERSHIP -m 0644 actions.annotated ${DESTDIR}${SHAREDIR}/$PRODUCT/configfiles/
|
||||||
|
|
||||||
if [ -z "$SPARSE" -a ! -f ${DESTDIR}${CONFDIR}/$PRODUCT/actions ]; then
|
if [ -z "$SPARSE" -a ! -f ${DESTDIR}${CONFDIR}/$PRODUCT/actions ]; then
|
||||||
run_install $OWNERSHIP -m 0644 actions${suffix} ${DESTDIR}${CONFDIR}/$PRODUCT/actions
|
run_install $OWNERSHIP -m 0600 actions${suffix} ${DESTDIR}${CONFDIR}/$PRODUCT/actions
|
||||||
echo "Actions file installed as ${DESTDIR}${CONFDIR}/$PRODUCT/actions"
|
echo "Actions file installed as ${DESTDIR}${CONFDIR}/$PRODUCT/actions"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -1029,7 +1031,7 @@ run_install $OWNERSHIP -m 0644 routes ${DESTDIR}${SHAREDIR}/$PRODUCT/c
|
|||||||
run_install $OWNERSHIP -m 0644 routes.annotated ${DESTDIR}${SHAREDIR}/$PRODUCT/configfiles/
|
run_install $OWNERSHIP -m 0644 routes.annotated ${DESTDIR}${SHAREDIR}/$PRODUCT/configfiles/
|
||||||
|
|
||||||
if [ -z "$SPARSE" -a ! -f ${DESTDIR}${CONFDIR}/$PRODUCT/routes ]; then
|
if [ -z "$SPARSE" -a ! -f ${DESTDIR}${CONFDIR}/$PRODUCT/routes ]; then
|
||||||
run_install $OWNERSHIP -m 0644 routes${suffix} ${DESTDIR}${CONFDIR}/$PRODUCT/routes
|
run_install $OWNERSHIP -m 0600 routes${suffix} ${DESTDIR}${CONFDIR}/$PRODUCT/routes
|
||||||
echo "Routes file installed as ${DESTDIR}${CONFDIR}/$PRODUCT/routes"
|
echo "Routes file installed as ${DESTDIR}${CONFDIR}/$PRODUCT/routes"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -1076,7 +1078,7 @@ if [ $PRODUCT = shorewall6 ]; then
|
|||||||
# Symbolically link 'functions' to lib.base
|
# Symbolically link 'functions' to lib.base
|
||||||
#
|
#
|
||||||
ln -sf lib.base ${DESTDIR}${SHAREDIR}/$PRODUCT/functions
|
ln -sf lib.base ${DESTDIR}${SHAREDIR}/$PRODUCT/functions
|
||||||
[ $SHAREDIR = /usr/share ] || eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}/${SHAREDIR}/${PRODUCT}/lib.base
|
[ $SHAREDIR = /usr/share ] || eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}${SHAREDIR}/${PRODUCT}/lib.base
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -d Perl ]; then
|
if [ -d Perl ]; then
|
||||||
|
@@ -70,15 +70,7 @@ get_config() {
|
|||||||
# This block is avoided for compile for export and when the user isn't root
|
# This block is avoided for compile for export and when the user isn't root
|
||||||
#
|
#
|
||||||
if [ "$3" = Yes ]; then
|
if [ "$3" = Yes ]; then
|
||||||
if [ -n "$LOGFILE" ]; then
|
setup_logread
|
||||||
if [ -n "$(syslog_circular_buffer)" ]; then
|
|
||||||
g_logread="logread | tac"
|
|
||||||
elif [ -r $LOGFILE ]; then
|
|
||||||
g_logread="tac $LOGFILE"
|
|
||||||
else
|
|
||||||
fatal_error "LOGFILE ($LOGFILE) does not exist!"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $g_family -eq 4 ]; then
|
if [ $g_family -eq 4 ]; then
|
||||||
|
@@ -168,8 +168,8 @@ fi
|
|||||||
|
|
||||||
rm -f ${SBINDIR}/shorewall
|
rm -f ${SBINDIR}/shorewall
|
||||||
|
|
||||||
if [ -L ${SHAREDIR}/shorewall6/init ]; then
|
if [ -L ${SHAREDIR}/shorewall/init ]; then
|
||||||
FIREWALL=$(readlink -m -q ${SHAREDIR}/shorewall6/init)
|
FIREWALL=$(readlink -m -q ${SHAREDIR}/shorewall/init)
|
||||||
elif [ -n "$INITFILE" ]; then
|
elif [ -n "$INITFILE" ]; then
|
||||||
FIREWALL=${INITDIR}/${INITFILE}
|
FIREWALL=${INITDIR}/${INITFILE}
|
||||||
fi
|
fi
|
||||||
@@ -188,17 +188,19 @@ if [ -f "$FIREWALL" ]; then
|
|||||||
remove_file $FIREWALL
|
remove_file $FIREWALL
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$SYSTEMD" ]; then
|
if [ -z "${SERVICEDIR}" ]; then
|
||||||
|
SERVICEDIR="$SYSTEMD"
|
||||||
|
fi
|
||||||
|
if [ -n "$SERVICEDIR" ]; then
|
||||||
[ $configure -eq 1 ] && systemctl disable ${PRODUCT}
|
[ $configure -eq 1 ] && systemctl disable ${PRODUCT}
|
||||||
rm -f $SYSTEMD/shorewall.service
|
rm -f $SERVICEDIR/shorewall.service
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -rf ${SHAREDIR}/shorewall/version
|
rm -rf ${SHAREDIR}/shorewall/version
|
||||||
rm -rf ${CONFDIR}/shorewall
|
rm -rf ${CONFDIR}/shorewall
|
||||||
|
|
||||||
if [ -n "$SYSCONFDIR" ]; then
|
if [ -n "$SYSCONFDIR" ]; then
|
||||||
[ -n "$SYSCONFFILE" ] || SYSCONFFILE=${PRODUCT};
|
[ -n "$SYSCONFFILE" ] && rm -f ${SYSCONFDIR}/${PRODUCT}
|
||||||
rm -f ${SYSCONFDIR}/${SYSCONFFILE}
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -rf ${VARDIR}/shorewall
|
rm -rf ${VARDIR}/shorewall
|
||||||
|
@@ -144,16 +144,16 @@ fi
|
|||||||
if [ -f ${SHAREDIR}/shorewall6-lite/version ]; then
|
if [ -f ${SHAREDIR}/shorewall6-lite/version ]; then
|
||||||
INSTALLED_VERSION="$(cat ${SHAREDIR}/shorewall6-lite/version)"
|
INSTALLED_VERSION="$(cat ${SHAREDIR}/shorewall6-lite/version)"
|
||||||
if [ "$INSTALLED_VERSION" != "$VERSION" ]; then
|
if [ "$INSTALLED_VERSION" != "$VERSION" ]; then
|
||||||
echo "WARNING: Shorewall Lite Version $INSTALLED_VERSION is installed"
|
echo "WARNING: Shorewall6 Lite Version $INSTALLED_VERSION is installed"
|
||||||
echo " and this is the $VERSION uninstaller."
|
echo " and this is the $VERSION uninstaller."
|
||||||
VERSION="$INSTALLED_VERSION"
|
VERSION="$INSTALLED_VERSION"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "WARNING: Shorewall Lite Version $VERSION is not installed"
|
echo "WARNING: Shorewall6 Lite Version $VERSION is not installed"
|
||||||
VERSION=""
|
VERSION=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Uninstalling Shorewall Lite $VERSION"
|
echo "Uninstalling Shorewall6 Lite $VERSION"
|
||||||
|
|
||||||
[ -n "$SANDBOX" ] && configure=0
|
[ -n "$SANDBOX" ] && configure=0
|
||||||
|
|
||||||
@@ -164,7 +164,15 @@ if [ $configure -eq 1 ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f ${SHAREDIR}/shorewall6-lite/init ]; then
|
if [ -f ${SHAREDIR}/shorewall6-lite/init ]; then
|
||||||
FIREWALL=$(readlink -m -q ${SHAREDIR}/shorewall6-lite/init)
|
if [ $HOST = openwrt ]; then
|
||||||
|
if [ $configure -eq 1 ] && /etc/init.d/shorewall6-lite enabled; then
|
||||||
|
/etc/init.d/shorewall6-lite disable
|
||||||
|
fi
|
||||||
|
|
||||||
|
FIREWALL=$(readlink ${SHAREDIR}/shorewall6-lite/init)
|
||||||
|
else
|
||||||
|
FIREWALL=$(readlink -m -q ${SHAREDIR}/shorewall6-lite/init)
|
||||||
|
fi
|
||||||
elif [ -n "$INITFILE" ]; then
|
elif [ -n "$INITFILE" ]; then
|
||||||
FIREWALL=${INITDIR}/${INITFILE}
|
FIREWALL=${INITDIR}/${INITFILE}
|
||||||
fi
|
fi
|
||||||
@@ -185,9 +193,11 @@ if [ -f "$FIREWALL" ]; then
|
|||||||
remove_file $FIREWALL
|
remove_file $FIREWALL
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$SYSTEMD" ]; then
|
[ -z "$SERVICEDIR" ] && SERVICEDIR="$SYSTEMD"
|
||||||
|
|
||||||
|
if [ -n "$SERVICEDIR" ]; then
|
||||||
[ $configure -eq 1 ] && systemctl disable ${PRODUCT}
|
[ $configure -eq 1 ] && systemctl disable ${PRODUCT}
|
||||||
rm -f $SYSTEMD/shorewall6-lite.service
|
rm -f $SERVICEDIR/shorewall6-lite.service
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -f ${SBINDIR}/shorewall6-lite
|
rm -f ${SBINDIR}/shorewall6-lite
|
||||||
@@ -196,7 +206,7 @@ rm -rf ${VARDIR}/shorewall6-lite
|
|||||||
rm -rf ${SHAREDIR}/shorewall6-lite
|
rm -rf ${SHAREDIR}/shorewall6-lite
|
||||||
rm -rf ${LIBEXECDIR}/shorewall6-lite
|
rm -rf ${LIBEXECDIR}/shorewall6-lite
|
||||||
rm -f ${CONFDIR}/logrotate.d/shorewall6-lite
|
rm -f ${CONFDIR}/logrotate.d/shorewall6-lite
|
||||||
[ -n "$SYSTEMD" ] && rm -f ${SYSTEMD}/shorewall6-lite.service
|
rm -f ${SYSCONFDIR}/shorewall6-lite
|
||||||
|
|
||||||
rm -f ${MANDIR}/man5/shorewall6-lite*
|
rm -f ${MANDIR}/man5/shorewall6-lite*
|
||||||
rm -f ${MANDIR}/man8/shorewall6-lite*
|
rm -f ${MANDIR}/man8/shorewall6-lite*
|
||||||
|
@@ -159,7 +159,7 @@ INLINE_MATCHES=Yes
|
|||||||
|
|
||||||
IPSET_WARNINGS=Yes
|
IPSET_WARNINGS=Yes
|
||||||
|
|
||||||
IP_FORWARDING=Off
|
IP_FORWARDING=keep
|
||||||
|
|
||||||
KEEP_RT_TABLES=Yes
|
KEEP_RT_TABLES=Yes
|
||||||
|
|
||||||
|
@@ -159,7 +159,7 @@ INLINE_MATCHES=Yes
|
|||||||
|
|
||||||
IPSET_WARNINGS=Yes
|
IPSET_WARNINGS=Yes
|
||||||
|
|
||||||
IP_FORWARDING=Off
|
IP_FORWARDING=keep
|
||||||
|
|
||||||
KEEP_RT_TABLES=Yes
|
KEEP_RT_TABLES=Yes
|
||||||
|
|
||||||
|
@@ -159,7 +159,7 @@ INLINE_MATCHES=Yes
|
|||||||
|
|
||||||
IPSET_WARNINGS=Yes
|
IPSET_WARNINGS=Yes
|
||||||
|
|
||||||
IP_FORWARDING=On
|
IP_FORWARDING=keep
|
||||||
|
|
||||||
KEEP_RT_TABLES=Yes
|
KEEP_RT_TABLES=Yes
|
||||||
|
|
||||||
|
@@ -159,7 +159,7 @@ INLINE_MATCHES=Yes
|
|||||||
|
|
||||||
IPSET_WARNINGS=Yes
|
IPSET_WARNINGS=Yes
|
||||||
|
|
||||||
IP_FORWARDING=On
|
IP_FORWARDING=keep
|
||||||
|
|
||||||
KEEP_RT_TABLES=Yes
|
KEEP_RT_TABLES=Yes
|
||||||
|
|
||||||
|
@@ -159,7 +159,7 @@ INLINE_MATCHES=No
|
|||||||
|
|
||||||
IPSET_WARNINGS=Yes
|
IPSET_WARNINGS=Yes
|
||||||
|
|
||||||
IP_FORWARDING=Off
|
IP_FORWARDING=keep
|
||||||
|
|
||||||
KEEP_RT_TABLES=Yes
|
KEEP_RT_TABLES=Yes
|
||||||
|
|
||||||
|
@@ -184,9 +184,18 @@ if [ -f "$FIREWALL" ]; then
|
|||||||
remove_file $FIREWALL
|
remove_file $FIREWALL
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$SYSTEMD" ]; then
|
[ -n "$SERVICEDIR" ] || SERVICEDIR=${SYSTEMD}
|
||||||
|
|
||||||
|
if [ -n "$SERVICEDIR" ]; then
|
||||||
[ $configure -eq 1 ] && systemctl disable ${PRODUCT}
|
[ $configure -eq 1 ] && systemctl disable ${PRODUCT}
|
||||||
rm -f $SYSTEMD/shorewall6.service
|
rm -f $SERVICEDIR/shorewall6.service
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf ${SHAREDIR}/shorewall6/version
|
||||||
|
rm -rf ${CONFDIR}/shorewall6
|
||||||
|
|
||||||
|
if [ -n "$SYSCONFDIR" ]; then
|
||||||
|
[ -n "$SYSCONFFILE" ] && rm -f ${SYSCONFDIR}/${PRODUCT}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -f ${SBINDIR}/shorewall6
|
rm -f ${SBINDIR}/shorewall6
|
||||||
|
Reference in New Issue
Block a user