Ubuntu поштовий сервер (ubuntu mail server), шпаргалки адміна

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

По-перше, задайте собі питання а наскільки він потрібен вам?

якщо у вас до 50ти ящиків то дуже рекомендую скористатися поштою від гугла на своєму домені. я вже писав про цей спосіб.

Економія часу і нервів вам забезпечена !.

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

поїхали
Інтерпрітатора буде два, звичайна командний рядок (bash) і mysql

mysql: mysql gt;

Також всі команди будуть від root (зазвичай я запускаю sudo mc і тисну ctrl + o і так виходить консоль від root)

Встановлюємо необхідні пакети, також ставимо phpmyadmin для більш зручного управління базою + веб інтерфейс пошти

aptitude install postfix-mysql mysql-server dovecot-pop3d dovecot-imapd openssl phpmyadmin squirrelmail

Створюємо БД + таблиці можна як і з консолі, так і з phpmyadmin
Мені зручніше з phpmyadmin просто вводячи запити

mysql gt;
create database mailserver;
mysql gt;
grant all on mailserver. * To mailuser @ localhost identified by 'mailuserpasswd';
exit

Потім створіть таблиці в базі даних

Створюємо файли конфігурації для Postfix'a з інформацією про базу даних.

touch / etc / postfix / mysql-virtual-mailbox-domains.cf

user = mailuser
password = mailuserpasswd
hosts = 127.0.0.1
dbname = mailserver
query = SELECT 1 FROM virtual_domains WHERE name = '% s'

Цей запит вибирає віртуальні домени (так так наш поштовий сервер буде працювати на кілька доменів як реальних так і віртуальних)

Застосуємо конфігурацію postfix

postconf -e virtual_mailbox_domains = mysql: / etc / postfix / mysql-virtual-mailbox-domains.cf

Додамо в БД запис про перший віртуальному сервері example.com (не забуваємо поставити свій)

$ gt;
mysql - p mailserver
mysql gt;
INSERT INTO virtual_domains # 40; id. name # 41; VALUES # 40; 1. 'example.com' # 41; ;
exit

Перевіримо чи все вірно ми зробили

postmap -q example.com mysql: / etc / postfix / mysql-virtual-mailbox-domains.cf

З'явиться цифра 1 - значить все зроблено правильно.

Тепер створюємо користувачів, за них відповідатиме окрема група. створюємо її

$ gt;
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d / home / vmail -m

$ gt;
postconf -e virtual_uid_maps = static: 5000
$ gt;
postconf -e virtual_gid_maps = static: 5000

Створимо тестовий поштову скриньку, наприклад [email protected] з паролем johnpasswd

0. OK "Success.

У поштового сервера postfix є одна особливість - після запуску він працює в chroot оточенні, яке знаходиться в папці / var / spool / postfix /

Робиться це редагуванням файлу / etc / fstab.

/ Var / run / saslauthd / var / spool / postfix / var / run / saslauthd none rw, bind 0 0

Не забудьте поставити [Enter] після останнього рядка.
Створюємо каталог і монтуємо.

mkdir -p / var / spool / postfix / var / run / saslauthd
mount / var / run / saslauthd

smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_authenticated_header = yes
smtpd_sasl_application_name = smtpd

pwcheck_method: saslauthd
mech_list: PLAIN LOGIN

/ Etc / init.d / postfix restart
tail / var / log / mail.err
tail / var / log / mail.info
tail / var / log / mail.warn
tail / var / log / mail.log

Якщо все чисто, сухо і гладко - звернемося до утиліти telnet, для того, щоб підключитися до нашого сервера.

root @ proxy: / var / log # telnet localhost 25
Trying 127.0.0.1.
Connected to localhost.
Escape character is '^]'.
220 krasfun ESMTP Postfix # 40; Ubuntu # 41;
EHLO www.ru
250 -krasfun
250 -PIPELINING
250 -SIZE 10240000
250 -VRFY
250 -ETRN
250 -STARTTLS
250 -AUTH PLAIN LOGIN
250 -AUTH = PLAIN LOGIN
250 -ENHANCEDSTATUSCODES
250 -8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.
root @ proxy: / var / log #

Якщо у вас щось схоже - продовжуємо

Для того, щоб «подружити» saslauthd і postfix необхідно виконати наступне:

adduser postfix sasl

Cyrus - це потужний набір POP3 / NNTP / IMAP і деяких інших демонів для створення повноцінних сервісів роботи з електронною поштою.

Відредагуємо файл /etc/imapd.conf

admins: cyrus
allowplaintext: yes
sasl_mech_list: PLAIN
sasl_pwcheck_method: saslauthd auxprop
sasl_auxprop_plugin: sasldb

Зверніть увагу, що cyrus так само, як і saslauthd, доведеться взаємодіяти з postfix, тому їх потрібно зробити доступними один одному. Скористаємося вже відомим механізмом:
/ Etc / fstab:

/ Var / run / cyrus / var / spool / postfix / var / run / cyrus none rw, bind 0 0

створюємо каталоги для cyrus.

mkdir -p / var / spool / postfix / var / run / saslauthd
mkdir -p / var / spool / postfix / var / run / cyrus
mount / var / spool / postfix / var / run / saslauthd
mount / var / spool / postfix / var / run / cyrus

mount / var / run / cyrus

надамо можливість cyrus забирати пошту у postfix і отпалять пошту на куди завгодно. Відредагуємо файл /etc/postfix/main.cf:

mailbox_transport = lmtp: unix: / var / run / cyrus / socket / lmtp
local_recipient_maps =

Додамо групу і додамо в неї постфікси

addgroup lmtp
adduser postfix lmtp

Далі 2 команди

dpkg-statoverride --remove / var / run / cyrus / socket
dpkg-statoverride --force --update --add cyrus lmtp 750 / var / run / cyrus / socket

Додамо користувача cyrus в нашу базу облікових записів:

saslpasswd2 -c cyrus

Введіть пароль, коли вас про це попросять, і перезапустити наші демони:

/ Etc / init.d / postfix start
/ Etc / init.d / cyrus2.2 restart
/ Etc / init.d / saslauthd restart

Додамо поштового користувача наприклад saber і створимо йому каталоги

saslpasswd2 -c saber
cyradm localhost -user cyrus
localhost> cm user.saber
localhost> cm user.saber.INBOX
localhost> cm user.saber.Sent
localhost> cm user.saber.Draft
localhost> cm user.saber.Trash

cyradm
login cyrus
localhost gt; cm user.saber
localhost gt; cm user.saber.INBOX
localhost gt; cm user.saber.Sent
localhost gt; cm user.saber.Draft
localhost gt; cm user.saber.Trash

Ось як-то так я добаляют користувачів недавно

На цьому все, можна користуватися, рекомендую ще налаштувати шифрування, але мені воно не потрібно було 😉

Налаштування клієнта
Буду на основі Аутглюк експрес.
Додаємо поштовий акаунт, в загальному все як завжди КРІМ
не ставимо галочку
«Використовувати безпечну бла бла SPA»

і ставимо галочку нижче Сервер вихідної пошти «перевірка справжності користувача»
І все можна користуватися 🙂

Схожі статті

Copyright © 2024