Решил не заморачиваться со сторонними сервисами (уже словил достаточно сюрпризов) и запустить собственный почтовый сервер. В данный момент задумка чисто локальная - рассылка системных сообщений о событиях внутри сайта mysite.com и его поддоменов. Но не исключаю вариант раздачи почты юзерам сайта для личного пользования (почему нет?).
Какой бесплатный софт для почтового сервера на открытых исходниках можете посоветовать? Как оказалось их не мало, и я уверен что в каждой из них есть свои подводные камни. Какую версию linux использовать, если нужна максимальная стабильность? Поделитесь личным опытом или ссылкой на статьи
А у вас не было проблем с блокировкой обновления баз clamav для российских серверов? Свой планирую арендовать где нибудь на Дальнем востоке, т.к. ца находится именно там
Николай, у меня сервер не российский, т.ч. ничего по этому поводу не могу сказать. А зачем на ДВ арендовать? Арендовать почтовик территориально вообще всеравно где, главный критерий это надежность, цена и отсутствие российской юрисдикции, а его место положения неважно.
AlexVWill, понял. Спасибо. Это значительно облегчает задачу :) еще по поводу размера хранилища. Я просто понятия не имею сколько места может понадобиться, скажем, через пол года или год. Тем более если планирую рассмотреть вариант расширения. Если запустить как почтовый сервис для третьих лиц, то, как понимаю, все файлы их переписок должны будут храниться у меня, верно?
Николай, Там чисто архитектурная разница. postfix модульный, exim монолит. Пишут, что при среднем количестве почтового трафика exim работает быстрее, пока в очередях не накапливается много писем. Для среднестатистического корпоративного почтовика разницы особой нет.
Некоторые пишут, что exim работает от рута и это дыра в безопасности, но это не совсем так - root требуется только на этапе открытия 25 порта и для некоторых других действий, после этого привилегии понижаются. То же самое требуется и модулю postfixa, т.к. рутовые права для открытия порта для него никто не отменял. Другое дело, что у posfixa это небольшой модуль отвечающий за отдельно взятую задачу, а exim - он весь в одном исполняемом файле.
как понимаю, все файлы их переписок должны будут храниться у меня, верно?
какое то время да, это зависит от настройки сервера (pop/imap), будут ли пользователи забирать её в локальные ящики или синхронизироваться... в любом случае можно настроить квоту на один почтовый ящик, объем пересылки, срок хранения и пр.
Открытие открытию рознь.
В фаерволе вы открываете порт, который слушает другая программа, чтоб пропускать трафик пришедший на этот порт к этой программе.
В программе сервере (postfix, exim, любая другая) открывается этот порт для приема данных (которые выше пропустил фаервол). В Linux (и других никсах) для открытия программой портов ниже 1024 требуются права рута. Это политика работает по умолчанию. По моему ее можно отменить, но это не точно и обычно это никто не делает. А SMTP порт 25 - он меньше 1024, поэтому требуется рут.
В программе сервере (postfix, exim, любая другая) открывается этот порт для приема данных (которые выше пропустил фаервол).
?
/etc/postfix/main.cf редактируется и все, да и то, там просто нужный протокол указывается, а 25 порт по умолчанию стоит...
как на уровне системы порт открыть - я уже написал
AlexVWill, Видимо, ты не занимался программированием сетевых приложений.
Может не совсем корректно выразился, программа открывает сокет. Номер порта - это один из параметров сокета.
Когда программа стартует ей надо сообщить системе, что она хочет работать с сокетом по TCP протоколу и использовать порт 25, для открытия сокета есть системный вызов socket(), а для задания параметров сокету есть вызов bind(). Там в параметрах адреса указывается номер порта, а уже внутри bind система проверяет, если запрошенный порт меньше 1024, то требует наличие у процесса рутовых прав.
Процесс может быть запущен с рутовыми правами, сделать свои рутовые дела, а потом понизить права до какого-то другого пользователя, обычно имя этого пользователя как-то может быть сконфигурированно. Этот механизм используют все "правильные" приложения, работающие с "привилегированными" портами.
Грубо говоря это как открыть файл. Права на файл - это правила фаервола, а открытие файла программой для его чтения или записи - аналогично открытию сокета для его использования.
res2001, я понимаю что такое сокет, я не понимаю какое это имеет непосредственное отношение к сути обсуждаемого вопроса с т.з. администрирования почтового сервера для администратоа?
Не надо все усложнять и плодить сущности без нужды.
Для администратора надо открыть порт в iptables (ufw если попроще), открыть конфиг, убедится что нужный протокол указан, и дать команду sudo service postfix restart
Все. Если надо какие то доп настройки, то в нужном конфиге поменять, и опять рестартануть. Без заморочек с сокетами и прочим. И ничего программировать не надо.
AlexVWill, Я упомянул про якобы проблему в безопасности, ты сказал, что рут не нужен. Я объяснил зачем нужен рут почтовику. Я не пложу сущности, а отвечаю на твои реплики.
Или ты хочешь сказать, что программа может использовать 25 порт на линуксе без прав рута?
В явном виде там рут и не используется, служба стартует из-под другого пользователя, но на исполняемом файле установлен suid бит, что дает процессу рутовые привилегии при запуске от любого пользователя. Возможно suid бит используется и в модуле postfix, отвечающего за открытие сокета. В exim я это сам проверял.
res2001, sudo для старта сервиса systemd нужно, сама программа работает от юзера postfix, можно открыть htop и посмотреть. Я понял про что ты, для администрирования сервера это роли особой не играет.
AlexVWill, Аналогично и exim запускается не от рута. Думаю у postfix схема с открытием сокета та же (т.е suid бит и понижение привилегий после открытия сокета).
По моему чтоб htop показывал эффективного пользователя процессов надо его запускать с каким-то ключом. Или это касается top... У меня сейчас нет линукса под рукой, не могу проверить.
Идентификаторов владельца процесса 3 штуки: реальный, эффективный и сохраненный. Для манипуляций с понижением/повышением привилегий.
у многих бесплатных веб панелей управления хостингом есть почтовые интерфейсы.
так что если это чисый сервер то ставь
ispconfig3
aapanel
vestacp
там все в коробочке сразу с админкой и интерфейсом.
Если же реальныйх почтовых ящиков не будет то без разницы.
Exim4.
Только учтите, что мануалы для версии до 4.94 отличаются от мануалов версии после 4.94. Да и в целом, обращайте внимание для какой версии читаете мануал.
Зачем ?
уже есть готовые коробочные решения которые ставятся в 1 клик и имеют вполне себе рабочий интирфейс.
какой смысл ему разбираться в этом убивая много часов ( а первый раз это будет именно так)
brar, угу а потом я это "фундоментальное" перелопачиваю приводя к единому стандарту, когда через 5 лет на сеервере помойка из кастомки конфигов.
У генераторов есть свои плюсы, ты знаешь где и че лишнее и где и кто нахуевертил.
Если же все собирается ручками то там есть как человеческий фактор так и то что этих человеков несколько и у каждого есть такая вещь как " а сделаю на отьебись потом доделаю нормально"
Так что как показывает практика в таких системах помойка еще та со временем.
Так что тут спорно что лучше, качественно допилить шаблонизатор и все изменения вносить в соответствующие поля или руками все хуевертить.
Что же касается ПО то тут конечно стандартный стек рулит, но не везде.
У каждой задачи есть свои оптимальные решения.
Кто-то знаете ли vim не для допила скрптов а для полноценного программирования исползует.
;)