HMail server
Есть знатоки этого почтовика ? Помогите побороть еждневный "autoban" в ±200 ipшников.
Есть знатоки этого почтовика ? Помогите побороть еждневный "autoban" в ±200 ipшников.
Словил проблему с Lotus Domino с разделом большого размера, разобрался с ней, но вылилась другая - маршрутизация не работает, бились полдня, отложили, кинули вопрос на техпод выше. А тут вырисовалась такая интересная статья: ошибке 30 лет и про нее никто не знал....
В переводе:
Команда разработчиков HCL Domino выявила проблему, которая повлияет на "ВСЕ версии сервера Domino" с 13 декабря 2024 года.
При перезапуске сервера произойдет ошибка маршрутизатора, которая приведет к сбоям доставки из-за сбоя маршрутизации. Также начнут сбоить почтовые правила.
Кроме того, Domino будет использовать только один почтовый ящик, независимо от того, что требуется в документе конфигурации.
Это проблема с датой и временем в нашем коде, область, в которой был обнаружен дефект, используется для определения того, нужно ли обновлять конфигурацию. С 13 декабря эта проверка не выполняется, и поэтому маршрутизатор не будет загружать вашу конфигурацию.
Эта проблема возникнет только в том случае, если Domino будет перезапущен 13 декабря 2024 года или позже. 13 декабря компания HCL выпустила предупреждение об ограничении воздействия.
Временное исправление было предоставлено в течение 24 часов - подробную информацию о загрузке смотрите в таблице ниже.
Эта проблема не вызвана недавним изменением кода и не влияет на безопасность. Эта ошибка существует более 30 лет и, похоже, затрагивает все версии Domino, ранее она не была обнаружена ни IBM, ни Lotus.
Последняя фраза порадовала - вот это пасхалка, так пасхалка! Сработала через 30 лет и почти положила почтовики во всем мире )))
Всё началось с того, что полгода назад я делал одному человеку интеграции какой-то старой как говно мамонта управленческой платформы для аптек (называется "Трейд Фарм", если хотите погуглите) с доставкой через Яндекс.Еду. На этом этапе вы можете спросить насчет того, делал ли я фильтрацию рецептурных средств, но я вам отвечу, что на описываемой стадии разработки это не суть важно. Важно вот что. Эта программа съела моё время, деньги и уверенность до такой степени, что рядовому абоненту услуг Интернета, каких на Пикабу over 9000, это наверняка будет непонятно. До какой - сейчас расскажу.
На момент, который я описываю, "запил" решения была почти в самом конце стадии разработки, что означало, что скоро оно перейдёт в стадию отладки. Так вот. Сервер клиента лёг банально средь бела дня, и об этом я узнал совершенно неожиданно. Поначалу эта новость не повергла меня в шок, так как мой оптимизм тогда ещё не был нарушен той самой проблемой. Дело в том, что все исходники хранились по всем правилам корпоративной ИБ - на локальной тачке, в вебе и на офлайновом жесткаре. Бинарники же, до падения сервака, спокойно копировались через MS Web Deploy, и моей ошибкой было то, что я хотел переложить опыт "до падения сервера" на "после падения".
Так вот, логинюсь как-то на сервак и ставлю джентльменский набор софта и настроек. Изюм в том, что все поставленные проги наотрез отказываются принимать данные на своих стандартных портах! В брандмауэре четыре - два (ин/аут) по два (ТКП/ЮДП) правила на стандартные порты всех используемых в решении технологий. В роутере тоже всё четко, даже DMZ пробовал. Во всех конфигах на прослушку стоит 0.0.0.0. Где же, сука, дятлиное яйцо зарыто? А я хз. Самое сумасводное - это то, что только стоит сменить порт - всё крутится-вертится. Однако смысл подключаться к серверу с софтин, не умеющих банально обрабатывать номера портов, типа подавляющего большинства почтовых клиентов.
В итоге я не знал что делать. Решил, как только появятся свободные деньги, купить/собрать сервер и самостоятельно захостить приложение заказчика. Деньги таки появились, и я налимонился и попёрся в "Савеловский", где сварганил себе компутахтер для т.н. "он-прем инфраструктуры". Купил ещё ИБП - так, на всякий пожарный случай (не правда ли, двусмысленно получилось?), ну да ладно. Все же в интересах "лучших практик", как никак... Также купил провод RJ-45 на 20 метров, дабы протянуть проводную сеть с роутера. Приехал, скоммутировал и купил домен. Ещё получил ДНС-хостинг, где в первую очередь выставил A-запись.
На следующий день установил почтовый сервер, где также провёл всю "инженерку", о которой я смог подумать. А потом удивился - почему почта не приходит, может в спам попала? Посмотрел и спам, и корзину, и даже важные. Нигде нет, хотя в админке hMailServer всё в полном порядке. Прогуглил - нужна MX-запись. В итоге полез в DNS-редактор Ru-Center'а, где сделал аменд. Только аменд этот был кривой. Значение записи продублировалось, и из-за этого запись отображалась в лукапе не как "домен.тлд", а "домен.тлд.домен.тлд", хотя в самом редакторе такого не было. Пришлось открывать тикет.
Открыл тикет в поддержке елистратора, запросил редактирование ресурсной записи MX силами специалистов саппорта, где всё прошло на редкость нормально. Однако почта всё равно не приходила, даже когда почтарь проходил все диагностики. Я уже с катух, не знаю чё делать, как я захожу в веб-клиент Яндекс Почты (ныне Yandex 360) и вижу ЭТО. Письмо один хрен с баганой кириллицей, но что же было написано в инфобаре?
Вот что. Оказ Чу.Почта ненавидит серваки без PTR-записей. Перегуглил, узнал про enterprise-grade антиспамы и их фуфлоособенности. Полез в Хабр из гугловской карусели с картинками, находящейся непосредственно под рекламой и пнулся на картинку (внизу):
Источник: habr.com/ru/articles/496018/
Казалось бы, триумф, верно? Как бы не так! Короче, я зашёл в чат приложения Мой МТС и вышел на оператора (онна, какая-то Марина), сослался на картинку выше. И представляете, вместо того, чтобы сделать мне PTR-запись, она просто взяла и подключила мне статический IP-адрес, даже не взглянув на то, что он у меня уже подключён! Я ей ровно три раза сообщил, что мне нужен не статический IP, а именно PTR-запись для почтового сервера, потому что белый адрес у меня есть. После минуты молчания эта Я-Не-Знаю-Как-Назвать просто взяла и крякнула мне вот это:
Но это не самое скверное. Самое скверное то, что людской опыт говорит о совершенно обратной ситуации:
Ой да ладно! Какие ещё в МТС/МГТС "обращения"! Только многоканальные телефоны и чаты с рандомным выбором операторов, только хардкор!
Источник: lk.mgts.ru
Ну и что с этим делать? Я призываю бороться, воевать до конца. Ведь сетью Интернет пользуются не только недоразвитые макаки, которым только поигрульки и подрочульки, но и действительно умный и прогрессивный люд, который замедлит глобальное потепление и построит колонии на Марсе способен поднимать серваки на собственной инфраструктуре, как следствие экономить и иметь действительный аптайм. Проблема в том, что ЦА шаражкиных контор типа МТСа строится не столько на последних, сколько на первых, и это определяет ключевые стратегии их ведения бизнеса. Пожалуйста, распространяйте этот пост! Мы хотим, чтобы люди могли свободно вести сети, и никто не имеет право лишать пользователей их услуг.
Привет Пикабу! Прошу совета у местных гуру IT, нужен почтовый сервер с интеграцией в active directory, желательно на ubuntu. Поделитесь пожалуйста ссылкой на какой нибудь мануал или инструкцию, гуглинг даёт смешанные ответы, кто то пишет "Найди специалиста и не парься", а кто то выкладывает статью на 100500 листов. Что то мне подсказывает что есть уже готовое решение типа iredmail. Надеюсь на силу Пикабу.
Пост без рейтинга.
Disclaimer
Я не претендую на истину в последней инстанции, выбор есть, и не маленький, можно хоть на голом postfix+postfix-admin+roundcube поднять, dovecot или mailcow. Каждый выбирает тот набор продуктов, какой он захочет.
Создание учётных записей
После установки и настройки необходимо добавить домен, по которому будет ходить почта. Браузером заходим на https://IP:7071 и вводим логин admin и пароль, который указывали при установке.
Т.к. при установке мы не меняли домен, то необходимо добавить нужный. Заходим в Настройки – Домены. В правой части кликаем по шестерёнке и Создать. Задаём Имя домена – example.org, нажимаем Далее. В следующем окне выбираем сервер mail.example.org и нажимаем Готово.
Теперь меняем домен по умолчанию. Идём в Настройка – Глобальные настройки. Меняем Домен по умолчанию на example.org и нажимаем Сохранить.
Теперь создаём почтовые ящики. Идём Управление – Учётные записи, в правой части кликаем по шестерёнке и Создать. Задаём имя учётной записи и имя пользователя. Опускаемся чуть ниже и в поле Пароль задаём пароль и его подтверждение. Если необходимо, можно поставить галочку «Требуется сменить пароль», тогда, при первом входе пользователя, Zimbra потребует сменить пароль. При необходимости, чуть выше, в поле «Установка учётной записи», можно назначить пользователя Администратором, для этого ставим галочку «Глобальный администратор».
Таким образом создаём нужное количество ящиков и пользуемся почтовым сервером
Перенос писем
Тут есть два варианта - imapsync и перенос руками через почтовый клиент типа Thunderbird. Тут у меня провал в знаниях, ибо всем клиентам, кому я переносил почту, на архив было по барабану и временно оставили доступ к Яндекс.Почте со всем архивом писем, благо за это Яндекс деньги не берёт
Disclaimer
Я не претендую на истину в последней инстанции, выбор есть, и не маленький, можно хоть на голом postfix+postfix-admin+roundcube поднять, dovecot или mailcow. Каждый выбирает тот набор продуктов, какой он захочет.
Подготовка
Продолжаем устанавливать. Теперь ставим сам почтовый сервер – Zimbra. Он поддерживает RHEL-подобные системы 7 и 8 версии, а также Ubuntu LTS от 16.04 до 20.04. Я рассмотрю установку на Rocky Linux 8. Во время установки ОС надо обратить внимание на 2 вещи – корректный часовой пояс и включенную синхронизацию времени. Если Вы ошиблись с часовым поясом, то исправим его:
timedatectl set-timezone Asia/Krasnoyarsk
В данном случае мы задали Красноярское время.
Проверяем статус утилиты синхронизации времени:
systemctl status chronyd
Если она не запущена, то запускаем:
systemctl enable chronyd --now
Если не установлена, то устанавливаем и запускаем:
yum install chrony
systemctl enable chronyd --now
Если Вы решили использовать RHEL-подобную систему, то рекомендуется отключить SELinux. Для этого используем две команды:
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
Для своей работы Zimbra OSE использует следующие порты:
25 — основной порт для обмена почтой по протоколу SMTP
80 — веб-интерфейс для чтения почты (http)
443 — SSL веб-интерфейс для чтения почты (https)
465 — безопасный SMTP для отправки почты с почтового клиента
993 — SSL IMAP для работы с почтовым ящиком с помощью клиента
995 — SSL POP3 для загрузки почты
7071 — для защищенного доступа к администраторской консоли
Т.к. у нас Zimbra будет работать в связке с PMG, то 25 порт заменится на 26.
Если Zimbra стоит за NAT’ом, то рекомендую не прокидывать порт 7071, а использовать его только внутри сети. Так безопаснее. В любом случае, необходимо открыть эти порты в файерволле:
firewall-cmd --permanent --add-port={26,80,443,465,993,995,7071}/tcp
firewall-cmd –reload
Для Zimbra важно, что бы её внешнее имя было прописано локально. Поэтому задаём имя сервера:
hostnamectl set-hostname mail.example.org
Теперь открываем файл hosts:
nano /etc/hosts
И добавляем:
IP_адрес mail.example.org mail
На этом подготовка завершена
Установка Zimbra
Страница загрузки находится по адресу https://www.zimbra.com/downloads/zimbra-collaboration-open-source . Ищем нужную версию и скачиваем дистрибутив на сервер:
Распаковываем скачанный архив:
tar -xzvf zcs-*.tgz
Переходим в каталог:
cd zcs-*/
Запускаем установку:
Появится вопрос о принятии лицензионного соглашения – принимаем:
Do you agree with the terms of the software license agreement? [N] Y
Разрешаем использование репозитория Zimbra:
Use Zimbra's package repository [Y] Y
И соглашаемся на установку всех модулей, кроме zimbra-imapd:
Install zimbra-ldap [Y] Y
Install zimbra-logger [Y] Y
Install zimbra-mta [Y] Y
Install zimbra-dnscache [Y] Y
Install zimbra-snmp [Y] Y
Install zimbra-store [Y] Y
Install zimbra-apache [Y] Y
Install zimbra-spell [Y] Y
Install zimbra-convertd [Y] Y
Install zimbra-memcached [Y] Y
Install zimbra-proxy [Y] Y
Install zimbra-archiving [N] Y
Install zimbra-drive [Y] Y
Install zimbra-imapd (BETA - for evaluation only) [N] N
Install zimbra-network-modules-ng [Y] Y
Install zimbra-talk [Y] Y
Подтверждаем ранее введённые настройки:
The system will be modified. Continue? [N] Y
Начался процесс установки, ждём окончания.
Если Ваш сервер находится за NAT или Вы ещё не настроили домен, то появился сообщение, что нет записи MX:
It is suggested that the domain name have an MX record configured in DNS
Просто игнорируем его.
Установщик предложит поменять домен – не соглашаемся
Change domain name? [Yes] No
Далее установщик покажет меню настройки. Нас интересует строка Admin Password UNSET. Вводим 7, затем 4 и устанавливаем пароль администратора. Затем выходим из меню (r) и применяем настройки (a).
Сохраняем конфигурацию:
Save configuration data to a file? [Yes] Y
The system will be modified - continue? [No] Y
И ждём окончания установки. На запрос отправки уведомления об установке отвечаем по своему усмотрению (по умолчанию Да)
Notify Zimbra of your installation? [Yes]
В конце концов всё установится, и просто нажимаем Enter
Configuration complete - press return to exit
Установщик меняет пароль root, поэтому необходимо изменить его обратно:
passwd root
Небольшая донастройка
Вместе с Zimbra поставился пакет dnscache, установщик меняет DNS-сервера в сервере и перестаёт работать разрешение DNS имён. Исправим это. Для начала посмотрим, какой мастер DNS прописан в конфигурации:
su - zimbra -c "zmprov getServer 'mail.example.org' | grep DNSMasterIP"
В моём случае последний октет разный, пусть будет 127.0.0.48:
zimbraDNSMasterIP: 127.0.0.48
Удаляем данную запись:
su - zimbra -c "zmprov ms 'mail.example.org' -zimbraDNSMasterIP 127.0.0.48"
И добавляем свои DNS сервера:
su - zimbra -c "zmprov ms 'mail.example.org' +zimbraDNSMasterIP IP_адрес"
Если сервер находится за NAT, то после настройки сервер не сможет принимать почту, а в логах можно увидеть ошибку delivery temporarily suspended: connect to 7025: Connection refused). Это происходит из-за попытки передать письмо из очереди в ящик по внешнему порту 7025, который недоступен из-за NAT. Исправим это:
su - zimbra -c "zmprov ms mail.example.org zimbraMtaLmtpHostLookup native"
su - zimbra -c "zmprov mcf zimbraMtaLmtpHostLookup native"
Т.к. Zimbra работает в связке с PMG, то добавим для SMTP 26 порт:
nano /opt/zimbra/common/conf/master.cf.in
И после строки
smtp inet n - n - 1 postscreen
Добавляем строку
26 inet n - n - - smtpd
После всех манипуляций перезапускаем службы:
su - zimbra -c "zmmtactl restart"
SSL сертификат Let’s Encrypt
Без этого сертификата не будут работать почтовые клиенты, а также, при входе через WEB, будет выскакивать назойливое сообщение о небезопасном подключении. Так приступим же к установке!
yum install certbot
Перед выпуском сертификата выполняем тестовый выпуск:
certbot certonly --dry-run --standalone -d mail.example.org
Если всё хорошо и ошибок нет, то выпускаем сертификат:
certbot certonly --standalone -d mail.example.org
В процессе будет запрошен e-mail администратора и два вопроса:
1) О согласии с лицензионным соглашением
2) О предоставлении своего почтового ящика для рассылки
Соглашаться ли со вторым пунктом – дело Ваше
После выпуска сертификата переходим в каталог Let’s Encrypt с Вашим доменом, качаем корневые сертификаты и формируем корректную цепочку, что бы Zimbra её приняла:
cd /etc/letsencrypt/live/mail.example.org/
wget -4 -O /etc/letsencrypt/live/mail.example.org/isrgrootx1.pem https://letsencrypt.org/certs/isrgrootx1.pem.txt
wget -4 -O /etc/letsencrypt/live/mail.example.org/letsencryptauthorityx3.pem https://letsencrypt.org/certs/letsencryptauthorityx3.pem.txt
cat /etc/letsencrypt/live/mail.example.org/isrgrootx1.pem > /etc/letsencrypt/live/mail.example.org/zimbra_chain.pem
cat /etc/letsencrypt/live/mail.example.org/letsencryptauthorityx3.pem >> /etc/letsencrypt/live/mail.example.org/zimbra_chain.pem
cat /etc/letsencrypt/live/mail.example.org/chain.pem >> /etc/letsencrypt/live/$DOMAIN/zimbra_chain.pem
Создадим папку letsencrypt в структуре каталогов Zimbra и скопируем туда полученные сертификаты:
mkdir /opt/zimbra/ssl/letsencrypt
cp /etc/letsencrypt/live/mail.example.org/* /opt/zimbra/ssl/letsencrypt/
Назначим права на эти файлы и проведем верификацию:
chown zimbra:zimbra -R /opt/zimbra/ssl/letsencrypt
su - zimbra -c "zmcertmgr verifycrt comm /opt/zimbra/ssl/letsencrypt/privkey.pem /opt/zimbra/ssl/letsencrypt/cert.pem /opt/zimbra/ssl/letsencrypt/zimbra_chain.pem"
Успешный вывод:
** Verifying '/opt/zimbra/ssl/letsencrypt/cert.pem' against '/opt/zimbra/ssl/letsencrypt/privkey.pem'
Certificate '/opt/zimbra/ssl/letsencrypt/cert.pem' and private key '/opt/zimbra/ssl/letsencrypt/privkey.pem' match.
** Verifying '/opt/zimbra/ssl/letsencrypt/cert.pem' against '/opt/zimbra/ssl/letsencrypt/zimbra_chain.pem'
Valid certificate chain: /opt/zimbra/ssl/letsencrypt/cert1.pem: OK
Переименовываем закрытый ключ, перемещаем в каталог коммерческих сертификатов, выполняем установку и перезапускаем службы Zimbra:
mv /opt/zimbra/ssl/letsencrypt/privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key
su - zimbra -c "zmcertmgr deploycrt comm /opt/zimbra/ssl/letsencrypt/cert.pem /opt/zimbra/ssl/letsencrypt/zimbra_chain.pem"
su - zimbra -c "zmcontrol restart"
Данный сертификат выпускается на 3 месяца. В последние дни сертификата его необходимо перевыпустить:
certbot renew
После чего повторяем все шаги, начиная с «После выпуска сертификата переходим в каталог Let’s Encrypt»
На этом установка Zimbra завершена
Disclaimer
Я не претендую на истину в последней инстанции, выбор есть, и не маленький, можно хоть на голом postfix+postfix-admin+roundcube поднять, dovecot или mailcow. Каждый выбирает тот набор продуктов, какой он захочет.
Вступление
Итак, раз обещал инструкцию по относительно простому развёртыванию почтового сервера, то надо исполнять. Статья получилась длинной, так что пришлось разбить на 3 части. Выбор мой пал на Zimbra 8 OSE, потому что ранее уже работал с ним, достался в наследство от прошлого системного администратора у одного из клиентов. Да, последняя версия 8.8.15 и больше выпускать не будут, но есть форк – Carbonio, но он пока не совсем стабильный и использовать полусырой продукт в продакшне не очень-то и хочется. Надеюсь, за пару лет его хорошо допилят и можно будет переезжать на него.
Перед Zimbr’ой было решено поставить Proxmox Mail Gateway – у него более продвинутый антиспам с кучей настроек, из коробки есть TLS и DKIM, да и в целом более современный продукт защиты почтового сервера.
Весь этот набор я, обычно, ставлю на Proxmox VE – гипервизор, в котором создаю 2 виртуалки, одну для Zimbr’ы, вторую для PMG. Во первых, не надо плодить лишнего железа, а во вторых будет проще перенести виртуалки на другой сервер, если с железом что-то случится, чем заново всё поднимать и раскатывать из бэкапов. Ну и сами бэкапы виртуалок тоже просто делать, буквально пару кликов мышки.
Весь этот набор, на одной из последних инсталляций, крутится на HP Proliant DL320 G6 с процессором Intel Xeon E5630 и 32 GB RAM с 50 средне-активными ящиками, примерно по 30 писем в день на каждом. Для PMG выдано 4 потока процессора и 4 GB RAM, для Zimbra 4 потока и 8 GB RAM. В принципе, хватает. И да, я знаю, что сервер старый. Все риски с заказчиком проговорили, таков путь его бюджет.
Как ставить PVE и PMG есть куча статей в инете, здесь я расскажу про настройку PMG, установку и настройку Zimbra, а так же настройку домена.
Самое главное – у почтового сервера должен быть белый IP-адрес. Сервер не обязательно должен смотреть напрямую в интернет, можно через роутер пустить, но тогда необходимо прокинуть порты на него.
Настройка домена
Для начала определимся в типах записи домена
А – служит для преобразования имени хоста в IP-адрес
MX – определяет, на каком хосте находится почтовый сервер, а так же порядок его использования
TXT – общая текстовая информация, в данном случае служит для настройки записей SPF, DMARC и DKIM
PTR – обратная запись DNS. Служит для проверки нахождения почтового сервера на конкретном IP-адресе
SPF – служит для проверки, с каких почтовых серверов разрешена отправка писем
DMARC – указывает, что делать с письмами, если записи SPF и DKIM окажутся некорректными
DKIM – служит для подписания писем закрытым ключом, таким образом, сервер-получатель знает, что письмо отправлено именно с Вашего почтового сервера, а не с фишингового.
Наш почтовый сервер будет иметь домен mail.example.org. Для начала, необходимо запросить у провайдера/хостера (смотря где находится сервер) прописать PTR-запись на Ваш IP-адрес вида mail.example.org
Затем идём в управление DNS-зонами домена (если используете DNS регистратора) и добавляем следующие записи:
1) Создаём домен mail.example.org, делаем запись типа А с IP-адресом сервера.
2) Переходим в домен example.org, добавляем записи MX с приоритетом 10 и адресом mail.example.org и TXT запись со значением v=spf1 mx –all.
3) Создаём домен _dmarc.example.org и добавляем туда TXT запись со значением v=DMARC1; p=none
Обновление DNS-записей домена может доходить до суток, но на моей практике всё обновлялось в течении 30 минут.
PMG
После установки PMG заходим по SSH и, первым делом, отключаем коммерческий репозиторий и добавляем бесплатный:
rm /etc/apt/sources.list.d/pmg-enterprise.list
touch /etc/apt/sources.list.d/pmg-no-subscription.list
Заходим в pmg-no-subscription.list:
nano /etc/apt/sources.list.d/pmg-no-subscription.list
И добавляем репозиторий:
deb http://download.proxmox.com/debian/pmg bullseye pmg-no-subscription
Выходим с сохранением (Ctrl+X) и обновляем систему:
apt update && apt upgrade –y
Если в списке обновляемых файлов было ядро (pve-kernel-*), то перезагружаем PMG после обновления, что бы он загрузился на новом ядре:
reboot
Проверяем, что бы имя сервера соответствовало его локальному IP-адресу
nano /etc/hosts
В этом файле должна быть запись вида IP_адрес mail-gw.example.org mail-gw, при этом IP_адрес НЕ 127.0.0.1.
После всех описанных процедур заходим браузером на https://ip:8006 и вводим логин-пароль, который указали при установке
Идём во вкладку Configuration-Network/Timeи, при необходимости, правим часовой пояс, время и настройки DNS
Затем идём в Options и правим настройки отчётов
А теперь переходим к настройке самого релея. Идём в Configuration – Mail Proxy и указываем в поле Default Relay адрес почтового сервера, на который PMG будет пересылать всю почту
Далее в Relay Domains указываем, какие домены будет обслуживать PMG и почтовый сервер. Это один из этапов защиты, если не указать домен, то письма будут автоматически отбрасываться.
Во вкладке Ports указываем наружный и внутренний SMTP порты. Советую оставить по умолчанию, далее в Zimbra заменим порт SMTP на 26.
Во вкладке Options я, как правило, правлю 3 пункта – Message Size (размер письма, ставлю 50 мбайт), Use SPF = yes (SPF-запись нужна для настройки домена, что бы другие почтовые сервера понимали, с каких серверов для этого домена разрешена отправка писем) и SMTPD Banner (что бы при приветствии сервера по SMTP протоколу не палиться, что это PMG).
Далее – DKIM. Включаем подпись DKIM, указываем селектор и говорим, что необходимо подписывать все исходящие письма DKIM-ключом
Затем, чуть ниже в Sign Domains добавляем домен example.org.
Затем идём в генератор DKIM (например, https://2ip.ru/dkim), задаём имя домена example.org, селектор mail и размер ключа (2048). Получаем три записи – Private Key, Public Key и TXT-запись в домен. Если присмотреться, то увидите, что в TXT записи есть пробелы – это нормально, так и должно быть. Опять идём в управление DNS-зонами домена и добавляем домен mail._domainkey.example.org, создаём в нём TXT запись и вставляем всё, что окажется в поле «TXT запись», начиная с V=DKIM и до конца, исключая кавычки. Для проверки, что DKIM-запись в домене появилась и она правильная, идём на сервис проверки DKIM (например, https://dmarcian.com/dkim-inspector), прописываем имя домена, селектор и нажимаем «Inspect DKIM». Если запись правильная, то появится надпись «Congratulations! Your DKIM record is valid».
Затем подключаемся по SSH к PMG и открываем файл /etc/pmg/dkim/mail.private
nano /etc/pmg/dkim/mail.private
Удаляем всё содержимое и вставляем с поля «Приватный ключ» с сайта 2ip.ru.
Может возникнуть вопрос – а зачем было менять ключ, если он есть, почему нельзя было его скопировать в DNS-запись? Отвечаю – отсутствие пробелов в нужных местах. В DNS родная запись PMG будет выглядеть одной строкой, и такая запись будет невалидна из-за своей длины.
И есть ещё 3 неочевидных момента, с которыми я, на первой инсталляции, промучался долго.
SMTP_HELO
SMTP_HELO - это приветствие между почтовыми серверами. Сервер должен представляться своим почтовым доменом (в нашем случае mail.example.org), однако PMG подставляет туда своё локальное имя (в моём случае mail-gw.example.local). Исправим это.
Проверяем, что существует папка /etc/pmg/templates. Если нет, то создадим её
mkdir /etc/pmg/templates
Копируем шаблон настроек и открываем в редакторе
cp /var/lib/pmg/templates/main.cf.in /etc/pmg/templates/main.cf.in
nano /etc/pmg/templates/main.cf.in
Находим строку smtpd_banner = $myhostname [% pmg.mail.banner %] и меняем $myhostname на mail.example.org
Ищем строку biff = no и, после неё, добавляем строку smtp_helo_name = mail.example.org
Затем перезагружаем PMG, что бы он принял конфиг
pmgconfig sync --restart 1
RAR архивы
Изначально PMG не может просканировать RAR архивы во вложениях на предмет вирусов. Исправим это
Добавим non-free репозитории. Открываем на редактирование sources.list
nano /etc/apt/sources.list
И приводим содержимое к следующему виду:
deb http://deb.debian.org/debian bullseye main contrib non-free
deb-src http://deb.debian.org/debian bullseye main contrib non-free
deb http://deb.debian.org/debian bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free
После чего устанавливаем пакеты
apt update && apt install libclamunrar p7zip-rar
Готово, теперь PMG сможет сканировать RAR архивы
Ошибка SPF-записи
Если PMG использует DNS сервера внутри сети, то может происходить следующее - иногда сервера получателей не могут проверить SPF запись и не принимают письмо, хотя сама SPF запись есть и настроена корректна. Этот момент не всегда очевиден и легко пропустить в логах. Решение простое - добавить SPF запись на локальном DNS сервере. Если PMG использует внешние публичные DNS-сервера, то такой проблемы нет.
На этом настройка PMG закончена, можно приступать к установке и настройке Zimbra
Ранее писал о том как подключал интернет в Анапе (МТС и интернет. Часть 1).
Интернет мне понадобился не только для поиска информации, но и для работы.
Выделил компьютер и сделал из него сервер: подключил к роутеру, разместил веб-сайт на опенсервере, арендовал статический IP и настроил директ запросов с роутер на сервер. Услуги интернета стоили 650 руб/мес за 100мб/с, статический IP 150 руб/мес. Кабель к квартире тянул своими силами, потратил тысячи 4 на кабель и монтаж.
Первое время МТС возмещал кабель и его монтаж скидками в 20%. Мне приходилось каждые 2 мес звонить и просить скидку, они её давали.
Но вот недавно мне предложили перейти на новый персональный тариф: стоимость 400 руб/мес, скорость та же. Ещё и очень сильно извинились от лица фирмы за неудобства. Собственно, теперь я доволен :) Спасибо МТС :)
С деньгами МТС решает вопросы оперативно : возвращает или даёт скидки. Люди на пикабу как-то говорили, что у других операторов не так.
Почтовый сервер.
Помимо сайта организовал почтовый сервер на hMail. То есть теперь могу писать почту с адресов, которые заканчиваются названием моего домена. Например: admin@mydomain.ru.
Для работы сервера пришлось прописать стандартный набор записей: DKIM, SPF... PTR (его ещё rDNS называют).
Со всеми записями кроме PTR проблем почти не было. А вот PTR прописывал почти 2 месяца.
Зачем нужен PTR?
Если коротко, то для того чтобы письма с почтового сервера не уходили в спам в лучшем случае. В худшем случае письма могут вообще не доставиться даже в папку спам так как почтовые фильтры сочтут их мегаспамом.
Если немного подробнее.
Тут нужно рассмотреть:
- днс-сервер
- почтовый сервер (мой комп)
- поставщик услуг интернета (МТС).
На днс-сервере прописывается информация о том, что mysite.ru содержит почтовый сервер и этому серверу соответствует ip. Это условно, на самом деле там вообще много чего прописывается, но на пальцах так.
То есть днс-сервер содержит связку домена и IP: mysite.ru - 174.184.34.24
И это важно,без этого никак не зайти на сайт по его имени. Ну или почту без этого никак не отправить.
Но есть ещё дополнительное требование: провайдер интернета должен прописать у себя домен почтового сервера и соответствующий ему IP. И эта запись называется PTR или rDND. Reverse DNS.
Когда письмо идёт от отправителя, то оно проходит проверки. Одна из проверок - совпадегие DNS и rDNS. Если они совпадают, то все отлично и шансы того что ваше письмо доставится, допустим, на сервера Gmail значительно возрастает.
А если записи нет, то нужно молиться, чтобы письмо попало в папку спам.
Так вот, rDNS пришлось настраивать долго. Дело в том, что операторы / специалисты не особо специалисты в тех. вопросах. Так меня настойчиво пытались отправить к производителю моего WiFi - роутера, чтобы я на роутере rDNS настроил (это невозможно сделать на роутере). Приглашали монтажника. Монтажник дал мне информацию о том, что в мтс есть служба HelpDesk. Нужно написать в неё и все сделают.
Сказать проще чем написать. Почему-то операторы усиленно настаивали на том что я не в теме и что МТС не занимается PTR-ом. А вот производитель роутеров - это его хлеб.
С через несколько дней удалось оформить запрос в HelpDesk. Но вот оказалось, что оператор МТС записала название домена неверно. Хотя мы с ней по буквам все проверяли. А может это не она ошиблась... ?
Ну вы знаете как это бывает, когда уточняешь "и - это как с палочка с точкой или как е" или "в - это как галочка или две галочки"? Вроде все уточнили, как так... XD
На все это развлечение и переписку ушло месяца 2. Хорошо, что кроме rDNS была куча и других проблем, которые нужно было решать.
Для тех, кто думает, что британцы сейчас не приезжают в РФ: Ханна скоро должна приехать (уже в пути), ждёмс её в России :) Ещё она поспрашивала британцев, оказывается многие британцы навещают Россию.
На этом пока все.