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
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
10 Antworten
- LÖSUNG 45877 schreibt am 11.02.2010 um 14:04:17 Uhr
- LÖSUNG datasearch schreibt am 11.02.2010 um 14:05:31 Uhr
- LÖSUNG Dextha schreibt am 11.02.2010 um 14:12:05 Uhr
- LÖSUNG SlainteMhath schreibt am 11.02.2010 um 14:28:04 Uhr
- LÖSUNG datasearch schreibt am 11.02.2010 um 14:57:10 Uhr
- LÖSUNG SlainteMhath schreibt am 11.02.2010 um 15:03:49 Uhr
- LÖSUNG Dextha schreibt am 11.02.2010 um 15:14:22 Uhr
- LÖSUNG 45877 schreibt am 11.02.2010 um 15:43:44 Uhr
- LÖSUNG datasearch schreibt am 11.02.2010 um 17:37:12 Uhr
- LÖSUNG Dextha schreibt am 12.02.2010 um 16:57:50 Uhr
- LÖSUNG datasearch schreibt am 11.02.2010 um 17:37:12 Uhr
- LÖSUNG 45877 schreibt am 11.02.2010 um 15:43:44 Uhr
- LÖSUNG Dextha schreibt am 11.02.2010 um 15:14:22 Uhr
- LÖSUNG SlainteMhath schreibt am 11.02.2010 um 15:03:49 Uhr
- LÖSUNG datasearch schreibt am 11.02.2010 um 14:57:10 Uhr
- LÖSUNG SlainteMhath schreibt am 11.02.2010 um 14:28:04 Uhr
- LÖSUNG Dextha schreibt am 11.02.2010 um 14:12:05 Uhr
LÖSUNG 11.02.2010 um 14:04 Uhr
Hallo,
was willst du genau machen, ein portforwarding oder nur routing für den client?
http://wiki.ubuntuusers.de/Router
was willst du genau machen, ein portforwarding oder nur routing für den client?
http://wiki.ubuntuusers.de/Router
LÖSUNG 11.02.2010 um 14:05 Uhr
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:
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).
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
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).
LÖSUNG 11.02.2010 um 14:12 Uhr
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
Wie ist das dann beim Client? Welches Gateway muss ich da definieren? Ist das dann die IP von eth0 am Linux-Server?
LG. Dextha
LÖSUNG 11.02.2010 um 14:28 Uhr
Moin,
versuchs mal hiermit:
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
edit:
lg,
Slainte
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 3 aktiviert Masquerading (=NAT)
Zeile 4 erlaubt alles nach draussen
Zeile 5 verbietet alle verbdinungen auf ppp0
ungetestet, verwendung auf eigene Gefahr
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
LÖSUNG 11.02.2010 um 14:57 Uhr
Wenn schon so, dann mindestens:
Das ist aber immernoch löchrig wie ein Schweizer Käse und berücksichtigt keine Sonderprotokolle, MTU-Probleme und so weiter.
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
LÖSUNG 11.02.2010 um 15:03 Uhr
LÖSUNG 11.02.2010 um 15:14 Uhr
LÖSUNG 11.02.2010 um 17:37 Uhr
Huch, da steht ja alles 
Eventuell auch mal hier schauen. Ist zwar für Gentoo, der IPTables Teil ist aber unabhängig von der Distri.
Eventuell auch mal hier schauen. Ist zwar für Gentoo, der IPTables Teil ist aber unabhängig von der Distri.
LÖSUNG 12.02.2010 um 16:57 Uhr