Грамотне та швидке налаштування поштового сервера. Поштовий сервер на Linux.

Доброго вам дня!

Огляд, встановлення та налаштування чудового пакету iRedMail на базі Debian Lenny.

iRedMail- це:

1) Повноцінний поштовий сервер.
2) Працює під керуванням Red Hat Enterprise Linux (5.x), CentOS (5.x), Debian(5.0.x), Ubuntu (8.04, 9.04, 9.10), FreeBSD (7.x, 8.0).
3) Працює як і звичайній системі, і під управлінням віртуальної машини: пр. VMware, OpenVZ, Xen.
4) Підтримка архітектур i386 та x86_64.
5) Використовує для встановлення та налаштування сумісні компоненти, такі як Postfix, Dovecot, SpamAssassin і т.д.
6) Під час встановлення використовує бінарні пакети з вашого дистрибутива.
7) Проект із відкритим вихідним кодом, що розповсюджується під ліцензією GPL v2.
8) Підтримка двох бекендів для зберігання віртуальних доменів та користувачів: OpenLDAP та MySQL.
9) Безлімітна кількість підтримки доменів, користувачів, поштових аліасів.
10) Підтримка двох Web-інтерфейсів (RoundCube та SquirrelMail).

Цей пакет дуже зручний у налаштуванні та установці.

1) Зручний цей пакет у тому, що:
а. Не треба багато знань, тобто. процес установки та налаштування зовсім не складний.
б. Потребує мінімум часу на розворот корпоративної пошти. Я витратив на встановлення цієї збірки буквально 20 хвилин.
в. У комплекті йде весь необхідний софт для поштового сервера. (Антивірус, Антиспам, 2 Web-інтерфейсу (на вибір)

2) Аналогів даного пакетуне існує.

Схема роботи iRedMail:

Анти-спам та анти-вірус.
Як антиспам і антивірус виступають 2 популярні пакети, це SpamAssassin і ClamAV

Що підтримує iRedMail для захисту пошти:
1. Підтримка SPF (Sender Policy Framework).
2. Підтримка DomainKeys Identified Mail (DKIM).
3. Підтримка Greylist.
4. Підтримка «Білих списків» (на підставі DNS імені та IP-адреси)
5. Підтримка «Чорних списків» (на основі DNS імені та IP-адреси)
6. Підтримка "Чорного списку" HELO запитів.
7. Підтримка HPR (HELO Randomization Prevention)
8. Підтримка Spamtrap.
9. Інтерграція SpamAssassin
10. Інтеграція ClamAV, автооновлення вірусних баз.

Підтримка поштових клієнтів:

Поштові клієнти з підтримкою POP3/POP3S та IMAP/IMAPS. Haприклад: Mozilla Thunderbird, Microsoft Outlook, Sylpheed.

Встановлення iRedMail.

Як поштовий сервер я вибрав iRedMail. Це збірка Postfix+LDAP(MySQL)+SpamAssassin+ClamAV+AmaViS+Dovecot+RoundCube (SquirrelMail) тощо. У цій статті ми розглядатимемо налаштування цього чудового сервера на базі OpenLDAP.

Увага! Не забудьте змінити example.com на ім'я вашого домену.

Трохи виправимо наше ім'я хоста:
vi /etc/hosts

127.0.0.1 mail.example.com localhost localhost.localdomain

Vi /etc/hostname
mail.example.com

Зберігаємо зміни командою:
/etc/init.d/hostname.sh start

Перевіримо FQDN ім'я хоста:
hostname -f

Вся установка провадиться під користувачем root!

Завантажуємо в директорію /tmp цей файл:

Cd /tmp && wget iredmail.googlecode.com/files/iRedMail-0.6.0.tar.bz2

Встановимо архіватор:
apt-get install bzip2

Потрібно розпакувати цей архів:
tar -xvjf iRedMail-0.6.0.tar.bz2

Переходимо в директорію /tmp/iRedMail-0.6.0/pkgs/ і запускаємо інсталяційний скрипт:
bash get_all.sh

Піде завантаження необхідних пакетів.
Для роботи dovecot потрібно встановити Candidate версію пакета. З іншого працювати не буде!
apt-cache policy dovecot-common dovecot-pop3d dovecot-imapd | grep "Candidate"
Команда віддасть пустий результат.

Переходимо до директорії настановного скрипту:
cd /tmp/iRedMail-0.6.0/

Запускаємо настановний скрипт:
bash iRedMail.sh
З'явиться вікно інсталятора:


Вибираємо шлях, де зберігатиметься вся наша пошта:


Вибираємо бекенд для нашого сервера. Підтримуються MySQL та OpenLDAP. Ми оберемо OpenLDAP:


Суфікс LDAP для нашого сервера додається так: dc=example,dc=com


Введемо пароль для адміністратора сервера LDAP. Обліковий запис адміністратора за умовчанням знаходиться у /etc/ldap/slapd.conf. Зазвичай це: cn=Manager,dc=example,dc=com


Вводимо ім'я нашого домену:

Вводимо пароль адміністратора (postmaster):


Перший користувач, який буде створений, це користувач: [email protected]. Нам потрібно придумати для нього пароль:


Включаємо перевірку SPF та функцію перевірки DKIM:


Ставимо дод. компоненти:


Зробимо аліас для користувача root:


Конфігурація завершена.
Виникає повідомлення.

Сьогодні, коли електронна пошта є основою для бізнес-процесів, компаніям потрібна надійна і високопродуктивна поштова система, яка б захищала від вірусів і спаму, вміла авторизувати користувачів, шифрувати трафік і пропонувала безліч зручних функцій. Подані рішення дозволяють досягти такого результату, витративши мінімум зусиль.

iRedMail

Назва: iRedMail

Ліцензія: GNU GPL

Платформа:*nix

Поштові сервери на *nix підкуповують своєю відкритістю, продуктивністю та захищеністю, але для новачка розгортання з нуля і подальше супроводження може перетворитися на справжній кошмар. Проект iRedMail має на меті вирішити цю проблему. По суті, дана розробкає набір скриптів і готових конфігів, що спрощують процес розгортання і початкового налаштуванняпоштового сервера на базі Postfix/Dovecot із підтримкою протоколів SMTP, POP3 та IMAP. Після запуску скрипт сам скачає та встановить потрібні пакети, створить перший віртуальний домен (задавши мінімум запитань) з адміністратором та користувачем. Сам процес розгортання займає хвилин десять, після чого вже можна буде надсилати та отримувати пошту. Читати документацію та копатися в налаштуваннях не доведеться, не знадобиться і специфічних знань *nix. Облікові записи можна зберігати в OpenLDAP або MySQL, що вибирається на етапі установки. Далі можна створювати будь-яку кількість доменів, поштових скриньок та аліасів, тобто обмежень ніяких немає. Для захисту пошти від вірусів та спаму будуть автоматично встановлені SpamAssassin та ClamAV, а також інструменти, що забезпечують підтримку технологій SPF (Sender Policy Framework), DKIM (DomainKeys Identified Mail), HPR (HELO Randomization Prevention), Spamtrap та білі, чорні, сірі списки . Для блокування спроб перебору пароля ставиться iptables Fail2ban. Проект пропонує свою розробку iRedAPD (Access Policy Delegation), що дозволяє управляти політиками Postfix, делегуючи повноваження користувачів. Управління здійснюється за допомогою веб-інтерфейсу Roundcube WebMail, паралельно будуть встановлені засоби керування сервісами phpLDAPadmin, PostfixAdmin, phpMyAdmin та аналізатор логів AWStats для перегляду статистики. Доступний також локалізований інтерфейс адміністратора власної розробки – iRedAdmin, у двох версіях: безкоштовна Open Source та комерційна iRedAdmin-Pro. Перша дозволяє керувати лише обліковими записами та доменами, друга вирішує всі питання щодо адміністрування поштової системи. Усі компоненти ставляться однією «чистий» сервер; якщо вже працює MySQL, до нього можна підключитися, тільки якщо виконати необхідні налаштування вручну (вимагає деякого досвіду).

Підтримується інсталяція на i386/x86_64 версії Red Hat Enterprise Linux, CentOS, Gentoo Linux, Debian, Ubuntu, openSUSE та Open/FreeBSD. На сайті проекту є кілька посібників, які допомагають швидко зорієнтуватися.

IndiMail

Назва: IndiMail

Ліцензія: GNU GPL

Платформа:*nix

Платформа обміну повідомленнями за протоколами SMTP, IMAP, POP3, що підтримує QMQP, QMTP, DKIM та BATV (Bounce Address Tag Validation) та перевірку пошти на спам та віруси. Базується на декількох Open Source рішеннях: Qmail, Courier IMAP/POP3, serialmail (доставка пошти через комутовані з'єднання), qmailanalog (списки розсилки), dotforward, fastforward, mess822, daemontools, ucspi-tcp, Bogofilter, Fetchmail та інших. Надає набір інструментів для керування віртуальними доменами та обліковими записами користувачів власної розробки. Забезпечує маршрутизацію для SMTP, IMAP та POP3, що дозволяє розмістити поштовий домен на декількох серверах з обміном даними між ними або як проксі. Це дуже зручно, якщо організація складається з кількох віддалених офісів. Використовуючи утиліту hostcntrl, можна додати окремі адреси з інших доменів на обслуговування. Це дозволяє використовувати IndiMail у гетерогенному середовищі без необхідності підняття кількох доменів або під час переходу від пропрієтарного рішення. Декілька серверів із синхронізацією даних дозволяють легко нарощувати структуру. Щоб забезпечити кращу масштабованість та продуктивність, деякі компоненти були змінені (зокрема Qmail). В IndiMail використовується декілька так званих колекцій (queue collection), кожна з яких виконує свій процес qmail-send/qmail-todo і може зберігати дані на окремому харді. Така архітектура дозволяє обробляти запити швидше ніж оригінальний Qmail.

Розробники дають повну свободу в налаштуваннях, практично всі параметри можна перевизначити через змінні (а їх близько 200). Наприклад, змінна CONTROLDIR вказує на каталог із конфігураційними файлами, QUEUEDIR - каталог із чергами. Тобто можна запустити кілька копій IndiMail на одному сервері зі своїми налаштуваннями для кожної черги, відправника, отримувача та вузла. Але розумітися на всіх змінних необов'язково: щоб запустити IndiMail, знадобиться всього кілька правок. Новачки можуть керувати установками за допомогою меню FLASH (побудовано на Ncurses). Для зберігання даних про віртуальних користувачів використовується MySQL, адресні книги можуть зберігатися в OpenLDAP. Останні релізи повністю сумісні з системою. Багато уваги розробники приділяють безпеці як самого сервера, так і сервісів - мінімальне використання SETUID, чіткий поділ між програмами/адресами/файлами, п'ятирівневий trust partitioning, автоматичне розпізнавання локальних IP, access-list, tcprules, фільтр контенту, TLS/SSL та багато іншого .

Встановити IndiMail можна на будь-якій 32/64 nix платформі. Для завантаження доступні вихідні тексти, пакети та репозиторії для деяких популярних дистрибутивів Linux (RHEL/CentOS 5/6, Fedora, OpenSUSE/SLE, Mandriva, Debian та Ubuntu). Для керування сервером пропонується близько 45 програм різного призначення (більшість розташована в /var/indimail/bin), облікові записи можна також налаштовувати за допомогою веб-інтерфейсу iWebAdmin (побудований на QmailAdmin), який потрібно встановлювати окремо.

Rumble

Назва: Rumble

Ліцензія: GNU GPL

Платформа:*nix, Win



Поштовий сервер, що підтримує SMTP (ESMTPSA), POP3 та IMAP. Дуже простий в управлінні, адміністрування використовується веб-інтерфейс. Цілком підходить для невеликих організацій з кількома доменами. Написаний на C/C++, для сценаріїв пропонується свій API (Lua та C/C++). Архітектура дозволяє збільшувати продуктивність сервера за рахунок кластеризації серверів для одного або всіх доменів. Підтримує SSL/TLS, SQLite та MySQL, аутентифікацію (MD5/PLAIN/STARTTLS), для захисту від спаму включені модулі white/grey/blacklist, SpamAssassin, технології BATV та VERP (Variable Envelope Return Path). У налаштуваннях передбачена можливість обмежити максимальний розмірповідомлення.

На сайті доступні вихідні коди та x86/x64-бінарники для встановлення на Linux (Generic, Ubuntu, Debian). Щоб запустити сервер, потрібно розпакувати архів і виконати скрипт, все інше програма зробить сама. Для зручності вихідні тексти та конфігураційні файли можна розподілити за відповідними каталогами та забезпечити автозавантаження під час старту ОС. Параметри сервера та модулі підключаються до файлу rumble.conf. Для можливості реєстрації через веб-інтерфейс (порт 2580) слід видалити автоматично створений файл modules/rumblelua/auth.cfg (в ньому міститься пароль адміна), після чого відкриваємо веб-браузер та вказуємо Новий пароль. Тепер можна керувати доменами, обліковими записами та поштовими скриньками, налаштуваннями сервера, переглядати логи та статистику.

За замовчуванням як база даних використовується SQLite, якщо його можливостей не вистачає або в організації вже працює MySQL, то можна легко переключити сервер для роботи з цією СУБД.

Для адміністрування сервера використовується три рівні - адміністратор сервера, адміністратор домену та користувач. Інтерфейс адміністратора сервера дозволяє лише створювати та видаляти домени, плюс доступний ряд специфічних налаштувань. Створивши домен, у меню RumbleLua User потрібно додати новий акаунтта вказати в його налаштуваннях цей домен. Це і буде адміністратор домену, який після реєстрації в системі отримує можливість створювати поштові скриньки, аліаси, прив'язувати адресу до модуля, задавати програму, яка буде запущена при отриманні листа на певну адресу та налаштовувати релей. Інтерфейс не локалізований, хоча все дуже просто та зрозуміло.

Zentyal - поштовик із коробки

Початківцям, яких лякає саме слово Linux та необхідність введення команд у терміналі, потрібне просте рішення, що дозволяє швидко та без читання документації розгорнути поштовий сервіс. Як варіант тут можна порадити Zentyal – спеціалізований дистрибутив, побудований на базі Ubuntu Server(останній реліз заснований на Ubuntu 12.04 LTS) і дозволяє виконати все необхідні установкита налаштування за допомогою графічного інтерфейсу. Zentyal - дистрибутив широкого призначення, який може використовуватися як роутер з функціями UTM, офісний сервер або сервер повідомлень. Усе необхідні функціїреалізуються за допомогою модулів/пакетів, що встановлюються. В даний час доступно більше тридцяти модулів із п'яти категорій, які додаються одним клацанням. Zentyal може встановлюватися як самостійний сервер, використовуючи свою базу користувачів, або працювати у зв'язці master/slave з можливістю реплікації між кількома серверами та синхронізації облікових даних з LDAP/AD.

Axigen

Назва: Axigen

Ліцензія: GNU GPL

Платформа: Linux, FreeBSD, Solaris, Windows



Багатофункціональний, швидкий, захищений поштовий сервер (SMTP/POP3/IMAP) з функціями спільної праці, календарем, списком завдань та нотатками, що розробляється румунською компанією Gecad Technologies. Працювати з повідомленнями користувачі можуть через поштовий клієнт або за допомогою локалізованого (і навіть симпатичного) веб-інтерфейсу, побудованого із застосуванням технології Ajax, - його можна повністю підігнати під себе. Підтримуються гарячі клавіші, що ще більше посилює відчуття роботи зі звичайним настільним додатком. У налаштуваннях доступні: збір пошти з зовнішніх ящиків, автовідповідач, фільтр пошти, встановлення псевдонімів та інше. Користувач також може експортувати/імпортувати контакти у файл формату CSV для перенесення до інших програм. Крім стандартного, пропонується і спрощений для мобільних пристроївінтерфейс, підтримка ActiveSync для синхронізації повідомлень, контактів та календаря. Як доповнення встановлюється розширення для роботи із загальними папками.

Адміністрація виконується за допомогою командного рядкаабо через веб-модуль (працює на 9000 порту), зрозумілий навіть новачкові. При цьому тонко делегуються іншим користувачам певні права налаштувань.

Можлива інтеграція з LDAP-сервером (у документації описані OpenLDAP та eDirectory) або Active Directory, для цього слід встановити спеціальні схеми розширення. Реалізовані модулі резервування та відновлення інформації, списки розсилки, підтримка кластера та балансування навантаження, MAPI-інтерфейс, РOP3- та IMAP-проксі. Сервер може обслуговувати кілька доменів з різними параметрами. У документації описано як інтегрувати IM-сервіс, побудований на основі Jabber/XMPP. Крім цього, Axigen має розвинену систему звітів із виведенням різноманітних графіків, всього підготовлено близько ста шаблонів. Для захисту інформації можна використовувати TLS/SSL, підтримуються всі популярні механізми аутентифікації: plain, login, cram-md5, digest-md5 тощо. Можлива інтеграція з п'ятнадцятьма рішеннями для боротьби з вірусами (Kaspersky, DrWeb, Symantec, ClamAV та інші) та спамом (включаючи SpamAssassin). Підтримуються технології SPF, DKIM, чорний/сірий/білий списки та фільтрація по IP/країні відправника. Все це підключається буквально одним клацанням мишки з інтерфейсу адміністратора. Можливий обмін даними між Axigen та MS Outlook, для цього необхідно встановити конектор.

Великим плюсом Axigen є можливість роботи сервера на кількох ОС. На сторінці завантаження доступні пакети для Debian, Red Hat Enterprise Linux та CentOS 5/6, SUSE Linux Enterprise 10/11, Fedora 12 та 13, OpenSUSE 11.2 та 11.3, FreeBSD 7.x/8.x, Solaris 10 x86/SPARC та Win2k3/2k8 (x86/x64). Також підготовлені Virtuozzo – контейнери для швидкого розгортання у віртуальних середовищах. Установка дуже проста і проводиться за допомогою GUI-інтерфейсу, в якому потрібно вибрати сервіси, встановити порти і вказати мережні інтерфейси для підключень користувачів і адмінів. При належній вправності весь процес займе не більше 10-15 хвилин. На сайті проекту можна знайти докладну документацію та кілька відеороликів, в яких показано процес встановлення та адміністрування. Крім цього, доступні демоінтерфейси користувача та адміністратора. Версія Axigen Free Mail Server (Office Edition) надається безкоштовно та дозволяє обслуговувати до ста облікових записів e-mail та п'ять календарів.

CommuniGate Pro

Назва: CommuniGate Pro

Ліцензія: Free/платна

Платформа:*nix, Windows, Mac OS X



Популярна платформа для обміну електронною поштою, IM, VoIP, з функціями календаря та автоматизацією спільної роботи. Наприклад, VoIP забезпечує передачу голосу/відео та забезпечує такі можливості, як конференції, автосекретар (IVR), автоматичний розподіл дзвінків, керування чергами дзвінків, голосова пошта. При цьому CommuniGate підтримує установку на велику кількість ОС та архітектур (загалом близько тридцяти), IPv4 та IPv6, стандартні протоколи SMTP, SIP, IMAP, XMPP, LDAP, RADIUS, XIMSS, CalDAV, WebDAV, MAPI та інші. Прикордонний контролер сесій (Session Border Controller) забезпечує коректну роботу через пристрої NAT. LDAP-сервер, що входить до складу CGP, може використовуватися й іншими додатками. Ви можете синхронізувати дані з BlackBerry за допомогою AirSync (ліцензія на кожен пристрій купується окремо). Менеджер розсилок дозволяє автоматизувати розсилку новин із можливістю самостійної підписки користувачем. Розсилка створюється адміністратором, надалі керується одним із користувачів сервера.

Користувачі можуть підключитися через будь-яку програму-клієнт, яка підтримує ці протоколи, або локалізований веб-інтерфейс. Причому веб-інтерфейс дуже просто налаштувати таким чином, що він набуває вигляду звичайного поштового клієнта(щоб юзвері менше плуталися). Також можливе використання спрощеного інтерфейсу для економії трафіку при роботі з PDA та доступ за протоколом WAP з мобільних телефонів. Викликати користувача для розмови через VoIP можна одним клацанням із веб-клієнта або адресної книги. Адміністратор в установках встановлює доступні користувачеві функції - сортування та пересилання пошти, автовідповідач, завантаження листів із зовнішніх POP3-ящиків, список контактів, завдань та календар.

Налаштування дозволяють користувачеві відкрити доступ до своєї скриньки або окремих папок іншим користувачам сервера. Це корисно, коли в організації має бути заведена службова обліковий записдля зв'язку з клієнтами, яку використовують кілька людей.

Один сервер може обслуговувати кілька доменів. Вузли кластера здатні обробляти тільки певний видтрафіку (наприклад, регіоном), для розподілу запитів використовується технологія SIP Farm. Рішення легко масштабується до будь-яких розмірів. До речі, на CommuniGate Pro побудовано мережу IP-телефонії оператора SIPNET.

Можлива автентифікація користувача за допомогою внутрішньої бази даних, Active Directory або зовнішньої програми, у тому числі підтримуються сертифікати клієнта. У налаштуваннях можна вказати IP-адреси, з яких дозволено або заборонено підключення клієнтів. Вся інформація, що зберігається на сервері та передана між клієнтом та сервером, може бути зашифрована за допомогою технологій SSL, TLS, S/MIME та інших.

Відкриті API спрощують інтеграцію із системами білінгу та управління. Підтримка плагінів дозволяє підключати рішення сторонніх виробників для фільтрації спаму та вірусів. У цей час підтримується інтеграція з рішеннями від Касперського, Sophos, McAfee, MailShell, Cloudmark.

Реалізовані та стандартні засоби захисту - перевірка зворотної адресивідправника, підтримка DNSBL (RBL), заборона отримання пошти з певних IP-адрес та мереж, перевірка певного рядка в заголовку або тілі листа. Встановлення в будь-якій ОС нескладна, по суті, потрібно лише розпакувати архів та запустити сервер. Усі налаштування сервера, доменів та облікових записів виконуються за допомогою веб-інтерфейсу (працює на 8010-му порту, після запуску потрібно підключитися до нього протягом десяти хвилин і задати пароль адміністратора). Система прав дозволяє делегувати адміністрування домену іншим користувачам, вказавши лише ті функції, які дійсно необхідні.

В даний час є кілька версій сервера, які відрізняються ліцензіями. Безкоштовно пропонується Community Edition, де активно п'ять акаунтів, за плату пропонуються Corporate Edition і Service Provider з додатковими функціями.

WARNING

Після першого запуску CommuniGate Pro необхідно протягом десяти хвилин підключитися до порту 8010 та задати пароль адміністратора.

Висновок

Розгорнути поштовий сервер за допомогою описаних рішень не так вже й складно, залежно від досвіду адміну та кількості налаштувань на запуск піде від сили півгодини. На якому конкретно рішенні зупинитись, вибирати тобі. Для організації середнього розміру відмінно підійдуть iRedMail, Axigen та Rumble; у тому випадку, коли компанія складається з кількох територіально віддалених офісів, слід придивитися до Axigen, IndiMail та CommuniGate Pro. Останній також забезпечує VoIP.

Для правильної роботипоштового сервера важливо мати правильно налаштовану зону DNS. Ми вже стосувалися деяких аспектів, пов'язаних із системою DNS, сьогодні ми зупинимося на цьому питанні більш докладно. Налаштування DNS зони відноситься до підготовчих операцій перед розгортанням поштового сервера і від неї залежить працездатність системи електронної пошти.

Неправильні налаштуванняздатні призвести до того, що пошту буде неможливо доставити вашому поштовому серверу або сервера одержувачів будуть відхиляти вашу пошту. Справді, якщо записи вашої зони не містять відомостей про поштовий сервер, куди має надсилатися пошта? На село дідусеві? Можна, звичайно, попросити налаштувати зону DNS вашого провайдера, але краще зробити це самим.

Що нам знадобиться? Виділена IP-адреса (припустимо 11.22.33.44), яку ви повинні отримати у свого провайдера. Доменне ім'я (наприклад, example.com), його можна зареєструвати у будь-якого реєстратора або їхнього партнера. При реєстрації у партнера уточнюйте, чи він надає доступ до управління DNS зоною, інакше доведеться витратити додатковий час, нерви та гроші на перенесення домену до реєстратора.

Якщо у вас вже є домен і, швидше за все, на ньому функціонує сайт, уточніть, чи можливе керування DNS зоною з панелі хостинг провайдера, інакше краще перенести домен до реєстратора, для цього зверніться до підтримки провайдера.

Тож домен у нас є. Які записи містить його зона DNS? По-перше, це SOA запис - опис зони. Ми не будемо докладно розбирати всі записи, це виходить за межі нашої статті, але мати загальне уявлення про них необхідно. Також повинні бути два NS записи, що вказують на сервер імен ( DNS сервера) що обслуговують даний домен, це будуть сервери реєстратора або хостинг провайдера.

Першим записом, який необхідно додати, буде A запис або запис імені. Вона повинна вказувати на IP-адресу вашого сервера, якщо ви вирішите обслуговувати всі запити до домену у себе або на адресу IP хостинг провайдера, якщо вирішите розмістити свій сайт на хостингу. При розміщенні сайту у хостера домен зазвичай делегується на його DNS сервері (прописуються відповідні NS записи) і A запис буде зроблено автоматично при паркуванні домену.

Найчастіше зустрічається цей варіант, але при необхідності ви завжди зможете створити запис A самі. Цей записмає вигляд

Example.com. IN A 22.11.33.44

У нашому прикладі 22.11.33.44 адреса нашого хостинг-провайдера, у якого розташований сайт. Зверніть увагу на точку в кінці імені, це вказує, що ім'я абсолютне, за відсутності точки ім'я вважається відносним і до нього додається доменне ім'яіз SOA. Перевірити запис можна командою nslookup.

Для роботи поштового сервера потрібно створити запис MX, який повинен вказувати на наш поштовий сервер. Для цього створимо запис:

Example.com. IN MX 10 mail.example.com.

Також можна написати просто:

Example.com. IN MX 10 mail

Таке ім'я (без точки на кінці) example.com буде додано автоматично. Цифра 10 визначає пріоритет сервера, що вона менше, тим вищий пріоритет. До речі, DNS зона вже може містити запис MX MX:

Example.com. IN MX 0 example.com

Зазвичай цей запис автоматично створюється хостинг-провайдером при розміщенні сайту, його потрібно видалити.

Тепер створимо запис A для mail.example.com

Mail.example.com IN A 11.22.33.44

Тепер вся пошта для домену example.com надсилатиметься хосту mail, що має адресу 11.22.33.44, тобто. Вашому поштовому серверу, в той же час, сайт example.com продовжить працювати на сервері провайдера за адресою 22.11.33.44.
Може виникнути питання, а чому не можна відразу вказати в MX запис IP адресу поштового сервера? В принципі, деякі так і роблять, але це не відповідає специфікаціям DNS.

Також можна зробити аліаси для поштового сервера типу pop.example.ruі smtp.example.ru. Для чого це треба? Це дозволить клієнту не залежати від особливостей вашої інфраструктури, один раз прописавши налаштування. Допустимо, що ваша компанія розрослася і виділила для обслуговування зовнішніх клієнтів окремий поштовий сервер mail1, все, що вам знадобиться, це змінити два DNS записи, клієнти і не помітять того, що працюють з новим сервером. Для створення аліасів використовуються записи типу CNAME:

Pop IN CNAME mail.example.com.
smtp IN CNAME mail.example.com.

На цьому налаштування прямої DNS зони можна вважати закінченою, залишається найцікавіше – зворотна зона. Зворотна зона управляється провайдером, який видав вам IP адресу і самостійно керувати нею ви не можете (якщо тільки ви не власник блоку IP адрес). Але додати щонайменше один запис у зворотну зону необхідно. Як ми писали в минулій статті, багато поштових серверів перевіряють PTR записи (записи зворотної зони) для відправляючого сервера і за їх відсутності або розбіжності з доменом відправника такий лист буде відхилено. Тому попросіть провайдера додати вам запис виду:

44.33.22.11.in-addr.arpa. IN PTR mail.example.com.

Трохи дивний вигляд, чи не так? Розберемо структуру PTR записи докладніше. Для перетворення імен використовується спеціальний домен верхнього рівня in-addr.arpa. Це зроблено для того, щоб використовувати для прямого та зворотного перетворення імен ті самі програмні механізми. Справа в тому, що менімонічні імена пишуться зліва направо, а IP адреси праворуч наліво. Так mail.example.com. означає, що хост mail знаходиться в домені example, який знаходиться в домені верхнього рівня com. що належить мережі 11. Для збереження єдиного порядку запису PTR містять IP адресу "задом наперед" доповнений доменом верхнього рівня in-addr.arpa.

Перевірити MX та PTR записи також можна командою nslookupвикористовуючи додатковий параметр -type=MXабо -type=PTR

Ну і звичайно не варто забувати, що будь-які зміни в DNS зонах відбуваються не миттєво, а протягом кількох годин або навіть доби, необхідних для поширення змін у світовій системі DNS. Це означає, що незважаючи на те, що поштовий сервер у вас почне працювати через 2 години після внесення змін, ваш партнер пошта може не відправлятися до вас протягом більш тривалого часу.

Багато користувачів Убунт використовують систему не тільки для домашніх потреб. Такий підхід цілком виправданий, адже на Linux-системах набагато зручніше займатися програмуванням, створенням серверів та веб-сайтів. Одна із зручностей - створення сервера електронної пошти. Для новачків ця задача здасться дуже важкою, проте якщо ви розберетеся, як встановити і налаштувати поштовий сервер для Ubuntu, завдання вже не здасться вам таким вже важким.

Як настроїти поштовий сервер на базі Ubuntu.

Перед конкретними інструкціями та бродіння за кодом не обійтися без частки теоретичного матеріалу. Важливо розуміти, що таке сервер електронної пошти та як він працює.

Налаштований поштовий сервер, якщо говорити дуже просто - це листоноша, який отримує «лист» від одного поштового клієнта і віддає іншому. У цьому вся суть роботи цього програмного забезпечення. Поштовий сервер потрібний не лише для надсилання електронної пошти. На сайтах він відповідає за реєстрацію користувачів, передачу форм, що заповнюються, та інші важливі дії, без яких сайт став би подобою книги, на яку можна тільки дивитися, перегортаючи сторінки, а ось щось зробити важко.

Поштові сервери на Linux суттєво відрізняються від них на Windows та інших системах. На Вінді це вже готова закрита програма, Якою залишається тільки почати користуватися. Дистрибутиви Лінукса ж передбачають самостійне налаштування всіх компонентів. Причому сервер буде в результаті складатися не з однієї програми, а з кількох. Ми будемо використовувати Postfix у поєднанні з Dovecot та MySQL.


Чому Postfix?

На Убунту існує кілька поштових клієнтів, але все ж таки ми вибрали саме цей. Налаштування 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: для доменів, користувачів і для так званих Alias ​​- псевдонімів або додаткових поштових скриньок користувача . Тут ми не будемо докладно розбирати налаштування бази даних MySQL.

Назвемо базу даних examplemail. Створюємо базу з таким ім'ям:

mysqladmin -p create servermail

Логін у MySQL:


Потім вводимо пароль. Якщо все зроблено правильно, то буде такий запис у терміналі:

Створимо нового користувача спеціально для входу до мережі:

mysql > GRANT SELECT ON examplemail.* TO 'usermail'@'127.0.0.1' IDENTIFIED BY 'password';

Тепер перезавантажуємо MySQL, щоб переконатися, що всі зміни були успішними.

Використовуємо нашу базу даних, щоб потім створювати її основі таблиці:

mysql> USE examplemail;

Створюємо таблицю для доменів:

CREATE TABLE `virtual_domains` (
`name` VARCHAR(50) NOT NULL,
PRIMARY KEY (`id`)

Створимо таблицю для користувачів:

CREATE TABLE `virtual_users` (
`id` INT NOT NULL AUTO_INCREMENT,
`domain_id` INT NOT NULL,
`password` VARCHAR(106) NOT NULL,
`email` VARCHAR(120) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`),
) ENGINE = InnoDB DEFAULT CHARSET = utf8;

Тут, як бачите, додані email та пароль. А кожен юзер прив'язаний до домену.

Нарешті, створюємо таблицю під псевдоніми:

CREATE TABLE `virtual_aliases` (
`id` INT NOT NULL AUTO_INCREMENT,
`domain_id` INT NOT NULL,
`source` varchar(100) NOT NULL,
`destination` varchar(100) NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE = InnoDB DEFAULT CHARSET = utf8;

Ми успішно налаштували MySQL та створили три необхідні таблиці. Тепер потрібно розібратися з доменами та мейлами.


Домени, адреси електронної пошти та псевдоніми

Додамо наш домен до таблиці з доменами. Туди ж необхідно занести FDQN:

INSERT INTO `examplemail`.`virtual_domains`
(`id`, `name`)
VALUES
('1', 'primer.ru'),
('2', 'namehost.primer.ru');

Додамо дані про електронною адресоюу таблицю користувачів:

INSERT INTO `examplemail`.`virtual_users`
(`id`, `domain_id`, `password`, `email`)
VALUES
('1', '1', ENCRYPT('firstpassword', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), ' [email protected]’),
('2', '1', ENCRYPT('secondpassword', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), ' [email protected]’);

Тепер додамо інформацію до останньої таблиці:

INSERT INTO `examplemail`.`virtual_aliases`
(`id`, `domain_id`, `source`, `destination`)
VALUES
(‘1’, ‘1’, ‘[email protected]’, ’[email protected]’);

Закриваємо MySQL:

Налаштування Postfix

Переходимо безпосередньо до параметрів Postfix. Нам потрібно, щоб поштовий клієнт міг відправляти повідомлення від імені введених у базу користувачів та обробляв з'єднання SMTP. Для початку створимо бекап конфігураційного файлу, щоб у разі чого можна було повернутися до стандартних налаштувань:

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

Тепер відкриваємо файл із конфігураціями:

nano /etc/postfix/main.cf

Замість nano ви можете використовувати будь-який зручний для вас текстовий редактор.

Прокоментуємо параметри TLS, а також додамо інші. Тут використані безкоштовні SSL:

# TLS parameters
#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=yes
#smtpd_tls_session_cache_database = btree:$(data_directory)/smtpd_scache
#smtp_tls_session_cache_database = btree:$(data_directory)/smtp_scache
smtpd_tls_cert_file=/etc/ssl/certs/dovecot.pem
smtpd_tls_key_file=/etc/ssl/private/dovecot.pem
smtpd_use_tls=yes
smtpd_tls_auth_only = yes


Після цього додамо ще низку параметрів:

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
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:private/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

Додаємо до нього ці значення:

user = usermail
password = mailpassword
hosts = 127.0.0.1
dbname = examplemail
query = SELECT 1 FROM virtual_domains WHERE name='%s'


Перезапускаємо Postfix:

service postfix restart

Тестуємо домен для Постфікс:

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

Створюємо ще один файл:

nano /etc/postfix/mysql-virtual-mailbox-maps.cf
user = usermail
password = mailpassword
hosts = 127.0.0.1
dbname = examplemail
query = SELECT 1 FROM virtual_users WHERE email='%s'

Перезавантажуємо Постфікс:

service postfix restart

Потім знову перевіряємо Postfix:

postmap -q [email protected] mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf

Якщо все зроблено правильно, має виводитися

Створюємо останній файл- для псевдонімів:

nano /etc/postfix/mysql-virtual-alias-maps.cf
user = usermail
password = mailpassword
hosts = 127.0.0.1
dbname = examplemail
query = SELECT destination FROM virtual_aliases WHERE source='%s'

service postfix restart


Востаннє тестуємо:

postmap -q [email protected] 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
protocols = 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 = mail

Перевіряємо доступ. Вводимо команду:

Доступ має виглядати так:

drwxrwsr-x 3 root vmail 4096 Jan 24 21:23 /var/mail

Створюємо папку для кожного зареєстрованого домену:

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 = yes

Змінюємо наступний параметр:

Електронна пошта - сервіс, що дозволяє обмінюватись через комп'ютерну мережу електронними повідомленнями.

Основна особливість електронної пошти полягає в тому, що інформація відправляється одержувачу не безпосередньо, а через проміжну ланку - електронну поштову скриньку, яка є місцем на сервері, де повідомлення зберігається, поки його не запитає одержувач.

Поштовий сервер – це комп'ютерна програма , призначена для організації електронної пошти між комп'ютерами. Основними його функціями є прийом листів від клієнтів та доставка їх адресатам. Як клієнти можуть виступати як користувачі (програмою - клієнтом електронної пошти), і інші поштові сервера.

Користувачі, за допомогою програми - поштового клієнта (Outlook Express, Thunderbird та ін.), можуть створювати листи, надсилати їх на сервер та забирати пошту зі своїх поштових скриньок на сервері.

Спілкування сервера та клієнта відбувається за спеціальними поштовими протоколами - Simple Mail Transfer Protocol (SMTP) - при передачі листів на сервер та Post Office Protocol v.3 (POP3) - при прийомі листів з поштової скриньки. Підключення клієнтів до сервера відбувається через певні порти. Для SMTP стандартним є порт 25, для POP3 – порт 110.

Існують різні поштові сервери. Як приклад розглянемо встановлення та налаштування поштового сервера Courier Mail Server.

Courier Mail Server – це поштовий сервер (сервер електронної пошти) під Windows для локальних мереж. Він допоможе вам швидко організувати обмін електронною поштою у локальної мережіта в Інтернеті. Courier Mail Server не потребує встановлення в системі. Достатньо завантажити архів із програмою та розпакувати її в будь-яку папку на жорсткому диску комп'ютера, який працюватиме як поштовий сервер.

Біс платну версію Courier Mail Server 1.56 ви можете завантажити з сайту http://courierms.narod.ru/. Більш функціональну Courier Mail Server 2.05, але вже платну версію (1650 руб. за 10 поштових скриньок, обмеження демо-версії – лише 3 поштові скриньки), можна знайти на сайті http://www.courierms.ru/.

У цьому прикладі ми будемо налаштовувати і використовувати безкоштовну версію поштового сервера Courier Mail Server 1.56.

Переваги Courier Mail Server 1.56:

  • безкоштовність
  • простота встановлення та видалення
  • компактність
  • легкість адміністрування
  • мале споживання системних ресурсів
  • багатопоточність
  • зручна графічна оболонка
  • російськомовний інтерфейс та документація
  • підтримка необмеженої кількості поштових скриньок

Програма працює під керуванням Windows 9x/ME/NT/2000/XP. Налаштування програми досить просте і доступне звичайному користувачеві.

Примітка: у прикладі всі комп'ютери мережі працюють під керуванням Windows XP. Усі комп'ютери в мережі однакові (немає виділених комп'ютерів-серверів). Комп'ютер вчителя має ім'я server, комп'ютери учнів PC01, PC02 і т.д. Усе програмне забезпечення, що розглядається в цьому розділі, ставиться в папку C: MyServers usr local. Якщо у вас комп'ютери мають інші імена (а це швидше за все так:)), враховуйте це при налаштуванні ПЗ. Також ви можете вибрати і другу папку для встановлення програми.

CMS поставляється у вигляді zip-архіву, що містить файл і документацію. Для встановлення сервера створіть папку, в якій він функціонуватиме, вийміть файли з архіву в цю папку і запустіть програму CourierMS.exe.


При першому запуску сервер усередині своєї папки автоматично створить необхідні для його роботи підпапки та файли. За межами своєї папки сервер не робить жодних змін. Системний реєстр Windowsзмінюється лише під час реєстрації як служба.

Courier Mail Server може запускатися як стандартний додаток, а також як служби Windows. Щоб запустити службу Windows, запустіть CMS і в меню Налаштування виберіть команду Запускатися службою. При цьому відбудеться реєстрація служби Courier Mail Server у системі.

Якщо запуск відбувся нормально, на екрані з'явиться головне вікно сервера, а в системному лотку (System Tray) поряд із годинником – його значок .

Якщо у головному вікні з'явилися повідомлення про запуск SMTP та POP3 серверів і немає повідомлень про помилки, можете розпочати налаштування сервера.

Наступний етап налаштування поштового сервера зводиться до локальних доменів. Для цього зробіть подвійне клацанняза словом "домен" і відкриється вкладка для його налаштування. Введіть ім'я комп'ютера, де працюватиме поштовий сервер. У нашому прикладі це server.Якщо у вас є ім'я комп'ютера, наприклад pc11 , введіть це ім'я.

Будь-яка серверна програма передбачає введення користувачів, які нею обслуговуватимуться. Зробіть подвійне клацання по облікові записи і відкриється редактор облікових записів. Редактор облікових записів призначений для ведення списку локальних користувачів сервера. Під час створення облікового запису також створюється відповідна папка поштової скриньки. Якщо видалити обліковий запис, папка поштової скриньки буде видалена автоматично з усім вмістом. При першому запуску сервера автоматично створюється обліковий запис postmaster .


Створіть необхідна кількістьоблікових записів для користувачів. Достатньо створити по одному на кожен комп'ютер учня та вчителя, хоча можете створити кожному учневі готельний обліковий запис.

Кожен обліковий запис має такі параметри:

Реальне ім'я:ім'я власника поштової скриньки.

Ім'я поштової скриньки:найменування поштової скриньки. Воно є і ім'ям користувача при підключенні до сервера. У імені ящика не використовуйте російські літери та спеціальні символи, т.к. деякі поштові програмипрацюють із нею некоректно. Якщо ім'я скриньки pc 01, локальний домен server, то адреса електронної пошти даного користувача pc 01@server.

Пароль:пароль для підключення до сервера

Інші параметри ми не змінюватимемо.

У нас у класі 11 комп'ютерів (разом з учительським) тому ми створили 11 облікових записів.


Обмежити доступ до поштового сервера можна за допомогою IP-фільтра. Вкажіть той діапазон IP адрес доступ, яким дозволено. У нас це 192.168.1.1-192.168.1.11 (Про IP адреси та їх налаштування читайте в інших статтях цього).

У вашій школі цей діапазон може бути іншим, наприклад, який видав вам провайдер Інтернету (ну це вже інша стаття).

Ви запитаєте: "а як же його використовувати? Як надсилати та отримувати листи?". Відповідь проста. Листи ми надсилатимемо і одержуватимемо за допомогою програми - поштового клієнта (Outlook Express, Thunderbird та ін.). А про те, як це зробити, читайте в наступній статті: " ".