Debian 12 Linux E-posta Sunucusu (Nginx, MariaDB, PHP, Postfix (DNSBL, DKIM, SPF), Dovecot, PostfixAdmin, SpamAssassin (Base, Spam klasöründe kendiliğinden öğrenme), Sieve, Quota, Fail2Ban, Roundcube (Takvim, Managesieve), Fetchmail, Imapsync)
Bu kılavuz, bir VPS üzerinde tam donanımlı bir e-posta sunucusunun nasıl kurulacağını gösterir. Amaç, alan adları ve posta kutuları yönetmek için bir web arayüzü aracılığıyla yönetilebilen hazır bir kurumsal sunucu elde etmektir. Temel e-posta hizmetlerini, alan adı eklemek, e-posta adresleri oluşturmak ve Roundcube web arayüzü ile posta ile tarayıcı üzerinden rahat çalışmak için PostfixAdmin yönetim aracını kuracağız. Bu kılavuzda, root olarak kurulum yapacağız, normal kullanıcı iseniz sudo komutunu kullanın.
|
E-posta ve yönetim sisteminin web arayüzü görünümü:
Корпоративный почтовый сервер
Sıkça Sorulan Sorular:
-
Я хочу купить Kaspersky Security для защиты от спама и вирусов, Вы мне его установите?
Да, при заказе сборки почтового сервера и лицензии на Kaspersky Security установка и настройка бесплатная. Добавьте на форме заказа лицензию и укажите необходимое кол-во почтовых ящиков.
-
Есть ли у данного сервера инструмент миграции, для переноса всех писем и папок соблюдая всю иерархию структуры?
Да, на сервере установлен imapsync, который позволяет перенести все почтовые ящики и все папки соблюдая первоначальную структуру, Вам нужно будет только настроить сами правила сортировки в веб интерфейсе почтового ящика.
-
Я получу сразу готовый сервер и после создания почтовых ящиков в административном интерфейсе они будут работать?
Да, сервер полностью настроен и готов к работе, нужно будет только прописать MX запись в DNS редакторе и указать ip адрес почтового сервера для Вашего домена.
-
Если возникнут вопросы по правильности настройки DNS записей, миграции почтовых ящиков и другие, Вы можете внести эти настройки?
Да, так как у Всех доменные имена разные, сервер поставляется с тестовым доменом для примера, нужно будет добавить свой, это не занимает много времени и при необходимости мы можем внести эти настройки за Вас, Вам нужно будет просто сообщить доменные имена.
-
Можно ли самому изменять настройки служб, а также устанавливать свои, к примеру разместить на почтовом сервере несколько сайтов?
Да, конечно. После оплаты Вы получаете настроенный, согласно описанию сервер, логин и пароль для управления ящиками, а также полноценный root доступ. Приведенное руководство значительно сокращает время как на саму настройку так и на тестирование, а что именно мы настроили, приведено в описании. Основным преимуществом является работоспособная конфигурация почтового сервера без каких либо ограничений.
-
Мы хотим, чтобы все данные находились у нас. Можете ли Вы произвести всю эту настройку на нашем оборудовании?
Да, Вы можете заказать установку и настройку данной конфигурации на Вашем оборудовании по ссылке.
-
Готовая сборка как понимаем предлагается только на VPS сервере, а нам хотелось бы заказать у Вас VDS сервер по ряду причин.
Мы можем произвести конфигурацию данного описания при оплате VDS сервера (DebFFian 12) сроком сразу на год. Настройка займет 2-3 дня с момента оплаты.
Önceden yapılandırılmış sunucu yapılandırması sipariş formunda mevcuttur.
1. Yazılım paketlerini güncelleyin
apt update
apt upgrade
2. LEMP kurulumunu yapın
LEMP kurulumu bir kurulumu açıklamaktadır, bu paket, e-posta web arayüzü, posta kutası yönetim sistemi ve ayarları saklamak için bir veritabanı için gereklidir.
3. E-posta hizmetleri için güvenlik duvarını yapılandırın
iptables -I INPUT 1 -p tcp --match multiport --dports 25,110,143,465,587,993,995 -j ACCEPT
Kuralları kaydedelim
apt install iptables-persistent
netfilter-persistent save
4. PostfixAdmin'i kurun ve yapılandırın
Bu paket, e-posta sunucumuzu web arayüzü aracılığıyla konsola başvurmadan yönetmemizi sağlar.
4.1 Paket kurulumunu yapalım
apt install php-mysql php-mbstring php-imap
systemctl restart php8.2-fpm
wget https://sourceforge.net/projects/postfixadmin/files/latest/download -O postfixadmin.tar.gz
mkdir /usr/share/nginx/html/postfixadmin
tar -C /usr/share/nginx/html/postfixadmin -xvf postfixadmin.tar.gz --strip-components 1
mkdir /usr/share/nginx/html/postfixadmin/templates_c
chown -R www-data:www-data /usr/share/nginx/html/postfixadmin
4.2 Şimdi veritabanını oluşturalım:
mysql -u root -p
> CREATE DATABASE postfix DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
> GRANT ALL ON postfix.* TO 'postfix'@'localhost' IDENTIFIED BY 'postfix1HuRaf92';
> \q
4.3 Aşağıdaki içeriği taşıyan bir yapılandırma dosyası oluşturalım:
vi /usr/share/nginx/html/postfixadmin/config.local.php
$CONF['configured'] = true;
$CONF['default_language'] = 'tr';
$CONF['database_password'] = 'postfix1HuRaf92';
$CONF['emailcheck_resolve_domain']='NO';
?>
Bir tarayıcı açın ve adresi girin: http://host-ip/postfixadmin/public/setup.php
Bir şifre belirlemeniz gerekecek, ardından 'Generate setup_password hash' butonuna tıklayarak bir hash oluşturun.
Hash'i kopyalayın ve şu dosyaya ekleyin:
vi /usr/share/nginx/html/postfixadmin/config.local.php
Kaydettikten sonra, sayfayı yenileyin (http://host-ip/postfixadmin/public/setup.php) ve verilen şifreyle giriş yapın. PostfixAdmin kurulumu tamamlanacaktır.
Şimdi süper kullanıcı (tam yetkili kullanıcı) eklememiz gerekiyor. Admin alanına mail root@mail-domain.tld formatında kullanıcıyı belirtmelisiniz.
Şimdi http://host-ip/postfixadmin/public/login.php adresine gidin ve oluşturduğunuz kullanıcının bilgilerini girin:
5. Postfix hizmetini kurun ve yapılandırın
apt install postfix postfix-mysql
Kurulum sırasında Postfix Yapılandırma penceresi görünecek - Internet Site öğesini bırakın.
5.1 Klasörlerde çalışacak grup ve kullanıcıları oluşturalım
groupadd -g 1024 vmail
useradd -d /home/mail -g 1024 -u 1024 vmail -m
chown vmail:vmail /home/mail
5.2 Yapılandırma dosyasını düzenleyelim
vi /etc/postfix/main.cf
mydestination = localhost.$mydomain, localhost, localhost.localdomain
...
inet_protocols = ipv4
...
smtpd_tls_cert_file = /etc/ssl/mail/public.pem
smtpd_tls_key_file = /etc/ssl/mail/private.key
Yapılandırma dosyasının sonuna aşağıdaki satırları ekleyelim:
/etc/postfix/main.cf
virtual_mailbox_base = /home/mail
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 1024
virtual_uid_maps = static:1024
virtual_gid_maps = static:1024
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
smtpd_sasl_auth_enable = yes
smtpd_sasl_exceptions_networks = $myn
etworks
smtpd_sasl_security_options = noanonymous
smtpd_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_security_level = may
smtp_tls_note_starttls_offer = yes
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls = yes
smtpd_use_tls = evet
smtpd_tls_auth_only = evet
smtpd_helo_required = evet
Veritabanına erişim için alias ayarlarını içeren bir dosya oluşturun
vi /etc/postfix/mysql_virtual_alias_maps.cf
kullanıcı = postfix
şifre = postfix1HuRaf92
sunucular = localhost
veritabanı = postfix
sorgu = SELECT goto FROM alias WHERE address='%s' AND active = '1'
Veritabanına erişim için alan adı ayarlarını içeren bir dosya oluşturun
vi /etc/postfix/mysql_virtual_domains_maps.cf
kullanıcı = postfix
şifre = postfix1HuRaf92
sunucular = localhost
veritabanı = postfix
sorgu = SELECT domain FROM domain WHERE domain='%u'
Veritabanına erişim için posta kutası ayarlarını içeren bir dosya oluşturalım
vi /etc/postfix/mysql_virtual_mailbox_maps.cf
kullanıcı = postfix
şifre = postfix1HuRaf92
sunucular = localhost
veritabanı = postfix
sorgu = SELECT CONCAT(domain,'/',maildir) FROM mailbox WHERE username='%s' AND active = '1'
Ana yapılandırma dosyasını açın ve satırın en sonuna ekleyin:
vi /etc/postfix/master.cf
submission inet n - n - - smtpd
-o smtpd_tls_security_level=may
-o smtpd_sasl_auth_enable=evet
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=/var/spool/postfix/private/auth
-o smtpd_sasl_security_options=noanonymous
-o smtpd_sasl_local_domain=$myhostname
smtps inet n - n - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=evet
-o smtpd_sasl_auth_enable=evet
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}
Güvenlik sertifikalarını aşağıdaki komutla oluşturalım:
mkdir -p /etc/ssl/mail
openssl req -new -x509 -days 1461 -nodes -out /etc/ssl/mail/public.pem -keyout /etc/ssl/mail/private.key -subj "/C=RU/ST=SPb/L=SPb/O=Global Security/OU=IT Department/CN=mail-domain.tld"
Bu durumda, kendinden imzalı bir sertifika oluşturduk, bunun uyarı olmadan çalışabilmesi için SSL sertifikası satın almanız gerekir.
Son servis ayarları:
systemctl enable postfix
systemctl restart postfix
6. Dovecot'u yükleyin ve yapılandırın
apt install dovecot-imapd dovecot-pop3d dovecot-mysql
6.1 Posta depolama yapılandırması
vi /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:/home/mail/%d/%u/
6.2 Kimlik doğrulama ayarları
vi /etc/dovecot/conf.d/10-master.conf
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
unix_listener auth-userdb {
mode = 0600
user = vmail
group = vmail
}
}
Veritabanı kimlik doğrulama ayarlarını değiştirin
vi /etc/dovecot/conf.d/10-auth.conf
#!include auth-system.conf.ext
!include auth-sql.conf.ext
Varsayılan satırı yorum satırına alalım ve sql kelimesi geçen satırı aktif edelim.
6.3 SSL sertifikalarını yapılandıralım
vi /etc/dovecot/conf.d/10-ssl.conf
ssl = gerekli
ssl_cert =
ssl_key =
İlk kimlik doğrulaması sırasında kullanıcı için otomatik klasör oluşturulmasını ayarlayalım.
vi /etc/dovecot/conf.d/15-lda.conf
lda_mailbox_autocreate = evet
6.4 Veritabanı bağlantısını yapılandırın
vi /etc/dovecot/conf.d/auth-sql.conf.ext
passdb {
…
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
…
args = /etc/dovecot/dovecot-sql.conf.ext
}
6.5 Yapılandırma dosyasına ayarları ekleyin
vi /etc/dovecot/dovecot-sql.conf.ext
driver = mysql
connect = host=localhost dbname=postfix user=postfix password=postfix1HuRaf92
default_pass_scheme = MD5-CRYPT
password_query = SELECT password FROM mailbox WHERE username = '%u'
user_query = SELECT maildir, 1024 AS uid, 1024 AS gid FROM mailbox WHERE username = '%u'
user_query = SELECT CONCAT('/home/mail/',LCASE(`domain`),'/',LCASE(`maildir`)), 1024 AS uid, 1024 AS gid FROM mailbox WHERE username = '%u'
6.6 Servisin çalışacağı arayüzü yapılandırın
vi /etc/dovecot/dovecot.conf
listen = *
Son servis ayarları
systemctl enable dovecot
systemctl restart dovecot
7. Alan adı ve posta kutuları yapılandırması
Web arayüzüne gidip alan adını e-posta ile çalışacak şekilde yapılandıralım: http://host-ip/postfixadmin/public/.
Sonra, üst menüye bir alan adı ekleyelim:
Alan adı eklendikten sonra, bir posta kutası oluşturalım.
8. Webmail servisini, Roundcube'u yükleyin ve yapılandırın
En son LTS sürüm paketini indirin ve sunucumuza dağıtalım
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.2/roundcubemail-1.6.2-complete.tar.gz
mkdir /usr/share/nginx/html/webmail
tar -C /usr/share/nginx/html/webmail -xvf roundcubemail-*.tar.gz --strip-components 1
cp /usr/share/nginx/html/webmail/config/config.inc.php.sample /usr/share/nginx/html/webmail/config/config.inc.php
chown -R www-data:www-data /usr/share/nginx/html/webmail
Yapılandırma dosyasını açın ve düzenleyin
vi /usr/share/nginx/html/webmail/config/config.inc.php
$config['db_dsnw'] = 'mysql://roundcube:roundcube1Yusm24M@localhost/roundcubemail';
$config['enable_installer'] = true;
Ayrıca şu parametreyi bulun ve boş bırakın: $config['smtp_pass'] = '';
Bu yapılandırma dosyasına zamanlama ekleyelim:
vi /usr/share/nginx/html/webmail/config/config.inc.php
$config['drafts_mbox'] = 'Drafts';
$config['junk_mbox'] = 'Junk';
$config['sent_mbox'] = 'Sent';
$config['trash_mbox'] = 'Trash';
$config['create_default_folders'] = true;
Roundcubemail için MariaDB veritabanını oluşturalım, yapılandırma dosyasında belirtilen:
mysql -uroot -p
> CREATE DATABASE roundcubemail DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
> GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost IDENTIFIED BY 'roundcube1Yusm24M';
> quit
Veritabanını içeri aktarma:
mysql -uroot -p roundcubemail < /usr/share/nginx/html/webmail/SQL/mysql.initial.sql
Gerekli php paketlerini yükleyin:
apt install php-pear php-intl php-ldap php-net-smtp php-gd php-imagick php-zip php-curl php-dom php-xml php-mcrypt
Eğer php-mcrypt yüklemesi sırasında hata oluştuysa, manuel olarak yükleyin
apt install php-dev libmcrypt-dev
pecl channel-update pecl.php.net
pecl install mcrypt-1.0.5
vi /etc/php/8.2/fpm/conf.d/99-mcrypt.ini
extension=mcrypt.so
Php servisini yapılandıralım:
vi /etc/php/8.2/fpm/php.ini
date.timezone = "Europe/Moscow"
post_max_size = 50M
upload_max_filesize = 50M
50 megabayt limitleri örnek olarak gösterilmiştir, kendinize göre ayar yapabilirsiniz, bu ayarlar e-postaya daha büyük ekler yüklemenizi sağlar.
systemctl restart php8.2-fpm
Ngxin'deki limitleri de düzelterek ayarlayalım
vi /etc/nginx/nginx.conf
http {
...
client_max_body_size 50M;
...
systemctl restart nginx
Sonra, tarayıcıda kurulumu http://host-ip/webmail/installer/ bağlantısına giderek devam edeceğiz.
Yönergeleri takip ederek Roundcube'u kurun ve sonraki sayfada tüm öğelerin "OK" durumda olduğunu kontrol edin. Kurulum tamamlandı.
Kurulum dosyasını silin ve yapılandırma dosyasında kurulumu devre dışı bırakın
rm -rf /usr/share/nginx/html/webmail/installer
vi /usr/share/nginx/html/webmail/config/config.inc.php
$config['enable_installer'] = false;
http://host-ip/webmail/ bağlantısına gidip, tam e-posta adresi ve şifreyi kullanarak web posta sistemine giriş yapalım.
9. Son yapılandırma adımı
VPS sunucumuz e-posta ile çalışacak şekilde yapılandırıldı, şimdi alan adı ayarlarında MX kaydını sunucumuzun IP adresi ile kaydetmemiz veya değiştirmemiz gerekiyor:
DNS Editörü'nde satırlar şöyle görünecektir:
Girişler kaydedildikten sonra, IP adresi için ters bölgeyi belirtmeniz gerekir (PTR)
Linux Debian 12 Enterprise Mail Server hazır, yapılandırmalar da aşağıdaki servislerin ve seçeneklerin kurulumu ile birlikte sağlanmıştır:
- SpamAssassin anti-spam filtresi kurulum ve yapılandırması, Postfix Debian servisi için Spam klasörüne mesaj gruplaması
- Dovecot mail server için posta kutası kotası kurulumu ve yapılandırması
- Roundcube Webmail için Takvim yapılandırması
- Mail sunucusunu şifre tahmin lerine karşı Fail2Ban ile koruma
- Roundcube webmail için ManageSieve e-posta filtresi yapılandırması
- PostfixAdmin ile posta kutusu klasörlerini silme
- PostfixAdmin'de e-posta toplayıcı kurulumu
- IMAPSync ile e-posta transferi ve senkronizasyonu
- Postfix'te SPF kontrolü yapılandırması
- Postfix'te DKIM dijital imzası kurulumu
- Postfix ile spam koruması
- SpamAssassin'ın Spam klasöründe kendi kendine öğrenmesi
- Postfix mail server izleme ve PDF raporları