Почтовый сервер своими руками

E-mailЭлектронная почта зародилась еще тогда, когда не было Интернета, и сразу же вошла в жизнь людей как неотъемлемый атрибут современности. Сейчас послать письмо по e-mail сможет любой школьник, однако далеко не любой сможет настроить всю сложную систему, которая лежит в основе процесса отправки/получения сообщений. Обычному человеку или начинающему системному администратору может показаться, что электронная почта - это некий нерушимый монолит, одна или две программы принимающие и отправляющие сообщения. В самых простейших случаях так и есть, однако та почта, с которой большинство из нас сталкивается каждый день, является чем-то большим.

Защищайтесь, сударь

Если вы собираетесь использовать почтовый сервер только внутри организации и в Интернет он смотреть не будет, то на этом настройку можно было бы и оставить. Однако, если электронная почта будет приходить из Интернета и планируется активное ее использование, необходимо надежно оградить себя от спама и вирусов. Если вы считаете, что не обязательно, то сильно ошибаетесь. Около 70% почтового трафика является спамовским. Вряд ли вы захотите придя на работу с утра обнаружить у себя несколько тысяч писем с предложениями приобрести столь нужную вам виагру или удлинить/укоротить избранные части тела.

Приступим к установке Amavisd-new, SpamAssassin и ClamAV.

apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip unarj bzip2

Внесем некоторые изменения в конфигурационные файлы amavisd:

mcedit /etc/amavis/conf.d/50-user

$forward_method = 'smtp:127.0.0.1:10025';  # where to forward checked mail

$notify_method = $forward_method;          # where to submit notifications

$virus_quarantine_to  = 'undef';

$sa_local_tests_only = 0;@inet_acl = qw( 127.0.0.1 ); 

 

mcedit /etc/amavis/conf.d/20-debian_defaults

$final_virus_destiny      = D_REJECT; # (defaults to D_BOUNCE)
$final_banned_destiny     = D_REJECT;  # (defaults to D_BOUNCE)
$final_spam_destiny       = D_PASS;  # (defaults to D_REJECT)
$final_bad_header_destiny = D_PASS;  # (defaults to D_PASS), D_BOUNCE suggested

$viruses_that_fake_sender_re = new_RE(
  qr'nimda|hybris|klez|bugbear|yaha|braid|sobig|fizzer|palyh|peido|holar'i,
  qr'tanatos|lentin|bridex|mimail|trojan.dropper|dumaru|parite|spaces'i,
  qr'dloader|galil|gibe|swen|netwatch|bics|sbrowse|sober|rox|val(hal)?la'i,
  qr'frethem|sircam|be?agle|tanx|mydoom|novarg|shimg|netsky|somefool|moodown'i,
  qr'@mm|@MM',    # mass mailing viruses as labeled by f-prot and uvscan
  qr'Worm'i,      # worms as labeled by ClamAV, Kaspersky, etc
  [qr'^(EICAR|Joke.|Junk.)'i         => 0],
  [qr'^(WM97|OF97|W95/CIH-|JS/Fort)'i  => 0],
  [qr/.*/ => 1],  # true by default  (remove or comment-out if undesired)
);

#$QUARANTINEDIR = "$MYHOME/virusmails";

$QUARANTINEDIR = undef;

$sa_tag_level_deflt  = -999; # add spam info headers if at, or above that level

$sa_tag2_level_deflt = 6.3; # add 'spam detected' headers at that level

$sa_kill_level_deflt = 999; # triggers spam evasive actions 

Добавим пользователя clamav в группу amavis:

adduser clamav amavis

Сейчас заставим postfix отдавать почту для проверки антивирусом. Отредактируйте файл /etc/postfix/master.cf:

mcedit /etc/postfix/master.cf :

smtp-amavis unix -      -       n     -       2  smtp

    -o smtp_data_done_timeout=1200

    -o smtp_send_xforward_command=yes

    -o disable_dns_lookups=yes

127.0.0.1:10025 inet n  -       n     -       -  smtpd

    -o content_filter=

    -o local_recipient_maps=

    -o relay_recipient_maps=

    -o smtpd_restriction_classes=

    -o smtpd_client_restrictions=

    -o smtpd_helo_restrictions=

    -o smtpd_sender_restrictions=

    -o smtpd_recipient_restrictions=permit_mynetworks,reject

    -o mynetworks=127.0.0.0/8

    -o strict_rfc821_envelopes=yes

    -o smtpd_error_sleep_time=0

    -o smtpd_soft_error_limit=1001

    -o smtpd_hard_error_limit=1000

Так же добавьте в конец /etc/postfix/main.cf:

content_filter=smtp-amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings

Перестартуйте его и посмотрите нет ли ошибок в лог-файле:

/etc/postfix/restart

tail /var/log/mail.log

Установим ещё несколько инструментов и настроим spamassassin:

apt-get install razor pyzor dcc-client

Отредактируем файл /etc/spamassassin/local.cf:

mcedit /etc/spamassassin/local.cf :

# rewrite_header Subject *****SPAM*****
# report_safe 1
# trusted_networks 212.17.35.
# lock_method flock

# dcc
use_dcc 1
dcc_path /usr/bin/dccproc
dcc_add_header 1
dcc_dccifd_path /usr/sbin/dccifd

#pyzor
use_pyzor 1
pyzor_path /usr/bin/pyzor
pyzor_add_header 1

#razor
use_razor2 1
razor_config /etc/razor/razor-agent.conf

#bayes
use_bayes 1
use_bayes_rules 1
bayes_auto_learn 1

Сейчас нужно разрешить spamassassin запускаться:

mcedit /etc/default/spamassassin :

ENABLED=1

И перезапустить нужные приложения:

/etc/init.d/postfix restart

/etc/init.d/amavis restart

/etc/init.d/clamav-daemon restart

/etc/init.d/spamassassin restart

Попробуйте создать пользователей и попробовать обменяться письмами. В том числе и письмами с прикрепленными exe-файлами. Если вы все правильно настроили – фильтр должен задержать такие файлы и прислать вам соответствующие уведомления.

Послесловие

Тему настройки почтового сервера под Linux можно развивать бесконечно. Во многом этому способствует модульность всех входящих в наш комплект приложений. Несколькими несложными действиями можно заставить раскладываться письма по папкам в зависимости от их содержимого, настроить доступ через браузер, настроить шифрованное соединение с почтовым сервером, добавить графическое средство для администрирования нашего сервера и многое другое.

Задайте вопрос автору на нашем форуме https://forum.xdrv.ru

Содержание Одной страницей
Назад
Стр. 1. Установка
Стр. 2. Наружные работы, Postfix
Стр. 3. Защищайтесь, сударь; послесловие
Комментарии
Добавить комментарий

Введите имя:
Войти от:
или
Ваш комментарий:


Введите код:

E-mail (не обязательно)
Адрес электронной почты не предназначен к показу и будет использован только для уведомлений об ответах


Алекс#10 0
Классная статья, однако нашел ее поздно, купил VPS для почтовика одной конторыв с поддержкой админов
Ответить 
Vladimir#20 0
Привет, подскажите я настроил домашний хостинг но форма обратной связи не роботает Надо устанавлевать mail server?
Ответить 
дархан#30 0
Добрый день.

Будет ли это же руководство для windows server?

Ответить 
 
Александр#40 0
Есть вопросы? В windows server есть встроенный почтовый сервер. Вопрос под какие задачи необходим он. Из неплохих Exchange (Microsoft), MDaemon, IMail, Kerio Mail Server
Ответить 
 
Дархан#50 0
Да...

У нас windows server 2008.

Установили почтовый сервер hmailserver и вебпочту rouncubemail.

Нам почтовый сервер нужен для сайта, получать письма, делать рассылку (в PHP коде) и тд.



Сейчас не работает отправка писем на внешние адреса. А получение писем с разных почтовых систем работает.

Вот ответ на попытку отправить письмо на внешний адрес:



Your message did not reach some or all of the intended recipients.



Sent: Thu, 14 Mar 2013 17:52:40 +0300

Subject: Re: SSALA:SD



The following recipient(s) could not be reached:



АДРЕСС@mail.ru

Error Type: SMTP

Remote server (2a00:1148:1:1322::a1) issued an error.

hMailServer sent:

Remote server replied: 535 Incorrect authentication data: domain not found for

hMailServer





В чем могут быть причины?

Ответить 
 
Александр#60 0
Проблема явная с авторизацией. Начиная с того может быть закрыт порт и заканчивая тем, то ошибки в конфигурации. Какие настройки в SMTP Relay?

Также прежде всего лог файлы надо смотреть (каталог Logs в папке установки hMailServer).

P.S. Лучше тему завести на форуме

Ответить 
 
Гость#70 0
В настройках SMTP:в поле localhost name: vegatunes.com

В полях server requires authen... указаны логин (email@vegatunes.com) и пароль.

а в поле "remote host name" был указан: smtp.mail.ru порт 25

Думаю из-за этого. Исправил "remote host name" на vegatunes.com



Теперь письмо о том что не отправлено не получаю. Пишет успешно отправлено, но письма на внеш. адрес не приходят все равно.

Вот отрывок с лог файла:

"SMTPD" 1696 356 "2013-04-07 20:58:56.772" "176.99.4.153" "SENT: 235 authenticated."

"SMTPD" 1644 356 "2013-04-07 20:58:56.772" "176.99.4.153" "RECEIVED: MAIL FROM:"

"SMTPD" 1644 356 "2013-04-07 20:58:56.772" "176.99.4.153" "SENT: 250 OK"

"SMTPD" 1664 356 "2013-04-07 20:58:56.788" "176.99.4.153" "RECEIVED: RCPT TO:"

"SMTPD" 1664 356 "2013-04-07 20:58:56.788" "176.99.4.153" "SENT: 250 OK"

"SMTPD" 1696 356 "2013-04-07 20:58:56.788" "176.99.4.153" "RECEIVED: DATA"

"SMTPD" 1696 356 "2013-04-07 20:58:56.788" "176.99.4.153" "SENT: 354 OK, send."

"DEBUG" 1508 "2013-04-07 20:58:56.788" "Saving message: C:inetpubhMailServerData {3E6D4B9B-ACFE-4D51-B6C4-91C1FB62BD97}.eml"

"DEBUG" 1508 "2013-04-07 20:58:56.803" "Requesting SMTPDeliveryManager to start message delivery"

"SMTPD" 1508 356 "2013-04-07 20:58:56.803" "176.99.4.153" "SENT: 250 Queued (0.000 seconds)"

"DEBUG" 1600 "2013-04-07 20:58:56.803" "Delivering message..."

"APPLICATION" 1600 "2013-04-07 20:58:56.803" "SMTPDeliverer - Message 74: Delivering message from БЛАБЛА@vegatunes.com to darrios@mail.ru. File: C:inetpubhMailServerData {3E6D4B9B-ACFE-4D51-B6C4-91C1FB62BD97}.eml"

"DEBUG" 1600 "2013-04-07 20:58:56.803" "Applying rules"

"DEBUG" 1600 "2013-04-07 20:58:56.803" "Performing local delivery"

"DEBUG" 1600 "2013-04-07 20:58:56.803" "Local delivery completed"

"DEBUG" 1664 "2013-04-07 20:58:56.819" "Creating session 357"

"DEBUG" 1680 "2013-04-07 20:58:56.819" "Saving message: C:inetpubhMailServerDatavegatunes.com 7777788 {88394134-1C23-43C0-A4E2-F6E418422A57}.eml"

"SMTPD" 1652 356 "2013-04-07 20:58:56.819" "176.99.4.153" "RECEIVED: QUIT"

"SMTPD" 1652 356 "2013-04-07 20:58:56.819" "176.99.4.153" "SENT: 221 goodbye"

"DEBUG" 1684 "2013-04-07 20:58:56.819" "Closing TCP/IP socket"

"DEBUG" 1684 "2013-04-07 20:58:56.819" "Ending session 356"

"DEBUG" 1696 "2013-04-07 20:58:56.819" "Closing TCP/IP socket"

"DEBUG" 1696 "2013-04-07 20:58:56.819" "Ending session 357"

"DEBUG" 1600 "2013-04-07 20:58:56.819" "Performing external delivery"

Ответить 
 
Гость#80 1
В hmailserver есть диагностика. Покажи. что показывает.
Ответить 
 
darkhan#90 0
все поля горят зеленым, то есть не выдает никакой ошибки.

Подробнее о проблеме я написал на форме

Буду рад помощи.

Спасибо!

Ответить 
 
Вася#100 1
А ваш провайдер не блокирует 25 порт на отправку данных? Это может быть причиной данной проблемы. Или что-то блокирует твой relay на стороне провайдера.
Ответить 
 
Darkhan#110 0
Думаю нет. Мы арендуем выделенный сервер. А как можно проверить блокируется или нет?
Ответить 

Смартфоны со съемными аккумуляторами 2018-2019 годов
14 смартфонов со съемным аккумулятором и один телефон
15 июля 2019 / 3
Смартфон с каплевидным вырезом - Samsung Galaxy A30
Недорогой современный смартфон без моноброви
22 апреля 2019 / 3
Android 10. Первый взгляд
Что будет в «юбилейной» ОС Google, которая выйдет в 2019 года
29 июля 2018 / 1
Смартфон Huawei с хорошей камерой - Huawei P20
Эффектный флагман со своим лицом
22 июля 2018 / 4
 
 
Анонс Windows 11 состоится 24 июня
Продажи iPhone 12 mini не оправдали ожидания
Будущий iPad Pro получит стеклянный корпус
Sun Valley может выйти уже осенью 2021 года
Samsung приступила к лицензированию Ultra Thin Glass (UTG)
Компания фокусируется на бытовой технике и электромобилях
 
 

Опрос

Какими картами вы пользуетесь?
или оставить собственный вариант в комментариях (14)





Статистика