Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Reverse Proxy - iptables - Packetfilter? Anbei ein kurzes Schema + Erklärung

post-86876-1443044989448_thumb.png

Erklärung:

1. Client --> SOLL-Kommunikation mit ReverseProxy auf Port X, Port Y und Port Z

2. Unix ReverseProxy --> Umleitung & Prüfung der Clientkommunikation

3. IPTables --> Prüfung der Clientkommunikation ob wirklich über Port X, Port Y und Port Z (und verwerfen aller Anfragen die nicht über Port X,Y oder Z erfolgen

4. Packetfilter --> Filtern der Datenpackets die über Port X,Y,Z erfolgen (inkl. Limitierung? Falls möglich?)

5. Application-Server --> erhält nun die überprüften Daten des Unix ReverseProxys.

Was ich darüber wissen möchte:

- Gibt es überhaupt die Möglichkeiten den Datentraffic derart Umzuleiten und zu prüfen oder ist sowas generell nicht möglich? (vorallem die Limitierung von Packets?)

- gibt es vordefinierte Unix Distributionen die sowas bieten können?

- gibt es jemanden der sowas schon Mal in ähnlicher Weise konfiguriert hat?

  • Autor

Okay, kann der PFSense genau das, was ich vorhabe?

Client -> "proxy um reale IP des servers zu vertuschen" -> iptable um nur spezifische ports weiterzuleiten -> paketfilter

Kommt er auch vielen vielen gleichzeitigen Verbindungen klar?

Sehr undurchsichtig wie das alles angegeben ist, und ein haufen Zeit zu investieren ohne vorher zu wissen, ob die Funktionen zur Verfügung stehen.

Kannst du vielleicht mal mit normalen Sätzen erklären, was du eigentlich willst oder muss man Autist sein, um dich zu verstehen?

erster Begriff -> zweiter Begriff -> Dritter Begriff ergibt keinen Sinn, auch wenn alles englische Wörter sind.

  • Autor

Also bin meinem Ziel schon verdammt nahe. Will mit IPtables eine Art Proxy verwirklichen.

Dieser kann und soll nur auf bestimmten Ports weiterleiten.

Und den Usern ist nur die IP des Unix Proxys bekannt.

Also alle Anfragen gehen an den unix Server dieser leitet dann den eingehenden Traffic auf Port X an die öffentliche IP: 5.5.5.5 weiter.

Habe momentan folgende Einstellungen:

# um den Server für Ping verfügbar zu machen

iptables -A INPUT -p icmp -j ACCEPT


# soll den eingehenden Traffic an die spezifische Zieladresse senden

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 5.5.5.15:80

iptables -t nat -A POSTROUTING -p tcp -d 4.4.4.4 --dport 80 -j SNAT --to-source 5.5.5.5

Aber es wird nichts weitergeleitet... Bin ratlos.

Eventuell kann man hier statt einer IPTables-Umleitung einfach den Stone-Proxy einsetzen (ein kleiner Open Source Proxy-Server, der auf einem TCP-Port lauscht, um sich bei einer eingehenden Verbindung mit einem anderen Server zu verbinden und die Ein- und Ausgabe durchschleift).

Ansonsten leitet man per DNAT-Anweisung zwar Pakete an ein anderes Ziel um, die Absender-Adresse bleibt aber erhalten und der Ziel-Server addressiert seine Pakete prinzipiell auch an Diese. D.h. die Quell-IP muss für den Ziel-Server trotz Umleitung prinzipiell irgendwie erreichbar sein. Das regelt deine zweite iptables-Zeile so nicht. Aber es ist auch eine knifflige Sache. Mit 'stone' geht es einfacher.

Willst du IPtables nutzen, musst du als Kriterium nehmen: Verkehr kommt von der Server-IP und vom Quellport 80. Wenn dies der Fall ist, muss die Quell-IP durch die Firewall-IP ersetzt werden. Oder du richtest ein generelles NAT für den vom Server ausgehenden Datenverkehr ein. Ist aber knifflig. Stone nutzen ist einfacher.

Ubuntu Manpage: stone - a simple TCP/IP packet repeater

  • Autor

Habe jetzt eine fast gute Lösung.

Das einzige was jetzt falsch ist, dass jetzt in meiner Anwendung auf dem richtigen Server immer die IP des Proxy steht. Hab rausgefunden das es am Masquerading liegt, finde aber keine Lösung wie mans ohne Masquerading schaffen kann...

iptables -t nat -A PREROUTING -p tcp --dport 21 -j DNAT --to-destination 1.3.39.179:21

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 1.3.39.179:80

iptables -t nat -A POSTROUTING -j MASQUERADE

Bearbeitet von tschulian

Es ist vollkommen richtig, dass man hier Masquerading einrichten muss. Der eigentliche Server versieht die Antwort-Pakete schließlich mit seiner eigenen Absender-IP und die Firewall muss Diese durch ihre Eigene dann ersetzen, da der Client ja eigentlich die IP der Firewall adressiert. Man kann aber die POSTROUTING-Regel anhand von Kriterien so erweitern, dass das Masquerading nur bei diesen Verbindungen Anwendung findet - d.h. die Regel nach Bedarf nach IP, Port und Interface anhand von weiteren Kriterien einschränken.

  • Autor

Okay ich hab jetzt was rausgefunden nach ca 12 Stunden durchgehend probieren. Die iptables dienen zu aller erst als Filter alles was durch diese kommt wird / soll per haproxy an meinen applicationserver weitergeleitet werden

Das heißt: mein 3zeiler ist garnicht verkehrt aber in meinem Fall nutzlos, da ich ja die IP der User sehen muss am Ende. Werde heute mal versuchen den haproxy zu konfigurieren

Bearbeitet von tschulian

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.