kurduğunuz bu Exchange DAG yapısını, Nginx üzerinden SSL Offloading (SSL Sonlandırma) yaparak internete açmak için gereken profesyonel konfigürasyonu hazırlayalım.
1. Adım: Nginx Üzerinde Upstream (Havuz) Oluşturma
Önce Nginx'e trafiği hangi sunuculara dağıtacağını söyleyen dosyayı oluşturalım:
Bash
sudo nano /etc/nginx/conf.d/exchange_pool.conf
İçine şu satırları yapıştırın:
Nginx
upstream exchange_dag {
ip_hash; # NTLM el sıkışması sürekliliği için şart
server 192.168.0.61:443 max_fails=3 fail_timeout=30s;
server 192.168.0.62:443;
keepalive 100; # Bağlantıların açık kalma kapasitesini artırdık
}
2. Adım: Exchange Sanal Host Yapılandırması
Şimdi SSL sertifikanızı (Wildcard ferhatyildiz.com.tr) karşılayacak ve trafiği içeriye HTTP (80) olarak iletecek ana konfigürasyonu yapalım:
Bash
sudo nano /etc/nginx/sites-available/mail.ferhatyildiz.com.tr
Konfigürasyon İçeriği:
Nginx
# HTTP'den HTTPS'e Zorunlu Yönlendirme
server {
listen 80;
server_name mail.ferhatyildiz.com.tr autodiscover.ferhatyildiz.com.tr;
return 301 https://$host$request_uri;
}
# Ana Exchange HTTPS Yapılandırması
server {
listen 443 ssl;
server_name mail.ferhatyildiz.com.tr autodiscover.ferhatyildiz.com.tr;
# SSL Sertifika Yolları (Let's Encrypt)
ssl_certificate /etc/letsencrypt/live/ferhatyildiz.com.tr/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ferhatyildiz.com.tr/privkey.pem;
# Güvenlik ve Protokol Ayarları
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
# Paketlerin geldiği kaynak (Gateway)
set_real_ip_from 192.168.0.1;
# Gerçek IP'nin okunacağı başlık
real_ip_header X-Forwarded-For;
# KRİTİK: Genel NTLM ve Proxy Ayarları
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Client-Cert $ssl_client_cert; # Sertifika şeffaflığı
# Kimlik doğrulama başlıklarını garantiye alıyoruz
proxy_set_header Connection "Keep-Alive";
proxy_pass_header Authorization;
proxy_pass_header WWW-Authenticate;
# Performans Ayarları
proxy_request_buffering off;
proxy_buffering off;
tcp_nodelay on;
client_max_body_size 50M;
# Zaman Aşımı Ayarları
proxy_read_timeout 3600;
proxy_connect_timeout 3600;
proxy_send_timeout 3600;
# 1. ÖNCELİK: Autodiscover (Outlook Kurulumu İçin)
location ~* ^/Autodiscover/ {
proxy_pass https://exchange_dag;
proxy_ssl_verify off;
proxy_ssl_server_name on;
}
# 2. ÖNCELİK: MAPI/HTTP (Outlook Classic Bağlantısı)
location ~* ^/mapi/ {
proxy_pass https://exchange_dag;
proxy_ssl_verify off;
proxy_ssl_server_name on;
proxy_set_header Connection "Keep-Alive";
}
# 3. ÖNCELİK: RPC over HTTP (Eski Outlook Uyumu)
location ~* ^/rpc/ {
proxy_pass https://exchange_dag;
proxy_ssl_verify off;
proxy_ssl_server_name on;
proxy_set_header Connection "Keep-Alive";
}
# 4. ÖNCELİK: OWA ERİŞİMİ (Dünya Genelinden Erişim)
location ~* ^/owa {
proxy_pass https://exchange_dag;
proxy_ssl_verify off;
proxy_ssl_server_name on;
proxy_set_header Connection "Keep-Alive";
}
# 5. ÖNCELİK: ECP ERİŞİMİ (Sadece Sizin IP'lerinize Özel)
location ~* ^/ecp {
allow 192.168.105.50; # Admin PC 1
#allow 192.168.0.1; # Admin PC 2
deny all; # Diğer herkes engelli
proxy_pass https://exchange_dag;
proxy_ssl_verify off;
proxy_ssl_server_name on;
proxy_set_header Connection "Keep-Alive";
}
# 6. ÖNCELİK: Genel Servisler (EWS, ActiveSync, OAB)
location / {
proxy_pass https://exchange_dag;
proxy_ssl_verify off;
proxy_ssl_server_name on;
proxy_next_upstream off; # Kimlik doğrulama sırasında sunucu atlamasını engeller
proxy_set_header Connection "Keep-Alive"; # Mobil cihazlar için hayati
proxy_pass_header Authorization; # Şifre iletimini garantiye alır
}
}
Kodlamada hata var mı kontrol etmek
sudo nginx -t
Config yazımı Devreye almak
sudo systemctl reload nginx
nginx servisini yeniden başlatmak
sudo systemctl restart nginx
Link vermek ve yayına almak
/etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/mail.ferhatyildiz.com.tr /etc/nginx/sites-enabled/
Sitenin cevap verip vermediğine bakmak
curl -k -I https://192.168.0.62/ecp/
Ecp panele istek geliyormu izlemek
tail -f /var/log/nginx/access.log | grep "/ecp"
DNS çözümlemesine bakmak
dig ferhatyildiz.com.tr
Host dosyasını düzenlemek
sudo nano /etc/hosts
yetki atama
usermod -aG sudo ferhat
- Ne İş Yapar?:
ferhatkullanıcısınısudogrubuna (yetkili kullanıcılar grubu) ekler. - Teknik Açıklama:
-aGparametresi "append to Group" (gruba ekle) anlamına gelir. Bu komuttan sonraferhatkullanıcısı, yönetici şifresini girerek sistemde her türlü kısıtlı komutu (sudoön ekiyle) çalıştırabilir hale gelir.
chown -R ferhat:www-data /var/www/html
- Ne İş Yapar?:
/var/www/htmlklasörünün ve içindeki tüm alt dosyaların "Sahibi"ni (Owner) değiştirir. - Teknik Açıklama:
- ferhat: Yeni sahibi siz olursunuz.
- www-data: Grubunu Nginx'in kullandığı servis grubuna sabitler.
- -R: "Recursive" (Özyinelemeli) yani tüm alt klasörlere de bu ayarı uygula demektir.
chmod -R 775 /var/www/html
Ne İş Yapar?: Dosya ve klasörlerin "Erişim İzinlerini" (Permissions) sayısal olarak ayarlar.
Teknik Açıklama (775'in Anlamı):
- İlk 7 (Sahibi): Siz (ferhat), okuyabilir, yazabilir ve çalıştırabilirsiniz.
- İkinci 7 (Grubu): Nginx (www-data), okuyabilir, yazabilir ve çalıştırabilir.
- Son 5 (Diğerleri): Diğer kullanıcılar sadece okuyabilir ve çalıştırabilir (yazamaz).

0 Yorumlar
Ferhat YILDIZ Web sayfasına gönderdiğiniz yorum incelendikten sonra yayına alınacaktır. Yorumunuz için teşekkürler...