Stronger_Cracker
- 25 Tem 2022
- 6,410 Mesaj
Aktiflik
Seviye
Deneyim
Selamunaleyküm,
Dün sabah sistemimizin CF tarafında bir kaç ayar değişikliği yaptım. Bu değişikliklerden sonra fark ettim ki mail sunucularımız patlamış
Hal böyle olunca iş başa düştü.. 2-3 saat uğraşıp bir şekilde problemi çözdüm. Sistemimiz ve Mail servislerimiz sorunsuz çalışmakta. Altın anahtar Reverse DNS aslında ama Google ve XenForo forumlarında bu çözüm yok denecek kadar az.. Bu sebeple çözüm konusu açmaya karar verdim. Hem üyelerimiz, hem de sanal ortamdaki XenForo kullanıcıları CloudFlare ve CyberPanel Mail servislerinde sorun yaşarsa çözümü bizden görsün. 
XenForo test maili gönderirken bu hatayı alıyordum. Host'u 127.0.0.1, localhost mail.stronger.org olarak değiştirdim, port olarak 25, 465, 587 denedim — hepsi hata verdi.
1. Postfix yanlış SSL sertifikası kullanıyordu. CyberPanel kurulumunda Postfix, Dovecot'un self-signed sertifikasını (/etc/pki/dovecot/certs/dovecot.pem) kullanıyordu. XenForo'nun Symfony Mailer'ı bağlandığı hostname ile sertifikadaki CN'i karşılaştırıp uyuşmadığı için reddediyordu.
2. PTR (Reverse DNS) kaydı ayarlanmamıştı. SSL sorununu çözdükten sonra mailler XenForo'dan çıkıyordu ama Gmail reddediyordu: "The IP address sending this message does not have a PTR record setup."
3. Postfix IPv6 kullanıyordu. IPv4 için PTR ayarlansa bile Postfix varsayılan olarak IPv6 ile gönderiyordu ve IPv6 PTR'ı henüz yayılmamıştı.
Networking → Primary IPs → Edit Reverse DNS → mail.DOMAIN.COM yaz.
IPv4 ve IPv6 için ayrı ayrı yapılmalı.
Umarım aynı sorunu yaşayanlara yardımcı olur.
Selametle.
Dün sabah sistemimizin CF tarafında bir kaç ayar değişikliği yaptım. Bu değişikliklerden sonra fark ettim ki mail sunucularımız patlamış
Ortam
- Panel: CyberPanel
- Mail: Postfix + Dovecot
- DNS: Cloudflare
- Forum: XenForo 2.3.x
Hata Mesajı
Kod:
Symfony\Component\Mailer\Exception\TransportException:
Unable to connect with STARTTLS: stream_socket_enable_crypto():
Peer certificate CN='stonger.org' did not match expected CN='127.0.0.1'
XenForo test maili gönderirken bu hatayı alıyordum. Host'u 127.0.0.1, localhost mail.stronger.org olarak değiştirdim, port olarak 25, 465, 587 denedim — hepsi hata verdi.
Sorunun Kaynağı
Aslında tek bir sorun değil, üst üste binen 3 farklı sorun vardı:1. Postfix yanlış SSL sertifikası kullanıyordu. CyberPanel kurulumunda Postfix, Dovecot'un self-signed sertifikasını (/etc/pki/dovecot/certs/dovecot.pem) kullanıyordu. XenForo'nun Symfony Mailer'ı bağlandığı hostname ile sertifikadaki CN'i karşılaştırıp uyuşmadığı için reddediyordu.
2. PTR (Reverse DNS) kaydı ayarlanmamıştı. SSL sorununu çözdükten sonra mailler XenForo'dan çıkıyordu ama Gmail reddediyordu: "The IP address sending this message does not have a PTR record setup."
3. Postfix IPv6 kullanıyordu. IPv4 için PTR ayarlansa bile Postfix varsayılan olarak IPv6 ile gönderiyordu ve IPv6 PTR'ı henüz yayılmamıştı.
Çözüm Adımları
1. Postfix SSL sertifikasını düzelt
Kod:
postconf -e "smtpd_tls_cert_file=/etc/letsencrypt/live/DOMAIN.COM/fullchain.pem
postconf -e "smtpd_tls_key_file=/etc/letsencrypt/live/DOMAIN.COM/privkey.pem"
systemctl restart postfix
2. /etc/hosts'a kayıt ekle
Sunucu kendi domain'ine bağlanırken Cloudflare proxy'sine gitmesin:
Kod:
echo "127.0.0.1 DOMAIN.COM mail.DOMAIN.COM" >> /etc/hosts
3. XenForo config.php ayarı
Kod:
$config['emailTransport'] = [
'smtp' => [
'host' => 'DOMAIN.COM',
'port' => 465,
'encryption' => 'ssl',
'auth' => true,
'username' => '[email protected]',
'password' => 'SIFRENIZ',
],
];
4. Kullandığın Servis'de PTR (Reverse DNS) ayarla
Networking → Primary IPs → Edit Reverse DNS → mail.DOMAIN.COM yaz.
IPv4 ve IPv6 için ayrı ayrı yapılmalı.
5. Postfix hostname'ini güncelle
Kod:
postconf -e "myhostname=mail.DOMAIN.COM"
systemctl restart postfix
6. IPv4'e zorla
Kod:
postconf -e "inet_protocols=ipv4"
systemctl restart postfix
Kontrol Komutları
Kod:
# PTR doğrulama
dig -x SUNUCU_IP +short
# SSL sertifika doğrulama
openssl s_client -connect DOMAIN.COM:465 2>/dev/null | openssl x509 -noout -subject
# Postfix ayarları
postconf -n | grep -E "myhostname|smtpd_tls_cert|inet_protocols"
# Mail logları
tail -50 /var/log/mail.log
Önemli Notlar
- Cloudflare'de mail A kaydı mutlaka "DNS only" (gri bulut) olmalı. Turuncu bulut yani proxied mail trafiğini bozar.
- config.php'deki $config['emailTransport'] ayarı, XenForo Admin Panel'deki mail ayarlarını ezer. (override eder.)
- /etc/hosts eklenmezse Cloudflare proxy'si nedeniyle sunucu kendi kendine bağlanamaz.
Umarım aynı sorunu yaşayanlara yardımcı olur.
Selametle.
