SMTP sunucuları için ters proxy
güvenliği, performansı ve ölçeklenebilirliği artıran bir sunucudur.

isteklerini ters proxy'ye gönderirler;
tek ve güvenli bir erişim noktası görevi görerek
uygun sunuculara yönlendirir
Başlıca Faydaları:
- Güvenlik açısından,
kötü amaçlı istekleri engelleyebilir, trafiği şifreleyebilir
ve arka uç sunucularını doğrudan saldırılardan koruyabilir. - Performans:
Gelen trafiği birden fazla sunucuya dağıtarak
tek bir sunucunun aşırı yüklenmesini önler ve daha yüksek kullanılabilirlik sağlar. - Ölçeklenebilirlik:
Hizmet kesintisi olmadan arka uç sunucuları eklemenize veya kaldırmanıza olanak tanıyarak
artan trafiği yönetme yeteneği sunar.
Yalnızca HTTP kullanan ters proxy (Katman 7)
İnternette çeşitli araçlar mevcut; araştırmalarımız sonucunda, öncelikle yalnızca HTTP protokolünü (Katman 7) destekleyenleri eledik:
Apache'ye Hayır!
“Eyvah. Kullandığınız teknolojiler hakkında biraz bilgi edinin. E-posta SMTP kullanır. Apache HTTP kullanır. Apache'nin SMTP hakkında hiçbir bilgisi yok. E-posta mesajlarıyla çalışmak istiyorsanız, SMTP konuşan bir teknolojiye ihtiyacınız olacak.” – EEAA, 18 Ağustos 2016, 02:49'da yorum yaptı
Caddy'ye Hayır!
“Caddy TCP'yi vekil sunucu olarak kullanamaz, yalnızca TCP üzerinden HTTP'yi vekil sunucu olarak kullanabilir. Traefik, Nginx veya haproxy gibi TCP'yi vekil sunucu olarak kullanabilen bir ters proxy kullanın veya bu deneysel eklentiyi kullanın.” – ElevenNotes Yorumu, 24 Eylül 2024
Ardından yorumlarda önerilen üç seçeneğe odaklandık: "Traefik, NginX veya HAProxy" ve bunları tek tek kurup test ettik.
Traefik ilk tercihti.
Çoğu eğitim videosu Docker ile başlıyordu; ben ise bu platformdan kaçınmak ve Fedora ve CentOS gibi RPM tabanlı dağıtımlar için YUM veya Ubuntu ve Debian gibi Debian tabanlı dağıtımlarda kullanılan APT (Advanced Package Tool) gibi Linux paket yöneticilerinden birine dayalı daha basit bir çözüm tercih etmek istedim.
Uzun bir aramanın ardından, aradığımız kurulum türünü açıklayan bu yeni makaleyi bulduk: Traefik'i systemd Servisi Olarak Kurma.
Bir not: SELinux ayarlarını "Zorlayıcı"dan "İzin Verici"ye değiştirmeniz gerekiyor
Yine, Udemy'de iki kurs denedikten sonra, bu mükemmel kursu bulduk:
Traefik Hızlı Başlangıç Kursu (Docker Olmadan).
Sağlanan örnekleri yeniden üreterek çalışır hale getirmeyi başardık. Videonun sonuna doğru, mükemmel eğitmen bu araca tamamen karşı olduğunu ifade etti:
Traefik Hızlı Başlangıç Kursu - 53:50 Özet.
Bu, daha fazla test yapmaktan bizi caydırdı ve başka bir şey denememize yol açtı.
Nginx ikinci tercihti
Bu durumda kurulum daha basitti, kısaca YUM kullanılarak yapıldı:
yum install epel-release nginx nginx-mod-stream nginx-mod-mail
Bir not: SELinux'ta röleyi etkinleştirmeniz gerekiyor:
setsebool -P httpd_can_network_relay 1
Eğitim için, önceki kurstaki eğitmenle aynı eğitmeni seçerek işi garantiye aldık:
Nginx Hızlı Kursu (ilk bölüm yaklaşık bir saat yirmi dakika sonra bitiyor). Eğitmen de bu uygulamaya, özellikle hem web sunucusu hem de ters proxy görevi görmesine ikna olmamış durumda:
Nginx Hızlı Kursu - 1:20:10 Özet.
Rapor "Nginx yerine HAProxy'yi tercih ederim" şeklinde bitiyor, bu yüzden biz de HAProxy'yi denemeye karar verdik.
Son olarak, HAProxy'yi de denedik.
Kurulumu son derece kolay oldu, çünkü çok yaygın bir uygulama ve tüm Linux paket yöneticilerinde mevcut, örneğin: yum install haproxy
Ayrıca güvendiğimiz eğitmenimiz HAProxy Crash Course'a da danıştık .
Çalışıyor, ancak maalesef SMTP kimlik doğrulaması için uygun değil:
"haProxy'yi bu şekilde yapılandırmak mümkün değil, çünkü haproxy SMTP'yi hiç desteklemiyor."
– lukastribus, 17 Ağustos 2023 tarihinde yorum yaptı.
Ters proxy olarak çalışan standart bir SMTP sunucusu
İki haftalık test sürecinin ardından,
diğer SMTP sunucuları için ters proxy olarak standart bir SMTP sunucusu kullanmanın daha iyi olduğunu fark ettik.
Görevini yerine getiriyor, yalnızca SMTP protokolünü kullanıyor, bağlantıları doğru bir şekilde doğruluyor
ve "smarhost" işlevi aracılığıyla istekleri diğer SMTP sunucularına iletebiliyor.
Postfix'te, main.cf dosyasında,
relayhost = [smarthost_address]:port
Sendmail'de, sendmail.mc dosyasında,
`SMART_HOST',`mail.example.com'` şeklinde bir tanım bulunur.