Queue Postfix Penuh Karena Virus/Spam?

postfixTiba-tiba queue di Postfix penuh oleh email spam atau virus yang berasal dari tempat lain atau network sendiri? Hal tersebut menyebabkan email datang terlambat atau email yang mau keluar juga tersendat. Apa yang harus dilakukan? Jangan panik, mungkin tips berikut ini bisa bermanfaat.

Langkah yang paling mudah tapi sangat tidak dianjurkan adalah menghapus queue, misalnya dengan postsuper atau dengan menghapus/merename direktori queue Postfix. Alternatif lain adalah menjalankan Postfix dengan queue direktori yang berbeda. Dengan cara yang kedua ini, email masih bisa masuk dan keluar sambil kita membersihkan queue yang lama. Mari kita coba skenario yang kedua :)

Yang pertama kali dilakukan adalah memeriksa dari mana sumber virus/spam tersebut. Ambil salah satu sampel email dari mailq(1) dan kemudian lihat headernya dengan menggunakan postcat(1). Alternatif lain adalah dengan mengamati log transaksi Postfix, namun lebih rumit. Kalau sudah diketahui asalnya dan masih ada transaksi, sebaiknya aksesnya diblok dulu, bisa menggunakan access(5) di Postfix atau lebih baik tutup akses ke port 25-nya langsung.

Selanjutnya, buatlah sebuah direktori yang akan digunakan sebagai queue sementara, misalnya /var/spool/postfix2. Salin direktori /etc/postfix ke /etc/postfix2:

$ cp -pr /etc/postfix /etc/postfix2

Edit file main.cf pada /etc/postfix2, tambahkan atau ubah queue_directory menjadi:

queue_directory = /var/spool/postfix2

Tips dari mas Ronald, untuk Postfix yang di chroot, setup terlebih dahulu konfigurasi chrootnya di direktori spool yang baru, dan tambahkan :

alternate_config_directories = /etc/postfix2/

Jalankan postfix check untuk membuat sub-sub direktori pada /var/spool/postfix2:

$ postfix -c /etc/postfix2 check

Maka akan dibuat direktori sebagai berikut :

$ ls -l /var/spool/postfix2
total 56
drwx------ 2 postfix root     4096 2009-10-03 09:02 active
drwx------ 2 postfix root     4096 2009-10-03 09:02 bounce
drwx------ 2 postfix root     4096 2009-10-03 09:02 corrupt
drwx------ 2 postfix root     4096 2009-10-03 09:02 defer
drwx------ 2 postfix root     4096 2009-10-03 09:02 deferred
drwx------ 2 postfix root     4096 2009-10-03 09:02 flush
drwx------ 2 postfix root     4096 2009-10-03 09:02 hold
drwx------ 2 postfix root     4096 2009-10-03 09:02 incoming
drwx-wx--- 2 postfix postdrop 4096 2009-10-03 09:02 maildrop
drwxr-xr-x 2 root    root     4096 2009-10-03 09:02 pid
drwx------ 2 postfix root     4096 2009-10-03 09:02 private
drwx--x--- 2 postfix postdrop 4096 2009-10-03 09:02 public
drwx------ 2 postfix root     4096 2009-10-03 09:02 saved
drwx------ 2 postfix root     4096 2009-10-03 09:02 trace

Direktori queue yang baru siap dipakai dan Postfix siap untuk dijalankan :

$ postfix -c /etc/postfix2/ start

Maka akan tampil di log seperti berikut ini :

$ tail -f /var/log/mail.info
Oct  3 09:05:37 gatotkoco postfix/postfix-script[1803]: starting the Postfix mail system
Oct  3 09:05:37 gatotkoco postfix/master[1804]: daemon started -- version 2.5.1, configuration /etc/postfix2/

Postfix sudah berjalan dengan menggunakan direktori queue alternatif dan queue yang lama bisa mulai dibersihkan. Tool untuk melihat queue di Postfix favorit saya adalah mailqfmt oleh Matthias Andreee.

Untuk mengelola Postfix default, bisa menggunakan perintah seperti biasa seperti mailq, postcat, postsuper dan sebagainya. Sedangkan untuk mengelola Postfix alternatif ini, gunakan perintah dengan menambahkan argumen -c /etc/postfix2. Khusus untuk mengelola queue alternatif, export enviroment MAIL_CONFIG ke direktori queue alternatif seperti contoh berikut ini :

$ export MAIL_CONFIG=/etc/postfix2
$ mailq
Mail queue is empty

Kembali ke queue default (/etc/postfix) :

$ unset MAIL_CONFIG
$ mailq
postqueue: warning: Mail system is down -- accessing queue directly
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
9FDB21B4282     4710 Sat Oct  3 23:57:58  backup
                                         notifications@localhost
F0FEC1B4429    11590 Sun Oct  4 23:03:44  backup
                                         notifications@localhost
-- 65 Kbytes in 2 Requests.

Semoga bermanfaat.

5 Replies

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.