Compare commits
No commits in common. "v961" and "v963" have entirely different histories.
@ -208,6 +208,21 @@ ActivateMasq() {
|
|||||||
-j MASQUERADE >>$TMPSCRIPT
|
-j MASQUERADE >>$TMPSCRIPT
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AllowLocalServer() {
|
||||||
|
SERVER=$1
|
||||||
|
CLIENT=$2
|
||||||
|
PORT=$3
|
||||||
|
PROT=$4
|
||||||
|
RULE=ACCEPT
|
||||||
|
|
||||||
|
echo $DEBUG $IPTABLES -A FORWARD \
|
||||||
|
-s $CLIENT \
|
||||||
|
-d $SERVER \
|
||||||
|
-p $PROT \
|
||||||
|
--dport $PORT \
|
||||||
|
-j $RULE >>$TMPSCRIPT
|
||||||
|
}
|
||||||
|
|
||||||
AllowDMZServiceAccess() {
|
AllowDMZServiceAccess() {
|
||||||
SRVIP=$1
|
SRVIP=$1
|
||||||
UDPPORTS=$2
|
UDPPORTS=$2
|
||||||
@ -310,6 +325,35 @@ LocalAllowWSAll() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AllowIntranetService() {
|
||||||
|
WSIP=$1
|
||||||
|
WSPORT=$2
|
||||||
|
WSPROT=$3
|
||||||
|
|
||||||
|
WSMASK=`getmask $WSIP`
|
||||||
|
WSNET=`getnetaddr $WSIP $WSMASK`
|
||||||
|
NETDEV=`netstat -rn| \
|
||||||
|
grep $WSNET| \
|
||||||
|
sed -e "/^0.0.0.0/d" | \
|
||||||
|
awk '{print $8}'`
|
||||||
|
LOCIP=`ifconfig $NETDEV|grep inet|awk '{print $2}'|cut -d":" -f 2`
|
||||||
|
echo "AllowIntanetService $NETDEV , $LOCIP"
|
||||||
|
echo $DEBUG $IPTABLES -A OUTPUT \
|
||||||
|
-p $WSPROT \
|
||||||
|
-d $WSIP \
|
||||||
|
-s $LOCIP \
|
||||||
|
-o $NETDEV \
|
||||||
|
--dport $WSPORT \
|
||||||
|
-j ACCEPT >>$TMPSCRIPT
|
||||||
|
echo $DEBUG $IPTABLES -A INPUT \
|
||||||
|
-p $WSPROT \
|
||||||
|
-s $WSIP \
|
||||||
|
-d $LOCIP \
|
||||||
|
-i $NETDEV \
|
||||||
|
--sport $WSPORT \
|
||||||
|
-j ACCEPT >>$TMPSCRIPT
|
||||||
|
}
|
||||||
|
|
||||||
LocalAllowPortIN() {
|
LocalAllowPortIN() {
|
||||||
UDP=$1
|
UDP=$1
|
||||||
TCP=$2
|
TCP=$2
|
||||||
@ -675,6 +719,57 @@ AllowWSntpSync() {
|
|||||||
-j $RULE >>$TMPSCRIPT
|
-j $RULE >>$TMPSCRIPT
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AllowNetBios() {
|
||||||
|
OUTDEV=$1
|
||||||
|
WSIP=$2
|
||||||
|
RULE=$3
|
||||||
|
echo >&2 "Executing AllowNetBios with \"$1\" \"$2\" \"$3\""
|
||||||
|
WSIPADDR=`echo $WSIP|sed -e "s/\/.*$//"`
|
||||||
|
INDEV=`FindInDevice $WSIPADDR`
|
||||||
|
for i in 137 138 139; do
|
||||||
|
echo $DEBUG $IPTABLES -A FORWARD \
|
||||||
|
-p tcp \
|
||||||
|
-s $WSIP \
|
||||||
|
--sport $i \
|
||||||
|
--dport $i \
|
||||||
|
-o $OUTDEV \
|
||||||
|
-i $INDEV \
|
||||||
|
-m state \
|
||||||
|
--state NEW,ESTABLISHED \
|
||||||
|
-j $RULE >>$TMPSCRIPT
|
||||||
|
echo $DEBUG $IPTABLES -A FORWARD \
|
||||||
|
-p tcp \
|
||||||
|
-d $WSIP \
|
||||||
|
--sport $i \
|
||||||
|
--dport $i \
|
||||||
|
-o $INDEV \
|
||||||
|
-i $OUTDEV \
|
||||||
|
-m state \
|
||||||
|
--state ESTABLISHED \
|
||||||
|
-j $RULE >>$TMPSCRIPT
|
||||||
|
echo $DEBUG $IPTABLES -A FORWARD \
|
||||||
|
-p udp \
|
||||||
|
-s $WSIP\
|
||||||
|
--sport $i \
|
||||||
|
--dport $i \
|
||||||
|
-o $OUTDEV \
|
||||||
|
-i $INDEV \
|
||||||
|
-m state \
|
||||||
|
--state NEW,ESTABLISHED \
|
||||||
|
-j $RULE >>$TMPSCRIPT
|
||||||
|
echo $DEBUG $IPTABLES -A FORWARD \
|
||||||
|
-p udp \
|
||||||
|
-d $WSIP \
|
||||||
|
--sport $i \
|
||||||
|
--dport $i \
|
||||||
|
-o $INDEV \
|
||||||
|
-i $OUTDEV \
|
||||||
|
-m state \
|
||||||
|
--state ESTABLISHED \
|
||||||
|
-j $RULE >>$TMPSCRIPT
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
AllowDHCPRelay() {
|
AllowDHCPRelay() {
|
||||||
SERVERIP=$1
|
SERVERIP=$1
|
||||||
|
|
||||||
|
@ -106,6 +106,9 @@ if [ -f "$CFGFILE" ]; then
|
|||||||
case $1 in
|
case $1 in
|
||||||
start)
|
start)
|
||||||
if [ -f /var/state/iptables.state ]; then
|
if [ -f /var/state/iptables.state ]; then
|
||||||
|
echo -n "Disabling Kernel Console Output"
|
||||||
|
echo "0" >/proc/sys/kernel/printk
|
||||||
|
evaluate_retval
|
||||||
echo -n "Restoring Firewall Table"
|
echo -n "Restoring Firewall Table"
|
||||||
cat /var/state/iptables.state|iptables-restore
|
cat /var/state/iptables.state|iptables-restore
|
||||||
evaluate_retval
|
evaluate_retval
|
||||||
@ -169,6 +172,20 @@ if [ -f "$CFGFILE" ]; then
|
|||||||
AllowInternRouting ACCEPT $INTERNROUTING
|
AllowInternRouting ACCEPT $INTERNROUTING
|
||||||
evaluate_retval
|
evaluate_retval
|
||||||
fi
|
fi
|
||||||
|
y=0
|
||||||
|
while [ "${LOCALSERVER[$y]}" ]; do
|
||||||
|
echo -n "Activating allow for localserver ${LOCALSERVER[$y]}"
|
||||||
|
LOCSERVER=`echo ${LOCALSERVER[$y]}|cut -d":" -f 2`
|
||||||
|
DMZCLIENT=`echo ${LOCALSERVER[$y]}|cut -d":" -f 1`
|
||||||
|
LOCPORT=`echo ${LOCALSERVER[$y]}|cut -d":" -f 3`
|
||||||
|
LOCPROT=`echo ${LOCALSERVER[$y]}|cut -d":" -f 4`
|
||||||
|
AllowLocalServer $LOCSERVER \
|
||||||
|
$DMZCLIENT \
|
||||||
|
$LOCPORT \
|
||||||
|
$LOCPROT
|
||||||
|
evaluate_retval
|
||||||
|
(( y++ ))
|
||||||
|
done
|
||||||
if [ "$ALLOWNET" ]; then
|
if [ "$ALLOWNET" ]; then
|
||||||
echo -n "Allowing routing for NET=$ALLOWNET over $TUNDEV"
|
echo -n "Allowing routing for NET=$ALLOWNET over $TUNDEV"
|
||||||
echo "#Netz $ALLOWNET komplett freischalten" >>$TMPSCRIPT
|
echo "#Netz $ALLOWNET komplett freischalten" >>$TMPSCRIPT
|
||||||
@ -193,6 +210,18 @@ if [ -f "$CFGFILE" ]; then
|
|||||||
evaluate_retval
|
evaluate_retval
|
||||||
(( y++ ))
|
(( y++ ))
|
||||||
done
|
done
|
||||||
|
y=0
|
||||||
|
while [ ${INSERVER[$y]} ]; do
|
||||||
|
echo "Allow Access to Intranet Service ${INSERVER[$y]}"
|
||||||
|
IP=`echo ${INSERVER[$y]}|awk -F":" '{print $1}'`
|
||||||
|
PORT=`echo ${INSERVER[$y]}|awk -F":" '{print $2}'`
|
||||||
|
PROT=`echo ${INSERVER[$y]}|awk -F":" '{print $3}'`
|
||||||
|
AllowIntranetService ${IP} \
|
||||||
|
${PORT} \
|
||||||
|
${PROT}
|
||||||
|
evaluate_retval
|
||||||
|
(( y++ ))
|
||||||
|
done
|
||||||
for i in $GLOBALSERVER; do
|
for i in $GLOBALSERVER; do
|
||||||
echo -n "Allow Access to Server $i"
|
echo -n "Allow Access to Server $i"
|
||||||
echo "#Zugriff auf server $i freigeben" >>$TMPSCRIPT
|
echo "#Zugriff auf server $i freigeben" >>$TMPSCRIPT
|
||||||
@ -235,6 +264,10 @@ if [ -f "$CFGFILE" ]; then
|
|||||||
echo "#ntp fuer ${LOCALWS[$wszahler]}" >>$TMPSCRIPT
|
echo "#ntp fuer ${LOCALWS[$wszahler]}" >>$TMPSCRIPT
|
||||||
AllowWSntpSync $OUTDEV ${LOCALWS[$wszahler]} $ACCEPTRULE
|
AllowWSntpSync $OUTDEV ${LOCALWS[$wszahler]} $ACCEPTRULE
|
||||||
fi
|
fi
|
||||||
|
if [ "${ALLOWNETBIOS[$wszahler]}" = "yes" ]; then
|
||||||
|
echo "#netbios fuer ${LOCALWS[$wszahler]}" >>$TMPSCRIPT
|
||||||
|
AllowNetBios $OUTDEV ${LOCALWS[$wszahler]} $ACCEPTRULE
|
||||||
|
fi
|
||||||
evaluate_retval
|
evaluate_retval
|
||||||
(( wszahler = $wszahler + 1 ))
|
(( wszahler = $wszahler + 1 ))
|
||||||
done
|
done
|
||||||
@ -356,8 +389,12 @@ if [ -f "$CFGFILE" ]; then
|
|||||||
evaluate_retval
|
evaluate_retval
|
||||||
;;
|
;;
|
||||||
stop)
|
stop)
|
||||||
|
for i in filter nat mangle raw; do
|
||||||
|
$DEBUG $IPTABLES -t $i -F
|
||||||
|
$DEBUG $IPTABLES -t $i -X
|
||||||
|
done
|
||||||
|
|
||||||
for i in INPUT FORWARD OUTPUT; do
|
for i in INPUT FORWARD OUTPUT; do
|
||||||
$DEBUG $IPTABLES -F $i
|
|
||||||
$DEBUG $IPTABLES -P $i ACCEPT
|
$DEBUG $IPTABLES -P $i ACCEPT
|
||||||
done
|
done
|
||||||
if [ "$ACCOUNTING" == "yes" ]; then
|
if [ "$ACCOUNTING" == "yes" ]; then
|
||||||
|
20
etc/init/iptables.conf
Normal file
20
etc/init/iptables.conf
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
description "Setup and Start iptables firewall"
|
||||||
|
author "Harald Kueller <harald.kueller@compuextreme.de>"
|
||||||
|
version 1.0
|
||||||
|
emits none special
|
||||||
|
|
||||||
|
start on ( runlevel [2345] and (stopped routing))
|
||||||
|
|
||||||
|
console output
|
||||||
|
|
||||||
|
pre-start script
|
||||||
|
if [ [ ! -f /var/state/iptables.state ] && [ -f /etc/sysconfig/net/firewall ] ]; then
|
||||||
|
/etc/init.d/firewall configure
|
||||||
|
fi
|
||||||
|
end script
|
||||||
|
|
||||||
|
script
|
||||||
|
if [ -f /var/state/iptables.state ]; then
|
||||||
|
/etc/init.d/firewall start
|
||||||
|
fi
|
||||||
|
end script
|
@ -73,7 +73,7 @@ INTERNROUTING="eth1 lo"
|
|||||||
#Leider kann hier nur EIN Locales Netz angegeben werden. Jedoch kann
|
#Leider kann hier nur EIN Locales Netz angegeben werden. Jedoch kann
|
||||||
#durch gute Definition des Localen Netzes ein sehr grosser Bereich
|
#durch gute Definition des Localen Netzes ein sehr grosser Bereich
|
||||||
#Maskiert werden. Das Locale Netz muss mit "NetzIP/ShortMask" angegeben werden.
|
#Maskiert werden. Das Locale Netz muss mit "NetzIP/ShortMask" angegeben werden.
|
||||||
MASQNET=192.168.66.0/24
|
#MASQNET=192.168.66.0/24
|
||||||
|
|
||||||
#Mit den folgenden Variablen lässt sich ein Komplettes Netz freischalten, das
|
#Mit den folgenden Variablen lässt sich ein Komplettes Netz freischalten, das
|
||||||
#z.B. hinter einem weiteren Router im Netzwerk angeschlossen ist.
|
#z.B. hinter einem weiteren Router im Netzwerk angeschlossen ist.
|
||||||
@ -91,6 +91,12 @@ BGNETTCP[1]="13,15,20,21,25,43,70,80 109:115,143,143 220,443,554,765,1024:65535"
|
|||||||
ROUTEDBGNETSW[1]="yes"
|
ROUTEDBGNETSW[1]="yes"
|
||||||
ROUTEDBGNETNTP[1]="yes"
|
ROUTEDBGNETNTP[1]="yes"
|
||||||
|
|
||||||
|
#Bei DMZ Systemen solle u.U. bestimmte Services im geschuetzen Netzbereich
|
||||||
|
#aus der DMZ heraus ansprechbar sein.
|
||||||
|
#Die Server werden mit Portnummer und Protokoll jeweils in $LOCALSERVER[#]
|
||||||
|
#eingetragen
|
||||||
|
#LOCALSERVER[0]="hugin.compuextreme.de:pgsql.compuextreme.lan:5432:tcp"
|
||||||
|
|
||||||
#Mit den folgenden Zeilen wird die Internet Berechtigung für einzelne IP
|
#Mit den folgenden Zeilen wird die Internet Berechtigung für einzelne IP
|
||||||
#Adressen festgelegt. LOCALWS Enthält die IP jeweils einer localen Workstation
|
#Adressen festgelegt. LOCALWS Enthält die IP jeweils einer localen Workstation
|
||||||
#Alternativ kann in LOCALWS auch ein komplettes SubNet angegeben werden. Dies wird
|
#Alternativ kann in LOCALWS auch ein komplettes SubNet angegeben werden. Dies wird
|
||||||
@ -105,6 +111,8 @@ ROUTEDBGNETNTP[1]="yes"
|
|||||||
#Aufgebaut, sondern Server und Client verwenden den gleichen Port 123.
|
#Aufgebaut, sondern Server und Client verwenden den gleichen Port 123.
|
||||||
#Daher kann eine spezielle Regel für NTP eingefügt werden. Hierzu muss der
|
#Daher kann eine spezielle Regel für NTP eingefügt werden. Hierzu muss der
|
||||||
#Wert von ALLOWNTP auf "yes" gesetzt werden.
|
#Wert von ALLOWNTP auf "yes" gesetzt werden.
|
||||||
|
#Gleiches gild fuer netbios von Microsoft. Hier kann die Variable ALLOWNETBIOS
|
||||||
|
#auf "yes" gesetzt werden, um die entsprechende Sonderbehandlung zu aktivieren.
|
||||||
#In den Eckigen Klammern wird fuer jede freizuschaltende Workstation
|
#In den Eckigen Klammern wird fuer jede freizuschaltende Workstation
|
||||||
#eine andere Nummer eingesetzt. Es muessen alle vier Variablen jeweils einmal
|
#eine andere Nummer eingesetzt. Es muessen alle vier Variablen jeweils einmal
|
||||||
#pro Workstation gesetzt werden.
|
#pro Workstation gesetzt werden.
|
||||||
@ -145,6 +153,14 @@ ALLOWNTP[1]="no"
|
|||||||
#space zeichen voneinander getrennt werden.
|
#space zeichen voneinander getrennt werden.
|
||||||
GLOBALSERVER="192.168.66.49 192.168.66.53"
|
GLOBALSERVER="192.168.66.49 192.168.66.53"
|
||||||
|
|
||||||
|
#Liegen die genutzen Dienste hinter einem grouteten Netz, so muss die
|
||||||
|
#Freischaltung anders erfolgen. Hierzu die Variable unten
|
||||||
|
#definieren. Angegeben wird hier die Server IP, der Dienst Port, sowie das
|
||||||
|
#Protokoll. Hier wird NUR dem Firewall Rechner der Zugriff auf diese
|
||||||
|
#Dienste erlaubt.
|
||||||
|
INSERVER[0]="192.168.75.67:53:tcp"
|
||||||
|
INSERVER[1]="192.168.75.67:53:udp"
|
||||||
|
|
||||||
#Serverdienste Auf Router. Hiermit können Bestimmte Zugriffe auf den Router
|
#Serverdienste Auf Router. Hiermit können Bestimmte Zugriffe auf den Router
|
||||||
#aus dem gesammten Localen Netz (definiert über die angegebenen Devices)
|
#aus dem gesammten Localen Netz (definiert über die angegebenen Devices)
|
||||||
#erlaubt werden. Die Angabe der Freigeschalteten Dienste erfolgt auf
|
#erlaubt werden. Die Angabe der Freigeschalteten Dienste erfolgt auf
|
||||||
|
32
init/genpkg
32
init/genpkg
@ -21,18 +21,20 @@
|
|||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
|
||||||
WDIR=`pwd`
|
if [ -d /var/install/sysvinit* ]; then
|
||||||
cd etc/init.d
|
WDIR=`pwd`
|
||||||
chmod 755 firewall
|
cd etc/init.d
|
||||||
mkdir rc{0,1,2,3,4,5,6}.d
|
chmod 755 firewall
|
||||||
for i in 0 6; do
|
mkdir rc{0,1,2,3,4,5,6}.d
|
||||||
cd rc$i.d
|
for i in 0 6; do
|
||||||
ln -s ../firewall K75firewall
|
cd rc$i.d
|
||||||
cd ..
|
ln -s ../firewall K75firewall
|
||||||
done
|
cd ..
|
||||||
for i in 1 2 3 4 5; do
|
done
|
||||||
cd rc$i.d
|
for i in 1 2 3 4 5; do
|
||||||
ln -s ../firewall S12firewall
|
cd rc$i.d
|
||||||
cd ..
|
ln -s ../firewall S12firewall
|
||||||
done
|
cd ..
|
||||||
cd $WDIR
|
done
|
||||||
|
cd $WDIR
|
||||||
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user