Windows Server 2016/2012 R2 SMTP Server kurulumu ve yapılandırılması


Windows Server’ın tüm sürümlerinde built-in araçları kullanarak bir SMTP sunucusu kurabilirsiniz. Bu SMTP sunucusu, organizasyonunzda ki çeşitli cihazlardan (örneğin, tarayıcılar, access control cihazları vb.) ve uygulamalardan (web uygulamaları, SQL raporlama servisleri, SharePoint) SMTP e-postalarını alıp göndermesi gereken bir posta aktarma hizmeti olarak çalışabilir. Bu tür bir aktarım, Exchange sunucularınıza veya Gmail, Yahoo, Office 365 (outlook.com) vb. gibi genel e-posta servislerine mesaj gönderebilir.

Bu makalede, SMTP sunucusunu Windows Server 2012 R2, 2016 ve 2019’da bir mail relay olarak nasıl kuracağınızı ve test edeceğinizi göstereceğim. Bu SMTP sunucusu yalnızca e-posta gönderebilir veya iletebilir. Üzerinde hiçbir posta kutusu yoktur.

SMTP hizmeti Windows Server 2016/2012 R2’ye nasıl kurulur?

SMTP hizmeti, Windows Server’ın Server Manager aracılığıyla yüklenebilecek yerleşik özelliklerinden biridir. Bunu yapmak için, Server Manager‘i açın (servermanager.exe), Add roles and features‘e gidin ve SMTP Server‘ı seçin. SMTP hizmetini yönetmek için, Web Sunucusu (IIS) rolünün bir parçası olan yönetim konsollarını yükleyin. Bu nedenle aşağıdaki resimde gösterilen IIS bileşenleri de yükleyin.

Web Sunucusu (IIS) rolünün önerilen tüm seçeneklerini seçin ve yüklemeyi başlatın.

PowerShell komutunu kullanarak SMTP sunucusu kurmak için aşağıdaki komutu çalıştırabilirsiniz.

Install-WindowsFeature smtp-server

SMTP Server yapılandırma

SMTP sunucusu hala eski yönetim konsolu olan Internet Information Services (IIS) Manager 6 kullanılarak yönetilir. Bu konsolu Server Manager üzerinden açabilirsiniz. Tools -> Internet Information Services (IIS) 6.0 Manager veya inetmgr6.exe komutuyla yönetim ekranına ulaşabilirsiniz.

SMTP Virtual Server’a sağ tıklayın ve özelliklerini açın.

General sekmesinde, sunucunun birden fazla IP adresi varsa SMTP sunucusunun yanıt vermesi gereken IP adresini seçebilir ve alınan tüm e-postalarla ilgili bilgileri metin günlüğü dosyalarına kaydetmek için Enable logging‘i işaretleyebilirsiniz.

Ardından Access sekmesine geçin.

Authentication bölümüne tıklayın ve Anonymous access etkin olduğundan emin olun.

Access sekmesine geri dönün ve Connection bölümüne tıklayın. Bu ekranda, SMTP sunucunuz üzerinden e-posta göndermesine izin verilen cihazların IP adreslerini belirleyebilirsiniz. Bunu yapmak için, Only the list below seçeneğini işaretleyin ve IP adreslerini belirtin. İçeriden gelen tüm adreslerden mail yollanmasına izin vermek isteseydik eğer All except the list bellow seçeneğini seçmemiz gerekecekti. Sunucu ip adresini (127.0.0.1) bu listeye eklemeyi unutmayın.

Not→ SMTP sunucunuz üzerinden mail gönderecek ip adreslerini sınırlamanız önemlidir. Aksi halde, SMTP sunucunuz spam göndericiler ve diğer saldırganlar tarafından toplu postalar için açık bir geçiş olarak kullanılabilir.

Messages sekmesine geçin. Burada, tüm NDR mesajlarının (teslim edilemedi raporu) kopyalarının gönderileceği e-posta adresini belirtebilirsiniz. Ayrıca burada maksimum mesaj boyutu (Limit message size KB) ve maksimum alıcı sayısı (Limit number of recipients per message) ile ilgili kısıtlamaları belirleyebilirsiniz.

Delivery sekmesine geçelim ve Outbound Security ayarlarımızı yapalım.

SMTP sunucunuzun tüm e-posta iletilerini göndereceği harici posta sunucusunda kimlik doğrulama yöntemini belirleyebilirsiniz. Örneğin, tüm e-postalar Gmail posta sunucusuna iletilir ve ardından alıcılara gönderilirse, Basic authentication’u seçmeniz ve Gmail posta kutusu kimlik bilgilerinizi belirtmeniz gerekir. Google hesap ayarlarında SMTP üzerinden e-posta göndermenize izin vermelisiniz.

Ardından Advanced sekmesini tıklayın.

Burada SMTP sunucunuzun FQDN adını belirtiyoruz. DNS kaydının geçerli olduğundan emin olmak için Check DNS butonuna tıklayın.

Sunucunuz harici bir SMTP sunucusuna posta gönderiyorsa, adını Smart host alanında belirtin. Örneğin, smtp.gmail.com veya smtp.office365.com gibi.

Bazı genel posta sunucuları, yalnızca TLS şifrelemesi (TCP port 587) kullanarak güvenli bir SMTP bağlantısı üzerinden e-posta kabul eder. Bu ayarı, Delivery -> Outbound Security ve Outbound Connections bölümünde yapılandırabilirsiniz. E-posta servis sağlayıcınızda bu ayarlarla ilgili bilgi isteyebilirsiniz.

SMTP sunucusu ayarlarını kaydedin ve değişiklikleri uygulamak için SMTP virtual service hizmetini yeniden başlatın.

Not→ DNS ayarları, e-posta sistemi sağlığı açısından kritik öneme sahiptir. SMTP sunucunuz e-posta göndermeye çalıştığı domainlere ait DNS adlarını doğru şekilde çözemezse, teslimat başarısız olur.

Sunucunuz diğer domainlere posta gönderiyorsa, reverse DNS için doğru PTR kaydının oluşturulması önemlidir. Public IP adresiniz için PTR kaydının sunucunuzun FQDN adını göstermesi gerekir. Aksi halde, çoğu dış SMTP sunucusu, sunucunuzu spam gönderen biri olarak kabul ettiğinizden e-posta kabul etmez.

SMTPSVC hizmeti otomatik başlatma

Windows Server’ınızda SMTP servisinin otomatik başlatılmasını için PowerShell komut istemini kullanabilirsiniz.

set-service smtpsvc -StartupType Automatic

start-service smtpsvc

SMTPSVC servisinin çalıştığından emin olun.

get-service smtpsvc

SMTP sunucusunu test etme

Yapmanız gereken son şey, SMTP sunucunuzun çalıştığından emin olmaktır. Masaüstünüzde smtp-test-email.txt dosyası oluşturarak ve aşağıdaki metni kopyalayarak kolay bir şekilde test edebilirsiniz. Gönderen ve alıcı adlarını kendinize göre değiştirmeyi unutmayın.

From: server@localdomain.com
To: admin@localdomain.com
Subject: Email test
This is the test email

Smtp-test-email.txt dosyasını C:\inetpub\mailroot\Pickup klasörüne kopyalayın. Windows SMTP sunucusu bu klasörde görünen yeni dosyaları izler ve eğer bir dosya bulunursa içeriğini okur. To: satırında belirtilen alıcıya subject ve body ile birlikte bir e-posta göndermeye çalışır.

Alıcı posta kutusunu kontrol ettiğinizde bu e-postayı göreceksiniz.

İpucu→ SMTP sunucunuzu telnet, VBS komut dosyası veya PowerShell kullanarak test edebilirsiniz.

Send-MailMessage -SMTPServer localhost -To manager@localdomain.com -From server@localdomain.com -Subject “Email test” -Body “Bu mail test için Powershell kullanılarak gönderilmiştir.”

Ayrıca, SMTP sunucunuzda local güvenlik duvarı veya antivirus yazılımı tarafından TCP 25 bağlantı noktasının engellenmediğinden emin olun. Bunu yapmanın en kolay yolu, IP adresi izin verilen bağlantı listesine eklenmiş Windows tabanlı bir bilgisayardır. Test-NetConnection cmdlet’ini kullanarak 25 numaralı bağlantı noktasının kullanılabilirliğini kontrol edebilirsiniz.

Test-NetConnection smtprelay.teknolojikadam.com –port 25

25 numaralı bağlantı noktası engellenmişse, Windows Güvenlik Duvarı, antivirüs ve donanım güvenlik duvarlarının ayarlarını kontrol edin.

Böylece kendi SMTP posta geçişinizi Windows Server 2016/2012 R2’de yapılandırdınız ve e-postaları göndererek test ettiniz.

KAYNAKWINDOWS