brauche Hilfe bei IPTABLES



  • Hallöle,
    ich habe folgendes Problem: Ich habe 2 Rechner mit jeweils 2 Netzwerkkarten, jeweils eine für's LAN (192,168,x.y) und die Andere jeweils für's WAN (Internet, beide Rechner mit fester IP Adresse). Auf Rechner A läuft Windows 2000 Server, auf Rechner B Linux (Redhat 8.0). Den Rechner B habe ich mittels IP-Tables so weit es geht gegen äussere Angriffe dicht gemacht, also die Default-Policy der INPUT-, OUTPUT- und FORWARD-Chain auf DROP gesetzt.
    Von einem weiteren Rechner C im Internet, ebenfalls mit fester IP Adresse, sollen beide Rechner administriert werden können. So habe ich z.B. auf dem Linux-Server (B) den SSH-Port auch nur für die IP-Adresse von C freigegeben.
    Der Windows-Server wird per Remote Desktop (RDP) administriert, allerdings gibt es hier Probleme, den Port für RDP ebenfalls nur für die IP-Adresse von Rechner C frei zu geben. Deshalb (aber auch, weil ich diese Lösung eh schöner finde) möchte ich nun mittels IPTABLES es so realisieren, dass ich für die Administration des Windows-Servers ebenfalls den Linux-Server kontaktiere, anstatt direkt den Windows-Server.
    Ich habe mir das so vorgestellt, dass der Linux-Server anfragen an den RDP-Port (weiss gerade nicht die Nummer, deshalb einfach mal Port X genannt) annimmt und über das LAN an den Windows-Server weiterleitet. Nun reicht es allerdings nicht aus, das IP-Paket einfach wieder auf der anderen Netzwerkkarte auszugeben, denn die originale Absender-IP-Adresse (Rechner C) im IP-Paket würde dazu führen, dass der Windows-Server die Antwort nicht an den Linux-Server über's LAN zurück schickt, sondern direkt auf der anderen Netzwerkkarte (WAN). Ok, ich gehe mal davon aus, dass selbst Windows so schlau ist und dies erst gar nicht probiert. Ist aber auch egal, so oder so funktioniert es nicht.
    Richtig wäre es, wenn der Linux-Server das Datenpaket an den Windows-Server mit SEINER LAN-Adresse als Absender schickt, und die Antwort-Pakete von Windows-Server mit seiner WAN-Adresse als Absender an den Rechner C schickt.

    Ich hoffe, dass ich das halbwegs verständlich beschrieben habe, ist nämlich eigentlich nicht so kompliziert.

    Kann mir da jemand helfen, ich habe nämlich kaum Ahnung von IPTABLES. Speziell die FORWARD-CHain habe ich trotz viel googeln nicht verstanden.

    Danke,
    Wishcmop



  • Da der Windowsrechner eine externes Gateway verwendet werden alle Packete mit externen IP-Adressen auch über dieses Gateway geleitet.
    Sollte jetzt eine Packet von Intern kommen und du hast nicht masquerade eingestellt dann kommen die Packete zwar zum Windows aber mit einer externen IP und somit leitet Windows die Antwort wieder über seine exteren Schnittstelle zu dir was nicht geht.
    Wenn du also von extern -> windows willst dannn musst du die Packete intern masquerieren sodaß sie die IP-Adresse der internen Schnittstelle des Linux bekommen.
    Grundsätzlich bringt dir das aber nichts da der Windows auch von außen per Remote ansprechbar ist außer du hast dies deaktiviert.
    Wenn du schon einen Linux hast warum hat der Windows dann überhaupt eine exterene IP. Lasse ihn doch in der DMZ und als Gateway den Linux.

    [ Dieser Beitrag wurde am 07.07.2003 um 06:52 Uhr von Unix-Tom editiert. ]



  • Tja, jetzt stehts hier nochmal mit anderen Worten. Hmmm, was soll ich sagen, genau das beschriebene Problem ist mir ja bekannt, aber ich bräuchte ein paar Zeilen Code, denn ich weiss eben nicht, wie ich dies hinbekommen kann.

    Original erstellt von Unix-Tom:
    Grundsätzlich bringt dir das aber nichts da der Windows auch von außen per Remote ansprechbar ist außer du hast dies deaktiviert.
    Wenn du schon einen Linux hast warum hat der Windows dann überhaupt eine exterene IP. Lasse ihn doch in der DMZ und als Gateway den Linux.
    editiert. ]

    Naja, ich wollte es nicht zu kompliziert machen, deshalb habe ich es einfach so erklärt, dass mir eine Antwort weiter geholfen hätte. Also, RDP kann jeder Zeit deaktiviert werden. Der Windows-Rechner hat nämlich gar nicht 2 Netzwerkkarten, sondern nur eine für's lokale Netz. Allerdings ist er trotzdem über eine externe IP-Adresse erreichbar, dies ist in Wirklichkeit eine 3Com-Firewall (da kann ich nur RDP ein/aus schalten), die soll es aber auch weiterhin bleiben, und eben kein Linux-Server (auch Linux hat zu Haufen Sicherheitslücken, die ich schon am eigenen Leib in Form von Root-Kits erfahren habe). Und das Gateway des Windows-Servers ist somit die 3Com Firewall.
    Aber dies ist alles egal und soll nichts zur Sache tun. Kennt sich denn keiner hier mit iptables aus? Falls doch, bitte erbarme Dich meiner und poste ein paar Zeilen bash-Code.

    Danke und Gruß,
    Wischmop





  • Super, Danke Dir! An dem Beispiel ist mir nun auch vieles mehr klar geworden. Werde mich da jetzt mal weiter durch wurschteln, um zum iptables-König zu werden 😉



  • Wenn du IPTABLES-König bist kannst ja dann mal etwas für die FAQ schreiben.


Anmelden zum Antworten