Also ich hab mit suse 6.4 nen Masquerading-Router gebastelt (für das interne Netz). Wie kann ich einkommende Verbindungen an port X an einen bestimmten Rechner im Netz weiterleiten? Ist das richtige Wort dafür „Port-Forwarding“ (zwecks suche)?
mfg
Greenberet
*der gern mal wieder BZFlag spielen würde, aber nicht kann weils mit den clients eingehende udp-connections gibt…*
Also ich hab mit suse 6.4 nen Masquerading-Router gebastelt
(für das interne Netz). Wie kann ich einkommende Verbindungen
an port X an einen bestimmten Rechner im Netz weiterleiten?
An sich genauso, wie das in der anderen Richtung funktioniert. Allerdings hat das vermutlich SuSE für Dich erledigt.
Tja, um ein wenig Arbeit wirst Du nicht herumkommen. Fang mit http://www.linuxdoc.org/HOWTO/Firewall-HOWTO.html an und arbeite Dich von da aus weiter vor.
Ist das richtige Wort dafür „Port-Forwarding“ (zwecks suche)?
Das alles heißt entweder Masquerading, Network Address Translation oder Port Forwarding.
Hmm Also Suse hat das nicht für mich erledigt. Ich kann mir auch nicht vorstellen wie das „:An sich genauso, wie das in der anderen Richtung funktioniert.“ gemeint ist.
Also ich hab das so verstanden, das wenn ich auf wer-weiss-was surfe die rule
anspricht, der router so tut als wolle er auf wer-weiss-was port 80 und alle pakete die von dort kommen an den Rechner im Netz weiterleitet,von dem die Anfrage kam.
Wenn ich jetzt ne einkommende Verbindung habe und das Service nicht auf dem Router läuft, wie soll der Router wissen wohin er die Anforderung schicken soll, wenn ich ihm auch nur MASQ angebe? (Ist das „Ziel“ der Verbindungsaufforderung nicht der Router selbst?)
Also entweder habe ich was nicht verstanden oder ich hab nicht richtig gefragt.
ein verwirrter
Greenberet
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
anspricht, der router so tut als wolle er auf wer-weiss-was
port 80 und alle pakete die von dort kommen an den Rechner im
Netz weiterleitet,von dem die Anfrage kam.
Kann sein. Ich schlage einen anderen Weg vor: Du maskierst alle Ports von allen Adressen und kümmerst Dich in den beiden anderen Queues darum, ob Dir jemand ohne Erlaubnis an die Daten will.
Ich bin allerdings kein Experte auf dem Gebiet.
Wenn ich jetzt ne einkommende Verbindung habe und das Service
nicht auf dem Router läuft, wie soll der Router wissen wohin
er die Anforderung schicken soll, wenn ich ihm auch nur MASQ
angebe? (Ist das „Ziel“ der Verbindungsaufforderung nicht der
Router selbst?)
Das wäre dann ein transparenter Proxy: Dre Router ist der Adressat, schickt die Pakete aber ohne Wissen des Absenders an einen anderen Host.
Also mit ipchains nicht lösbar? ( das mit der input und output chain hab ich nicht gemacht weil ich da nicht genau weiß an welchem interface er die rules wertet (oder ob er die rule für beide wertet auch wenn ich ihm -i… angebe))
Gibts da irgendwelche Bordmittel oder brauch i ein extra Programm? Wenn ich ein extra Programm brauche, gibts da eines das NUR den beschriebenen Zweck hat? (also nur eingehende Verbindungen an Port X nach Tabelle an einen Rechner im Netz weiterleiten( also Port80 an 192.168.1.3 und Port4783 an 192.168.1.7 und…))
Alles was vom lokalen netz anfrägt >1024 auf port80(http) prot TCP soll auf port 8080 umgeleitet werden
Die IP bleibt dabei gleich
Auf port 8080 lauert der gemeine Kopffüssler (squid) und schafft dann eine verbindung ins Internet über Die ISDN? Karte
( das mit der input und output chain hab ich nicht gemacht
weil ich da nicht genau weiß an welchem interface er die
rules wertet (oder ob er die rule für beide wertet auch wenn
ich ihm -i… angebe))
ipchains sind nicht gerade intuitiv bedienbar. Kannst Du auf en neuen Kernel wechseln? Das neue Portmanipulationstool soll ja doch freundlicher sein.
Macht Masquarading aus A.B.C.D:XX -> D.E.F.G:XX
Macht PortForwarding aus A.B.C.D:XX -> A.B.C.D:YY
Macht NAT beides zusammen also das was du brauchst ?
Ipchains kann das alles, das ist prinzipiell auch nicht schwierig. Du mußt eben nur in die Datagramme schauen und evtl. etwas ändern.
Die Frage bleibt, wieviele Regeln man verwalten kann, ohne die Übersicht zu verlieren.
wenn ich möchte das alle anfragen an port 5510 auf den rechner 192.168.1.5 umgeleitet werden? (was müsste dort eigentlich statt 0/0 stehen damit die (dynamische) Ip des Routers eingesetzt wird (er ist ja das ziel) localhost?) und was muss ich angeben damit die packete die wieder zum anfragenden rauswollen ankommen?
ipchains sind nicht gerade intuitiv bedienbar. Kannst Du auf
en neuen Kernel wechseln? Das neue Portmanipulationstool soll
ja doch freundlicher sein.
Wenn ich schon zu dumm bin ein paar Regeln für ipchains
vernünftig aufzusetzen, wie soll ich dann einen neuen Kernel
kompiliern??
Das halte ich für deutlich einfacher. Beim Kernelbacken gibt es ein paar einfache Vorsichtsmaßnahmen, die einem vor Unheil bewahren. Wenn man die beachtet, kann man rumprobieren, bis es paßt. Außerdem ist die Bedienung sehr einfach, praktisch nur boolsche Variablen.
Bei der Konfiguration einer Firewall muß man sehr viel mehr im Hinterkopf haben, weil das Ziel sehr verschwommen ist.
Also: Schnapp die die neuesten Quellen, die Kernel-Back-Howto und versuch’s mal.
Ipchains kann das alles, das ist prinzipiell auch nicht
schwierig. Du mußt eben nur in die Datagramme schauen und
evtl. etwas ändern.
Das NAT nicht mit ipchains klappt hab ich in der CT gelesen
Das müßtest Du schon genauer zitieren. IP-Masquerading habe ich selbst schon gemacht, über Port-Forwarding in diesem Zusammenahng in einer Anleitung gelesen.
Das wird eine IT-typische Begriffsverwirrung sein als ein technisches Problem.
Nö glaub ich nicht
REDIRECT setzt ports um aber leider bleibt die IP bestehen
MASQ maskiert IP Adressen hier bleibt der port bestehn
Und du probierst hier beides auf einmal und das in der forward Regelliste
*schwere bedenken ob das so funktioniert*
wenn ich möchte das alle anfragen an port 5510 auf den rechner
192.168.1.5 umgeleitet werden? (was müsste dort eigentlich
statt 0/0 stehen damit die (dynamische) Ip des Routers
eingesetzt wird (er ist ja das ziel) localhost?) und was muss
ich angeben damit die packete die wieder zum anfragenden
rauswollen ankommen?
Für A bietet sich die --dport oder --sport regel an
Hierbei ist die IP Adresse egal es kommt nur auf den port an
Das maskiert alle Anfragen von 192.168.55.1 mit port 5510 auf die erhaltene dyn IP des PTP Partners
macht schon sinn aber port 5510 ??? *wunder*
zumindest in /etc/services ist da nicht verzeichnet
oder is masq nir für verbindungsaufforderungen?
doch geht schon
allerdings must du bei dyn IP vergabe die IN und Out Rulez dann in dem IP_UP setzten
sofern sich die Notwendigkeit der Regeln ergibt
zB wenn die - in oder out Regelliste mit DENY voreingestellt ist
Das ist bei allen Firewalls die auf ipchains aufbauen so eingestellt
Aber mal andersrum gefragt was willt du eigentlich machen ???
Aber mal andersrum gefragt was willt du eigentlich machen ???
Phagsae
hmm³
Der Port war übrigens frei gewählt
Naja ein Beispiel was ich machen möchte:
Ich will Server für ein netzwerkspiel (nehmen wir mal BZFlag) sein. Der Server soll jedoch im internen Netz laufen (jetzt nicht sagen ich soll ihn auf dem Router laufen lassn und vom internen Netz dorthin connecten weil es gibt ja Fälle wo das nicht möglich ist)
wenn die dämliche Kiste (sorry) nicht zwischen mir und dem Internet wäre (oder ich mehrere IP-Adressen zur verfügunng hätte) würde, nachdem ich den Server im Netz gestartet habe, jeder connecten können.
Wenn jetzt aber jemand zu meiner IP fürs Internet connected (aus dem Internet), dann sendet er sein SYN-packet an den Router, der glaubt das es für ihn bestimmt ist und wiederum kein ACK zurückschickt weil das Service auf dem Router ja nicht läuft.
Wie kann ich jetzt dem Router sagen das er einkommende SYN-Packete von BzFlagfreaks (von internetIP:5155), an den Rechner 192.168.1.5:5155 im internen Netz weiterleitet und danach das von 192.168.1.5 kommende Ack-Packet (und natürlich auch den nachfolgenden Packetverkehr zwischen den beiden Rechnern) durchlässt.
Greenberet *der nachdenkt ob er nicht doch irgendne schrott-win-proxy-lösung machn soll*