Возможно вы искали: 'Who Shot Johnny Rock? ...'

May 15 2025 19:20:21
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Почтовый сервер на основе sendmail и dbmail. (dbmail mail sendmail)

Почтовый сервер на основе sendmail и dbmail. (dbmail mail sendmail)

Ключевые слова: dbmail, mail, sendmail, (найти похожие документы)

From: fantom <tolik@dataxp.net.>
Newsgroups:
Date: Mon, 17 Nov 2006 14:31:37 +0000 (UTC)
Subject: Почтовый сервер на основе sendmail и dbmail.

Вступление.

Достался мне внаследство почтовик, проработавший 3 года практически без изменений.
И крутился на нем sendmail, каждый почтовый ящик - отдельный
пользователь (а ящиков примерно 2000 :) ).
Произошло ЧП - сломался сервер, но жесткий диск остался цел и невредим.

В связи с этим было закуплено новое железо. Можно конечно банально
воткнуть старый винт - и пусть все крутиться дальше, как и было до
поломки, но это решение показалось неправильным по нескольким причинам:

1. Винту 4 года, может и посыпалься ненароком.
2. В случае выхода из строя винта как быть с пользовательской почтой? логинами-паролями?
3. Давно была мысль обновить ПО на сервере.
В результате усиленных поисков в инете наткнулся на руководство по настройке связки
Exim+dbmail+SpamAssasin+Антивирус (http://www.opennet.ru/docs/RUS/dbmail/)
Именно это руководство и послужило отправной точной для дальнейших действий и поисков.


Почему...

1. Почему sendmail?

Из почтовых серверо Qmail, Sendmail, Postfix и Exim мне больше всего
понравился Qmail: прост в настройке, по всем отзывам и по собственным
впечатлениям - быстр, надежен, наименьшее количество обнаруженых
уязвимостей (если не сказать - полное их отсутствие); но и давно не
обновлялся, большинство функционала реализуется сторонними утилитами,
т.е. требует довольно существенного "обвеса" для дастижения
необходимого уровня.

Postfix - сам его не "щупал", порасспрашивал знакомых (и неочень) людей,
оказалось, что Postfix практически никто не применяет на почтовых
серверах, обслуживающих хотя-бы 1000 ящиков и 10-15 доменов (просьба не
возмущаться поклонников Postfix-а, верю что это хороший МТА, но это - не
мой выбор).

Exim - мне тут сложно что-либо сказать, имею только косвенные данные -
по моим опросам примерно 3 из 10 используют Exim, причины - проще
настроить, чем sendmail; меньшее количество уязвимостей, чем в sendmail.
Sendmail - несмотря на регулярные проблемы с безопасностью и сложность
настройки почему все-таки Sendmail?

1.1. Сложность конфига компенсируется относительной простотой xxxxx.mc
файла из которого с помошью m4 получаем конфиг, помоемому xxxxx.mc
выглядит не сложнее, чем конфиг Exim-а.

1.2. как сказал один знакомый "Sendmail может ВСЕ! на что только
способна почта".

2. Почему dbmail?

Очень заманчива идея хранить в базе данных не только логин-пароль, но и
сами письма. Сразу есть поддержка обьема почтового ящика. Можно держать
базу на отдельном серваке.Быстро восстановить работу сервера при сбое из
дампа базы. Поиском иных вариантов не занимался, возможно существуют
альтернативы dbmail (даже наверняка существуют), но меня вполне
устраивает dbmail.


DBMail - Установка и настройка.
-------------------------------

Официальный сайт http://www.dbmail.org/.
На момент написания последний стабильный релиз был dbmail-2.0.10.

Скачиваем архив dbmail-2.0.xx.tar.gz
распаковываем tar -zxf dbmail-2.0.xx.tar.gz

cd dbmail-2.0.xx


Можно (и желательно) внимательно прочитать INSTALL
Далее говорим, что наша база - PostgreSQL (ну или MySQL - кому как надо)

./configure --with-pgsql (или --with-mysql)


И далее хорошо знакомое

make


Если были ошибки - выявляем причины и устраняем.

make check
make install


Желательно для dbmail специально создать пользователя, хотя и
необязательно (я создал и обозвал dbmail)

Далее необходимо создать собственно базу данных.
Для этого читаем файлик INSTALL.dbmail в котором и описана эта процедура.
Конкретно для PostgreSQL необходимо проделать следующее:
создаем пользователя с именем dbmail (имя можно любое)

createuser -U postgres dbmail


Теперь надо присвоить пользователю пароль

psql postgres postgres


Присваиваем пароль

ALTER USER dbmail WITH PASSWORD '<password>';
q


Теперь создаем базу

createdb -U dbmail dbmail


И создаем таблицы в базе:

psql -U dbmail dbmail < sql/postgresql/create_tables.pgsql


Теперь копируем конфигурационный файл в /etc

cp dbmail.conf /etc/


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


Какие возникли проблемы - поумолчанию в конфиге указано довольно большое
количество подключений к базе данных, при запуске dbmail-pop3d база
перестала принимать подключения для начала стоит выбрать числа поменьше
(MAXCHILDREN и MAXCONNECTS я для начала уменьшил в 10 раз)

Теперь база данных готова для использования.

Добавление пользователей можно делать с помощью консольной утилиты
dbmail-users dbmail-users -a username -w secret -g 0 -m 25M -s
username@domain.org username1@domain.net

-a username - имя пользователя
-s username@domain.org - алиас (можно несколько через пробел) почта ДЛЯ этих адресов будет складываться
в ящик username
-m 25M - обьем ящика (поумолчанию - в байтах, K - килобайты, M - мегабайты) 25Мегабайт
-w secret - пароль


Прочие опции желающие могут поизучать прочтя вывод команды

dbmail-users --help


Еще в INSTALL.dbmail рекомендуют добавить в cron следующую строку:

0 3 * * * /usr/local/sbin/dbmail-util -cturpd -l 24h -qq


Для обслуживания базы данных.

DBmail предоставляет в наше распоряжение 2 транспорта для передачи писем
в базу данных dbmail-lmtp и dbmail-smtp.

Если MTA поддерживает lmtp то рекомендуется использовать именно его.

Запуск:

dbmail-lmtpd


и

dbmail-pop3d (или dbmail-imapd - кому что нравиться)


Осталось состыковать наш MTA с dbmail.

На сайте http://www.dbmail.org/ имеется wiki с описанием стыковки dbmail
с Qmail, Exim, Postfix и Sendmail.


Подключение к Sendmail.

Для того, чтобы sendmail понял, чего мы от него хотим, надо сначала
создать 2 m4 макроса: /usr/share/sendmail/cf/mailer/dbmail.m4


PUSHDIVERT(-1)
ifdef(`DBMAIL_MAILER_PATH',,
`ifdef(`DBMAIL_PATH',
`define(`DBMAIL_MAILER_PATH', DBMAIL_PATH)',
`define(`DBMAIL_MAILER_PATH', /usr/sbin/dbmail-smtp)')')
_DEFIFNOT(`DBMAIL_MAILER_FLAGS', `SPhnu9')
ifdef(`DBMAIL_MAILER_ARGS',,
`define(`DBMAIL_MAILER_ARGS', `dbmail -d $u')')
POPDIVERT

Mdbmail, P=DBMAIL_MAILER_PATH, F=_MODMF_(CONCAT(`DFM', DBMAIL_MAILER_FLAGS), `DBMAIL'),
S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP/HdrFromSMTP,
ifdef(`DBMAIL_MAILER_MAX', `M=DBMAIL_MAILER_MAX, ')T=DNS/RFC822/X-Unix,
A=DBMAIL_MAILER_ARGS




и
/usr/share/sendmail/cf/mailer/dbmail-lmtp.m4


PUSHDIVERT(-1)
ifdef(`DBMAIL_MAILER_PATH',,
`ifdef(`DBMAIL_PATH',
`define(`DBMAIL_MAILER_PATH', DBMAIL_PATH)',
`define(`DBMAIL_MAILER_PATH', [IPC])')')
_DEFIFNOT(`DBMAIL_MAILER_FLAGS', `AhmXz5@/:|')
ifdef(`DBMAIL_MAILER_ARGS',,
`define(`DBMAIL_MAILER_ARGS', `TCP $h 24')')

POPDIVERT
Mdbmail-lmtp, P=DBMAIL_MAILER_PATH, F=_MODMF_(CONCAT(`DFM', DBMAIL_MAILER_FLAGS), `DBMAIL'),
S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP/HdrFromSMTP,
ifdef(`DBMAIL_MAILER_MAX', `M=DBMAIL_MAILER_MAX, ')T=DNS/RFC822/X-Unix,
A=DBMAIL_MAILER_ARGS




На этом этапе возникла только одна проблемка, поумолчанию у меня
dbmail-smtp стал в /usr/local/sbin, а макрос ищет его в /usr/sbin/
ситуацию можно поправить создав ссылку

ln -s /usr/local/sbin/dbmail-smtp /usr/sbin/dbmail-smtp


или поправив исходник макроса.

Теперь в sendmail.mc (или его эквивалент)
добавляем строчки:

FEATURE(`mailertable')dnl
MAILER(dbmail)dnl
MAILER(dbmail-lmtp)dnl


в /etc/mail/mailertable (именно его задает "FEATURE(`mailertable')" )
указываем домены, почта для которых будет передаваться в dbmail

domain.org dbmail-lmtp:[127.0.0.1]
domain.net dbmail-lmtp:[127.0.0.1]


Незабыть убрать эти домены из /etc/mail/local-host-names (или его
эквивалента), иначе письма для этих доменов в dbmail непопадут, а будут
доставлены локальным пользователям.

Пересобрать конфиг sendmail-а и перезапустить sendmail.

Теоретически ВСЕ! почта должна складываться в базу даных и отдаваться по
протоколу pop3 или imap в зависимости от того, какой демон
(dbmail-pop3d или dbmail-imapd) запущен.

ВАЖНО! При рестарте ОЧЕНЬ желательно, чтобы dbmail-lmtpd запускался
раньше sendmail-а.

Теперь осталось настрить sendmail для отбивания спама.
Проверка адреса отправителя.
Воспользуемся фильтрами, работающими посредствам Milter API в sendmail.
Т.к. milter-sender теперь платный, воспользуемся фильтром smf-sav
http://smfs.sourceforge.net/smf-sav.html выполняющим те же функции.

Качаете, распаковываете, правите Makefile (сценария ./configure там не
предусмотрено), затем

make
make install


Правим конфиг /etc/mail/smfs/smf-sav.conf

и запускаем:

/usr/local/sbin/smf-sav
или

/usr/local/sbin/smf-sav -c /etc/mail/smfs/smf-sav.conf


Теперь в sendmail.mc добавляем строчки для smf-sav,

dnl Проверка Адреса отправителя
define(`confMILTER_MACROS_HELO', confMILTER_MACROS_HELO`, {verify}')dnl
INPUT_MAIL_FILTER(`smf-sav', `S=unix:/var/run/smfs/smf-sav.sock, T=S:30s;R:4m')dnl


Далее в папке /etc/mail

make all install && ../rc.d/sendmail restart


Если все впорядке, то в логе /var/log/maillog можно увидеть строчки вида

smf-sav[528]: sender check succeeded: <72stocknews@totallytitanium.com.>, 84.168.240.99,
p54A8F063.dip.t-dialin.net, [00:00:03]
(адрес существует)


или

smf-sav[528]: recipient check failed: <duncan@kr.dataxp.net.>, 84.168.240.99,
p54A8F063.dip.t-dialin.net, <72stocknews@totallytitanium.com.>, [00:00:01]
(адрес несуществует)


ВАЖНО! При рестарте НЕОБХОДИМО, чтобы smf-sav запускался раньше
sendmail-а, иначе проверка небудет выполняться.

Можно прикрутить еще проверку на зомбированые хосты.

Например при помощи smf-zombie, в механизмах его работы я не разбирался,
могу только сказать, что это дает определенный эффект.

Качаете там же, где и smf-sav, распаковываете, правите Makefile
(сценария ./configure там не предусмотрено), затем

make
make install


Конфигов для него никаних ненужно.
Запускаем:

/usr/local/sbin/smf-zombie


Теперь в sendmail.mc добавляем строчки для smf-zombie

dnl Убивание спама от зомбированых хостов
dnl Этот фильтр должен быть ПЕРВЫМ среди остальных фильтров
define(`confMILTER_MACROS_HELO', confMILTER_MACROS_HELO`, {verify}')dnl
define(`confMILTER_MACROS_ENVFROM', confMILTER_MACROS_ENVFROM`, {msg_size}')dnl
INPUT_MAIL_FILTER(`smf-zombie', `S=unix:/var/smfs/smf-zombie.sock, T=S:30s;R:1m')dnl

define(`confPRIVACY_FLAGS', `goaway,noetrn,nobodyreturn,noreceipts')dnl
define(`confTO_COMMAND', `1m')dnl
define(`confTO_IDENT', `0s')dnl
define(`confTO_RESOLVER_RETRANS', `7s')dnl
define(`confTO_RESOLVER_RETRY', `4')dnl
define(`confMAX_DAEMON_CHILDREN',`256')dnl
define(`confCONNECTION_RATE_THROTTLE',`8')dnl
define(`confBAD_RCPT_THROTTLE', `1')dnl Sendmail v8.12+


Далее в папке /etc/mail

make all install && ../rc.d/sendmail restart


ВАЖНО! Этот фильтр должен быть ПЕРВЫМ среди остальных фильтров в конфиге sendmail-а
ВАЖНО! При рестарте НЕОБХОДИМО, чтобы smf-sav запускался раньше sendmail-а.


Послесловие.

Все вышеуказаное было проделано на FreeBSD 6.1 и успешно заработало
практически с первой попытки.

Писано это было скорее как шпаргалка, а не как подробное пошаговое руководство.

Врядли настройка ответственного сервера будет доверена человеку
неумеющему создать нового пользователя в системе; например о
первоначальной настройке sendmail-а ничего не сказано, считается что
читатель самостоятельно проделает первоначальную настройку.

На момент "опубликования" произошли некоторые изменения - ветка
dbmail-2.2 стала стабильной.

Ради любопытства проделал все вышеперечисленное на другой машине с
FreeBDS 6.1, - разницы в установке никакой, различаются только структуры
базы данных.
1215 Прочтений •  [Почтовый сервер на основе sendmail и dbmail. (dbmail mail sendmail)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Почтовый сервер на основе sendmail ... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка