dextha
Goto Top

Router mit IPTABLES

Hallo,

ich möchte gerne mit einem Linux-Server (Ubuntu) einen kleinen Router machen.

Das ganze sieht so aus:

LINUX-Server (ROUTER) --------------------------------------------> Client
ppp0 (10.x.x.x) und eth0 (192.168.10.1) -----------> 192.168.10.2 (und 192.168.10.1 als Gateway)


Wie kann ich das mit IPTABLES am umsetzen? Gibt es ev. eine andere Lösung die ich auf dem Ubuntu-Server einsetzen kann?

LG. Dextha

Content-Key: 135739

Url: https://administrator.de/contentid/135739

Ausgedruckt am: 28.03.2024 um 14:03 Uhr

Mitglied: 45877
45877 11.02.2010 um 14:04:17 Uhr
Goto Top
Hallo,

was willst du genau machen, ein portforwarding oder nur routing für den client?

http://wiki.ubuntuusers.de/Router
Mitglied: datasearch
datasearch 11.02.2010 um 14:05:31 Uhr
Goto Top
IPTables fordert einiges an Erfahrung und kann manchmal, wenn man es DIREKT nutzt, sehr nervtötend sein. Um beispielweise HTTP von Intern nach Extern zu erlauben und die entsprechenden rücklaufenden Pakete durchzulassen, kannst du folgendes verwenden:

iptables -A FORWARD -i eth0 -o ppp0 -p tcp --sport 1024: --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth0 -p tcp --sport 80 --dport 1024: -m state --state ESTABLISHED -j ACCEPT

Und das ist NUR ein Protokoll. Dazu kommt, das es nicht wirklich geprüft wird ob da auch tatsächlich HTTP über Port80 läuft. Was hälst du von ipcop oder anderen reinen Firewall-Distributionen die dir das Leben einfacher machen? Oder du lernst IPTables von Grund auf.

Es gibt da auch noch Hilfsmittel und Scriptsammlungen die das erstellen der Regeln einfacher machen (bei suSE gibt es die SuSEFirewall2, die über Yast grafisch konfiguriert werden kann).
Mitglied: Dextha
Dextha 11.02.2010 um 14:12:05 Uhr
Goto Top
Ich möchte kein IPCop verwenden, da mein ppp0-Device ein UMTS-Modem ist, welches ich mit wvdial anspreche und so sehr gut funktioniert. Beim ipcop war das mit UMTS weit aufwendiger.... Grundsätzlich sollen ausgehend alle Ports offen sein und eingehend alles geschlossen.

Wie ist das dann beim Client? Welches Gateway muss ich da definieren? Ist das dann die IP von eth0 am Linux-Server?

LG. Dextha
Mitglied: SlainteMhath
SlainteMhath 11.02.2010 um 14:28:04 Uhr
Goto Top
Moin,

versuchs mal hiermit:

iptables -F
iptables -F -t net
iptables -t nat -A POSTROUTING -s 192.168.10.0/255.255.255.0  -o ppp0 -j MASQUERADE
iptables -P FORWARD ACCEPT
iptables -A INPUT -i ppp0 -j DROP

Zeile 1+2 löschen alle Regeln
Zeile 3 aktiviert Masquerading (=NAT)
Zeile 4 erlaubt alles nach draussen
Zeile 5 verbietet alle verbdinungen auf ppp0

ungetestet, verwendung auf eigene Gefahr face-smile

edit:
Wie ist das dann beim Client? Welches Gateway muss ich da definieren? Ist das dann die IP von eth0 am Linux-Server?
Ja, eth0 ist das gw des Clients.


lg,
Slainte
Mitglied: datasearch
datasearch 11.02.2010 um 14:57:10 Uhr
Goto Top
Wenn schon so, dann mindestens:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -F -t nat
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o lo -j ACCEPT
iptables -A FORWARD -i eth0 -o eth0 -j ACCEPT
iptables -A FORWARD -i lo -o lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -P FORWARD DROP
iptables -P INPUT DROP

Das ist aber immernoch löchrig wie ein Schweizer Käse und berücksichtigt keine Sonderprotokolle, MTU-Probleme und so weiter.
Mitglied: SlainteMhath
SlainteMhath 11.02.2010 um 15:03:49 Uhr
Goto Top
echo 1 > /proc/sys/net/ipv4/ip_forward
Ok, das hat bei mir gefehlt, stimmt face-smile

Das ist aber immernoch löchrig wie ein Schweizer Käse
von "sicher" stand auch nix in der anforderung face-smile
Mitglied: Dextha
Dextha 11.02.2010 um 15:14:22 Uhr
Goto Top
Irgend einen bug hab ich da jetzt noch drin.... funktioniert einfach nicht.... muss eth0 am Server auch ein Gatway eingetragen haben? Wenn ja - welches?
Mitglied: 45877
45877 11.02.2010 um 15:43:44 Uhr
Goto Top
warum machst du es nicht einfach wie in meinem link?
Mitglied: datasearch
datasearch 11.02.2010 um 17:37:12 Uhr
Goto Top
Huch, da steht ja alles face-wink

Eventuell auch mal hier schauen. Ist zwar für Gentoo, der IPTables Teil ist aber unabhängig von der Distri.
Mitglied: Dextha
Dextha 12.02.2010 um 16:57:50 Uhr
Goto Top
Habe jetzt nochmal alles neu gemacht - jetzt klappts.

Danke für eure Hilfe!!!

LG. Dextha