Yapılandırma
Önceki Postfix Kurulumu Sonraki
Yapılandırma
postfix Yapılandırması
Artık postfix'imiz çalışabilir durumda. Sıra yapılandırmaya geldi. postfix'in yapılandırma dosyaları bir değişiklik yapmadıysanız /etc/postfix dizini altında bulunuyor. /etc/postfix/main.cf dosyası bizim oyuncağımız olacak. Bu dosyayı açıp içindeki değerlerlerle oynayabilirsiniz ya da sunucunun çalışması için gerekli olan aşağıdaki satırları /etc/postfix/main.cf dosyasının sonuna ekleyebilirsiniz. Ben öyle yapıyorum, en azından ne değişiklik yapmışım ekranda görüyorum.
/etc/postfix/main.cf dosyası:
mydomain = genco.gen.tc
myhostname = smtp.genco.gen.tc
mynetworks = 144.122.211.1/32, 127.0.0.0/8
virtual_alias_maps = hash:/etc/postfix/virtual-users
virtual_alias_domains = /etc/postfix/local-domains
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated, \
  permit_mynetworks,check_relay_domains
inet_interfaces = all
alias_maps = hash:/etc/aliases
smtpd_banner = smtp.genco.gen.tc ESMTP
smtpd_helo_required = yes
disable_vrfy_command = yes
mime_header_checks = regexp:/etc/postfix/mime_header_checks.regexp
header_checks = regexp:/etc/postfix/header_checks
Şimdi bu yukarıdaki değişkenler ne, onları açıklayalım:
mydomain
Makinanızın asıl alan adı olarak kabul ettiğimiz alan adını buraya yazıyoruz.
myhostname
SMTP sunucumuzun tam adı. Daha önce söylediğim gibi ters çözünürlük kaydındaki adı olmasına özen gösterin.
mynetworks
postfix'imizin relay'e izin verdiği IP blokları.
virtual_alias_maps
E-posta adresleriyle kullanıcı eşleşmelerinin yapılacağı dosyanın ismi.
virtual_alias_domains
Hangi alan adları için ileti kabul etmek istiyorsanız bu dosyanın içine yazın.
inet_interfaces
SMTP sunucunun hangi arayüzleri dinleyeceğini belirtir.
alias_maps
Takma adlarımızın bulunduğu dosyamızın ismi.
smtpd_banner
SMTP sunucunuza bağlanıldığında sunucunuzun vereceği selam :)
smtpd_helo_required
SMTP protokolü sununucuya bağlantı yapmak isteyen istemcilerin kendilerini tanıtmalarını ister (RFC 282). Bu bir zorunluluk değildir ama istenir. Olmazsa da olur. Bazı spam yazılımları helo aşamasına uymadıkları için bunu etkinleştirmek iyi olacaktır.
disable_vrfy_command
postfix, vrfy komutu isteklerine cevap verir :(. Bu değişken bunu kapatmamızı sağlıyor.
mime_header_checks
Bu değişkenin belirttiği dosyadaki değerlere göre bazı kısıtlamalar getirebiliyoruz. Örneğin bazı dosya uzantılarını kısıtlamak istiyorsunuz, bu dosya içine aşağıdaki örnekte belirtilenleri yazmanız yeterli oluyor.
header_checks
İleti başlık bilgilerine göre (örn, konu, kimden, kime satırlarına göre) kısıtlama yapabiliyorsunuz.
Şimdi; yukarıdaki değişkenlerden mime_header_checks ve header_checks iki dosya adı belirtiyor. Bu dosyaların yapıları nasıl olmalı?
Örnek 8.2. /etc/postfix/mime_header_checks.regexp dosyası
/filename=\"?(.*)\.(bat|chm|cmd|com|do|hta|jse|rm|scr|pif|vbe|vbs|vxd|xl)\"?$/
   REJECT For security reasons we reject attachments of this type / Guvenlik ¬
    sebebiyle bu turdeki ek dosyalar sunucumuz tarafindan kabul edilmemektedir

/^\s*Content-(Disposition|Type).*name\s*=\s*"?(.+\.(lnk|asd|hlp|ocx|¬
reg|bat|c[ho]m|cmd|dll|vxd|pif|scr|hta|jse?|sh[mbs]|vb[esx]|ws[fh]|¬
wav|mov|wmf|xl))"?\s*$/
   REJECT Attachment type not allowed. File "$2" has the unacceptable ¬
   extension "$3" / "$2" dosyasi istenmeyen "$3" uzantisini icermektedir
Yukarıdaki kural neticesinde sisteminize gelen ve uzantıları bat, chm, cmd, com, do, hta, jse, rm, scr, pif, vbe, vbs, vxd, xl olan ek dosyalar içeren iletiler "REJECT" ifadesinden sonraki cümleyle reddedilecektir.
Diğer dosyamızda ise ileti başlık bilgilerine göre kısıtlama yapıyoruz.
Örnek 8.3. /etc/postfix/header_checks dosyası
/^Subject:.Re:.Approved/           DISCARD Likely SOBIG.F Virus
/^Subject:.Re:.Details/            DISCARD Likely SOBIG.F Virus
/^Subject:.Re:.Re:.My.details/     DISCARD Likely SOBIG.F Virus
/^Subject:.Re:.My.details/         DISCARD Likely SOBIG.F Virus
/^Subject:.Re:.Thank.you!/         DISCARD Likely SOBIG.F Virus
/^Subject:.Re:.That.movie/         DISCARD Likely SOBIG.F Virus
/^Subject:.Re:.Wicked.screensaver/ DISCARD Likely SOBIG.F Virus
/^Subject:.Re:.Your.application/   DISCARD Likely SOBIG.F Virus
/^Subject:.Thank.you!/             DISCARD Likely SOBIG.F Virus
/^Subject:.Your.details/           DISCARD Likely SOBIG.F Virus

/^Subject:.*read it immediately/ REJECT We dont accept virus your subject is ¬
  treated as a worm
/^Subject:.*fake/ REJECT We dont accept virus your subject is treated as a worm
/^Subject:.*stolen/ REJECT We dont accept virus your subject is treated as a worm
/^Subject:.*something for you/ REJECT We dont accept virus your subject is ¬
  treated as a worm
/^Subject:.*WINING NOTIFICATION/ REJECT We dont accept virus your subject is ¬
  treated as a worm
Yukarıdaki dosyanın ne anlattığı açıktır umarım. Bu konularla gelen e-postalar belirtilen ifadelerle reddedilir.
Bazı Kullanışlı Komutlar
Postfix'ile kullanacağımız bir takım komutlarda mevcut. Birkaç komut aşağıda belirtilmiştir.
postfix reload
Sunucu yapılandırma dosyasında bir değişiklik yapıldığında değişiklikleri uygular.
postalias /etc/aliases
Yeni bir takma ad (alias) eklediğimizde geçerli olması için çalıştırmamız gerekir.
postmap /etc/postfix/virtual-users
virtual_alias_maps ile belirtilen dosyaya yeni bir e-posta adresi eklediğimizde çalıştırmamız gerekir.
postqueue -p
Sendmail'deki gibi kuyruktaki iletileri görmek isterseniz.
postsuper
Kuyruktaki iletiler ile ilgili işlem yapabilmek için (bir takım parametreler girmeniz gerek).
saslauth Yapılandırması
Aşağıdaki satırları /etc/rc.d/saslauthd dosyası içine yazıp,
#!/bin/sh -e

NAME=saslauthd
DAEMON="/usr/local/sbin/${NAME}"
DESC="SASL Authentication Daemon"
DEFAULTS=/etc/default/saslauthd

test -f "${DAEMON}" || exit 0

# Varsayilan degerler dosyasi; betigi yapilandirmak icin
# bu dosyayla  oynayabilirsiniz.
if [ -e "${DEFAULTS}" ]; then
    . "${DEFAULTS}"
fi

# Postfix baslamiyorsa , cik
if [ "${START}" != "yes" ]; then
    exit 0
fi

# Tanimli bir mekanizma yoksa
if [ "x${MECHANISMS}" = "x" ]; then
   echo "${DEFAULTS} degerlerini mekanizmalarla birlikte yapilandirmalisiniz. "
   exit 0
fi

for i in ${MECHANISMS}; do
    PARAMS="${PARAMS} -a ${i}"
done

case "${1}" in
  start)
        echo -n "Starting ${DESC}: "
        ln -fs /var/spool/postfix/var/run/${NAME} /var/run/${NAME}
        ${DAEMON} ${PARAMS}
        echo "${NAME}."
        ;;
  stop)
        echo -n "Stopping ${DESC}: "
        PROCS=`ps aux | grep -iw '/usr/sbin/saslauthd' \
        | grep -v 'grep' |awk '{print $2}' | tr '\n' ' '`
        if [ "x${PROCS}" != "x" ]; then
          kill -15 ${PROCS} &> /dev/null
        fi
        echo "${NAME}."
        ;;
  restart|force-reload)
        $0 stop
        sleep 1
        $0 start
        echo "${NAME}."
        ;;
  *)
        echo "Usage: /etc/init.d/${NAME} {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

exit 0
755 izinlerini verin:
chmod 755 /etc/rc.d/saslauthd
rm -rf /var/run/saslauthd
mkdir /var/run/saslauthd
/etc/default/saslauthd dosyasına şu satırları yazalım.
START=yes
#Bu MECHANISMS seçeneği kimlik doğrulama yöntemini belirtiyor.
#PAM desteği için pam yazabilirsiniz.Pam olmadan yapmak için shadow
#yazmanız gerekli.(ahh.. ah.. slackware de PAM yok)
MECHANISMS=shadow
Şimdi bütün işlerimizin bitmiş olması gerek.Tek yapmadığımız sunucu betiklerini açılışa koymamak. Açılışta başlaması için dağıtımınıza göre
# /etc/rc.d/saslauthd start
# /etc/rc.d/postfix start
komutlarını açılışta işletmeniz gerekli.
Sisteminizde AUTH desteği olup olmadığını öğrenmek için sunucunun 25. portuna telnet çekelim. ehlo genco.gen.tc yazdığımızda aşağıdaki şekilde bir çıktı veriyorsa işimiz tamamdır.
bash-2.05b# telnet smtp.genco.gen.tc 25
Trying 144.122.211.1...
Connected to smtp.genco.gen.tc.
Escape character is '^]'.
220 smtp.genco.gen.tc ESMTP
ehlo genco.gen.tc

250-smtp.genco.gen.tc
250-PIPELINING
250-SIZE 10000000
250-ETRN
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME
İşimiz bitti.Esenlikler dilerim.
Önceki Üst Ana Başlık Sonraki
Kurulum Başlangıç Sonsöz
Bir Linux Kitaplığı Sayfası