Qmail ile dosya tipine gore attachment filitreleme

Serhat Selahattin Umar <serhat@secureinbox.net>
12/11/2005

Bu mini-howto dosya tipine gore mail attachment filtrelemeyi ayrica zip ile compress edilmis dosyalar icindeki attachment lari da kontrol etmeyi icermektedir.

Renattach stdin den mail dosyasini okur uzantisi ne olursa olsun header larindan kontrol edip dosyanin tipini belirleyip config de belirtilen rule lari maile uygular, maili sildirebilir, attachment i sildirebilir veya maile istediginiz bir header ekleyebilir daha sonra kendi filter programiniz ile kesebilirsiniz. Ayrica Renattach zip ile compress edilmis dosyalari da (extra bir zip programina ihtiyac duymadan) acip icinde attachment kontrolü yapabilir.

renattach programini indirin ve kurun
http://www.pc-tools.net/files/unix/renattach-1.2.2.tar.gz

FreeBSD kullanicilari port dan kurabilirler, ben porttan kurdum

# cd /usr/ports/mail/renattach
# make install

qmail i durdurun

# qmailctl stop

mail filtrelemek icin daha önceden bir program kullaniyorsaniz (ben qsheff kullaniyorum) ve qmail-queue filtre programiniza link verilmis ise

# ls -l /var/qmail/bin/qmail-queue

lrwxr-xr-x 1 root qmail 27 Jul 21 12:50 qmail-queue -> /var/qmail/bin/qmail-qsheff

link i kaldirin ve /var/qmail/bin/qmail-queue olarak bir dosya olusturun icine;

# unlink /var/qmail/bin/qmail-queue
# vi /var/qmail/bin/qmail-queue

#!/bin/sh
/usr/local/bin/renattach | /var/qmail/bin/qmail-qsheff

kaydedin ve execute yetkisi verin;

# chmod +x /var/qmail/bin/qmail-queue


baska bir filtreleme programi kullanmiyorsaniz asagidaki adimi gerceklestirin.
once qmail-queue yu baska bir isimle tasiyin;

mv /var/qmail/bin/qmail-queue /var/qmail/qmail-queue.orig

daha sonra /var/qmail/bin/qmail-queue olarak bir dosya olusturun ve icinde asagidaki gibi qmail-queue.orig e yonlendirin;

#!/bin/sh
/usr/local/bin/renattach | /var/qmail/bin/qmail-queue.orig

Renattach portlardan kuruldugunda ornek config dosyasini /usr/local/etc/renattach.conf.ex olarak yaziyor. Bunu kendinize duzenleyip uzantisini conf olarak degistirebilirsiniz.

Bu dosyayi kendinize göre ayarlayin. Benim test asamasinda kullandigim dosyamin icerigi asagidaki gibi. /usr/local/etc/renattach.conf

delete_exe = no
kill_exe = yes
# Search for filenames inside ZIP files
search_zip = yes
# Log filtered mail (delete, kill) to syslog mail facility
use_syslog = yes
# Delete winmail (MS proprietary) attachments without modifying Subject,
# also drop emails containing annoying scanner-generated warning bounces
banned_files = /winmail/d, /warn.txt/k, DELETED0.TXT/k
subj_banned = #
subj_deleted = [deleted attachment]
subj_renamed = [renamed attachment]
# When these file types are encountered, rename the attachment (assuming
# filter is invoked with default action=rename). However, kill mail containing
# any BAT, COM, etc. attachments even if they are inside ZIP files. There is
# risk of collateral damage. EML//d means delete ZIPs that contain EML.
badlist = ADE, ADP, BAS, BAT/k, CHM, CMD/k, COM/k, CPL/k, CRT, EML//d, EXE/k
badlist = HLP, HTA/k, INF, INS, ISP, JS, JSE, LNK, MDB
badlist = MDE, MSC, MSH, MSI, MSP, MST, NWS, OCX, PCD, PIF/k, REG/k
badlist = SCR/k, SCT, SHB, SHS, URL, VB, VBE, VBS/k, WSC, WSF, WSH


config dosyanizi ayarladiktan
sonra qmail i baslatip test edebilirsiniz. Config dosyanizda maile extra bir header ekleyerek kendi mail filtre programiniz ile de konrtol edebilirsiniz. Uzun sure test imkanim olmadi, fakat herhangi bir yavasliga veya cpu yüküne test asamasinda rastlamadim.


Serhat Selahattin Umar
serhat@secureinbox.net