PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie Masquerading für einen bestimmten Rechner im Netz?›



hiTCH-HiKER
22.05.04, 14:57
Ich will für einen internen Rechner (IP z.B. 192.168.0.3) das Internet
auf meinem Linux Server (IP 192.168.0.2) über Masquerading komplett
freischalten, während alle anderen Rechner nicht aufs Netz zugreifen
sollen (bzw. nur über meinen Squid auf dem Linux Server).
Wie mache ich das am Besten (iptables ist vorhanden)?

Kernel-Error
22.05.04, 20:56
Hi!

Das sollte so ca. funzen. Habe es aber nicht ausprobiert!
ippp0 ist dein externes dev
eth0 ist deine nic vom "router 192.168.0.2"

# erst mal sauber machen!
iptables -F

# Loopback-Netzwerk-Kommunikation zulassen
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Default-Policies setzten
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P INPUT ACCEPT # Da solltest dir aber was für überlegen!

# Routing :)
echo 1 > /proc/sys/net/ipv4/ip_forward 2> /dev/null

# Nur der Rechner mit IP 192.168.0.3 darf raus...
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.3 -j MASQUERADE

# Der rest soll aufn Proxy port 3128
iptables -t nat -A POSTROUTING -i eth0 -s ! 192.168.0.3 -p tcp --dport -80 -j REDIRECT --to-port 3128

# alles andere fällt runter
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j DROP

# mal schauen!
echo "Tabelle filter"
iptables -L -vn

Grüße


:ugly: Kernel-Error :ugly:

hiTCH-HiKER
22.05.04, 22:01
danke werde ich mal testen :)

usr
23.05.04, 01:51
Das wird so nicht funktionieren, weil die FORWARD chain als default policy ACCEPT gesetzt hat. Ich würde alle chains (INPUT, OUTPUT und FORWARD) mit DROP bzw. REJECT als default policy verstehen, und einzelne Rechner via IP bzw. Mac freischalten.

klemens
23.05.04, 01:59
Das wird so nicht funktionieren, weil die FORWARD chain als default policy ACCEPT gesetzt hat. Ich würde alle chains (INPUT, OUTPUT und FORWARD) mit DROP bzw. REJECT als default policy verstehen, und einzelne Rechner via IP bzw. Mac freischalten.

iptables -t nat -A POSTROUTING -i eth0 -s ! 192.168.0.3 -p tcp --dport -80 -j REDIRECT --to-port 3128

-- das geht auch mit -P ACCEPT!

Wenn allerdings jemand im Netz ist, der ein wenig geschickt ist, wird das sowieso mühsam. Der weist sich die entsprechende IP oder MAC zu ...

the_isz
23.05.04, 20:03
Äh, hi erstmal!

Sorry, dass ich mich hier einfach so einklinke, aber ich habe auch vor, ip masquerading zu benutzen, um einem anderen Rechner in meinem LAN Zugang zum Internet zu gewähren.

Allerdings habe ich da so meine Probleme... iptables sagt mir ständig, dass ich angeblich keine iptable habe, dabei habe ich ip_table support fest in den Kernel compiliert...



root@Discworld:~# iptables -t filter -L
FATAL: Module ip_tables not found.
iptables v1.2.9: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.


Hat jemand ne Ahnung, was da schief gelaufen ist?

Danke schonmal und sorry nochmal, wollt aber nicht gerade nen neuen Thread aufmachen.

Greetz,

Timo

P.S.: Hab schon mal im debianforum nen thread aufgemacht, hab aber noch überhaupt keine nutzbaren Tipps bekommen. Wer sich den Thread mal ansehen will (z.B. wegen genauerer Beschreibung):

http://www.debianforum.de/forum/viewtopic.php?p=148273#148273

klemens
23.05.04, 20:55
Das FATAL kommt vielleicht daher, dass Du fest in den Kernel einkompiliert hast. Eventuell versucht iptables einfach as Modul zu laden -- kann ja sein.

Ansonsten sind einfach die Befehle falsch! - wo hast die denn her?

Tipp einfach einmal ein
iptables -L
in die Konsole

Dann
iptables -t nat -L

Kernel-Error
23.05.04, 21:39
Hi!

@the_isz

Mache als Root mal folgendes:

modprobe ip_tables

Dann ist vielleicht noch interessant welchen Kernel du nutzt. Bei einem
Kernel unter 2.4 also 2.2 usw. löpt iptables erst mal net. Dann solltest mal ipchains versuchen.

Grüße


:ugly: Kernel-Error :ugly:

the_isz
23.05.04, 22:29
Hi Ihr!

Also der Befehl iptables -t filter -L hab ich direkt aus der manpage von iptables. iptables -L sagt aber auch nix anderes:



iptables -L
FATAL: Module ip_tables not found.
iptables v1.2.9: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.


modprobe is natürlich nich, da ich iptables ja fest eincompiliert habe. Den Fehler, den iptables da ausspuckt könnte ich mir noch erklären, falls iptables komplett auf dem Modul basieren sollte. Aber dann sollte ich ja doch trotzdem eine iptable haben und z.B. ipmasq benutzen können, oder nicht?



ipmasq
FATAL: Module ip_tables not found.
iptables v1.2.9: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.


Ach so, und ich nutze den Kernel 2.6.6...

Weitere Tipps?

Greetz,

Timo

P.S.: Ich hab da noch so ein doofes Problem:

apt-get und web-browsing sind ultralahm, es sei denn ich mache im Hintergrund ständig einen ping (thx @ google.de :) ). Hatte das schon einmal jemand von Euch?

the_isz
25.05.04, 11:13
Das Problem mit den iptables hab ich in den Griff bekommen. Hatte wohl nicht alle noetigen Optionen mit in den Kernel compiliert.

Das Problem mit der langsamen Verbindung (ausser bei ping im Hintergrund) besteht jedoch weiter. Wer also Rat hat, soll mich doch bitte gluecklich machen :ugly:

Timo