forked from extern/shorewall_code
"Fix" bashisms (at least they are bashims according to the Debian people)
git-svn-id: https://shorewall.svn.sourceforge.net/svnroot/shorewall/trunk@8289 fbd18981-670d-0410-9b5c-8dc0c1a9a2bb
This commit is contained in:
parent
b0a5c577f4
commit
bbe6dfb5fd
@ -53,7 +53,8 @@ restore_directory() # $1 = directory to restore
|
|||||||
restore_file() # $1 = file to restore, $2 = (Optional) Directory to restore from
|
restore_file() # $1 = file to restore, $2 = (Optional) Directory to restore from
|
||||||
{
|
{
|
||||||
if [ -n "$2" ]; then
|
if [ -n "$2" ]; then
|
||||||
local file=$(basename $1)
|
local file
|
||||||
|
file=$(basename $1)
|
||||||
|
|
||||||
if [ -f $2/$file ]; then
|
if [ -f $2/$file ]; then
|
||||||
if mv -f $2/$file $1 ; then
|
if mv -f $2/$file $1 ; then
|
||||||
|
@ -35,7 +35,8 @@ usage() # $1 = exit status
|
|||||||
}
|
}
|
||||||
|
|
||||||
split() {
|
split() {
|
||||||
local ifs=$IFS
|
local ifs
|
||||||
|
ifs=$IFS
|
||||||
IFS=:
|
IFS=:
|
||||||
set -- $1
|
set -- $1
|
||||||
echo $*
|
echo $*
|
||||||
|
@ -56,7 +56,8 @@ error_message() # $* = Error Message
|
|||||||
#
|
#
|
||||||
progress_message() # $* = Message
|
progress_message() # $* = Message
|
||||||
{
|
{
|
||||||
local timestamp=
|
local timestamp
|
||||||
|
timestamp=
|
||||||
|
|
||||||
if [ $VERBOSE -gt 1 ]; then
|
if [ $VERBOSE -gt 1 ]; then
|
||||||
[ -n "$TIMESTAMP" ] && timestamp="$(date +%H:%M:%S) "
|
[ -n "$TIMESTAMP" ] && timestamp="$(date +%H:%M:%S) "
|
||||||
@ -66,7 +67,8 @@ progress_message() # $* = Message
|
|||||||
|
|
||||||
progress_message2() # $* = Message
|
progress_message2() # $* = Message
|
||||||
{
|
{
|
||||||
local timestamp=
|
local timestamp
|
||||||
|
timestamp=
|
||||||
|
|
||||||
if [ $VERBOSE -gt 0 ]; then
|
if [ $VERBOSE -gt 0 ]; then
|
||||||
[ -n "$TIMESTAMP" ] && timestamp="$(date +%H:%M:%S) "
|
[ -n "$TIMESTAMP" ] && timestamp="$(date +%H:%M:%S) "
|
||||||
@ -76,7 +78,8 @@ progress_message2() # $* = Message
|
|||||||
|
|
||||||
progress_message3() # $* = Message
|
progress_message3() # $* = Message
|
||||||
{
|
{
|
||||||
local timestamp=
|
local timestamp
|
||||||
|
timestamp=
|
||||||
|
|
||||||
if [ $VERBOSE -ge 0 ]; then
|
if [ $VERBOSE -ge 0 ]; then
|
||||||
[ -n "$TIMESTAMP" ] && timestamp="$(date +%H:%M:%S) "
|
[ -n "$TIMESTAMP" ] && timestamp="$(date +%H:%M:%S) "
|
||||||
@ -88,7 +91,8 @@ progress_message3() # $* = Message
|
|||||||
# Split a colon-separated list into a space-separated list
|
# Split a colon-separated list into a space-separated list
|
||||||
#
|
#
|
||||||
split() {
|
split() {
|
||||||
local ifs=$IFS
|
local ifs
|
||||||
|
ifs=$IFS
|
||||||
IFS=:
|
IFS=:
|
||||||
echo $*
|
echo $*
|
||||||
IFS=$ifs
|
IFS=$ifs
|
||||||
@ -100,7 +104,8 @@ split() {
|
|||||||
#
|
#
|
||||||
list_search() # $1 = element to search for , $2-$n = list
|
list_search() # $1 = element to search for , $2-$n = list
|
||||||
{
|
{
|
||||||
local e=$1
|
local e
|
||||||
|
e=$1
|
||||||
|
|
||||||
while [ $# -gt 1 ]; do
|
while [ $# -gt 1 ]; do
|
||||||
shift
|
shift
|
||||||
@ -115,7 +120,9 @@ list_search() # $1 = element to search for , $2-$n = list
|
|||||||
#
|
#
|
||||||
combine_list()
|
combine_list()
|
||||||
{
|
{
|
||||||
local f o=
|
local f
|
||||||
|
local o
|
||||||
|
o=
|
||||||
|
|
||||||
for f in $* ; do
|
for f in $* ; do
|
||||||
o="${o:+$o,}$f"
|
o="${o:+$o,}$f"
|
||||||
@ -152,7 +159,8 @@ my_pathname() {
|
|||||||
#
|
#
|
||||||
run_user_exit() # $1 = file name
|
run_user_exit() # $1 = file name
|
||||||
{
|
{
|
||||||
local user_exit=$(find_file $1)
|
local user_exit
|
||||||
|
user_exit=$(find_file $1)
|
||||||
|
|
||||||
if [ -f $user_exit ]; then
|
if [ -f $user_exit ]; then
|
||||||
progress_message "Processing $user_exit ..."
|
progress_message "Processing $user_exit ..."
|
||||||
@ -208,7 +216,8 @@ deleteallchains() {
|
|||||||
#
|
#
|
||||||
loadmodule() # $1 = module name, $2 - * arguments
|
loadmodule() # $1 = module name, $2 - * arguments
|
||||||
{
|
{
|
||||||
local modulename=$1
|
local modulename
|
||||||
|
modulename=$1
|
||||||
local modulefile
|
local modulefile
|
||||||
local suffix
|
local suffix
|
||||||
|
|
||||||
@ -240,10 +249,13 @@ loadmodule() # $1 = module name, $2 - * arguments
|
|||||||
#
|
#
|
||||||
reload_kernel_modules() {
|
reload_kernel_modules() {
|
||||||
|
|
||||||
local save_modules_dir=$MODULESDIR
|
local save_modules_dir
|
||||||
|
save_modules_dir=$MODULESDIR
|
||||||
local directory
|
local directory
|
||||||
local moduledirectories=
|
local moduledirectories
|
||||||
local moduleloader=modprobe
|
moduledirectories=
|
||||||
|
local moduleloader
|
||||||
|
moduleloader=modprobe
|
||||||
|
|
||||||
if ! qt mywhich modprobe; then
|
if ! qt mywhich modprobe; then
|
||||||
moduleloader=insmod
|
moduleloader=insmod
|
||||||
@ -270,11 +282,15 @@ reload_kernel_modules() {
|
|||||||
#
|
#
|
||||||
load_kernel_modules() # $1 = Yes, if we are to save moduleinfo in $VARDIR
|
load_kernel_modules() # $1 = Yes, if we are to save moduleinfo in $VARDIR
|
||||||
{
|
{
|
||||||
local save_modules_dir=$MODULESDIR
|
local save_modules_dir
|
||||||
|
save_modules_dir=$MODULESDIR
|
||||||
local directory
|
local directory
|
||||||
local moduledirectories=
|
local moduledirectories
|
||||||
local moduleloader=modprobe
|
moduledirectories=
|
||||||
local savemoduleinfo=${1:-Yes} # So old compiled scripts still work
|
local moduleloader
|
||||||
|
moduleloader=modprobe
|
||||||
|
local savemoduleinfo
|
||||||
|
savemoduleinfo=${1:-Yes} # So old compiled scripts still work
|
||||||
|
|
||||||
if ! qt mywhich modprobe; then
|
if ! qt mywhich modprobe; then
|
||||||
moduleloader=insmod
|
moduleloader=insmod
|
||||||
@ -320,8 +336,10 @@ load_kernel_modules() # $1 = Yes, if we are to save moduleinfo in $VARDIR
|
|||||||
#
|
#
|
||||||
mutex_on()
|
mutex_on()
|
||||||
{
|
{
|
||||||
local try=0
|
local try
|
||||||
local lockf=${LOCKFILE:=${VARDIR}/lock}
|
try=0
|
||||||
|
local lockf
|
||||||
|
lockf=${LOCKFILE:=${VARDIR}/lock}
|
||||||
|
|
||||||
MUTEX_TIMEOUT=${MUTEX_TIMEOUT:-60}
|
MUTEX_TIMEOUT=${MUTEX_TIMEOUT:-60}
|
||||||
|
|
||||||
@ -360,7 +378,8 @@ mutex_off()
|
|||||||
#
|
#
|
||||||
lib_load() # $1 = Name of the Library, $2 = Error Message heading if the library cannot be found
|
lib_load() # $1 = Name of the Library, $2 = Error Message heading if the library cannot be found
|
||||||
{
|
{
|
||||||
local lib=${SHAREDIR}/lib.$1
|
local lib
|
||||||
|
lib=${SHAREDIR}/lib.$1
|
||||||
local loaded
|
local loaded
|
||||||
|
|
||||||
eval loaded=\$LIB_${1}_LOADED
|
eval loaded=\$LIB_${1}_LOADED
|
||||||
@ -398,8 +417,10 @@ LEFTSHIFT='<<'
|
|||||||
# Validate an IP address
|
# Validate an IP address
|
||||||
#
|
#
|
||||||
valid_address() {
|
valid_address() {
|
||||||
local x y
|
local x
|
||||||
local ifs=$IFS
|
local y
|
||||||
|
local ifs
|
||||||
|
ifs=$IFS
|
||||||
|
|
||||||
IFS=.
|
IFS=.
|
||||||
|
|
||||||
@ -425,8 +446,10 @@ valid_address() {
|
|||||||
#
|
#
|
||||||
decodeaddr() {
|
decodeaddr() {
|
||||||
local x
|
local x
|
||||||
local temp=0
|
local temp
|
||||||
local ifs=$IFS
|
temp=0
|
||||||
|
local ifs
|
||||||
|
ifs=$IFS
|
||||||
|
|
||||||
IFS=.
|
IFS=.
|
||||||
|
|
||||||
@ -445,7 +468,8 @@ decodeaddr() {
|
|||||||
encodeaddr() {
|
encodeaddr() {
|
||||||
addr=$1
|
addr=$1
|
||||||
local x
|
local x
|
||||||
local y=$(($addr & 255))
|
local y
|
||||||
|
y=$(($addr & 255))
|
||||||
|
|
||||||
for x in 1 2 3 ; do
|
for x in 1 2 3 ; do
|
||||||
addr=$(($addr >> 8))
|
addr=$(($addr >> 8))
|
||||||
@ -478,7 +502,13 @@ EOF
|
|||||||
# ip_range_explicit() - explicitly enumerates the range.
|
# ip_range_explicit() - explicitly enumerates the range.
|
||||||
#
|
#
|
||||||
ip_range() {
|
ip_range() {
|
||||||
local first last l x y z vlsm
|
local first
|
||||||
|
local last
|
||||||
|
local l
|
||||||
|
local x
|
||||||
|
local y
|
||||||
|
local z
|
||||||
|
local vlsm
|
||||||
|
|
||||||
case $1 in
|
case $1 in
|
||||||
!*)
|
!*)
|
||||||
@ -524,7 +554,8 @@ ip_range() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ip_range_explicit() {
|
ip_range_explicit() {
|
||||||
local first last
|
local first
|
||||||
|
local last
|
||||||
|
|
||||||
case $1 in
|
case $1 in
|
||||||
[0-9]*.*.*.*-*.*.*.*)
|
[0-9]*.*.*.*-*.*.*.*)
|
||||||
@ -552,7 +583,8 @@ ip_range_explicit() {
|
|||||||
# Netmask from CIDR
|
# Netmask from CIDR
|
||||||
#
|
#
|
||||||
ip_netmask() {
|
ip_netmask() {
|
||||||
local vlsm=${1#*/}
|
local vlsm
|
||||||
|
vlsm=${1#*/}
|
||||||
|
|
||||||
[ $vlsm -eq 0 ] && echo 0 || echo $(( -1 $LEFTSHIFT $(( 32 - $vlsm )) ))
|
[ $vlsm -eq 0 ] && echo 0 || echo $(( -1 $LEFTSHIFT $(( 32 - $vlsm )) ))
|
||||||
}
|
}
|
||||||
@ -561,8 +593,10 @@ ip_netmask() {
|
|||||||
# Network address from CIDR
|
# Network address from CIDR
|
||||||
#
|
#
|
||||||
ip_network() {
|
ip_network() {
|
||||||
local decodedaddr=$(decodeaddr ${1%/*})
|
local decodedaddr
|
||||||
local netmask=$(ip_netmask $1)
|
decodedaddr=$(decodeaddr ${1%/*})
|
||||||
|
local netmask
|
||||||
|
netmask=$(ip_netmask $1)
|
||||||
|
|
||||||
echo $(encodeaddr $(($decodedaddr & $netmask)))
|
echo $(encodeaddr $(($decodedaddr & $netmask)))
|
||||||
}
|
}
|
||||||
@ -572,7 +606,8 @@ ip_network() {
|
|||||||
# the popular light-weight Bourne shell derivatives don't support XOR ("^").
|
# the popular light-weight Bourne shell derivatives don't support XOR ("^").
|
||||||
#
|
#
|
||||||
ip_broadcast() {
|
ip_broadcast() {
|
||||||
local x=$(( 32 - ${1#*/} ))
|
local x
|
||||||
|
x=$(( 32 - ${1#*/} ))
|
||||||
|
|
||||||
[ $x -eq 32 ] && echo -1 || echo $(( $(( 1 $LEFTSHIFT $x )) - 1 ))
|
[ $x -eq 32 ] && echo -1 || echo $(( $(( 1 $LEFTSHIFT $x )) - 1 ))
|
||||||
}
|
}
|
||||||
@ -581,9 +616,12 @@ ip_broadcast() {
|
|||||||
# Calculate broadcast address from CIDR
|
# Calculate broadcast address from CIDR
|
||||||
#
|
#
|
||||||
broadcastaddress() {
|
broadcastaddress() {
|
||||||
local decodedaddr=$(decodeaddr ${1%/*})
|
local decodedaddr
|
||||||
local netmask=$(ip_netmask $1)
|
decodedaddr=$(decodeaddr ${1%/*})
|
||||||
local broadcast=$(ip_broadcast $1)
|
local netmask
|
||||||
|
netmask=$(ip_netmask $1)
|
||||||
|
local broadcast
|
||||||
|
broadcast=$(ip_broadcast $1)
|
||||||
|
|
||||||
echo $(encodeaddr $(( $(($decodedaddr & $netmask)) | $broadcast )))
|
echo $(encodeaddr $(( $(($decodedaddr & $netmask)) | $broadcast )))
|
||||||
}
|
}
|
||||||
@ -593,7 +631,8 @@ broadcastaddress() {
|
|||||||
#
|
#
|
||||||
in_network() # $1 = IP address, $2 = CIDR network
|
in_network() # $1 = IP address, $2 = CIDR network
|
||||||
{
|
{
|
||||||
local netmask=$(ip_netmask $2)
|
local netmask
|
||||||
|
netmask=$(ip_netmask $2)
|
||||||
#
|
#
|
||||||
# We compare the values as strings rather than integers to work around broken BusyBox ash on OpenWRT
|
# We compare the values as strings rather than integers to work around broken BusyBox ash on OpenWRT
|
||||||
#
|
#
|
||||||
@ -604,9 +643,12 @@ in_network() # $1 = IP address, $2 = CIDR network
|
|||||||
# Netmask to VLSM
|
# Netmask to VLSM
|
||||||
#
|
#
|
||||||
ip_vlsm() {
|
ip_vlsm() {
|
||||||
local mask=$(decodeaddr $1)
|
local mask
|
||||||
local vlsm=0
|
mask=$(decodeaddr $1)
|
||||||
local x=$(( 128 << 24 )) # 0x80000000
|
local vlsm
|
||||||
|
vlsm=0
|
||||||
|
local x
|
||||||
|
x=$(( 128 << 24 )) # 0x80000000
|
||||||
|
|
||||||
while [ $(( $x & $mask )) -ne 0 ]; do
|
while [ $(( $x & $mask )) -ne 0 ]; do
|
||||||
[ $mask -eq $x ] && mask=0 || mask=$(( $mask $LEFTSHIFT 1 )) # Not all shells shift 0x80000000 left properly.
|
[ $mask -eq $x ] && mask=0 || mask=$(( $mask $LEFTSHIFT 1 )) # Not all shells shift 0x80000000 left properly.
|
||||||
@ -627,7 +669,8 @@ ip_vlsm() {
|
|||||||
#
|
#
|
||||||
chain_base() #$1 = interface
|
chain_base() #$1 = interface
|
||||||
{
|
{
|
||||||
local c=${1%%+}
|
local c
|
||||||
|
c=${1%%+}
|
||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
case $c in
|
case $c in
|
||||||
@ -752,8 +795,10 @@ find_default_interface() {
|
|||||||
#
|
#
|
||||||
|
|
||||||
find_interface_by_address() {
|
find_interface_by_address() {
|
||||||
local dev="$(find_rt_interface $1)"
|
local dev
|
||||||
local first rest
|
dev="$(find_rt_interface $1)"
|
||||||
|
local first
|
||||||
|
local rest
|
||||||
|
|
||||||
[ -z "$dev" ] && dev=$(find_default_interface)
|
[ -z "$dev" ] && dev=$(find_default_interface)
|
||||||
|
|
||||||
@ -765,7 +810,8 @@ find_interface_by_address() {
|
|||||||
#
|
#
|
||||||
|
|
||||||
find_interface_by_mac() {
|
find_interface_by_mac() {
|
||||||
local mac=$1 first second rest dev
|
local mac
|
||||||
|
mac=$1 first second rest dev
|
||||||
|
|
||||||
ip link list | while read first second rest; do
|
ip link list | while read first second rest; do
|
||||||
case $first in
|
case $first in
|
||||||
@ -893,7 +939,8 @@ mywhich() {
|
|||||||
# Set default config path
|
# Set default config path
|
||||||
#
|
#
|
||||||
ensure_config_path() {
|
ensure_config_path() {
|
||||||
local F=${SHAREDIR}/configpath
|
local F
|
||||||
|
F=${SHAREDIR}/configpath
|
||||||
if [ -z "$CONFIG_PATH" ]; then
|
if [ -z "$CONFIG_PATH" ]; then
|
||||||
[ -f $F ] || { echo " ERROR: $F does not exist"; exit 2; }
|
[ -f $F ] || { echo " ERROR: $F does not exist"; exit 2; }
|
||||||
. $F
|
. $F
|
||||||
@ -909,7 +956,8 @@ ensure_config_path() {
|
|||||||
#
|
#
|
||||||
find_file()
|
find_file()
|
||||||
{
|
{
|
||||||
local saveifs= directory
|
local saveifs
|
||||||
|
saveifs= directory
|
||||||
|
|
||||||
case $1 in
|
case $1 in
|
||||||
/*)
|
/*)
|
||||||
@ -933,7 +981,8 @@ find_file()
|
|||||||
#
|
#
|
||||||
resolve_file() # $1 = file name
|
resolve_file() # $1 = file name
|
||||||
{
|
{
|
||||||
local pwd=$PWD
|
local pwd
|
||||||
|
pwd=$PWD
|
||||||
|
|
||||||
case $1 in
|
case $1 in
|
||||||
/*)
|
/*)
|
||||||
@ -1127,7 +1176,8 @@ determine_capabilities() {
|
|||||||
report_capabilities() {
|
report_capabilities() {
|
||||||
report_capability() # $1 = Capability Description , $2 Capability Setting (if any)
|
report_capability() # $1 = Capability Description , $2 Capability Setting (if any)
|
||||||
{
|
{
|
||||||
local setting=
|
local setting
|
||||||
|
setting=
|
||||||
|
|
||||||
[ "x$2" = "xYes" ] && setting="Available" || setting="Not available"
|
[ "x$2" = "xYes" ] && setting="Available" || setting="Not available"
|
||||||
|
|
||||||
@ -1231,7 +1281,15 @@ del_ip_addr() # $1 = address, $2 = interface
|
|||||||
#
|
#
|
||||||
add_ip_aliases() # $* = List of addresses
|
add_ip_aliases() # $* = List of addresses
|
||||||
{
|
{
|
||||||
local addresses external interface inet cidr rest val arping=$(mywhich arping)
|
local addresses
|
||||||
|
local external
|
||||||
|
local interface
|
||||||
|
local inet
|
||||||
|
local cidr
|
||||||
|
local rest
|
||||||
|
local val1
|
||||||
|
local arping
|
||||||
|
arping=$(mywhich arping)
|
||||||
|
|
||||||
address_details()
|
address_details()
|
||||||
{
|
{
|
||||||
@ -1288,7 +1346,8 @@ add_ip_aliases() # $* = List of addresses
|
|||||||
|
|
||||||
detect_gateway() # $1 = interface
|
detect_gateway() # $1 = interface
|
||||||
{
|
{
|
||||||
local interface=$1
|
local interface
|
||||||
|
interface=$1
|
||||||
#
|
#
|
||||||
# First assume that this is some sort of point-to-point interface
|
# First assume that this is some sort of point-to-point interface
|
||||||
#
|
#
|
||||||
@ -1311,7 +1370,8 @@ detect_gateway() # $1 = interface
|
|||||||
# Disable IPV6
|
# Disable IPV6
|
||||||
#
|
#
|
||||||
disable_ipv6() {
|
disable_ipv6() {
|
||||||
local foo="$(ip -f inet6 addr list 2> /dev/null)"
|
local foo
|
||||||
|
foo="$(ip -f inet6 addr list 2> /dev/null)"
|
||||||
|
|
||||||
if [ -n "$foo" ]; then
|
if [ -n "$foo" ]; then
|
||||||
if qt mywhich ip6tables; then
|
if qt mywhich ip6tables; then
|
||||||
@ -1343,16 +1403,25 @@ truncate() # $1 = length
|
|||||||
#
|
#
|
||||||
do_log_rule_limit() # $1 = log level, $2 = chain, $3 = display Chain $4 = disposition , $5 = rate limit $6=log tag $7=command $... = predicates for the rule
|
do_log_rule_limit() # $1 = log level, $2 = chain, $3 = display Chain $4 = disposition , $5 = rate limit $6=log tag $7=command $... = predicates for the rule
|
||||||
{
|
{
|
||||||
local level=$1
|
local level
|
||||||
local chain=$2
|
level=$1
|
||||||
local displayChain=$3
|
local chain
|
||||||
local disposition=$4
|
chain=$2
|
||||||
local rulenum=
|
local displayChain
|
||||||
local limit=
|
displayChain=$3
|
||||||
local tag=
|
local disposition
|
||||||
local command=
|
disposition=$4
|
||||||
|
local rulenum
|
||||||
|
rulenum=
|
||||||
|
local limit
|
||||||
|
limit=
|
||||||
|
local tag
|
||||||
|
tag=
|
||||||
|
local command
|
||||||
|
command=
|
||||||
local prefix
|
local prefix
|
||||||
local base=$(chain_base $displayChain)
|
local base
|
||||||
|
base=$(chain_base $displayChain)
|
||||||
local pf
|
local pf
|
||||||
|
|
||||||
limit="${5:-$LOGLIMIT}" # Do this here rather than in the declaration above to appease /bin/ash.
|
limit="${5:-$LOGLIMIT}" # Do this here rather than in the declaration above to appease /bin/ash.
|
||||||
@ -1405,9 +1474,12 @@ do_log_rule_limit() # $1 = log level, $2 = chain, $3 = display Chain $4 = dispos
|
|||||||
|
|
||||||
do_log_rule() # $1 = log level, $2 = chain, $3 = disposition , $... = predicates for the rule
|
do_log_rule() # $1 = log level, $2 = chain, $3 = disposition , $... = predicates for the rule
|
||||||
{
|
{
|
||||||
local level=$1
|
local level
|
||||||
local chain=$2
|
level=$1
|
||||||
local disposition=$3
|
local chain
|
||||||
|
chain=$2
|
||||||
|
local disposition
|
||||||
|
disposition=$3
|
||||||
|
|
||||||
shift 3
|
shift 3
|
||||||
|
|
||||||
@ -1441,7 +1513,8 @@ delete_tc1()
|
|||||||
#
|
#
|
||||||
get_device_mtu() # $1 = device
|
get_device_mtu() # $1 = device
|
||||||
{
|
{
|
||||||
local output="$(ip link list dev $1 2> /dev/null)" # quotes required for /bin/ash
|
local output
|
||||||
|
output="$(ip link list dev $1 2> /dev/null)" # quotes required for /bin/ash
|
||||||
|
|
||||||
if [ -n "$output" ]; then
|
if [ -n "$output" ]; then
|
||||||
echo $(find_mtu $output)
|
echo $(find_mtu $output)
|
||||||
@ -1456,7 +1529,8 @@ get_device_mtu() # $1 = device
|
|||||||
#
|
#
|
||||||
get_device_mtu1() # $1 = device
|
get_device_mtu1() # $1 = device
|
||||||
{
|
{
|
||||||
local output="$(ip link list dev $1 2> /dev/null)" # quotes required for /bin/ash
|
local output
|
||||||
|
output="$(ip link list dev $1 2> /dev/null)" # quotes required for /bin/ash
|
||||||
local mtu
|
local mtu
|
||||||
|
|
||||||
if [ -n "$output" ]; then
|
if [ -n "$output" ]; then
|
||||||
@ -1495,7 +1569,9 @@ undo_routing() {
|
|||||||
|
|
||||||
restore_default_route() {
|
restore_default_route() {
|
||||||
if [ -z "$NOROUTES" -a -f ${VARDIR}/default_route ]; then
|
if [ -z "$NOROUTES" -a -f ${VARDIR}/default_route ]; then
|
||||||
local default_route= route
|
local default_route
|
||||||
|
default_route=
|
||||||
|
local route
|
||||||
|
|
||||||
while read route ; do
|
while read route ; do
|
||||||
case $route in
|
case $route in
|
||||||
@ -1556,7 +1632,8 @@ find_echo() {
|
|||||||
# STD - mktemp.org mktemp
|
# STD - mktemp.org mktemp
|
||||||
#
|
#
|
||||||
find_mktemp() {
|
find_mktemp() {
|
||||||
local mktemp=`mywhich mktemp 2> /dev/null`
|
local mktemp
|
||||||
|
mktemp=`mywhich mktemp 2> /dev/null`
|
||||||
|
|
||||||
if [ -n "$mktemp" ]; then
|
if [ -n "$mktemp" ]; then
|
||||||
if qt mktemp -V ; then
|
if qt mktemp -V ; then
|
||||||
|
@ -124,7 +124,13 @@ timed_read ()
|
|||||||
# Determine if 'syslog -C' is running
|
# Determine if 'syslog -C' is running
|
||||||
#
|
#
|
||||||
syslog_circular_buffer() {
|
syslog_circular_buffer() {
|
||||||
local pid tty flags cputime path args arg
|
local pid
|
||||||
|
local tty
|
||||||
|
local flags
|
||||||
|
local cputime
|
||||||
|
local path
|
||||||
|
local args
|
||||||
|
local arg
|
||||||
|
|
||||||
ps ax 2> /dev/null | while read pid tty flags cputime path args; do
|
ps ax 2> /dev/null | while read pid tty flags cputime path args; do
|
||||||
case $path in
|
case $path in
|
||||||
@ -160,7 +166,8 @@ packet_log() # $1 = number of messages
|
|||||||
show_tc() {
|
show_tc() {
|
||||||
|
|
||||||
show_one_tc() {
|
show_one_tc() {
|
||||||
local device=${1%@*}
|
local device
|
||||||
|
device=${1%@*}
|
||||||
qdisc=$(tc qdisc list dev $device)
|
qdisc=$(tc qdisc list dev $device)
|
||||||
|
|
||||||
if [ -n "$qdisc" ]; then
|
if [ -n "$qdisc" ]; then
|
||||||
@ -183,7 +190,8 @@ show_tc() {
|
|||||||
show_classifiers() {
|
show_classifiers() {
|
||||||
|
|
||||||
show_one_classifier() {
|
show_one_classifier() {
|
||||||
local device=${1%@*}
|
local device
|
||||||
|
device=${1%@*}
|
||||||
qdisc=$(tc qdisc list dev $device)
|
qdisc=$(tc qdisc list dev $device)
|
||||||
|
|
||||||
if [ -n "$qdisc" ]; then
|
if [ -n "$qdisc" ]; then
|
||||||
@ -258,7 +266,8 @@ logwatch() # $1 = timeout -- if negative, prompt each time that
|
|||||||
#
|
#
|
||||||
save_config() {
|
save_config() {
|
||||||
|
|
||||||
local result=1
|
local result
|
||||||
|
result=1
|
||||||
|
|
||||||
iptables_save=${IPTABLES}-save
|
iptables_save=${IPTABLES}-save
|
||||||
|
|
||||||
@ -367,7 +376,12 @@ show_routing() {
|
|||||||
# Show Command Executor
|
# Show Command Executor
|
||||||
#
|
#
|
||||||
show_command() {
|
show_command() {
|
||||||
local finished=0 local table=filter table_given=
|
local finished
|
||||||
|
finished=0
|
||||||
|
local table
|
||||||
|
table=filter
|
||||||
|
local table_given
|
||||||
|
table_given=
|
||||||
|
|
||||||
show_macro() {
|
show_macro() {
|
||||||
foo=`grep 'This macro' $macro | sed 's/This macro //'`
|
foo=`grep 'This macro' $macro | sed 's/This macro //'`
|
||||||
@ -619,7 +633,8 @@ show_command() {
|
|||||||
# Dump Command Executor
|
# Dump Command Executor
|
||||||
#
|
#
|
||||||
dump_command() {
|
dump_command() {
|
||||||
local finished=0
|
local finished
|
||||||
|
finished=0
|
||||||
|
|
||||||
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
||||||
option=$1
|
option=$1
|
||||||
@ -743,7 +758,8 @@ dump_command() {
|
|||||||
# Restore Comand Executor
|
# Restore Comand Executor
|
||||||
#
|
#
|
||||||
restore_command() {
|
restore_command() {
|
||||||
local finished=0
|
local finished
|
||||||
|
finished=0
|
||||||
|
|
||||||
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
||||||
option=$1
|
option=$1
|
||||||
@ -868,7 +884,10 @@ heading() {
|
|||||||
# Create the appropriate -q option to pass onward
|
# Create the appropriate -q option to pass onward
|
||||||
#
|
#
|
||||||
make_verbose() {
|
make_verbose() {
|
||||||
local v=$VERBOSE_OFFSET option=-
|
local v
|
||||||
|
v=$VERBOSE_OFFSET
|
||||||
|
local option
|
||||||
|
option=-
|
||||||
|
|
||||||
if [ -n "$USE_VERBOSITY" ]; then
|
if [ -n "$USE_VERBOSITY" ]; then
|
||||||
echo "-v$USE_VERBOSITY"
|
echo "-v$USE_VERBOSITY"
|
||||||
@ -894,7 +913,10 @@ make_verbose() {
|
|||||||
#
|
#
|
||||||
block() # $1 = command, $2 = Finished, $3 - $n addresses
|
block() # $1 = command, $2 = Finished, $3 - $n addresses
|
||||||
{
|
{
|
||||||
local chain=$1 finished=$2
|
local chain
|
||||||
|
chain=$1
|
||||||
|
local finished
|
||||||
|
finished=$2
|
||||||
|
|
||||||
shift 3
|
shift 3
|
||||||
|
|
||||||
@ -925,7 +947,10 @@ block() # $1 = command, $2 = Finished, $3 - $n addresses
|
|||||||
# 'hits' commmand executor
|
# 'hits' commmand executor
|
||||||
#
|
#
|
||||||
hits_command() {
|
hits_command() {
|
||||||
local finished=0 today=
|
local finished
|
||||||
|
finished=0
|
||||||
|
local today
|
||||||
|
today=
|
||||||
|
|
||||||
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
||||||
option=$1
|
option=$1
|
||||||
|
@ -31,7 +31,8 @@ SHOREWALL_CONFIGVERSION=40000
|
|||||||
# Replace commas with spaces and echo the result
|
# Replace commas with spaces and echo the result
|
||||||
#
|
#
|
||||||
separate_list() {
|
separate_list() {
|
||||||
local list="$@"
|
local list
|
||||||
|
list="$@"
|
||||||
local part
|
local part
|
||||||
local newlist
|
local newlist
|
||||||
local firstpart
|
local firstpart
|
||||||
@ -121,7 +122,10 @@ is_policy_chain() # $1 = name of chain
|
|||||||
#
|
#
|
||||||
list_walk() # $1 = element to search for, $2-$n = list
|
list_walk() # $1 = element to search for, $2-$n = list
|
||||||
{
|
{
|
||||||
local e=$1 result=
|
local e
|
||||||
|
e=$1
|
||||||
|
local result
|
||||||
|
result=
|
||||||
|
|
||||||
while [ $# -gt 1 ]; do
|
while [ $# -gt 1 ]; do
|
||||||
shift
|
shift
|
||||||
@ -165,7 +169,8 @@ expand_line() {
|
|||||||
#
|
#
|
||||||
fix_bang()
|
fix_bang()
|
||||||
{
|
{
|
||||||
local result=
|
local result
|
||||||
|
result=
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
while [ $# -gt 0 ]; do
|
||||||
case $1 in
|
case $1 in
|
||||||
@ -186,7 +191,13 @@ fix_bang()
|
|||||||
# Read the zones file and find the firewall zone
|
# Read the zones file and find the firewall zone
|
||||||
#
|
#
|
||||||
get_firewall_zone() {
|
get_firewall_zone() {
|
||||||
local zone type rest comment='#*' f=$(find_file zones)
|
local zone
|
||||||
|
local type
|
||||||
|
local rest
|
||||||
|
local comment
|
||||||
|
comment='#*'
|
||||||
|
local f
|
||||||
|
f=$(find_file zones)
|
||||||
|
|
||||||
[ -f $f ] || startup_error "Unable to find zones file"
|
[ -f $f ] || startup_error "Unable to find zones file"
|
||||||
|
|
||||||
@ -212,11 +223,21 @@ get_firewall_zone() {
|
|||||||
#
|
#
|
||||||
determine_zones()
|
determine_zones()
|
||||||
{
|
{
|
||||||
local zone parent parents rest new_zone_file= r
|
local zone
|
||||||
|
local parent
|
||||||
|
local parents
|
||||||
|
local rest
|
||||||
|
local new_zone_file
|
||||||
|
new_zone_file=
|
||||||
|
local r
|
||||||
|
|
||||||
merge_zone()
|
merge_zone()
|
||||||
{
|
{
|
||||||
local z zones="$ZONES" merged=
|
local z
|
||||||
|
local zones
|
||||||
|
zones="$ZONES"
|
||||||
|
local merged
|
||||||
|
merged=
|
||||||
|
|
||||||
if [ -n "$parents" ]; then
|
if [ -n "$parents" ]; then
|
||||||
ZONES=
|
ZONES=
|
||||||
@ -323,8 +344,15 @@ determine_zones()
|
|||||||
#
|
#
|
||||||
validate_interfaces_file() {
|
validate_interfaces_file() {
|
||||||
local wildcard
|
local wildcard
|
||||||
local found_obsolete_option=
|
local found_obsolete_option
|
||||||
local z interface networks options r iface option
|
found_obsolete_option=
|
||||||
|
local z
|
||||||
|
local interface
|
||||||
|
local networks
|
||||||
|
local options
|
||||||
|
local r
|
||||||
|
local iface
|
||||||
|
local option
|
||||||
|
|
||||||
while read z interface networks options; do
|
while read z interface networks options; do
|
||||||
r="$z $interface $networks $options"
|
r="$z $interface $networks $options"
|
||||||
@ -346,7 +374,8 @@ validate_interfaces_file() {
|
|||||||
#
|
#
|
||||||
# Assume that this is 4.0 syntax for a bridge
|
# Assume that this is 4.0 syntax for a bridge
|
||||||
#
|
#
|
||||||
local bridge=${interface%:*}
|
local bridge
|
||||||
|
bridge=${interface%:*}
|
||||||
list_search $bridge $ALL_INTERFACES || startup_error "Unknown Interface: $bridge"
|
list_search $bridge $ALL_INTERFACES || startup_error "Unknown Interface: $bridge"
|
||||||
interface=${interface#*:}
|
interface=${interface#*:}
|
||||||
else
|
else
|
||||||
@ -423,17 +452,21 @@ validate_interfaces_file() {
|
|||||||
# Process the ipsec information in the zones file
|
# Process the ipsec information in the zones file
|
||||||
#
|
#
|
||||||
setup_ipsec() {
|
setup_ipsec() {
|
||||||
local zone using_ipsec=
|
local zone
|
||||||
|
local using_ipsec
|
||||||
|
using_ipsec=
|
||||||
#
|
#
|
||||||
# Add a --set-mss rule to the passed chain
|
# Add a --set-mss rule to the passed chain
|
||||||
#
|
#
|
||||||
set_mss1() # $1 = chain, $2 = MSS
|
set_mss1() # $1 = chain, $2 = MSS
|
||||||
{
|
{
|
||||||
eval local policy=\$${1}_policy
|
local policy
|
||||||
|
eval policy=\$${1}_policy
|
||||||
|
|
||||||
if [ "$policy" != NONE ]; then
|
if [ "$policy" != NONE ]; then
|
||||||
ensurechain $1
|
ensurechain $1
|
||||||
local match=
|
local match
|
||||||
|
match=
|
||||||
[ "$TCPMSS_MATCH" ] && match="-m tcpmss --mss $2: "
|
[ "$TCPMSS_MATCH" ] && match="-m tcpmss --mss $2: "
|
||||||
run_iptables -I $1 -p tcp --tcp-flags SYN,RST SYN ${match}-j TCPMSS --set-mss $2
|
run_iptables -I $1 -p tcp --tcp-flags SYN,RST SYN ${match}-j TCPMSS --set-mss $2
|
||||||
fi
|
fi
|
||||||
@ -461,7 +494,10 @@ setup_ipsec() {
|
|||||||
|
|
||||||
do_options() # $1 = _in, _out or "" - $2 = option list
|
do_options() # $1 = _in, _out or "" - $2 = option list
|
||||||
{
|
{
|
||||||
local option newoptions= val
|
local option
|
||||||
|
local newoptions
|
||||||
|
newoptions=
|
||||||
|
local val
|
||||||
|
|
||||||
[ x${2} = x- ] && return
|
[ x${2} = x- ] && return
|
||||||
|
|
||||||
@ -547,7 +583,16 @@ setup_ipsec() {
|
|||||||
# Validate the zone names and options in the hosts file
|
# Validate the zone names and options in the hosts file
|
||||||
#
|
#
|
||||||
validate_hosts_file() {
|
validate_hosts_file() {
|
||||||
local z hosts options r interface host option zports ipsec=
|
local z
|
||||||
|
local hosts
|
||||||
|
local options
|
||||||
|
local r
|
||||||
|
local interface
|
||||||
|
local host
|
||||||
|
local option
|
||||||
|
local zports
|
||||||
|
local ipsec
|
||||||
|
ipsec=
|
||||||
|
|
||||||
check_bridge_port()
|
check_bridge_port()
|
||||||
{
|
{
|
||||||
@ -667,7 +712,8 @@ validate_hosts_file() {
|
|||||||
#
|
#
|
||||||
find_interfaces() # $1 = interface zone
|
find_interfaces() # $1 = interface zone
|
||||||
{
|
{
|
||||||
local zne=$1
|
local zne
|
||||||
|
zne=$1
|
||||||
local z
|
local z
|
||||||
local interface
|
local interface
|
||||||
|
|
||||||
@ -742,7 +788,8 @@ dynamic_out() # $1 = interface
|
|||||||
|
|
||||||
dynamic_chains() #$1 = interface
|
dynamic_chains() #$1 = interface
|
||||||
{
|
{
|
||||||
local c=$(chain_base $1)
|
local c
|
||||||
|
c=$(chain_base $1)
|
||||||
|
|
||||||
echo ${c}_dyni ${c}_dynf ${c}_dyno
|
echo ${c}_dyni ${c}_dynf ${c}_dyno
|
||||||
}
|
}
|
||||||
@ -776,7 +823,8 @@ ecn_chain() # $1 = interface
|
|||||||
#
|
#
|
||||||
first_chains() #$1 = interface
|
first_chains() #$1 = interface
|
||||||
{
|
{
|
||||||
local c=$(chain_base $1)
|
local c
|
||||||
|
c=$(chain_base $1)
|
||||||
|
|
||||||
echo ${c}_fwd ${c}_in
|
echo ${c}_fwd ${c}_in
|
||||||
}
|
}
|
||||||
@ -809,7 +857,11 @@ iprange_echo()
|
|||||||
#
|
#
|
||||||
get_set_flags() # $1 = set name and optional [levels], $2 = src or dst
|
get_set_flags() # $1 = set name and optional [levels], $2 = src or dst
|
||||||
{
|
{
|
||||||
local temp setname=$1 options=$2
|
local temp
|
||||||
|
local setname
|
||||||
|
setname=$1
|
||||||
|
local options
|
||||||
|
options=$2
|
||||||
|
|
||||||
[ -n "$IPSET_MATCH" ] || fatal_error "Your kernel and/or iptables does not include ipset match: $1"
|
[ -n "$IPSET_MATCH" ] || fatal_error "Your kernel and/or iptables does not include ipset match: $1"
|
||||||
|
|
||||||
@ -908,7 +960,14 @@ dest_ip_range() # $1 = Address or Address Range
|
|||||||
|
|
||||||
both_ip_ranges() # $1 = Source address or range, $2 = dest address or range
|
both_ip_ranges() # $1 = Source address or range, $2 = dest address or range
|
||||||
{
|
{
|
||||||
local rangeprefix= setprefix= rangematch= setmatch=
|
local rangeprefix
|
||||||
|
rangeprefix=
|
||||||
|
local setprefix
|
||||||
|
setprefix=
|
||||||
|
local rangematch
|
||||||
|
rangematch=
|
||||||
|
local setmatch
|
||||||
|
setmatch=
|
||||||
|
|
||||||
case $1 in
|
case $1 in
|
||||||
*.*.*.*-*.*.*.*)
|
*.*.*.*-*.*.*.*)
|
||||||
@ -956,7 +1015,8 @@ both_ip_ranges() # $1 = Source address or range, $2 = dest address or range
|
|||||||
if_match() # $1 = Name in interfaces file - may end in "+"
|
if_match() # $1 = Name in interfaces file - may end in "+"
|
||||||
# $2 = Full interface name - may also end in "+"
|
# $2 = Full interface name - may also end in "+"
|
||||||
{
|
{
|
||||||
local pattern=${1%+}
|
local pattern
|
||||||
|
pattern=${1%+}
|
||||||
|
|
||||||
case $1 in
|
case $1 in
|
||||||
*+)
|
*+)
|
||||||
@ -1106,8 +1166,10 @@ verify_interface()
|
|||||||
#
|
#
|
||||||
is_ipsec_host() # $1 = zone, $2 = host
|
is_ipsec_host() # $1 = zone, $2 = host
|
||||||
{
|
{
|
||||||
eval local is_ipsec=\$${1}_is_ipsec
|
local is_ipsec
|
||||||
eval local hosts=\"\$${1}_ipsec_hosts\"
|
eval is_ipsec=\$${1}_is_ipsec
|
||||||
|
local hosts
|
||||||
|
eval hosts=\"\$${1}_ipsec_hosts\"
|
||||||
|
|
||||||
test -n "$is_ipsec" || list_search $2 $hosts
|
test -n "$is_ipsec" || list_search $2 $hosts
|
||||||
}
|
}
|
||||||
@ -1118,7 +1180,8 @@ is_ipsec_host() # $1 = zone, $2 = host
|
|||||||
match_ipsec_in() # $1 = zone, $2 = host
|
match_ipsec_in() # $1 = zone, $2 = host
|
||||||
{
|
{
|
||||||
if is_ipsec_host $1 $2 ; then
|
if is_ipsec_host $1 $2 ; then
|
||||||
eval local options=\"\$${1}_ipsec_options \$${1}_ipsec_in_options\"
|
local options
|
||||||
|
eval options=\"\$${1}_ipsec_options \$${1}_ipsec_in_options\"
|
||||||
echo "-m policy --pol ipsec --dir in $options"
|
echo "-m policy --pol ipsec --dir in $options"
|
||||||
elif [ -n "$POLICY_MATCH" ]; then
|
elif [ -n "$POLICY_MATCH" ]; then
|
||||||
echo "-m policy --pol none --dir in"
|
echo "-m policy --pol none --dir in"
|
||||||
@ -1131,7 +1194,8 @@ match_ipsec_in() # $1 = zone, $2 = host
|
|||||||
match_ipsec_out() # $1 = zone, $2 = host
|
match_ipsec_out() # $1 = zone, $2 = host
|
||||||
{
|
{
|
||||||
if is_ipsec_host $1 $2 ; then
|
if is_ipsec_host $1 $2 ; then
|
||||||
eval local options=\"\$${1}_ipsec_options \$${1}_ipsec_out_options\"
|
local options
|
||||||
|
eval options=\"\$${1}_ipsec_options \$${1}_ipsec_out_options\"
|
||||||
echo "-m policy --pol ipsec --dir out $options"
|
echo "-m policy --pol ipsec --dir out $options"
|
||||||
elif [ -n "$POLICY_MATCH" ]; then
|
elif [ -n "$POLICY_MATCH" ]; then
|
||||||
echo "-m policy --pol none --dir out"
|
echo "-m policy --pol none --dir out"
|
||||||
@ -1156,7 +1220,10 @@ firewall_ip_range() # $1 = IP address or range
|
|||||||
#
|
#
|
||||||
find_hosts() # $1 = host zone
|
find_hosts() # $1 = host zone
|
||||||
{
|
{
|
||||||
local hosts interface address addresses
|
local hosts
|
||||||
|
local interface
|
||||||
|
local address
|
||||||
|
local addresses
|
||||||
|
|
||||||
while read z hosts options; do
|
while read z hosts options; do
|
||||||
if [ "x$(expand $z)" = "x$1" ]; then
|
if [ "x$(expand $z)" = "x$1" ]; then
|
||||||
@ -1185,7 +1252,10 @@ find_hosts() # $1 = host zone
|
|||||||
#
|
#
|
||||||
find_exclusions() # $1 = host zone
|
find_exclusions() # $1 = host zone
|
||||||
{
|
{
|
||||||
local hosts interface address addresses
|
local hosts
|
||||||
|
local interface
|
||||||
|
local address
|
||||||
|
local addresses
|
||||||
|
|
||||||
while read z hosts options; do
|
while read z hosts options; do
|
||||||
if [ "x$z" = "x$1" ]; then
|
if [ "x$z" = "x$1" ]; then
|
||||||
@ -1335,7 +1405,8 @@ find_interfaces_by_option() # $1 = option
|
|||||||
#
|
#
|
||||||
find_interfaces_by_option1() # $1 = option
|
find_interfaces_by_option1() # $1 = option
|
||||||
{
|
{
|
||||||
local options option
|
local options
|
||||||
|
local option
|
||||||
|
|
||||||
for interface in $ALL_INTERFACES; do
|
for interface in $ALL_INTERFACES; do
|
||||||
eval options=\$$(chain_base $interface)_options
|
eval options=\$$(chain_base $interface)_options
|
||||||
@ -1353,7 +1424,15 @@ find_interfaces_by_option1() # $1 = option
|
|||||||
#
|
#
|
||||||
find_hosts_by_option() # $1 = option
|
find_hosts_by_option() # $1 = option
|
||||||
{
|
{
|
||||||
local ignore hosts interface address addresses options ipsec= list
|
local ignore
|
||||||
|
local hosts
|
||||||
|
local interface
|
||||||
|
local address
|
||||||
|
local addresses
|
||||||
|
local options
|
||||||
|
local ipsec
|
||||||
|
ipsec=
|
||||||
|
local list
|
||||||
|
|
||||||
while read ignore hosts options; do
|
while read ignore hosts options; do
|
||||||
list=$(separate_list $options)
|
list=$(separate_list $options)
|
||||||
@ -1378,7 +1457,18 @@ find_hosts_by_option() # $1 = option
|
|||||||
#
|
#
|
||||||
process_routestopped() # $1 = command
|
process_routestopped() # $1 = command
|
||||||
{
|
{
|
||||||
local hosts= interface host host1 options networks source= dest= matched
|
local hosts
|
||||||
|
hosts=
|
||||||
|
local interface
|
||||||
|
local host
|
||||||
|
local host1
|
||||||
|
local options
|
||||||
|
local networks
|
||||||
|
local source
|
||||||
|
source=
|
||||||
|
local dest
|
||||||
|
dest=
|
||||||
|
local matched
|
||||||
|
|
||||||
while read interface host options; do
|
while read interface host options; do
|
||||||
[ "x$host" = "x-" -o -z "$host" ] && host=0.0.0.0/0
|
[ "x$host" = "x-" -o -z "$host" ] && host=0.0.0.0/0
|
||||||
@ -1454,7 +1544,15 @@ process_routestopped() # $1 = command
|
|||||||
|
|
||||||
process_criticalhosts()
|
process_criticalhosts()
|
||||||
{
|
{
|
||||||
local hosts= interface host h options networks criticalhosts=
|
local hosts
|
||||||
|
hosts=
|
||||||
|
local interface
|
||||||
|
local host
|
||||||
|
local h
|
||||||
|
local options
|
||||||
|
local networks
|
||||||
|
local criticalhosts
|
||||||
|
criticalhosts=
|
||||||
|
|
||||||
while read interface host options; do
|
while read interface host options; do
|
||||||
[ "x$host" = "x-" -o -z "$host" ] && host=0.0.0.0/0 || host=$(separate_list $host)
|
[ "x$host" = "x-" -o -z "$host" ] && host=0.0.0.0/0 || host=$(separate_list $host)
|
||||||
@ -1514,7 +1612,8 @@ mktempdir() {
|
|||||||
|
|
||||||
read_file() # $1 = file name, $2 = nest count
|
read_file() # $1 = file name, $2 = nest count
|
||||||
{
|
{
|
||||||
local first rest
|
local first
|
||||||
|
local rest
|
||||||
|
|
||||||
if [ -f $1 ]; then
|
if [ -f $1 ]; then
|
||||||
while read first rest; do
|
while read first rest; do
|
||||||
@ -1562,7 +1661,8 @@ strip_file() # $1 = Base Name of the file, $2 = Full Name of File (optional)
|
|||||||
#
|
#
|
||||||
strip_file_and_lib_load() # $1 = logical file name, $2 = library to load if the stripped file is non-empty
|
strip_file_and_lib_load() # $1 = logical file name, $2 = library to load if the stripped file is non-empty
|
||||||
{
|
{
|
||||||
local f=$(find_file $1)
|
local f
|
||||||
|
f=$(find_file $1)
|
||||||
|
|
||||||
strip_file $1 $f
|
strip_file $1 $f
|
||||||
|
|
||||||
@ -1609,7 +1709,8 @@ verify_mark() # $1 = value to test
|
|||||||
#
|
#
|
||||||
added_param_value_yes() # $1 = Parameter Name, $2 = Parameter value
|
added_param_value_yes() # $1 = Parameter Name, $2 = Parameter value
|
||||||
{
|
{
|
||||||
local val="$2"
|
local val
|
||||||
|
val="$2"
|
||||||
|
|
||||||
if [ -z "$val" ]; then
|
if [ -z "$val" ]; then
|
||||||
echo "Yes"
|
echo "Yes"
|
||||||
@ -1632,7 +1733,8 @@ added_param_value_yes() # $1 = Parameter Name, $2 = Parameter value
|
|||||||
#
|
#
|
||||||
added_param_value_no() # $1 = Parameter Name, $2 = Parameter value
|
added_param_value_no() # $1 = Parameter Name, $2 = Parameter value
|
||||||
{
|
{
|
||||||
local val="$2"
|
local val
|
||||||
|
val="$2"
|
||||||
|
|
||||||
if [ -z "$val" ]; then
|
if [ -z "$val" ]; then
|
||||||
echo ""
|
echo ""
|
||||||
|
@ -289,15 +289,18 @@ get_config() {
|
|||||||
# Run the appropriate compiler
|
# Run the appropriate compiler
|
||||||
#
|
#
|
||||||
compiler() {
|
compiler() {
|
||||||
local sc=${SHELLSHAREDIR}/compiler
|
local sc
|
||||||
local pc=${PERLSHAREDIR}/compiler.pl
|
sc=${SHELLSHAREDIR}/compiler
|
||||||
|
local pc
|
||||||
|
pc=${PERLSHAREDIR}/compiler.pl
|
||||||
|
|
||||||
startup_error() {
|
startup_error() {
|
||||||
echo " ERROR: $@" >&2
|
echo " ERROR: $@" >&2
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
local command=$1
|
local command
|
||||||
|
command=$1
|
||||||
|
|
||||||
shift
|
shift
|
||||||
|
|
||||||
@ -413,10 +416,12 @@ compiler() {
|
|||||||
# Start Command Executor
|
# Start Command Executor
|
||||||
#
|
#
|
||||||
start_command() {
|
start_command() {
|
||||||
local finished=0
|
local finished
|
||||||
|
finished=0
|
||||||
|
|
||||||
do_it() {
|
do_it() {
|
||||||
local rc=0
|
local rc
|
||||||
|
rc=0
|
||||||
|
|
||||||
progress_message3 "Compiling..."
|
progress_message3 "Compiling..."
|
||||||
|
|
||||||
@ -546,7 +551,8 @@ start_command() {
|
|||||||
# Compile Command Executor
|
# Compile Command Executor
|
||||||
#
|
#
|
||||||
compile_command() {
|
compile_command() {
|
||||||
local finished=0
|
local finished
|
||||||
|
finished=0
|
||||||
|
|
||||||
while [ $finished -eq 0 ]; do
|
while [ $finished -eq 0 ]; do
|
||||||
[ $# -eq 0 ] && usage 1
|
[ $# -eq 0 ] && usage 1
|
||||||
@ -636,7 +642,8 @@ compile_command() {
|
|||||||
# Check Command Executor
|
# Check Command Executor
|
||||||
#
|
#
|
||||||
check_command() {
|
check_command() {
|
||||||
local finished=0
|
local finished
|
||||||
|
finished=0
|
||||||
|
|
||||||
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
||||||
option=$1
|
option=$1
|
||||||
@ -714,7 +721,10 @@ check_command() {
|
|||||||
# Restart Command Executor
|
# Restart Command Executor
|
||||||
#
|
#
|
||||||
restart_command() {
|
restart_command() {
|
||||||
local finished=0 rc=0
|
local finished
|
||||||
|
finished=0
|
||||||
|
local rc
|
||||||
|
rc=0
|
||||||
|
|
||||||
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
||||||
option=$1
|
option=$1
|
||||||
@ -801,7 +811,8 @@ restart_command() {
|
|||||||
# Refresh Command Executor
|
# Refresh Command Executor
|
||||||
#
|
#
|
||||||
refresh_command() {
|
refresh_command() {
|
||||||
local finished=0
|
local finished
|
||||||
|
finished=0
|
||||||
|
|
||||||
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
||||||
option=$1
|
option=$1
|
||||||
@ -868,7 +879,8 @@ refresh_command() {
|
|||||||
# Safe-start/safe-restart Command Executor
|
# Safe-start/safe-restart Command Executor
|
||||||
#
|
#
|
||||||
safe_commands() {
|
safe_commands() {
|
||||||
local finished=0
|
local finished
|
||||||
|
finished=0
|
||||||
|
|
||||||
# test is the shell supports timed read
|
# test is the shell supports timed read
|
||||||
read -t 0 junk 2> /dev/null
|
read -t 0 junk 2> /dev/null
|
||||||
@ -1006,7 +1018,10 @@ safe_commands() {
|
|||||||
# 'try' Command Executor
|
# 'try' Command Executor
|
||||||
#
|
#
|
||||||
try_command() {
|
try_command() {
|
||||||
local finished=0 timeout=
|
local finished
|
||||||
|
finished=0
|
||||||
|
local timeout
|
||||||
|
timeout=
|
||||||
|
|
||||||
handle_directory() {
|
handle_directory() {
|
||||||
[ -n "$SHOREWALL_DIR" ] && usage 2
|
[ -n "$SHOREWALL_DIR" ] && usage 2
|
||||||
@ -1151,7 +1166,25 @@ rcp_command() {
|
|||||||
#
|
#
|
||||||
reload_command() # $* = original arguments less the command.
|
reload_command() # $* = original arguments less the command.
|
||||||
{
|
{
|
||||||
local verbose=$(make_verbose) file= capabilities= finished=0 saveit= result directory system getcaps= root=root compiler=
|
local verbose
|
||||||
|
verbose=$(make_verbose)
|
||||||
|
local file
|
||||||
|
file=
|
||||||
|
local capabilities
|
||||||
|
capabilities=
|
||||||
|
local finished
|
||||||
|
finished=0
|
||||||
|
local saveit
|
||||||
|
saveit=
|
||||||
|
local result
|
||||||
|
local directory
|
||||||
|
local system
|
||||||
|
local getcaps
|
||||||
|
getcaps=
|
||||||
|
local root
|
||||||
|
root=root
|
||||||
|
local compiler
|
||||||
|
compiler=
|
||||||
|
|
||||||
LITEDIR=/var/lib/shorewall-lite
|
LITEDIR=/var/lib/shorewall-lite
|
||||||
|
|
||||||
@ -1266,7 +1299,8 @@ reload_command() # $* = original arguments less the command.
|
|||||||
#
|
#
|
||||||
export_command() # $* = original arguments less the command.
|
export_command() # $* = original arguments less the command.
|
||||||
{
|
{
|
||||||
local verbose=$(make_verbose) file= finished=0 directory target compiler=
|
local verbose
|
||||||
|
verbose=$(make_verbose) file= finished=0 directory target compiler=
|
||||||
|
|
||||||
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
||||||
option=$1
|
option=$1
|
||||||
@ -1499,7 +1533,10 @@ while [ $finished -eq 0 ]; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
version_command() {
|
version_command() {
|
||||||
local finished=0 all=
|
local finished
|
||||||
|
finished=0
|
||||||
|
local all
|
||||||
|
all=
|
||||||
|
|
||||||
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
||||||
option=$1
|
option=$1
|
||||||
|
@ -38,7 +38,8 @@ expand_line() {
|
|||||||
|
|
||||||
read_file() # $1 = file name, $2 = nest count
|
read_file() # $1 = file name, $2 = nest count
|
||||||
{
|
{
|
||||||
local first rest
|
local first
|
||||||
|
local rest
|
||||||
|
|
||||||
if [ -f $1 ]; then
|
if [ -f $1 ]; then
|
||||||
while read first rest; do
|
while read first rest; do
|
||||||
@ -61,7 +62,8 @@ read_file() # $1 = file name, $2 = nest count
|
|||||||
# Split a colon-separated list into a space-separated list
|
# Split a colon-separated list into a space-separated list
|
||||||
#
|
#
|
||||||
split() {
|
split() {
|
||||||
local ifs=$IFS
|
local ifs
|
||||||
|
ifs=$IFS
|
||||||
IFS=:
|
IFS=:
|
||||||
echo $*
|
echo $*
|
||||||
IFS=$ifs
|
IFS=$ifs
|
||||||
@ -72,7 +74,9 @@ split() {
|
|||||||
#
|
#
|
||||||
find_file()
|
find_file()
|
||||||
{
|
{
|
||||||
local saveifs= directory
|
local saveifs
|
||||||
|
saveifs=
|
||||||
|
local directory
|
||||||
|
|
||||||
case $1 in
|
case $1 in
|
||||||
/*)
|
/*)
|
||||||
|
@ -53,7 +53,8 @@ restore_directory() # $1 = directory to restore
|
|||||||
restore_file() # $1 = file to restore, $2 = (Optional) Directory to restore from
|
restore_file() # $1 = file to restore, $2 = (Optional) Directory to restore from
|
||||||
{
|
{
|
||||||
if [ -n "$2" ]; then
|
if [ -n "$2" ]; then
|
||||||
local file=$(basename $1)
|
local file
|
||||||
|
file=$(basename $1)
|
||||||
|
|
||||||
if [ -f $2/$file ]; then
|
if [ -f $2/$file ]; then
|
||||||
if mv -f $2/$file $1 ; then
|
if mv -f $2/$file $1 ; then
|
||||||
|
@ -35,7 +35,8 @@ usage() # $1 = exit status
|
|||||||
}
|
}
|
||||||
|
|
||||||
split() {
|
split() {
|
||||||
local ifs=$IFS
|
local ifs
|
||||||
|
ifs=$IFS
|
||||||
IFS=:
|
IFS=:
|
||||||
set -- $1
|
set -- $1
|
||||||
echo $*
|
echo $*
|
||||||
|
@ -178,10 +178,12 @@ verify_firewall_script() {
|
|||||||
# Start Command Executor
|
# Start Command Executor
|
||||||
#
|
#
|
||||||
start_command() {
|
start_command() {
|
||||||
local finished=0
|
local finished
|
||||||
|
finished=0
|
||||||
|
|
||||||
do_it() {
|
do_it() {
|
||||||
local rc=0
|
local rc
|
||||||
|
rc=0
|
||||||
[ -n "$nolock" ] || mutex_on
|
[ -n "$nolock" ] || mutex_on
|
||||||
|
|
||||||
if [ -x ${LITEDIR}/firewall ]; then
|
if [ -x ${LITEDIR}/firewall ]; then
|
||||||
@ -286,7 +288,10 @@ start_command() {
|
|||||||
# Restart Command Executor
|
# Restart Command Executor
|
||||||
#
|
#
|
||||||
restart_command() {
|
restart_command() {
|
||||||
local finished=0 rc=0
|
local finished
|
||||||
|
finished=0
|
||||||
|
local rc
|
||||||
|
rc=0
|
||||||
|
|
||||||
verify_firewall_script
|
verify_firewall_script
|
||||||
|
|
||||||
|
@ -35,7 +35,8 @@ usage() # $1 = exit status
|
|||||||
}
|
}
|
||||||
|
|
||||||
split() {
|
split() {
|
||||||
local ifs=$IFS
|
local ifs
|
||||||
|
ifs=$IFS
|
||||||
IFS=:
|
IFS=:
|
||||||
set -- $1
|
set -- $1
|
||||||
echo $*
|
echo $*
|
||||||
|
@ -35,7 +35,8 @@ error_message() # $* = Error Message
|
|||||||
#
|
#
|
||||||
progress_message() # $* = Message
|
progress_message() # $* = Message
|
||||||
{
|
{
|
||||||
local timestamp=
|
local timestamp
|
||||||
|
timestamp=
|
||||||
|
|
||||||
if [ $VERBOSE -gt 1 ]; then
|
if [ $VERBOSE -gt 1 ]; then
|
||||||
[ -n "$TIMESTAMP" ] && timestamp="$(date +%H:%M:%S) "
|
[ -n "$TIMESTAMP" ] && timestamp="$(date +%H:%M:%S) "
|
||||||
@ -50,7 +51,8 @@ progress_message() # $* = Message
|
|||||||
|
|
||||||
progress_message2() # $* = Message
|
progress_message2() # $* = Message
|
||||||
{
|
{
|
||||||
local timestamp=
|
local timestamp
|
||||||
|
timestamp=
|
||||||
|
|
||||||
if [ $VERBOSE -gt 0 ]; then
|
if [ $VERBOSE -gt 0 ]; then
|
||||||
[ -n "$TIMESTAMP" ] && timestamp="$(date +%H:%M:%S) "
|
[ -n "$TIMESTAMP" ] && timestamp="$(date +%H:%M:%S) "
|
||||||
@ -65,7 +67,8 @@ progress_message2() # $* = Message
|
|||||||
|
|
||||||
progress_message3() # $* = Message
|
progress_message3() # $* = Message
|
||||||
{
|
{
|
||||||
local timestamp=
|
local timestamp
|
||||||
|
timestamp=
|
||||||
|
|
||||||
if [ $VERBOSE -ge 0 ]; then
|
if [ $VERBOSE -ge 0 ]; then
|
||||||
[ -n "$TIMESTAMP" ] && timestamp="$(date +%H:%M:%S) "
|
[ -n "$TIMESTAMP" ] && timestamp="$(date +%H:%M:%S) "
|
||||||
@ -82,7 +85,8 @@ progress_message3() # $* = Message
|
|||||||
# Split a colon-separated list into a space-separated list
|
# Split a colon-separated list into a space-separated list
|
||||||
#
|
#
|
||||||
split() {
|
split() {
|
||||||
local ifs=$IFS
|
local ifs
|
||||||
|
ifs=$IFS
|
||||||
IFS=:
|
IFS=:
|
||||||
echo $*
|
echo $*
|
||||||
IFS=$ifs
|
IFS=$ifs
|
||||||
@ -94,7 +98,8 @@ split() {
|
|||||||
#
|
#
|
||||||
list_search() # $1 = element to search for , $2-$n = list
|
list_search() # $1 = element to search for , $2-$n = list
|
||||||
{
|
{
|
||||||
local e=$1
|
local e
|
||||||
|
e=$1
|
||||||
|
|
||||||
while [ $# -gt 1 ]; do
|
while [ $# -gt 1 ]; do
|
||||||
shift
|
shift
|
||||||
@ -143,7 +148,8 @@ my_pathname() {
|
|||||||
#
|
#
|
||||||
run_user_exit() # $1 = file name
|
run_user_exit() # $1 = file name
|
||||||
{
|
{
|
||||||
local user_exit=$(find_file $1)
|
local user_exit
|
||||||
|
user_exit=$(find_file $1)
|
||||||
|
|
||||||
if [ -f $user_exit ]; then
|
if [ -f $user_exit ]; then
|
||||||
progress_message "Processing $user_exit ..."
|
progress_message "Processing $user_exit ..."
|
||||||
@ -199,7 +205,8 @@ deleteallchains() {
|
|||||||
#
|
#
|
||||||
loadmodule() # $1 = module name, $2 - * arguments
|
loadmodule() # $1 = module name, $2 - * arguments
|
||||||
{
|
{
|
||||||
local modulename=$1
|
local modulename
|
||||||
|
modulename=$1
|
||||||
local modulefile
|
local modulefile
|
||||||
local suffix
|
local suffix
|
||||||
|
|
||||||
@ -231,10 +238,13 @@ loadmodule() # $1 = module name, $2 - * arguments
|
|||||||
#
|
#
|
||||||
reload_kernel_modules() {
|
reload_kernel_modules() {
|
||||||
|
|
||||||
local save_modules_dir=$MODULESDIR
|
local save_modules_dir
|
||||||
|
save_modules_dir=$MODULESDIR
|
||||||
local directory
|
local directory
|
||||||
local moduledirectories=
|
local moduledirectories
|
||||||
local moduleloader=modprobe
|
moduledirectories=
|
||||||
|
local moduleloader
|
||||||
|
moduleloader=modprobe
|
||||||
|
|
||||||
if ! qt mywhich modprobe; then
|
if ! qt mywhich modprobe; then
|
||||||
moduleloader=insmod
|
moduleloader=insmod
|
||||||
@ -261,11 +271,15 @@ reload_kernel_modules() {
|
|||||||
#
|
#
|
||||||
load_kernel_modules() # $1 = Yes, if we are to save moduleinfo in $VARDIR
|
load_kernel_modules() # $1 = Yes, if we are to save moduleinfo in $VARDIR
|
||||||
{
|
{
|
||||||
local save_modules_dir=$MODULESDIR
|
local save_modules_dir
|
||||||
|
save_modules_dir=$MODULESDIR
|
||||||
local directory
|
local directory
|
||||||
local moduledirectories=
|
local moduledirectories
|
||||||
local moduleloader=modprobe
|
moduledirectories=
|
||||||
local savemoduleinfo=${1:-Yes} # So old compiled scripts still work
|
local moduleloader
|
||||||
|
moduleloader=modprobe
|
||||||
|
local savemoduleinfo
|
||||||
|
savemoduleinfo=${1:-Yes} # So old compiled scripts still work
|
||||||
|
|
||||||
if ! qt mywhich modprobe; then
|
if ! qt mywhich modprobe; then
|
||||||
moduleloader=insmod
|
moduleloader=insmod
|
||||||
@ -313,8 +327,10 @@ LEFTSHIFT='<<'
|
|||||||
#
|
#
|
||||||
decodeaddr() {
|
decodeaddr() {
|
||||||
local x
|
local x
|
||||||
local temp=0
|
local temp
|
||||||
local ifs=$IFS
|
temp=0
|
||||||
|
local ifs
|
||||||
|
ifs=$IFS
|
||||||
|
|
||||||
IFS=.
|
IFS=.
|
||||||
|
|
||||||
@ -333,7 +349,8 @@ decodeaddr() {
|
|||||||
encodeaddr() {
|
encodeaddr() {
|
||||||
addr=$1
|
addr=$1
|
||||||
local x
|
local x
|
||||||
local y=$(($addr & 255))
|
local y
|
||||||
|
y=$(($addr & 255))
|
||||||
|
|
||||||
for x in 1 2 3 ; do
|
for x in 1 2 3 ; do
|
||||||
addr=$(($addr >> 8))
|
addr=$(($addr >> 8))
|
||||||
@ -347,7 +364,8 @@ encodeaddr() {
|
|||||||
# Netmask from CIDR
|
# Netmask from CIDR
|
||||||
#
|
#
|
||||||
ip_netmask() {
|
ip_netmask() {
|
||||||
local vlsm=${1#*/}
|
local vlsm
|
||||||
|
vlsm=${1#*/}
|
||||||
|
|
||||||
[ $vlsm -eq 0 ] && echo 0 || echo $(( -1 $LEFTSHIFT $(( 32 - $vlsm )) ))
|
[ $vlsm -eq 0 ] && echo 0 || echo $(( -1 $LEFTSHIFT $(( 32 - $vlsm )) ))
|
||||||
}
|
}
|
||||||
@ -356,8 +374,10 @@ ip_netmask() {
|
|||||||
# Network address from CIDR
|
# Network address from CIDR
|
||||||
#
|
#
|
||||||
ip_network() {
|
ip_network() {
|
||||||
local decodedaddr=$(decodeaddr ${1%/*})
|
local decodedaddr
|
||||||
local netmask=$(ip_netmask $1)
|
decodedaddr=$(decodeaddr ${1%/*})
|
||||||
|
local netmask
|
||||||
|
netmask=$(ip_netmask $1)
|
||||||
|
|
||||||
echo $(encodeaddr $(($decodedaddr & $netmask)))
|
echo $(encodeaddr $(($decodedaddr & $netmask)))
|
||||||
}
|
}
|
||||||
@ -367,7 +387,8 @@ ip_network() {
|
|||||||
# the popular light-weight Bourne shell derivatives don't support XOR ("^").
|
# the popular light-weight Bourne shell derivatives don't support XOR ("^").
|
||||||
#
|
#
|
||||||
ip_broadcast() {
|
ip_broadcast() {
|
||||||
local x=$(( 32 - ${1#*/} ))
|
local x
|
||||||
|
x=$(( 32 - ${1#*/} ))
|
||||||
|
|
||||||
[ $x -eq 32 ] && echo -1 || echo $(( $(( 1 $LEFTSHIFT $x )) - 1 ))
|
[ $x -eq 32 ] && echo -1 || echo $(( $(( 1 $LEFTSHIFT $x )) - 1 ))
|
||||||
}
|
}
|
||||||
@ -376,9 +397,12 @@ ip_broadcast() {
|
|||||||
# Calculate broadcast address from CIDR
|
# Calculate broadcast address from CIDR
|
||||||
#
|
#
|
||||||
broadcastaddress() {
|
broadcastaddress() {
|
||||||
local decodedaddr=$(decodeaddr ${1%/*})
|
local decodedaddr
|
||||||
local netmask=$(ip_netmask $1)
|
decodedaddr=$(decodeaddr ${1%/*})
|
||||||
local broadcast=$(ip_broadcast $1)
|
local netmask
|
||||||
|
netmask=$(ip_netmask $1)
|
||||||
|
local broadcast
|
||||||
|
broadcast=$(ip_broadcast $1)
|
||||||
|
|
||||||
echo $(encodeaddr $(( $(($decodedaddr & $netmask)) | $broadcast )))
|
echo $(encodeaddr $(( $(($decodedaddr & $netmask)) | $broadcast )))
|
||||||
}
|
}
|
||||||
@ -388,7 +412,8 @@ broadcastaddress() {
|
|||||||
#
|
#
|
||||||
in_network() # $1 = IP address, $2 = CIDR network
|
in_network() # $1 = IP address, $2 = CIDR network
|
||||||
{
|
{
|
||||||
local netmask=$(ip_netmask $2)
|
local netmask
|
||||||
|
netmask=$(ip_netmask $2)
|
||||||
#
|
#
|
||||||
# Use string comparison to work around a broken BusyBox ash in OpenWRT
|
# Use string comparison to work around a broken BusyBox ash in OpenWRT
|
||||||
#
|
#
|
||||||
@ -493,8 +518,10 @@ find_default_interface() {
|
|||||||
#
|
#
|
||||||
|
|
||||||
find_interface_by_address() {
|
find_interface_by_address() {
|
||||||
local dev="$(find_rt_interface $1)"
|
local dev
|
||||||
local first rest
|
dev="$(find_rt_interface $1)"
|
||||||
|
local first
|
||||||
|
local rest
|
||||||
|
|
||||||
[ -z "$dev" ] && dev=$(find_default_interface)
|
[ -z "$dev" ] && dev=$(find_default_interface)
|
||||||
|
|
||||||
@ -506,7 +533,12 @@ find_interface_by_address() {
|
|||||||
#
|
#
|
||||||
|
|
||||||
find_interface_by_mac() {
|
find_interface_by_mac() {
|
||||||
local mac=$1 first second rest dev
|
local mac
|
||||||
|
mac=$1
|
||||||
|
local first
|
||||||
|
local second
|
||||||
|
local rest
|
||||||
|
local dev
|
||||||
|
|
||||||
ip link list | while read first second rest; do
|
ip link list | while read first second rest; do
|
||||||
case $first in
|
case $first in
|
||||||
@ -611,7 +643,8 @@ get_routed_networks() # $1 = interface name, $2-n = Fatal error message
|
|||||||
|
|
||||||
get_interface_bcasts() # $1 = interface
|
get_interface_bcasts() # $1 = interface
|
||||||
{
|
{
|
||||||
local addresses=
|
local addresses
|
||||||
|
addresses=
|
||||||
|
|
||||||
ip -f inet addr show dev $1 2> /dev/null | grep 'inet.*brd' | sed 's/inet.*brd //; s/scope.*//;' | sort -u
|
ip -f inet addr show dev $1 2> /dev/null | grep 'inet.*brd' | sed 's/inet.*brd //; s/scope.*//;' | sort -u
|
||||||
}
|
}
|
||||||
@ -637,7 +670,9 @@ mywhich() {
|
|||||||
#
|
#
|
||||||
find_file()
|
find_file()
|
||||||
{
|
{
|
||||||
local saveifs= directory
|
local saveifs
|
||||||
|
saveifs=
|
||||||
|
directory
|
||||||
|
|
||||||
case $1 in
|
case $1 in
|
||||||
/*)
|
/*)
|
||||||
@ -691,7 +726,16 @@ del_ip_addr() # $1 = address, $2 = interface
|
|||||||
#
|
#
|
||||||
add_ip_aliases() # $* = List of addresses
|
add_ip_aliases() # $* = List of addresses
|
||||||
{
|
{
|
||||||
local addresses external interface inet cidr rest val arping=$(mywhich arping)
|
local local
|
||||||
|
local addresses
|
||||||
|
local external
|
||||||
|
local interface
|
||||||
|
local inet
|
||||||
|
local cidr
|
||||||
|
local rest
|
||||||
|
local val
|
||||||
|
local arping
|
||||||
|
arping=$(mywhich arping)
|
||||||
|
|
||||||
address_details()
|
address_details()
|
||||||
{
|
{
|
||||||
@ -748,7 +792,8 @@ add_ip_aliases() # $* = List of addresses
|
|||||||
|
|
||||||
detect_gateway() # $1 = interface
|
detect_gateway() # $1 = interface
|
||||||
{
|
{
|
||||||
local interface=$1
|
local interface
|
||||||
|
interface=$1
|
||||||
#
|
#
|
||||||
# First assume that this is some sort of point-to-point interface
|
# First assume that this is some sort of point-to-point interface
|
||||||
#
|
#
|
||||||
@ -771,7 +816,8 @@ detect_gateway() # $1 = interface
|
|||||||
# Disable IPV6
|
# Disable IPV6
|
||||||
#
|
#
|
||||||
disable_ipv6() {
|
disable_ipv6() {
|
||||||
local foo="$(ip -f inet6 addr list 2> /dev/null)"
|
local foo
|
||||||
|
foo="$(ip -f inet6 addr list 2> /dev/null)"
|
||||||
|
|
||||||
if [ -n "$foo" ]; then
|
if [ -n "$foo" ]; then
|
||||||
if qt mywhich ip6tables; then
|
if qt mywhich ip6tables; then
|
||||||
@ -825,7 +871,8 @@ delete_tc1()
|
|||||||
#
|
#
|
||||||
get_device_mtu() # $1 = device
|
get_device_mtu() # $1 = device
|
||||||
{
|
{
|
||||||
local output="$(ip link list dev $1 2> /dev/null)" # quotes required for /bin/ash
|
local output
|
||||||
|
output="$(ip link list dev $1 2> /dev/null)" # quotes required for /bin/ash
|
||||||
|
|
||||||
if [ -n "$output" ]; then
|
if [ -n "$output" ]; then
|
||||||
echo $(find_mtu $output)
|
echo $(find_mtu $output)
|
||||||
@ -840,7 +887,8 @@ get_device_mtu() # $1 = device
|
|||||||
#
|
#
|
||||||
get_device_mtu1() # $1 = device
|
get_device_mtu1() # $1 = device
|
||||||
{
|
{
|
||||||
local output="$(ip link list dev $1 2> /dev/null)" # quotes required for /bin/ash
|
local output
|
||||||
|
output="$(ip link list dev $1 2> /dev/null)" # quotes required for /bin/ash
|
||||||
local mtu
|
local mtu
|
||||||
|
|
||||||
if [ -n "$output" ]; then
|
if [ -n "$output" ]; then
|
||||||
@ -879,7 +927,9 @@ undo_routing() {
|
|||||||
|
|
||||||
restore_default_route() {
|
restore_default_route() {
|
||||||
if [ -z "$NOROUTES" -a -f ${VARDIR}/default_route ]; then
|
if [ -z "$NOROUTES" -a -f ${VARDIR}/default_route ]; then
|
||||||
local default_route= route
|
local default_route
|
||||||
|
default_route=
|
||||||
|
local route
|
||||||
|
|
||||||
while read route ; do
|
while read route ; do
|
||||||
case $route in
|
case $route in
|
||||||
@ -940,7 +990,8 @@ find_mac() # $1 = IP address, $2 = interface
|
|||||||
{
|
{
|
||||||
qt ping -nc 1 -t 2 -I $2 $1
|
qt ping -nc 1 -t 2 -I $2 $1
|
||||||
|
|
||||||
local result=$(arp -na | awk "/[(]$1[)].* $2$/ {print \$4}")
|
local result
|
||||||
|
result=$(arp -na | awk "/[(]$1[)].* $2$/ {print \$4}")
|
||||||
|
|
||||||
case $result in
|
case $result in
|
||||||
\<*\>)
|
\<*\>)
|
||||||
|
@ -133,7 +133,8 @@ indent1() {
|
|||||||
#
|
#
|
||||||
append_file() # $1 = File Name
|
append_file() # $1 = File Name
|
||||||
{
|
{
|
||||||
local user_exit=$(find_file $1)
|
local user_exit
|
||||||
|
user_exit=$(find_file $1)
|
||||||
|
|
||||||
case $user_exit in
|
case $user_exit in
|
||||||
$SHAREDIR/*)
|
$SHAREDIR/*)
|
||||||
@ -215,7 +216,8 @@ run_tc() {
|
|||||||
#
|
#
|
||||||
finish_chain_section() # $1 = canonical chain $2 = state list
|
finish_chain_section() # $1 = canonical chain $2 = state list
|
||||||
{
|
{
|
||||||
local policy policychain
|
local policy
|
||||||
|
local policychain
|
||||||
|
|
||||||
[ -n "$FASTACCEPT" ] || run_iptables -A $1 -m state --state $2 -j ACCEPT
|
[ -n "$FASTACCEPT" ] || run_iptables -A $1 -m state --state $2 -j ACCEPT
|
||||||
|
|
||||||
@ -246,7 +248,9 @@ finish_chain_section() # $1 = canonical chain $2 = state list
|
|||||||
|
|
||||||
finish_section() # $1 = Section(s)
|
finish_section() # $1 = Section(s)
|
||||||
{
|
{
|
||||||
local zone zone1 chain
|
local zone
|
||||||
|
local zone1
|
||||||
|
local chain
|
||||||
|
|
||||||
for zone in $ZONES $FW; do
|
for zone in $ZONES $FW; do
|
||||||
for zone1 in $ZONES $FW; do
|
for zone1 in $ZONES $FW; do
|
||||||
@ -268,7 +272,8 @@ finish_section() # $1 = Section(s)
|
|||||||
#
|
#
|
||||||
createchain() # $1 = chain name, $2 = If "yes", do section-end processing
|
createchain() # $1 = chain name, $2 = If "yes", do section-end processing
|
||||||
{
|
{
|
||||||
local c=$(chain_base $1)
|
local c
|
||||||
|
c=$(chain_base $1)
|
||||||
|
|
||||||
run_iptables -N $1
|
run_iptables -N $1
|
||||||
|
|
||||||
@ -291,7 +296,8 @@ createchain() # $1 = chain name, $2 = If "yes", do section-end processing
|
|||||||
#
|
#
|
||||||
createchain2() # $1 = chain name, $2 = If "yes", create default rules
|
createchain2() # $1 = chain name, $2 = If "yes", create default rules
|
||||||
{
|
{
|
||||||
local c=$(chain_base $1)
|
local c
|
||||||
|
c=$(chain_base $1)
|
||||||
|
|
||||||
ensurechain $1
|
ensurechain $1
|
||||||
|
|
||||||
@ -318,7 +324,8 @@ createchain2() # $1 = chain name, $2 = If "yes", create default rules
|
|||||||
#
|
#
|
||||||
havechain() # $1 = name of chain
|
havechain() # $1 = name of chain
|
||||||
{
|
{
|
||||||
local c=$(chain_base $1)
|
local c
|
||||||
|
c=$(chain_base $1)
|
||||||
|
|
||||||
eval test \"\$exists_${c}\" = Yes
|
eval test \"\$exists_${c}\" = Yes
|
||||||
}
|
}
|
||||||
@ -724,16 +731,25 @@ disable_critical_hosts()
|
|||||||
#
|
#
|
||||||
log_rule_limit() # $1 = log level, $2 = chain, $3 = display Chain $4 = disposition , $5 = rate limit $6=log tag $7=command $... = predicates for the rule
|
log_rule_limit() # $1 = log level, $2 = chain, $3 = display Chain $4 = disposition , $5 = rate limit $6=log tag $7=command $... = predicates for the rule
|
||||||
{
|
{
|
||||||
local level=$1
|
local level
|
||||||
local chain=$2
|
level=$1
|
||||||
local displayChain=$3
|
local chain
|
||||||
local disposition=$4
|
chain=$2
|
||||||
local rulenum=
|
local displayChain
|
||||||
local limit=
|
displayChain=$3
|
||||||
local tag=$6
|
local disposition
|
||||||
local command=${7:--A}
|
disposition=$4
|
||||||
|
local rulenum
|
||||||
|
rulenum=
|
||||||
|
local limit
|
||||||
|
limit=
|
||||||
|
local tag
|
||||||
|
tag=$6
|
||||||
|
local command
|
||||||
|
command=${7:--A}
|
||||||
local prefix
|
local prefix
|
||||||
local base=$(chain_base $displayChain)
|
local base
|
||||||
|
base=$(chain_base $displayChain)
|
||||||
|
|
||||||
limit="${5:-$LOGLIMIT}" # Do this here rather than in the declaration above to appease /bin/ash.
|
limit="${5:-$LOGLIMIT}" # Do this here rather than in the declaration above to appease /bin/ash.
|
||||||
|
|
||||||
@ -744,9 +760,12 @@ log_rule_limit() # $1 = log level, $2 = chain, $3 = display Chain $4 = dispositi
|
|||||||
|
|
||||||
log_rule() # $1 = log level, $2 = chain, $3 = disposition , $... = predicates for the rule
|
log_rule() # $1 = log level, $2 = chain, $3 = disposition , $... = predicates for the rule
|
||||||
{
|
{
|
||||||
local level=$1
|
local level
|
||||||
local chain=$2
|
level=$1
|
||||||
local disposition=$3
|
local chain
|
||||||
|
chain=$2
|
||||||
|
local disposition
|
||||||
|
disposition=$3
|
||||||
|
|
||||||
shift 3
|
shift 3
|
||||||
|
|
||||||
@ -761,9 +780,12 @@ setup_syn_flood_chain ()
|
|||||||
# $2 = synparams
|
# $2 = synparams
|
||||||
# $3 = loglevel
|
# $3 = loglevel
|
||||||
{
|
{
|
||||||
local chain=@$1
|
local chain
|
||||||
local limit=$2
|
chain=@$1
|
||||||
local limit_burst=
|
local limit
|
||||||
|
limit=$2
|
||||||
|
local limit_burst
|
||||||
|
limit_burst=
|
||||||
|
|
||||||
case $limit in
|
case $limit in
|
||||||
*:*)
|
*:*)
|
||||||
@ -842,8 +864,10 @@ __EOF__
|
|||||||
#
|
#
|
||||||
setup_ecn() # $1 = file name
|
setup_ecn() # $1 = file name
|
||||||
{
|
{
|
||||||
local interfaces=""
|
local interfaces
|
||||||
local hosts=
|
interfaces=""
|
||||||
|
local hosts
|
||||||
|
hosts=
|
||||||
local h
|
local h
|
||||||
|
|
||||||
if [ -s ${TMP_DIR}/ecn ]; then
|
if [ -s ${TMP_DIR}/ecn ]; then
|
||||||
@ -891,7 +915,8 @@ setup_ecn() # $1 = file name
|
|||||||
#
|
#
|
||||||
build_exclusion_chain() # $1 = variable to store chain name into $2 = table, $3 = SOURCE exclusion list, $4 = DESTINATION exclusion list
|
build_exclusion_chain() # $1 = variable to store chain name into $2 = table, $3 = SOURCE exclusion list, $4 = DESTINATION exclusion list
|
||||||
{
|
{
|
||||||
local c=excl_${EXCLUSION_SEQ} net
|
local c
|
||||||
|
c=excl_${EXCLUSION_SEQ} net
|
||||||
|
|
||||||
EXCLUSION_SEQ=$(( $EXCLUSION_SEQ + 1 ))
|
EXCLUSION_SEQ=$(( $EXCLUSION_SEQ + 1 ))
|
||||||
|
|
||||||
@ -921,7 +946,10 @@ build_exclusion_chain() # $1 = variable to store chain name into $2 = table, $3
|
|||||||
# Setup queuing and classes
|
# Setup queuing and classes
|
||||||
#
|
#
|
||||||
setup_tc1() {
|
setup_tc1() {
|
||||||
local mark_part= comment=
|
local mark_part
|
||||||
|
mark_part=
|
||||||
|
local comment
|
||||||
|
comment=
|
||||||
#
|
#
|
||||||
# Create the TC mangle chains
|
# Create the TC mangle chains
|
||||||
#
|
#
|
||||||
@ -1030,7 +1058,8 @@ __EOF__
|
|||||||
#
|
#
|
||||||
refresh_tc() {
|
refresh_tc() {
|
||||||
|
|
||||||
local comment=
|
local comment
|
||||||
|
comment=
|
||||||
|
|
||||||
if [ -n "$CLEAR_TC" ]; then
|
if [ -n "$CLEAR_TC" ]; then
|
||||||
delete_tc
|
delete_tc
|
||||||
@ -1094,9 +1123,12 @@ __EOF__
|
|||||||
#
|
#
|
||||||
compile_refresh_firewall()
|
compile_refresh_firewall()
|
||||||
{
|
{
|
||||||
local INDENT=""
|
local INDENT
|
||||||
local DOING="Compiling Refresh of"
|
INDENT=""
|
||||||
local DONE="Compiled"
|
local DOING
|
||||||
|
DOING="Compiling Refresh of"
|
||||||
|
local DONE
|
||||||
|
DONE="Compiled"
|
||||||
local indent
|
local indent
|
||||||
|
|
||||||
save_command "refresh_firewall()"
|
save_command "refresh_firewall()"
|
||||||
@ -1147,7 +1179,8 @@ compile_refresh_firewall()
|
|||||||
process_action_file() # $1 = File Name
|
process_action_file() # $1 = File Name
|
||||||
{
|
{
|
||||||
if ! list_search $1 $BUILTIN_ACTIONS; then
|
if ! list_search $1 $BUILTIN_ACTIONS; then
|
||||||
local user_exit=$(find_file $1)
|
local user_exit
|
||||||
|
user_exit=$(find_file $1)
|
||||||
|
|
||||||
if [ -f $user_exit ]; then
|
if [ -f $user_exit ]; then
|
||||||
progress_message "Processing $user_exit ..."
|
progress_message "Processing $user_exit ..."
|
||||||
@ -1178,7 +1211,12 @@ process_action_file() # $1 = File Name
|
|||||||
|
|
||||||
createlogactionchain() # $1 = Action Name, $2 = Log Level [: Log Tag ]
|
createlogactionchain() # $1 = Action Name, $2 = Log Level [: Log Tag ]
|
||||||
{
|
{
|
||||||
local actchain= action=$1 level=$2
|
local actchain
|
||||||
|
actchain=
|
||||||
|
local action
|
||||||
|
action=$1
|
||||||
|
local level
|
||||||
|
level=$2
|
||||||
|
|
||||||
eval actchain=\${${action}_actchain}
|
eval actchain=\${${action}_actchain}
|
||||||
|
|
||||||
@ -1264,7 +1302,14 @@ createactionchain() # $1 = Action, including log level and tag if any
|
|||||||
#
|
#
|
||||||
find_logactionchain() # $1 = Action, including log level and tag if any
|
find_logactionchain() # $1 = Action, including log level and tag if any
|
||||||
{
|
{
|
||||||
local fullaction=$1 action=${1%%:*} level= chains=
|
local fullaction
|
||||||
|
fullaction=$1
|
||||||
|
local action
|
||||||
|
action=${1%%:*}
|
||||||
|
local level
|
||||||
|
level=
|
||||||
|
local chains
|
||||||
|
chains=
|
||||||
|
|
||||||
find_simpleaction() {
|
find_simpleaction() {
|
||||||
havechain $action || fatal_error "Fatal error in find_logactionchain"
|
havechain $action || fatal_error "Fatal error in find_logactionchain"
|
||||||
@ -1307,7 +1352,10 @@ find_logactionchain() # $1 = Action, including log level and tag if any
|
|||||||
#
|
#
|
||||||
merge_levels() # $1=level at which superior action is called, $2=level at which the subordinate rule is called
|
merge_levels() # $1=level at which superior action is called, $2=level at which the subordinate rule is called
|
||||||
{
|
{
|
||||||
local superior=$1 subordinate=$2
|
local superior
|
||||||
|
superior=$1
|
||||||
|
local subordinate
|
||||||
|
subordinate=$2
|
||||||
|
|
||||||
set -- $(split $1)
|
set -- $(split $1)
|
||||||
|
|
||||||
@ -1384,7 +1432,9 @@ define_builtin_actions() {
|
|||||||
#
|
#
|
||||||
map_old_action() # $1 = Potential Old Action
|
map_old_action() # $1 = Potential Old Action
|
||||||
{
|
{
|
||||||
local macro= aktion
|
local macro
|
||||||
|
macro=
|
||||||
|
local aktion
|
||||||
|
|
||||||
if [ -n "$MAPOLDACTIONS" ]; then
|
if [ -n "$MAPOLDACTIONS" ]; then
|
||||||
case $1 in
|
case $1 in
|
||||||
@ -1437,7 +1487,8 @@ map_old_action() # $1 = Potential Old Action
|
|||||||
#
|
#
|
||||||
substitute_action() # $1 = parameter, $2 = action
|
substitute_action() # $1 = parameter, $2 = action
|
||||||
{
|
{
|
||||||
local logpart=${2#*:}
|
local logpart
|
||||||
|
logpart=${2#*:}
|
||||||
|
|
||||||
case $2 in
|
case $2 in
|
||||||
*:*)
|
*:*)
|
||||||
@ -1635,7 +1686,8 @@ __EOF__
|
|||||||
# policy = Applicable Policy
|
# policy = Applicable Policy
|
||||||
#
|
#
|
||||||
add_a_rule() {
|
add_a_rule() {
|
||||||
local natrule=
|
local natrule
|
||||||
|
natrule=
|
||||||
|
|
||||||
do_ports() {
|
do_ports() {
|
||||||
if [ -n "$port" ]; then
|
if [ -n "$port" ]; then
|
||||||
@ -2123,19 +2175,32 @@ process_rule() # $1 = target
|
|||||||
# $9 = userspec
|
# $9 = userspec
|
||||||
# $10= mark
|
# $10= mark
|
||||||
{
|
{
|
||||||
local target="$1"
|
local target
|
||||||
local clients="$2"
|
target="$1"
|
||||||
local servers="$3"
|
local clients
|
||||||
local protocol="$4"
|
clients="$2"
|
||||||
local ports="$5"
|
local servers
|
||||||
local cports="$6"
|
servers="$3"
|
||||||
local address="$7"
|
local protocol
|
||||||
local ratelimit="$8"
|
protocol="$4"
|
||||||
local userspec="$9"
|
local ports
|
||||||
local mark="${10}"
|
ports="$5"
|
||||||
local userandgroup=
|
local cports
|
||||||
local logtag=
|
cports="$6"
|
||||||
local nonat=
|
local address
|
||||||
|
address="$7"
|
||||||
|
local ratelimit
|
||||||
|
ratelimit="$8"
|
||||||
|
local userspec
|
||||||
|
userspec="$9"
|
||||||
|
local mark
|
||||||
|
mark="${10}"
|
||||||
|
local userandgroup
|
||||||
|
userandgroup=
|
||||||
|
local logtag
|
||||||
|
logtag=
|
||||||
|
local nonat
|
||||||
|
nonat=
|
||||||
|
|
||||||
# # # # # F u n c t i o n B o d y # # # # #
|
# # # # # F u n c t i o n B o d y # # # # #
|
||||||
|
|
||||||
@ -2488,17 +2553,28 @@ process_macro() # $1 = target
|
|||||||
# $9 = userspec
|
# $9 = userspec
|
||||||
# $10= mark
|
# $10= mark
|
||||||
{
|
{
|
||||||
local itarget="$1"
|
local itarget
|
||||||
local param="$2"
|
itarget="$1"
|
||||||
local iclients="$3"
|
local param
|
||||||
local iservers="$4"
|
param="$2"
|
||||||
local iprotocol="$5"
|
local iclients
|
||||||
local iports="$6"
|
iclients="$3"
|
||||||
local icports="$7"
|
local iservers
|
||||||
local iaddress="$8"
|
iservers="$4"
|
||||||
local iratelimit="$9"
|
local iprotocol
|
||||||
local iuserspec="${10}"
|
iprotocol="$5"
|
||||||
local imark="${11}"
|
local iports
|
||||||
|
iports="$6"
|
||||||
|
local icports
|
||||||
|
icports="$7"
|
||||||
|
local iaddress
|
||||||
|
iaddress="$8"
|
||||||
|
local iratelimit
|
||||||
|
iratelimit="$9"
|
||||||
|
local iuserspec
|
||||||
|
iuserspec="${10}"
|
||||||
|
local imark
|
||||||
|
imark="${11}"
|
||||||
|
|
||||||
progress_message "..Expanding Macro $(find_file macro.${itarget%%:*})..."
|
progress_message "..Expanding Macro $(find_file macro.${itarget%%:*})..."
|
||||||
|
|
||||||
@ -2583,13 +2659,19 @@ process_macro() # $1 = target
|
|||||||
#
|
#
|
||||||
process_rules()
|
process_rules()
|
||||||
{
|
{
|
||||||
local comment= optimize
|
local comment
|
||||||
|
comment=
|
||||||
|
local optimize
|
||||||
#
|
#
|
||||||
# Process a rule where the source or destination is "all"
|
# Process a rule where the source or destination is "all"
|
||||||
#
|
#
|
||||||
process_wildcard_rule() # $1 = Yes, if this is a macro, $2 = Yes if we want intrazone traffic
|
process_wildcard_rule() # $1 = Yes, if this is a macro, $2 = Yes if we want intrazone traffic
|
||||||
{
|
{
|
||||||
local yclients yservers ysourcezone ydestzone ypolicy
|
local yclients
|
||||||
|
local yservers
|
||||||
|
local ysourcezone
|
||||||
|
local ydestzone
|
||||||
|
local ypolicy
|
||||||
|
|
||||||
for yclients in $xclients; do
|
for yclients in $xclients; do
|
||||||
for yservers in $xservers; do
|
for yservers in $xservers; do
|
||||||
@ -2622,7 +2704,8 @@ process_rules()
|
|||||||
|
|
||||||
do_it() # $1 = "Yes" if the target is a macro.
|
do_it() # $1 = "Yes" if the target is a macro.
|
||||||
{
|
{
|
||||||
local intrazone=
|
local intrazone
|
||||||
|
intrazone=
|
||||||
|
|
||||||
if [ -z "$SECTIONS" ]; then
|
if [ -z "$SECTIONS" ]; then
|
||||||
finish_section ESTABLISHED,RELATED
|
finish_section ESTABLISHED,RELATED
|
||||||
@ -2802,17 +2885,35 @@ process_rules()
|
|||||||
#
|
#
|
||||||
process_default_macro() # $1 = macro name
|
process_default_macro() # $1 = macro name
|
||||||
{
|
{
|
||||||
local macro=$1
|
local macro
|
||||||
local address=
|
macro=$1
|
||||||
local multioption=
|
local address
|
||||||
local servport=
|
address=
|
||||||
local chain=$1
|
local multioption
|
||||||
local logchain=$1
|
multioption=
|
||||||
local userandgroup=
|
local servport
|
||||||
local logtag=
|
servport=
|
||||||
local excludesource=
|
local chain
|
||||||
local target client server protocol port cport ratelimit userspec rule
|
chain=$1
|
||||||
local f=$(find_file macro.${macro})
|
local logchain
|
||||||
|
logchain=$1
|
||||||
|
local userandgroup
|
||||||
|
userandgroup=
|
||||||
|
local logtag
|
||||||
|
logtag=
|
||||||
|
local excludesource
|
||||||
|
excludesource=
|
||||||
|
local target
|
||||||
|
local client
|
||||||
|
local server
|
||||||
|
local protocol
|
||||||
|
local port
|
||||||
|
local cport
|
||||||
|
local ratelimit
|
||||||
|
local userspec
|
||||||
|
local rule
|
||||||
|
local f
|
||||||
|
f=$(find_file macro.${macro})
|
||||||
|
|
||||||
havechain $macro && fatal_error "Illegal duplicate default macro name: $macro"
|
havechain $macro && fatal_error "Illegal duplicate default macro name: $macro"
|
||||||
|
|
||||||
@ -3070,7 +3171,10 @@ process_tos_rule() {
|
|||||||
#
|
#
|
||||||
process_tos() # $1 = name of tos file
|
process_tos() # $1 = name of tos file
|
||||||
{
|
{
|
||||||
local chain=pretos stdchain=PREROUTING
|
local chain
|
||||||
|
chain=pretos
|
||||||
|
local stdchain
|
||||||
|
stdchain=PREROUTING
|
||||||
|
|
||||||
if [ -n "$MANGLE_FORWARD" ]; then
|
if [ -n "$MANGLE_FORWARD" ]; then
|
||||||
chain=fortos
|
chain=fortos
|
||||||
@ -3101,8 +3205,10 @@ policy_rules() # $1 = chain to add rules to
|
|||||||
# $3 = loglevel
|
# $3 = loglevel
|
||||||
# $4 = Default Action/Macro
|
# $4 = Default Action/Macro
|
||||||
{
|
{
|
||||||
local target="$2"
|
local target
|
||||||
local default="$4"
|
target="$2"
|
||||||
|
local default
|
||||||
|
default="$4"
|
||||||
|
|
||||||
if [ -n "$default" ]; then
|
if [ -n "$default" ]; then
|
||||||
[ "$default" = none ] || run_iptables -A $1 -j $default
|
[ "$default" = none ] || run_iptables -A $1 -j $default
|
||||||
@ -3139,9 +3245,12 @@ policy_rules() # $1 = chain to add rules to
|
|||||||
#
|
#
|
||||||
default_policy() # $1 = client $2 = server
|
default_policy() # $1 = client $2 = server
|
||||||
{
|
{
|
||||||
local chain="${1}2${2}"
|
local chain
|
||||||
local policy=
|
chain="${1}2${2}"
|
||||||
local loglevel=
|
local policy
|
||||||
|
policy=
|
||||||
|
local loglevel
|
||||||
|
loglevel=
|
||||||
local chain1
|
local chain1
|
||||||
|
|
||||||
jump_to_policy_chain() {
|
jump_to_policy_chain() {
|
||||||
@ -3243,10 +3352,14 @@ default_policy() # $1 = client $2 = server
|
|||||||
#
|
#
|
||||||
complete_standard_chain() # $1 = chain, $2 = source zone, $3 = destination zone
|
complete_standard_chain() # $1 = chain, $2 = source zone, $3 = destination zone
|
||||||
{
|
{
|
||||||
local policy=
|
local policy
|
||||||
local loglevel=
|
policy=
|
||||||
local policychain=
|
local loglevel
|
||||||
local default=
|
loglevel=
|
||||||
|
local policychain
|
||||||
|
policychain=
|
||||||
|
local default
|
||||||
|
default=
|
||||||
|
|
||||||
run_user_exit $1
|
run_user_exit $1
|
||||||
|
|
||||||
@ -3275,7 +3388,8 @@ complete_standard_chain() # $1 = chain, $2 = source zone, $3 = destination zone
|
|||||||
#
|
#
|
||||||
rules_chain() # $1 = source zone, $2 = destination zone
|
rules_chain() # $1 = source zone, $2 = destination zone
|
||||||
{
|
{
|
||||||
local chain=${1}2${2} local policy
|
local chain
|
||||||
|
chain=${1}2${2} local policy
|
||||||
|
|
||||||
havechain $chain && { echo $chain; return; }
|
havechain $chain && { echo $chain; return; }
|
||||||
|
|
||||||
@ -3384,8 +3498,10 @@ process_blacklist_rec() {
|
|||||||
|
|
||||||
process_blacklist()
|
process_blacklist()
|
||||||
{
|
{
|
||||||
local disposition=$BLACKLIST_DISPOSITION
|
local disposition
|
||||||
local f=$(find_file blacklist)
|
disposition=$BLACKLIST_DISPOSITION
|
||||||
|
local f
|
||||||
|
f=$(find_file blacklist)
|
||||||
local target
|
local target
|
||||||
|
|
||||||
if [ -s $TMP_DIR/blacklist ]; then
|
if [ -s $TMP_DIR/blacklist ]; then
|
||||||
@ -3419,8 +3535,10 @@ __EOF__
|
|||||||
# Setup the Black List
|
# Setup the Black List
|
||||||
#
|
#
|
||||||
setup_blacklist() {
|
setup_blacklist() {
|
||||||
local hosts="$(find_hosts_by_option blacklist)"
|
local hosts
|
||||||
local ipsec policy
|
hosts="$(find_hosts_by_option blacklist)"
|
||||||
|
local ipsec
|
||||||
|
local policy
|
||||||
|
|
||||||
if [ -n "$hosts" -a -s ${TMP_DIR}/blacklist ]; then
|
if [ -n "$hosts" -a -s ${TMP_DIR}/blacklist ]; then
|
||||||
progress_message2 "$DOING Blacklisting..."
|
progress_message2 "$DOING Blacklisting..."
|
||||||
@ -3465,8 +3583,10 @@ setup_blacklist() {
|
|||||||
# Construct zone-independent rules
|
# Construct zone-independent rules
|
||||||
#
|
#
|
||||||
add_common_rules() {
|
add_common_rules() {
|
||||||
local savelogparms="$LOGPARMS"
|
local savelogparms
|
||||||
local broadcasts="$(find_broadcasts) 255.255.255.255 224.0.0.0/4"
|
savelogparms="$LOGPARMS"
|
||||||
|
local broadcasts
|
||||||
|
broadcasts="$(find_broadcasts) 255.255.255.255 224.0.0.0/4"
|
||||||
#
|
#
|
||||||
# Populate the smurf chain
|
# Populate the smurf chain
|
||||||
#
|
#
|
||||||
@ -3997,14 +4117,19 @@ apply_policy_rules() {
|
|||||||
#
|
#
|
||||||
activate_rules()
|
activate_rules()
|
||||||
{
|
{
|
||||||
local PREROUTING_rule=1
|
local PREROUTING_rule
|
||||||
local POSTROUTING_rule=1
|
PREROUTING_rule=1
|
||||||
|
local POSTROUTING_rule
|
||||||
|
POSTROUTING_rule=1
|
||||||
#
|
#
|
||||||
# Jump to a NAT chain from one of the builtin nat chains
|
# Jump to a NAT chain from one of the builtin nat chains
|
||||||
#
|
#
|
||||||
addnatjump() # $1 = BUILTIN chain, $2 = user chain, $3 - * other arguments
|
addnatjump() # $1 = BUILTIN chain, $2 = user chain, $3 - * other arguments
|
||||||
{
|
{
|
||||||
local sourcechain=$1 destchain=$2
|
local sourcechain
|
||||||
|
sourcechain=$1
|
||||||
|
local destchain
|
||||||
|
destchain=$2
|
||||||
shift
|
shift
|
||||||
shift
|
shift
|
||||||
|
|
||||||
@ -4022,7 +4147,10 @@ activate_rules()
|
|||||||
#
|
#
|
||||||
addrulejump() # $1 = BUILTIN chain, $2 = user chain, $3 - * other arguments
|
addrulejump() # $1 = BUILTIN chain, $2 = user chain, $3 - * other arguments
|
||||||
{
|
{
|
||||||
local sourcechain=$1 destchain=$2
|
local sourcechain
|
||||||
|
sourcechain=$1
|
||||||
|
local destchain
|
||||||
|
destchain=$2
|
||||||
shift
|
shift
|
||||||
shift
|
shift
|
||||||
|
|
||||||
@ -4050,7 +4178,15 @@ activate_rules()
|
|||||||
#
|
#
|
||||||
insert_exclusions() # $1 = table $2 = chain name, $3 - $n = exclusions
|
insert_exclusions() # $1 = table $2 = chain name, $3 - $n = exclusions
|
||||||
{
|
{
|
||||||
local t=$1 c=$2 num=0 host1 interface1 networks1
|
local t
|
||||||
|
t=$1
|
||||||
|
local c
|
||||||
|
c=$2
|
||||||
|
local num
|
||||||
|
num=0
|
||||||
|
local host1
|
||||||
|
local interface1
|
||||||
|
local networks1
|
||||||
|
|
||||||
shift 2
|
shift 2
|
||||||
|
|
||||||
@ -4066,7 +4202,13 @@ activate_rules()
|
|||||||
#
|
#
|
||||||
add_exclusions() # $1 = table $2 = chain name, $3 - $n = exclusions
|
add_exclusions() # $1 = table $2 = chain name, $3 - $n = exclusions
|
||||||
{
|
{
|
||||||
local t=$1 c=$2 host1 interface1 networks1
|
local t
|
||||||
|
t=$1
|
||||||
|
local c
|
||||||
|
c=$2
|
||||||
|
local host1
|
||||||
|
local interface1
|
||||||
|
local networks1
|
||||||
|
|
||||||
shift 2
|
shift 2
|
||||||
|
|
||||||
@ -4114,7 +4256,8 @@ activate_rules()
|
|||||||
eval exclusions=\"\$${zone}_exclusions\"
|
eval exclusions=\"\$${zone}_exclusions\"
|
||||||
|
|
||||||
if [ -n "$exclusions" ]; then
|
if [ -n "$exclusions" ]; then
|
||||||
local num=1
|
local num
|
||||||
|
num=1
|
||||||
in_chain=${zone}_input
|
in_chain=${zone}_input
|
||||||
out_chain=${zone}_output
|
out_chain=${zone}_output
|
||||||
createchain $in_chain No
|
createchain $in_chain No
|
||||||
@ -4562,8 +4705,10 @@ activate_rules()
|
|||||||
# from that script are available here
|
# from that script are available here
|
||||||
#
|
#
|
||||||
compile_stop_firewall() {
|
compile_stop_firewall() {
|
||||||
local IPTABLES_COMMAND="\$IPTABLES"
|
local IPTABLES_COMMAND
|
||||||
local INDENT=" "
|
IPTABLES_COMMAND="\$IPTABLES"
|
||||||
|
local INDENT
|
||||||
|
INDENT=" "
|
||||||
|
|
||||||
cat >&3 << __EOF__
|
cat >&3 << __EOF__
|
||||||
|
|
||||||
@ -4907,10 +5052,18 @@ mycat()
|
|||||||
#
|
#
|
||||||
compile_firewall() # $1 = File Name
|
compile_firewall() # $1 = File Name
|
||||||
{
|
{
|
||||||
local IPTABLES_COMMAND=run_iptables
|
local IPTABLES_COMMAND
|
||||||
local INDENT=""
|
IPTABLES_COMMAND=run_iptables
|
||||||
local checking= outfile=$1 dir=
|
local INDENT
|
||||||
local match=
|
INDENT=""
|
||||||
|
local checking
|
||||||
|
checking=
|
||||||
|
local outfile
|
||||||
|
outfile=$1
|
||||||
|
local dir
|
||||||
|
dir=
|
||||||
|
local match
|
||||||
|
match=
|
||||||
|
|
||||||
setup_mss()
|
setup_mss()
|
||||||
{
|
{
|
||||||
@ -5158,7 +5311,8 @@ __EOF__
|
|||||||
fatal_error "This script requires Shorewall which do not appear to be installed on this system (did you forget "-e" when you compiled?)"
|
fatal_error "This script requires Shorewall which do not appear to be installed on this system (did you forget "-e" when you compiled?)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local version=\$(cat \${SHAREDIR}/version)
|
local version
|
||||||
|
version=\$(cat \${SHAREDIR}/version)
|
||||||
|
|
||||||
if [ \${SHOREWALL_LIBVERSION:-0} -lt 30203 ]; then
|
if [ \${SHOREWALL_LIBVERSION:-0} -lt 30203 ]; then
|
||||||
fatal_error "This script requires Shorewall version 3.3.3 or later; current version is \$version"
|
fatal_error "This script requires Shorewall version 3.3.3 or later; current version is \$version"
|
||||||
@ -5298,7 +5452,8 @@ __EOF__
|
|||||||
# Start/Restart/Reload the firewall
|
# Start/Restart/Reload the firewall
|
||||||
#
|
#
|
||||||
define_firewall() {
|
define_firewall() {
|
||||||
local restore_file=\$1
|
local restore_file
|
||||||
|
restore_file=\$1
|
||||||
__EOF__
|
__EOF__
|
||||||
|
|
||||||
INDENT=" "
|
INDENT=" "
|
||||||
|
@ -1,6 +1,14 @@
|
|||||||
--- /home/teastep/shorewall/branches/3.4/Shorewall/compiler 2007-07-04 08:07:46.000000000 -0700
|
--- ../../3.4/Shorewall/compiler 2007-10-26 19:10:45.000000000 -0400
|
||||||
+++ compiler 2007-07-08 07:18:45.000000000 -0700
|
+++ compiler 2008-03-09 16:00:16.000000000 -0400
|
||||||
@@ -35,6 +35,12 @@
|
@@ -1,6 +1,6 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
-# The Shoreline Firewall (Shorewall) Packet Filtering Firewall Compiler - V3.4
|
||||||
|
+# The Shoreline Firewall (Shorewall) Packet Filtering Firewall Compiler - V4.0
|
||||||
|
#
|
||||||
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
|
#
|
||||||
|
@@ -35,6 +35,11 @@
|
||||||
# SHOREWALL_DIR A directory name was passed to /sbin/shorewall
|
# SHOREWALL_DIR A directory name was passed to /sbin/shorewall
|
||||||
# VERBOSE Standard Shorewall verbosity control.
|
# VERBOSE Standard Shorewall verbosity control.
|
||||||
|
|
||||||
@ -8,12 +16,72 @@
|
|||||||
+BASE_VERSION_PRINTABLE=4.0.0
|
+BASE_VERSION_PRINTABLE=4.0.0
|
||||||
+CONFIG_VERSION=40000
|
+CONFIG_VERSION=40000
|
||||||
+CONFIG_VERSION_PRINTABLE=4.0.0
|
+CONFIG_VERSION_PRINTABLE=4.0.0
|
||||||
+
|
|
||||||
+
|
+
|
||||||
#
|
#
|
||||||
# Fatal error -- stops the compiler after issuing the error message
|
# Fatal error -- stops the compiler after issuing the error message
|
||||||
#
|
#
|
||||||
@@ -673,11 +679,11 @@
|
@@ -128,7 +133,8 @@
|
||||||
|
#
|
||||||
|
append_file() # $1 = File Name
|
||||||
|
{
|
||||||
|
- local user_exit=$(find_file $1)
|
||||||
|
+ local user_exit
|
||||||
|
+ user_exit=$(find_file $1)
|
||||||
|
|
||||||
|
case $user_exit in
|
||||||
|
$SHAREDIR/*)
|
||||||
|
@@ -210,7 +216,8 @@
|
||||||
|
#
|
||||||
|
finish_chain_section() # $1 = canonical chain $2 = state list
|
||||||
|
{
|
||||||
|
- local policy policychain
|
||||||
|
+ local policy
|
||||||
|
+ local policychain
|
||||||
|
|
||||||
|
[ -n "$FASTACCEPT" ] || run_iptables -A $1 -m state --state $2 -j ACCEPT
|
||||||
|
|
||||||
|
@@ -241,7 +248,9 @@
|
||||||
|
|
||||||
|
finish_section() # $1 = Section(s)
|
||||||
|
{
|
||||||
|
- local zone zone1 chain
|
||||||
|
+ local zone
|
||||||
|
+ local zone1
|
||||||
|
+ local chain
|
||||||
|
|
||||||
|
for zone in $ZONES $FW; do
|
||||||
|
for zone1 in $ZONES $FW; do
|
||||||
|
@@ -263,7 +272,8 @@
|
||||||
|
#
|
||||||
|
createchain() # $1 = chain name, $2 = If "yes", do section-end processing
|
||||||
|
{
|
||||||
|
- local c=$(chain_base $1)
|
||||||
|
+ local c
|
||||||
|
+ c=$(chain_base $1)
|
||||||
|
|
||||||
|
run_iptables -N $1
|
||||||
|
|
||||||
|
@@ -286,7 +296,8 @@
|
||||||
|
#
|
||||||
|
createchain2() # $1 = chain name, $2 = If "yes", create default rules
|
||||||
|
{
|
||||||
|
- local c=$(chain_base $1)
|
||||||
|
+ local c
|
||||||
|
+ c=$(chain_base $1)
|
||||||
|
|
||||||
|
ensurechain $1
|
||||||
|
|
||||||
|
@@ -313,7 +324,8 @@
|
||||||
|
#
|
||||||
|
havechain() # $1 = name of chain
|
||||||
|
{
|
||||||
|
- local c=$(chain_base $1)
|
||||||
|
+ local c
|
||||||
|
+ c=$(chain_base $1)
|
||||||
|
|
||||||
|
eval test \"\$exists_${c}\" = Yes
|
||||||
|
}
|
||||||
|
@@ -675,11 +687,11 @@
|
||||||
progress_message2 "Compiling IP Forwarding..."
|
progress_message2 "Compiling IP Forwarding..."
|
||||||
|
|
||||||
case "$IP_FORWARDING" in
|
case "$IP_FORWARDING" in
|
||||||
@ -27,7 +95,504 @@
|
|||||||
save_progress_message "IP Forwarding Disabled!"
|
save_progress_message "IP Forwarding Disabled!"
|
||||||
save_command "echo 0 > /proc/sys/net/ipv4/ip_forward"
|
save_command "echo 0 > /proc/sys/net/ipv4/ip_forward"
|
||||||
;;
|
;;
|
||||||
@@ -3767,7 +3773,7 @@
|
@@ -719,16 +731,25 @@
|
||||||
|
#
|
||||||
|
log_rule_limit() # $1 = log level, $2 = chain, $3 = display Chain $4 = disposition , $5 = rate limit $6=log tag $7=command $... = predicates for the rule
|
||||||
|
{
|
||||||
|
- local level=$1
|
||||||
|
- local chain=$2
|
||||||
|
- local displayChain=$3
|
||||||
|
- local disposition=$4
|
||||||
|
- local rulenum=
|
||||||
|
- local limit=
|
||||||
|
- local tag=$6
|
||||||
|
- local command=${7:--A}
|
||||||
|
+ local level
|
||||||
|
+ level=$1
|
||||||
|
+ local chain
|
||||||
|
+ chain=$2
|
||||||
|
+ local displayChain
|
||||||
|
+ displayChain=$3
|
||||||
|
+ local disposition
|
||||||
|
+ disposition=$4
|
||||||
|
+ local rulenum
|
||||||
|
+ rulenum=
|
||||||
|
+ local limit
|
||||||
|
+ limit=
|
||||||
|
+ local tag
|
||||||
|
+ tag=$6
|
||||||
|
+ local command
|
||||||
|
+ command=${7:--A}
|
||||||
|
local prefix
|
||||||
|
- local base=$(chain_base $displayChain)
|
||||||
|
+ local base
|
||||||
|
+ base=$(chain_base $displayChain)
|
||||||
|
|
||||||
|
limit="${5:-$LOGLIMIT}" # Do this here rather than in the declaration above to appease /bin/ash.
|
||||||
|
|
||||||
|
@@ -739,9 +760,12 @@
|
||||||
|
|
||||||
|
log_rule() # $1 = log level, $2 = chain, $3 = disposition , $... = predicates for the rule
|
||||||
|
{
|
||||||
|
- local level=$1
|
||||||
|
- local chain=$2
|
||||||
|
- local disposition=$3
|
||||||
|
+ local level
|
||||||
|
+ level=$1
|
||||||
|
+ local chain
|
||||||
|
+ chain=$2
|
||||||
|
+ local disposition
|
||||||
|
+ disposition=$3
|
||||||
|
|
||||||
|
shift 3
|
||||||
|
|
||||||
|
@@ -756,9 +780,12 @@
|
||||||
|
# $2 = synparams
|
||||||
|
# $3 = loglevel
|
||||||
|
{
|
||||||
|
- local chain=@$1
|
||||||
|
- local limit=$2
|
||||||
|
- local limit_burst=
|
||||||
|
+ local chain
|
||||||
|
+ chain=@$1
|
||||||
|
+ local limit
|
||||||
|
+ limit=$2
|
||||||
|
+ local limit_burst
|
||||||
|
+ limit_burst=
|
||||||
|
|
||||||
|
case $limit in
|
||||||
|
*:*)
|
||||||
|
@@ -837,8 +864,10 @@
|
||||||
|
#
|
||||||
|
setup_ecn() # $1 = file name
|
||||||
|
{
|
||||||
|
- local interfaces=""
|
||||||
|
- local hosts=
|
||||||
|
+ local interfaces
|
||||||
|
+ interfaces=""
|
||||||
|
+ local hosts
|
||||||
|
+ hosts=
|
||||||
|
local h
|
||||||
|
|
||||||
|
if [ -s ${TMP_DIR}/ecn ]; then
|
||||||
|
@@ -886,7 +915,8 @@
|
||||||
|
#
|
||||||
|
build_exclusion_chain() # $1 = variable to store chain name into $2 = table, $3 = SOURCE exclusion list, $4 = DESTINATION exclusion list
|
||||||
|
{
|
||||||
|
- local c=excl_${EXCLUSION_SEQ} net
|
||||||
|
+ local c
|
||||||
|
+ c=excl_${EXCLUSION_SEQ} net
|
||||||
|
|
||||||
|
EXCLUSION_SEQ=$(( $EXCLUSION_SEQ + 1 ))
|
||||||
|
|
||||||
|
@@ -916,7 +946,10 @@
|
||||||
|
# Setup queuing and classes
|
||||||
|
#
|
||||||
|
setup_tc1() {
|
||||||
|
- local mark_part= comment=
|
||||||
|
+ local mark_part
|
||||||
|
+ mark_part=
|
||||||
|
+ local comment
|
||||||
|
+ comment=
|
||||||
|
#
|
||||||
|
# Create the TC mangle chains
|
||||||
|
#
|
||||||
|
@@ -1025,7 +1058,8 @@
|
||||||
|
#
|
||||||
|
refresh_tc() {
|
||||||
|
|
||||||
|
- local comment=
|
||||||
|
+ local comment
|
||||||
|
+ comment=
|
||||||
|
|
||||||
|
if [ -n "$CLEAR_TC" ]; then
|
||||||
|
delete_tc
|
||||||
|
@@ -1089,9 +1123,12 @@
|
||||||
|
#
|
||||||
|
compile_refresh_firewall()
|
||||||
|
{
|
||||||
|
- local INDENT=""
|
||||||
|
- local DOING="Compiling Refresh of"
|
||||||
|
- local DONE="Compiled"
|
||||||
|
+ local INDENT
|
||||||
|
+ INDENT=""
|
||||||
|
+ local DOING
|
||||||
|
+ DOING="Compiling Refresh of"
|
||||||
|
+ local DONE
|
||||||
|
+ DONE="Compiled"
|
||||||
|
local indent
|
||||||
|
|
||||||
|
save_command "refresh_firewall()"
|
||||||
|
@@ -1142,7 +1179,8 @@
|
||||||
|
process_action_file() # $1 = File Name
|
||||||
|
{
|
||||||
|
if ! list_search $1 $BUILTIN_ACTIONS; then
|
||||||
|
- local user_exit=$(find_file $1)
|
||||||
|
+ local user_exit
|
||||||
|
+ user_exit=$(find_file $1)
|
||||||
|
|
||||||
|
if [ -f $user_exit ]; then
|
||||||
|
progress_message "Processing $user_exit ..."
|
||||||
|
@@ -1173,7 +1211,12 @@
|
||||||
|
|
||||||
|
createlogactionchain() # $1 = Action Name, $2 = Log Level [: Log Tag ]
|
||||||
|
{
|
||||||
|
- local actchain= action=$1 level=$2
|
||||||
|
+ local actchain
|
||||||
|
+ actchain=
|
||||||
|
+ local action
|
||||||
|
+ action=$1
|
||||||
|
+ local level
|
||||||
|
+ level=$2
|
||||||
|
|
||||||
|
eval actchain=\${${action}_actchain}
|
||||||
|
|
||||||
|
@@ -1259,7 +1302,14 @@
|
||||||
|
#
|
||||||
|
find_logactionchain() # $1 = Action, including log level and tag if any
|
||||||
|
{
|
||||||
|
- local fullaction=$1 action=${1%%:*} level= chains=
|
||||||
|
+ local fullaction
|
||||||
|
+ fullaction=$1
|
||||||
|
+ local action
|
||||||
|
+ action=${1%%:*}
|
||||||
|
+ local level
|
||||||
|
+ level=
|
||||||
|
+ local chains
|
||||||
|
+ chains=
|
||||||
|
|
||||||
|
find_simpleaction() {
|
||||||
|
havechain $action || fatal_error "Fatal error in find_logactionchain"
|
||||||
|
@@ -1302,7 +1352,10 @@
|
||||||
|
#
|
||||||
|
merge_levels() # $1=level at which superior action is called, $2=level at which the subordinate rule is called
|
||||||
|
{
|
||||||
|
- local superior=$1 subordinate=$2
|
||||||
|
+ local superior
|
||||||
|
+ superior=$1
|
||||||
|
+ local subordinate
|
||||||
|
+ subordinate=$2
|
||||||
|
|
||||||
|
set -- $(split $1)
|
||||||
|
|
||||||
|
@@ -1379,7 +1432,9 @@
|
||||||
|
#
|
||||||
|
map_old_action() # $1 = Potential Old Action
|
||||||
|
{
|
||||||
|
- local macro= aktion
|
||||||
|
+ local macro
|
||||||
|
+ macro=
|
||||||
|
+ local aktion
|
||||||
|
|
||||||
|
if [ -n "$MAPOLDACTIONS" ]; then
|
||||||
|
case $1 in
|
||||||
|
@@ -1432,7 +1487,8 @@
|
||||||
|
#
|
||||||
|
substitute_action() # $1 = parameter, $2 = action
|
||||||
|
{
|
||||||
|
- local logpart=${2#*:}
|
||||||
|
+ local logpart
|
||||||
|
+ logpart=${2#*:}
|
||||||
|
|
||||||
|
case $2 in
|
||||||
|
*:*)
|
||||||
|
@@ -1630,7 +1686,8 @@
|
||||||
|
# policy = Applicable Policy
|
||||||
|
#
|
||||||
|
add_a_rule() {
|
||||||
|
- local natrule=
|
||||||
|
+ local natrule
|
||||||
|
+ natrule=
|
||||||
|
|
||||||
|
do_ports() {
|
||||||
|
if [ -n "$port" ]; then
|
||||||
|
@@ -2118,19 +2175,32 @@
|
||||||
|
# $9 = userspec
|
||||||
|
# $10= mark
|
||||||
|
{
|
||||||
|
- local target="$1"
|
||||||
|
- local clients="$2"
|
||||||
|
- local servers="$3"
|
||||||
|
- local protocol="$4"
|
||||||
|
- local ports="$5"
|
||||||
|
- local cports="$6"
|
||||||
|
- local address="$7"
|
||||||
|
- local ratelimit="$8"
|
||||||
|
- local userspec="$9"
|
||||||
|
- local mark="${10}"
|
||||||
|
- local userandgroup=
|
||||||
|
- local logtag=
|
||||||
|
- local nonat=
|
||||||
|
+ local target
|
||||||
|
+ target="$1"
|
||||||
|
+ local clients
|
||||||
|
+ clients="$2"
|
||||||
|
+ local servers
|
||||||
|
+ servers="$3"
|
||||||
|
+ local protocol
|
||||||
|
+ protocol="$4"
|
||||||
|
+ local ports
|
||||||
|
+ ports="$5"
|
||||||
|
+ local cports
|
||||||
|
+ cports="$6"
|
||||||
|
+ local address
|
||||||
|
+ address="$7"
|
||||||
|
+ local ratelimit
|
||||||
|
+ ratelimit="$8"
|
||||||
|
+ local userspec
|
||||||
|
+ userspec="$9"
|
||||||
|
+ local mark
|
||||||
|
+ mark="${10}"
|
||||||
|
+ local userandgroup
|
||||||
|
+ userandgroup=
|
||||||
|
+ local logtag
|
||||||
|
+ logtag=
|
||||||
|
+ local nonat
|
||||||
|
+ nonat=
|
||||||
|
|
||||||
|
# # # # # F u n c t i o n B o d y # # # # #
|
||||||
|
|
||||||
|
@@ -2483,21 +2553,35 @@
|
||||||
|
# $9 = userspec
|
||||||
|
# $10= mark
|
||||||
|
{
|
||||||
|
- local itarget="$1"
|
||||||
|
- local param="$2"
|
||||||
|
- local iclients="$3"
|
||||||
|
- local iservers="$4"
|
||||||
|
- local iprotocol="$5"
|
||||||
|
- local iports="$6"
|
||||||
|
- local icports="$7"
|
||||||
|
- local iaddress="$8"
|
||||||
|
- local iratelimit="$9"
|
||||||
|
- local iuserspec="${10}"
|
||||||
|
- local imark="${11}"
|
||||||
|
+ local itarget
|
||||||
|
+ itarget="$1"
|
||||||
|
+ local param
|
||||||
|
+ param="$2"
|
||||||
|
+ local iclients
|
||||||
|
+ iclients="$3"
|
||||||
|
+ local iservers
|
||||||
|
+ iservers="$4"
|
||||||
|
+ local iprotocol
|
||||||
|
+ iprotocol="$5"
|
||||||
|
+ local iports
|
||||||
|
+ iports="$6"
|
||||||
|
+ local icports
|
||||||
|
+ icports="$7"
|
||||||
|
+ local iaddress
|
||||||
|
+ iaddress="$8"
|
||||||
|
+ local iratelimit
|
||||||
|
+ iratelimit="$9"
|
||||||
|
+ local iuserspec
|
||||||
|
+ iuserspec="${10}"
|
||||||
|
+ local imark
|
||||||
|
+ imark="${11}"
|
||||||
|
|
||||||
|
progress_message "..Expanding Macro $(find_file macro.${itarget%%:*})..."
|
||||||
|
|
||||||
|
while read mtarget mclients mservers mprotocol mports mcports mratelimit muserspec; do
|
||||||
|
+
|
||||||
|
+ [ $mtarget = COMMENT ] && continue
|
||||||
|
+
|
||||||
|
mtarget=$(merge_levels $itarget $mtarget)
|
||||||
|
|
||||||
|
case $mtarget in
|
||||||
|
@@ -2575,13 +2659,19 @@
|
||||||
|
#
|
||||||
|
process_rules()
|
||||||
|
{
|
||||||
|
- local comment= optimize
|
||||||
|
+ local comment
|
||||||
|
+ comment=
|
||||||
|
+ local optimize
|
||||||
|
#
|
||||||
|
# Process a rule where the source or destination is "all"
|
||||||
|
#
|
||||||
|
process_wildcard_rule() # $1 = Yes, if this is a macro, $2 = Yes if we want intrazone traffic
|
||||||
|
{
|
||||||
|
- local yclients yservers ysourcezone ydestzone ypolicy
|
||||||
|
+ local yclients
|
||||||
|
+ local yservers
|
||||||
|
+ local ysourcezone
|
||||||
|
+ local ydestzone
|
||||||
|
+ local ypolicy
|
||||||
|
|
||||||
|
for yclients in $xclients; do
|
||||||
|
for yservers in $xservers; do
|
||||||
|
@@ -2614,7 +2704,8 @@
|
||||||
|
|
||||||
|
do_it() # $1 = "Yes" if the target is a macro.
|
||||||
|
{
|
||||||
|
- local intrazone=
|
||||||
|
+ local intrazone
|
||||||
|
+ intrazone=
|
||||||
|
|
||||||
|
if [ -z "$SECTIONS" ]; then
|
||||||
|
finish_section ESTABLISHED,RELATED
|
||||||
|
@@ -2794,17 +2885,35 @@
|
||||||
|
#
|
||||||
|
process_default_macro() # $1 = macro name
|
||||||
|
{
|
||||||
|
- local macro=$1
|
||||||
|
- local address=
|
||||||
|
- local multioption=
|
||||||
|
- local servport=
|
||||||
|
- local chain=$1
|
||||||
|
- local logchain=$1
|
||||||
|
- local userandgroup=
|
||||||
|
- local logtag=
|
||||||
|
- local excludesource=
|
||||||
|
- local target client server protocol port cport ratelimit userspec rule
|
||||||
|
- local f=$(find_file macro.${macro})
|
||||||
|
+ local macro
|
||||||
|
+ macro=$1
|
||||||
|
+ local address
|
||||||
|
+ address=
|
||||||
|
+ local multioption
|
||||||
|
+ multioption=
|
||||||
|
+ local servport
|
||||||
|
+ servport=
|
||||||
|
+ local chain
|
||||||
|
+ chain=$1
|
||||||
|
+ local logchain
|
||||||
|
+ logchain=$1
|
||||||
|
+ local userandgroup
|
||||||
|
+ userandgroup=
|
||||||
|
+ local logtag
|
||||||
|
+ logtag=
|
||||||
|
+ local excludesource
|
||||||
|
+ excludesource=
|
||||||
|
+ local target
|
||||||
|
+ local client
|
||||||
|
+ local server
|
||||||
|
+ local protocol
|
||||||
|
+ local port
|
||||||
|
+ local cport
|
||||||
|
+ local ratelimit
|
||||||
|
+ local userspec
|
||||||
|
+ local rule
|
||||||
|
+ local f
|
||||||
|
+ f=$(find_file macro.${macro})
|
||||||
|
|
||||||
|
havechain $macro && fatal_error "Illegal duplicate default macro name: $macro"
|
||||||
|
|
||||||
|
@@ -3062,7 +3171,10 @@
|
||||||
|
#
|
||||||
|
process_tos() # $1 = name of tos file
|
||||||
|
{
|
||||||
|
- local chain=pretos stdchain=PREROUTING
|
||||||
|
+ local chain
|
||||||
|
+ chain=pretos
|
||||||
|
+ local stdchain
|
||||||
|
+ stdchain=PREROUTING
|
||||||
|
|
||||||
|
if [ -n "$MANGLE_FORWARD" ]; then
|
||||||
|
chain=fortos
|
||||||
|
@@ -3093,8 +3205,10 @@
|
||||||
|
# $3 = loglevel
|
||||||
|
# $4 = Default Action/Macro
|
||||||
|
{
|
||||||
|
- local target="$2"
|
||||||
|
- local default="$4"
|
||||||
|
+ local target
|
||||||
|
+ target="$2"
|
||||||
|
+ local default
|
||||||
|
+ default="$4"
|
||||||
|
|
||||||
|
if [ -n "$default" ]; then
|
||||||
|
[ "$default" = none ] || run_iptables -A $1 -j $default
|
||||||
|
@@ -3131,9 +3245,12 @@
|
||||||
|
#
|
||||||
|
default_policy() # $1 = client $2 = server
|
||||||
|
{
|
||||||
|
- local chain="${1}2${2}"
|
||||||
|
- local policy=
|
||||||
|
- local loglevel=
|
||||||
|
+ local chain
|
||||||
|
+ chain="${1}2${2}"
|
||||||
|
+ local policy
|
||||||
|
+ policy=
|
||||||
|
+ local loglevel
|
||||||
|
+ loglevel=
|
||||||
|
local chain1
|
||||||
|
|
||||||
|
jump_to_policy_chain() {
|
||||||
|
@@ -3235,14 +3352,18 @@
|
||||||
|
#
|
||||||
|
complete_standard_chain() # $1 = chain, $2 = source zone, $3 = destination zone
|
||||||
|
{
|
||||||
|
- local policy=
|
||||||
|
- local loglevel=
|
||||||
|
- local policychain=
|
||||||
|
- local default=
|
||||||
|
+ local policy
|
||||||
|
+ policy=
|
||||||
|
+ local loglevel
|
||||||
|
+ loglevel=
|
||||||
|
+ local policychain
|
||||||
|
+ policychain=
|
||||||
|
+ local default
|
||||||
|
+ default=
|
||||||
|
|
||||||
|
run_user_exit $1
|
||||||
|
|
||||||
|
- run_iptables -A $1 -m state --state ESTABLISHED,RELATED -j ACCEPT
|
||||||
|
+ [ -n "$FASTACCEPT" ] || run_iptables -A $1 -m state --state ESTABLISHED,RELATED -j ACCEPT
|
||||||
|
|
||||||
|
eval policychain=\$${2}2${3}_policychain
|
||||||
|
|
||||||
|
@@ -3267,7 +3388,8 @@
|
||||||
|
#
|
||||||
|
rules_chain() # $1 = source zone, $2 = destination zone
|
||||||
|
{
|
||||||
|
- local chain=${1}2${2} local policy
|
||||||
|
+ local chain
|
||||||
|
+ chain=${1}2${2} local policy
|
||||||
|
|
||||||
|
havechain $chain && { echo $chain; return; }
|
||||||
|
|
||||||
|
@@ -3376,8 +3498,10 @@
|
||||||
|
|
||||||
|
process_blacklist()
|
||||||
|
{
|
||||||
|
- local disposition=$BLACKLIST_DISPOSITION
|
||||||
|
- local f=$(find_file blacklist)
|
||||||
|
+ local disposition
|
||||||
|
+ disposition=$BLACKLIST_DISPOSITION
|
||||||
|
+ local f
|
||||||
|
+ f=$(find_file blacklist)
|
||||||
|
local target
|
||||||
|
|
||||||
|
if [ -s $TMP_DIR/blacklist ]; then
|
||||||
|
@@ -3411,8 +3535,10 @@
|
||||||
|
# Setup the Black List
|
||||||
|
#
|
||||||
|
setup_blacklist() {
|
||||||
|
- local hosts="$(find_hosts_by_option blacklist)"
|
||||||
|
- local ipsec policy
|
||||||
|
+ local hosts
|
||||||
|
+ hosts="$(find_hosts_by_option blacklist)"
|
||||||
|
+ local ipsec
|
||||||
|
+ local policy
|
||||||
|
|
||||||
|
if [ -n "$hosts" -a -s ${TMP_DIR}/blacklist ]; then
|
||||||
|
progress_message2 "$DOING Blacklisting..."
|
||||||
|
@@ -3457,8 +3583,10 @@
|
||||||
|
# Construct zone-independent rules
|
||||||
|
#
|
||||||
|
add_common_rules() {
|
||||||
|
- local savelogparms="$LOGPARMS"
|
||||||
|
- local broadcasts="$(find_broadcasts) 255.255.255.255 224.0.0.0/4"
|
||||||
|
+ local savelogparms
|
||||||
|
+ savelogparms="$LOGPARMS"
|
||||||
|
+ local broadcasts
|
||||||
|
+ broadcasts="$(find_broadcasts) 255.255.255.255 224.0.0.0/4"
|
||||||
|
#
|
||||||
|
# Populate the smurf chain
|
||||||
|
#
|
||||||
|
@@ -3788,7 +3916,7 @@
|
||||||
|
|
||||||
save_progress_message "Setting up Route Filtering..."
|
save_progress_message "Setting up Route Filtering..."
|
||||||
|
|
||||||
@ -36,7 +601,7 @@
|
|||||||
indent >&3 << __EOF__
|
indent >&3 << __EOF__
|
||||||
|
|
||||||
for f in /proc/sys/net/ipv4/conf/*; do
|
for f in /proc/sys/net/ipv4/conf/*; do
|
||||||
@@ -3791,8 +3797,10 @@
|
@@ -3812,8 +3940,10 @@
|
||||||
|
|
||||||
save_command "echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter"
|
save_command "echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter"
|
||||||
|
|
||||||
@ -48,7 +613,7 @@
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
save_command "[ -n \"\$NOROUTES\" ] || ip route flush cache"
|
save_command "[ -n \"\$NOROUTES\" ] || ip route flush cache"
|
||||||
@@ -3808,7 +3816,7 @@
|
@@ -3829,7 +3959,7 @@
|
||||||
|
|
||||||
save_progress_message "Setting up Martian Logging..."
|
save_progress_message "Setting up Martian Logging..."
|
||||||
|
|
||||||
@ -57,7 +622,7 @@
|
|||||||
indent >&3 << __EOF__
|
indent >&3 << __EOF__
|
||||||
|
|
||||||
for f in /proc/sys/net/ipv4/conf/*; do
|
for f in /proc/sys/net/ipv4/conf/*; do
|
||||||
@@ -3831,9 +3839,12 @@
|
@@ -3852,9 +3982,12 @@
|
||||||
__EOF__
|
__EOF__
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -71,16 +636,120 @@
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
@@ -4890,7 +4901,7 @@
|
@@ -3984,14 +4117,19 @@
|
||||||
;;
|
#
|
||||||
esac
|
activate_rules()
|
||||||
|
{
|
||||||
|
- local PREROUTING_rule=1
|
||||||
|
- local POSTROUTING_rule=1
|
||||||
|
+ local PREROUTING_rule
|
||||||
|
+ PREROUTING_rule=1
|
||||||
|
+ local POSTROUTING_rule
|
||||||
|
+ POSTROUTING_rule=1
|
||||||
|
#
|
||||||
|
# Jump to a NAT chain from one of the builtin nat chains
|
||||||
|
#
|
||||||
|
addnatjump() # $1 = BUILTIN chain, $2 = user chain, $3 - * other arguments
|
||||||
|
{
|
||||||
|
- local sourcechain=$1 destchain=$2
|
||||||
|
+ local sourcechain
|
||||||
|
+ sourcechain=$1
|
||||||
|
+ local destchain
|
||||||
|
+ destchain=$2
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
|
||||||
- run_iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN ${match}-j TCPMSS $option
|
@@ -4009,7 +4147,10 @@
|
||||||
+ run_iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS $option
|
#
|
||||||
}
|
addrulejump() # $1 = BUILTIN chain, $2 = user chain, $3 - * other arguments
|
||||||
|
{
|
||||||
|
- local sourcechain=$1 destchain=$2
|
||||||
|
+ local sourcechain
|
||||||
|
+ sourcechain=$1
|
||||||
|
+ local destchain
|
||||||
|
+ destchain=$2
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
|
||||||
progress_message2 "Initializing..."
|
@@ -4037,7 +4178,15 @@
|
||||||
@@ -4930,7 +4941,7 @@
|
#
|
||||||
|
insert_exclusions() # $1 = table $2 = chain name, $3 - $n = exclusions
|
||||||
|
{
|
||||||
|
- local t=$1 c=$2 num=0 host1 interface1 networks1
|
||||||
|
+ local t
|
||||||
|
+ t=$1
|
||||||
|
+ local c
|
||||||
|
+ c=$2
|
||||||
|
+ local num
|
||||||
|
+ num=0
|
||||||
|
+ local host1
|
||||||
|
+ local interface1
|
||||||
|
+ local networks1
|
||||||
|
|
||||||
|
shift 2
|
||||||
|
|
||||||
|
@@ -4053,7 +4202,13 @@
|
||||||
|
#
|
||||||
|
add_exclusions() # $1 = table $2 = chain name, $3 - $n = exclusions
|
||||||
|
{
|
||||||
|
- local t=$1 c=$2 host1 interface1 networks1
|
||||||
|
+ local t
|
||||||
|
+ t=$1
|
||||||
|
+ local c
|
||||||
|
+ c=$2
|
||||||
|
+ local host1
|
||||||
|
+ local interface1
|
||||||
|
+ local networks1
|
||||||
|
|
||||||
|
shift 2
|
||||||
|
|
||||||
|
@@ -4101,7 +4256,8 @@
|
||||||
|
eval exclusions=\"\$${zone}_exclusions\"
|
||||||
|
|
||||||
|
if [ -n "$exclusions" ]; then
|
||||||
|
- local num=1
|
||||||
|
+ local num
|
||||||
|
+ num=1
|
||||||
|
in_chain=${zone}_input
|
||||||
|
out_chain=${zone}_output
|
||||||
|
createchain $in_chain No
|
||||||
|
@@ -4549,8 +4705,10 @@
|
||||||
|
# from that script are available here
|
||||||
|
#
|
||||||
|
compile_stop_firewall() {
|
||||||
|
- local IPTABLES_COMMAND="\$IPTABLES"
|
||||||
|
- local INDENT=" "
|
||||||
|
+ local IPTABLES_COMMAND
|
||||||
|
+ IPTABLES_COMMAND="\$IPTABLES"
|
||||||
|
+ local INDENT
|
||||||
|
+ INDENT=" "
|
||||||
|
|
||||||
|
cat >&3 << __EOF__
|
||||||
|
|
||||||
|
@@ -4894,10 +5052,18 @@
|
||||||
|
#
|
||||||
|
compile_firewall() # $1 = File Name
|
||||||
|
{
|
||||||
|
- local IPTABLES_COMMAND=run_iptables
|
||||||
|
- local INDENT=""
|
||||||
|
- local checking= outfile=$1 dir=
|
||||||
|
- local match=
|
||||||
|
+ local IPTABLES_COMMAND
|
||||||
|
+ IPTABLES_COMMAND=run_iptables
|
||||||
|
+ local INDENT
|
||||||
|
+ INDENT=""
|
||||||
|
+ local checking
|
||||||
|
+ checking=
|
||||||
|
+ local outfile
|
||||||
|
+ outfile=$1
|
||||||
|
+ local dir
|
||||||
|
+ dir=
|
||||||
|
+ local match
|
||||||
|
+ match=
|
||||||
|
|
||||||
|
setup_mss()
|
||||||
|
{
|
||||||
|
@@ -4951,7 +5117,7 @@
|
||||||
|
|
||||||
cat >&3 << __EOF__
|
cat >&3 << __EOF__
|
||||||
#
|
#
|
||||||
@ -89,7 +758,71 @@
|
|||||||
#
|
#
|
||||||
__EOF__
|
__EOF__
|
||||||
|
|
||||||
@@ -5732,6 +5743,11 @@
|
@@ -4959,7 +5125,10 @@
|
||||||
|
cat >&3 << __EOF__
|
||||||
|
SHAREDIR=/usr/share/shorewall-lite
|
||||||
|
CONFDIR=/etc/shorewall-lite
|
||||||
|
-VARDIR=/var/lib/shorewall-lite
|
||||||
|
+
|
||||||
|
+[ -f \${CONFDIR}/vardir ] && . \${CONFDIR}/vardir
|
||||||
|
+
|
||||||
|
+[ -n "\${VARDIR:=/var/lib/shorewall-lite}" ]
|
||||||
|
|
||||||
|
__EOF__
|
||||||
|
|
||||||
|
@@ -4976,7 +5145,10 @@
|
||||||
|
cat >&3 << __EOF__
|
||||||
|
SHAREDIR=/usr/share/shorewall
|
||||||
|
CONFDIR=/etc/shorewall
|
||||||
|
-VARDIR=/var/lib/shorewall
|
||||||
|
+
|
||||||
|
+[ -f \${CONFDIR}/vardir ] && . \${CONFDIR}/vardir
|
||||||
|
+
|
||||||
|
+[ -n "\${VARDIR:=/var/lib/shorewall}" ]
|
||||||
|
|
||||||
|
. \${SHAREDIR}/lib.base
|
||||||
|
__EOF__
|
||||||
|
@@ -5139,7 +5311,8 @@
|
||||||
|
fatal_error "This script requires Shorewall which do not appear to be installed on this system (did you forget "-e" when you compiled?)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
- local version=\$(cat \${SHAREDIR}/version)
|
||||||
|
+ local version
|
||||||
|
+ version=\$(cat \${SHAREDIR}/version)
|
||||||
|
|
||||||
|
if [ \${SHOREWALL_LIBVERSION:-0} -lt 30203 ]; then
|
||||||
|
fatal_error "This script requires Shorewall version 3.3.3 or later; current version is \$version"
|
||||||
|
@@ -5178,6 +5351,7 @@
|
||||||
|
LOCKFILE="$LOCKFILE"
|
||||||
|
PATH="$PATH"
|
||||||
|
TERMINATOR=fatal_error
|
||||||
|
+ DONT_LOAD="$DONT_LOAD"
|
||||||
|
|
||||||
|
__EOF__
|
||||||
|
if [ -n "$IPTABLES" ]; then
|
||||||
|
@@ -5278,7 +5452,8 @@
|
||||||
|
# Start/Restart/Reload the firewall
|
||||||
|
#
|
||||||
|
define_firewall() {
|
||||||
|
- local restore_file=\$1
|
||||||
|
+ local restore_file
|
||||||
|
+ restore_file=\$1
|
||||||
|
__EOF__
|
||||||
|
|
||||||
|
INDENT=" "
|
||||||
|
@@ -5727,9 +5902,9 @@
|
||||||
|
# E X E C U T I O N B E G I N S H E R E
|
||||||
|
#
|
||||||
|
#
|
||||||
|
-# Start trace if first arg is "debug"
|
||||||
|
+# Start trace if first arg is "debug" or "trace"
|
||||||
|
#
|
||||||
|
-[ $# -gt 1 ] && [ "$1" = "debug" ] && { set -x ; shift ; }
|
||||||
|
+[ $# -gt 1 ] && [ "x$1" = xdebug -o "x$1" = xtrace ] && { set -x ; shift ; }
|
||||||
|
|
||||||
|
NOLOCK=
|
||||||
|
|
||||||
|
@@ -5754,6 +5929,11 @@
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -1,11 +1,22 @@
|
|||||||
--- /home/teastep/shorewall/branches/3.4/Shorewall/lib.tunnels 2007-03-22 15:27:26.000000000 -0700
|
--- ../../3.4/Shorewall/lib.tunnels 2007-10-26 19:10:45.000000000 -0400
|
||||||
+++ lib.tunnels 2007-07-03 07:57:16.000000000 -0700
|
+++ lib.tunnels 2008-03-09 15:55:46.000000000 -0400
|
||||||
@@ -37,19 +37,28 @@
|
@@ -1,6 +1,6 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
-# Shorewall 3.4 -- /usr/share/shorewall/lib.tunnels
|
||||||
|
+# Shorewall 4.1 -- /usr/share/shorewall/lib.tunnels
|
||||||
|
#
|
||||||
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
|
#
|
||||||
|
@@ -37,19 +37,31 @@
|
||||||
|
|
||||||
setup_one_ipsec() # $1 = Tunnel Kind $2 = gateway zones
|
setup_one_ipsec() # $1 = Tunnel Kind $2 = gateway zones
|
||||||
{
|
{
|
||||||
- local kind=$1 noah=
|
- local kind=$1 noah=
|
||||||
+ local kind=$1 noah=noah
|
+ local kind
|
||||||
|
+ kind=$1
|
||||||
|
+ local noah
|
||||||
|
+ noah=noah
|
||||||
|
|
||||||
case $kind in
|
case $kind in
|
||||||
*:*)
|
*:*)
|
||||||
@ -32,3 +43,52 @@
|
|||||||
|
|
||||||
options="-m state --state NEW -j ACCEPT"
|
options="-m state --state NEW -j ACCEPT"
|
||||||
addrule2 $inchain -p 50 $source -j ACCEPT
|
addrule2 $inchain -p 50 $source -j ACCEPT
|
||||||
|
@@ -125,8 +137,10 @@
|
||||||
|
|
||||||
|
setup_one_openvpn() # $1 = kind[:port]
|
||||||
|
{
|
||||||
|
- local protocol=udp
|
||||||
|
- local p=1194
|
||||||
|
+ local protocol
|
||||||
|
+ protocol=udp
|
||||||
|
+ local p
|
||||||
|
+ p=1194
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
*:*:*)
|
||||||
|
@@ -150,8 +164,10 @@
|
||||||
|
|
||||||
|
setup_one_openvpn_server() # $1 = kind[:port]
|
||||||
|
{
|
||||||
|
- local protocol=udp
|
||||||
|
- local p=1194
|
||||||
|
+ local protocol
|
||||||
|
+ protocol=udp
|
||||||
|
+ local p
|
||||||
|
+ p=1194
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
*:*:*)
|
||||||
|
@@ -175,8 +191,10 @@
|
||||||
|
|
||||||
|
setup_one_openvpn_client() # $1 = kind[:port]
|
||||||
|
{
|
||||||
|
- local protocol=udp
|
||||||
|
- local p=1194
|
||||||
|
+ local protocol
|
||||||
|
+ protocol=udp
|
||||||
|
+ local p
|
||||||
|
+ p=1194
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
*:*:*)
|
||||||
|
@@ -201,7 +219,8 @@
|
||||||
|
setup_one_generic() # $1 = kind:protocol[:port]
|
||||||
|
{
|
||||||
|
local protocol
|
||||||
|
- local p=
|
||||||
|
+ local p
|
||||||
|
+ p=
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
*:*:*)
|
||||||
|
@ -35,7 +35,8 @@ usage() # $1 = exit status
|
|||||||
}
|
}
|
||||||
|
|
||||||
split() {
|
split() {
|
||||||
local ifs=$IFS
|
local ifs
|
||||||
|
ifs=$IFS
|
||||||
IFS=:
|
IFS=:
|
||||||
set -- $1
|
set -- $1
|
||||||
echo $*
|
echo $*
|
||||||
|
@ -252,19 +252,32 @@ process_action() # $1 = chain (Chain to add the rules to)
|
|||||||
# $10 = userspec
|
# $10 = userspec
|
||||||
# $11 = mark
|
# $11 = mark
|
||||||
{
|
{
|
||||||
local chain="$1"
|
local chain
|
||||||
local action="$2"
|
chain="$1"
|
||||||
local target="$3"
|
local action
|
||||||
local clients="$4"
|
action="$2"
|
||||||
local servers="$5"
|
local target
|
||||||
local protocol="$6"
|
target="$3"
|
||||||
local ports="$7"
|
local clients
|
||||||
local cports="$8"
|
clients="$4"
|
||||||
local ratelimit="$9"
|
local servers
|
||||||
local userspec="${10}"
|
servers="$5"
|
||||||
local mark="${11}"
|
local protocol
|
||||||
local userandgroup=
|
protocol="$6"
|
||||||
local logtag=
|
local ports
|
||||||
|
ports="$7"
|
||||||
|
local cports
|
||||||
|
cports="$8"
|
||||||
|
local ratelimit
|
||||||
|
ratelimit="$9"
|
||||||
|
local userspec
|
||||||
|
userspec="${10}"
|
||||||
|
local mark
|
||||||
|
mark="${11}"
|
||||||
|
local userandgroup
|
||||||
|
userandgroup=
|
||||||
|
local logtag
|
||||||
|
logtag=
|
||||||
|
|
||||||
if [ -n "$ratelimit" ]; then
|
if [ -n "$ratelimit" ]; then
|
||||||
case $ratelimit in
|
case $ratelimit in
|
||||||
@ -483,7 +496,10 @@ process_action() # $1 = chain (Chain to add the rules to)
|
|||||||
#
|
#
|
||||||
merge_levels() # $1=level at which superior action is called, $2=level at which the subordinate rule is called
|
merge_levels() # $1=level at which superior action is called, $2=level at which the subordinate rule is called
|
||||||
{
|
{
|
||||||
local superior=$1 subordinate=$2
|
local superior
|
||||||
|
superior=$1
|
||||||
|
local subordinate
|
||||||
|
subordinate=$2
|
||||||
|
|
||||||
set -- $(split $1)
|
set -- $(split $1)
|
||||||
|
|
||||||
@ -690,7 +706,8 @@ process_actions1() {
|
|||||||
|
|
||||||
process_actions2() {
|
process_actions2() {
|
||||||
|
|
||||||
local interfaces="$(find_interfaces_by_option upnp)"
|
local interfaces
|
||||||
|
interfaces="$(find_interfaces_by_option upnp)"
|
||||||
|
|
||||||
if [ -n "$interfaces" ]; then
|
if [ -n "$interfaces" ]; then
|
||||||
if ! list_search forwardUPnP $USEDACTIONS; then
|
if ! list_search forwardUPnP $USEDACTIONS; then
|
||||||
@ -735,7 +752,10 @@ process_actions2() {
|
|||||||
|
|
||||||
process_action3() {
|
process_action3() {
|
||||||
|
|
||||||
local f=action.$xaction1 comment=
|
local f
|
||||||
|
f=action.$xaction1
|
||||||
|
local comment
|
||||||
|
comment=
|
||||||
|
|
||||||
progress_message2 "$DOING $(find_file $f) for Chain $xchain..."
|
progress_message2 "$DOING $(find_file $f) for Chain $xchain..."
|
||||||
|
|
||||||
|
@ -40,7 +40,8 @@ setup_mac_lists() # $1 = Phase Number
|
|||||||
local blob
|
local blob
|
||||||
local hosts
|
local hosts
|
||||||
local ipsec
|
local ipsec
|
||||||
local policy=
|
local policy
|
||||||
|
policy=
|
||||||
|
|
||||||
create_mac_chain()
|
create_mac_chain()
|
||||||
{
|
{
|
||||||
|
@ -31,10 +31,13 @@
|
|||||||
#
|
#
|
||||||
setup_masq()
|
setup_masq()
|
||||||
{
|
{
|
||||||
local comment=
|
local comment
|
||||||
|
comment=
|
||||||
|
|
||||||
do_ipsec_options() {
|
do_ipsec_options() {
|
||||||
local options="$(separate_list $ipsec)" option
|
local options
|
||||||
|
options="$(separate_list $ipsec)"
|
||||||
|
local option
|
||||||
[ -n "$ORIGINAL_POLICY_MATCH" ] || \
|
[ -n "$ORIGINAL_POLICY_MATCH" ] || \
|
||||||
fatal_error "IPSEC options require policy match support in your kernel and iptables"
|
fatal_error "IPSEC options require policy match support in your kernel and iptables"
|
||||||
policy="-m policy --pol ipsec --dir out"
|
policy="-m policy --pol ipsec --dir out"
|
||||||
@ -62,7 +65,14 @@ setup_masq()
|
|||||||
}
|
}
|
||||||
|
|
||||||
setup_one() {
|
setup_one() {
|
||||||
local add_snat_aliases=$ADD_SNAT_ALIASES pre_nat= policy= destnets=
|
local add_snat_aliases
|
||||||
|
add_snat_aliases=$ADD_SNAT_ALIASES
|
||||||
|
local pre_nat
|
||||||
|
pre_nat=
|
||||||
|
local policy
|
||||||
|
policy=
|
||||||
|
local destnets
|
||||||
|
destnets=
|
||||||
|
|
||||||
[ "x$ipsec" = x- ] && ipsec=
|
[ "x$ipsec" = x- ] && ipsec=
|
||||||
|
|
||||||
@ -475,7 +485,22 @@ __EOF__
|
|||||||
# Setup Static Network Address Translation (NAT)
|
# Setup Static Network Address Translation (NAT)
|
||||||
#
|
#
|
||||||
setup_nat() {
|
setup_nat() {
|
||||||
local external= interface= internal= allints= localnat= policyin= policyout= comment=
|
local external
|
||||||
|
external=
|
||||||
|
local interface
|
||||||
|
interface=
|
||||||
|
local internal
|
||||||
|
internal=
|
||||||
|
local allints
|
||||||
|
allints=
|
||||||
|
local localnat
|
||||||
|
localnat=
|
||||||
|
local policyin
|
||||||
|
policyin=
|
||||||
|
local policyout
|
||||||
|
policyout=
|
||||||
|
local comment
|
||||||
|
comment=
|
||||||
|
|
||||||
validate_one() #1 = Variable Name, $2 = Column name, $3 = value
|
validate_one() #1 = Variable Name, $2 = Column name, $3 = value
|
||||||
{
|
{
|
||||||
@ -493,7 +518,10 @@ setup_nat() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
do_one_nat() {
|
do_one_nat() {
|
||||||
local add_ip_aliases=$ADD_IP_ALIASES iface=${interface%:*}
|
local add_ip_aliases
|
||||||
|
add_ip_aliases=$ADD_IP_ALIASES
|
||||||
|
local iface
|
||||||
|
iface=${interface%:*}
|
||||||
|
|
||||||
if [ -n "$add_ip_aliases" ]; then
|
if [ -n "$add_ip_aliases" ]; then
|
||||||
case $interface in
|
case $interface in
|
||||||
@ -613,7 +641,8 @@ setup_netmap() {
|
|||||||
#
|
#
|
||||||
add_nat_rule() {
|
add_nat_rule() {
|
||||||
local chain
|
local chain
|
||||||
local excludedests=
|
local excludedests
|
||||||
|
excludedests=
|
||||||
|
|
||||||
# Be sure we can NAT
|
# Be sure we can NAT
|
||||||
|
|
||||||
|
@ -30,7 +30,30 @@
|
|||||||
#
|
#
|
||||||
setup_providers()
|
setup_providers()
|
||||||
{
|
{
|
||||||
local table number mark duplicate interface gateway options provider address copy route loose addresses rulenum rulebase balance save_indent="$INDENT" mask= first=Yes save_indent1=
|
local table
|
||||||
|
local number
|
||||||
|
local mark
|
||||||
|
local duplicate
|
||||||
|
local interface
|
||||||
|
local gateway
|
||||||
|
local options
|
||||||
|
local provider
|
||||||
|
local address
|
||||||
|
local copy
|
||||||
|
local route
|
||||||
|
local loose
|
||||||
|
local addresses
|
||||||
|
local rulenum
|
||||||
|
local rulebase
|
||||||
|
local balance
|
||||||
|
local save_indent
|
||||||
|
save_indent="$INDENT"
|
||||||
|
local mask
|
||||||
|
mask=
|
||||||
|
local first
|
||||||
|
first=Yes
|
||||||
|
local save_indent1
|
||||||
|
save_indent1=
|
||||||
|
|
||||||
copy_table() {
|
copy_table() {
|
||||||
indent >&3 << __EOF__
|
indent >&3 << __EOF__
|
||||||
@ -88,7 +111,12 @@ __EOF__
|
|||||||
}
|
}
|
||||||
|
|
||||||
add_a_provider() {
|
add_a_provider() {
|
||||||
local t n iface option optional=
|
local t
|
||||||
|
local n
|
||||||
|
local iface
|
||||||
|
local option
|
||||||
|
local optional
|
||||||
|
optional=
|
||||||
|
|
||||||
[ -n "$MANGLE_ENABLED" ] || fatal_error "Providers require mangle support in your kernel and iptables"
|
[ -n "$MANGLE_ENABLED" ] || fatal_error "Providers require mangle support in your kernel and iptables"
|
||||||
|
|
||||||
@ -269,7 +297,8 @@ __EOF__
|
|||||||
|
|
||||||
verify_provider()
|
verify_provider()
|
||||||
{
|
{
|
||||||
local p n
|
local p
|
||||||
|
local n
|
||||||
|
|
||||||
for p in $PROVIDERS main; do
|
for p in $PROVIDERS main; do
|
||||||
[ "$p" = "$1" ] && return 0
|
[ "$p" = "$1" ] && return 0
|
||||||
@ -434,7 +463,10 @@ __EOF__
|
|||||||
#
|
#
|
||||||
setup_route_marking()
|
setup_route_marking()
|
||||||
{
|
{
|
||||||
local mask=0xFF save_indent="$INDENT"
|
local mask
|
||||||
|
mask=0xFF
|
||||||
|
local save_indent
|
||||||
|
save_indent="$INDENT"
|
||||||
|
|
||||||
[ -n "$HIGH_ROUTE_MARKS" ] && mask=0xFF00
|
[ -n "$HIGH_ROUTE_MARKS" ] && mask=0xFF00
|
||||||
|
|
||||||
|
@ -30,7 +30,10 @@
|
|||||||
#
|
#
|
||||||
setup_proxy_arp() {
|
setup_proxy_arp() {
|
||||||
|
|
||||||
local setlist= resetlist=
|
local setlist
|
||||||
|
setlist=
|
||||||
|
local resetlist
|
||||||
|
resetlist=
|
||||||
|
|
||||||
print_error() {
|
print_error() {
|
||||||
error_message "Invalid value for HAVEROUTE - ($haveroute)"
|
error_message "Invalid value for HAVEROUTE - ($haveroute)"
|
||||||
|
@ -37,11 +37,30 @@
|
|||||||
#
|
#
|
||||||
setup_traffic_shaping()
|
setup_traffic_shaping()
|
||||||
{
|
{
|
||||||
local mtu r2q tc_all_devices device mark rate ceil prio options devfile=$(find_file tcdevices) classfile=$(find_file tcclasses) devnum=1 last_device=
|
local mtu
|
||||||
r2q=10 indent= prefix=1
|
local r2q
|
||||||
|
local tc_all_devices
|
||||||
|
local device
|
||||||
|
local mark
|
||||||
|
local rate
|
||||||
|
local ceil
|
||||||
|
local prio
|
||||||
|
local options
|
||||||
|
local devfile
|
||||||
|
devfile=$(find_file tcdevices)
|
||||||
|
local classfile
|
||||||
|
classfile=$(find_file tcclasses)
|
||||||
|
local devnum
|
||||||
|
devnum=1
|
||||||
|
local last_device
|
||||||
|
last_device=
|
||||||
|
r2q=10
|
||||||
|
indent=
|
||||||
|
prefix=1
|
||||||
|
|
||||||
rate_to_kbit() {
|
rate_to_kbit() {
|
||||||
local rateunit rate
|
local rateunit
|
||||||
|
local rate
|
||||||
rate=$1
|
rate=$1
|
||||||
rateunit=$( echo $rate | sed -e 's/[0-9]*//')
|
rateunit=$( echo $rate | sed -e 's/[0-9]*//')
|
||||||
rate=$( echo $rate | sed -e 's/[a-zA-Z]*//g')
|
rate=$( echo $rate | sed -e 's/[a-zA-Z]*//g')
|
||||||
@ -68,13 +87,16 @@ setup_traffic_shaping()
|
|||||||
}
|
}
|
||||||
|
|
||||||
calculate_quantum() {
|
calculate_quantum() {
|
||||||
local rate=$(rate_to_kbit $1)
|
local rate
|
||||||
|
rate=$(rate_to_kbit $1)
|
||||||
echo $(( $rate * ( 128 / $r2q ) ))
|
echo $(( $rate * ( 128 / $r2q ) ))
|
||||||
}
|
}
|
||||||
|
|
||||||
# get given outbandwidth for device
|
# get given outbandwidth for device
|
||||||
get_outband_for_dev() {
|
get_outband_for_dev() {
|
||||||
local device inband outband
|
local device
|
||||||
|
local inband
|
||||||
|
local outband
|
||||||
while read device inband outband; do
|
while read device inband outband; do
|
||||||
tcdev="$device $inband $outband"
|
tcdev="$device $inband $outband"
|
||||||
if [ "$1" = "$device" ] ; then
|
if [ "$1" = "$device" ] ; then
|
||||||
@ -102,7 +124,12 @@ setup_traffic_shaping()
|
|||||||
}
|
}
|
||||||
|
|
||||||
get_defmark_for_dev() {
|
get_defmark_for_dev() {
|
||||||
local searchdev searchmark device ceil prio options
|
local searchdev
|
||||||
|
local searchmark
|
||||||
|
local device
|
||||||
|
local ceil
|
||||||
|
local prio
|
||||||
|
local options
|
||||||
searchdev=$1
|
searchdev=$1
|
||||||
|
|
||||||
while read device mark rate ceil prio options; do
|
while read device mark rate ceil prio options; do
|
||||||
@ -122,7 +149,9 @@ setup_traffic_shaping()
|
|||||||
|
|
||||||
validate_tcdevices_file() {
|
validate_tcdevices_file() {
|
||||||
progress_message2 "Validating $devfile..."
|
progress_message2 "Validating $devfile..."
|
||||||
local device inband outband
|
local device
|
||||||
|
local inband
|
||||||
|
local outband
|
||||||
while read device inband outband; do
|
while read device inband outband; do
|
||||||
tcdev="$device $inband $outband"
|
tcdev="$device $inband $outband"
|
||||||
check_defmark_for_dev $device || fatal_error "Option default is not defined for any class in tcclasses for interface $device"
|
check_defmark_for_dev $device || fatal_error "Option default is not defined for any class in tcclasses for interface $device"
|
||||||
@ -140,7 +169,16 @@ setup_traffic_shaping()
|
|||||||
|
|
||||||
validate_tcclasses_file() {
|
validate_tcclasses_file() {
|
||||||
progress_message2 "Validating $classfile..."
|
progress_message2 "Validating $classfile..."
|
||||||
local classlist device mark rate ceil prio bandw wrongopt allopts opt
|
local classlist
|
||||||
|
local device
|
||||||
|
local mark
|
||||||
|
local rate
|
||||||
|
local ceil
|
||||||
|
local prio
|
||||||
|
local bandw
|
||||||
|
local wrongopt
|
||||||
|
local allopts
|
||||||
|
local opt
|
||||||
allopts=""
|
allopts=""
|
||||||
while read device mark rate ceil prio options; do
|
while read device mark rate ceil prio options; do
|
||||||
tcdev="$device $mark $rate $ceil $prio $options"
|
tcdev="$device $mark $rate $ceil $prio $options"
|
||||||
@ -171,7 +209,8 @@ setup_traffic_shaping()
|
|||||||
}
|
}
|
||||||
|
|
||||||
add_root_tc() {
|
add_root_tc() {
|
||||||
local defmark dev
|
local defmark
|
||||||
|
local dev
|
||||||
|
|
||||||
dev=$(chain_base $device)
|
dev=$(chain_base $device)
|
||||||
|
|
||||||
@ -211,7 +250,11 @@ setup_traffic_shaping()
|
|||||||
}
|
}
|
||||||
|
|
||||||
add_tc_class() {
|
add_tc_class() {
|
||||||
local full classid tospair tosmask quantum
|
local full
|
||||||
|
local classid
|
||||||
|
local tospair
|
||||||
|
local tosmask
|
||||||
|
local quantum
|
||||||
|
|
||||||
full=$(get_outband_for_dev $device)
|
full=$(get_outband_for_dev $device)
|
||||||
full=$(rate_to_kbit $full)
|
full=$(rate_to_kbit $full)
|
||||||
|
@ -37,7 +37,10 @@ setup_tunnels() # $1 = name of tunnels file
|
|||||||
|
|
||||||
setup_one_ipsec() # $1 = Tunnel Kind $2 = gateway zones
|
setup_one_ipsec() # $1 = Tunnel Kind $2 = gateway zones
|
||||||
{
|
{
|
||||||
local kind=$1 noah=noah
|
local kind
|
||||||
|
kind=$1
|
||||||
|
local noah
|
||||||
|
noah=noah
|
||||||
|
|
||||||
case $kind in
|
case $kind in
|
||||||
*:*)
|
*:*)
|
||||||
@ -134,8 +137,10 @@ setup_tunnels() # $1 = name of tunnels file
|
|||||||
|
|
||||||
setup_one_openvpn() # $1 = kind[:port]
|
setup_one_openvpn() # $1 = kind[:port]
|
||||||
{
|
{
|
||||||
local protocol=udp
|
local protocol
|
||||||
local p=1194
|
protocol=udp
|
||||||
|
local p
|
||||||
|
p=1194
|
||||||
|
|
||||||
case $1 in
|
case $1 in
|
||||||
*:*:*)
|
*:*:*)
|
||||||
@ -159,8 +164,10 @@ setup_tunnels() # $1 = name of tunnels file
|
|||||||
|
|
||||||
setup_one_openvpn_server() # $1 = kind[:port]
|
setup_one_openvpn_server() # $1 = kind[:port]
|
||||||
{
|
{
|
||||||
local protocol=udp
|
local protocol
|
||||||
local p=1194
|
protocol=udp
|
||||||
|
local p
|
||||||
|
p=1194
|
||||||
|
|
||||||
case $1 in
|
case $1 in
|
||||||
*:*:*)
|
*:*:*)
|
||||||
@ -184,8 +191,10 @@ setup_tunnels() # $1 = name of tunnels file
|
|||||||
|
|
||||||
setup_one_openvpn_client() # $1 = kind[:port]
|
setup_one_openvpn_client() # $1 = kind[:port]
|
||||||
{
|
{
|
||||||
local protocol=udp
|
local protocol
|
||||||
local p=1194
|
protocol=udp
|
||||||
|
local p
|
||||||
|
p=1194
|
||||||
|
|
||||||
case $1 in
|
case $1 in
|
||||||
*:*:*)
|
*:*:*)
|
||||||
@ -210,7 +219,8 @@ setup_tunnels() # $1 = name of tunnels file
|
|||||||
setup_one_generic() # $1 = kind:protocol[:port]
|
setup_one_generic() # $1 = kind:protocol[:port]
|
||||||
{
|
{
|
||||||
local protocol
|
local protocol
|
||||||
local p=
|
local p
|
||||||
|
p=
|
||||||
|
|
||||||
case $1 in
|
case $1 in
|
||||||
*:*:*)
|
*:*:*)
|
||||||
|
@ -247,7 +247,8 @@ compiler() {
|
|||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
local command=$1
|
local command
|
||||||
|
command=$1
|
||||||
|
|
||||||
shift
|
shift
|
||||||
|
|
||||||
@ -293,10 +294,12 @@ compiler() {
|
|||||||
# Start Command Executor
|
# Start Command Executor
|
||||||
#
|
#
|
||||||
start_command() {
|
start_command() {
|
||||||
local finished=0
|
local finished
|
||||||
|
finished=0
|
||||||
|
|
||||||
do_it() {
|
do_it() {
|
||||||
local rc=0
|
local rc
|
||||||
|
rc=0
|
||||||
|
|
||||||
progress_message3 "Compiling..."
|
progress_message3 "Compiling..."
|
||||||
|
|
||||||
@ -405,7 +408,8 @@ start_command() {
|
|||||||
# Compile Command Executor
|
# Compile Command Executor
|
||||||
#
|
#
|
||||||
compile_command() {
|
compile_command() {
|
||||||
local finished=0
|
local finished
|
||||||
|
finished=0
|
||||||
|
|
||||||
while [ $finished -eq 0 ]; do
|
while [ $finished -eq 0 ]; do
|
||||||
[ $# -eq 0 ] && usage 1
|
[ $# -eq 0 ] && usage 1
|
||||||
@ -485,7 +489,8 @@ compile_command() {
|
|||||||
# Check Command Executor
|
# Check Command Executor
|
||||||
#
|
#
|
||||||
check_command() {
|
check_command() {
|
||||||
local finished=0
|
local finished
|
||||||
|
finished=0
|
||||||
|
|
||||||
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
||||||
option=$1
|
option=$1
|
||||||
@ -557,7 +562,10 @@ check_command() {
|
|||||||
# Restart Command Executor
|
# Restart Command Executor
|
||||||
#
|
#
|
||||||
restart_command() {
|
restart_command() {
|
||||||
local finished=0 rc=0
|
local finished
|
||||||
|
finished=0
|
||||||
|
local rc
|
||||||
|
rc=0
|
||||||
|
|
||||||
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
||||||
option=$1
|
option=$1
|
||||||
@ -634,7 +642,8 @@ restart_command() {
|
|||||||
# Refresh Command Executor
|
# Refresh Command Executor
|
||||||
#
|
#
|
||||||
refresh_command() {
|
refresh_command() {
|
||||||
local finished=0
|
local finished
|
||||||
|
finished=0
|
||||||
|
|
||||||
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
||||||
option=$1
|
option=$1
|
||||||
@ -695,7 +704,8 @@ refresh_command() {
|
|||||||
# Safe-start/safe-restart Command Executor
|
# Safe-start/safe-restart Command Executor
|
||||||
#
|
#
|
||||||
safe_commands() {
|
safe_commands() {
|
||||||
local finished=0
|
local finished
|
||||||
|
finished=0
|
||||||
|
|
||||||
# test is the shell supports timed read
|
# test is the shell supports timed read
|
||||||
read -t 0 junk 2> /dev/null
|
read -t 0 junk 2> /dev/null
|
||||||
@ -827,7 +837,10 @@ safe_commands() {
|
|||||||
# 'try' Command Executor
|
# 'try' Command Executor
|
||||||
#
|
#
|
||||||
try_command() {
|
try_command() {
|
||||||
local finished=0 timeout=
|
local finished
|
||||||
|
finished=0
|
||||||
|
local timeout
|
||||||
|
timeout=
|
||||||
|
|
||||||
handle_directory() {
|
handle_directory() {
|
||||||
[ -n "$SHOREWALL_DIR" ] && usage 2
|
[ -n "$SHOREWALL_DIR" ] && usage 2
|
||||||
@ -966,7 +979,25 @@ rcp_command() {
|
|||||||
#
|
#
|
||||||
reload_command() # $* = original arguments less the command.
|
reload_command() # $* = original arguments less the command.
|
||||||
{
|
{
|
||||||
local verbose=$(make_verbose) file= capabilities= finished=0 saveit= result directory system getcaps= root=root compiler=
|
local verbose
|
||||||
|
verbose=$(make_verbose)
|
||||||
|
local file
|
||||||
|
file=
|
||||||
|
local capabilities
|
||||||
|
capabilities=
|
||||||
|
local finished
|
||||||
|
finished=0
|
||||||
|
local saveit
|
||||||
|
saveit=
|
||||||
|
local result
|
||||||
|
local directory
|
||||||
|
local system
|
||||||
|
local getcaps
|
||||||
|
getcaps=
|
||||||
|
local root
|
||||||
|
root=root
|
||||||
|
local compiler
|
||||||
|
compiler=
|
||||||
|
|
||||||
LITEDIR=/var/lib/shorewall-lite
|
LITEDIR=/var/lib/shorewall-lite
|
||||||
|
|
||||||
@ -1073,7 +1104,8 @@ reload_command() # $* = original arguments less the command.
|
|||||||
#
|
#
|
||||||
export_command() # $* = original arguments less the command.
|
export_command() # $* = original arguments less the command.
|
||||||
{
|
{
|
||||||
local verbose=$(make_verbose) file= finished=0 directory target compiler=
|
local verbose
|
||||||
|
verbose=$(make_verbose) file= finished=0 directory target compiler=
|
||||||
|
|
||||||
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
||||||
option=$1
|
option=$1
|
||||||
@ -1272,7 +1304,10 @@ while [ $finished -eq 0 ]; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
version_command() {
|
version_command() {
|
||||||
local finished=0 all=
|
local finished
|
||||||
|
finished=0
|
||||||
|
local all
|
||||||
|
all=
|
||||||
|
|
||||||
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
while [ $finished -eq 0 -a $# -gt 0 ]; do
|
||||||
option=$1
|
option=$1
|
||||||
|
@ -995,7 +995,12 @@ usage() {
|
|||||||
# Find the interface with the passed MAC address
|
# Find the interface with the passed MAC address
|
||||||
#################################################################################
|
#################################################################################
|
||||||
find_interface_by_mac() {
|
find_interface_by_mac() {
|
||||||
local mac=$1 first second rest dev
|
local mac
|
||||||
|
mac=$1
|
||||||
|
local first
|
||||||
|
local second
|
||||||
|
local rest
|
||||||
|
local dev
|
||||||
|
|
||||||
/sbin/ip link ls | while read first second rest; do
|
/sbin/ip link ls | while read first second rest; do
|
||||||
case $first in
|
case $first in
|
||||||
@ -1014,7 +1019,9 @@ find_interface_by_mac() {
|
|||||||
# Convert MAC addresses to interface names
|
# Convert MAC addresses to interface names
|
||||||
################################################################################
|
################################################################################
|
||||||
get_interfaces() {
|
get_interfaces() {
|
||||||
local interfaces= interface
|
local interfaces
|
||||||
|
interfaces=
|
||||||
|
local interface
|
||||||
|
|
||||||
for interface in $INTERFACES; do
|
for interface in $INTERFACES; do
|
||||||
case $interface in
|
case $interface in
|
||||||
|
@ -915,7 +915,12 @@ usage() {
|
|||||||
# Find the interface with the passed MAC address
|
# Find the interface with the passed MAC address
|
||||||
#################################################################################
|
#################################################################################
|
||||||
find_interface_by_mac() {
|
find_interface_by_mac() {
|
||||||
local mac=$1 first second rest dev
|
local mac
|
||||||
|
mac=$1
|
||||||
|
local first
|
||||||
|
local second
|
||||||
|
local rest
|
||||||
|
local dev
|
||||||
|
|
||||||
/sbin/ip link ls | while read first second rest; do
|
/sbin/ip link ls | while read first second rest; do
|
||||||
case $first in
|
case $first in
|
||||||
@ -934,7 +939,9 @@ find_interface_by_mac() {
|
|||||||
# Convert MAC addresses to interface names
|
# Convert MAC addresses to interface names
|
||||||
################################################################################
|
################################################################################
|
||||||
get_interfaces() {
|
get_interfaces() {
|
||||||
local interfaces= interface
|
local interfaces
|
||||||
|
interfaces=
|
||||||
|
local interface
|
||||||
|
|
||||||
for interface in $INTERFACES; do
|
for interface in $INTERFACES; do
|
||||||
case $interface in
|
case $interface in
|
||||||
|
@ -142,7 +142,8 @@ fatal_error() {
|
|||||||
|
|
||||||
list_search() # $1 = element to search for , $2-$n = list
|
list_search() # $1 = element to search for , $2-$n = list
|
||||||
{
|
{
|
||||||
local e=$1
|
local e
|
||||||
|
e=$1
|
||||||
|
|
||||||
while [ $# -gt 1 ]; do
|
while [ $# -gt 1 ]; do
|
||||||
shift
|
shift
|
||||||
|
@ -128,7 +128,8 @@ fatal_error() {
|
|||||||
|
|
||||||
list_search() # $1 = element to search for , $2-$n = list
|
list_search() # $1 = element to search for , $2-$n = list
|
||||||
{
|
{
|
||||||
local e=$1
|
local e
|
||||||
|
e=$1
|
||||||
|
|
||||||
while [ $# -gt 1 ]; do
|
while [ $# -gt 1 ]; do
|
||||||
shift
|
shift
|
||||||
|
@ -61,7 +61,8 @@ NOTOC="
|
|||||||
|
|
||||||
list_search() # $1 = element to search for , $2-$n = list
|
list_search() # $1 = element to search for , $2-$n = list
|
||||||
{
|
{
|
||||||
local e=$1
|
local e
|
||||||
|
e=$1
|
||||||
|
|
||||||
while [ $# -gt 1 ]; do
|
while [ $# -gt 1 ]; do
|
||||||
shift
|
shift
|
||||||
|
@ -61,7 +61,8 @@ NOTOC="
|
|||||||
|
|
||||||
list_search() # $1 = element to search for , $2-$n = list
|
list_search() # $1 = element to search for , $2-$n = list
|
||||||
{
|
{
|
||||||
local e=$1
|
local e
|
||||||
|
e=$1
|
||||||
|
|
||||||
while [ $# -gt 1 ]; do
|
while [ $# -gt 1 ]; do
|
||||||
shift
|
shift
|
||||||
|
@ -6,7 +6,8 @@ WEBSITE=/home/teastep/Shorewall/Website
|
|||||||
|
|
||||||
list_search() # $1 = element to search for , $2-$n = list
|
list_search() # $1 = element to search for , $2-$n = list
|
||||||
{
|
{
|
||||||
local e=$1
|
local e
|
||||||
|
e=$1
|
||||||
|
|
||||||
while [ $# -gt 1 ]; do
|
while [ $# -gt 1 ]; do
|
||||||
shift
|
shift
|
||||||
|
@ -6,7 +6,8 @@ WEBSITE=/home/teastep/Shorewall/Website
|
|||||||
|
|
||||||
list_search() # $1 = element to search for , $2-$n = list
|
list_search() # $1 = element to search for , $2-$n = list
|
||||||
{
|
{
|
||||||
local e=$1
|
local e
|
||||||
|
e=$1
|
||||||
|
|
||||||
while [ $# -gt 1 ]; do
|
while [ $# -gt 1 ]; do
|
||||||
shift
|
shift
|
||||||
|
Loading…
Reference in New Issue
Block a user