HAProxy Nedir? Açık Kaynak Load Balancing ve Trafik Güvenliği

Bir uygulamanın erişilebilir olması kadar, trafiğin doğru backend’e, güvenli ve kontrollü şekilde yönlendirilmesi de önemlidir.

Bu alandaki en bilinen açık kaynak çözümlerden biri HAProxy’dir.

HAProxy; yüksek performanslı, açık kaynaklı bir Load Balancer ve Reverse Proxy çözümüdür. TCP seviyesinde Layer 4, HTTP tarafında ise Layer 7 proxy olarak çalışabilir. Güncel HAProxy dokümantasyonu bu iki çalışma modunu tcp ve http olarak tanımlar.

Network Tarafında Neler Sunar?

HAProxy ile:

Layer 4 TCP Load Balancing
Layer 7 HTTP/HTTPS Load Balancing
Reverse Proxy
Round Robin / Least Connections
Health Checks
Session Persistence
Backend Failover
IPv4 / IPv6

gibi yapılar oluşturulabilir.

roundrobin, leastconn gibi farklı backend seçim algoritmaları desteklenir. Özellikle leastconn, uzun süre açık kalan bağlantılarda daha az aktif bağlantıya sahip backend’i tercih etmek için kullanılabilir.

Health Check Neden Önemli?

Örneğin:

Internet
   ↓
Firewall
   ↓
HAProxy
   ↓
Web01 | Web02 | Web03

Backend’lerden biri health check’i geçemezse HAProxy bu server’ı kullanılabilir backend havuzundan çıkarabilir.

Örneğin:

backend webservers
    balance roundrobin
    server web01 10.10.20.11:443 check
    server web02 10.10.20.12:443 check

HAProxy yalnız TCP bağlantısını değil, tasarıma göre HTTP gibi daha gelişmiş application-level health check’leri de kullanabilir.

Bu nedenle:

Server açık ≠ Application sağlıklı

ayrımını load balancer seviyesinde yapmak mümkündür.

Security Tarafında HAProxy

HAProxy klasik firewall veya IDS/IPS değildir. Ancak trafik üzerinde önemli güvenlik kontrolleri uygulayabilir.

Örneğin:

TLS Termination → Backend TLS → ACL → Source IP Filtering → HTTP Header kontrolleri → Rate Limiting

aynı trafik akışında kullanılabilir.

Client tarafındaki TLS HAProxy üzerinde sonlandırıldıktan sonra backend bağlantısı tekrar TLS ile şifrelenebilir. Backend sertifikasının CA üzerinden doğrulanması da desteklenir.

Stick Tables ile Rate Limiting

HAProxy’nin güçlü özelliklerinden biri Stick Tables yapısıdır.

Örneğin belirli source IP’lerin HTTP request rate değerleri takip edilebilir:

stick-table type ip size 100k expire 10s store http_req_rate(10s)

http-request track-sc0 src
http-request deny if { sc_http_req_rate(0) gt 100 }

Bu yapı belirli bir istemcinin request hızını takip ederek belirlenen eşik aşıldığında isteği engelleyebilir. HAProxy stick table’ları connection, request ve hata oranları gibi farklı trafik metriklerini saklayabilir.

Basit güvenlik akışı:

Client → HAProxy → Stick Table → ACL → Allow / Deny → Backend

Bu yöntem brute-force, aşırı istek veya belirli abuse senaryolarını sınırlandırmaya yardımcı olabilir.

API Trafiğinde Kullanılabilir mi?

Evet.

HAProxy; host, path, header, source IP veya başka ACL kriterlerine göre API isteklerini farklı backend’lere yönlendirmek, TLS sonlandırmak ve rate limiting uygulamak için kullanılabilir.

Ancak bunu:

HAProxy = tam kapsamlı API Management platformu

şeklinde değerlendirmek doğru değildir.

Developer portal, API lifecycle management, subscription management gibi daha kapsamlı fonksiyonlar gerektiğinde ek platformlara ihtiyaç duyulur.

Kritik Nokta

HAProxy’nin görevi yalnızca:

“Trafiği Web01, Web02 ve Web03 arasında dağıtmak”

değildir.

Doğru tasarımda:

Load Balancing → Health Check → TLS → ACL → Rate Limiting → Backend Selection

aynı trafik yolunda birlikte uygulanabilir.

Bu nedenle HAProxy; application availability, trafik kontrolü ve güvenli reverse proxy mimarileri için güçlü bir açık kaynak çözümüdür.

Ancak firewall, WAF veya IDS/IPS’in doğrudan alternatifi olarak değil, mevcut güvenlik mimarisinin bir parçası olarak konumlandırılması daha doğrudur.

🔗 Proje Sayfası: https://www.haproxy.org/

About Cem Kemal Erbaş

Buna da göz atın

ntopng Nedir? Açık Kaynak Network Traffic Analysis ve Monitoring Aracı

Firewall logları size bir olay olduğunu gösterebilir. Peki ağınızda kim kiminle konuşuyor, hangi uygulama bant …

Bir yanıt yazın