Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
HAProxy-Keepalived-Sec-HighLoads — ✨ Aborde le sujet de HAProxy et Keepalived, en plus du load balancer et du cluster, la sécurité (prévention de la vulnérabilité liée à l’utilisation faible de SSL/Crypto (LOGJAM) (CVE-2015-4000)) et la résistance aux charges élevées. | Kitploit
Outils/GitHubGitHub/fatlan/haproxy-keepalived-sec-highloads
Scanners de VulnérabilitésAudit de ConfigurationSécurité Réseau
GitHubfatlan/haproxy-keepalived-sec-highloads

HAProxy-Keepalived-Sec-HighLoads

✨ Aborde le sujet de HAProxy et Keepalived, en plus du load balancer et du cluster, la sécurité (prévention de la vulnérabilité liée à l’utilisation faible de SSL/Crypto (LOGJAM) (CVE-2015-4000)) et la résistance aux charges élevées.

Voir le dépôt
6213il y a 3 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

HAProxy et Keepalived (LoadBalancer+Cluster+Sec+HighLoads) : installation et configuration

Crepe

HAProxy est un logiciel open source qui fournit un service de serveur proxy pour les applications basées sur TCP et HTTP, avec une haute disponibilité (high availability) et une répartition de charge (load balancing).

Keepalived est un logiciel open source capable de fournir la fonctionnalité IP failover (bascule d’IP) pour plus de deux serveurs. Keepalived utilise la technique de communication Multicast entre ses instances.

Dans notre architecture, nous utiliserons HAProxy comme load balancer et Keepalived pour la bascule d’IP, c’est-à-dire pour faire de notre structure HAProxy un Cluster.

Notre scénario comprend 3 serveurs. Nous allons installer HAProxy sur ces 3 serveurs pour les transformer en load balancer. Ensuite, nous installerons le service Keepalived afin qu’en cas d’arrêt de l’un des serveurs, la bascule IP (IP failover) se fasse vers l’autre serveur sans interruption, garantissant ainsi le fonctionnement de notre service de load balancing.

Pour cela, nous utiliserons 4 adresses IP (les IP sont entièrement fictives).

  1. Serveur : 10.10.5.13
  2. Serveur : 10.10.5.14
  3. Serveur : 10.10.5.15
  4. IP virtuelle Keepalived : 10.10.5.5

Maintenant, installons les services HAProxy et Keepalived sur les 3 serveurs comme suit.

sudo add-apt-repository ppa:vbernat/haproxy-2.7 -y
sudo apt update
sudo apt install haproxy keepalived -y
sudo openssl dhparam -out /etc/haproxy/dhparams.pem 2048

Remarque 1 : Les serveurs doivent avoir « net.ipv4.ip_nonlocal_bind=1 ». Sinon, la configuration utilisée pour HAProxy ne pourra pas lier la même IP en même temps, ce qui générera une erreur de bind et le service ne fonctionnera pas. Pour cela, vous devez suivre la procédure ci-dessous.

Tout d’abord, éditez le fichier avec « vi /etc/sysctl.conf », collez le paramètre ci-dessous, puis enregistrez et quittez.

net.ipv4.ip_nonlocal_bind=1

Ensuite, exécutez la commande suivante.

sysctl -p

Remarque 2 : Si vous utilisez le SSL 443, vous devez disposer, dans le répertoire « /etc/ssl/private/ », de vos certificats SSL au format Bundle (.crt,.ca,*.key) sous le nom « haproxy.pem ».

Regardons maintenant, à titre d’exemple, la configuration HAProxy ci-dessous. Vous utiliserez la même configuration pour chaque HAProxy dans votre infrastructure.

HAProxy

Pour cela, vous devez éditer le fichier « /etc/haproxy/haproxy.cfg ». La configuration ci-dessous prend en charge au minimum HAProxy v2.

vi /etc/haproxy/haproxy.cfg

Les valeurs par défaut sont également disponibles ci-dessous.

global
        log /dev/log    local0
        log /dev/log    local1 notice
        chroot /var/lib/haproxy
        stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
        stats timeout 30s
        user haproxy
        group haproxy
        daemon
#        maxconn 100000 #replaceable


        # Default SSL material locations
        ca-base /etc/ssl/certs
        crt-base /etc/ssl/private

        # Default ciphers to use on SSL-enabled listening sockets.
        # For more information, see ciphers(1SSL). This list is from:
        #  https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
        # An alternative list with additional directives can be obtained from
        #  https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=haproxy
        ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
        #ssl-default-bind-options no-sslv3
	ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
	ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets
	ssl-dh-param-file /etc/haproxy/dhparams.pem
	#tune.ssl.default-dh-param 2048


#	nbproc 1
#	nbthread 8

	tune.maxrewrite 16384
	tune.bufsize 32768

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
	option forwardfor
#        maxconn 1000000 #replaceable
        timeout connect 3000000
        timeout client  6000000
        timeout server  6000000
        errorfile 400 /etc/haproxy/errors/400.http
        errorfile 403 /etc/haproxy/errors/403.http
        errorfile 408 /etc/haproxy/errors/408.http
        errorfile 500 /etc/haproxy/errors/500.http
        errorfile 502 /etc/haproxy/errors/502.http
        errorfile 503 /etc/haproxy/errors/503.http
        errorfile 504 /etc/haproxy/errors/504.http

Section de configuration Dashboard pour HAProxy (intégration Prometheus ajoutée pour la supervision).

listen stats
        bind fatlan.com:8989
        mode http
        stats enable
        stats uri /stats
        option http-use-htx
        http-request use-service prometheus-exporter if { path /metrics }
        #stats hide-version
        stats realm HAProxy\ Statistics
        stats auth admin:admin

Dans la configuration suivante, des ACL sont utilisées dans deux blocs. Dans le premier bloc, si le mot « rest » apparaît n’importe où dans le lien, le bloc middleware-fatlan-backend est utilisé ; dans le second, pour une requête vers un domaine différent (forum.fatlan.com), le backend fatlan-forum-backend est utilisé ; toutes les autres requêtes passent par le bloc fatlan-backend443, à l’exception des autres redirections de ports.

Section de redirection du port 80 vers le port 443.

frontend fatlan80
        bind fatlan.com:80
        mode http
        redirect scheme https if !{ ssl_fc }

frontend fatlan443
        bind fatlan.com:443 ssl crt /etc/ssl/private/haproxy.pem ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
        option httplog
	option forwardfor
 	#http-request set-header X-Client-IP req.hdr_ip([X-Forwarded-For])
        #option forwardfor except 127.0.0.0/8
        option http-server-close
	http-request set-header X-Forwarded-Proto https
#        reqadd X-Forwarded-Proto:\ https #old config
        mode http
        default_backend fatlan-backend443

Exemple de configuration ACL (proxypass) : rediriger si le mot rest apparaît n’importe où dans le lien.

        acl middleware-fatlan path_beg /rest
        use_backend middleware-fatlan-backend if middleware-fatlan

ACL pour rediriger un hôte forum différent.

    	acl host_fatlanforum hdr(host) -i forum.fatlan.com
    	use_backend fatlan-forum-backend if host_fatlanforum

Section de redirection par défaut (pour 443).

backend fatlan-backend443
        mode http
        balance roundrobin
        stick store-request src
        stick-table type ip size 256k expire 30m
        option forwardfor
#        option httplog
        option httpchk HEAD /
	
        server frontend_01 10.10.37.12:8001 check port 8001 inter 3000 rise 2 fall 3
        server frontend_02 10.10.37.13:8001 check port 8001 inter 3000 rise 2 fall 3

Section de redirection rest pour l’ACL entrante.

Télécharger l’outil