Comment analyser la réutilisation du port Haproxy
Auteur de cet article : Spark (membre de l'équipe de sécurité intranet Ms08067)
1. Présentation
#🎜 🎜 #Haproxy est un logiciel proxy d'équilibrage de charge haute performance développé en langage C. Il fournit un proxy d'application TCP et http, gratuit, rapide et fiable.Similaire à frp, il peut être exécuté à l'aide d'un fichier de configuration + d'un serveur.
Avantages :
Largement utilisé dans les grands domaines d'activitéPrend en charge le proxy à quatre couches (couche de transport) et le proxy à sept couches (couche d'application) #🎜🎜 #Prend en charge acl (liste de contrôle d'accès) et peut configurer le routage de manière flexible
windows peut être exécuté après la compilation avec cygwin (peut être multiplateforme)
#🎜🎜 #Les listes de contrôle d'accès (ACL) sont des listes d'instructions appliquées aux interfaces du routeur. Ces listes d'instructions sont utilisées pour indiquer au routeur quels paquets de données peuvent être acceptés et quels paquets de données doivent être rejetés.
2. Configuration
Manuel de configuration officiel :
https://cbonte.github.io/haproxy -dconv/2.2/configuration.htmlLe fichier de configuration se compose de la configuration globale et de la configuration du proxy :
Configuration globale (globale) : définit les paramètres liés à la sécurité de la gestion des processus haproxy et performances Proxies :
defaults : Fournissez des paramètres par défaut pour d'autres sections de configuration. Les paramètres de configuration par défaut peuvent être réinitialisés par les prochains "valeurs par défaut"# 🎜🎜#.
frontend : Définir une série de sockets d'écoute pouvant accepter les requêtes des clients et établir des connexions avec euxDes opérations spécifiques doivent être écrites dans le Backend, qui consiste à transférer vers quel port de quelle cible.backend : Définir le serveur "backend", frontend Le serveur proxy enverra des requêtes à court terme à ces serveurs
écouter : définissez le socket d'écoute et le serveur back-end, de la même manière que si vous réunissiez les segments frontend et backend
#🎜 🎜#Exemple :
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:80Copier après la connexionConcentrez-vous sur le frontend et le backend.
Vous devez écrire des règles acl et configurer le transfert dans Frontend. Par exemple, lorsque le trafic HTTP arrive, il est transmis au service Web ; lorsque le trafic RDP arrive, il est transmis au service RDP.
3. Idées
(1) Idée 1 (général) #🎜🎜 #Écrivez des règles acl, chargez-les sur la quatrième couche (couche de transport) et distribuez-les en fonction du type de protocole. Par exemple, lorsque du trafic http est rencontré, il est envoyé au service http, lorsque rdp est rencontré, il est envoyé. au service rdp, etc.
(2) Idée 2
Écrire des règles acl, charger sur la septième couche (couche d'application), déterminer le type d'application à distribuer, par exemple, lorsque http est rencontré, il est distribué au service http, sinon il est envoyé au service xxx.
Quatre étapes
Prenez l'idée 1 comme exemple :
Capturez un tpkt via Wireshark Informations sur le protocole de transfert de données de la couche application
Écrire le routage des règles ACL pour la distribution du traficAjouter un serveur backendprotocole ssh :Reprise de l'interface d'origine
# 🎜🎜#Complete 4.1 Capture tpktÀ propos de tpkt peut être trouvé sur Baidu ou consultez le lien de référence #🎜🎜 #Après trois poignées de main, démarrez la transmission des données de la couche application.
Utilisez Wireshark pour capturer des paquets :
Les trois premiers paquets sont une poignée de main à trois et les chiffres de départ du quatrième packet are C'est le tpkt dont nous avons besoin, par exemple, ssh est 535348. # 🎜🎜 # Protocole RDP: 030000 # 🎜🎜 ## 🎜🎜 ## 🎜🎜 # Vérification rapide: # 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 # Protocole # 🎜🎜 ## 🎜 🎜#TPKT
SSH
535348
030000
474554 | # 🎜🎜# |
---|---|
HTTP(PUT) | |
HTTP(DEL) | |
HTTP(OPT) # 🎜🎜# | 4f5054|
HTTP(HEA) | 484541 |
HTTPS | 160301 |
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)