Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
HAProxy-Keepalived-Sec-HighLoads — ✨ Behandelt das Thema HAProxy und Keepalived zusätzlich zum Load Balancer und Cluster auch Sicherheit (Schutz vor der Schwachstelle schwache SSL/Krypto-Nutzung (LOGJAM) (CVE-2015-4000)) und hohe Lasten. | Kitploit
Tools/GitHubGitHub/fatlan/haproxy-keepalived-sec-highloads
SchwachstellenscannerKonfigurationsprüfungNetzwerksicherheit
GitHubfatlan/haproxy-keepalived-sec-highloads

HAProxy-Keepalived-Sec-HighLoads

✨ Behandelt das Thema HAProxy und Keepalived zusätzlich zum Load Balancer und Cluster auch Sicherheit (Schutz vor der Schwachstelle schwache SSL/Krypto-Nutzung (LOGJAM) (CVE-2015-4000)) und hohe Lasten.

Repository anzeigen
6213vor 3 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Installation und Konfiguration von HAProxy und Keepalived (LoadBalancer+Cluster+Sec+HighLoads)

Crepe

HAProxy ist eine Open-Source-Software, die als Proxy-Server für TCP- und HTTP-basierte Anwendungen mit hoher Verfügbarkeit (High Availability) und Lastverteilung (Load Balancing) dient.

Keepalived ist eine Open-Source-Software, die in der Lage ist, IP-Failover (Übernahme) für mehr als zwei Server bereitzustellen. Keepalived verwendet untereinander die Multicast-Kommunikationstechnik.

In unserer Struktur werden wir HAProxy für den Load Balancer verwenden und Keepalived zur IP-Übernahme, also um unsere HAProxy-Struktur in ein Cluster zu verwandeln.

In unserem Szenario gibt es 3 Server. Auf diesen 3 Servern installieren wir HAProxy, um sie zu Load Balancern zu machen. Anschließend installieren wir den Keepalived-Dienst, damit bei Ausfall eines Servers ein IP-Failover zu einem anderen Server erfolgt und unser Load-Balancer-Dienst unterbrechungsfrei weiterläuft.

Dafür verwenden wir 4 IPs (die IPs sind rein fiktiv):

  1. Server : 10.10.5.13
  2. Server : 10.10.5.14
  3. Server : 10.10.5.15
  4. Keepalived Virtuelle IP : 10.10.5.5

Jetzt installieren wir den HAProxy- und Keepalived-Dienst auf allen 3 Servern wie folgt:

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

Hinweis1: Auf den Servern muss „net.ipv4.ip_nonlocal_bind=1“ gesetzt sein. Andernfalls kann die für HAProxy verwendete Konfiguration nicht gleichzeitig dieselbe IP binden, was zu einem Bind-Fehler führt und der Dienst nicht startet. Dazu müssen Sie wie folgt vorgehen.

Bearbeiten Sie zunächst die Datei „vi /etc/sysctl.conf“ und fügen Sie den folgenden Parameter ein, speichern und beenden Sie.

net.ipv4.ip_nonlocal_bind=1

Führen Sie dann den folgenden Befehl aus.

sysctl -p

Hinweis2: Wenn Sie 443 SSL verwenden möchten, muss im Verzeichnis „/etc/ssl/private/“ die Datei „haproxy.pem“ mit Ihren gebündelten SSL-Zertifikaten (.crt,.ca,*.key) vorhanden sein.

Schauen wir uns nun als Beispiel die HAProxy-Konfiguration unten an. Sie werden auf jedem HAProxy dieselbe Konfiguration verwenden.

HAProxy

Bearbeiten Sie dazu die Datei „/etc/haproxy/haproxy.cfg“. Die folgende Konfiguration unterstützt mindestens HAv2.

vi /etc/haproxy/haproxy.cfg

Unten sind auch die Standardwerte enthalten.

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

Dashboard-Konfigurationsabschnitt für HAProxy (Prometheus-Integration für das Monitoring hinzugefügt)

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

In der folgenden Konfiguration werden in zwei Blöcken ACLs verwendet. Wenn im Link an irgendeiner Stelle das Wort „rest“ vorkommt, wird der Block middleware-fatlan-backend ausgeführt; bei einer Anfrage an eine andere Domain (forum.fatlan.com) wird backend fatlan-forum-backend ausgeführt; alle anderen Anfragen werden im Block fatlan-backend443 verarbeitet. Abgesehen von anderen Portweiterleitungen.

Umleitung von Port 80 auf 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

Beispiel einer ACL-Konfiguration (Proxypass): Wenn im Link an irgendeiner Stelle das Wort rest vorkommt, weiterleiten.

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

ACL: Weiterleitung zu einem anderen forum-Host:

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

Standardmäßig weitergeleiteter Abschnitt für 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

Von ACL kommender, zu rest weitergeleiteter Abschnitt:

backend middleware-fatlan-backend
        mode http
        balance roundrobin
        stick store-request src
        stick-table type ip size 256k expire 30m
        option forwardfor
#        option httplog
        option httpchk OPTIONS /login HTTP/1.0
        http-check expect status 200
	http-request replace-path (.*)(?:rest\/)(.*) \1\2
#        reqrep ^([^\ :]*)\ /rest[/]?(.*) \1\ //\2  #old config 
	
        server middleware_01 10.10.37.34:3000 check port 4000 inter 12000 rise 3 fall 3
        server middleware_02 10.10.37.35:3000 check port 4000 inter 12000 rise 3 fall 3
Tool herunterladen