Hallo!
Ich setze folgendes IP-Tables-Script ein (Mein System SuSE 9.2 Pro):
Die Initialisierung funktioniert, nur kann ich manche Seiten nicht aufrufen, FTp geht gar nicht.
Woran liegt es?
Vielen Dank für die Antwort.
marcus1907
Ich setze folgendes IP-Tables-Script ein (Mein System SuSE 9.2 Pro):
Code:
#! /bin/sh
# iptables-Filterskript ab SuSE Linux 7.1 (Kernel 2.4.x und 2.6.x)
# FileHomeName: /etc/init.d/iptablesfilter
# Deklaration der Variablen -------------------------------------------------
IPCHAINS=/sbin/ipchains # Pfad fuer ipchains
IPTABLES=/usr/sbin/iptables # Pfad fuer die Filterregeln
DEV_INT=eth0 # Netzwerkkarte im Server -
# Verbindung zum internen Bereich
DEV_EXT=dsl0 # bis SuSE 9.1: DSL,Modem(ppp0), ISDN-Karte(ippp0)
# ab Suse 9.2: Modem(modem0), DSL(dsl0), ISDN(ippp0)
# Verbindung zum externen Bereich
INT=192.168.1.0/24 # Adressbereich der LAN-PC -
# interner Bereich
EXT=0.0.0.0/0.0.0.0 # Adressbereich im Internet -
# externer Bereich (alle Adressen moeglich)
. /etc/rc.status
. /etc/rc.config
# Determine the base and follow a runlevel link name.
base=${0##*/}
link=${base#*[SK][0-9][0-9]}
# Force execution if not called by a runlevel directory.
test $link = $base && START_IPTABLESFILTER=yes
test "$START_IPTABLESFILTER" = yes || exit 0
# Shell functions sourced from /etc/rc.status:
rc_reset
# Start der Firewall --------------------------------------------------------
case "$1" in
start)
echo " " # Leerzeile
echo "Die Firewall -iptablesfilter- wird eingerichtet ......."
echo " " # Leerzeile
# Kernelmodule --------------------------------------------------------------
IPCHRESP=`$IPCHAINS -n -L 2>&1` # ipchains-Regeln entladen, falls aktiviert
if test $? -eq 0; then
rmmod ipchains
fi
modprobe ip_tables # Aktivierung der iptables-Regeln
# modprobe iptable_nat # Aktivierung NAT (Network Adress Translation)
# modprobe ip_nat_ftp # Aktivierung NAT fr FTP
modprobe ip_conntrack # Kontrolle der Verbindungen
modprobe ip_conntrack_ftp # Kontrolle der Verbindungen - FTP
# Kernelparameter werden eingestellt ----------------------------------------
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
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
# Interface
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
echo 0 > /proc/sys/net/ipv4/conf/all/bootp_relay
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
# Allgemeine Regeln ---------------------------------------------------------
# Loeschen alter Regeln
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -X
# Setzen der Basisregeln - alle Ketten werden blockiert!
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP
# Regeln fuer lokale Prozesse und den Datenverkehr im Intranet---------------
# Datenverkehr auf dem Loopback-Interface wird erlaubt
$IPTABLES -A OUTPUT -o lo -j ACCEPT
$IPTABLES -A INPUT -i lo -j ACCEPT
# Datenverkehr mit dem LAN wird erlaubt
$IPTABLES -A OUTPUT -o $DEV_INT -d $INT -j ACCEPT
$IPTABLES -A INPUT -i $DEV_INT -s $INT -j ACCEPT
# Masquerading --------------------------------------------------------------
$IPTABLES -t nat -A POSTROUTING -o $DEV_EXT -j MASQUERADE
# Durchleitung P2P fuer Client 192.168.0.79 Port 6666
# $IPTABLES -A PREROUTING -t nat -p udp -i $DEV_EXT --dport 6666 \
# -j DNAT --to 192.168.0.79:6666
# $IPTABLES -A PREROUTING -t nat -p tcp -i $DEV_EXT --dport 6666 \
# -j DNAT --to 192.168.0.79:6666
# $IPTABLES -A FORWARD -p tcp -i $DEV_EXT --dport 6666 -j ACCEPT
# $IPTABLES -A FORWARD -p udp -i $DEV_EXT --dport 6666 -j ACCEPT
# Regeln fuer bestehende Verbindungen ---------------------------------------
# Ausgehende Pakete bei bereits aufgebauter Verbindung
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $DEV_INT -o $DEV_EXT \
-m state --state ESTABLISHED,RELATED -j ACCEPT
# Eingehende Pakete zu einer bestehenden Verbindung
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -m state --state NEW,INVALID -j DROP
$IPTABLES -A FORWARD -i $DEV_EXT -o $DEV_INT \
-m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $DEV_EXT -o $DEV_INT \
-m state --state NEW,INVALID -j DROP
# INTERNET-Regeln fuer Pakete aus dem LAN -----------------------------------
# DNS-Anfragen der NETBIOS-Ports 137-139 aus dem LAN werden geblockt
# (Einwahlproblem)
$IPTABLES -A FORWARD -i $DEV_INT -p udp -s $INT \
--sport 137:139 -o $DEV_EXT -j DROP
$IPTABLES -A FORWARD -i $DEV_INT -p tcp -s $INT \
--sport 137:139 -o $DEV_EXT -j DROP
# Behandlung der ICMP-Pakete
$IPTABLES -A FORWARD -o $DEV_EXT -p ICMP --icmp-type echo-request -j ACCEPT
# DNS-Abfragen erlauben - Port 53 - tcp,udp
$IPTABLES -A FORWARD -o $DEV_EXT -m state --state NEW \
-p udp --sport 1024: --dport 53 -j ACCEPT
$IPTABLES -A FORWARD -o $DEV_EXT -m state --state NEW \
-p tcp --sport 1024: --dport 53 -j ACCEPT
# HTTP erlauben - Port 80 - tcp
$IPTABLES -A FORWARD -o $DEV_EXT -m state --state NEW \
-p tcp --sport 1024: --dport 80 -j ACCEPT
# HTTPS erlauben - Port 443 - tcp
$IPTABLES -A FORWARD -o $DEV_EXT -m state --state NEW \
-p tcp --sport 1024: --dport 443 -j ACCEPT
# FTP erlauben - ftp - tcp
$IPTABLES -A FORWARD -o $DEV_EXT -m state --state NEW \
-p tcp --sport 1024: --dport ftp -j ACCEPT
$IPTABLES -A FORWARD -o $DEV_EXT -m state --state NEW \
-p tcp --sport 1024: --dport 1024: -j ACCEPT
# SMTP erlauben (E-Mails an Mail-Provider senden) - Port 25 - tcp
$IPTABLES -A FORWARD -o $DEV_EXT -m state --state NEW \
-p tcp --sport 1024: --dport 25 -j ACCEPT
# POP3 erlauben (E-Mails vom Mail-Provider holen) - Port 110 - tcp
$IPTABLES -A FORWARD -o $DEV_EXT -m state --state NEW \
-p tcp --sport 1024: --dport 110 -j ACCEPT
# NNTP erlauben (Datenaustausch mit News-Groups) - Port 119 - tcp
$IPTABLES -A FORWARD -o $DEV_EXT -m state --state NEW \
-p tcp --sport 1024: --dport 119 -j ACCEPT
# INTERNET-Regeln fuer Pakete vom Gateway-Server ----------------------------
# Behandlung der ICMP-Pakete
$IPTABLES -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
$IPTABLES -A OUTPUT -p icmp --icmp-type source-quench -j ACCEPT
$IPTABLES -A OUTPUT -p icmp --icmp-type time-exceeded -j ACCEPT
$IPTABLES -A OUTPUT -p icmp --icmp-type parameter-problem -j ACCEPT
$IPTABLES -A OUTPUT -p icmp --icmp-type fragmentation-needed -j ACCEPT
$IPTABLES -A OUTPUT -p icmp --icmp-type port-unreachable -j ACCEPT
# DNS-Abfragen erlauben - Port 53 - tcp,udp
$IPTABLES -A OUTPUT -p udp --sport 1024: --dport 53 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport 1024: --dport 53 -j ACCEPT
# HTTP erlauben - Port 80 - tcp
$IPTABLES -A OUTPUT -p tcp --sport 1024: --dport 80 -j ACCEPT
# HTTPS erlauben - Port 443 - tcp
$IPTABLES -A OUTPUT -p tcp --sport 1024: --dport 443 -j ACCEPT
# FTP erlauben - ftp - tcp
$IPTABLES -A OUTPUT -p tcp --sport 1024: --dport ftp -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport 1024: --dport 1024: -j ACCEPT
# SMTP erlauben (E-Mails an Mail-Provider senden) - Port 25 - tcp
$IPTABLES -A OUTPUT -p tcp --sport 1024: --dport 25 -j ACCEPT
# POP3 erlauben (E-Mails vom Mail-Provider holen) - Port 110 - tcp
$IPTABLES -A OUTPUT -p tcp --sport 1024: --dport 110 -j ACCEPT
# NNTP erlauben (Datenaustausch mit News-Groups) - Port 119 - tcp
$IPTABLES -A OUTPUT -p tcp --sport 1024: --dport 119 -j ACCEPT
# Der Rest wird gesperrt!
$IPTABLES -A INPUT -j DROP
$IPTABLES -A FORWARD -j DROP
$IPTABLES -A OUTPUT -j DROP
# Dial-on-Demand scharf machen (SuSE 8.0)!
# echo "DOD aktiviert!"
# cinternet -start
# SuSE 9.0 DSL-Modem (vor 2.4.21-144 beide Befehle aktivieren)!
# cinternet -i dsl0 --stop
# cinternet -i dsl0 --start
echo "..... und ist jetzt bereit!"
echo " " # Leerzeile
# Remember status and be verbose
rc_status -v
;;
# Beenden der Firewall ------------------------------------------------------
stop)
echo " " # Leerzeile
echo "Die Firewall -iptablesfilter- wird heruntergefahren ......."
echo " " # Leerzeile
# Loeschen alter Regeln
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -X
# Alle Ketten werden geoeffnet!
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
# Kernelparameter werden zurueckgesetzt -------------------------------------
echo 0 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/ip_dynaddr
echo 0 > /proc/sys/net/ipv4/tcp_syncookies
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 0 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# echo 0 > /proc/sys/net/ipv4/icmp_destunreach_rate
# echo 0 > /proc/sys/net/ipv4/icmp_echoreply_rate
# echo 0 > /proc/sys/net/ipv4/icmp_paramprob_rate
# echo 0 > /proc/sys/net/ipv4/icmp_timeexceed_rate
# Interface
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
echo 0 > /proc/sys/net/ipv4/conf/all/bootp_relay
echo 0 > /proc/sys/net/ipv4/conf/all/log_martians
# Dial-on-Demand scharf machen (SuSE 8.0)!
# echo "DOD deaktiviert!"
# cinternet -stop
echo "..... und ist jetzt deaktiviert!"
echo " " # Leerzeile
# Remember status and be verbose
rc_status -v
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
rc_exit
Die Initialisierung funktioniert, nur kann ich manche Seiten nicht aufrufen, FTp geht gar nicht.
Woran liegt es?
Vielen Dank für die Antwort.
marcus1907