PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ipchains



28.08.00, 13:07
Hallo,
ich benutze Suse 6.2 und habe versucht mir aus einem Beispiel im Netz eine eigene Firewall zu basteln, habe aber eigendlich nur ein weiteres Interface weggelassen. Meine externes Interface ist ppp0, mein internes eth0, interne IP`s sind 192.168.0.0/24 . Anhand der /var/log/messages kann man aber sehen, das alle Anfragen aus dem internen Netz auf ein DENY laufen. Was ist falsch ??

Script:
-----------------------------------------------------------------------
#!/bin/sh
# Erstmal für alle Interfaces Anti-Spoofing aktivieren
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 1 > $f; done

# Nur Loopback erlauben, alles andere verbieten
# muss ausgeführt worden sein, bevor die Interfaces vom Boot-Script configuriert worden sind
ipchains -A input -i ! lo -j DENY
ipchains -A output -i ! lo -j DENY
ipchains -A forward -j DENY

# Masquerading Module laden ( in anderem Script)

# Masquerading Modul für ftp einfügen damit aktiv & passiv FTP läuft
# insmod ip_masq_ftp

# Beim masquerieren filtert man am besten in der Forward-chain
# Man teilt die forward-chain in mehrere user-chains auf, abhängig von Quell- und Ziel Interface
# -N generiert eine neue chain ( -N chainName )

ipchains -N good-bad
ipchains -N bad-good

# Standard Fehler ICMPs zu akzeptieren ist üblich, also eine chain dafür anlegen

ipchains -N icmp-acc

# Sprungziele für forward-chain definieren
# zB wenn von Intern nach Extern dann gehe zu good-dmz chain

ipchains -A forward -s 192.168.1.0/24 -i ppp0 -j good-bad
ipchains -A forward -i eth1 -j bad-good
ipchains -A forward -j DENY -l

# Packete die zum Error-ICMP gehören werden akzeptiert, andernfalls gehen Sie zurück zur Quell-chain

ipchains -A icmp-acc -p icmp --icmp-type destination-unreachable -j ACCEPT
ipchains -A icmp-acc -p icmp --icmp-type source-quench -j ACCEPT
ipchains -A icmp-acc -p icmp --icmp-type time-exceeded -j ACCEPT
ipchains -A icmp-acc -p icmp --icmp-type parameter-problem -j ACCEPT

# GOOD(eth0) nach BAD (ppp0)
# Allow WWW / FTP / traceroute / ssh to external
# Allow SMTP to Mail Server
# Allow PoP3 to Mail-Server / DNS -> Name-Server / rsync to Webserver / www to WebServer / ping
#
# Violations logen , passiv FTP handeelt bei masq-Module


ipchains -A good-bad -p tcp --dport www -j MASQ
ipchains -A good-bad -p tcp --dport ssh -j MASQ
ipchains -A good-bad -p udp --dport 33434:33500 -j MASQ
ipchains -A good-bad -p tcp --dport ftp --j MASQ
ipchains -A good-bad -p icmp --icmp-type ping -j MASQ
ipchains -A good-bad -j REJECT -l


# BAD (ppp0) nach GOOD(eth0)
# Alles was nicht angefordert war wird abgewiesen
ipchains -A bad-good -j REJECT


# Filter für den Linuxrechner selber
#
ipchains -N bad-if
ipchains -N good-if
#
#
#
ipchains -A input -i ppp0 -j bad-if
ipchains -A input -d 192.168.0.1 -j good-if

# Bad (ppp0) interface
# ping an jedes netzwerk
# traceroute an jedes netzwerk
# Zugriff für DNS
# Das externe Interface erhält außerdem Anfragen zu masquerierten Packeten, ICMP Errors für diese und Ping replies


# ipchains -A bad-if -i ! ppp0 -j DENY -l
ipchains -A bad-if -p TCP --dport 61000:65096 -j ACCEPT
ipchains -A bad-if -p UDP --dport 61000:65096 -j ACCEPT
ipchains -A bad-if -p ICMP --icmp-type pong -j ACCEPT
ipchains -A bad-if -j icmp-acc
ipchains -A bad-if -j DENY

# GOOD (eth0) (internes Interface)
# ping an jedes netzwerk
# traceroute an jedes netzwerk
# Zugriff für DNS
# Allow www, ftp, traceroute, ssh to external, smtp to mailserver, pop3 to mailserver
# Allow DNS to NAmeServer, rsync to WebServer, ping to packet filter box
# eth0 empfängt pings, ping replies ind ICMP Errors


ipchains -A good-if -i ! eth0 -j DENY
ipchains -A good-if -p ICMP --icmp-type ping -j ACCEPT
ipchains -A good-if -p ICMP --icmp-type pong -j ACCEPT
ipchains -A good-if -j icmp-acc
ipchains -A good-if -j DENY -l


# Blocking rules entfernen

ipchains -D input 1
ipchains -D forward 1
ipchains -D output 1


# Ende

28.08.00, 14:08
Hi,

bist du sicher, daß am Ende dir richtige Regel gelöscht wird ?

VG

F1B