Heim > Artikel > Betrieb und Instandhaltung > So analysieren Sie die Wiederverwendung von Haproxy-Ports
Autor dieses Artikels: Spark (Mitglied des Intranet-Sicherheitsteams Ms08067)
Haproxy ist eine leistungsstarke Lastausgleichs-Proxy-Software, die in C-Sprache entwickelt wurde und TCP- und HTTP-Anwendungs-Proxy kostenlos und schnell bereitstellt und zuverlässig.
Ähnlich wie frp kann es mit einer Konfigurationsdatei + einem Server ausgeführt werden.
Vorteile:
Weit verbreitet in großen Geschäftsfeldern
Unterstützt Vierschicht-Proxy (Transportschicht) und Siebenschicht-Proxy (Anwendungsschicht)
Unterstützt ACL (Zugriffskontrollliste) und kann Routing flexibel konfigurieren
Windows-kompiliert mit cygwin Runnable (plattformübergreifend)
Access Control Lists (ACL) sind Listen von Anweisungen, die auf Router-Schnittstellen angewendet werden. Diese Anweisungslisten werden verwendet, um dem Router mitzuteilen, welche Datenpakete akzeptiert werden können und welche Datenpakete abgelehnt werden müssen.
Offizielles Konfigurationshandbuch: https://cbonte.github.io/haproxy-dconv/2.2/configuration.html
Die Konfigurationsdatei besteht aus globaler Konfiguration und Proxy-Konfiguration:
Global Konfiguration (global): Definieren Sie Parameter im Zusammenhang mit der Sicherheit und Leistung des Haproxy-Prozessmanagements
Proxy-Einstellungen (Proxys):
Beispiel:Standards: Geben Sie Standardparameter für andere Konfigurationsabschnitte an. Die Standardkonfigurationsparameter können durch die nächsten „Standardeinstellungen“ zurückgesetzt werden
Frontend: Definieren Sie eine Reihe von Listening-Sockets. Diese Sockets können Client-Anfragen annehmen und Verbindungen mit ihnen herstellen. Backend: Definieren Sie „Backend“-Server. Der Front-End-Proxyserver sendet kurzfristige Anfragen an diese Server. listen: Definieren Sie den Listening-Socket und den Backend-Server, ähnlich wie beim Zusammenfügen der Frontend- und Backend-Segmente.
global defaults log global mode tcp option dontlognull timeout connect 5000 timeout client 50000 timeout server 50000 frontend main mode tcp bind *:8888 option forwardfor except 127.0.0.1 option forwardfor header X‐Real‐IP # 配置acl规则 acl is‐proxy‐now urlp_reg(proxy) ^(http|https|socks5)$ # 分发到对应的backend use_backend socks5 if is‐proxy‐now use_backend http backend socks5 mode tcp timeout server 1h server ss 127.0.0.1:50000 backend http mode tcp server http 127.0.0.1:80Konzentrieren Sie sich auf Frontend und Backend.
Sie müssen ACL-Regeln schreiben und die Weiterleitung im Frontend konfigurieren. Wenn beispielsweise HTTP-Verkehr eingeht, wird er an den Webdienst weitergeleitet; wenn RDP-Verkehr eingeht, wird er an den RDP-Dienst weitergeleitet.
Spezifische Vorgänge müssen im Backend geschrieben werden, die auf welches Ziel und welchen Port übertragen werden sollen.
Erfassen Sie TPKT-Informationen (Application Layer Data Transfer Protocol) über Wireshark. Schreiben Sie ein ACL-Regelrouting für die Verkehrsverteilung. Backend-Server hinzufügen.Übernahme der ursprünglichen Schnittstelle Abgeschlossen
Nach dem Drei-Wege-Handshake beginnt die Datenübertragung auf Anwendungsebene.
Verwenden Sie Wireshark, um Pakete zu erfassen:
SSH-Protokoll:
rdp-Protokoll: 030000
Schnellcheck:
TPKT | |
---|---|
535348 | |
030000 | |
474554 | |
504f53 | |
505554 | |
44454c | |
4f5054 | |
484541 | |
434f4e | |
545241 | |
160301 |
Das obige ist der detaillierte Inhalt vonSo analysieren Sie die Wiederverwendung von Haproxy-Ports. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!