[Статья]: Настройка почтовой системы (Exim+Dovecot+Roundcube)

Обсуждение статьи Настройка почтовой системы (Exim+Dovecot+Roundcube).
Все вопросы и замечания связанные со статьей оставлять здесь.
Гость (не проверено)

Добрый день. Откуда берется в статье spamtrap. Оно больше нигде не упоминается.

# Добавляем очков за отправку письма на адрес-ловушку
warn local_parts = spam : spamtrap
domains = +local_domains
set acl_c_spamscore = ${eval:$acl_c_spamscore+50}
set acl_c_spamlog = $acl_c_spamlog Spamtrap;

nekit

Приветствую. В качестве адресов ловушек всегда используются давно забытые заброшенные адреса или специально созданные. То есть это обычный почтовый ящик. Отметил этот момент в статье.

ttys

В инете море статей о настройке этой связки и в качестве базы используется MySQL

но я как то сразу найти не смог вариант с OpenLDAP, что бы потом к этой же базе привязать например ejabberd и её же использовать как общую адресную книгу у пользователей.



Будет ли в рассмотрен этот вариант? ;)

nekit

Хорошая идея... У меня как раз есть сервак, где активно используется LDAP. Подумаю как лучше оформить (статья, заметка), поскольку разница будет только лишь в части, где используются запросы, ну и фильтрацию спама придется переделать, чтобы не ставить СУБД только ради работы ACL,ок.

P.S. Только по этой статье все данные хранятся не в MySQL, а в PostgreSQL.

ttys

я пытался настроить жаберд+постгря+почта но потом вылез косяк с памятью (маловато было) и ёж постоянно отваливался т.к. на сервере ещё мускульная базка сквид и куча всякой ереси

в общем не получилось, да и общюю адресную книгу из SQLа делать - это городить репликации в опенлдап, что есть костылём уже сразу опять таки памяти не много )))

рекомендую делать как независимая статья с полным копированием всего что есть дабы не скакать при прочтении ;)

 

ivankess

Добрый день, каким образом можно перенести пользователей из мускула в постгрес, есть ли у вас  icq для консультации...

дело в том что почта находилась на стороннем хостинге, VPS сервера, место закончилось и я решил почту от туда перенести на свой сервер,в мускуле не нашел ни доменов, ни базы пользователей, единственное в Roundcube базе есть пользователи

nekit

Добрый день, каким образом можно перенести пользователей из мускула в постгрес, есть ли у вас icq для консультации...

Перенести можно либо руками, либо самописным скриптом.
Для связи есть форум, а также почта и jabber, оба адреса - nekit@info-x.org

дело в том что почта находилась на стороннем хостинге, VPS сервера, место закончилось и я решил почту от туда перенести на свой сервер,в мускуле не нашел ни доменов, ни базы пользователей, единственное в Roundcube базе есть пользователи

Значит домены в файлах прописаны, смотрите конфиги, чтобы определить
В roundcube есть адресная книга, но это не то, что вам нужно

z80a

здравствуйте. подскажите, плз, как можно научить связку (exim, dovecot) юзать "соленые" md5 хэши?

делаю такой вот инсерт, согласно мануалу http://www.postgresql.org/docs/9.3/static/pgcrypto.html

INSERT INTO "users_tb" VALUES (DEFAULT, 'odmin', crypt('пороль', gen_salt('md5')), 1, 26, 26, '/var/mail', 10240, 'true');

ERROR:  function gen_salt(unknown) does not exist

я так понимаю gen_salt() это встроенняя функция и должна уже присутствовать.. иль чето не то..?

итоговая цель - сложить в базу системные хеши..

nekit
Приветствую. Данная функция доступна в модуле pgcrypto, который во FreeBSD доустанавливается через порт /usr/ports/databases/postgresql93-contrib. Кроме того, в базе данных, в кторой необходима доступность функций из модуля pgcrypto, необходимо выполнить запрос: CREATE EXTENSION pgcrypto;. Причем запрос должен выполнятся от имени суперпользователя.
Гость (не проверено)

Статья очень хорошая, как база для вдумчивого построения своей конфигурации. Пару наблюдлений из своего опыта (частично у Вас это соблюдено).



Отшибать лучше всё на этапе RCPT TO - результат тот же. а правила писать немного проще. Там же можно заносить в чёрный список. В predate рубим только письма от <>.



Имеет значение последовательность - проверка наличия адресата должна быть после всех проверок, чтобы нельзя было перебирать емайлы подбором. То же относится к проверке отправителя через calluot (defer_ok). Сдесь следут отшибать, а не накидывать очки - какой смысл принимать почту от несуществующего отправителя, если дело не в таймауте, а в отсутствии отправителя.



Неправильность отрубания при MAIL FROM касается и блеклиста в базе - MySQL сходит с ума, если висят параллельные сессии, в одной хост уже заблокирован, а в другой срабатывает повторная команда после RCPT TO на внесение в список.



Сравнивать лучше не PTR запись (туда можно прописать хоть microsoft.com прямо в админке vps хостера), а использовать $sender_host_name, который вычисляется резолвом в обе стороны и их соответствием.



Что касается очков. Я назначаю их так:



ошибка в DNS или HELO - по 10 очков на ошибку

попадание в один DNSBL - 20 очков



Всё, что набрало больше нуля - делаем callout с проверкой отправителя (домен отправителя ранее проверяется всегда).

Всё, что набрало больше 10 очков - пускаем в грейлстинг.

Всё, что набрало больше 30 очков - отшибаем.

Всё, что набрало больше 40 очков - отшибаем с заносом в блеклист.



Смысл в том, что одна проверка в DNS / HELO может быть ошибочной, как и попадание в один DNSBL. Тогда как попадание в два DNSBL - явный спам.



Ещё в статье забыт retry для квоты.

 

nekit

проверка наличия адресата должна быть после всех проверок, чтобы нельзя было перебирать емайлы подбором

Можно, с целью исключения возможности определения обслуживаемых адресов. Но злоумышленник все равно не сможет перепробовать большое количество почтовых адресов (больше чем указано в recipients_max, не получится). Также есть полезная опция smtp_ratelimit_rcpt, которая поможет сильно снизить эффективность перебора.

То же относится к проверке отправителя через calluot (defer_ok). Сдесь следут отшибать, а не накидывать очки - какой смысл принимать почту от несуществующего отправителя, если дело не в таймауте, а в отсутствии отправителя.

Блокировать слишком сурово. К тому же я в статье указал, что я не использую правила, которые блокируют отправителя и следовал только этой политике. И callout не выдает такой результат, по которому однозначно можно сказать существует ли отправитель (тут зависит от разных факторов - настройки на удаленной стороне, надежность сетевых сервисов, сетевых соединений, и т.п.).

Сравнивать лучше не PTR запись (туда можно прописать хоть microsoft.com прямо в админке vps хостера), а использовать $sender_host_name, который вычисляется резолвом в обе стороны и их соответствием.

Такой спамер быстро попадет в черные списки и тут уже сработают соответствующие правила. При большом потоке писем "двойной" DNS запрос плохо скажется на производительности. Поэтому зависит от ситуации - что лучше.

Ещё в статье забыт retry для квоты.

не совсем понял, что имеется ввиду? Если речь идет про квоты на объем почтового ящика, то в конфигурации, описанной в статье, эта задача полностью и всецело лежит на плечах Dovecot,а.

ivankess

Exim не стартует, в логах ошибка на доступ к каталогу /var/log/exim/, даем прова доступа: chown -R smmsp:smmsp /var/log/exim

Dovecot, тоже самое: "chown dovecot:dovecot /var/log/dovecot"

и не совсем понятно как создавать сертификаты,уж простите

nekit

Exim не стартует, в логах ошибка на доступ к каталогу /var/log/exim/, даем прова доступа: chown -R smmsp:smmsp /var/log/exim

Пользователь, под которым запускается Exim и владелец /var/log/exim должны совпадать.

ivankess

Эхх, ну да:

chown -R smmsp:exim /var/log/exim, но и также работало)



При проверке Довекот выходит ошибка : Dovecot: Initialization failed: namespace configuration error: inbox=yes namespace missing

В довкоте обновили конфиги и после обновления все поломалось.

Для быстрого решения проблемы удаляем/переносим файл /etc/dovecot/conf.d/15-mailboxes.conf и перезапускаем довкот. ( инфо: http://alex-tesla.livejournal.com/24628.html)

Гость (не проверено)

Здравствуйте! подскажите пожалуйста, как можно переделать запросы к БД. У меня MySQL стоит, а в статье используется PgSQL. помогите советом

Гость (не проверено)

добрый вечер

можете подсказать как запретить приемку почты из вне на конкретный ящик



принцип нашел- но не нашел как прицепить это к конкретному ящику, ящик нужен сугубо для отправки почты

Допишем в конфиг /etc/exim4/exim4.conf несколько строк. В начале конфига (там где названия ACLов) допишем:

acl_smtp_mail = acl_check_sender

И там где сами ACLы (после begin acl):

# Локальный блэк лист (черный список)
acl_check_sender:

deny message     = "Your e-mail in local black list - access denied! If you think this is a mistake - contact us."
senders = /etc/exim4/local_black_list
accept

Передернем Exim:

/etc/init.d/exim4 restart

Теперь те e-mail адреса, которые записаны в /etc/exim4/local_black_list (в столбик) почтовый сервер не пропустит и ответит отправителю, что он провинился:

Your e-mail in local black list - access denied! If you think this is a mistake - contact us.

nekit

Здравствуйте! подскажите пожалуйста, как можно переделать запросы к БД. У меня MySQL стоит, а в статье используется PgSQL. помогите советом

Приветствую.
Элементарно переделывается, просто синтаксис запросов меняете и все.
И в конфиге exim, команды обращения к PostgreSQL меняете на MySQL.

kobzar

Довекот заработал!

Ексим запустить так и не смог! При поптке отправить почту все время ошибки!

Иногда просит принять сертификат но после нажатия не принимает не один клиент! 

При получении почты ексим пишет reject after DATA...

Грусть

nekit

Довекот заработал!
Ексим запустить так и не смог! При поптке отправить почту все время ошибки!
Иногда просит принять сертификат но после нажатия не принимает не один клиент!
При получении почты ексим пишет reject after DATA...
Грусть

Все конфигурационные файлы с боевого сервера. Поэтому скорее у вас где-то ошибка в конфигах.

kobzar

Кто разобрался с грейлистом? 

Все почта в грейлист идет...

nekit

Что то не понятно, что у вас не работает... Может по конкретнее проблему объясните?

Привет Никит, появилась проблема с доставкой почты на mail.ru севера.

2018-05-18 13:33:01 1fJch3-0001Ef-FF <= www@xxxx.ru U=www P=local S=1025 id=34bf65de663e342ee9c4c347b278dcef@mbb43.ru from <www@xxxx.ru> for dorofeev_ivan@list.ru

2018-05-18 13:33:03 1fJch3-0001Ef-FF SMTP error from remote mail server after end of data: 421 Try again later. Error code: 6E5805A9D469181589DB5EEB95505C509875822F020091500DE83EC1407E014B.

2018-05-18 13:33:04 1fJch3-0001Ef-FF == dorofeev_ivan@list.ru R=dnslookup T=remote_smtp defer (-46) H=mxs.mail.ru [94.100.180.104]: SMTP error from remote mail server after end of data: 421 Try again later. Error code: 0EA0546E93201D909E149A0D5EDFB2379875822F02009150A53FAA5533466383.

 

Добавить комментарий

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Яндекс.Метрика