Страница 1 из 2
С чего начать при создании почтового сервера
Добавлено: 2014-09-25 8:46:51
Reken
Здравствуйте.
Подскажите мне пожалуйста, или укажите хорошую статью в интернете, где написан процесс создания почтового сервера на FreeBSD. Я уже очень долго читал в интернете про создание почтового сервера на FreeBSD, но не смог найти более менее понятной . Подскажите с чего лучше начать создавать.
Хочу сделать схему: Электронное письмо => FreeBSD => Все пользователи сети.
Re: С чего начать при создании почтового сервера
Добавлено: 2014-09-25 9:06:26
Alex Keda
какой сети?
Re: С чего начать при создании почтового сервера
Добавлено: 2014-09-25 9:09:43
Reken
Alex Keda писал(а):какой сети?
Извиняюсь, не написал сразу.
У меня так устроенно: Интернет => FreeBSD(ШЛЮЗ) => Свитч => Компы пользователей
Вот как раз компы пользователей и находятся в сетке, под управлением FreeBSD
Re: С чего начать при создании почтового сервера
Добавлено: 2014-09-25 16:47:24
Alex Keda
с того откуда возьёмтся список всех клиентов.
т.е. группа, расслыка по группе.
Re: С чего начать при создании почтового сервера
Добавлено: 2014-09-26 1:09:49
Fast_Deer
из готовых бесплатных решений ("из коробки") могу рекомендовать Zimbra Collaboration Server. Имеется поддержка русского языка и доступ к почте через web-броузер. Эта бесплатная альтернатива Microsoft Exchange, хотя и как бесплатная - с ограничениями.
статья по установке/настройке:
http://interface31.ru/tech_it/2012/12/z ... tolko.html
Re: С чего начать при создании почтового сервера
Добавлено: 2014-09-26 1:32:54
Fast_Deer
Вдогонку к предыдущему посту: начинать надо с хендбука:
http://www.freebsd.org/doc/ru/books/han ... using.html
Re: С чего начать при создании почтового сервера
Добавлено: 2014-09-26 7:54:02
Reken
Всем спасибо за советы. Да, это будет намного труднее сделать, чем я думал.
Инструкция к Zimba написана под Убунту, на Фряхе наверное немного по другому?
Re: С чего начать при создании почтового сервера
Добавлено: 2014-09-26 9:09:44
Fast_Deer
То же самое. Там сделан нормальный инсталяционный порт и, по моему, единственный из таких систем (бесплатных)
Сам порт (последний) под фряху можно взять с
http://zimbra.imladris.sk/download/zimb ... AIDEN-808/.
Но перед установкой необходимо обязательно правильно настроить DNS и файл HOST. В противном случае буду проблемы как на стадии установки так и с отправкой/получением почты. При этом нужно учесть что он очень требователен к ресурсам машины - очень желательно (в целях безопасности) установить на отдельный комп на котором можно безопасно и "поиграться".
Вы бы, для начала, определились с задачами (требованиями) которые хотите решить установкой почтовика. Может все-таки яндекс/майл/прочая почта будет более простым решением?
Re: С чего начать при создании почтового сервера
Добавлено: 2014-09-26 9:38:11
Reken
Fast_Deer писал(а):Вы бы, для начала, определились с задачами (требованиями) которые хотите решить установкой почтовика. Может все-таки яндекс/майл/прочая почта будет более простым решением?
Нет, мне нужно реализовать именно такую схему:
Мой почтовый адрес *****@onego.ru
На этот адрес пришло письмо, а дальше по схеме:
*****@onego.ru => FreeBSD => 20-30 Клиентских почтовиков Mozilla
Так же и с отправкой почты:
Один из 20 компов => FreeBSD => и т.д.
Re: С чего начать при создании почтового сервера
Добавлено: 2014-09-26 13:37:36
ivan__
Reken писал(а):Хочу сделать схему: Электронное письмо => FreeBSD => Все пользователи сети.
Reken писал(а):Нет, мне нужно реализовать именно такую схему:Мой почтовый адрес *****@onego.ruНа этот адрес пришло письмо, а дальше по схеме:*****@onego.ru => FreeBSD => 20-30 Клиентских почтовиков Mozilla Так же и с отправкой почты:Один из 20 компов => FreeBSD => и т.д.
А как-то более внятно написать что нужно можно?
Re: С чего начать при создании почтового сервера
Добавлено: 2014-09-26 13:58:09
Reken
ivan__ писал(а):А как-то более внятно написать что нужно можно?
Как
ЕЩЁ более внятней и понятней написать я не знаю, и так вроде бы всё понятно написал.
Нужно что бы FreeBSD забирал почту с адреса *****@onego.ru и перенаправлял на компы в локалке. Что бы не каждый комп забирал письмо с почты, а FreeBSD это делал за них, и отправлял на эти компы.
Мне кажется это лучше реализовать через
sendmail и
fetchmail
Re: С чего начать при создании почтового сервера
Добавлено: 2014-09-26 14:02:55
snorlov
Ну так и надо было сказать, имеем корпоративный ящик, надо забирать почту оттуда и раздавать пользователям... Кстати а как вы ее собираетесь раздавать по PO3 или IMAP...
Re: С чего начать при создании почтового сервера
Добавлено: 2014-09-26 14:21:28
Reken
snorlov писал(а):Ну так и надо было сказать.
Я так и говорил. Ну это ладно, не важно, главное теперь понятно что мне нужно.
snorlov писал(а):Кстати а как вы ее собираетесь раздавать по PO3 или IMAP...
Вы бы наверное мне посоветовали IMAP, но я хочу через POP3
Re: С чего начать при создании почтового сервера
Добавлено: 2014-09-26 14:28:52
ivan__
Reken писал(а):Мне кажется это лучше реализовать через sendmail
я думаю с postfix || exim +dovecot проще разобраться будет
Re: С чего начать при создании почтового сервера
Добавлено: 2014-09-26 15:04:46
Reken
ivan__ писал(а):я думаю с postfix || exim +dovecot проще разобраться будет
Тогда попробую с exim разобраться
Re: С чего начать при создании почтового сервера
Добавлено: 2014-09-26 17:25:32
Fast_Deer
Ну вот, человек хоть разобрался чего он хочет и с нами поделился )) Здесь не нужен полноценный почтовый сервер. Насколько я понял человек хочет избавится от секретарской работы (автоматизировать ее). В свое время я такую схему реализовывал на форточках. Для этого есть бесплатные сервера. ИМХО, это будет проще и быстрее. Благо в организации всегда есть какой-нить старенький комп.
ЗЫ: Привет, Карелия!
Re: С чего начать при создании почтового сервера
Добавлено: 2014-09-27 21:35:40
Fast_Deer
Исходя из Вашей схемы, хотелось бы заметить что FreeBSD сам ничего вашим клиентам посылать не будет - он будет посылать только серверу. Клиенты должны сами забирать почту, что делают они достаточно нерегулярно (нежелание, отпуск, больничный, выходные и праздники)
POP3 был бы более правильным решением, но в Вашем случае лучше использовать IMAP потому что но нужно учесть: первое клиентское приложение (MUA, т.е. "Клиентских почтовиков Mozilla") из ваших 20-30 очистит ваш единственный ящик (если не настроено иначе в MUA) и остальные почту не увидят. Если оставлять почту на серваке для каждого клиента, то получаем "тот же самый" IMAP (сделанный через POP3), но ящик чистить придется именно Вам. В противном случае он однажды разрастется до таких размеров (с учетом того что корпоративная почта должна все таки хранится какое то продолжительное время), что забьет все дисковое пространство на вашем шлюзе (из Вашей схемы FreeBSD единственный сервак, он же - шлюз) и в итоге Вы получите не только неработающую почту, но и неработающий шлюз (Интернет). И хорошо что Вы будете помнить об этой проблеме и не будете находиться где-нибудь в отпуске (дача вне зоны действия сети, Турция, Канары и пр.) и сможете быстро "починить"....
Поэтому я настоятельно рекомендую как минимум почту вынести на отдельный диск. Но лучший вариант: отдельно стоящий сервер! Потому что попользовавшись такой схемой и приученные к почте Вы или ваши пользователи захотят пересылать корпоративную почту друг другу и тогда встанет вопрос о поднятии полноценного сервака для внутренней корпоративной почты с подменой адреса для отправки в "мир" (без регистрации домена и прямого IP).
Кроме того конечно здорово что Вы интересуетесь *NIX технологиями и изучаете их, но представьте ситуацию когда Вам придется уволится из конторы и вашему приемнику будет необходимо в кратчайшие сроки разобраться в том что Вы там "наbuildили". Или Вы, как в старом анекдоте, оставите ему 3 письма?
Re: С чего начать при создании почтового сервера
Добавлено: 2014-09-30 8:58:24
Reken
Помогите мне пожалуйста разобраться.
У меня в офисе работает следующая система:
Есть ШЛЮЗ на FreeBSD и есть СЕРВЕР. Рассказываю как в этой системе работает доставка почты:
1) На сервере заведен домен "domen.local", и в этот домен заведены пользователи Фамилия.domen.local , Фамилия.domen.local и т.д.
2) На FreeBSD при помощи двух программ работает отправка почты, эти программы
fetchmail и
exim
3) FreeBSD забирает почту с ящика, и направляет её на все компы, которые в домене. Это он делает каждые 10 мин.
4) Вот содержание
usr/local/etc/fetchmail:
Код: Выделить всё
set syslog
poll mail.onego.ru
proto pop3 no dns
username "почта" with password "пароль" is D@domen.local here
fetchall
flush
Как я уже говорил выше, почта приходит ко всем пользователям домена. У пользователей в качестве клиента установлена Mozilla Thunderbird. И каждого клиента в настройках Thuderbird указанно:
Код: Выделить всё
Тип сервера: Почтовый сервер POP3
Имя сервера: IP шлюза порт: 110
Имя пользователя: Фамилия@domen.local
Проблема в том, что когда я завожу нового пользователя в домен на сервере. То почта к нему не приходит. То есть я у нового пользователя в настройках Thuderbird указываю:
Код: Выделить всё
Тип сервера: Почтовый сервер POP3
Имя сервера: IP шлюза порт: 110
Имя пользователя: НоваяФамилия@domen.local
И при нажатии "получить почту", выскакивает ошибка
Команда PASS не выполнена. Почтовый сервер "IP шлюза" ответил: Authentication failed
Помогите мне разобраться, как FreeBSD видит пользователей домена, где они прописаны во FreeBSD, как добавить нового.
P.S. Точно знаю следующее:
1) FreeBSD после отправки почты каждому локальному пользователю, удаляет её со своего жесткого диска. То есть на FreeBSD почта долго не хранится.
Сам не могу понять, как происходит процесс, когда сотрудник в отпуске, а после отпуска получает почту за все отсутствующие дни, следовательно из этого, FreeBSD всё же где то хранит почту, но как только пользователь получил её, с FreeBSD почта удаляется.
2) Когда я отправляю почту со своего компа, с моего адреса Фамилия@domen.local, то адресат уже получает письмо как от
D@domen.local
Всю эту систему делал не я, поэтому прошу помочь мне разобраться
Re: С чего начать при создании почтового сервера
Добавлено: 2014-09-30 17:57:58
FiL
есть два варианта -
1) длинный, интересный и несколько опасный, учитывая квалификацию действующего лица.
2) простой и действенный. Но неинтересный.
Второй - это нанять толкового админа, чтоб он этим занимался.
Первый... ну, выкладывайте конфиг exim-a, будем смотреть.
Re: С чего начать при создании почтового сервера
Добавлено: 2014-09-30 18:26:32
Reken
FiL писал(а):нанять толкового админа, чтоб он этим занимался.
Можно, но тогда я сам так ничего и не пойму.
FiL писал(а):выкладывайте конфиг exim-a, будем смотреть.
Вот этот вариант лучше, завтра выложу конфиг
Re: С чего начать при создании почтового сервера
Добавлено: 2014-10-02 7:28:53
Reken
FiL писал(а):выкладывайте конфиг exim-a, будем смотреть.
Давайте посмотрим:
Код: Выделить всё
m
Exp $
headers_charset = UTF-8
hide mysql_servers = localhost/exim/exim/exim
primary_hostname = mx.domen.local
domainlist local_domains = ${lookup mysql{SELECT `domain` FROM `domain` WHERE `domain`='${domain}' AND `active`='1'}}
domainlist relay_to_domains = ${lookup mysql{SELECT `domain` FROM `domain` WHERE `domain`='${domain}' AND `active`='1'}}
hostlist relay_from_hosts = localhost:127.0.0.0/8:192.168.99.0/24
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data
tls_certificate = /etc/ssl/certs/exim.crt
tls_privatekey = /etc/ssl/certs/exim.key
daemon_smtp_ports = 25 : 9025
tls_on_connect_ports = 9025
qualify_domain = domen.local
qualify_recipient = domen.local
exim_user = mailnull
exim_group = mail
never_users = root
rfc1413_query_timeout = 0s
sender_unqualified_hosts = +relay_from_hosts
recipient_unqualified_hosts = +relay_from_hosts
ignore_bounce_errors_after = 45m
freeze_tell = postmaster@domen.local
helo_accept_junk_hosts = 192.168.99.0/24
auto_thaw = 1h
smtp_banner = "$primary_hostname, ESMTP EXIM $version_number"
smtp_accept_max = 50
smtp_accept_max_per_connection = 25
smtp_connect_backlog = 30
smtp_accept_max_per_host = 20
remote_max_parallel = 15
#return_size_limit = 70k
message_size_limit = 30M
helo_allow_chars = _
smtp_enforce_sync = false
log_selector = +all_parents +connection_reject +incoming_interface +lost_incoming_connection +received_sender +received_recipients +smtp_confirmation +smtp_syntax_error +smtp_protocol_error -queue_run
split_spool_directory = true
received_header_text =
check_rfc2047_length = false
acl_check_rcpt:
warn set acl_m1 = $domain
warn set acl_m2 = $sender_address
# Accept if the source is local SMTP (i.e. not over TCP/IP). We do this by
# testing for an empty sending host field.
accept hosts = :
control = dkim_disable_verify
deny message = Restricted characters in address
domains = +local_domains
local_parts = ^[.] : ^.*[@%!/|]
deny message = Restricted characters in address
domains = !+local_domains
local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
accept local_parts = postmaster
domains = +local_domains
require verify = sender
accept hosts = +relay_from_hosts
control = submission
control = dkim_disable_verify
accept authenticated = *
control = submission
control = dkim_disable_verify
acl_check_data:
#klms-filter-begin
warn set acl_m_kav4lms_headers =
set acl_m_kav4lms_result =
set acl_m_kav4lms_answer = ${dlfunc{/usr/local/lib/kaspersky/klms/libklms-exim.so}{scan}{${spool_directory}/input/${substr{5}{1}{$message_id}}}}
defer condition = ${if eq {$acl_m_kav4lms_answer}{}{yes}{no}}
log_message = LMS check failed (empty answer)
message = Temporary local problem - please try later
defer condition = ${if match {$acl_m_kav4lms_answer}{\N^451\N}{yes}{no}}
log_message = LMS check defer: ${if match {$acl_m_kav4lms_answer}{\N^(451.*)*$\N}{$1}{}}\
${if eq {$acl_m_kav4lms_result}{}{}{, result is '$acl_m_kav4lms_result'}}
message = Temporary local problem - please try later
defer condition = ${if match {$acl_m_kav4lms_answer}{\N^452\N}{yes}{no}}
log_message = LMS check defer: ${if match{$acl_m_kav4lms_answer}{\N^(452.*)*$\N}{$1}{}}\
${if eq {$acl_m_kav4lms_result}{}{}{, result is '$acl_m_kav4lms_result'}}
message = Temporary local problem - please try later
deny condition = ${if match {$acl_m_kav4lms_answer}{\N^550\N}{yes}{no}}
log_message = LMS check reject: ${if match {$acl_m_kav4lms_answer}{\N^(550 Rejected by malware filter.*)*$\N}{$1}{}}\
${if eq {$acl_m_kav4lms_result}{}{}{, result is '$acl_m_kav4lms_result'}}
deny condition = ${if match {$acl_m_kav4lms_answer}{\N^554\N}{yes}{no}}
log_message = LMS check reject: ${if match {$acl_m_kav4lms_answer}{\N^(554 Mail processing failed.*)*$\N}{$1}{}}\
${if eq {$acl_m_kav4lms_result}{}{}{, result is '$acl_m_kav4lms_result'}}
message = ${if match {$acl_m_kav4lms_answer}{\N^(554 Mail processing failed.*)*$\N}{Mail processing failed:$1}{}}
warn condition = ${if match {$acl_m_kav4lms_answer}{\N^250\N}{yes}{no}}
logwrite = LMS check accept: ${if match {$acl_m_kav4lms_a:
nswer}{\N^(250.*)$\N}{$1}{}} \
${if eq {$acl_m_kav4lms_result}{}{}{, result is '$acl_m_kav4lms_result'}}
set acl_m_kav4lms_answer =
warn condition = ${if eq {$acl_m_kav4lms_answer}{}{no}{yes}}
logwrite = LMS check: $acl_m_kav4lms_answer
#klms-filter-end
system_aliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup mysql{SELECT `goto` FROM `alias` WHERE `address`='${quote_mysql:$local_part@$domain}' OR `address`='${quote_mysql:@$domain}'}}
dovecot_user:
driver = accept
condition = ${lookup mysql{SELECT `goto` FROM `alias` WHERE `address`='${quote_mysql:$local_part@$domain}' OR `address`='${quote_mysql:@$domain}'}{yes}{no}}
transport = dovecot_delivery
domenru_router:
driver = manualroute
transport = domenru_transport
route_list = inetgate.domen.ru 192.168.99.2
ventafax_router:
driver = manualroute
transport = ventafax_transport
route_list = fax.domen.local 192.168.99.17
rkmail_router:
driver = manualroute
headers_remove = Received : User-Agent : X-Mailer : X-AntiVirus : Message-ID : X-Sender
transport = rkmail_transport
route_list = * mail.rkmail.ru
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more
dovecot_delivery:
driver = pipe
command = /usr/local/libexec/dovecot/deliver -d $local_part@$domain
message_prefix =
message_suffix =
delivery_date_add
envelope_to_add
return_path_add
log_output
user = mailnull
address_pipe:
driver = pipe
return_output
address_reply:
driver = autoreply
domenru_transport:
driver = smtp
hosts = 192.168.99.2
ventafax_transport:
driver = smtp
hosts = 192.168.99.17
rkmail_transport:
driver = smtp
max_rcpt = 10
connection_max_messages = 1
hosts = mail.rkmail.ru
begin rewrite
#*@domen.local почтовый ящик Ffrsw
*@domen.local "${if and {{!eq{$acl_m1}{domen.local}}{!eq{$acl_m1}{fax
.domen.local}}}{почтовый ящик}fail}" Ffrs
#*@fax.domen.local "${if !eq{$acl_m1}{fax.domen.local}{почтовый ящик}f
ail}" Ffrs
#*@domen.local "${if eq{$acl_m2}{Фамилия1@domen.local}{почтовый ящик
}fail}" Ffrs
#*@domen.local "${if eq{$acl_m2}{Фамилия2@domen.local}{почтовый ящик
}fail}" Ffrs
#*@domen.local "${if eq{$acl_m2}{Фамилия3@domen.local}{почтовый ящик
}fail}" Ffrs
#*@domen.local "${if eq{$acl_m2}{Фамилия4@domen.local}{почтовый ящик
}fail}" Ffrs
auth_plain:
driver = plaintext
public_name = PLAIN
server_condition = ${lookup mysql{SELECT `username` FROM `mailbox` WHERE `username` = '${quote_mysql:$auth2}' AND `password` = '${quote_mysql:$auth3}'}{yes}{no}}
server_prompts = :
server_set_id = $auth2
auth_login:
driver = plaintext
public_name = LOGIN
server_condition = ${lookup mysql{SELECT `username` FROM `mailbox` WHERE `username` = '${quote_mysql:$auth1}' AND `password` = '${quote_mysql:$auth2}'}{yes}{no}}
server_prompts = Username:: : Password::
server_set_id = $auth1
auth_cram_md5:
driver = cram_md5
public_name = CRAM-MD5
server_secret = ${lookup mysql{SELECT `password` FROM `mailbox` WHERE `username` = '${quote_mysql:$auth1}'}{$value}fail}
server_set_id = $auth2
Не могу понять, где добавлять новых пользователей, которые смогут получать и отправлять почту.
Так же не могу понять где хранится "временная" база, на FreeBSD, которая хранит в себе почту, пока не отправит пользователю.
Re: С чего начать при создании почтового сервера
Добавлено: 2014-10-02 13:49:03
Reken
Никто не может подсказать мне?
Или никто не видит тему? так как она почему то, не поднимается вверх по списку, после внесения изменений.
Re: С чего начать при создании почтового сервера
Добавлено: 2014-10-02 16:23:44
snorlov
Почему почта после получения пользователя удаляется, да потому что он забирает ее по POP3 и в настройках у него стоит удалять после получения...
Re: С чего начать при создании почтового сервера
Добавлено: 2014-10-02 17:52:21
Reken
snorlov писал(а):Почему почта после получения пользователя удаляется, да потому что он забирает ее по POP3 и в настройках у него стоит удалять после получения...
Спасибо конечно, но это как бы и было понятно...
А вот в остальном разобраться не могу. Вопросы я выше написал
Re: С чего начать при создании почтового сервера
Добавлено: 2014-10-02 22:00:54
Fast_Deer
преамбула: сначала человек спрашивает как
установить почтовый сервер. Потом выясняется, что, в принципе, полноценный сервак то и не нужен, а нужен лишь сборщик почты. А уж после вообще труба: "сервак" уже стоит, IMHO начальство висит над душой, а сделать ничего не можем. Чем дальше - тем интересней...
Это я к тому , что Вы потеряли много времени, не умея правильно задать вопрос. А как известно чтобы правильно задать вопрос, увы, но нужно знать половину ответа.
Reken писал(а):Никто не может подсказать мне?
Ну первая инстанция, которая может подсказать - это гугл. Там много интересных ответов - нужно только время, желание и правильно задать вопрос.
Я вообще никогда не устанавливал и не настраивал exim, но первые ссылки дали превосходно разжеванный результат по его конфигу. Вот например:
http://teis.org.ua/opensuse-services/na ... st-3-exim/
http://muff.kiev.ua/content/exim-nastro ... bd-mysql-i - эту ссылку вообще рекомендую занести в избранное - много информации по фряхе и пакетам, хотя и частично устаревшей
Что касается Вашего случая то строчка из конфига
Код: Выделить всё
hide mysql_servers = localhost/exim/exim/exim
говорит о том, что пользователи хранятся в базе данных mysql (пусть местные гуру поправят меня если не так), которая находится на этой же машине (localhost) где и exim. Соответственно, "копать нужно в эту сторону"....