Встановлення та налаштування поштового сервісу на базі exim+dovecot+opendkim+postfixadmin+roundcube+quota на прикладі CentOS 6

Грудень 28th, 2014 | Теґи: , , , , , , , , ,

Якщо у Вас є панель керування сервісами на сервері (cPanel/ISPManager/VHMCS/Webmin/Plesk/DirectAdmin і т. д.), то особливої потреби в цій статті немає: там така, або ж подібна, зв’язка вже передбачена.
Проте якщо панельки немає(як у мене), то постало питання: як же це все налаштувати, щоб було добре? 🙂
Тоді в мене й виникла ідея про ручний збір всіх конфігів, оскільки дефолтні зовсім не сподобалися.
Далі я розповім, що ж з цього вийшло.

За допомогою системи, наведеної тут, можна:
— створювати, змінювати, видаляти поштові домени та поштові скриньки;
— налаштовувати поштові редиректи;
— задавати/змінювати паролі на поштові скриньки;
— задавати/міняти квоти на поштові скриньки/домени;
— задавати/змінювати кількість редиректів, поштових скриньок і т. д.;
— мати доступ до пошти по веб-інтерфейсу (Roundcube), чи з поштового клієнта (навіть у провайдерів, які закрити 25 порт на вихід);
— користуватися шифрованим TLS/SSL з’єднанням;
— перевіряти кореспонденцію на віруси;
— мати захист від більшості спаму (своєрідний грейлістинг).

Конфігурилося на такому ПЗ:
— exim-4.80;
— dovecot-2.0.21;
— opendkim-2.7;
— roundcubemail-0.9.5;
— Postfix Admin 2.3.6.

Це буде экспрес-конфіг. Хто хоче заглибитися в налаштування, можете почитати ЦЮ статтю, в якій майже всі опції детально описано.
А також можете завітати на сайт з документацією потрібного продукту.
І не забуваємо продивлятися конфіги, змінювати паролі, поштові скриньки, hostname на потрібні.

Отже, розпочнемо. Сподіваюся, LAMP у Вас уже налаштовано.

Підключаємо потрудні репозиторії та інсталимо exim+dovecot+opendkim:

rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm
yum install -y exim exim-mysql dovecot dovecot-mysql opendkim

Генеруємо самопідписані SSL-сертифікати для з’єднань з допомогою TLS/SSL:

mkdir -p /etc/ssl/
cd /etc/ssl/
openssl req -new -x509 -days 1825 -sha1 -newkey rsa:1028 -nodes -keyout exim.key -out exim.crt -subj '/CN=HOSTNAME'
openssl req -new -x509 -days 1825 -sha1 -newkey rsa:1029 -nodes -keyout dovecot.key -out dovecot.crt -subj '/CN=HOSTNAME'
chown root dovecot.key
chown exim exim.key
chmod 400 *.key

Створюємо БД, налаштовуємо користувача:

~#mysql -uroot -p
mysql>create user exim4@localhost identified by 'somepass';
mysql>create database exim4 character set utf8 collate utf8_general_ci;
mysql>grant all privileges on exim4.* to exim4@localhost;
mysql>exit

Налаштовуємо конфіги:
Exim ( /etc/exim/exim.conf ):
Ось тут

exim_system_filter ( /etc/exim/exim_system_filter )
Ось тут

Dovecot ( /etc/dovecot/dovecot.conf )
Це воно

dovecot_mysql ( /etc/dovecot/dovecot_mysql.conf )
Ось тут

dovecot_quota ( /etc/dovecot/dovecot-dict-quota.conf )
Тиць

PS. exim використовує для розкладання пошти dovecot, тому й квоти рахуються виключно dovecot’ом.

=====================

Переходимо до налаштування інтерфейсу управління (postfixAdmin):
качаємо та інсталимо:

mkdir -p /usr/share/postfixAdmin/
cd /usr/share/postfixAdmin/
wget http://sourceforge.net/projects/postfixadmin/files/postfixadmin/postfixadmin-2.3.6/postfixadmin-2.3.6.tar.gz/download
tar xzf postfixadmin-2.3.6.tar.gz
cd postfixadmin-2.3.6/
mv * ..
cd ..
rm -fr postfixadmin-2.3.6.tar.gz postfixadmin-2.3.6/
cat > /etc/httpd/conf.d/postfixAdmin.conf << EOF
Alias /mailadm /usr/share/postfixAdmin
Alias /postfixAdmin /usr/share/postfixAdmin


        Order Deny,Allow
        Deny from all
        Allow from all

EOF
/etc/init.d/httpd graceful

Налаштовуємо:

vim /usr/share/postfixAdmin/config.inc.php
# Даємо знати програмі, що конфіг її налаштовано
$CONF['configured'] = true;

# Налаштовуємо доступ до БД
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'exim4';
$CONF['database_password'] = 'YOUR_PASS';
$CONF['database_name'] = 'exim4';

# Налаштовуємо адміністративну пошту, щоб знати, що робиться в програмі
$CONF['admin_email'] = 'some@e-mail.ua'

# Яким чином зберігати паролі в БД
$CONF['encrypt'] = 'dovecot:CRAM-MD5';

$CONF['dovecotpw'] = "/usr/sbin/dovecot pw";

# Вмикаємо можливість налаштування квоти через postfaxAdmin
$CONF['quota'] = 'YES';
# Щоб квоту задавати в Мб
$CONF['quota_multiplier'] = '1048576';

$CONF['domain_path'] = 'YES';
$CONF['domain_in_mailbox'] = 'NO';

# Всі інші на Ваш вибір

Після цього додаємо додаткові таблиці для грейлістингу:

wget https://deusblog.org.ua/files/exim4_additional_tables
# mysql -uexim4 -p exim4 < exim4_additional_tables

Тепер заходимо в http://IP/postfixAdmin/setup.php , проробляємо дії там (саме тут створюється структура БД, яку використовує не тільки postfaxAdmin, а й exim та dovecot ), і можна створювати поштові домени та скриньки.

============

Встановлюємо RoundCube.

mkdir -p /usr/share/roundcube
cd /usr/share/roundcube
wget http://sourceforge.net/projects/roundcubemail/files/roundcubemail/0.9.5/roundcubemail-0.9.5.tar.gz/download
tar xzf roundcubemail-0.9.5.tar.gz
cd roundcubemail-0.9.5
mv * .htaccess ..
cd ..
rm -rf roundcubemail-0.9.5*
chown -R apache: * .htaccess
cat > /etc/httpd/conf.d/roundcube.conf << EOF
Alias /roundcube /usr/share/roundcube
Alias /webmail /usr/share/roundcube


        Order Deny,Allow
        Deny from all
        Allow from all

EOF
/etc/init.d/httpd graceful

Налаштовуємо:
Створення БД, налаштування користувача, заливка дампу:

~#mysql -uroot -p
mysql>create user roundcube@localhost identified by 'somepass';
mysql>create database roundcube character set utf8 collate utf8_general_ci;
mysql>grant all privileges on roundcube.* to roundcube@localhost;
mysql>exit

Створюємо структуру бази:

~# mysql -uroundcube -p roundcube < SQL/mysql.initial.sql

Конфіг веб-інтерфейсу:
заходимо в інсталятор та виконуємо потрібні речі: http://IP/webmail/installer/

Можливо, доведеться змінювати в config/main.inc.php
$rcmail_config['imap_auth_type'] = 'LOGIN';
===================

Тюнимо:

 mkdir -p /var/mail/exim
chown exim:exim /var/mail/exim
chown exim:dovecot /etc/dovecot/dovecot-dict-quota.conf
chmod 440 /etc/dovecot/dovecot-dict-quota.conf
chmod 400 /etc/dovecot/dovecot_mysql.conf
chgrp exim /var/log/dovecot.log
chmod 660 /var/log/dovecot.log
sed -i 's/User clam/User exim/' /etc/clamd.conf
chown -R exim /var/log/clamav/ /var/run/clamav/

Генеруємо ключі та налаштовуємо конфіги для цифрового підпису:

chown -R exim:exim /etc/opendkim /etc/opendkim/keys
chown -R exim:exim /var/run/opendkim/
mkdir /etc/opendkim/keys/domain.name
opendkim-genkey -D /etc/opendkim/keys/domain.name/ -d  -s dkim
chown -R exim:exim /etc/opendkim/keys/domain.name
chmod 640 /etc/opendkim/keys/domain.name/*

Потім заходимо до /etc/opendkim/keys/domain.name/dkim.txt та дивимося,
який TXT-запис треба додати в DNS-зону домену для функціонування підпису.
Те, що потрібно, має вигляд
dkim._domainkey IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCkka6idebYhgBlNaLF1t66s25oXtb6q5zt5+lJzJFs93d3svoa4eexTFQdTKt5qGA/fxr5b5Xi3hMArgk91FlZqiK3Li9OHR66s6MocGu2ITm/wiJolGFpInz2Mzy3GVD4ezoawd/OCcMoIFgD/IgUG+PrYoug/QonWZ6I3tlwwIDAQAB"

В транспорті в exim.conf уже вказано алгоритм підпису.
==================

Стартуємо exim та dovecot:

/etc/init.d/exim start
/etc/init.d/dovecot start

Заходимо на http://IP/webmail і можна користуватися поштою, а по http://IP/mailadm - керувати нею.

Ще немає коментарів.