AHRlug - Linux user group Ahrtal
AHRlug-Forum  


ipchains gaaaaaaaaaaanz alte Suse 6.1 - 18/02/2005 19:30 Hallo Gemeinde

Habe hier ein Ipchainsscript (ich weiß alt,wird nicht mehr gemacht, warum nimmst du nicht was anderes) . Soll auf'ner Suse 6.1 laufen.
Da ich im Moment nicht testen kann, wollte ich euch bitten das Script anzuschauen und mir feedback zugeben ob das überhaupt funktionieren könnte.

Schon mal Danke für's Gehirnschmalz

Wolfgang

#!/bin/sh
# Firewallscript für SuSE_6.1
# Datum: 2005-02-18
# Haftung: Keine Haftung bei Schäden, die aus der direkten/indirekten
# Nutzung dieses Shell-Scripts entstehen können.
# Nutzung auf eigene Gefahr, kann Haarausfall hervorrufen!!

IPCHAINS=/sbin/ipchains
IFCONFIG=/sbin/ifconfig
INTERNET=0/0

EXT_IF=eth0
INT_IF=eth1
LO_IF=lo

PRIV_PORTS="0:1023"
UNPRIV_PORTS="1024:65535"
SUPER_PORTS="4000:4011"

case "$1" in
start)

INT_IP=`$IFCONFIG $INT_IF | grep inet | cut -d : -f 2 | cut -d " " -f 1`
INT_MASK=`$IFCONFIG $INT_IF | grep Mask | cut -d : -f 4`
INT_NET="$INT_IP/$INT_MASK"

EXT_IP=`$IFCONFIG $EXT_IF | grep inet | cut -d : -f 2 | cut -d " " -f 1`
EXT_MASK=`$IFCONFIG $EXT_IF | grep Mask | cut -d : -f 4`
EXT_NET="$EXT_IP/$EXT_MASK"

LO_IP=127.0.0.1
LO_MASK=255.255.255.255
LO_NET="$LO_IP/$LO_MASK"
;;
stop)
;;
esac


Allow_All()
{ # Paketfilterketten löschen
$IPCHAINS -F
$IPCHAINS -X
$IPCHAINS -P input ACCEPT
$IPCHAINS -P forward ACCEPT
$IPCHAINS -P output ACCEPT
}

Deny_Not_Routeable()
{ # Nicht routebare IP-Adressen an externem Netzwerkdevice blocken
$IPCHAINS -A input -s 10.0.0.0/8 -i $EXT_IF -j DENY
$IPCHAINS -A input -s 127.0.0.0/8 -i $EXT_IF -j DENY
$IPCHAINS -A input -s 192.168.0.0/16 -i $EXT_IF -j DENY
}

Allow_ping()
{ # Ping senden von intern nach extern erlauben
$IPCHAINS -A input -p ICMP --icmp-type echo-request -s $INT_NET -d $INTERNET -j ACCEPT
# Antwort des Pings (extern -> intern) erlauben
$IPCHAINS -A input -p ICMP --icmp-type echo-reply -s $INTERNET -d $EXT_NET -j ACCEPT
# kein Ping von extern nach intern erlauben
# $IPCHAINS -A input -p ICMP --icmp-type echo-request -s $INTERNET -d $EXT_NET -j DENY
}

Allow_lo_traffic()
{ # Traffic über das lo-Device erlauben
$IPCHAINS -A input -s $LO_IP -d $LO_IP -i $LO_IF -j ACCEPT
}

Allow_int_traffic()
{ # Netzwerktraffic im LAN erlauben
$IPCHAINS -A input -s $INT_NET -d $INT_NET -i $INT_IF -j ACCEPT
}

#Allow_DNS()
#{ DNS1=`cat /etc/resolv.conf | grep ^nameserver | cut -d " " -f 2 | head -n 1`
# DNS2=`cat /etc/resolv.conf | grep ^nameserver | cut -d " " -f 2 | tail -n 1`
#
# # TCP-Abfragen
# $IPCHAINS -A input -p TCP -s $INT_NET $UNPRIV_PORTS -d $DNS1 53 -j ACCEPT
# $IPCHAINS -A input -p TCP -s $INT_NET $UNPRIV_PORTS -d $DNS2 53 -j ACCEPT
# $IPCHAINS -A input -p TCP -s $DNS1 53 -d $EXT_IP $UNPRIV_PORTS -j ACCEPT
# $IPCHAINS -A input -p TCP -s $DNS2 53 -d $EXT_IP $UNPRIV_PORTS -j ACCEPT
#
# # UDP-Abfragen
# $IPCHAINS -A input -p UDP -s $INT_NET $UNPRIV_PORTS -d $DNS1 53 -j ACCEPT
# $IPCHAINS -A input -p UDP -s $INT_NET $UNPRIV_PORTS -d $DNS2 53 -j ACCEPT
# $IPCHAINS -A input -p UDP -s $DNS1 53 -d $EXT_IP $UNPRIV_PORTS -j ACCEPT
# $IPCHAINS -A input -p UDP -s $DNS2 53 -d $EXT_IP $UNPRIV_PORTS -j ACCEPT
#}

Allow_Super()
{ $IPCHAINS -A input -p TCP -s $INT_NET $SUPER_PORTS -d $INTERNET $SUPER_PORTS -j ACCEPT
}

Allow_SSH()
{ $IPCHAINS -A input -p TCP -s $INT_NET $UNPRIV_PORTS -d $INTERNET ssh -j ACCEPT
$IPCHAINS -A input -p TCP ! -y -s $INTERNET ssh -d $EXT_IP $UNPRIV_PORTS -j ACCEPT
}

Masquerade()
{ # interne IPs maskieren
$IPCHAINS -A forward -s $INT_NET -d $INTERNET -j MASQ
}

Deny_All()
{ # Rest deaktivieren
$IPCHAINS -A input -j DENY -l
}

case "$1" in
start)

Allow_All
Deny_Not_Routeable
Allow_lo_traffic
Allow_int_traffic
Allow_ping
# Allow_DNS
Allow_SSH
Allow_Super
Deny_All
Masquerade
;;
stop)
Allow_All
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac

exit 0
  | | Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!

      Themen Autor Datum
    thread link
ipchains gaaaaaaaaaaanz alte Suse 6.1
glockenklang 18/02/2005 19:30
© AHRlug - Linux user group Ahrtal 2002 - 2012 | | powered by: linux | apache | php | mysql | joomla