PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : iptables-firewall: No chain/target-->fehler



aymiro
19.11.03, 00:22
Ich habe so ein Skript umgeschrieben. Wenn ich das Skript starte, bekomme ich 8 Zeilen mit diser Fehlermeldung: "iptables: No chain/target/match by that" und "http:80" ist dicht. Normalerweiser sollte port 80 auch offen sein. Ich weiss es nicht , warum solche Fehlermeldungen bekomme ich. Vielleicht jemand hilft mir weiter, dann würde ich dankbar sein...


#!/bin/bash
#
# /etc/ppp/ip-up.local
#
# Version: 20020427 - 0.2
#
# Einige Parameter, die uns der pppd mit uebergibt
#
# Interface-name (Device der aktuellen Verbindung, z.B. ppp0)

DEV_INET0=eth0
# DEV_INET1=eth1

# local-IP-address (IP-Adresse, die wir vom Provider zuegwiesen bekommen
# haben
IP_INET0=192.168.0.104
# IP_INET1=81.2.136.126

# remote-IP-address (unsere Gegenstelle beim Provider)
#IP_GATEWAY=$5

#
# Einige weitere Variablen, die praktisch sein koennen bzw. die
# benoetigt werden
#
# Loopback Device. Hat jeder. Finger weg!
DEV_LOOP=lo
IP_LOOP=127.0.0.1

# Kürzel für alle IP-Adressen
ANY=0.0.0.0/0

# Das aktuelle Datum und die Uhrzeit
DATE=$(date)

# Vollen Pfad von iptables
IPTABLES=/usr/local/sbin/iptables

# IP-Forwarding im Kernel zunächst deaktivieren -wird am Schluss des Skriptes
# wieder aktiviert
echo 0 > /proc/sys/net/ipv4/ip_forward

# Benoetigte Module laden
modprobe ip_tables &> /dev/null
modprobe ip_conntrack &> /dev/null
modprobe ip_conntrack_ftp &> /dev/null
modprobe ipt_state &> /dev/null
modprobe iptable_nat &> /dev/null
modprobe ipt_REJECT &> /dev/null
modprobe ipt_MASQUERADE &> /dev/null

# Alle alten Regeln löschen, anschließend die Default-Policy setzen
$IPTABLES -F
$IPTABLES -X
$IPTABLES -F -t filter
$IPTABLES -F -t nat
$IPTABLES -F -t mangle
$IPTABLES -t filter -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X

# Wenn keine andere Regel greift, alles verwerfen
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP

# PRE- und POST-Routing in der nat-Tabelle erlauben
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
#
# Zunächst alle "illegalen" Pakete blocken - trotz der Default-Policy "DROP"
# sinnvoll, einzeln aufzulisten, um sie korrekt zu "REJECT"en und auch
# mitzuloggen.
#
# Ersteinmal alles löschen, was generell kaputt ist oder
# Angriffsversuche darstellen könnte.
$IPTABLES -N invalid
$IPTABLES -A INPUT -m state --state INVALID -i ! $DEV_LOOP -j invalid
$IPTABLES -A FORWARD -m state --state INVALID -j invalid
$IPTABLES -A INPUT -m unclean -i ! $DEV_LOOP -j invalid
$IPTABLES -A invalid -m limit -j LOG --log-prefix "invalid"
$IPTABLES -A invalid -j REJECT
#
# Scan-Pakete: log and drop
#
# Blocke sog. XMAS-Pakete, erzeugt einen Fehler! wurde auskommentiert
$IPTABLES -N xmas
$IPTABLES -A INPUT -p tcp --tcp-flags ALL ALL -j xmas
$IPTABLES -A FORWARD -p tcp --tcp-flags ALL ALL -j xmas
$IPTABLES -A xmas -m limit -j LOG --log-level info --log-prefix "xmas-scan "
$IPTABLES -A xmas -j REJECT

# Blocke NULL Pakete
$IPTABLES -N null_scan
$IPTABLES -A INPUT -p tcp --tcp-flags ALL NONE -j null_scan
$IPTABLES -A FORWARD -p tcp --tcp-flags ALL NONE -j null_scan
$IPTABLES -A null_scan -m limit -j LOG --log-level info --log-prefix \
"null-scan "
$IPTABLES -A null_scan -j REJECT

# Spoofed packets: log and drop
$IPTABLES -N spoofing
$IPTABLES -A FORWARD -i $DEV_INET0 -s 192.168.0.0/16 -j spoofing
$IPTABLES -A FORWARD -i $DEV_INET0 -s 172.16.0.0/12 -j spoofing
$IPTABLES -A FORWARD -i $DEV_INET0 -s 10.0.0.0/8 -j spoofing
#$IPTABLES -A FORWARD -i $DEV_INET1 -s 192.168.0.0/16 -j spoofing
#$IPTABLES -A FORWARD -i $DEV_INET1 -s 172.16.0.0/12 -j spoofing
#$IPTABLES -A FORWARD -i $DEV_INET1 -s 10.0.0.0/8 -j spoofing
$IPTABLES -A spoofing -m limit -j LOG --log-level info --log-prefix "spoofing "
$IPTABLES -A spoofing -j REJECT

# icmp handling - ICMP-Pakete werden erlaubt, bis auf type 5 (redirect)
$IPTABLES -N icmp_allow
$IPTABLES -N icmp_reject
$IPTABLES -A INPUT -p icmp --icmp-type ! 5 -j icmp_allow
$IPTABLES -A INPUT -i $DEV_INET0 -p icmp --icmp-type 5 -m limit -j icmp_reject
#$IPTABLES -A INPUT -i $DEV_INET1 -p icmp --icmp-type 5 -m limit -j icmp_reject
$IPTABLES -A icmp_allow -j ACCEPT
$IPTABLES -A icmp_reject -m limit -j LOG --log-prefix "icmp_rej "
$IPTABLES -A icmp_reject -j REJECT --reject-with icmp-host-unreachable
#
# Bereits bestehende Verbindungen werden immer akzeptiert: das spart
# das explizite freischalten der INPUT-Pakete bei erlaubten Verbindungen ein
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Verbindungen zum loopback-Device - Das ist NOTWENDIG
$IPTABLES -N lo_accept
$IPTABLES -A INPUT -i $DEV_LOOP -m state --state NEW -j lo_accept
$IPTABLES -A OUTPUT -o $DEV_LOOP -m state --state NEW -j lo_accept
$IPTABLES -A lo_accept -j ACCEPT
# Pings vom Gateway erlauben
$IPTABLES -N icmp_gate
$IPTABLES -A OUTPUT -p icmp -j icmp_gate
$IPTABLES -A INPUT -p icmp -j icmp_gate
$IPTABLES -A icmp_gate -j ACCEPT

# Erlaube www/ftp vom Gateway (z. B. beim Update übers Inet)
$IPTABLES -N www_gate
$IPTABLES -A OUTPUT -p tcp --dport 21 -s $IP_INET0 -m state --state NEW \
-o $DEV_INET0 -j www_gate
$IPTABLES -A INPUT -p tcp --dport 21 -d $IP_INET0 -m state --state NEW \
-i $DEV_INET0 -j www_gate
$IPTABLES -A OUTPUT -p tcp --dport 80 -s $IP_INET0 -m state --state NEW \
-o $DEV_INET0 -j www_gate
$IPTABLES -A INPUT -p tcp --dport 80 -d $IP_INET0 -m state --state NEW \
-i $DEV_INET0 -j www_gate

#$IPTABLES -A OUTPUT -p tcp --dport 21 -s $IP_INET1 -m state --state NEW \
# -o $DEV_INET1 -j www_gate
#$IPTABLES -A OUTPUT -p tcp --dport 80 -s $IP_INET1 -m state --state NEW \
# -o $DEV_INET1 -j www_gate
$IPTABLES -A www_gate -j ACCEPT

# timeserver: erlaubt das Holen der aktuellen Zeit aus dem Inet
$IPTABLES -N ntp_gate
$IPTABLES -A OUTPUT -p udp --dport 123 -s $IP_INET0 -m state --state NEW \
-o $DEV_INET0 -j ntp_gate
#$IPTABLES -A OUTPUT -p udp --dport 123 -s $IP_INET1 -m state --state NEW \
# -o $DEV_INET1 -j ntp_gate
$IPTABLES -A ntp_gate -j ACCEPT

# DNS erlauben
$IPTABLES -N dns_gate
$IPTABLES -A OUTPUT -p udp -o $DEV_INET0 --dport 53 -m state --state NEW \
-j dns_gate
$IPTABLES -A INPUT -p udp -i $DEV_INET0 --dport 53 -m state --state NEW \
-j dns_gate

#$IPTABLES -A OUTPUT -p udp -o $DEV_INET1 --dport 53 -m state --state NEW \
# -j dns_gate
$IPTABLES -A dns_gate -j ACCEPT

# ssh-Verbindungen erlauben (aus dem lokalen Netz, vom Gateway nach aussen):
# Bei gewünschten Verbindungen von aussen an das Gateway entpsrechende Zeile
# mit aktivieren!
$IPTABLES -N ssh_gate
$IPTABLES -A OUTPUT -p tcp -m state --state NEW --dport 22 -j ssh_gate
$IPTABLES -A INPUT -p tcp -m state --state NEW -d $IP_INET0 --dport 22 \
-j ssh_gate
#$IPTABLES -A INPUT -p tcp -m state --state NEW -d $IP_INET1 --dport 22 \
# -j ssh_gate
$IPTABLES -A ssh_gate -j ACCEPT

# Smtp-Verbindungen vom Gateway nach aussen erlauben
$IPTABLES -N smtp_gate
$IPTABLES -A OUTPUT -p tcp -o $DEV_INET0 -m state --state NEW \
--dport 25 -j smtp_gate
$IPTABLES -A INPUT -p tcp -i $DEV_INET0 -m state --state NEW \
--dport 25 -j smtp_gate
#$IPTABLES -A OUTPUT -p tcp -o $DEV_INET1 -m state --state NEW \
# --dport 25 -j smtp_gate
$IPTABLES -A smtp_gate -j ACCEPT

# Pop3-Verbindungen vom Gateway nach aussen erlauben
$IPTABLES -N pop3_gate
$IPTABLES -A OUTPUT -p tcp -o $DEV_INET0 -m state --state NEW \
--dport 110 -j pop3_gate
$IPTABLES -A INPUT -p tcp -i $DEV_INET0 -m state --state NEW \
--dport 110 -j pop3_gate
#$IPTABLES -A OUTPUT -p tcp -o $DEV_INET1 -m state --state NEW \
# --dport 110 -j pop3_gate
$IPTABLES -A pop3_gate -j ACCEPT

#
# Abschluss-Regeln
#

# Alles Loggen, was bis jetzt durchgegangen ist. Sollte man sich genauer
# anschauen, wenn das im Log auftaucht
$IPTABLES -A INPUT -m limit -j LOG --log-prefix "FINAL IN "
$IPTABLES -A OUTPUT -m limit -j LOG --log-prefix "FINAL OUT "
$IPTABLES -A FORWARD -m limit -j LOG --log-prefix "FINAL FOR "

# Und dann alles abblocken, was bis hierin durchgegangen ist
$IPTABLES -A INPUT -j REJECT
$IPTABLES -A OUTPUT -j REJECT
$IPTABLES -A FORWARD -j REJECT

# Forwarding im Kernel nun wieder aktivieren
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp

# IP-Spoofing aktivieren - Sollte unter SuSE leichter in /etc/rc.config
# gesetzt werden, ansonsten hier aktivieren
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $f
done

:confused:

clumsy
19.11.03, 00:32
die Fehlermeldungen liegen so wie ich das kurz überflogen hab u.a. hier dran:



$IPTABLES -F -t filter
$IPTABLES -F -t nat
$IPTABLES -F -t mangle
$IPTABLES -t filter -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X


Du löscht/flushst :ugly: chains, die du schon kurz drüber gelöscht hast...deshalb jammert er, dass es die nich mehr gibt....

clumsy

aymiro
19.11.03, 08:37
Danke clumsy, die Fehlermeldungen steht immer noch da. Ich habe es , wie du gesagt hast,
$IPTABLES -F
$IPTABLES -X

$IPTABLES -F -t filter
$IPTABLES -F -t nat
$IPTABLES -F -t mangle
#$IPTABLES -t filter -X
#$IPTABLES -t nat -X
#$IPTABLES -t mangle -X

Ich habe es einmal untere drei zeile auskomentiert und einmal komplett die sechs zeile. Aber da ändert sich gar nichts.

:confused:

clumsy
19.11.03, 08:41
dann geh doch mal systematisch alle regeln durch....alles auskommentieren und dann nach und nach mehr einkommentieren...
oder besser...

öfter mal nen echo reinsetzen!

clumsy

aymiro
19.11.03, 12:42
ich habe es versucht systematisch zu auskommentieren.
- Scan-Packete: log and drop
- Blocke null packete
- Spoofed packets: log and drop
- ICMP handling, bis auf type 5 (redirect)

Am Ende bekomme ich nur noch drei Zeile "iptables: No chain/target....). Aber ich habe alles, was da oben gescrieben habe, auskommentiert. Und ich kann immer noch keine Verbindung ins Internet(port 80).

aymiro
19.11.03, 14:32
Ich wollte mich nur zurück melden weil ich es gefunden habe.
Also am Anfang war immer offen der Port 80. Ich habe nur ein kleines missverständnis gehabt.
Jetzt habe ich nur einzige Fehlermeldung "iptables: No chain/target....."
Wie gesagt, wenn ich von Skript einige Zeile auskommentiere, dann wurde wenige zeile vorgegeben.

Ich weiss es nicht wie ich das mache!!!

Hilfe bitte....:confused: