Postfix ve Dovecot'u MySQL Yetkilendirmesi Ile Calistirmak
From Lapis Wiki
Bu makale NASIL bölümü serisinin bir parçasıdır
|
| MasaÜstü • Donanım • Ağ • Dağıtımlar |
| Tarayıcılar• Programlama • Linux ve Oyunlar |
Konu başlıkları |
Giris
Bu belgenin hazirlanis amaci posta sunucularinda yetkilendirme amacli kullanilan standart linux kullanicilari yerine mysql veritabanini kullanmak ve anti-virus ve spam engelleyici programlarla posta sunucunuzun guclendirilmesidir. Posta sunuculari icin yetkilendirme amacli mysql kullanmanin baslica avantajlari:
1. Kabuk guvenligi, 2. Kullanici uzerine daha cok bilgi barindirabilme, 3. Makineye bagli limitsiz kullanici olusturabilmedir
Asagidaki ayarlar benim sistemimde olusturdugum vmail kullanici icin yapilmistir. Bu yuzden oncelikle bu kullaniciyi asagidaki komutla olusturmaniz gerekiyor:
adduser vmail
Eger isterseniz vmail yerine farkli bir kullanici yaratip asagidaki ayar dosyalarini bu kullaniciya gore duzenleyebilirsiniz.
SASL ile MySQL kullanmak icin cyrus-sasl-sql paketinin sisteminizde yuklu olduguna emin olun. Eger yoksa yum ile kolayca yukleyebilirsiniz.
yum install cyrus-sasl-sql
NOT: Bu bolum NASIL: Fedora Core 4 Altinda Postfix Dovecot SASL Kurulumu makalesinde anlatilan temel Postfix, Dovecot ve CyrusSASL kurulumlarini yaptiginizi varsaymaktadir.
Postfix Ayarlari
Fedora icin standart olarak rpm paketleri varsayilan olarak mysql yetkilendirmesini desteklememektedir. Bunun icin yapmamiz gereken Postfix'in kaynak rpm dosyasinin icinden MYSQL destegini acik hale getirmektir. Bunun icin en son Postfix Kaynak RPM dosyasini sisteminize indirin ve
rpm ivh postfix.x.src.rpm cd /usr/src/redhat/SPECS/ vi postfix.spec
postfix.spec dosyasinin icinde "%define MYSQL 0" satirini bulun ve bunu "%define MYSQL 1" olacak sekilde degistirin. Simdi yapmamiz gereken kaynak rpm dosyasini yeniden derlemek ve sistemimize kurmak. Bunun icin asagidaki komutlari kullanabilirsiniz.
rpmbuild -ba postfix.spec cd /usr/src/redhat/RPMS/i386/ rpm -ivh postfix.x.rpm
Daha onceki Postfix kurulumunda yaptigimiz /etc/postfix/main.cf dosyasindaki smtpd_recipient_restrictions kismini asagidaki satir ile degistirelim,
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unauth_destination, reject_unauth_pipelining, reject_invalid_hostname
ve asagidaki satiri da ekleyelim,
smtpd_sasl_local_domain = $myhostname
/etc/postfix/main.cf dosyasinda yapacagimiz son degisiklik MySQL yetkilendirmesini tanitmak icin asagidaki satirlari dosyanin en sonuna eklemek,
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf virtual_gid_maps = static:87 virtual_mailbox_base = /home/vmail virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf virtual_minimum_uid = 87 virtual_transport = virtual virtual_uid_maps = static:87
Postfix Ayarları 2
/etc/postfix/main.cf dosyasının sonuna yazdigimiz virtual kurallarinda belirtilmis dosyalari yaratalim.
mysql_virtual_alias_maps.cf
user = postfix password = postfix hosts = localhost dbname = postfix table = alias select_field = goto where_field = address
mysql_virtual_domains_maps.cf
user = postfix password = postfix hosts = localhost dbname = postfix table = domain select_field = domain where_field = domain additional_conditions = and backupmx = '0' and active = '1'
mysql_virtual_mailbox_maps.cf
user = postfix password = postfix hosts = localhost dbname = postfix table = mailbox select_field = maildir where_field = username
Dovecot Ayarları
/etc/dovecot-mysql.conf adinda bir dosya olusturun ve icine sunlari yazin:
db_host = 127.0.0.1 db_port = 3306 db = postfix db_user = postfix db_passwd = postfix db_client_flags = 0 default_pass_scheme = PLAIN password_query = SELECT password FROM mailbox WHERE username = '%u' user_query = SELECT maildir, 87 AS uid, 87 AS gid FROM mailbox WHERE username = '%u'
/etc/dovecot.conf dosyasinin icinde su satirlarin varligini kontrol edin. Olmayanlari siz yazin, farkli olanlari degistirin:
auth_userdb = mysql /etc/dovecot/dovecot-mysql.conf auth_passdb = mysql /etc/dovecot/dovecot-mysql.conf first_valid_uid = 87 default_mail_env = maildir:/home/vmail/%d/%n
Diger Ayarlar
Yukaridaki ayarlari yaptiysaniz sira geldi bir kullanici olusturmaya. Su ana yaptigimiz tum ayarlamalar vmail kullanicisi uzerineydi, eger farkli bir kullanici uzerine islem yapmak istiyorsaniz yukarida vmail gordugunuz yerlere kendi kullanicinizi yaziniz. Ayrica 106 gordugunuz tum yerleri sisteminizde bulunan postfix kullanicisinin id'si ile degistirmeniz gerekli. test kullanicisini asagidaki komutlarla olusturalim:
mkdir -p /home/vmail/domain_adiniz.com/test chmod -R 770 /home/vmail chown -R postfix:postfix /home/vmail/
SASL icin de MySQL yetkilendirmesini aktif hale getirelim. Bunun icin /usr/lib/sasl2/smtpd.conf dosyasina asagidaki satirlari yerlestirmemiz yeterli olacaktir. Eger daha onceden bu dosyada ayarlar varsa onlari yorum haline getirmeniz sistemin duzgun calismasi acisindan yararli olacaktir.
pwcheck_method: auxprop mech_list: PLAIN LOGIN auxprop_plugin: sql sql_verbose: yes sql_engine: mysql sql_hostnames: localhost sql_user: postfix sql_passwd: postfix sql_database: postfix sql_select: select password from mailbox where username = '%u@%r'
Veritabani Semasi
Anlatilan tum ayarlar PostfixAdmin MySQL veritabani semasi uzerine kurulmustur. Bunun icin PostfixAdmin'in sitesinden kurulum dosyasini indirip, sikistirilmis dosya icerisindeki DATABASE_MYSQL.TXT dump dosyasini asagidaki komutla MySQL'e aktarmaniz gerekli:
mysql -u root -p < DATABASE_MYSQL.TXT
Yeni Kullanici Olusturma
Yeni kullanici olusturmak icin en kolay yontem PostfixAdmin kullanmaktir. PostfixAdmin'i kullanarak sisteminizde kolaylikla yeni domain tanimlayabilir, takma ad olusturabilir ve kullanici yaratabilirsiniz. Tabi bunun icin posta sunucusu kurulu sistemlerinizde eger kurulu degilse bir web sunucusu kurmaniz gerekiyor. Veritabani Semasi bolumunde gerekli veritabani altyapisini olusturmak icin zaten PostfixAdmin'i indirmistik. Simdi PostfixAdmin kurulumunu yapalim. Oncelikle yapmamiz gereken PostfixAdmin'i web sunucu uzerinde herhangi bir tarayici ile erisebilecegimiz klasore aktaralim. Ornegin /var/www/html/postfixadmin. Daha sonra klasorun icerisindeki config.inc.php.sample dosyasinin adini config.inc.php olarak degistirelim:
mv config.inc.php.sample config.inc.php
config.inc.php dosyasinin icinde "change-this-to-your.domain.tld" yazan yerleri "domain_adiniz.com" olacak sekilde degistirin. En son olarak asagida belirtilen degiskenleri karsisindaki degerlerle degistirin:
$CONF['domain_path'] = 'YES'; $CONF['domain_in_mailbox'] = 'NO'; $CONF['encrypt'] = 'cleartext';
Evet artik PostfixAdmin'e tarayicinizin adres kismina http://domain_adiniz.com/postfixadmin yazarak erisebilirsiniz. Tabi kullanici olusturma bununla bitmiyor. Yeni kullanici olusturmak icin /home/vmail klasoru altina gidip varsayilan domain_adinizin klasoru altinda da kullaniciyi yaratmaniz gerekiyor. Bunun icin asagidaki komutlari kullanabilirsiniz:
mkdir -p /home/vmail/domain_adiniz.com/yeni_kullanici chmod -R 770 /home/vmail chown -R postfix:postfix /home/vmail/
Final
Yukaridaki tum islemleri eksiksiz yaptiginiz takdirde mysql yetkilendirme destekli posta sunucunuz hizmete hazir demektir. Hayirli ugurlu olsun:)
Bağlantılar
Dahili Bağlantılar
Konu ile ilgili fikirlerinizi paylaşmak için; Lapis Wiki Başlığı
Harici Bağlantılar
Belge Hakkında
Bu belge Orcunyucel tarafından hazırlanmıştır...

