Пощенски сървър за начинаещи. Настройване на DNS зона. Компетентна и бърза настройка на пощенския сървър

Много потребители на Ubuntu използват системата за повече от домашни нужди. Този подход е напълно оправдан, тъй като в Linux системите е много по-удобно да правите програмиране, да създавате сървъри и уебсайтове. Едно от удобствата е да създадете сървър за електронна поща. За начинаещи тази задача може да изглежда ужасно трудна, но след като разберете как да инсталирате и конфигурирате пощенски сървър за Ubuntu, задачата няма да ви се стори толкова трудна.

Как да конфигурирате пощенски сървър на базата на Ubuntu.

Преди конкретни инструкции и ферментация чрез кода, не можете да правите без дял от теоретичния материал. Важно е да разберете какво представлява имейл сървърът и как работи.

Конфигурираният пощенски сървър, казано много просто, е пощальон, който получава "писмо" от един пощенски клиент и го дава на друг. Това по принцип е цялата същност на работата на този софтуер. Пощенски сървър е необходим не само за изпращане на електронна поща. В уебсайтовете той отговаря за регистрирането на потребители, прехвърлянето на попълнени формуляри и други важни действия, без които сайтът би се превърнал в нещо като книга, която можете само да разглеждате, да прелиствате страниците, но нещо е трудно да се направи.

Пощенските сървъри на Linux се различават значително от тези в Windows и други системи. В Windows това е готова затворена програма, която просто трябва да започнете да използвате. Linux дистрибуциите, от друга страна, предполагат самостоятелно конфигуриране на всички компоненти. Освен това сървърът в крайна сметка ще се състои не от една програма, а от няколко. Ще използваме Postfix във връзка с Dovecot и MySQL.

Защо Postfix?

В Ubuntu има няколко имейл клиента, но ние избрахме този. Настройването на Posfix в Ubuntu е много по-лесно от настройката на SendMail, което е важно за начинаещ потребител. Когато се комбинира с Dovecot, Postfix е в състояние да прави всичко, което обикновено се изисква от пощенските сървъри.

Postfix е самият агент за прехвърляне на поща. Той ще играе главната роля в цялото представление. Това е софтуер с отворен код и е по подразбиране за много сървъри и уебсайтове. Dovecot е агент за доставка на поща. Основната му роля е да гарантира сигурността на сървъра. MySQL е идеалната система за управление на база данни (СУБД) за всеки уебсайт. Необходимо е да работим с информация, която получаваме от потребителите на нашия сървър.

И така, теоретичната част приключи. Сега си струва да се заемете с практиката.

Създаване на пощенски сървър

Какво трябва да се конфигурира преди инсталирането на пощенския сървър?

  • MySQL;
  • DNS зона, трябва да имате личен FDQN. Оттук нататък ще използваме namehost.

Инсталация

Инсталирайте програми:

apt-get install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysql

Когато се появи прозорецът за конфигурация на Postfix, ще трябва да изберем "Уебсайт".

По-долу ще бъдем помолени да въведете име на домейн, ще използваме "primer.ru".

Настройка на MySQL

Сега трябва да настроим три таблици за данни в MySQL: за домейни, за потребители и за така наречените псевдоними - псевдоними или допълнителни потребителски пощенски кутии. Тук няма да навлизаме в подробности относно настройката на MySQL база данни.

Нека наречем базата данни examplemail. Създайте база със следното име:

mysqladmin -p създаване на сървърна поща

Влезте в MySQL:

След това въвеждаме паролата. Ако всичко е направено правилно, тогава в терминала ще има такъв запис:

Нека създадем нов потребител специално за влизане в мрежата:

mysql> ПРЕДОСТАВЯ ИЗБОР НА examplemail. * КЪМ ‘usermail’@’127.0.0.1’ ИДЕНТИФИЦИРАН ОТ ‘password’;

Сега рестартираме MySQL, за да се уверим, че всички промени са приложени успешно.

Ние използваме нашата база данни, за да създадем таблици въз основа на нея:

mysql> ИЗПОЛЗВАЙТЕ examplemail;

Създайте таблица за домейни:

СЪЗДАВАНЕ НА ТАБЛИЦА `virtual_domains` (

`name` VARCHAR (50) НЕ NULL,
ПЪРВИЧЕН КЛЮЧ (`id`)

Нека създадем таблица за потребителите:

СЪЗДАВАНЕ НА ТАБЛИЦА `virtual_users` (
`id` INT NOT NULL AUTO_INCREMENT,
`domain_id` INT NOT NULL,
`парола` VARCHAR (106) НЕ НУЛА,
`имейл` VARCHAR (120) НЕ NULL,
ПЪРВИЧЕН КЛЮЧ (`id`),
УНИКАЛЕН КЛЮЧ `имейл` (` имейл`),

) ДВИГАТЕЛ = НАБОР ПО ПОДРАЗБИРАНЕ на InnoDB = utf8;

Тук, както можете да видите, имейлът и паролата са добавени. И всеки потребител е обвързан с домейн.

Накрая създаваме таблица за псевдоними:

СЪЗДАВАНЕ НА ТАБЛИЦА `виртуални_псевдоними` (
`id` INT NOT NULL AUTO_INCREMENT,
`domain_id` INT NOT NULL,
`source` varchar (100) НЕ NULL,
`destination` varchar (100) НЕ NULL,
ПЪРВИЧЕН КЛЮЧ (`id`),
ВЪНШЕН КЛЮЧ (domain_id) РЕФЕРЕНЦИИ virtual_domains (id) ПРИ ИЗТРИВАНЕ НА КАСКАДА
) ДВИГАТЕЛ = НАБОР ПО ПОДРАЗБИРАНЕ на InnoDB = utf8;

Успешно конфигурирахме MySQL и създадохме трите необходими таблици. Сега трябва да се справим с домейни и имейли.

Домейни, имейл адреси и псевдоними

Нека добавим нашия домейн към таблицата с домейни. FDQN също трябва да бъде въведен там:

INSERT INTO `examplemail`.`virtual_domains`
(`id`,` name`)
СТОЙНОСТИ
(„1“, „primer.ru“),
(„2“, „namehost.primer.ru“);

Нека добавим данните за имейл адреса към таблицата на потребителите:

INSERT INTO `examplemail`.`virtual_users`
(`id`,` domain_id`, `password`,` email`)
СТОЙНОСТИ
(‘1’, ‘1’, ШИФИРАНЕ (‘първа парола’, КОНКАТИРАНЕ (‘$ 6 $’, ПОДНИЗ (SHA (RAND ()), -16))), ‘ [защитен с имейл]’),
(‘2’, ‘1’, ШИФИРАНЕ (‘втора парола’, КОНКАТ (‘$ 6 $’, ПОДНИЗ (SHA (RAND ()), -16))), ' [защитен с имейл]’);

Сега нека добавим информация към последната таблица:

INSERT INTO `examplemail`.`virtual_aliases`
(`id`,` domain_id`, `source`,` назначение`)
СТОЙНОСТИ
(‘1’, ‘1’, ‘[защитен с имейл]’, ’[защитен с имейл]’);

Затворете MySQL:

Настройка на Postfix

Нека да преминем директно към параметрите на Postfix. Имаме нужда от пощенския клиент, за да може да изпраща съобщения от името на потребителите, въведени в базата данни, и да обработва SMTP връзката. Първо, нека създадем резервно копие на конфигурационния файл, така че ако нещо се случи, да можем да се върнем към стандартните настройки:

cp /etc/postfix/main.cf /etc/postfix/main.cf.orig

Сега отворете конфигурационния файл:

nano /etc/postfix/main.cf

Вместо nano, можете да използвате всеки текстов редактор, който харесвате.

Нека декоментираме TLS параметрите, както и да добавим други. Безплатни SSL, използвани тук:

# TLS параметри
# smtpd_tls_cert_file = / etc / ssl / certs / ssl-cert-snakeoil.pem
# smtpd_tls_key_file = / etc / ssl / private / ssl-cert-snakeoil.key
# smtpd_use_tls = да
#smtpd_tls_session_cache_database = btree: $ (директория_данни) / smtpd_scache
#smtp_tls_session_cache_database = btree: $ (директория_данни) / smtp_scache
smtpd_tls_cert_file = / etc / ssl / certs / dovecot.pem
smtpd_tls_key_file = / etc / ssl / private / dovecot.pem
smtpd_use_tls = да
smtpd_tls_auth_only = да

След това нека добавим редица параметри:

smtpd_sasl_type = гълъбарник
smtpd_sasl_path = частен / auth
smtpd_sasl_auth_enable = да
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination

Също така трябва да коментираме настройките за mydestination и да ги променим на localhost:

#mydestination = primer.ru, namehost.primer.ru, localhost.primer.ru, localhost
mydestination = localhost

Параметърът myhostname трябва да съдържа името на нашия домейн:

myhostname = namehost.primer.ru

Сега добавете ред за изпращане на съобщения до всички домейни, изброени в таблицата на MySQL:

virtual_transport = lmtp: unix: частен / dovecot-lmtp

Добавяме още три параметъра, така че Postfix да може да се свърже с MySQL таблиците:

virtual_mailbox_domains = mysql: /etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql: /etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql: /etc/postfix/mysql-virtual-alias-maps.cf

Конфигуриране на MySQL и Postfix файлове

Създайте файл

mysql-virtual-mailbox-domains.cf

Добавете тези стойности към него:

потребител = потребителска поща
парола = парола за поща
хостове = 127.0.0.1
dbname = examplemail
заявка = SELECT 1 FROM virtual_domains WHERE име = '% s'

Рестартирайте Postfix:

рестартиране на постфикс на услугата

Тестване на домейна за Postfix:

postmap -q primer.ru mysql: /etc/postfix/mysql-virtual-mailbox-domains.cf

Нека създадем друг файл:

nano /etc/postfix/mysql-virtual-mailbox-maps.cf
потребител = потребителска поща
парола = парола за поща
хостове = 127.0.0.1
dbname = examplemail
query = SELECT 1 FROM virtual_users WHERE email = '% s'

Презареди Postfix:

рестартиране на постфикс на услугата

След това проверяваме отново Postfix:

пощенска карта -q [защитен с имейл] mysql: /etc/postfix/mysql-virtual-mailbox-maps.cf

Ако всичко е направено правилно, трябва да се покаже

Нека създадем последния файл за псевдоними:

nano /etc/postfix/mysql-virtual-alias-maps.cf
потребител = потребителска поща
парола = парола за поща
хостове = 127.0.0.1
dbname = examplemail
заявка = ИЗБЕРЕТЕ дестинация ОТ virtual_aliases WHERE източник = '% s'

рестартиране на постфикс на услугата

Тестване за последен път:

пощенска карта -q [защитен с имейл] mysql: /etc/postfix/mysql-virtual-alias-maps.cf

Правим резервни копия на седем файла, които ще променим:

cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig

Това е примерна команда. Представяме още шест от същите за тези файлове:

/etc/dovecot/conf.d/10-mail.conf
/etc/dovecot/conf.d/10-auth.conf
/etc/dovecot/dovecot-sql.conf.ext
/etc/dovecot/conf.d/10-master.conf
/etc/dovecot/conf.d/10-ssl.conf

Отваряне на първия файл:

nano /etc/dovecot/dovecot.conf

Проверете дали тази опция е коментирана:

Include_try /usr/share/dovecot/protocols.d/*.protocol
протоколи = imap lmtp

Include_try /usr/share/dovecot/protocols.d/*.protocol line

Нека редактираме следния файл:

nano /etc/dovecot/conf.d/10-mail.conf

Намерете реда mail_location, премахнете коментара, задайте следния параметър:

mail_location = maildir: / var / mail / vhosts /% d /% n

Намерете mail_privileged_group, поставете го там:

mail_privileged_group = поща

Проверка на достъпа. Въвеждаме командата:

Достъпът трябва да изглежда така:

Създайте папка за всеки регистриран домейн:

mkdir -p /var/mail/vhosts/primer.ru

Създайте потребител и група с идентификатор 5000:

groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d / var / mail

Променете собственика на потребител на VMail:

chown -R vmail: vmail / var / mail

Нека редактираме следния файл:

nano /etc/dovecot/conf.d/10-auth.conf

Декоментирайте текста за удостоверяване и добавете реда:

disable_plaintext_auth = да

Променете следния параметър:

Поредица от бележки относно настройката на пощенската система в конкретен случай (въз основа на Постфикс, Гълъбарник+разни). Това е основната, "родителска" страница, съдържаща връзки към целия списък с бележки (с кратко описание).
Поща в този формат - "от нулата", настроена за първи път. Преди това беше необходимо да се справяме с това само спорадично, "тангенциално". Изборът в полза на определена конфигурация беше направен след препрочитане на масата от документация, статии и форуми. Като се има предвид задачата - да се издигне пощенската система за бърза и безпроблемна работа на малък брой пощенски кутии - беше избран следният монтаж:
Постфикс + Гълъбарник 2 + MySQL + PostfixAdmin + Postgrey + Postscreen + ClamAV + DKIM + Сито + RoundCube(+ плъгини за RoundCube, включително няколко експериментални, написани точно там в движение). OC - Debian.

Списък на всички пакети за инсталиране Debian... Пример за настройка на всички основни конфигурации на всички елементи на пощенската система, разгледани тук. Този пример е само специален случай за определени специфични задачи.

Има възможност да персонализирате конфигурации за себе си (можете да посочите вашите данни и конфигурациите ще бъдат автоматично преизградени за тях).

Кратко описание на тестовата конфигурация. Списък с портове и интерфейси.
Примери за преминаване на писмо по цялата верига в системата:

  • Какво се случва с писмо, когато пощата пристигне отвън на сървъра. Всичките му „приключения“ са вътре в пощенската система.
  • Изпращане на имейли – обща информация в контекста на въпросната конфигурация.
  • и т.н.

Изпратените имейли се записват автоматично от MUA клиента в Изпратени елементи. Но не всички имейли се изпращат чрез MUA. По този начин някои от изпратените артикули се губят. Проблемът може да бъде решен чрез активиране на принудително BCC (слепи копия) на всички съобщения, които Postfix може автоматично да препраща към посочените пощенски кутии ...

Безплатен превод на избрани части от официалната документация на Postfix. Анализирани са някои от механизмите на работа, даден е списък с инструменти на командния ред, разглеждат се параметрите на настройките (селективно) на конфигурационните файлове и др.

Postfix - Milter, безплатен превод на някои части от официалната документация + gag. Филтриране на съобщения преди влизане в опашката за съобщения, на етапа на SMTP сесия, емулиране на SMTP за не-SMTP поща и др.

Филтриране в Postfix, след като съобщението влезе в опашката. Безплатен превод на някои части от официалната документация + Gag. Прости и сложни примери, различни филтри за различни домейни и т.н.

Използване на най-новата разработка на Postfix - Postscreen zombie blocker. Емулирайте SMTP сесия за ботове вместо реална връзка с smtpd... Безплатен превод на някои части от официалната документация + Gag.

Описание на ключови конфигурационни параметри, състав на Dovecot, терминология, персонализиране и др. Как работи удостоверяването, сътрудничество с Postfix, с PostfixAdmin SQL база данни и т.н. Безплатен превод на някои избрани части от официалната документация + Gag.

Моят плъгин е New User Autosubscribe. Автоматично обвързване на IMAP папки за нов потребител. Плъгинът ви позволява незабавно да свържете нов потребител с неговите IMAP папки, без допълнителна манипулация на настройките. Плъгинът също така ви позволява да зададете реда на папките (например „Изпратени“ след „Входящи“, вместо „Чернови“, както обикновено е по подразбиране).

Моят плъгин Преглед на потребителско име. Показва името (адреса) на текущия потребител до логото. Интерфейсът на Roundcube не показва текущия потребител по подразбиране. Ако има няколко кутии, тогава е трудно да се разбере коя е отворена сега. Плъгинът показва името (адреса) на потребителя на главната страница.

Преглед на няколко автоматични отговори (включително на трети страни, включително платени продукти). Характеристики на персонализирането, плюсове и минуси на различни опции, трудности при конфигурирането и механизми за изпълнение.

Важни определения

Този раздел съдържа ключови дефиниции, които е желателно да се разберат и запомнят.

MTA(Mail T ransfer Agent) - пощенски сървър, отговорен за препращането на поща. Комуникира с външния свят, като получава и изпраща поща по цялата световна мрежа. "В тила" на него, в родните му владения, MDA работи. MDA(Mail D elivery Agent) - изпраща поща до пощенски кутии, обикновено вътре в конкретен физически сървър - до директории (папки) на файловата система, посочена от настройките за тези цели. Складодържател, опаковчик и товарач, обвързани с един „склад“. Освен това, в описаната тук конфигурация, той действа като пазач-охрана (проверява паролата и дава „ок“ или отказва доставката на поща). MUA(Mail User Agent) е най-добрият преглед на входящата кутия и мениджър на поща за потребителите. Например Outlook, Bat, Gmail или неговият относителен RoundCube.

MSA(Агент за изпращане на поща) – „парче“ от MTA, което му отнема функцията да приема оторизирани SMTP връзки преди изпращане на поща.
MUA клиентът се свързва с порт 587 на MSA, преминава удостоверяване и всички необходими стъпки (TLS и т.н.) и изпраща цялата изпратена поща до своя MTA. Това разделяне на задълженията между портове 25 и 587 подобрява надеждността, като оставя само чисти MTA функции на порт 25.

LDA(Local Delivery Agent) - Същото като MDA, но тук "L" е местно. Основната разлика от MDA е, че LDA не може да съхранява поща на друг сървър.

SMTPd- Сървър, който използва SMTP протокола. Ето част от MTA. Основната цел е получаване на поща. Приема го само, за да го прехвърли незабавно към други вътрешни услуги, обикновено само за кратко, като го отлага във временен вътрешен "уловител" - на опашка (в специална папка на диска).

LMTPd- Същото като SMTPd, но "L" е локално. LMTP сървър. Ето частта MDA (+ клиент в MTA), е средната връзка във веригата между мениджъра на опашката за съобщения в Postfix-MTA и манипулатора на поща в Dovecot-MDA / LDA. Тук - той работи върху unix сокет (посочен е пълният път до "обменния файл"; на практика в Postfix настройката на lmtp клиента може да изглежда така: "lmtp: unix: / път / към / sock-file "). В някои задачи той е конкурент на LDA.

IMAPd- Сървър, който използва IMAP протокола. Ето частта за MDA. Използва се за MUA достъп до папки на пощенска кутия. Позволява ви да не съхранявате поща на клиента, а да работите със сървъра онлайн (това е неговият плюс, понякога е минус).

SASLе рамка за удостоверяване (набор от правила и механизми). Работи ПОД протокол (напр. LMTP), ПРЕД връзка. В описаната конфигурация се използва в механизма за пренос на данни чрез unix сокети.

TLS / SSL- протоколи за криптиране на данни. В описаната тук конфигурация използването им е задължително за външни MUA връзки.

MX- Директен запис за пощенския сървър (създаден например в DNS на регистратора на домейни). Нещо като това: mail.domain.tld -> IP.IP.IP.IP

PTR- Обратно записване за сървъра (конфигурирано от страната на подмрежата, на която принадлежи IP сървърът). Позволява ви да определите свързаното име на домейн по IP. Важно за проверка чрез филтри за спам. Нещо като това: IP.IP.IP.IP -> mail.domain.tld

SPF- DNS запис, изброяващ сървърите, на които е разрешено да изпращат поща от вашия домейн.

Постфикс- MTA + добавки. Казват, че е толкова готин, че авторът предлага награда за хакването му. Бърз, надежден, лесен за конфигуриране в сравнение с exim, но не толкова гъвкав като exim. Пакетирането с Dovecot стана почти стандартно. Добър за малки пощенски системи (въпреки че наскоро видях заглавието на статия, че - Microsoft избира Postfix :)). Дублира някои функции на Dovecot (които, разбира се, могат да бъдат пропуснати).

Включва (не всички са изброени):

PostfixAdmin- Уеб интерфейс към Postfix. Невъзможно е да конфигурирате Postfix върху него, но създаването на домейни / кутии, редактирането на техните свойства е просто негова работа. Той съхранява информация в SQL базата данни, която се използва от неговия "баща" - Postfix и дори Dovecot. Позволява ви да създавате частична автоматизация на последващи събития за добавяне/премахване/редактиране на пощенски кутии/домейни, което е ограничено от възможностите на стандартните потребителски права на Apache (въпреки че и тук има опции). Има два входа: за интерфейса на суперадминистратора - domain.tld / postfixadmin, а за потребители (например за редактиране на техните автоматични отговори) - domain.tld / postfixadmin / потребители... Последното обаче може да е опасно за системата като цяло.

ViMbAdmin- Алтернатива на PostfixAdmin. Не ми хареса фактът, че изисква Zend Framework, Doctrine, Smarty, за да работи - и всичко това определено са остарели версии! Тези. като инсталирате най-новите версии, рискувате да срещнете проблеми в работата му.

Гълъбарник- MDA + добавки. Гъвкав, има висока производителност. Акцентът при разработката беше върху безопасността. За хакване има и награда от автора. :) Дублира някои функции на Postfix.

Състои се и поддържа (не всички изброени):

Milter(Mail Filter) - филтър за поща. Ето частта Postfix. Реализиран като поддръжка за Sendmail 8 Milter протокол и позволява обработка на SMTP събития (CONNECT, DISCONNECT), SMTP команди (HELO, MAIL FROM и др.), както и съдържание на поща (заглавки, тяло), - предиполучаване на писмо на опашката... Присъства в две форми - за smtpd и за не-smtp поща.
Виж бележката

ACL(Access Contfol List) - списък за контрол на достъпа. Част от Dovecot. Позволява виртуални потребители (досега самовиртуален) задайте разрешения в стила на системните потребители на Unix за IMAP папки. Удобно е за блокиране на правата върху някои папки на пощенска кутия за обикновени потребители и, обратно, за разширяване на правата върху пощенски кутии за главния потребител. ACL са два вида: ACL и IMAP-ACL. ACL - създаден и поддържан от администратора. IMAP-ACL – Създава се и се поддържа от потребителите при използване на IMAP.
Виж бележката

Сито- език за писане на правила за предварителен анализ на пощата преди съхраняването й и за управление на по-нататъшната съдба на съобщенията. Осъществено от Dovecot. Позволява ви да дефинирате глобални правила, както и персонализирани правила (ManageSieve), зададени от самия потребител.
Виж бележката

Postgrey- премахва входящата поща, като проверява постоянството на изпращащия MTA. Не са устойчиви - се изхвърлят. Тези, които са преминали теста, са включени в белия списък за дълго време (например месец). По време на изпита се водят записи в „сив списък”, след преминаване на който се определя по-нататъшната съдба на „изпитваните”.
Виж бележката.

DKIM- цифров подпис за изходяща поща. Незадължителен, но желан елемент от пощенската система. Теоретично позволява не само да се потвърди връзката на подателя с неговия домейн (чрез публичния ключ, достъпен директно в DNS), но и факта, че писмото не е претърпяло промени по време на процеса на доставка.
Виж бележката.

ClamAV- антивирусна програма, която проверява съдържанието на входящи имейли за наличие на злонамерен код. Неговите антивирусни бази данни трябва да се актуализират постоянно.
Виж бележката.

Спамасасин- "оценител" на спам заплахата. Програма, която присвоява точки (точки) за всяко писмо по множество критерии, чрез които можете да определите вероятността дали писмото е спам. Оценката се извършва в Postfix и решението може да бъде взето от Dovecot, например с помощта на Sieve, премествайки писма с висока вероятност за спам в съответната папка.

Как да настроите пощенски сървър, който може да получава и изпраща имейли, да се бори със спама и да взаимодейства с клиенти? Всъщност е доста просто.

Днес ще говорим за пощенските сървъри на Linux. Ще говорим за това как да настроим сървър, за широко разпространения интернет протокол SMTP, както и за други протоколи като POP и IMAP. В резултат на това ще бъдете собственик на цялостна система за работа с електронна поща.

Нека започнем със SMTP сървър на Linux

SMTP сървър

Протоколът за прехвърляне на обикновена поща (SMTP) дефинира правилата за изпращане на поща между компютрите, но не регулира правилата за съхранение или изобразяване на съобщения. Това е системно независим протокол, тоест подателят и получателят на поща могат да имат различни операционни системи.

SMTP изисква само сървърът да може да изпраща обикновен ASCII текст до друг сървър, използващ порт 25който е стандартният SMTP порт.

Повечето дистрибуции на Linux днес имат две от най-често срещаните SMTP реализации, вградени в тях: изпрати писмои постфикс.

Sendmail е популярен пощенски сървър с отворен код, използван от много дистрибуции на Linux. Недостатъците му включват малко сложна архитектура и недостатъчно високо ниво на защита.

Postfix е малко по-усъвършенствана система, със специално внимание към проблемите със сигурността по време на разработването на този пощенски сървър.

Компоненти за пощенска услуга

Типичната пощенска услуга има три основни компонента:

Пощенски клиентнаричан още Mail User Agent (MUA). С него потребителят взаимодейства, например, това са пощенски клиенти на Thunderbird или Microsoft Outlook. Те позволяват на потребителя да чете поща и да пише имейли.

Пощенски сървърили пощенски транспортен агент (MTA). Този компонент е отговорен за преместването на имейл между системите, например Sendmail и Postfix.

Агент за доставка на имейли(Агент за доставка на поща, MDA). Този компонент е отговорен за разпространението на получените съобщения до потребителските пощенски кутии. Например, това са Postfix-maildrop и Procmail.

Инсталиране на пощенския сървър

Пакетът Postfix беше избран за конфигуриране на нашия сървър. Това е популярен избор сред системните администратори, стандартният пощенски сървър в повечето съвременни дистрибуции на Linux.

Нека започнем с проверка дали Postfix е инсталиран в системата:

$ rpm -qa | grep постфикс

Ако Postfix не бъде намерен, можете да го инсталирате, например, на дистрибуции, базирани на Red Hat, като използвате следната команда:

$ dnf -y инсталира постфикс

След това стартираме услугата postfix и организираме автоматичното й стартиране при стартиране на системата:

$ systemctl стартиране на постфикс $ systemctl активиране на постфикс

В базирани на Debian дистрибуции като Ubuntu можете да инсталирате Postfix по следния начин:

$ apt-get -y инсталирайте постфикс

По време на инсталацията ще бъдете подканени да изберете конфигурация на сървъра. Измежду четирите налични опции (Без конфигурация, Интернет сайт, Интернет със smarthost, Сателитна система и Само локално) ще изберем Няма конфигурациякоето ще създаде потребителски и групови акаунти, изисквани от Postfix.

Настройка на сървъра

След като инсталирате пощенския сървър на Postfix, трябва да го конфигурирате. Повечето от конфигурационните файлове се намират в директорията / etc / postfix /.

Основният конфигурационен файл на Postfix може да бъде намерен на адрес /etc/postfix/main.cf... Тук има много параметри, нека разгледаме най-важните.

myhostname

Този параметър се използва за определяне на името на хоста на пощенската система. Това е името на хоста в Интернет, за което Postfix ще получава поща.

Типични примери за имена на хостове за пощенски сървъри са mail.example.com и smtp.example.com.

Конфигурирайте този параметър по следния начин:

Myhostname = mail.example.com

моя домейн

Тази настройка ви позволява да посочите пощенския домейн, който сървърът обслужва, например - example.com:

Mydomain = example.com

мой произход

Този параметър ви позволява да посочите името на домейна, използвано в пощата, изпратена от сървъра. Нека му присвоим стойността $ mydomain:

Myorigin = $ mydomain

В настройките можете да се обърнете към параметрите, като добавите знака $ пред името на променливата.

моя дестинация

Този параметър съдържа списък с домейни, които Postfix сървърът ще счита за крайна дестинация за входяща поща.

В нашия случай името на хоста на сървъра и името на домейна ще бъдат тук, но този параметър може да съдържа други имена:

Mydestination = $ myhostname, localhost. $ Mydomain, $ mydomain, mail. $ Mydomain, www. $ Mydomain

mail_spool_directory

Пощенският сървър на Postfix може да използва два начина на доставка на поща:

  • Директно в пощенската кутия на потребителя.
  • Към централната директория на опашките, докато пощата отива в папката / var / макара / пощакъдето има файл за всеки потребител.
mail_spool_directory = / var / spool / mail

моите мрежи

Тази променлива е важен параметър за настройка. Позволява ви да укажете кои сървъри могат да препращат поща през Postfix сървъра.

Обикновено само локални клиентски компютри имат право да прехвърлят поща. В противен случай спамърите може да се интересуват от вашия сървър.

Ако параметърът е зададен неправилно моите мрежи, спамърите ще могат да използват сървъра като препращане на поща. Това много бързо ще доведе до това, че някаква анти-спам система ще го постави в черен списък като DNS Blacklist (DNSBL) или Realtime Blackhole List (RBL). След като сървърът бъде включен в такъв списък, много малко ще могат да получават имейли, изпратени с негова помощ.

Задаването на този параметър може да изглежда така:

Mynetworks = 127.0.0.0/8, 192.168.1.0/24

smtpd_banner

Тази променлива ви позволява да зададете отговора, който сървърът връща, когато клиентите се свържат.

Най-добре е да промените тази стойност, така че да не указва кой пощенски сървър се използва.

inet_protocols

Тази променлива ви позволява да зададете IP версията, която Postfix ще използва при установяване на връзки.

Inet_protocols = ipv4

За да влязат в сила промените, направени в конфигурационните файлове, услугата Postfix трябва да се рестартира:

$ systemctl презареждане на постфикс

Всъщност има много повече, които можете да персонализирате в конфигурационния файл на Postfix. Например - управлявайте нивата на сигурност, задавайте опции за отстраняване на грешки и други параметри.

Възможно е да правите грешка при конфигурирането на сървъра, като въвеждате стойности на параметрите. Можете да проверите правилността на настройките, като използвате следната команда:

$ постфикс проверка

С помощта на този инструмент можете да намерите реда, където е направена грешката, и да я коригирате.

Проверка на опашката за съобщения

Понякога опашката за поща се запълва. Това може да бъде причинено от много фактори, като мрежова грешка или някаква причина, която може да забави изпращането на поща.

За да проверите опашката от съобщения, използвайте следната команда:

Той ще покаже съобщенията в опашката. Ако опашката е пълна и изпращането на съобщение отнема няколко часа, можете да стартирате процеса на изпращане на съобщение със следната команда:

$ постфикс флъш

Ако сега проверите опашката, тя трябва да е празна.

Тестване на пощенския сървър

След като конфигурирате сървъра на Postfix, трябва да го тествате. Първата стъпка в тестването е използването на локален пощенски клиент като mailxили поща(това е символична връзка към mailx).

Опитайте да изпратите имейл до някой, чийто адрес се обслужва на същия сървър, и ако това работи, изпратете имейл до адрес някъде другаде.

$ echo "Това е тялото на съобщението" | mailx -s "Това е тема" -r "likegeeks "-a / път / към / прикачен файл [защитен с имейл]

След това опитайте да приемете имейла, изпратен от друг сървър.

Ако срещнете проблеми, проверете регистрационните файлове. В базираните на Red Hat дистрибуции можете да намерите това, от което се нуждаете / var / log / maillog... В дистрибуциите на Debian, нужният ви файл може да бъде намерен тук: /var/log/mail.log, или по пътя, посочен в настройките на rsyslogd. Ето някои материали за регистрирането на Linux, ако е необходимо, и как да настроите rsyslogd.

Ако проблемите все още не са разрешени, опитайте да проверите вашите DNS настройки, разгледайте MX записи с помощта на мрежови команди на Linux.

Анти спам

Има много решения за откриване на нежелани съобщения – спам – сред имейл съобщенията. Един от най-добрите е SpamAssassin с отворен код.
Можете да го инсталирате така:

$ dnf -y инсталирате spamassassin

След това трябва да стартирате съответната услуга и да я добавите към стартиране:

$ systemctl стартиране на spamassassin $ systemctl активиране на spamassassin

След като инсталирате SpamAssassin, разгледайте настройките му във файла /etc/mail/spamassassin/local.cf.

SpamAssassin е в състояние да различава обикновените съобщения от спама въз основа на резултатите от анализа на кореспонденцията с помощта на различни скриптове. Резултатите от проверките се оценяват в точки.

Колкото по-висока е крайната оценка на писмото, толкова по-голяма е вероятността то да е спам.

В конфигурационния файл параметърът изисквани_посещения 5показва, че SpamAssassin ще маркира съобщение като спам, ако има рейтинг 5 или по-висок.

Параметър отчет_безопасенприема стойностите 0, 1 или 2. Задаването му на 0 означава, че съобщенията, маркирани като спам, се препращат в оригиналния им вид, но заглавката им се променя, за да покаже, че са спам.

Ако този параметър е настроен на 1 или 2, SpamAssassin ще генерира отчет и ще го изпрати на получателя.

Разликата между стойностите 1 и 2 е, че в първия случай спам съобщението ще бъде кодирано във формат на съобщение / rfc822, а във втория - в текстов / обикновен формат.

Текстовото / обикновеното кодиране е по-безопасно, тъй като някои пощенски клиенти изпълняват съобщения във формат message / rfc822, което при определени условия може да доведе до вирусна инфекция на клиентския компютър.

След като инсталирате и конфигурирате SpamAssassin, трябва да го интегрирате с Postfix. Това може би е най-лесно да се направи с procmail.

Нека създадем файл / etc / procmailrcи добавете следното към него:

: 0 hbfw | / usr / bin / spamc

След това нека редактираме конфигурационния файл на Postfix - /etc/postfix/main.cfкато зададете параметъра команда_пощенска кутияпо следния начин:

Пощенска_команда = / usr / bin / procmail

Накрая рестартирайте услугите Postfix и SpamAssassin:

$ systemctl рестартирайте spamassassin

Трябва да се каже, че SpamAssassin не винаги разпознава спам, което води до пълнене на пощенски кутии с ненужни писма.

За щастие съобщенията могат да бъдат филтрирани с помощта на списъци с черни дупки в реално време (RBLs), преди да достигнат до пощенския сървър на Postfix. Това ще намали натоварването на вашия пощенски сървър и ще ви помогне да го поддържате чист.

Отворете конфигурационния файл на Postfix /etc/postfix/main.cf, променете параметъра smtpd_recipient_restrictionsи конфигурирайте други параметри, както следва:

Strict_rfc821_envelopes = да relay_domains_reject_code = 554 unknown_address_reject_code = 554 unknown_client_reject_code = 554 unknown_hostname_reject_code = 554 unknown_local_recipient_reject_code = 554 unknown_relay_recipient_reject_code = 554 unverified_recipient_reject_code = 554 smtpd_recipient_restrictions = reject_invalid_hostname, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_rbl_client dsn.rfc-ignorant.org, reject_rbl_client Dul. dnsbl.sorbs.net, reject_rbl_client list.dsbl.org, reject_rbl_client sbl-xbl.spamhaus.org, reject_rbl_client bl.spamcop.net, reject_rbl_client dnsbl.sorbs.net, разрешение

След това рестартирайте Postfix сървъра:

$ systemctl рестартирайте постфикс

Горните черни списъци се използват най-често, но можете да намерите други подобни сървъри.

Осигуряване на SMTP връзка

Най-добре е да изпращате SMTP трафик през TLS, за да го защитите от атака на посредник.
Първо трябва да генерирате сертификат и ключ с помощта на командата openssl:

$ openssl genrsa -des3 -out mail.key $ openssl req -new -key mail.key -out mail.csr $ cp mail.key mail.key.original $ openssl rsa -in mail.key.original -out mail_secure.key $ openssl x509 -req -days 365 -in mail_secure.csr -signkey mail_secure.key -out mail_secure.crt $ cp mail_secure.crt / etc / postfix / $ cp mail_secure.key / etc / postfix /

След това трябва да добавите към конфигурационния файл на Postfix /etc/postfix/main.cfследното:

Smtpd_use_tls = да smtpd_tls_cert_file = /etc/postfix/mail_secure.crt smtpd_tls_key_file = /etc/postfix/mail_secure.key smtp_tls_security_level = може

И накрая, трябва да рестартирате услугата Postfix:

$ systemctl рестартирайте постфикс

Сега, когато клиентът се свърже със сървъра, трябва да изберете TLS. Тук, когато изпращате имейл за първи път след промяна на настройките, ще видите предупреждение, тъй като сертификатът не е подписан.

Основи на протоколите POP3 и IMAP

И така, ние установихме процеса на изпращане и получаване на имейли чрез SMTP, но организацията на пълноценна пощенска услуга не свършва дотук. Помислете за следните ситуации:

  • Потребителите се нуждаят от локални копия на имейли, за да ги преглеждат офлайн.
  • Потребителските пощенски клиенти не поддържат файловия формат mbox. Това е прост текстов формат, който може да се чете от много конзолни пощенски клиенти като mailx и mutt.
  • Потребителите не могат постоянно да използват бърза връзка за достъп до файловата система на сървъра и за работа с mbox файлове, в резултат на което трябва да направите локално копие, за да работите с тях, без да се свързвате с мрежата.
  • Ограниченията за сигурност показват, че потребителите нямат директен достъп до имейл шлюза, например, не им е позволено да работят с публични папки на опашката за съобщения.

За да се поберат всички тези специални случаи, са създадени други протоколи. Те могат да бъдат описани като протоколи за достъп до електронна поща.

Двата най-широко използвани протокола за достъп до поща са POP (Post Office Protocol) и IMAP (Internet Message Access Protocol).

POP се основава на много проста идея. Централният пощенски сървър на Linux е свързан с интернет през цялото време, той получава и съхранява писма за всички потребители. Всички получени писма остават на опашката на сървъра, докато потребителят се свърже с него чрез POP и изтегли писмата.

Когато потребител иска да изпрати имейл, имейл клиентът обикновено го изпраща през централен сървър чрез SMTP.

Моля, имайте предвид, че SMTP сървърът и POP сървърът могат да работят на една и съща машина без никакви проблеми. Това е обичайна практика в наши дни.

Функции като съхраняване на оригинални копия на потребителски имейли на сървъра само с кеширани копия на клиента не са налични в POP. Това доведе до разработването на протокола IMAP.

Използвайки IMAP, сървърът ще поддържа три режима на достъп до поща:

  • Онлайн режимът е подобен на директния достъп до файловата система на пощенски сървър.
  • Офлайн режимът е подобен на това как работи POP, като клиент се прекъсва от мрежата, след като получи имейлите си. В този режим сървърът обикновено не съхранява копия на писма.
  • Офлайн режимът позволява на потребителите да съхраняват кеширани копия на своите имейли, а сървърът също така съхранява копия от тези имейли.

Има различни реализации на IMAP и POP, в тази област сървърът Dovecot е много популярен, което ви позволява да работите и с двата протокола.

POP3, POP3S, IMAP и IMAPS сървърите слушат съответно на портове 110, 995, 143 и 993.

Инсталиране на Dovecot

Повечето дистрибуции на Linux идват с предварително инсталиран Dovecot, но можете да го инсталирате сами. В системи, базирани на Red Hat, това се прави по следния начин:

$ dnf -y инсталирате dovecot

На базирани на Debian системи, IMAP и POP3 функционалността се предоставя в два различни пакета:

$ apt-get -y инсталирате dovecot-imapd dovecot-pop3d

Тук ще бъдете подканени да създадете самоподписан сертификат за работа с IMAP и POP3 през SSL / TLS. Отговори на въпроса даи когато бъдете подканени, въведете името на хоста на вашата система.

След това можете да стартирате съответната услуга и да я добавите към стартиране:

$ systemctl стартира гълъбовницата $ systemctl активира гълъбовницата

Конфигуриране на Dovecot

Основният конфигурационен файл на Dovecot се намира на адрес /etc/dovecot/dovecot.conf... В някои дистрибуции на Linux този файл се намира в папката /etc/dovecot/conf.d/и за включване на конфигурационни файлове се използва директивата include.

Ето някои от опциите, използвани за персонализиране на Dovecot.

протоколи: протоколи, които трябва да се поддържат.

Протоколи = imap pop3 lmtp

Тук lmtpозначава Локален протокол за прехвърляне на поща. слушам: IP адрес, който сървърът ще слуша.

Слушай = *, ::

Тук звездичка означава всички IPv4 интерфейси, двойни двоеточия означава всички IPv6 интерфейси.

userdb: потребителска база данни за удостоверяване.

Userdb (драйвер = pam)

mail_location: това е записът във файла /etc/dovecot/conf.d/10-mail.conf... Изглежда така:

Mail_location = mbox: ~ / mail: INBOX = / var / mail /% u

Dovecot идва със стандартни SSL сертификати и ключови файлове, които се използват във файла /etc/dovecot/conf.d/10-ssl.conf.

Ssl_cert =

Когато потребителят се опита да се свърже с Dovecot, сървърът ще покаже предупреждение, защото сертификатите не са подписани. Ако е необходимо, подписаните сертификати могат да бъдат закупени от подходящ сертифициращ орган.

Не забравяйте да отворите портовете на сървъра Dovecot на вашата защитна стена.

$ iptables -A INPUT -p tcp --dport 110 -j ПРИЕМА $ iptables -A INPUT -p tcp --dport 995 -j ПРИЕМА $ iptables -A INPUT -p tcp --dport 143 -j ПРИЕМА $ iptables -A INPUT -p tcp --dport 993 -j ПРИЕМАНЕ

И не забравяйте за SMTP порта.

$ iptables -A INPUT -p tcp --dport 25 -j ПРИЕМАНЕ

След това запазете правилата. Ако искате освежаване на спецификата на работата с iptables в Linux, разгледайте този материал.
Или, ако използвате firewalld, можете да направите това:

$ firewall-cmd --permanent --add-port = 110 / tcp --add-port = 995 $ firewall-cmd --permanent --add-port = 143 / tcp --add-port = 993 $ firewall-cmd -- презареждане

И ако нещо се обърка, вижте регистрационните файлове / var / log / съобщения, / var / log / maillog,и /var/log/mail.log.

Резултати

Сега можете да настроите пощенска услуга на вашия Linux сървър. Както виждате, няма да отнеме много време. Разбира се, пакетите като Postfix, които прегледахме тук, имат много настройки, но ако сте усвоили стъпките, описани тук, и сте разбрали основите, тогава всичко, от което се нуждаете, трябва да бъде лесно да разберете от документацията.

Уважаеми читатели! Как настройвате пощенски сървъри на Linux?

Инсталиране на пощенския сървър

Като пощенски сървър на Windows ще използваме безплатния пощенски сървър hMailServer. Отидете на уебсайта на Hmailserver в раздела Изтегляне и изтеглете най-новата налична версия за инсталиране. Започваме инсталацията на сървъра. Когато избирате вида на инсталацията, изберете пълния. Изберете типа сървър на база данни, ако планирате да имате голям брой пощенски кутии и тяхната безопасност е от решаващо значение, изберете Използване на външна машина за база данни (MSSQL, MySQL или PostgreSQL) Задайте администраторска парола, не забравяйте да я запомните. След инсталацията ще се появи прозорец за свързване със сървъра. За удобство при стартиране на приложението задайте опцията „Автоматично свързване при стартиране“ и щракнете върху „Свързване“. В прозореца за добре дошли щракнете върху бутона Добавяне на домейн .... Можете също да добавите домейни в секцията Домейни-Добавяне ....

Добавете домейн

Изберете домейна и добавете имейл акаунт в секцията Акаунти

Тези настройки вече са достатъчни за използване на поща.

Описание на настройките на пощенския сървър на hMailServer

Състояние

В секцията Status-Server можем да видим текущото състояние на сървъра, да видим версията на сървъра и типа на използвания сървър на база данни. Там също се показват конфигурационни грешки.

Разделът Status-Status съдържа статистика на сървъра, време на работа на сървъра, брой обработени съобщения, открити вируси и спам съобщения. Този раздел също така показва броя на активните SMTP, POP3, IMAP сесии.

В секцията Status-Logging можете да активирате регистриране и да наблюдавате връзките към пощенския сървър на живо. Разделът Status-Delivery Queue съдържа опашката за поща, в същия раздел опашката за поща може да бъде изчистена.

домейни

В секцията Домейни можете да изтривате, добавяте, редактирате настройките на домейна. Нека разгледаме по-подробно настройките на домейна.

В раздела Общи можете да активирате / деактивирате пощенския домейн. В секцията Имена можете да добавите псевдоним за пощенския домейн. В секцията Подписи можете да добавите подпис за писма, изпратени от пощенски кутии на посочения пощенски домейн. Можете да дефинирате условията за използване на подписа:

  • За всички кутии, които нямат подпис
  • Презаписване на подписа на пощенската кутия
  • Добавете подпис към подписа на пощенската кутия

Можете да добавите текст и/или html подпис.

В секцията Лимити се задават лимити. Максимален размер (Mb) - задава ограничението за размера за всички пощенски съобщения във всички пощенски кутии на домейна. Максимален размер на съобщението (Kb) - ако е посочено, hMailServer ще отхвърля съобщения, по-големи от посочената стойност. Ако параметърът не е посочен, ще се използва стойността, посочена в настройките на SMTP. Максимален размер на акаунти (Mb) - ако стойността е посочена, тогава администраторът няма да може да добавя акаунти с общ обем над стойността. Също така в този раздел можете да конфигурирате максималния брой акаунти, псевдоними и пощенски списъци.

В секцията DKIM подписване можете да конфигурирате DKIM подписа. За да генерирате подпис и ключ, препоръчвам да използвате ресурса dkim-wizzard Във файла с ключ Pivate посочете файла с частния ключ. В елемента Селектор посочете селектора, който трябва да съвпада с DNS записа. Например, ако вашият DNS запис е наречен myselector._domainkey.example.net, ще въведете "myselector" като селектор (без кавички).

В раздела Разширени можете да конфигурирате адреса за препращане на поща, която се изпраща до всички несъществуващи пощенски кутии, да активирате т. нар. „Плюс адресиране“ и да посочите символ за него. Можете да активирате / деактивирате сивия списък.

В секцията Домейни-Акаунти се правят настройки за всяка конкретна пощенска кутия. Разделът Общи съдържа основните настройки на акаунта. Адрес, парола и размер на пощенската кутия. Можете също да посочите нивото на потребителски достъп до сървъра:

  • Потребителят може да промени настройките на акаунта, като парола.
  • Домейн - потребителят може да промени основните настройки на домейна и потребителите в домейна. Може да добавя потребители, псевдоними, пощенски списъци, да изтрива обекти, да увеличава ограниченията на акаунта.
  • Сървър - потребителят може да промени настройките на сървъра и всички домейни в него.

В раздела Автоматичен отговор можете да конфигурирате автоматичния отговор, да посочите темата и съобщението за автоматичен отговор и датата, до която е включен автоматичният отговор.

В раздела Препращане можете да конфигурирате адреса за препращане на поща. В раздела Подпис се конфигурира подписът за акаунта, точно както за домейна, можете да конфигурирате txt и html подписа. В раздела Външни акаунти можете да конфигурирате hMailServer да изтегля поща от други пощенски сървъри с помощта на протокола POP3, след като съобщението бъде изтеглено, всички настройки на сървъра ще бъдат приложени към него, след което съобщението ще бъде доставено до локалния акаунт. Разделът Правила е мястото, където конфигурирате правила, които работят по същия начин като глобалните правила, но се прилагат само за съобщения. Вижте раздела Правила за подробности. В раздела Active Directory можете да свържете акаунт в Active Directory. Когато потребителят се свърже с hMailServer, той ще използва Active Directory, за да потвърди паролата на потребителя. В раздела Разширени можете да посочите името и фамилията на потребителя (тези данни не се използват от hMailServer). Можете да редактирате IMAP папки, да изчистите съдържанието на всички IMAP папки.

В раздела Domains-Aliases се конфигурират псевдоними за пощенски кутии.

Домейни – Списъците за разпространение конфигурират пощенския списък. Адрес - пощенски адрес, съобщенията, изпратени на този адрес, ще бъдат препратени до всички в пощенския списък. Има 3 режима:

  • Публично - всеки може да изпраща писма.
  • Членство - само членовете на списъка могат да спят писма.
  • Съобщения - съобщенията могат да се изпращат само от конкретна пощенска кутия.

Изискване на SMTP удостоверяване – Ако този флаг е зададен, тогава hMailServer ще изисква SMTP удостоверяване за доставка до пощенския списък. Ако е избрана тази опция, само потребители с акаунти на сървъра ще могат да изпращат имейл до списъка за разпространение. В раздела Членове можете да добавите пощенски адреси. Поддържа се добавяне на адреси от hMailServer (Select…) и импортиране от текстов файл (Import…).

Правила

В секцията Правила можете да активирате правила въз основа на съдържанието на съобщението, например можете да изтривате съобщения с определен ред или да препращате съобщения с определен размер. Всяко правило има критерий и действие. Когато създавате правило, добавяте критерий, който определя към кое съобщение ще се прилага правилото. Например, можете да добавите критерий, който ще действа върху съобщения със специфично заглавие на Message-ID. След като добавим критерий, добавяме действие. Действието описва какво трябва да направи hMailServer със съобщението, ако то отговаря на критериите. Например, можете да препращате, изтривате или поставяте съобщение в определена папка.

Настройки

В секцията Настройки се правят настройките на протокола. Можете да конфигурирате антиспам, антивирус (Clamav, изисква се допълнителна инсталация), да активирате регистриране. В Settings-Advanced се правят настройки за Auto-ban, SSL-сертификат, портове и Ip-адреси на пощенския сървър.

комунални услуги

В секцията Backup можете да направите резервно копие на настройки, домейни, съобщения, а има и скрипт, който може да се добави към ежедневна задача. В този раздел можете също да възстановите данни от резервно копие. В секцията MX-заявка можете да диагностицирате MX-записа на пощенския сървър (аналогично на dig MX) В секцията за изпращане на сървър можете да изпратите съобщение до локален имейл адрес. Диагностиката е друг диагностичен инструмент, който проверява връзката на порт 25, MX записи на домейна.

  • Превод

Как да настроите пощенски сървър, който може да получава и изпраща имейли, да се бори със спама и да взаимодейства с клиенти? Всъщност е доста просто.

Днес ще говорим за пощенските сървъри на Linux. Ще говорим за това как да настроим сървър, за широко разпространения интернет протокол SMTP, както и за други протоколи като POP и IMAP. В резултат на това ще бъдете собственик на цялостна система за работа с електронна поща.

Нека започнем със SMTP сървър на Linux

SMTP сървър

Протоколът за прехвърляне на обикновена поща (SMTP) дефинира правилата за изпращане на поща между компютрите, но не регулира правилата за съхранение или изобразяване на съобщения. Това е системно независим протокол, тоест подателят и получателят на поща могат да имат различни операционни системи.

SMTP изисква само сървърът да може да изпраща обикновен ASCII текст до друг сървър, използващ порт 25който е стандартният SMTP порт.

Повечето дистрибуции на Linux днес имат две от най-често срещаните SMTP реализации, вградени в тях: изпрати писмои постфикс.

Sendmail е популярен пощенски сървър с отворен код, използван от много дистрибуции на Linux. Недостатъците му включват малко сложна архитектура и недостатъчно високо ниво на защита.

Postfix е малко по-усъвършенствана система, със специално внимание към проблемите със сигурността по време на разработването на този пощенски сървър.

Компоненти за пощенска услуга

Типичната пощенска услуга има три основни компонента:

Пощенски клиентнаричан още Mail User Agent (MUA). С него потребителят взаимодейства, например, това са пощенски клиенти на Thunderbird или Microsoft Outlook. Те позволяват на потребителя да чете поща и да пише имейли.

Пощенски сървърили пощенски транспортен агент (MTA). Този компонент е отговорен за преместването на имейл между системите, например Sendmail и Postfix.

Агент за доставка на имейли(Агент за доставка на поща, MDA). Този компонент е отговорен за разпространението на получените съобщения до потребителските пощенски кутии. Например, това са Postfix-maildrop и Procmail.

Инсталиране на пощенския сървър

Пакетът Postfix беше избран за конфигуриране на нашия сървър. Това е популярен избор сред системните администратори, стандартният пощенски сървър в повечето съвременни дистрибуции на Linux.

Нека започнем с проверка дали Postfix е инсталиран в системата:

$ rpm -qa | grep постфикс
Ако Postfix не бъде намерен, можете да го инсталирате, например, на дистрибуции, базирани на Red Hat, като използвате следната команда:

$ dnf -y инсталира постфикс
След това стартираме услугата postfix и организираме автоматичното й стартиране при стартиране на системата:

$ systemctl стартиране на постфикс $ systemctl активиране на постфикс
В базирани на Debian дистрибуции като Ubuntu можете да инсталирате Postfix по следния начин:

$ apt-get -y инсталирайте постфикс
По време на инсталацията ще бъдете подканени да изберете конфигурация на сървъра. Измежду четирите налични опции (Без конфигурация, Интернет сайт, Интернет със smarthost, Сателитна система и Само локално) ще изберем Няма конфигурациякоето ще създаде потребителски и групови акаунти, изисквани от Postfix.

Настройка на сървъра

След като инсталирате пощенския сървър на Postfix, трябва да го конфигурирате. Повечето от конфигурационните файлове се намират в директорията / etc / postfix /.

Основният конфигурационен файл на Postfix може да бъде намерен на адрес /etc/postfix/main.cf... Тук има много параметри, нека разгледаме най-важните.

myhostname

Този параметър се използва за определяне на името на хоста на пощенската система. Това е името на хоста в Интернет, за което Postfix ще получава поща.

Типични примери за имена на хостове за пощенски сървъри са mail.example.com и smtp.example.com.

Конфигурирайте този параметър по следния начин:

Myhostname = mail.example.com
моя домейн

Тази настройка ви позволява да посочите пощенския домейн, който сървърът обслужва, например - example.com:

Mydomain = example.com
мой произход

Този параметър ви позволява да посочите името на домейна, използвано в пощата, изпратена от сървъра. Нека му присвоим стойността $ mydomain:

Myorigin = $ mydomain
В настройките можете да се обърнете към параметрите, като добавите знака $ пред името на променливата.

моя дестинация

Този параметър съдържа списък с домейни, които Postfix сървърът ще счита за крайна дестинация за входяща поща.

В нашия случай името на хоста на сървъра и името на домейна ще бъдат тук, но този параметър може да съдържа други имена:

Mydestination = $ myhostname, localhost. $ Mydomain, $ mydomain, mail. $ Mydomain, www. $ Mydomain
mail_spool_directory

Пощенският сървър на Postfix може да използва два начина на доставка на поща:

  • Директно в пощенската кутия на потребителя.
  • Към централната директория на опашките, докато пощата отива в папката / var / макара / пощакъдето има файл за всеки потребител.
mail_spool_directory = / var / spool / mail
моите мрежи

Тази променлива е важен параметър за настройка. Позволява ви да укажете кои сървъри могат да препращат поща през Postfix сървъра.

Обикновено само локални клиентски компютри имат право да прехвърлят поща. В противен случай спамърите може да се интересуват от вашия сървър.

Ако параметърът е зададен неправилно моите мрежи, спамърите ще могат да използват сървъра като препращане на поща. Това много бързо ще доведе до това, че някаква анти-спам система ще го постави в черен списък като DNS Blacklist (DNSBL) или Realtime Blackhole List (RBL). След като сървърът бъде включен в такъв списък, много малко ще могат да получават имейли, изпратени с негова помощ.

Задаването на този параметър може да изглежда така:

Mynetworks = 127.0.0.0/8, 192.168.1.0/24
smtpd_banner

Тази променлива ви позволява да зададете отговора, който сървърът връща, когато клиентите се свържат.

Най-добре е да промените тази стойност, така че да не указва кой пощенски сървър се използва.

inet_protocols

Тази променлива ви позволява да зададете IP версията, която Postfix ще използва при установяване на връзки.

Inet_protocols = ipv4
За да влязат в сила промените, направени в конфигурационните файлове, услугата Postfix трябва да се рестартира:

$ systemctl презареждане на постфикс
Всъщност има много повече, които можете да персонализирате в конфигурационния файл на Postfix. Например - управлявайте нивата на сигурност, задавайте опции за отстраняване на грешки и други параметри.

Възможно е да правите грешка при конфигурирането на сървъра, като въвеждате стойности на параметрите. Можете да проверите правилността на настройките, като използвате следната команда:

$ постфикс проверка
С помощта на този инструмент можете да намерите реда, където е направена грешката, и да я коригирате.

Проверка на опашката за съобщения

Понякога опашката за поща се запълва. Това може да бъде причинено от много фактори, като мрежова грешка или някаква причина, която може да забави изпращането на поща.

За да проверите опашката от съобщения, използвайте следната команда:

$ mailq
Той ще покаже съобщенията в опашката. Ако опашката е пълна и изпращането на съобщение отнема няколко часа, можете да стартирате процеса на изпращане на съобщение със следната команда:

$ постфикс флъш
Ако сега проверите опашката, тя трябва да е празна.

Тестване на пощенския сървър

След като конфигурирате сървъра на Postfix, трябва да го тествате. Първата стъпка в тестването е използването на локален пощенски клиент като mailxили поща(това е символична връзка към mailx).

Опитайте да изпратите имейл до някой, чийто адрес се обслужва на същия сървър, и ако това работи, изпратете имейл до адрес някъде другаде.

$ echo "Това е тялото на съобщението" | mailx -s "Това е тема" -r "likegeeks "-a / път / към / прикачен файл [защитен с имейл]
След това опитайте да приемете имейла, изпратен от друг сървър.

Ако срещнете проблеми, проверете регистрационните файлове. В базираните на Red Hat дистрибуции можете да намерите това, от което се нуждаете / var / log / maillog... В дистрибуциите на Debian, нужният ви файл може да бъде намерен тук: /var/log/mail.log, или по пътя, посочен в настройките на rsyslogd. Ето някои материали за регистрирането на Linux, ако е необходимо, и как да настроите rsyslogd.

Ако проблемите все още не са разрешени, опитайте да проверите вашите DNS настройки, разгледайте MX записи с помощта на мрежови команди на Linux.

Анти спам

Има много решения за откриване на нежелани съобщения – спам – сред имейл съобщенията. Един от най-добрите е SpamAssassin с отворен код.
Можете да го инсталирате така:

$ dnf -y инсталирате spamassassin
След това трябва да стартирате съответната услуга и да я добавите към стартиране:

$ systemctl стартиране на spamassassin $ systemctl активиране на spamassassin
След като инсталирате SpamAssassin, разгледайте настройките му във файла /etc/mail/spamassassin/local.cf.

SpamAssassin е в състояние да различава обикновените съобщения от спама въз основа на резултатите от анализа на кореспонденцията с помощта на различни скриптове. Резултатите от проверките се оценяват в точки.

Колкото по-висока е крайната оценка на писмото, толкова по-голяма е вероятността то да е спам.

В конфигурационния файл параметърът изисквани_посещения 5показва, че SpamAssassin ще маркира съобщение като спам, ако има рейтинг 5 или по-висок.

Параметър отчет_безопасенприема стойностите 0, 1 или 2. Задаването му на 0 означава, че съобщенията, маркирани като спам, се препращат в оригиналния им вид, но заглавката им се променя, за да покаже, че са спам.

Ако този параметър е настроен на 1 или 2, SpamAssassin ще генерира отчет и ще го изпрати на получателя.

Разликата между стойностите 1 и 2 е, че в първия случай спам съобщението ще бъде кодирано във формат на съобщение / rfc822, а във втория - в текстов / обикновен формат.

Текстовото / обикновеното кодиране е по-безопасно, тъй като някои пощенски клиенти изпълняват съобщения във формат message / rfc822, което при определени условия може да доведе до вирусна инфекция на клиентския компютър.

След като инсталирате и конфигурирате SpamAssassin, трябва да го интегрирате с Postfix. Това може би е най-лесно да се направи с procmail.

Нека създадем файл / etc / procmailrcи добавете следното към него:

: 0 hbfw | / usr / bin / spamc
След това нека редактираме конфигурационния файл на Postfix - /etc/postfix/main.cfкато зададете параметъра команда_пощенска кутияпо следния начин:

Пощенска_команда = / usr / bin / procmail
Накрая рестартирайте услугите Postfix и SpamAssassin:

$ systemctl рестартирайте spamassassin
Трябва да се каже, че SpamAssassin не винаги разпознава спам, което води до пълнене на пощенски кутии с ненужни писма.

За щастие съобщенията могат да бъдат филтрирани с помощта на списъци с черни дупки в реално време (RBLs), преди да достигнат до пощенския сървър на Postfix. Това ще намали натоварването на вашия пощенски сървър и ще ви помогне да го поддържате чист.

Отворете конфигурационния файл на Postfix /etc/postfix/main.cf, променете параметъра smtpd_recipient_restrictionsи конфигурирайте други параметри, както следва:

Strict_rfc821_envelopes = да relay_domains_reject_code = 554 unknown_address_reject_code = 554 unknown_client_reject_code = 554 unknown_hostname_reject_code = 554 unknown_local_recipient_reject_code = 554 unknown_relay_recipient_reject_code = 554 unverified_recipient_reject_code = 554 smtpd_recipient_restrictions = reject_invalid_hostname, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_rbl_client dsn.rfc-ignorant.org, reject_rbl_client Dul. dnsbl.sorbs.net, reject_rbl_client list.dsbl.org, reject_rbl_client sbl-xbl.spamhaus.org, reject_rbl_client bl.spamcop.net, reject_rbl_client dnsbl.sorbs.net, разрешение
След това рестартирайте Postfix сървъра:

$ systemctl рестартирайте постфикс
Горните черни списъци се използват най-често, но можете да намерите други подобни сървъри.

Осигуряване на SMTP връзка

Най-добре е да изпращате SMTP трафик през TLS, за да го защитите от атака на посредник.
Първо трябва да генерирате сертификат и ключ с помощта на командата openssl:

$ openssl genrsa -des3 -out mail.key $ openssl req -new -key mail.key -out mail.csr $ cp mail.key mail.key.original $ openssl rsa -in mail.key.original -out mail_secure.key $ openssl x509 -req -days 365 -in mail.csr -signkey mail_secure.key -out mail_secure.crt $ cp mail_secure.crt / etc / postfix / $ cp mail_secure.key / etc / postfix /
След това трябва да добавите към конфигурационния файл на Postfix /etc/postfix/main.cfследното:

Smtpd_use_tls = да smtpd_tls_cert_file = /etc/postfix/mail_secure.crt smtpd_tls_key_file = /etc/postfix/mail_secure.key smtp_tls_security_level = може
И накрая, трябва да рестартирате услугата Postfix:

$ systemctl рестартирайте постфикс
Сега, когато клиентът се свърже със сървъра, трябва да изберете TLS. Тук, когато изпращате имейл за първи път след промяна на настройките, ще видите предупреждение, тъй като сертификатът не е подписан.

Основи на протоколите POP3 и IMAP

И така, ние установихме процеса на изпращане и получаване на имейли чрез SMTP, но организацията на пълноценна пощенска услуга не свършва дотук. Помислете за следните ситуации:
  • Потребителите се нуждаят от локални копия на имейли, за да ги преглеждат офлайн.
  • Потребителските пощенски клиенти не поддържат файловия формат mbox. Това е прост текстов формат, който може да се чете от много конзолни пощенски клиенти като mailx и mutt.
  • Потребителите не могат постоянно да използват бърза връзка за достъп до файловата система на сървъра и за работа с mbox файлове, в резултат на което трябва да направите локално копие, за да работите с тях, без да се свързвате с мрежата.
  • Ограниченията за сигурност показват, че потребителите нямат директен достъп до имейл шлюза, например, не им е позволено да работят с публични папки на опашката за съобщения.
За да се поберат всички тези специални случаи, са създадени други протоколи. Те могат да бъдат описани като протоколи за достъп до електронна поща.

Двата най-широко използвани протокола за достъп до поща са POP (Post Office Protocol) и IMAP (Internet Message Access Protocol).

POP се основава на много проста идея. Централният пощенски сървър на Linux е свързан с интернет през цялото време, той получава и съхранява писма за всички потребители. Всички получени писма остават на опашката на сървъра, докато потребителят се свърже с него чрез POP и изтегли писмата.

Когато потребител иска да изпрати имейл, имейл клиентът обикновено го изпраща през централен сървър чрез SMTP.

Моля, имайте предвид, че SMTP сървърът и POP сървърът могат да работят на една и съща машина без никакви проблеми. Това е обичайна практика в наши дни.

Функции като съхраняване на оригинални копия на потребителски имейли на сървъра само с кеширани копия на клиента не са налични в POP. Това доведе до разработването на протокола IMAP.

Използвайки IMAP, сървърът ще поддържа три режима на достъп до поща:

  • Онлайн режимът е подобен на директния достъп до файловата система на пощенски сървър.
  • Офлайн режимът е подобен на това как работи POP, като клиент се прекъсва от мрежата, след като получи имейлите си. В този режим сървърът обикновено не съхранява копия на писма.
  • Офлайн режимът позволява на потребителите да съхраняват кеширани копия на своите имейли, а сървърът също така съхранява копия от тези имейли.
Има различни реализации на IMAP и POP, в тази област сървърът Dovecot е много популярен, което ви позволява да работите и с двата протокола.

POP3, POP3S, IMAP и IMAPS сървърите слушат съответно на портове 110, 995, 143 и 993.

Инсталиране на Dovecot

Повечето дистрибуции на Linux идват с предварително инсталиран Dovecot, но можете да го инсталирате сами. В системи, базирани на Red Hat, това се прави по следния начин:

$ dnf -y инсталирате dovecot
На базирани на Debian системи, IMAP и POP3 функционалността се предоставя в два различни пакета:

$ apt-get -y инсталирате dovecot-imapd dovecot-pop3d
Тук ще бъдете подканени да създадете самоподписан сертификат за работа с IMAP и POP3 през SSL / TLS. Отговори на въпроса даи когато бъдете подканени, въведете името на хоста на вашата система.

След това можете да стартирате съответната услуга и да я добавите към стартиране:

$ systemctl стартира гълъбовницата $ systemctl активира гълъбовницата

Конфигуриране на Dovecot

Основният конфигурационен файл на Dovecot се намира на адрес /etc/dovecot/dovecot.conf... В някои дистрибуции на Linux този файл се намира в папката /etc/dovecot/conf.d/и за включване на конфигурационни файлове се използва директивата include.

Ето някои от опциите, използвани за персонализиране на Dovecot.

протоколи: протоколи, които трябва да се поддържат.

Протоколи = imap pop3 lmtp
Тук lmtpозначава Локален протокол за прехвърляне на поща. слушам: IP адрес, който сървърът ще слуша.

Слушай = *, ::
Тук звездичка означава всички IPv4 интерфейси, двойни двоеточия означава всички IPv6 интерфейси.

userdb: потребителска база данни за удостоверяване.

Userdb (драйвер = pam)
mail_location: това е записът във файла /etc/dovecot/conf.d/10-mail.conf... Изглежда така:

Mail_location = mbox: ~ / mail: INBOX = / var / mail /% u
Dovecot идва със стандартни SSL сертификати и ключови файлове, които се използват във файла /etc/dovecot/conf.d/10-ssl.conf.

Ssl_cert =Когато потребителят се опита да се свърже с Dovecot, сървърът ще покаже предупреждение, защото сертификатите не са подписани. Ако е необходимо, подписаните сертификати могат да бъдат закупени от подходящ сертифициращ орган.

Не забравяйте да отворите портовете на сървъра Dovecot на вашата защитна стена.

$ iptables -A INPUT -p tcp --dport 110 -j ПРИЕМА $ iptables -A INPUT -p tcp --dport 995 -j ПРИЕМА $ iptables -A INPUT -p tcp --dport 143 -j ПРИЕМА $ iptables -A INPUT -p tcp --dport 993 -j ПРИЕМАНЕ
И не забравяйте за SMTP порта.

$ iptables -A INPUT -p tcp --dport 25 -j ПРИЕМАНЕ
След това запазете правилата. Ако искате освежаване на спецификата на работата с iptables в Linux, разгледайте