Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

IPTABLEs - Problem

Alles rund um das Internet, Internet-Anwendungen (E-Mail, Surfen, Cloud usw.) und das Einrichten von Netzwerken einschl. VPN unter Linux

Moderator: Moderatoren

Antworten
Huflatisch
Hacker
Hacker
Beiträge: 543
Registriert: 5. Apr 2004, 22:40

IPTABLEs - Problem

Beitrag von Huflatisch »

Hey

Ich bräuchte mal einen Denkanstoss

Linux 9.0 mit zwei Netzwerkkarten
eth0 --> internes Netz 192.168....
eth1 --> zum DSL Modem
ppp0 --> DSL Einwahl

folgende Iptables sind vorh.

Code: Alles auswählen

iptables -P INPUT DROP 
iptables -P FORWARD DROP 
iptables -P OUTPUT DROP 

echo 1 > /proc/sys/net/ipv4/ip_forward 
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.2.0/24 -j MASQUERADE 
iptables -A FORWARD -o ppp0 -p TCP --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu 

iptables -A FORWARD -i eth1 -j ACCEPT 
iptables -A FORWARD -i ppp0 -j ACCEPT 

Ich will über den Router nur Weiterleiten. Es funktioniert nur wenn ich Input und Output als ACCEPT setze. Wiso ? Sie Forwardregel greift doch eigendlich bevor die Inputregel zu Anwendung kommt.

Wo ist mein Denkfehler ?

By Huflatisch
lorenz
Newbie
Newbie
Beiträge: 4
Registriert: 20. Dez 2004, 20:21

Beitrag von lorenz »

laut deiner beschreibung ist eth0 das interne netz!
eth1 spielt keine rolle da dort das dsl-modem hängt-> ppp0
das postrouting gehört ganz nach unten
also (ist schon klar das dies keine firewall sondern eher ein scherz ist?!):

--schnip>
iptables -A FORWARD -i eth0 -j ACCEPT
iptables -A FORWARD -i ppp0 -j ACCEPT

iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.2.0/24 -j MASQUERADE
--schnap<
-- das ganze leben ist ein quiz --
Huflatisch
Hacker
Hacker
Beiträge: 543
Registriert: 5. Apr 2004, 22:40

Beitrag von Huflatisch »

Hey

Danke für deine Antwort
also (ist schon klar das dies keine firewall sondern eher ein scherz ist?!):
Mir schon klar - ich will das erst mal von der Grundlage her verstehen :wink:
eth1 spielt keine rolle da dort das dsl-modem hängt-> ppp0
Dann könnte ich wohl auch

iptables -A FORWARD -i eth0 -j ACCEPT
iptables -A FORWARD -i eth1 -j ACCEPT

schreiben, wenn eth1 und ppp0 dieselbe "Schnittstelle" ist

... aber es geht trotzdem nicht.
Da fällt mir ein das der Router gleichzeitig der DNS Server fürs interne Netz ist (bind9). Ist es demzufolge notwendig das diese Anfragen noch erlaubt werden müssen ( Standart Rule ist ja drop).
... alos in Prinzip das IN und OUTPUT auf der Internen und der externen eth über Port 53 ???

By Huflatisch
lorenz
Newbie
Newbie
Beiträge: 4
Registriert: 20. Dez 2004, 20:21

Beitrag von lorenz »

ok... grundlagenforschung ist was anderes :wink:
ppp0 benutzt das eth1 device => das ausgehende device ist ppp0 (eth1 geht nicht!)

bei der verwendung des routers als dns muss port 53 input und output erlaubt sein (da dein dns seine informationen ja irgendwoher beziehen muss). aus dem forward kannst du dann die 53 (in deinem noch zu erstellenden regelsatz :wink: ) rausschmeissen.

du kannst die verbindung aber trotzdem testen, in dem du einen ping auf eine externe ip-adr. absetzt z.b. 195.135.20.3 (www.suse.de)

aber:
der router selbst geht bei ausgeschalteter firewall online?
vielleicht solltest du erstmal den router (ohne dns) an`s laufen bringen und dich dann um den bind kümmern?
-- das ganze leben ist ein quiz --
Benutzeravatar
Martin Breidenbach
Ultimate Guru
Ultimate Guru
Beiträge: 5632
Registriert: 26. Mai 2004, 21:33
Wohnort: N 50.17599° E 8.73367°

Beitrag von Martin Breidenbach »

Da wäre erstmal zu klären was die iptables Regeln denn nun genau filtern sollen.

Wenn man Pakete rausläßt sollte man die Antwortpakete auch reinlassen ;)

Das kann man z.B. mit einer Regel machen die ESTABLISHED und RELATED Verbindungen durchläßt.
Nicht Böse sein ! Der Onkel macht doch nur Spaß !
Huflatisch
Hacker
Hacker
Beiträge: 543
Registriert: 5. Apr 2004, 22:40

Beitrag von Huflatisch »

Hey

Danke für die Hilfe,
Mein Hauptproblem war das ich über die eth1 gestolpert bin und die immer wieder mit verregeln wollte. Und dann , wie immer das übliche --> Schreibfehler, wo sich iptables nicht aufgeregt hat.

Ich habe es jetzt mal so gemacht
IF_EXT="eth1"
IF_INT="eth0"
IF_PPP="ppp0"
LOCAL_NET="192.168.9.0/24"
PORTS_HIGH="1024:65535" #nutzt DNS, http um Verbindungen aufzubauen
IPTABLES="/usr/sbin/iptables"

$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP

#Löschen aller Regeln
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X

#bestehende Verbindungen beibehalten, sonst hat sich mein ssh verabschiedet :-)
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#Lokale Prozesse auf dem Rechner akzeptieren
$IPTABLES -A OUTPUT -o lo -j ACCEPT
$IPTABLES -A INPUT -i lo -j ACCEPT

#Verbindungen vom und zum Router ins lokale Netz erlauben (incl. DNS, SSH ,also alle Ports)
$IPTABLES -A INPUT -i $IF_INT -s $LOCAL_NET -j ACCEPT
$IPTABLES -A OUTPUT -o $IF_INT -d $LOCAL_NET -j ACCEPT

#DNS Forwarden, rauszu incl. neuer Verbindungen, reinzu nur Verbindungen erlauben welche vom Router aufgebaut wurden
$IPTABLES -A FORWARD -i $IF_INT -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport $PORTS_HIGH --dport 53 -j ACCEPT
$IPTABLES -A FORWARD -i $IF_PPP -m state --state ESTABLISHED,RELATED -p UDP --sport 53 --dport $PORTS_HIGH -j ACCEPT

#http Verbindungen erlauben, analog DNS
$IPTABLES -A FORWARD -i $IF_INT -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport $PORTS_HIGH --dport 80 -j ACCEPT
$IPTABLES -A FORWARD -i $IF_PPP -m state --state ESTABLISHED,RELATED -p TCP --sport 80 --dport $PORTS_HIGH -j ACCEPT

#IP-Forwarding und DNAT einschalten, MTU
$IPTABLES -t nat -A POSTROUTING -o $IF_PPP -s $LOCAL_NET -j MASQUERADE
$IPTABLES -A FORWARD -o IF_PPP -p TCP --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
- vom router zu extern geht nichts
- von extern zum Router geht auch nix
- vom internen Netz zum Router geht alles
- vom Router zum internen Netz geht alles
- vom internen Netz zu extern geht nur DNS und http (kein pop, kein ssh, kein ping etc,)

seh ich das so richtig ???

By Huflatisch
der router selbst geht bei ausgeschalteter firewall online?
Das firewallscript kann doch schon beim booten mit geladen werden, oder im ip-up (so wie ich mit dyn dns gemacht habe)
Antworten