DaGrrr
02.09.02, 14:22
Hallo,
vor einiger Zeit haben mir einige bei einem Script hier geholfen.
Vielen Dank dafür ;)
Dieses Script funktioniert unter Suse 8.0 fehlerfrei.
Ich bin nun auf Debian 3.0 umgestiegen und habe da so meine Probleme dieses überhaupt zu starten.
Hier mal das script:
#!/bin/sh
# Firewallscript f�r surfer
# ----------------------------------------------------------
# PART I: Variablen
# modprobe ip_tables
set IPTABLES = /sbin/iptables
# ----------------------------------------------------------
# special ports
set p_high = 1024:65535 # unprivileged ports
set p_ssh = 1000:1023 # common ssh source ports
# ----------------------------------------------------------
# interfaces
set IF = eth0
# ----------------------------------------------------------
# ip hosts
set surfer = 192.168.0.1 # example
set ns = 192.168.0.1 # example
set mail = 213.165.64.20 # GMX
set FRIEND = 192.168.0.1/255.255.255.0 # example
# ----------------------------------------------------------
# PART II: Grundkonfiguration: absichern
# ----------------------------------------------------------
# dynamische Kernelparameter setzen
echo "0" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# echo "5" > /proc/sys/net/ipv4/icmp_destunreach_rate
# echo "5" > /proc/sys/net/ipv4/icmp_echoreply_rate
# echo "5" > /proc/sys/net/ipv4/icmp_paramprob_rate
# echo "10" > /proc/sys/net/ipv4/icmp_timeexceed_rate
echo "1" > /proc/sys/net/ipv4/conf/$IF/rp_filter
echo "0" > /proc/sys/net/ipv4/conf/$IF/accept_redirects
echo "0" > /proc/sys/net/ipv4/conf/$IF/accept_source_route
echo "0" > /proc/sys/net/ipv4/conf/$IF/bootp_relay
echo "1" > /proc/sys/net/ipv4/conf/$IF/log_martians
# ----------------------------------------------------------
# Default Policy und flush
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -F # flush aller chains
# ----------------------------------------------------------
# spoof protection
$IPTABLES -A INPUT -s $surfer -i $IF -j DROP
# ----------------------------------------------------------
# lokale Prozesse
$IPTABLES -A OUTPUT -o lo -j ACCEPT
$IPTABLES -A INPUT -i lo -j ACCEPT
# ----------------------------------------------------------
# PART III: endg�ltige Filterregeln
# ----------------------------------------------------------
# ----------------------------------------------------------
# DROP & LOG Chain
$IPTABLES -N my_drop
$IPTABLES -A my_drop -p ICMP -j LOG --log-prefix "DROP-ICMP "
$IPTABLES -A my_drop -p UDP -j LOG --log-prefix "DROP-UDP "
$IPTABLES -A my_drop -p TCP -j LOG --log-prefix "DROP-TCP "
$IPTABLES -A my_drop -j DROP
# ----------------------------------------------------------
# ICMP
# ping: 8 und 0, ausgehend
$IPTABLES -A OUTPUT -p ICMP --icmp-type echo-request -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type echo-reply -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type echo-request -j my_drop
# source quench (4)
$IPTABLES -A OUTPUT -p ICMP --icmp-type source-quench -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type source-quench -j my_drop
# time exceeded (11)
$IPTABLES -A OUTPUT -p ICMP --icmp-type time-exceeded -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type time-exceeded -j ACCEPT
# parameter problem (12)
$IPTABLES -A OUTPUT -p ICMP --icmp-type parameter-problem -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type parameter-problem -j ACCEPT
# destination unreachable (3)
$IPTABLES -A OUTPUT -p ICMP --icmp-type fragmentation-needed -j ACCEPT
$IPTABLES -A OUTPUT -p ICMP --icmp-type port-unreachable -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type fragmentation-needed -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type destination-unreachable -j ACCEPT
# ----------------------------------------------------------
# DNS
$IPTABLES -A OUTPUT -p UDP --sport $p_high -d $ns \
--dport domain -j ACCEPT
$IPTABLES -A INPUT -p UDP --dport $p_high -s $ns \
--sport domain -j ACCEPT
$IPTABLES -A OUTPUT -p TCP --sport $p_high -d $ns \
--dport domain -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport $p_high -s $ns \
--sport domain ! --syn -j ACCEPT
$IPTABLES -A INPUT -p TCP --sport domain --syn -j my_drop
$IPTABLES -A INPUT -p UDP --sport domain -j my_drop
# ----------------------------------------------------------
# SMTP, POP3
$IPTABLES -A OUTPUT -p TCP --sport $p_high \
-d $mail --dport smtp -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport $p_high -s $mail \
--sport smtp ! --syn -j ACCEPT
$IPTABLES -A OUTPUT -p TCP --sport $p_high \
-d $mail --dport pop3 -j ACCEPT
$IPTABLES -A INPUT -p TCP --sport $p_high \
-s $mail --dport pop3 ! --syn -j ACCEPT
# ----------------------------------------------------------
# HTTP
$IPTABLES -A OUTPUT -p TCP --sport $p_high \
--dport http -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport $p_high \
--sport http ! --syn -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport http --syn -j my_drop
# ----------------------------------------------------------
# HTTP via SSL
$IPTABLES -A OUTPUT -p TCP --sport $p_high \
--dport https -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport $p_high \
--sport https ! --syn -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport https --syn -j my_drop
# ----------------------------------------------------------
# ident: reject
$IPTABLES -A INPUT -p TCP --dport auth --syn -j REJECT
# ----------------------------------------------------------
# ftp, out, control connection
$IPTABLES -A OUTPUT -p TCP --sport $p_high \
--dport ftp -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport $p_high \
--sport ftp ! --syn -j ACCEPT
# ftp, out, passive data connection
$IPTABLES -A OUTPUT -p TCP --sport $p_high \
--dport $p_high -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport $p_high \
--sport $p_high ! --syn -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport ftp --syn -j my_drop
# ----------------------------------------------------------
# Ausputzer: Rest sperren, loggen
$IPTABLES -A INPUT -j my_drop
$IPTABLES -A FORWARD -j my_drop
$IPTABLES -A OUTPUT -j REJECT
Wenn ich das Script starte erscheint folgende Fehlermeldung (siehe Anhang).
Die Regeln selber sollten in Ordnung sein, da diese ja bei Suse (meines erachtens) fehlerfrei laufen.
Ich habe folgendes unentwegt versucht:
set IF = eth0
set IF=eth0
set IF="eth0" usw
Dies habe ich mit den anderen set anweisungen ebenfalls getan.
Ebenfalls habe ich versucht #!/bin/sh #!/bin/tcsh #!/bin/csh usw
Nix brachte eine Lösung.
iptables ist installiert, ich finde es in /sbin/iptables, ebenfalls zeigt es der Befehl iptables -vL
Die Suchfunktion habe ich benutzt, allerdings nix zu meinem Problem gefunden.
Kann mir da evtl. einer helfen ? Langsam bin ich ratlos.
Grüße
DaGrrr
vor einiger Zeit haben mir einige bei einem Script hier geholfen.
Vielen Dank dafür ;)
Dieses Script funktioniert unter Suse 8.0 fehlerfrei.
Ich bin nun auf Debian 3.0 umgestiegen und habe da so meine Probleme dieses überhaupt zu starten.
Hier mal das script:
#!/bin/sh
# Firewallscript f�r surfer
# ----------------------------------------------------------
# PART I: Variablen
# modprobe ip_tables
set IPTABLES = /sbin/iptables
# ----------------------------------------------------------
# special ports
set p_high = 1024:65535 # unprivileged ports
set p_ssh = 1000:1023 # common ssh source ports
# ----------------------------------------------------------
# interfaces
set IF = eth0
# ----------------------------------------------------------
# ip hosts
set surfer = 192.168.0.1 # example
set ns = 192.168.0.1 # example
set mail = 213.165.64.20 # GMX
set FRIEND = 192.168.0.1/255.255.255.0 # example
# ----------------------------------------------------------
# PART II: Grundkonfiguration: absichern
# ----------------------------------------------------------
# dynamische Kernelparameter setzen
echo "0" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# echo "5" > /proc/sys/net/ipv4/icmp_destunreach_rate
# echo "5" > /proc/sys/net/ipv4/icmp_echoreply_rate
# echo "5" > /proc/sys/net/ipv4/icmp_paramprob_rate
# echo "10" > /proc/sys/net/ipv4/icmp_timeexceed_rate
echo "1" > /proc/sys/net/ipv4/conf/$IF/rp_filter
echo "0" > /proc/sys/net/ipv4/conf/$IF/accept_redirects
echo "0" > /proc/sys/net/ipv4/conf/$IF/accept_source_route
echo "0" > /proc/sys/net/ipv4/conf/$IF/bootp_relay
echo "1" > /proc/sys/net/ipv4/conf/$IF/log_martians
# ----------------------------------------------------------
# Default Policy und flush
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -F # flush aller chains
# ----------------------------------------------------------
# spoof protection
$IPTABLES -A INPUT -s $surfer -i $IF -j DROP
# ----------------------------------------------------------
# lokale Prozesse
$IPTABLES -A OUTPUT -o lo -j ACCEPT
$IPTABLES -A INPUT -i lo -j ACCEPT
# ----------------------------------------------------------
# PART III: endg�ltige Filterregeln
# ----------------------------------------------------------
# ----------------------------------------------------------
# DROP & LOG Chain
$IPTABLES -N my_drop
$IPTABLES -A my_drop -p ICMP -j LOG --log-prefix "DROP-ICMP "
$IPTABLES -A my_drop -p UDP -j LOG --log-prefix "DROP-UDP "
$IPTABLES -A my_drop -p TCP -j LOG --log-prefix "DROP-TCP "
$IPTABLES -A my_drop -j DROP
# ----------------------------------------------------------
# ICMP
# ping: 8 und 0, ausgehend
$IPTABLES -A OUTPUT -p ICMP --icmp-type echo-request -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type echo-reply -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type echo-request -j my_drop
# source quench (4)
$IPTABLES -A OUTPUT -p ICMP --icmp-type source-quench -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type source-quench -j my_drop
# time exceeded (11)
$IPTABLES -A OUTPUT -p ICMP --icmp-type time-exceeded -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type time-exceeded -j ACCEPT
# parameter problem (12)
$IPTABLES -A OUTPUT -p ICMP --icmp-type parameter-problem -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type parameter-problem -j ACCEPT
# destination unreachable (3)
$IPTABLES -A OUTPUT -p ICMP --icmp-type fragmentation-needed -j ACCEPT
$IPTABLES -A OUTPUT -p ICMP --icmp-type port-unreachable -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type fragmentation-needed -j ACCEPT
$IPTABLES -A INPUT -p ICMP --icmp-type destination-unreachable -j ACCEPT
# ----------------------------------------------------------
# DNS
$IPTABLES -A OUTPUT -p UDP --sport $p_high -d $ns \
--dport domain -j ACCEPT
$IPTABLES -A INPUT -p UDP --dport $p_high -s $ns \
--sport domain -j ACCEPT
$IPTABLES -A OUTPUT -p TCP --sport $p_high -d $ns \
--dport domain -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport $p_high -s $ns \
--sport domain ! --syn -j ACCEPT
$IPTABLES -A INPUT -p TCP --sport domain --syn -j my_drop
$IPTABLES -A INPUT -p UDP --sport domain -j my_drop
# ----------------------------------------------------------
# SMTP, POP3
$IPTABLES -A OUTPUT -p TCP --sport $p_high \
-d $mail --dport smtp -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport $p_high -s $mail \
--sport smtp ! --syn -j ACCEPT
$IPTABLES -A OUTPUT -p TCP --sport $p_high \
-d $mail --dport pop3 -j ACCEPT
$IPTABLES -A INPUT -p TCP --sport $p_high \
-s $mail --dport pop3 ! --syn -j ACCEPT
# ----------------------------------------------------------
# HTTP
$IPTABLES -A OUTPUT -p TCP --sport $p_high \
--dport http -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport $p_high \
--sport http ! --syn -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport http --syn -j my_drop
# ----------------------------------------------------------
# HTTP via SSL
$IPTABLES -A OUTPUT -p TCP --sport $p_high \
--dport https -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport $p_high \
--sport https ! --syn -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport https --syn -j my_drop
# ----------------------------------------------------------
# ident: reject
$IPTABLES -A INPUT -p TCP --dport auth --syn -j REJECT
# ----------------------------------------------------------
# ftp, out, control connection
$IPTABLES -A OUTPUT -p TCP --sport $p_high \
--dport ftp -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport $p_high \
--sport ftp ! --syn -j ACCEPT
# ftp, out, passive data connection
$IPTABLES -A OUTPUT -p TCP --sport $p_high \
--dport $p_high -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport $p_high \
--sport $p_high ! --syn -j ACCEPT
$IPTABLES -A INPUT -p TCP --dport ftp --syn -j my_drop
# ----------------------------------------------------------
# Ausputzer: Rest sperren, loggen
$IPTABLES -A INPUT -j my_drop
$IPTABLES -A FORWARD -j my_drop
$IPTABLES -A OUTPUT -j REJECT
Wenn ich das Script starte erscheint folgende Fehlermeldung (siehe Anhang).
Die Regeln selber sollten in Ordnung sein, da diese ja bei Suse (meines erachtens) fehlerfrei laufen.
Ich habe folgendes unentwegt versucht:
set IF = eth0
set IF=eth0
set IF="eth0" usw
Dies habe ich mit den anderen set anweisungen ebenfalls getan.
Ebenfalls habe ich versucht #!/bin/sh #!/bin/tcsh #!/bin/csh usw
Nix brachte eine Lösung.
iptables ist installiert, ich finde es in /sbin/iptables, ebenfalls zeigt es der Befehl iptables -vL
Die Suchfunktion habe ich benutzt, allerdings nix zu meinem Problem gefunden.
Kann mir da evtl. einer helfen ? Langsam bin ich ratlos.
Grüße
DaGrrr