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/

Cem Kemal Erbaş Network, Siber Güvenlik ve Teknik Rehberler