Gmail alternatifi arayışım, Mailcow‘u keşfetmem ile son buldu. Tamamı açık kaynak kodlu parçalardan oluşan bu bundle, bir eposta servisinde aradığım -ve bulamadığım- tüm özelliklere sahip.
-
- Virüs taraması – ClamAV
- Metin arama (full text search) – Solr
- Spam filtresi – Rspamd
- Sistem güvenliği sağlayıcısı – Netfilter
- Otomatik SSL sertifikası üretimi – LetsEncrypt – ACME-Client
- Epostaların şifrelenerek saklanması – Mail Crypt
- Webmail, takvim ve kişi listesi – SoGo
- 2 adımlı doğrulama (TFA – Two Factor Authentication)
- IMAP, POP3 ve SMTP desteği
- Tek kullanımlık eposta adresleri (disposable emails)
- Ve daha fazlası…
Anti virüs ve metin arama özelliklerini kullanmak istiyorsanız, sunucunuzun 2.5 GB’dan daha fazla ram’e sahip olması gerekiyor. Ben, Vultr‘ın 20$’lık makinesini tercih ettim.
Mailcow Kurulumu
Gelelim kuruluma. Sunucunuzu sadece Mailcow için kullanacaksanız, kurulum çok basit. Fakat aynı anda başka siteler barındırmak için de kullanacaksanız Nginx gibi bir reverse proxy‘ye ihtiyacınız var. Ben her iki kurulumu da Ubuntu 18.04 için anlatacağım. Kurulum adımları diğer işletim sistemlerinde farklılık gösterecektir.
Ön Hazırlıklar
Bu aşamada her iki kurulumda da kullanılacak ortak yazılımları yükleyeceğiz.
1- Docker kurulumu
Aşağıdaki komutları tek tek girerek Docker Community Edition‘ı kuruyoruz.
$ sudo apt-get update $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - $ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" $ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli containerd.io
Kurulumu tamamladıktan sonra Docker’ın, sunucu yeniden başladığında otomatik olarak çalışabilmesi için şu komutları 1 kez giriyoruz:
$ sudo systemctl enable docker $ sudo systemctl start docker
2- Docker Compose Kurulumu
Docker Compose’u kurmak için çalıştırmanız gereken komutlar çok daha az:
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose
3- Mailcow’un Sunucuya İndirilmesi
Mailcow’u Git reposundan klonlayarak kurmamız gerekiyor. Ubuntu 18.04’te Git yüklü olarak geliyor (en azından server edition’da). Eğer kullandığınız işletim sisteminde Git yüklü değil ise yüklemelisiniz.
$ umask # Bu komutun çıktısının 0022 olması gerekiyor. $ cd /opt $ git clone https://github.com/mailcow/mailcow-dockerized
4- DNS Ayarları
Mailcow’u kullanabilmek için 1 adet domaine ihtiyacınız var. Bu domaine ait bir subdomaini eposta sunucusu olarak kullanacağız. Yani dagli.net değil, mx.dagli.net ya da mail.dagli.net olmalı. Seçtiğiniz subdomaini, sunucu IP adresinize yönlendiren bir A kaydı oluşturmalısınız.
Kurulumu tamamladıktan sonra, IMAP ve SMTP portlarının güvenliği için bir çok TLSA kaydı oluşturmanız gerekecek. Eğer mevcut DNS sunucunuz TLSA kaydı oluşturmanıza izin vermiyor ise, Cloudflare‘in ücretsiz DNS hizmetini kullanabilirsiniz. Ben eposta sunucusu olarak kullandığım domainin DNS sunucusunu, Vultr’dan Cloudflare’e çevirmek zorunda kalmıştım.
Bu noktaya kadar sorunsuz olarak geldiyseniz, ön hazırlıkları tamamlamışsınız demektir.
Standalone Mailcow Kurulumu
Sunucunuzda sadece Mailcow’u kullanacaksanız, kurulum işlemlerinin bitmesine 2-3 dk kaldı.
$ cd /opt/mailcow-dockerized $ ./generate_config.sh
Son komut, ayar dosyasını oluşturacak olan küçük bir sihirbaz. İlk önce eposta sunucusunun, sunucu adını (hostname) soracak. Buraya 4. ön hazırlık maddesinde seçmiş olduğunuz subdomaini yazacaksınız. İkinci soru ise, eposta sunucusunun zaman dilimi. Türkiye için Europe/Istanbul yazabilirsiniz.
Ayar dosyasını da oluşturduktan sonra, aşağıdaki iki komutu çalıştırarak, Mailcow kurulumunu tamamlayacaksınız.
$ docker-compose pull $ docker-compose up -d
Mailcow Reverse Proxy Kurulumu
Eğer sunucunuzda Mailcow dışında herhangi bir site barındıracaksanız bir adet reverse proxy’ye ihtiyacınız var. Çünkü Mailcow yönetim paneli, standart HTTP(S) portları olan 80 ve 443’ü kullanıyor. Ön hazırlığı tamamladıktan sonra, benim tercihim olan Nginx’i kuruyoruz.
$ sudo apt-get install nginx
Standalone kurulumda anlattığım “ayar dosyası oluşturma” kısmını burada da yapacağız. Ayar dosyasını oluşturduktan sonra, favori editörünüz ile bu dosyası açmanız gerekiyor.
$ cd /opt/mailcow-dockerized $ nano mailcow.conf
mailcow.conf dosyasında HTTP_PORT= kısmını bulup, aşağıdaki gibi düzenlemelisiniz.
HTTP_PORT=3080 HTTP_BIND=127.0.0.1 HTTPS_PORT=3043 HTTPS_BIND=127.0.0.1
Artık Mailcow’un kurulumunu tamamlayıp çalıştırabiliriz:
$ docker-compose pull $ docker-compose up -d
Sırada Nginx konfigürasyonu var. /etc/nginx/sites-available klasörünün içine mailcow.conf dosyası oluşturuyoruz.
# Kullandığım Mailcow Nginx konfigürasyon dosyasını indir $ curl https://pastebin.com/raw/xt2zquxv > /etc/nginx/sites-available/mailcow.conf # İndirilen konfigürasyon dosyasını, sites-enabled'a linkle $ ln -s /etc/nginx/sites-available/mailcow.conf /etc/nginx/sites-enabled/000-mailcow.conf # site-enabled'daki "default" linkini sil $ rm /etc/nginx/sites-enabled/default
Bu dosyayı açıp __EPOSTA_SUNUCU_ADI__ yazan yerleri, 4. ön hazırlık maddesinde seçmiş olduğunuz subdomain ile değiştirmelisiniz.
Nginx’i yeniden başlattıktan sonra Mailcow ve Nginx reverse proxy kurulumu tamamlanmış oluyor.
$ sudo systemctl restart nginx
Kurulum Sonrası Ayarları
Eposta sunucu adresi olarak seçtiğiniz subdomaini tarayıcınızla açıp Mailcow yönetim paneline ulaşabilirsiniz. Ön tanımlı yönetici bilgileri:
Kullanıcı adı: admin
Kullanıcı şifresi: moohoo
Giriş yaptıktan sonra yönetici bilgilerini değiştirmeniz gerekiyor. Ardından üst menüden Configuration > Mail Setup’a tıklayıp, domain yönetim paneline ulaşacaksınız. Eposta adresiniz olarak kullanmak istediğiniz tüm domainleri buradan eklemelisiniz.
Domainleri ekledikten sonra, üst menüden Configuration > Configuration & Details’e tıklayıp açılan sayfadan Configuration sekmesine tıklamalısınız. İlk bölüm olan “ARC/DKIM keys” kısmında, biraz aşağıda “Select domains with missing keys” linki var. Ona tıkladığınız zaman eklemiş olduğunuz ve ARC/DKIM key bilgisi olmayan domainleri seçecek. Ardından “Key Length” seçeneğinden istediğinizi seçip “Add” butonuna tıklayacaksınız.
Şimdi tekrar Configuration > Mail Setup sayfasına gelerek, eklediğiniz alan adları listesini göreceksiniz. Bu listede en sağdaki DNS butonuna basarsanız, Mailcow mevcut DNS kayıtlarınız ile tanımlamanız gereken DNS kayıtlarının karşılaştırmalı listesini gösterecek. Bu listedeki kayıtları tek tek oluşturmalısınız.
Artık ister Mailcow’un Webmail’i üzerinden ister favori mail client’ınız ile IMAP & SMTP üzerinden kendi barındırdığınız eposta hizmetinizi kullanabilirsiniz. Ben masaüstünde Thunderbird, Android telefonumda ise K-9 Mail uygulamalarını tercih ettim. Her iki yazılım da açık kaynak kodlu :)
Selam, Lütfen Birazdaha detay verebilirmisiniz, konu sanki biraz eksik gibi, mesela proxy kullanmak istemiyorsak sadece mail sunucu olarak kullanmak istiyorsak, ve farklı bir domaine ait mailleri buradaki sunucu üzerinden alıp vermek istersek ne gibi bir yol izlemeliyiz.
Merhaba,
Standalone Kurulum ve Kurulum Sonrası Ayarları başlıkları altında anlatılanları uygularsanız, sadece mail sunucu olarak kullanabilirsiniz.
Kullanmak istediğiniz domainleri “Configuration > Mail Setup” sayfasından yapabilirsiniz. Bir program kullanarak emaillerinizi yönetmek istiyorsanız, tanımladığınız mailboxlara ait SMTP, POP ve IMAP bilgilerini kullanabilirsiniz.
https://dagli.net/wp-content/uploads/2019/06/mailcow.conf_.txt tekrar paylaşabilirmisiniz rica etsem.
Linki güncelledim mailcow.conf
biraz geç geldim ama çok teşekkür ederim. dosyayı kullandım. emeğine sağlık.