pflogsumm ile Günlük Rapor

Sunucu üzerinde e-posta gönderimi, alımı gibi işlemlerin neler olduğunu görmej istersiniz. Postfix Mail Sunucusu kullanıyor iseniz pflogsumm kurmanızı ve günlük cron tanımlayarak rapor almanızı öneririm.

Bu raporlama sayesinde, kime kaç tane posta gelmiş, kimlerden gelmiş, hangi saatler arası posta hareketliliği olmuş vb bir çok bilgi gelecektir.

pflogsumm Kurmak İçin

yum install postfix-perl-scripts.x86_64

Aşağıdaki komutu SSH üzerinden çalıştırarak sonuçları görebilirsiniz.

perl /usr/sbin/pflogsumm -e -d yesterday /var/log/maillog

Kendinize günlük rapor gelmesini istiyorsanız. postfix_report.sh dosyasının aşağıdaki gibi oluşturun, içine ilgili satırdaki kodları girin saklayarak dosyadan dıkış yapın ve ardından çalıştırma yetkisini verin. Günlük gece 00:00 raporlama için 0 0 * * * ile cronu ekleyin. cron servislerini yeniden başlatmayı unutmayın.

nano /usr/local/sbin/postfix_report.sh

#!/bin/sh
perl /usr/sbin/pflogsumm -e -d yesterday /var/log/maillog | mail -s “Postfix Mail Statistics” epostaadresiniz@domain.com
exit 0

chmod +x /usr/local/sbin/postfix_report.sh

crontab -e

0 0 * * * /usr/local/sbin/postfix_report.sh &> /dev/null

Toplu E-Posta Çıkışını Loglardan Bulmak

Postfix Toplu E-posta Çıkış Kaynağını Bulma

Bizler ne kadar sunucuda güvenlik tedbirleri alsakta, mutlaka hepimizin başına abuse bildirim gelmektedir.

Genellikle müşterilerinizin bilgisayarlarına virus bulaşıp e-posta adresinin şifresi kaptırmış olmalarından kaynaklanır.

Her ne kadar abuse bildirimler toplu eposta çıkışımdan kaynaklı olmasada gönderilen içerik sahtekarlık ve aldatıcı e-posta olmasından dolayı acil müdehale edip gereğini yaparak abuse bildirimini sonlandırmanız gerekmektedir. Aksi taktirde sunucudaki IP adresine 24 saat sonunda Blok koyulur.

Postfix maillog kayıtları içinde size rapor edilen e-posta adresini aratınız.
bir dünya sonuç listenecektir. bizim için önemli olan ilk bulduğumuz satırdır.

cat /var/log/maillog sikayetli@postadresi.com.tr

Not : sikayet gelmemiş fakat kuyrukta çok fazla e-posta varsa hızlıca

cat /var/log/maillog | grep “sasl_method=LOGIN” 

komutu ile login olan kişileri gözden geçirerek bulmaya çalışırsınız. Örneğin bölge dışı aynı IP yada farklı IP den artarda bağlantı olunması gibi aşağıdaki örnekte görüldüğü şekli ile

Oct 18 12:15:20 server postfix/smtpd[21015]: C7CE7C5037FC5: client=unknown[13.72.68.51], sasl_method=LOGIN, sasl_username=eposta@alaadı.com

Oct 18 12:15:23 server postfix/smtpd[21015]: DC391C5037FC7: client=unknown[13.72.68.51], sasl_method=LOGIN, sasl_username=eposta@alaadı.com

Bize abuse ile postaadresi bildirildiğini düşünerek devam edelim.

Örnek :
Jun 3 02:44:21 server postfix/cleanup[12151]: 946E1C048889F: message-id=8ac9562f29d802cf404293718b63ba8f@postadresi.com.tr

gibi bir satır bulacaksınız bu satırın bir satır öncesi yada bir kaç satır öncesini dikkatli inceleyiniz.

946E1C048889F id olan client ve sasl_method değerlerini inceleyin. Aşağıdaki gibi satır bulacaksınız.

Jun 3 02:44:20 server postfix/smtpd[1144]: 946E1C048889F: client=localhost.localdomain[127.0.0.1], sasl_method=LOGIN, sasl_username=info@domain.com

sisteme legal olarak oturum açtığı info@domain.com kullanarak, illagel bir gönderimde bulunduğunu yüzlerce e-postayı kuyruğa girdiğinden anlamış olmalısınız.

yine hemen devamında kuyruğa e-posta soktuğu ve peşinden disconnect olduğunu göreceksiniz.

Jun 3 02:44:21 server postfix/qmgr[23595]: 946E1C048889F: from=sikayetli@postadresi.com.tr, size=1104752, nrcpt=500 (queue active)
Jun 3 02:44:21 server postfix/smtpd[1144]: disconnect from localhost.localdomain[127.0.0.1]

cat /var/log/maillog |grep sasl_username=info@domain.com

komutu ilede incelemeye devam edersiniz.

yine

cat /var/log/dovecot-info.log |grep info@domain.com ile bağlantı saatine dikkate alarak ip adresini tespit edebilirsiniz.

ardından sistem info@domain.com hesabını suspend etmek yada şifresini değiştirmek. Ancak müşterinize şifresini hemen vermeyin, bilgisayarını virus taramasından geçirmesini talep edin. yoksa aynı şey tekrar tekrar devam edecektir. ardından tespit ettiğimiz ip adresini güvenlik duvarından engelleyin.

Postfix IP Değiştirme (Change)

Sunucunuzda postfix kurulu ise default e-posta gönderim ip adresi Ana IP adresinizdir. Olası bir toplu e-posta çıkışı söz konusu olursa ve bu ip kara listeye girmiş ise, kara listeden çıkarmak için beklenecek vakit söz konusu değil ise hemen yapılması gereken işlem, Sunucu üzerinden gönderilecek e-postaların Farklı bir IP adres üzerinden göndermeyi ayarlamak olacaktır. Bunun için yapmanız gereken işlem

SSH ile Sunucunuza bağlanın

nano /etc/postfix/master.cf dosyasını açın ve aşağıdaki satırı 4 satırı bulun ve kaldırın.

smtp unix – – n – – smtp
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops
relay unix – – n – – smtp
 -o fallback_relay=

Yerine Bu Satırları Ekleyin.

smtp unix – – n – – smtp
-o smtp_bind_address=81.181.81.181-Sizin-IP-Adresiniz-Olmalı
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops
relay unix – – n – – smtp
-o smtp_bind_address=81.181.81.181-Sizin-IP-Adresiniz-Olmalı
-o smtp_fallback_relay=

Düzenlemeyi kayıt edin ve nano edit programından çıkın.

service postfix restart

komutu ile servisi yeniden başlatın. artık yeni ip adresiniz üzerinden gönderim yapacaktır.

Not : buradaki satırları kopyalayıp yapıştırınca postfix servisi yeniden çalışmayarak bu satırlarda hata var diyebilir.

bunun için dikkat edilmesi gereken – bu işaretler arasında tab boşluğun olmmasından kaynaklanır. Bu neden bu düzenlemeyi yaparken mevcut kayıtlı satırlardan yararlanarak yapılmasını tavsiye ederim.

 

Postfix Komutları

Postfix mail servisi cevap vermemesi veya mail boyutunun büyük olması, spam yapılması sebebi ile mail kuyruğununda birikime neden olması ve gönderilmiş e-postaların geç gitmesi gibi sorunlarla mücadele için postfix komutları ssh üzerinde kullanılması işinizi kolaylaştıracaktır.

Kuyrukta biriken mailleri görmek için

mailq

Kuyruktaki maillerin kaç tane olduğunu ve maillerin idleri görmek için

postqueue -p

postqueue -p = mailq 

postqueue -p | tail -n 1

postqueue -p | grep -c “^[A-Z0-9]”

postqueue -p | awk ‘/^[0-9,A-F]/ {print $7}’ | sort | uniq -c | sort -n

ID lerini gördükten sonra “AB244A9” idli mailin içeriklerini okumak için

postcat -q AB244A9

Kuyrukta biriken mailleri zorla göndermek için

postfix flush veya postfix -f

Kuyruktaki mailleri silmek için

postsuper -d ALL

İletilmesi ertelenmiş mailleri silmek için

postsuper -d ALL deferred

Id sini bildiğiniz kuyrukta biriken maili silmek için

postsuper -d queue_id

Kuyruktaki bekleyen ve belirli e-postayı silmek için

mailq | tail -n +2 | grep -v ‘^ (‘ | awk ‘BEGIN { RS = “” } { if ($8 == “eposta@domainadresi.com” && $9 == “”) print $1 } ‘ | tr -d ‘!’ | postsuper -d –

bir adrese giden tüm emailleri silmek icin

mailq | tail +2 | awk ‘BEGIN { RS = “” } / user@domain.com$/ { print $1 } ‘ | tr -d ‘!’ | postsuper -d – mailq | tail -n +2 | awk ‘BEGIN { RS = “” } / user@domain.com$/ { print $1 } ‘ | tr -d ‘!’ | postsuper -d –

bir adresten gönderilen emailleri silmek icin

mailq | grep “user@domain.com” | awk ‘{ print $1}’ | postsuper -d –

E-Posta gönderini user@domainadresi.com olanları siler

postqueue -p | grep ‘^[A-Z0-9]’|grep user@domainadresi.com|cut -f1 -d’ ‘ |tr -d *|postsuper -d –

E-Posta alıcısı user@domainadresi.com olanları siler

postqueue -p | awk ‘/^[0-9,A-F].*user@domainadreesi.com / {print $1}’ | cut -d ‘!’ -f 1 | postsuper -d –

Kuyrukta olan user@domain.com ait tün postaları siler

for i in postqueue -p | grep user@domain.com | awk '{print $1}' | grep -v host | grep -v \*; do postsuper -d $i; done

Göndereni @domainadi.com olanları hepsini siler.

postqueue -p | grep ‘^[A-Z0-9]’|grep @domainadi.com|cut -f1 -d’ ‘ |tr -d *|postsuper -d –

Kuyruk ayarlarını görmek için (ayrıntılı görmek için main.cf veya master.cf)

postconf -d | grep queue

Postfix Sürümü öğrenmek için

postconf mail_version

Varsayılan Postfix ayarlarını görmek için

postconf -d

Varsayılan olmayan Postfix ayarlarını görmek için

postconf -n

Canlı Mail Loglarını görmek için

tail -f /var/log/maillog

Ayarları yeniden yüklemek için

service postfix reload

E-Posta servisini yeniden başlatmak için

service postfix restart