glockenklang
Mitglied
 Forum-Platinmitglied
| Beiträge: 101 |   |
|
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
|