Pardus Üzerinde Postfix ve Dovecot ile Mail Sunucusu Kurulumu

Pardus (Debian tabanlı) üzerinde kendi yerel posta sunucunuzu kurmak, hem ağ yönetimi hem de sistem yöneticiliği (system administration) becerilerinizi geliştirmek için mükemmel bir laboratuvar çalışmasıdır.

Bu kurulumda, mail transferi (SMTP) için Postfix, maillerin kullanıcılara ulaştırılması ve okunması (IMAP/POP3) için ise Dovecot kullanacağız.


Pardus işletim sistemi üzerinde yerel bir ağda (LAN) hizmet verecek, tam donanımlı bir posta sunucusunun (Mail Server) nasıl kurulacağını adım adım inceleyeceğiz.

Senaryo ve Sistem Gereksinimleri:

  • İşletim Sistemi: Pardus Sunucu

  • IP Adresi: 192.168.101.250/24

  • Hostname: pserver

  • FQDN (Tam Nitelikli Alan Adı): bilisim.local

Adım 1: Sistem Hazırlığı ve Hostname Yapılandırması

Posta sunucularının doğru çalışabilmesi için sistemin kendi adını (hostname) ve ağdaki tam adını (FQDN) bilmesi kritik öneme sahiptir.

  1. Öncelikle sunucumuzun hostname'ini pserver olarak ayarlıyoruz:

    Bash
    sudo hostnamectl set-hostname pserver
    
  2. Ardından /etc/hosts dosyasını düzenleyerek sunucunun yerel IP adresi ile FQDN'ini eşleştiriyoruz.

    Bash
    sudo nano /etc/hosts
    

    Dosyanın içeriğine aşağıdaki satırı ekleyin (veya mevcut 127.0.1.1 satırını buna göre düzenleyin):

    Plaintext
    192.168.101.250   pserver.bilisim.local   pserver
    
  3. Sistem paketlerini güncelleyerek kuruluma temiz bir başlangıç yapalım:

    Bash
    sudo apt update && sudo apt upgrade -y
    

Adım 2: Postfix (SMTP Sunucusu) Kurulumu ve Yapılandırması

Postfix, e-postaları bir adresten diğerine yönlendiren (MTA - Mail Transfer Agent) oldukça popüler ve güvenli bir yazılımdır.

  1. Postfix'i kuralım:

    Bash
    sudo apt install postfix -y
    

    Kurulum sırasında karşınıza yapılandırma ekranları çıkacaktır:

    • General type of mail configuration: Internet Site (İnternet Sitesi) seçin.

    • System mail name: bilisim.local olarak girin.

  2. Kurulum bittikten sonra Postfix'in ana yapılandırma dosyasını düzenleyelim:

    Bash
    sudo nano /etc/postfix/main.cf
    

    Dosyadaki ilgili satırları bulup senaryomuza uygun şekilde aşağıdaki gibi değiştirin veya ekleyin:

    Plaintext
    myhostname = pserver.bilisim.local
    mydomain = bilisim.local
    myorigin = $mydomain
    mydestination = $myhostname, bilisim.local, localhost.bilisim.local, localhost
    mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.101.0/24
    home_mailbox = Maildir/
    

    (Not: mynetworks satırına 192.168.101.0/24 ağımızı ekleyerek, bu ağdaki cihazların sunucumuzu kullanarak mail göndermesine izin vermiş olduk. home_mailbox = Maildir/ satırı ise maillerin gelen kutusu formatını belirler.)

  3. Yapılandırmayı kaydedip çıkın ve Postfix'i yeniden başlatın:

    Bash
    sudo systemctl restart postfix
    sudo systemctl enable postfix
    

Adım 3: Dovecot (IMAP/POP3 Sunucusu) Kurulumu ve Yapılandırması

Postfix mailleri alıp kullanıcının dizinine bırakır. Dovecot ise (MDA - Mail Delivery Agent) e-posta istemcilerinin (Outlook, Thunderbird vb.) bu mailleri okumasını sağlar.

  1. Dovecot paketlerini kuralım:

    Bash
    sudo apt install dovecot-core dovecot-imapd dovecot-pop3d -y
    
  2. Mail dizini formatını Postfix ile uyumlu olacak şekilde ayarlayalım:

    Bash
    sudo nano /etc/dovecot/conf.d/10-mail.conf
    

    Aşağıdaki satırı bulup başındaki # işaretini kaldırın ve düzenleyin:

    Plaintext
    mail_location = maildir:~/Maildir
    
  3. Yerel ağda test yapacağımız için düz metin (plaintext) kimlik doğrulamasına izin verelim (Gerçek bir dış sunucuda SSL zorunlu olmalıdır):

    Bash
    sudo nano /etc/dovecot/conf.d/10-auth.conf
    

    Şu satırları bulup düzenleyin:

    Plaintext
    disable_plaintext_auth = no
    auth_mechanisms = plain login
    
  4. Yapılandırmaları kaydedip Dovecot'u yeniden başlatın:

    Bash
    sudo systemctl restart dovecot
    sudo systemctl enable dovecot
    

Adım 4: Test Kullanıcılarının Oluşturulması

Mail sistemini test etmek için Pardus üzerinde iki adet yerel sistem kullanıcısı oluşturalım:

Bash
sudo adduser ogrenci1
sudo adduser ogrenci2

(Şifreleri ve kullanıcı bilgilerini ekrandaki yönergelere göre belirleyin.)

Adım 5: Sistemin Test Edilmesi

Sunucunuz artık hazır! Ağınızdaki (192.168.101.0/24) herhangi bir bilgisayardan veya doğrudan Pardus ETAP akıllı tahtalarınız üzerinden Mozilla Thunderbird gibi bir e-posta istemcisi kurarak test edebilirsiniz.

Thunderbird'de hesap eklerken şu bilgileri kullanın:

  • İsim: Öğrenci 1

  • E-posta: ogrenci1@bilisim.local

  • Şifre: (Oluşturduğunuz şifre)

  • Gelen Sunucu (IMAP): 192.168.101.250 (Bağlantı güvenliği: Hiçbiri, Parola: Normal parola)

  • Giden Sunucu (SMTP): 192.168.101.250 (Bağlantı güvenliği: Hiçbiri, Parola: Normal parola)

Artık ogrenci1@bilisim.local adresinden ogrenci2@bilisim.local adresine başarılı bir şekilde e-posta gönderip alabilirsiniz.


Öğrencilerin veya kullanıcıların e-postalarına herhangi bir program kurmadan, doğrudan web tarayıcısı üzerinden erişebilmeleri sistemi çok daha kullanışlı hale getirecektir.


Bölüm 2: Roundcube Webmail Entegrasyonu

Postfix ve Dovecot ile kurduğumuz temel mail sunucusuna kullanıcı dostu bir arayüz kazandırmak için Roundcube kullanacağız. Roundcube, PHP tabanlı, modern ve açık kaynaklı bir web tabanlı e-posta istemcisidir.

Çalışabilmesi için bir web sunucusuna (Apache) ve veritabanına (MariaDB) ihtiyacı vardır.

Adım 6: Web Sunucusu, Veritabanı ve PHP Kurulumu (LAMP Stack)

Öncelikle web arayüzünü barındıracak temel bileşenleri ve Roundcube'un ihtiyaç duyduğu PHP eklentilerini kuruyoruz:

Bash
sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql php-intl php-mbstring php-xml php-gd php-curl zip unzip wget -y

Adım 7: Veritabanının Hazırlanması

Roundcube, kullanıcı tercihleri ve önbellek gibi verileri tutmak için bir veritabanına ihtiyaç duyar. MariaDB'ye giriş yapıp gerekli veritabanını ve kullanıcıyı oluşturalım:

  1. MariaDB komut satırına root olarak giriş yapın:

    Bash
    sudo mysql -u root
    
  2. Aşağıdaki SQL komutlarını sırasıyla çalıştırarak roundcubedb adında bir veritabanı ve rcuser adında bir kullanıcı oluşturun (Şifreyi kendinize göre belirleyebilirsiniz):

    SQL
    CREATE DATABASE roundcubedb;
    CREATE USER 'rcuser'@'localhost' IDENTIFIED BY 'GucluBirSifre123!';
    GRANT ALL PRIVILEGES ON roundcubedb.* TO 'rcuser'@'localhost';
    FLUSH PRIVILEGES;
    EXIT;
    

Adım 8: Roundcube'un İndirilmesi ve Dosya İzinleri

Güncel Roundcube sürümünü indirip web sunucusunun kök dizinine yerleştireceğiz.

  1. Kurulum paketini indirin (Sürüm numarası zamanla değişebilir, bu makalede 1.6.x serisi baz alınmıştır):

    Bash
    wget https://github.com/roundcube/roundcubemail/releases/download/1.6.6/roundcubemail-1.6.6-complete.tar.gz
    
  2. İnen arşivi /var/www/html dizinine çıkartın ve adını webmail olarak değiştirin:

    Bash
    sudo tar -xvf roundcubemail-1.6.6-complete.tar.gz -C /var/www/html/
    sudo mv /var/www/html/roundcubemail-1.6.6 /var/www/html/webmail
    
  3. Apache web sunucusunun bu dosyalara okuma/yazma yapabilmesi için gerekli sahiplik ve izinleri ayarlayın:

    Bash
    sudo chown -R www-data:www-data /var/www/html/webmail/
    sudo chmod -R 755 /var/www/html/webmail/
    
  4. Veritabanı tablolarını Roundcube'un varsayılan şeması ile doldurun:

    Bash
    sudo mysql -u root roundcubedb < /var/www/html/webmail/SQL/mysql.initial.sql
    

Adım 9: Tarayıcı Üzerinden Kurulum Sihirbazı

Geri kalan ayarları komut satırı yerine Roundcube'un görsel kurulum sihirbazından yapacağız.

  1. Ağdaki bir bilgisayarın web tarayıcısını açın ve şu adrese gidin:

    http://192.168.101.250/webmail/installer

  2. Check Environment: Tüm gereksinimlerin "OK" (Yeşil) olduğunu kontrol edip "Next" diyerek ilerleyin.

  3. Create Config: * Database Setup: Bu kısımda az önce oluşturduğunuz veritabanı adını (roundcubedb), kullanıcı adını (rcuser) ve şifrenizi girin.

    • IMAP Settings: default_host kısmını localhost olarak bırakın.

    • SMTP Settings: smtp_server kısmını localhost olarak bırakın.

    • Sayfanın altındaki "Create Config" butonuna tıklayın.

  4. Çıkan ekrandaki konfigürasyon dosyasını (config.inc.php) /var/www/html/webmail/config/ dizinine indirmenizi veya manuel olarak oluşturmanızı isteyebilir. Yönergeleri takip edin.

Adım 10: Güvenlik ve Son Test

Kurulum bittikten sonra, güvenlik açığı yaratmaması için installer klasörünü sunucudan mutlaka silmelisiniz:

Bash
sudo rm -rf /var/www/html/webmail/installer/

Sisteme Giriş:

Artık tarayıcınızdan http://192.168.101.250/webmail adresine giderek, Adım 4'te oluşturduğunuz ogrenci1 veya ogrenci2 kullanıcı adları ve şifreleri ile sisteme giriş yapabilirsiniz. Hiçbir ayar yapmadan, tamamen web üzerinden mail alıp göndermeye hazırsınız!


Harika bir ekleme olacak. Özellikle eğitim ortamlarında veya laboratuvarlarda, öğrencilerin şifrelerinin ağ üzerinde düz metin olarak dolaşmasını engellemek ve zararlı yazılım içeren eklerin gönderilmesinin önüne geçmek sistem yönetimi açısından çok değerli bir tecrübedir.


Bölüm 3: Güvenlik Sıkılaştırması - SSL/TLS (HTTPS) ve Virüs Taraması (ClamAV)

Önceki bölümlerde mail sunucumuzu ve web arayüzümüzü kurduk. Ancak şu anda webmaile HTTP üzerinden bağlanıyoruz ve maillerimiz virüs taramasından geçmiyor. Bu bölümde sistemimizi profesyonel bir yapıya kavuşturacağız.

Adım 11: Webmail İçin Yerel SSL Sertifikası (HTTPS) Oluşturma

Sunucumuz yerel ağda (bilisim.local) çalıştığı için, ticari bir SSL sertifikası (Let's Encrypt vb.) yerine kendi imzaladığımız (Self-Signed) bir sertifika kullanacağız.

  1. Gerekli sertifika dizinlerini kontrol edip OpenSSL ile 1 yıllık (365 gün) bir sertifika oluşturalım:

    Bash
    sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
    

    (Komutu çalıştırdığınızda size Ülke, Şehir, Organizasyon gibi bilgiler soracaktır. Common Name kısmına pserver.bilisim.local yazabilirsiniz.)

  2. Apache'nin SSL modülünü aktif edelim:

    Bash
    sudo a2enmod ssl
    
  3. Varsayılan SSL yapılandırma dosyasını düzenleyerek oluşturduğumuz sertifikaları gösterelim:

    Bash
    sudo nano /etc/apache2/sites-available/default-ssl.conf
    

    Aşağıdaki satırları bulup, yolların bizim oluşturduğumuz dosyaları gösterdiğinden emin olun:

    Plaintext
    SSLCertificateFile      /etc/ssl/certs/apache-selfsigned.crt
    SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
    
  4. SSL sitesini aktif edip Apache'yi yeniden başlatalım:

    Bash
    sudo a2ensite default-ssl.conf
    sudo systemctl restart apache2
    

    Artık tarayıcınızdan https://192.168.101.250/webmail adresine giderek şifrelenmiş bağlantıyı test edebilirsiniz. (Tarayıcınız sertifikayı sizin imzaladığınızı gördüğü için bir güvenlik uyarısı verecektir, "Gelişmiş" diyerek ilerleyebilirsiniz.)

Adım 12: E-posta Virüs Taraması İçin ClamAV ve Amavis Kurulumu

Sisteme giren ve çıkan e-postaları taramak için ClamAV (Açık kaynaklı antivirüs motoru) ve bu motoru Postfix ile konuşturan Amavisd-new yazılımlarını kullanacağız.

  1. Gerekli paketleri kuralım:

    Bash
    sudo apt install clamav clamav-daemon amavisd-new -y
    
  2. Amavis ve ClamAV kullanıcılarının birbirlerinin dosyalarına erişebilmesi için onları aynı gruplara ekleyelim:

    Bash
    sudo adduser clamav amavis
    sudo adduser amavis clamav
    
  3. Servisleri yeniden başlatıp ClamAV veritabanını güncelleyelim:

    Bash
    sudo systemctl restart clamav-daemon
    sudo systemctl restart amavis
    

Adım 13: Postfix ve Amavis Entegrasyonu

Son olarak Postfix'e, gelen mailleri direkt kutuya atmadan önce 10024 portu üzerinden Amavis'e (ve dolayısıyla ClamAV'a) göndermesini söylemeliyiz.

  1. Postfix'in ana yapılandırma dosyasını açın:

    Bash
    sudo nano /etc/postfix/main.cf
    

    En alta şu satırı ekleyin:

    Plaintext
    content_filter = smtp-amavis:[127.0.0.1]:10024
    
  2. Şimdi Postfix'in servis dosyasını (master.cf) düzenleyerek Amavis'ten temiz olarak dönen mailleri 10025 portundan geri almasını sağlayalım:

    Bash
    sudo nano /etc/postfix/master.cf
    

    Dosyanın en sonuna aşağıdaki yapılandırmayı dikkatlice ekleyin:

    Plaintext
    smtp-amavis unix -      -       n       -       2       smtp
        -o smtp_data_done_timeout=1200
        -o smtp_send_xforward_command=yes
        -o disable_dns_lookups=yes
    
    127.0.0.1:10025 inet n  -       n       -       -       smtpd
        -o content_filter=
        -o smtpd_delay_reject=no
        -o smtpd_client_restrictions=permit_mynetworks,reject
        -o smtpd_recipient_restrictions=permit_mynetworks,reject
        -o mynetworks=127.0.0.0/8
        -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks
    
  3. Değişikliklerin geçerli olması için Postfix'i son kez yeniden başlatın:

    Bash
    sudo systemctl restart postfix
    

Tebrikler! Artık bilisim.local alan adınız için HTTPS korumalı web arayüzüne sahip ve ekleri virüslere karşı otomatik tarayan, laboratuvar ortamına tam uygun bir posta sunucunuz var.



Yorumlar

Bu blogdaki popüler yayınlar

Android Telefon/Tablet Ekranını Pardus ETAP 23 Yüklü Akıllı Tahtaya Yansıtma

Pardus Etap 23’de Unutulmuş Etap Yetkili Parolasını Sıfırlama

Pardus Etap 23 Yazıcı Kurulumu