Установка и настройка корпоративного почтового сервера (step-by-step) — заметки о microsoft windows и не только…
Наша задача получить полноценный почтовый сервер с сервисами SMTP(S), IMAP(S), POP3(S), с обработкой почты на антиспам и антивирус. Также будет настроен web-доступ к почтовой системе (почта/контакты/календарь) для почтовых пользователей и администратора системы. В качестве системы будет выбран пакет iRedMail и будет развернута на Linux Debian.
Что из себя представляет сборка iRedMail и какие пакеты отвечают за какой функционал хорошо видно на этом рисунке:

Содержание:
Подготовка системы
Установка iRedMail
Расширяем функционал iRedAdmin
Настройки системы iRedAdmin
Безопасность
Обновление iRedMail
Резервное копирование почты (Backup)
Восстановление из резервных копий
Настройки DNS
Autodiscover для почтовых клиентов
SSL Сертификат для Web-сервера
Заключение
Подготовка системы
Установим систему Debian и обновим систему и пакеты:
apt-get update && apt-get upgrade && apt-get dist-upgrade
Настроим сеть:
nano /etc/network/interfacesи перезапустим сеть с новыми настройками:
/etc/init.d/networking restartНастроим имя хоста:
Hostname -fНастроим локализацию:

dpkg-reconfigure locales
locale -aПерегрузим сервер для принятия настроек локализации.
Сервер готов,
скачиваем актуальную версию пакета iRedMail.
Переходим на http://www.iredmail.org/download.html, проверяем расположение файла стабильной версии и копируем ссылку (на данный момент стабильная версия – 0.9.9).
Скачиваем:
wget https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.9.9.tar.bz2Установка iRedMail
Распакуем архив и запустим скрипт установки:
tar xjf iRedMail*
cd iRedMail*
bash iRedMail.sh
Указываем место хранения почты на диске. Оставляем по умолчанию /var/vmail.

В качестве web-сервера предлагается Nginx, соглашаемся.

В качестве
хранилища данных и конфигураций предлагается 3 варианта:
- OpenLDAP – протокол для соединения с LDAP сервером по 389 порту, скажем так с Active Directory;
- MariaDB – это когда то MySQL;
- PostgreSQL – еще один и, на мой взгляд, один из лучших СУБД.
Для небольшой системы, до 1000 почтовых ящиков, подойдет MariaDB, что и выбираем.

Вводим пароль для Администратора MySQL (MariaDB).

Вводим имя домена почтового сервера. Нужно отметить, что данная система может обслуживать несколько независимых почтовых доменов.

Далее пароль Postmaster для домена.

Здесь предлагается выбрать функционал системы. Я выбрал все, функционал каждого описан (на английском).

Здесь предлагают
согласиться с выбранной конфигурацией, отвечаем Yes.

Далее идет установка необходимых пакетов.
После отработки скрипта будут внесены изменения в файрвол. Соглашаемся – Yes.

По сути наш
сервер уже готов и можно обратиться к нему по протоколам SMTP/IMAP/POP или же через web.
Доступ к web-почте — https://ваш_хост/mail/.

Доступ к web-админке — https://ваш_хост/iredadmin/

Здесь мы установили Open Source версию iRedMail и поэтому панель администратора имеет некоторое ограничения. Подробно сравнение тут — https://www.iredmail.org/admin_panel.html.
Расширяем функционал iRedAdmin
SMTPS
* POP3 service: port 110 over TLS (recommended), or port 995 with SSL.
* IMAP service: port 143 over TLS (recommended), or port 993 with SSL.
* SMTP service: port 587 over TLS.Как мы видим в стандартной версии SMTP with SSL был убран, считается SMTP with SSL legacy (устаревший). Попробуем его включить, так как некоторые почтовые клиенты могут не поддерживают отправку SMTP через STARTTLS, порт 587.
В /etc/postfix/master.cf добавим:
465 inet n - n - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o content_filter=smtp-amavis:[127.0.0.1]:10026Перезапустим службу Postfix, чтобы включить SMTPS. Убедимся, что Amavisd прослушивает порт 10026 (и 10024, 9998).
Откроем порт 465 в брандмауэре:
nano /etc/default/iptables
-A INPUT -p tcp --dport 25 -j ACCEPT
-A INPUT -p tcp --dport 587 -j ACCEPT
-A INPUT -p tcp --dport 465 -j ACCEPT
ROUNDCUBE
Для красоты и
удобства можно сменить темы для web-почты
https://github.com/Anisotropic/chameleon-blue
https://github.com/filhocf/roundcube-chameleon
Скачиваем и
копируем папку skin в папку с RoundCube (у меня находится по
/opt/www/roundcubemail-1.3.8/skins)
Прочие настройки можно найти в /opt/www/roundcubemail-1.3.8/config/default.inc.php — тут можно настроить язык по умолчанию, подпись в окне логин/пароль, тему по умолчанию.
Установка phpMyAdmin
Некоторый ограниченный функционал можно реализовать напрямую через редактирование базы данных. Для удобства уставим phpMyAdmin:
apt-get install phpmyadmin
Веб-сервера Nginx (его мы ставили в пакете iRedMail) нет, поэтому оставляем невыбранным тип сервера.

Соглашаемся настроить базы. Да.

Вводим пароль для
phpMyAdmin и
подтверждаем пароль.
Создаем ссылку на
сервер:
ln -s /usr/share/phpmyadmin /var/www/html/webtoolТеперь phpMyAdmin доступен по адресу — https://ваш_хост/webtool/
Логин – phpmyadmin
Пароль – наш пароль что ввели при установке
Однако залогиневшись видим, что у пользователя phpmyadmin неполные права на базы, а под пользователем root невозможно залогиниться.
Создадим
пользователя для phpmyadmin с полными правами:
mysql -u root
create user 'myuser'@'localhost' identified by 'mypassword';Проверим, создался
ли наш пользователь:
select user,host,password from mysql.user;Дадим нашему
пользователю полные права:
grant all on *.* to 'myuser'@'localhost';и применим изменения:
FLUSH PRIVILEGES;Выход:
q 
Теперь получили полные права.
POSTFIXADMIN
Основой нашей почтовой системы является POSTFIX. PostfixAdmin – это веб интерфейс настройки POSTFIX. Установим и настроим и его для нашей системы.
apt-get install postfixadmin
Соглашаемся.

Задаем пароль для PostfixAdmin.
Создадим ссылку
на веб доступ для PostfixAdmin:
ln -s /usr/share/postfixadmin /var/www/html/postfixadminТеперь PostfixAdmin доступен по адресу — https://ваш_хост/postfixadmin/
Настраиваем:
nano /usr/share/postfixadmin/config.inc.php
$CONF['configured'] = true;
$CONF['default_language'] = 'ru';
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'myuser';
$CONF['database_password'] = 'hRm3StSuY0WSpk0kkl9OX1Xjv8';
$CONF['database_name'] = 'vmail';
$CONF['encrypt'] = 'dovecot:SSHA';
$CONF['dovecotpw'] = "/usr/bin/doveadm pw";Далее переходим по адресу — https://ваш_хост/postfixadmin/setup.php
Возможные ошибки:
1. PostfixAdmin не может писать в папку templates_c
Даем права
chown -R www-data /usr/share/postfixadmin/templates_c
2. Invalid query: Unknown column ‘goto’ in ‘alias’
В новой версии отсутствует колонка goto. Добавим её:
mysql -u root -p
use vmail;
ALTER TABLE alias ADD COLUMN `goto` text NOT NULL;
3. Invalid query: Duplicate key name ‘domain’
Это связано с тем, что при создании почтового домена в iRedMail мы уже создали индексы для базы, а PostfixAdmin не согласен с этим. Выполняем там же команду SQL:
DROP INDEX domain on mailbox;
DROP INDEX domain on alias;
Если все проверки пройдены, будет предложено сгенерировать пароль:

После генерации пароля получим setup_password и эту строчку добавим в config.inc.php.
$CONF['setup_password'] = '2bedf63997cbf13068a454f6e7c4b7b0:db542a801058ebb19faae42cf2145aa6986c83c7';
Создадим Администратора PostfixAdmin: вводим ранее созданный Setup Password, логин-email Администратора и пароль.

Теперь можно заходить на PostfixAdmin.

Как уже говорилось, есть определенный функционал, который заблокирован в бесплатной версии iRedMail, скажем создание Псевдонимов (Alias). В PostfixAdmin данный функционал будет доступен.
Настройки системыiRedMail
Включение и отключение модулей почты
iRedMail обладает достаточно широким функционалом, но может потребоваться отключить некоторые функции или модули. У iRedMail есть модуль iRedAPD, написан на Python, который управляет основными возможностями почтового сервера. Файл конфигурации iRedAPD settings.py находится /opt/iredapd.

Удаляем ненужные модули и перезапускаем службу:
service iredapd restartЧтобы отключить
Антивирус и Антиспам, не знаю по каким причинам, но такая возможность есть,
необходимо отредактировать файл настроек /etc/amavisd/amavisd.conf.
SpamAssassin и ClamaV завязаны на модуль Amavisd. Amavisd — это скрипт, который взаимодействует с транспортным агентом почты (MTA) и сканерами антивирусов и антиспам.
В /etc/amavisd/amavisd.conf раскомментируем строчки (убираем # в начале строки):
# @bypass_virus_checks_maps = (1); # controls running of anti-virus code
# @bypass_spam_checks_maps = (1); # controls running of anti-spam codeИ перезапускаем Amavisd:
systemctl restart amavisdНастройки объема отправляемого сообщения
Максимальный
размер отправляемого сообщения иногда бывает прописан в политиках компании. Но
бездумно прописывать огромные значения тоже не стоит. При больших объемах писем
быстро забиваются ящики пользователей, в итоге имеем нагруженный сервер и
большие объемы для резервного копирования. В бесплатной версии мы опять имеем
ограничение на редактирование этого параметра.
Для изменения
значения максимального размера письма необходимо отредактировать значение message_size_limit
в /etc/postfix/main.cf
По умолчанию message_size_limit = 15728640 (15Мб), можно изменить на нужное значение в байтах и
перезапустить Postfix:
postfix reloadСбор копий всех почтовых сообщений
Иногда есть
требования по сбору и мониторингу всей входящей и/или исходящей почты через
почтовый сервер. Данный функционал можно реализовать с помощью штатной
возможности Postfix.
Для пересылки всех сообщений (входящих/исходящих) на определенный адрес достаточно прописать в /etc/postfix/main.cf:
always_bcc = backup@mydomain.ruОднако стоит
учитывать тот объем сообщений, который будет сваливаться туда.
Еще один вариант решения, для меня более предпочтительный, в phpmyadmin, открываем базу vmail и выполняем в ней запрос:
INSERT INTO sender_bcc_domain (domain, bcc_address, active, created) VALUES ('mydomain.ru', 'backup-out@mydomain.ru', 1, NOW());
INSERT INTO recipient_bcc_domain (domain, bcc_address, active, created) VALUES ('mydomain.ru', 'backup-in@mydomain.ru', 1, NOW());
Настройка автоответчика
Иногда бывает
необходимо оповещать об отсутствии, когда сотрудник в отпуске или по иным
причинам отсутствует. Система отправляет почтовое сообщение адресату
определенного содержания.
Настраивается автоответ через web-интерфейс почтового ящика:


Еще для администратора почтовой системы Postfix
Просмотр настроек Postfix:
postconf -dПросмотр очереди Postfix:
postqueue -pДля удаления из
очереди Postfix писем от
пользователя user можно
воспользоваться скриптом:
postqueue -p | grep user | awk '{system("postsuper -d "$1)}'Немедленная
доставка писем из очереди Postfix:
postsuper -r ALL
postfix flushили конкретного письма:
postsuper -r IDБезопасность
Закрываем доступ из Интернета к phpMyAdmin
В настройки Nginx (/etc/nginx/sites-available/*-default-ssl.conf) добавим:
location /webtool {
allow 127.0.0.1; #localhost
allow 192.168.1.0/24; #local network
deny all; #deny all other sources
}Проверим конфигурацию на ошибки:
nginx -tи перегрузим Nginx:
systemctl reload nginxЗакрываем доступ из Интернета к PostfixAdmin
Аналогично закроем доступ для postfixadmin. В /etc/nginx/sites-available/*-default-ssl.conf добавим:
location /postfixadmin {
allow 127.0.0.1; #localhost
allow 192.168.1.0/24; #local network
deny all; #deny all other sources
}Проверим и перегрузим Nginx.
Обновление iRedMail
Как и при установке, скачиваем пакет iRedAdmin:
wget https://bitbucket.org/zhb/iredmail/downloads/iRedMail-x.y.z.tar.bz2Распаковываем архив и переходим в каталог:
tar xjf iRedAdmin-x.y.z.tar.bz2
cd iRedAdmin-x.y.z/tools/Запускаем скрипт обновления:
bash upgrade_iredadmin.shРезервное копирование почты (Backup)
В качестве места для хранения резервных копий баз и почтовых сообщений создадим отдельный диск (как это сделать).
По умолчанию, при установке iRedMail в планировщик Cron добавляются задания по созданию резервных копий баз данных MySQL, SOGo, ldap (зависит от выбора во время установки). В нашем случае это базы MySQL и SOGo.
В планировщике заданий (Cron) по умолчанию существуют 2 задания на резервное копирование баз:
30 3 * * * /bin/bash /var/vmail/backup/backup_mysql.sh
1 4 * * * /bin/bash /var/vmail/backup/backup_sogo.shАрхивы помещаются в каталог /var/vmail/backup.
Перенесем место резервных копий на наш диск /mnt/backup и создадим папку vmail и внутри 2 папки db и mail:
mkdir /mnt/backup/vmail
mkdir /mnt/backup/vmail/db
mkdir /mnt/backup/vmail/mailВ db будем хранить копии баз MySQL, в mail сами почтовые сообщения.
Отредактируем файл /var/vmail/backup/backup_mysql.sh и /var/vmail/backup/backup_sogo.sh заменив значение пути:
export BACKUP_ROOTDIR="/var/vmail/backup" на
export BACKUP_ROOTDIR="/mnt/backup/vmail/db"Значение параметра в backup_mysql.sh KEEP_DAYS=’90’ указывает сколько дней хранить резервные копии.
Запустим создание архивов вручную и проверим корректность выполнения:
/bin/bash /var/vmail/backup/backup_mysql.shКопируем почту. По умолчанию,
каталог для хранения переписки — /var/vmail/vmail1. Чтобы создать копию, достаточно
скопировать его содержимое.
Создадим архив наших писем в /mnt/backup/vmail/mail с датой:
tar -czvf /mnt/backup/vmail/mail/vmail- $(date %y-%m-%d).tar.gz /var/vmail/vmail1Создадим задание
для планировщика для ежедневного архивирования папки с почтовыми сообщениями (/var/vmail/vmail1/)
Напишем простой скрипт для Bash /var/vmail/backup/backup_mail.sh:
#!/bin/bash
keep_days=90;
cur_date=$(date --iso);
backup_dir="/mnt/backup/vmail/mail/"
source_dir="/var/vmail/vmail1"
file_name="vmail_$cur_date.tar.gz"
log_file="$backup_dir/vmail_$cur_date.log"
echo "# Starting Find old backup files in Backup Directory $backup_dir" > $log_file
find $backup_dir -type f -mtime $keep_days -print0 | xargs -0 rm –f >> $log_file
echo "# End Delete old backups" >> $log_file
echo "# Start Backup script" >> $log_file
echo "# Start at $(date %Y-%m-%d-%H-%M-%S)" >> $log_file
tar -zcvf $backup_dir$file_name -P $source_dir >> $log_file
echo "# End Backup script $(date %Y-%m-%d-%H-%M-%S)" >> $log_fileСкрипт выполнит следующее:
- keep_days=90; время хранения архивных копий в днях;
- удалит все файлы из каталога старше 90 дней;
- создаст архив папки с сообщениями;
- информацию о действиях поместит в лог файл.
Скрипт поместим в планировщик:
crontab -u root –eвыберем редактор nano и добавим строчи:
# iRedMail vMail directory backup
30 4 * * 2,5 /bin/bash /var/vmail/backuo/backup_mail.shСохраняем изменения и выходим.
Планировщик настроен на 4:30 по вторникам и пятницам. Опять-таки политику резервного копирования нужно определять исходя из потребностей и требований компании.
Проверим задания
в Cron:
сrontab –lВосстановление из резервных копий
Режим восстановления требует планирования и понимая, что мы делаем. Задачи восстановления могут быть разные, начиная с восстановления потерянного письма и до того, что нужно перенести данные на новый сервер. В каждом случае нужны свои алгоритмы.
Думаю, не стоит
говорить о том, что в случае переноса данных или установки другого сервера, его
полной переустановки крайне желательно все компоненты собрать аналогичных
сборок и версий.
Конфигурации хранятся в следующих базах MySQL:
Amavisd
iredadmin
iredapd
mysql
roundcubemail
vmailВ случае переноса почтовой системы на новый сервер, базу mysql восстанавливать не нужно.
Восстановление баз данных
Базы можно восстановить через phpMyAdmin или через консоль:
Разархивируем нужную базу на нужную дату:
bzip2 -d vmail-*.sql.bz2Восстановим базу:
mysql -v -u root -p vmail < vmail-*.sqlАналогично восстанавливаются все необходимые базы.
Для восстановления почтовых сообщений нужно разархивировать необходимый архив и перенести нужные папки или файлы в нужный каталог.
tar -xvf vmail-*.tar.gz
mv /mnt/backup/vmail/mail/vmail /* /var/vmail/vmail1/Настройки DNS
Важными
настройками для почтового сервера являются настройки в DNS зоне. Без настроек DNS наша почта не будет нормально
восприниматься другими почтовыми серверами, и мы не сможем принимать почту от
других серверов.
Внесем изменения
в зону DNS:
mail.mydomain.ru. 3600 IN A 111.222.333.444где:
mail.mydomain.ru. – имя хоста нашего сервера;
3600 – TTL время жизни записи;
A – тип записи (хост);
111.222.333.444 – реальный IP адрес нашего почтового сервера.
После внесения записи в DNS к северу можно обращаться по mail.mydomain.ru.
mydomain.ru. 3600 IN MX 10 mail.mydomain.ru.здесь мы объявляем, что почтовым сервером (Mail eXchanger) является mail.mydomain.ru.
где:
3600 – TTL время жизни записи;
10 – приоритет.
MX записей в DNS зоне может быть несколько, с разными или одинаковыми приоритетами для обеспечения бесперебойной доставки писем, даже если один или несколько почтовых серверов не отвечает.
Этих настроек достаточно, чтобы наш почтовый сервер начал функционировать для сети Интернет. Однако в борьбе со спамом и проверкой валидности отправителя, нужно сделать еще несколько записей в DNS: DKIM, DMARC и SPF.
DKIM (Domain Keys
Identified Mail) — это цифровая подпись, которая подтверждает подлинность
отправителя и гарантирует целостность доставленного письма.
Наш iRedMail при установке уже сгенерировал c помощью Amavisd ключ DKIM. Для просмотра дадим команду:
amavisd-new showkeysСкопируем результат и внесем запись TXT в наш DNS сервер:
dkim._domainkey.mydomain.ru. 3600 IN TXT "v=DKIM1; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIqFwU3xQ4AcLfdMwI9m/emPcmYSqkCe9evo9jYLItWaBZDLBWRXwzcDNVa492HSImXRSk 4Jd7zE7Ir 2xUzi0EShUYmBABKE4Z2x7tl7zo1iStW7DxN/ciEeRBH/iGWziBwl4crp ahyfEq5EAKr2OHDeVl12xDUwlA6yjLsrwIDAQAB"где:
v — версия DKIM, всегда принимает значение v=DKIM1;
p — публичный ключ, кодированный в base64.
SPF (Sender Policy
Framework) — это подпись, содержащая информацию о серверах, которые могут
отправлять почту с вашего домена. Наличие SPF снижает вероятность попадания
письма в спам.
Добавим в DNS значение SPF:
mydomain.ru. IN TXT "v=spf1 a mx ~all" где:
v — версия SPF, обязательный параметр, всегда spf1, никакие другие версии не работают;
— принимать письма (по умолчанию);
— — отклонить;
~ — «мягкое» отклонение (письмо будет принято, но будет помечено как спам);
mx — включает в себя все адреса серверов, указанные в MX записях домена;
a — IP-адрес в A-записи;
all — все остальные сервера, не перечисленные в SPF-записи.
DMARC (Domain-based Message Authentication, Reporting and Conformance) — это подпись, которая позволяет принимающему серверу решить, что делать с письмом. DMARC использует DKIM и SPF. Если отправленное сообщение не прошло проверку DKIM и SPF, то оно не пройдет и DMARC. Если же сообщение успешно прошло хотя бы одну проверку (DKIM или SPF), то и проверку DMARC сообщение пройдет успешно. DMARC добавляется только после того, как настроены записи SPF и DKIM.
Запись DNS:
_dmarc.mydomain.ru. IN TXT "v=DMARC1; p=none; sp=none; pct=100; fo=0; rua=mailto:postmaster@mydomain.ru"Подробно о DKIM, DMARC и SPF — https://habr.com/ru/post/343128/
Autodiscover для почтовых клиентов
В Microsoft Exchange есть прекрасная служба Autodiscover для автоматического обнаружения серверов почтовой службы, которая работает через веб сервер и по сути передает клиенту, Outlook, xml файл с описанием настроек. Попробуем сделать что-то похожее с помощью DNS сервера, тем более, что данный метод описан стандартом RFC и заключается в создании SRV-записей в DNS.
SRV запись имеет данную структуру:
_service._proto.name TTL class SRV priority weight port targetПодробно про SRV записи в DNS — https://ru.wikipedia.org/wiki/SRV-запись.
Добавим:
_imap._tcp.mydomain.ru. 300 IN SRV 20 10 993 mail.mydomain.ru.
_imap._tcp. mydomain.ru. 300 IN SRV 10 10 143 mail.mydomain.ru.
_pop3._tcp. mydomain.ru. 300 IN SRV 10 10 110 mail.mydomain.ru.
_pop3._tcp. mydomain.ru. 300 IN SRV 20 10 995 mail.mydomain.ru.
_submission._tcp. mydomain.ru. 300 IN SRV 10 10 587 mail.mydomain.ru.
_smtp._tcp. mydomain.ru. 300 IN SRV 20 10 465 mail.mydomain.ru.SSL Сертификат для Web-сервера
Остается прикрутить сертификат для нашего web-сервера, поскольку доступ только через https протокол. Если есть коммерческий сертификат, то необходимо установить его для Nginx, если нужна альтернатива, то — https://certbot.eff.org/lets-encrypt/debianstretch-nginx.
Заключение
Конечно данная сборка не претендует на решение для больших корпораций и компаний. При выборе почтовой системы нужно учитывать много факторов. Здесь не представлены решения по отказоустойчивости и балансировке нагрузки. Да и не думаю, что для компаний, которые ставят задачи по нагрузке, отказоустойчивости, непрерывности услуги подойдут подобные решения на открытых кодах, т.е. по сути без поддержки со стороны вендора.
Также данное решение не претендует на конкуренцию с Micorosft Exchange, мое мнение, что у Exchgane нет конкурентов, пока во всяком случае. Но у Exchange есть один минус — решения на его базе стоят не малых денег. А iRedMail представляет для маленьких и средних компаний стандартное решение для обмена сообщениями SMTP(S), IMAP(S), POP3(S) с антивирусной и антиспам защитой, плюс достаточно симпатичный веб-интерфейс с неплохим функционалом. Также можно присмотреться к веб-решению SOGo Groupware, которое присутствует в сборке iRedMail.
При этом решение бесплатное, в плане лицензионных затрат, не особо требовательно к оборудованию и ресурсам системы.
§
Проверим диски, физически подключенные к машине:
ls /dev/sd*или
ls /dev | grep sd
У нас 2 диска /dev/sda и /dev/sdb/. Диск sda имеет 3 раздела. Диск sdb не имеет разделов. Выведем информацию по диску:
fdisk -l /dev/sdb
Создадим раздел на диске sdb:
fdisk /dev/sdb
Введем команду – n
и создадим единственный раздел – p

Сохраняем и выходим – w

Далее форматируем созданный раздел
mkfs.ext4 /dev/sdb1 — для ext4 файловой системы
mkfs.ntfs /dev/sdb1 — для ntfs файловой системы
NTFS удобно для бэкап раздела, если нужно будет читать данные с него на Windows машине. С ext4 разделами на Windows возникают трудности, поскольку Windows с коробки не видит такие диски.
Однако может оказаться, что mkfs.ntfs отсутствует в системе.
Установим:
apt-get install ntfs-3gПодробнее о NTFS под Linux — https://wiki.archlinux.org/index.php/NTFS-3G_(Русский)
Отформатируем раздел /dev/sdb1 в NTFS:
mkfs.ntfs -f /dev/sdb1
Создадим папку buckup в /mnt — эта папка используется для монтирования, можно использовать любую папку:
mkdir /mnt/backupПримонтируем диск:
mount -t ntfs /dev/sdb1 /mnt/backupОднако после перезагрузки системы диск не смонтируется автоматически. Для этого получим идентификатор раздела, т.н. UUID:
blkid
Находим наш раздел и запоминаем UUID
/dev/sdb1: UUID=" 0B11987B18D10457" TYPE="ntfs"И в файл /etc/fstab добавляем строчку:
UUID=0B11987B18D10457 /mnt/backup ntfs errors=remount-ro 0 1Или:
echo "UUID=0B11987B18D10457 /mnt/backup ntfs errors=remount-ro 0 1" >> /etc/fstabМожно также смонтировать по названию раздела:
/dev/sdb1 /mnt/backup ntfs errors=remount-ro 0 2Почему удобнее UUID, а не названием раздела? Если физически переставить диски местами, то в зависимости от порта подключения (предположим SATA), поменяется и буквы дисков. Скажем с /dev/sdb на /dev/sda и наоборот. Поэтому лучше по возможности монтировать по UUID.
Перезагрузим сервер и убедимся, что раздел смонтирован:
touch /mnt/backup/testfile.txt
ls /mnt/backup/Если есть файл testfile.txt, то диск готов.
rm /mnt/backup/testfile.txtИнфо:
Посмотреть разделы и объем, занято и свободно df -l или df -lh если надо не байтах.
Установка iredmail
Я буду настраивать почтовый сервер на CentOS 7. Если у вас еще не готов сервер, то рекомендую мои материалы – установка и базовая настройка CentOS. Каких-то особых требований к установке нет. Для системы достаточно раздела 20-30 гигабайт.
Для почтовой базы рекомендую отдельный раздел с достаточным свободным местом. Начать можно хотя бы с 200 гигабайт. Но это не обязательно, для теста можете все сделать на одном разделе. Потом, если появится необходимость, просто перенесете всю базу в другое место с помощью символьной ссылки. Когда все будет готово, приступайте к установке iRedMail.
Если не будете смотреть мою статью по базовой настройке, то не забудьте отключить SELinux, без этого iRedMail нормально работать не будет. Это обязательное требование, указанное на сайте разработчика. Так же не рекомендую отключать firewalld, если не хотите настраивать iptables вручную, iredmail автоматически настраивает iptables.
Установка неплохо описана на самом сайте продукта. Можете подсматривать туда, если что-то будет непонятно. Идем на страницу загрузки и копируем ссылку для загрузки.
Скачиваем скрипт установки iRedMail и распаковывем.
Заключение
Подведем итог работы по настройке почтового сервера. Я постарался рассмотреть наиболее полезные и значимые возможности и настройки на основе своего опыта эксплуатации почтовых серверов postfix. Конечно, я не раскрыл всех нюансов. Отдельно надо рассмотреть вопрос бэкапа почтового сервера, а точнее почтовых ящиков пользователей.
Там есть свои нюансы и сложности. Связаны они в первую очередь с тем, что каждое письмо это отдельный файл. Офис человек в 100-150 генерирует очень много почтового трафика, который будет состоять из десятков тысяч файлов в месяц. А за 5 лет накопятся терабайтные архивы очень важных писем менеджеров, которые нужно будет где-то хранить и быстро отдавать пользователям.
Есть еще много более ли менее полезных функций и возможностей, которые можно добавить и использовать. Например, борьба со спамом штатными возможностями postfix с помощью разных restrictions. Отдельно надо рассматривать вопрос общих почтовых папок, это может быть интересно и полезно.
Вопрос сертификатов и dkim я не затронул вообще. По мере возможностей, постараюсь раскрывать эти темы и делиться опытом. Но все не успеваю. Ко мне опыт приходит быстрее, чем я успеваю им делиться 🙂 Очередь из статей и планов уже очень большая выстроилась.
На этом заканчиваю, надеюсь вам будет полезна моя статья. Я писал ее почти неделю с разной интенсивностью, обдумывая нюансы и подбирая полезные вещи. Буду рад комментариям, а особенно подсказкам и каким-то советам по улучшению работы и расширению функционала почтового сервера.
Напоминаю, что данная статья является частью единого цикла статьей про сервер Centos.
