Bu makalemizde “Linux İşletim Sistemlerinde Posta Sunucusu (Mail Server) Yapılandırmasını” inceleyeceğiz.
Kurulum için İşletim Sistemi “CentOS Linux 6.4 64 Bit” posta sunucusu (mail server) yazılımı olarak “Zimbra Collaboration Suite Open Source 8.0.3 GA Edition” kullanacağız. İşletim sistemimizi “CentOS Linux İşletim Sistemi Kurulumu” makalemizden yararlanarak kurabilirsiniz. Posta sunucusu olarak kullanacağımız “Zimbra Collaboration” yazılımını sitesinden indirebiliriz.
1. Posta sunucumuzun DMZ (Demilitarized Zone) alanda bir firewall arkasında olduğunu varsayıyoruz ve sunucumuzun üzerindeki “Firewall” ve “SELinux” ayarlarını kapatıyoruz. DMZ alanlarda güvenlik bir Firewall cihazı ile sağlanması herzaman önerilen yapıdır. Bu ayarlarla birlikte “/etc/sudoers” dosyamızıda “ssh” erişimleri için düzenliyoruz.
# vim /etc/selinux/config -- Dosyasını açıyoruz ve aşağıdaki satırı "disabled" olarak ayarlıyoruz. SELINUX=disabled -- Firewall servisimizi durdurup kapatıyoruz. # service iptables stop # chkconfig iptables off # vim /etc/sudoers -- Dosyamızı açıp aşağıdaki satırda "#" işaretini koyuyoruz. # # Disable "ssh hostname sudo <cmd>", because it will show the password in clear. # You have to run "ssh -t hostname sudo <cmd>". # #Defaults requiretty -- Servisimizi yeniden başlatıyoruz. # service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]
2. Sunucumuzda varsayılan olarak gelen posta servisimiz varsa ve açıksa çakışma olmaması için kapatıyoruz.
# service postfix stop
# chkconfig postfix off
# service sendmail stop
# chkconfig sendmail off
3. Kurulum için gerekli işletim sistemi paketini kuruyoruz.
# yum install libtool-ltdl
4. Sunucumuzda “DNS Bind” paketini kuruyoruz.
# yum install bind-libs bind bind-utils
5. DNS Sunucumuz yoksa aşağıdaki yöntemle sunucumuzda “DNS Server” (DNS Bind) yapılandırması yapıyoruz.
# vim /etc/named.conf -- Dosyasında aşağıdaki satırları düzenliyoruz. Burada kendi sisteminize göre değişkenlerimizi yazıyoruz. // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // options { listen-on port 53 { 127.0.0.1; 192.168.2.120; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; recursion yes; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; forwarders { 78.40.225.138; }; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; zone "koraykey.net" IN { type master; file "koraykey.net.zone"; allow-update { none; }; }; zone "2.168.192.in-addr.arpa." IN { type master; file "2.168.192.in-addr.arpa"; allow-update { none; }; };
7. Yapılandırmış olduğumuz “koraykey.net” adresinin bize ait olduğunu onaylamak için gerekli ayarları yapıyoruz. Bunun için forward ve reverse “zone” dosyalarımızı oluşturuyoruz.
-- Zone Dosyalarımızı oluşturuyoruz. -- Forward Zone için # vim /var/named/koraykey.net.zone $TTL 86400 @ IN SOA localhost root.localhost ( 42 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS localhost localhost IN A 127.0.0.1 koraykey-ms IN A 192.168.2.120 www.koraykey.net IN A 192.168.2.120 ns.koraykey.net IN A 192.168.2.120 mx.koraykey.net IN A 192.168.2.120 mail.koraykey.net IN CNAME mx.koraykey.net -- Reverse Zone için # vim /var/named/2.168.192.in-addr.arpa $ORIGIN 2.168.192.in-addr.arpa. $TTL 1H @ IN SOA koraykey-ms.koraykey.net. root.koraykey.koraykey.net. ( 2 3H 1H 1W 1H ) 2.168.192.in-addr.arpa. IN NS koraykey-ms.koraykey.net. 120 IN PTR koraykey-ms.koraykey.net 120 IN NS ns.koraykey.net 120 IN PTR mx.koraykey.net 120 IN PTR www.koraykey.net
8. Sunucumuzda işlemleri tamamladıktan sonra servisimizi başlatıyoruz ve sunucumuz başladığında otomatik açılması için gerekli yapılandırmaları yapıyoruz.
-- Bu aşamada sunucumuzda "securedns" için rndc.key oluşuyor. Bu işlem biraz zaman alabilir. # service named start Generating /etc/rndc.key:[ OK ] Starting named: [ OK ] -- Sunucumuzda servisimizin açılırken otomatik başlaması için gerekli ayarı yapıyoruz. # chkconfig named on
9. Sunucumuzda DNS yapılandırmamız tamamladı. Şimdi isim çözümleyecek sunucularımız üzerinde “/etc/resolv.conf” dosyasına yapılandırdığımız bu sunucumuzun adresini giriyoruz.
# vim /etc/resolv.conf -- Dosyasını açıp aşağıdaki düzenlemeleri yapıyoruz. search koraykey.net nameserver 192.168.2.120
10. Yapmış olduğumuz ayarları kontrol ediyoruz ve çalıştığından emin oluyoruz.
# rndc status version: 9.8.2rc1-RedHat-9.8.2-0.17.rc1.0.2.el6_4.4 CPUs found: 2 worker threads: 2 number of zones: 18 debug level: 0 xfers running: 0 xfers deferred: 0 soa queries in progress: 0 query logging is OFF recursive clients: 0/0/1000 tcp clients: 0/100 server is up and running # nslookup mx.koraykey.net Server: 192.168.2.120 Address: 192.168.2.120#53 Name: mx.koraykey.net.koraykey.net Address: 192.168.2.120 # nslookup www.google.com Server: 192.168.2.120 Address: 192.168.2.120#53 Non-authoritative answer: Name: www.google.com Address: 173.194.44.20 Name: www.google.com Address: 173.194.44.16 Name: www.google.com Address: 173.194.44.17 Name: www.google.com Address: 173.194.44.18 Name: www.google.com Address: 173.194.44.19
11. Sunucumuzda yapacağımız ayarların ardından artık Posta Sunucusu (Mail Server) kurulumuna geçebiliriz. Öncelikle indirmiş olduğumuz “Zimbra Collaboration” yazılımını sunucumuzda oluşturacağımız bir dizin altına ftp yada başka bir yöntem ile atıyoruz. Eğer sunucumuzda ftp server özelliği aktif edilmemişse “Linux İşletim Sistemlerinde HTTP ve FTP Server Yapılandırması” makalemizden faydalanarak gerekli ayarları yapabiliriz.
-- Öncelikle kurulum dosyamızı koyabilmek için dizinimizi yaratıyoruz. # mkdir -p /u01/mail/zimbra -- FTP veya başka bir yöntem ile atmış olduğumuz dosyamızı kontrol ediyoruz. # cd /u01/mail/zimbra # ls zcs-8.0.3_GA_5664.RHEL6_64.20130305090204.tgz -- Dosyamızda gerekli izinleri veriyoruz. # chmod 775 * -- Dosyamızı açıyoruz. # tar -xvf zcs-8.0.3_GA_5664.RHEL6_64.20130305090204.tgz
12. Posta Sunucusu (Mail Server) yazılımının kuruluma başlıyoruz.
# cd /u01/mail/zimbra/zcs-8.0.3_GA_5664.RHEL6_64.20130305090204 # ./install.sh
13. Kurulumumuzun bundan sonraki aşamalarını aşağıdaki ekran çıktılarından takip edebilirsiniz. Kurulum aşamasında verilen yanıtları aşağıdaki gibi vermeliyiz.
Operations logged to /tmp/install.log.4278 Checking for existing installation... zimbra-ldap...NOT FOUND zimbra-logger...NOT FOUND zimbra-mta...NOT FOUND zimbra-snmp...NOT FOUND zimbra-store...NOT FOUND zimbra-apache...NOT FOUND zimbra-spell...NOT FOUND zimbra-convertd...NOT FOUND zimbra-memcached...NOT FOUND zimbra-proxy...NOT FOUND zimbra-archiving...NOT FOUND zimbra-cluster...NOT FOUND zimbra-core...NOT FOUND PLEASE READ THIS AGREEMENT CAREFULLY BEFORE USING THE SOFTWARE. ZIMBRA, INC. ("ZIMBRA") WILL ONLY LICENSE THIS SOFTWARE TO YOU IF YOU FIRST ACCEPT THE TERMS OF THIS AGREEMENT. BY DOWNLOADING OR INSTALLING THE SOFTWARE, OR USING THE PRODUCT, YOU ARE CONSENTING TO BE BOUND BY THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS AGREEMENT, THEN DO NOT DOWNLOAD, INSTALL OR USE THE PRODUCT. License Terms for the Zimbra Collaboration Suite: http://www.zimbra.com/license/zimbra_public_eula_2.1.html Do you agree with the terms of the software license agreement? [N] y Do you agree with the terms of the software license agreement? [N] y Checking for prerequisites... FOUND: NPTL FOUND: nc-1.84-22 FOUND: sudo-1.8.6p3-7 FOUND: libidn-1.18-2 FOUND: gmp-4.3.1-7 FOUND: /usr/lib64/libstdc++.so.6 Checking for suggested prerequisites... FOUND: perl-5.10.1 FOUND: sysstat FOUND: sqlite Prerequisite check complete. Checking for installable packages Found zimbra-core Found zimbra-ldap Found zimbra-logger Found zimbra-mta Found zimbra-snmp Found zimbra-store Found zimbra-apache Found zimbra-spell Found zimbra-memcached Found zimbra-proxy Select the packages to install Install zimbra-ldap [Y] y Install zimbra-logger [Y] y Install zimbra-mta [Y] y Install zimbra-snmp [Y] y Install zimbra-store [Y] y Install zimbra-apache [Y] y Install zimbra-spell [Y] y Install zimbra-memcached [N] y Install zimbra-proxy [N] y Checking required space for zimbra-core Checking space for zimbra-store Installing: zimbra-core zimbra-ldap zimbra-logger zimbra-mta zimbra-snmp zimbra-store zimbra-apache zimbra-spell zimbra-memcached zimbra-proxy The system will be modified. Continue? [N] y Removing /opt/zimbra Removing zimbra crontab entry...done. Cleaning up zimbra init scripts...done. Cleaning up /etc/ld.so.conf...done. Cleaning up /etc/prelink.conf...done. Cleaning up /etc/security/limits.conf...done. Finished removing Zimbra Collaboration Server. Installing packages zimbra-core......zimbra-core-8.0.3_GA_5664.RHEL6_64-20130305090204.x86_64.rpm...done zimbra-ldap......zimbra-ldap-8.0.3_GA_5664.RHEL6_64-20130305090204.x86_64.rpm...done zimbra-logger......zimbra-logger-8.0.3_GA_5664.RHEL6_64-20130305090204.x86_64.rpm...done zimbra-mta......zimbra-mta-8.0.3_GA_5664.RHEL6_64-20130305090204.x86_64.rpm...done zimbra-snmp......zimbra-snmp-8.0.3_GA_5664.RHEL6_64-20130305090204.x86_64.rpm...done zimbra-store......zimbra-store-8.0.3_GA_5664.RHEL6_64-20130305090204.x86_64.rpm...done zimbra-apache......zimbra-apache-8.0.3_GA_5664.RHEL6_64-20130305090204.x86_64.rpm...done zimbra-spell......zimbra-spell-8.0.3_GA_5664.RHEL6_64-20130305090204.x86_64.rpm...done zimbra-memcached......zimbra-memcached-8.0.3_GA_5664.RHEL6_64-20130305090204.x86_64.rpm...done zimbra-proxy......zimbra-proxy-8.0.3_GA_5664.RHEL6_64-20130305090204.x86_64.rpm...done Operations logged to /tmp/zmsetup.04142013-214721.log Installing LDAP configuration database...done. Setting defaults... Checking for port conflicts Main menu 1) Common Configuration: 2) zimbra-ldap: Enabled 3) zimbra-store: Enabled +Create Admin User: yes +Admin user to create: admin@koraykey-ms.koraykey.net ******* +Admin Password UNSET +Anti-virus quarantine user: virus-quarantine.yb6xb8ok1@koraykey-ms.koraykey.net +Enable automated spam training: yes +Spam training user: spam.8iyqqcqpvi@koraykey-ms.koraykey.net +Non-spam(Ham) training user: ham.sbk7prgz@koraykey-ms.koraykey.net +SMTP host: koraykey-ms.koraykey.net +Web server HTTP port: 80 +Web server HTTPS port: 443 +Web server mode: https +IMAP server port: 7143 +IMAP server SSL port: 7993 +POP server port: 7110 +POP server SSL port: 7995 +Use spell check server: yes +Spell server URL: http://koraykey-ms.koraykey.net:7780/aspell.php +Enable version update checks: TRUE +Enable version update notifications: TRUE +Version update notification email: admin@koraykey-ms.koraykey.net +Version update source email: admin@koraykey-ms.koraykey.net 4) zimbra-mta: Enabled 5) zimbra-snmp: Enabled 6) zimbra-logger: Enabled 7) zimbra-spell: Enabled 8) zimbra-proxy: Enabled 9) Enable VMware HA: no 10) Default Class of Service Configuration: r) Start servers after configuration yes s) Save config to file x) Expand menu q) Quit Address unconfigured (**) items (? - help) 3 Store configuration 1) Status: Enabled 2) Create Admin User: yes 3) Admin user to create: admin@koraykey-ms.koraykey.net ** 4) Admin Password UNSET 5) Anti-virus quarantine user: virus-quarantine.yb6xb8ok1@koraykey-ms.koraykey.net 6) Enable automated spam training: yes 7) Spam training user: spam.8iyqqcqpvi@koraykey-ms.koraykey.net 8) Non-spam(Ham) training user: ham.sbk7prgz@koraykey-ms.koraykey.net 9) SMTP host: koraykey-ms.koraykey.net 10) Web server HTTP port: 80 11) Web server HTTPS port: 443 12) Web server mode: https 13) IMAP server port: 7143 14) IMAP server SSL port: 7993 15) POP server port: 7110 16) POP server SSL port: 7995 17) Use spell check server: yes 18) Spell server URL: http://koraykey-ms.koraykey.net:7780/aspell.php 19) Enable version update checks: TRUE 20) Enable version update notifications: TRUE 21) Version update notification email: admin@koraykey-ms.koraykey.net 22) Version update source email: admin@koraykey-ms.koraykey.net Select, or 'r' for previous menu [r] 4 Password for admin@koraykey-ms.koraykey.net (min 6 characters): [QwK5cGjTMf] parolamiz Store configuration 1) Status: Enabled 2) Create Admin User: yes 3) Admin user to create: admin@koraykey-ms.koraykey.net 4) Admin Password set 5) Anti-virus quarantine user: virus-quarantine.yb6xb8ok1@koraykey-ms.koraykey.net 6) Enable automated spam training: yes 7) Spam training user: spam.8iyqqcqpvi@koraykey-ms.koraykey.net 8) Non-spam(Ham) training user: ham.sbk7prgz@koraykey-ms.koraykey.net 9) SMTP host: koraykey-ms.koraykey.net 10) Web server HTTP port: 80 11) Web server HTTPS port: 443 12) Web server mode: https 13) IMAP server port: 7143 14) IMAP server SSL port: 7993 15) POP server port: 7110 16) POP server SSL port: 7995 17) Use spell check server: yes 18) Spell server URL: http://koraykey-ms.koraykey.net:7780/aspell.php 19) Enable version update checks: TRUE 20) Enable version update notifications: TRUE 21) Version update notification email: admin@koraykey-ms.koraykey.net 22) Version update source email: admin@koraykey-ms.koraykey.net Select, or 'r' for previous menu [r] r Main menu 1) Common Configuration: 2) zimbra-ldap: Enabled 3) zimbra-store: Enabled 4) zimbra-mta: Enabled 5) zimbra-snmp: Enabled 6) zimbra-logger: Enabled 7) zimbra-spell: Enabled 8) zimbra-proxy: Enabled 9) Enable VMware HA: no 10) Default Class of Service Configuration: r) Start servers after configuration yes s) Save config to file x) Expand menu q) Quit *** CONFIGURATION COMPLETE - press 'a' to apply Select from menu, or press 'a' to apply config (? - help) s Save config in file: [/opt/zimbra/config.17528] Saving config in /opt/zimbra/config.17528...done. Main menu 1) Common Configuration: 2) zimbra-ldap: Enabled 3) zimbra-store: Enabled 4) zimbra-mta: Enabled 5) zimbra-snmp: Enabled 6) zimbra-logger: Enabled 7) zimbra-spell: Enabled 8) zimbra-proxy: Enabled 9) Enable VMware HA: no 10) Default Class of Service Configuration: r) Start servers after configuration yes s) Save config to file x) Expand menu q) Quit *** CONFIGURATION COMPLETE - press 'a' to apply Select from menu, or press 'a' to apply config (? - help) s Save config in file: [/opt/zimbra/config.17528] Saving config in /opt/zimbra/config.17528...done. Main menu 1) Common Configuration: 2) zimbra-ldap: Enabled 3) zimbra-store: Enabled 4) zimbra-mta: Enabled 5) zimbra-snmp: Enabled 6) zimbra-logger: Enabled 7) zimbra-spell: Enabled 8) zimbra-proxy: Enabled 9) Enable VMware HA: no 10) Default Class of Service Configuration: r) Start servers after configuration yes s) Save config to file x) Expand menu q) Quit *** CONFIGURATION COMPLETE - press 'a' to apply Select from menu, or press 'a' to apply config (? - help) a Save configuration data to a file? [Yes] Save config in file: [/opt/zimbra/config.17528] Saving config in /opt/zimbra/config.17528...done. The system will be modified - continue? [No] y Operations logged to /tmp/zmsetup.04142013-214721.log Setting local config values...done. Initializing core config...Setting up CA...done. Deploying CA to /opt/zimbra/conf/ca ...done. Creating SSL zimbra-store certificate...done. Creating new zimbra-ldap SSL certificate...done. Creating new zimbra-mta SSL certificate...done. Creating new zimbra-proxy SSL certificate...done. Installing mailboxd SSL certificates...done. Installing MTA SSL certificates...done. Installing LDAP SSL certificate...done. Installing Proxy SSL certificate...done. Initializing ldap...done. Setting replication password...done. Setting Postfix password...done. Setting amavis password...done. Setting nginx password...done. Creating server entry for koraykey-ms.koraykey.net...done. Setting Zimbra IP Mode...done. Saving CA in ldap ...done. Saving SSL Certificate in ldap ...done. Setting spell check URL...done. Setting service ports on koraykey-ms.koraykey.net...done. Adding koraykey-ms.koraykey.net to zimbraMailHostPool in default COS...done. Setting zimbraFeatureTasksEnabled=TRUE...done. Setting zimbraFeatureBriefcasesEnabled=FALSE...done. Setting MTA auth host...done. Setting TimeZone Preference...done. Initializing mta config...done. Setting services on koraykey-ms.koraykey.net...done. Creating domain koraykey-ms.koraykey.net...done. Setting default domain name...done. Creating domain koraykey-ms.koraykey.net...already exists. Creating admin account admin@koraykey-ms.koraykey.net...done. Creating root alias...done. Creating postmaster alias...done. Creating user spam.8iyqqcqpvi@koraykey-ms.koraykey.net...done. Creating user ham.sbk7prgz@koraykey-ms.koraykey.net...done. Creating user virus-quarantine.yb6xb8ok1@koraykey-ms.koraykey.net...done. Setting spam training and Anti-virus quarantine accounts...done. Initializing store sql database...done. Setting zimbraSmtpHostname for koraykey-ms.koraykey.net...done. Configuring SNMP...done. Setting up syslog.conf...done. Starting servers...done. Installing common zimlets... com_zimbra_clientuploader...done. com_zimbra_date...done. com_zimbra_bulkprovision...done. com_zimbra_attachmail...done. com_zimbra_phone...done. com_zimbra_adminversioncheck...done. com_zimbra_attachcontacts...done. com_zimbra_proxy_config...done. com_zimbra_ymemoticons...done. com_zimbra_url...done. com_zimbra_cert_manager...done. com_zimbra_srchhighlighter...done. com_zimbra_tooltip...done. com_zimbra_email...done. com_zimbra_viewmail...done. com_zimbra_webex...done. Finished installing common zimlets. Restarting mailboxd...done. Creating galsync account for default domain...done. You have the option of notifying Zimbra of your installation. This helps us to track the uptake of the Zimbra Collaboration Server. The only information that will be transmitted is: The VERSION of zcs installed (8.0.3_GA_5664_RHEL6_64) The ADMIN EMAIL ADDRESS created (admin@koraykey-ms.koraykey.net) Notify Zimbra of your installation? [Yes] Notifying Zimbra of installation via Setting up zimbra crontab...done. Moving /tmp/zmsetup.04142013-214721.log to /opt/zimbra/log Configuration complete - press return to exit
14. Kurulum sonrası aşağıdaki örnek bağlantıdan sunucumuzun yönetim konsoluna erişebiliriz.
https://koraykey-ms.koraykey.net:7071
Kullanıcı Adı : admin@koraykey-ms.koraykey.net
Parola : parolamiz
15. Oturum açma ekranında kullanıcı adı ve parolamızı giriyoruz.
16. Açılan ekranda yönetim konsolumuz geliyor. Burada ayarlarımızı yapmaya başlayabiliriz.
17. Sunucu servislerimizi görüntüleyebiliriz. Servislerimizin tamamı çalışır durumdadır.
18. Yönetim konsolumuzda “Yönet>Hesaplar” bölümünden kullanıcılarımızı yaratabiliriz.
19. Kullanıcı bilgilerimizi girerek posta kullanıcımızı yaratıyoruz.
20. Yönetim konsolumuzda “Yapılandır>Etki Alanları” yolunu izleyip etki alanımız üzerinde sağ tıklayarak “Kimlik Doğrulamayı Yapılandır” seçeneğinde ortamımızda bir “Active Directory Servisi” varsa kimliklerimizi buradan doğrulayabiliriz. Bu şekilde tek kullanıcı adı ve parola ile tüm kullanıcılarımız etki alanına ve posta hesaplarına erişebilirler.
21. Kullanıcılarımız web arayüzünden sistemimize erişmek için aşağıdaki örnek bağlantıyı kullanarak postalarına erişebilirler.
https://koraykey-ms.koraykey.net https://mail.koraykey.net
22. Sunucumuz yeniden başladığında servislerimiz otomatik başlayacak şekildedir. Açıldıktan sonra servislerimizi kontrol edebiliriz.
# service zimbra status Host koraykey-ms.koraykey.net antispam Running antivirus Running ldap Running logger Running mailbox Running memcached Running mta Running proxy Running snmp Running spell Running stats Running zmconfigd Running
23. Sunucumuzu yapılandırmak için “Zimbra Support” sitesinden yardım alabilir. Diğer ayarlarımızıda yapabiliriz.
Bu makalemizde “Linux İşletim Sistemlerinde Posta Sunucusu (Mail Server) Yapılandırmasını” inceledik. Zimbra posta sunucu yazılımı ile yapılandırmamızı tamamladık. Zimbra Linux işletim sistemlerinde çalışan diğer posta sunucularına göre epey becerikli bir posta sunucusudur. İçeriğinde “Microsoft Outlook”, “Lotus” vb. sunucularla entegrasyon takvim paylaşımı gibi becerileri vardır. Burada uygulanan adımlar “CentOS Linux 6.4″ işletim sistemi üzerinde test edilmiştir. Diğer Redhat türevi Linux dağıtımlarıylada uyumludur.
Bir sonraki makalemizde görüşmek dileğiyle…