Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
HAProxy-Keepalived-Sec-HighLoads — ✨ Aborda o tema HAProxy e Keepalived, além de load balancer e cluster, também segurança (prevenção da vulnerabilidade de uso fraco de SSL/Cripto (LOGJAM) (CVE-2015-4000)) e contra altas cargas. | Kitploit
Ferramentas/GitHubGitHub/fatlan/haproxy-keepalived-sec-highloads
Scanners de VulnerabilidadesAuditoria de ConfiguraçãoSegurança de Rede
GitHubfatlan/haproxy-keepalived-sec-highloads

HAProxy-Keepalived-Sec-HighLoads

✨ Aborda o tema HAProxy e Keepalived, além de load balancer e cluster, também segurança (prevenção da vulnerabilidade de uso fraco de SSL/Cripto (LOGJAM) (CVE-2015-4000)) e contra altas cargas.

Ver Repositório
6213há 3 anosAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Instalação e Configuração do HAProxy e Keepalived (LoadBalancer+Cluster+Sec+HighLoads)

Crepe

HAProxy é um software de código aberto que fornece serviço de servidor proxy para aplicações baseadas em TCP e HTTP com balanceamento de carga de alta disponibilidade.

Keepalived é um software de código aberto capaz de fornecer o recurso de IP failover para mais de dois servidores. O Keepalived utiliza a técnica de comunicação Multicast entre seus pares.

Na nossa estrutura, usaremos o HAProxy como balanceador de carga e o Keepalived para fazer o failover de IP, ou seja, colocar a nossa estrutura HAProxy em Cluster.

No nosso cenário existem 3 servidores. Instalaremos o HAProxy nesses 3 servidores para torná-los um balanceador de carga. Em seguida, instalaremos o serviço Keepalived para que, quando um dos servidores cair, o failover de IP ocorra passando para o outro servidor sem interrupção, mantendo o nosso serviço de balanceador de carga em funcionamento.

Para isso, usaremos 4 IPs (os IPs são totalmente fictícios).

  1. Servidor: 10.10.5.13
  2. Servidor: 10.10.5.14
  3. Servidor: 10.10.5.15
  4. IP Virtual Keepalived: 10.10.5.5

Agora vamos instalar o serviço HAProxy e Keepalived nos 3 servidores da seguinte forma.

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

Nota1: Os servidores precisam ter “net.ipv4.ip_nonlocal_bind=1”. Caso contrário, a configuração usada para o HAProxy não conseguirá manter o mesmo IP ao mesmo tempo, apresentará erro de bind e o serviço não funcionará. Para isso, você precisa seguir o procedimento abaixo.

Primeiro, edite o arquivo “vi /etc/sysctl.conf”, cole o parâmetro abaixo, salve e saia.

net.ipv4.ip_nonlocal_bind=1

Em seguida, execute o seguinte comando.

sysctl -p

Nota2: Se for usar SSL 443, você precisará ter no diretório “/etc/ssl/private/” um arquivo chamado “haproxy.pem” contendo o Bundle dos seus certificados SSL (.crt,.ca,*.key).

Agora, vamos ver como exemplo a configuração do HAPoxy abaixo. Na sua estrutura, você usará a mesma configuração para cada HAProxy.

HAPoxy

Para isso, você editará o arquivo “/etc/haproxy/haproxy.cfg”. A configuração abaixo suporta no mínimo HAv2.

vi /etc/haproxy/haproxy.cfg

Abaixo também estão os valores padrão.

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

Parte da configuração do Dashboard para o HAProxy (integração com Prometheus adicionada para monitoramento).

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

Na configuração abaixo, ACL é usada em dois blocos. No primeiro bloco, se a palavra “rest” aparecer em qualquer lugar do link, o bloco middleware-fatlan-backend será executado; no segundo, para uma requisição a um domínio diferente (forum.fatlan.com), o backend fatlan-forum-backend será executado; todas as demais requisições serão executadas no bloco fatlan-backend443. Exceto outros redirecionamentos de porta.

Parte do redirecionamento da porta 80 para a porta 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

Exemplo de configuração de ACL (proxypass): redireciona se a palavra rest aparecer em qualquer lugar do link.

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

ACL para redirecionar para um host forum diferente.

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

Parte do redirecionamento padrão, a parte redirecionada para 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

Parte recebida pela ACL e redirecionada para rest.

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
Baixar ferramenta