Internetverbindungsfreigabe mit iptables?

Viper

treuer Stammgast
Hallo,

ich habe folgendes Problem:
Mein PC ist an das Internet angeschlossen (über eth1) und mit meiner anderen Netzwerkkarte (eth0) bin ich mit einem zweiten PC verbunden. Wie kann ich meinen PC einrichten, damit der zweite PC über meinen PC ins Internet kann. Also sowas wie die Internetverbindungsfreigabe vom Windows. Habe gelesen, dass das mit iptables geht, doch wie?

in vielen Anleitungen, die ich bisher gefunden habe steht folgendes

modprobe ip_tables
Leider kann er dieses Modul nicht finden, aber ich kann es auch in der Kernelkonfiguration nicht finden. Was muss ich anschalten damit das Modul geladen werden kann?

iptables -t nat -a POSTROUTING -o ppp0 -j MASQUERADE
Das hier schlägt auch fehl, da mir nat fehlt, ist das ein Modul? Oder ist das in dem Modul ip_tables enthalten?

muss ich sonst noch befehle eingeben damit ich vom zweiten PC aus ins Internet kann?

folgende zwei Befehle hab ich noch irgendwo mal gefunden:

iptables -a FORWARD -i eth0 -j ACCEPT
Was bedeutet das?
Werden da alle Pakete, die über die Karte eth0 ankommen akzeptiert?

echo 1 > /proc/sys/net/ipv4/ip_forward
wozu ist der Befehl gut?

vielen dank leude :)
 
a) Distribution ?

>modprobe ip_tables
>Leider kann er dieses Modul nicht finden, aber ich kann es auch in der Kernelkonfiguration nicht finden.
>Was muss ich anschalten damit das Modul geladen werden kann?

>iptables -t nat -a POSTROUTING -o ppp0 -j MASQUERADE
>Das hier schlägt auch fehl, da mir nat fehlt, ist das ein Modul? Oder ist das in dem Modul ip_tables
>enthalten?

Möglicherweise ist in deinem Kernel die Funktion für das Firewalling abgeschaltet.

>muss ich sonst noch befehle eingeben damit ich vom zweiten PC aus ins Internet kann?

- Der Default-GW sollte auf deinen Linuxrechner zeigen
- An deinem Client sollte der Linuxrechner als DNS eingetragen sein
- Auf deinem Linuxrechner sollte ein kleiner DNS(caching-only DNS) eingerichtet sein der die DNS-Anfragen einfach nur weiterleitet

folgende zwei Befehle hab ich noch irgendwo mal gefunden:

> iptables -a FORWARD -i eth0 -j ACCEPT
> Was bedeutet das?
> Werden da alle Pakete, die über die Karte eth0 ankommen akzeptiert?

so ungefähr

> echo 1 > /proc/sys/net/ipv4/ip_forward
Das sagt dem Kernel das er Router sein soll(Pakete weiterleiten).

Hier steht das was Du willst.
http://www.xinux.de/docs/netfilter/NAT-HOWTO/

Der interessante Punkt für Dich ist NAT: 4.1
Folgende Zeile ist auf deine Bedürfnisse angepasst
Code:
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
 
ok danke

ich habe gentoo

Ich werd mal nachschauen ob ich die Firewalls vergessen habe. Welcher Punkt muss genau an sein?

Auf deinem Linuxrechner sollte ein kleiner DNS(caching-only DNS) eingerichtet sein der die DNS-Anfragen einfach nur weiterleitet

Wie richte ich sowas ein? Brauche ich dazu den DNS Server bind?

mfg viper
 
IPTABLES brauchst Du nicht, das sind nur Firewallfunktionen. Erst sollte der Rechner mal ohne Firewall routen. Hierzu müsste eigentlich nur die route.conf editiert werden in die Du Deine Netzwerkbereiche und die dazugehörigen Geräte einträgst.
 
> ich habe gentoo

Dann sollte ich wohl eher dich fragen wenn ich Probleme habe. :) Die Einstellung sind wohl irgendwo bei "Netzwerk"

> IPTABLES brauchst Du nicht, das sind nur Firewallfunktionen. Erst sollte der
> Rechner mal ohne Firewall routen. Hierzu müsste eigentlich nur die
> route.conf editiert werden in die Du Deine Netzwerkbereiche und die
> dazugehörigen Geräte einträgst.

Keine Ahnung was da jetzt _genau_ alles vonnöten ist, im Zweifelsfall einfach mal alles als Modul kompilieren. :) Routing alleine reicht für NAT(Masquerading) aber nicht aus. und wenn der Befehl für die Einrichtung von masquerading schon iptables heisst würde ich auch schwer vermuten das die Firewallmodule rein müssen.
 
Oben