Для быстрой настройки почтового сервера связка Courier и Postfix является очень удобной.
Для работы нам понадобится наличие домена с обратным преобразованием оного и записью типа MX, а также база данных MySQLдля хранения информации о пользователях и доменах.
Также нужно открыть доступ к следующим портам :
25 (SMTP), 110, 995 (POP, POPS), 143, 993 (IMAP, IMAPS) |
Самый простой способ настроить место для хранения почты — создать пользователя vmail с соответствующей группой и назначить ему специфичный userID.
Пользователь vmail создается как обычно, но с некоторым отличием: мы указываем, что пользователь не может логиниться в систему.
Для начала создадим группу vmail:
sudo groupadd -g 5000 vmail |
Это команда создает группу vmail и присваивает ее GID (group ID) 5000.
Затем создаем пользователя vmail:
sudo useradd -s /usr/sbin/nologin -g vmail -u 5000 vmail -d /home/vmail -m |
Эта команда создает пользователя vmail, чтобы он не мог логиниться в систему, присваивает его группе vmail, а так же создает ему домашнюю директорию /home/vmail
Установим Postfix:
sudo apt-get install postfix postfix-mysql postfix-tls libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl |
В процессе установки Postfix сервера вначале система выведет на экран окно с информацией, после чего потребуется выбрать пункт 'Internet Site'.
На вопрос о имени имя вашего почтового домена mail.domen1.com.
Настройка MySQL.
Для начала создадим базу данных с оригинальным названием — mail.
mysqladmin -u root -p create mail |
В процессе выполнения команды система вас попросит ввести пароль администратора MySQL (вы его ввели при инсталляции MySQL).
Далее залогинимся в MySQL и создадим несколько таблиц.
mysql -u root -p |
Для начала создадим пользователя БД, для наших целей.
CREATE USER 'mailadmin' @ 'localhost' IDENTIFIED BY 'MyPasswordHere' ; |
Замените MyPasswordHere на свой собственный пароль.
Далее, дадим этому пользователю необходимые привилегии:
|
1.
Теперь мы можем выбрать нашу БД mail и создать необходимые таблицы.
USE mail; |
Необходимо создать три таблицы для хранения почтовых доменов, пользователей и деталей доставки сообщений (форвардинг сообщений).
Таблица доменов. В Mysql введите следующие команды:
|
Таблица пользователей. Как раньше, введите в MySQL:
|
Таблица форвардинга:
|
Теперь можно выйти из MySQL.
Для того, чтобы Postfix мог использовать таблицы MySQL, необходимо создать несколько настроечных файлов.
Создадим текстовый файл:
sudo nano /etc/postfix/mysql-domains.cf |
Введем следующие строки:
|
MyPasswordHere надо заменить на введенный при создании пользователя БД mailadmin пароль.
Создаем файл:
sudo nano /etc/postfix/mysql-forwards.cf |
Заполняем его:
|
Каждый домен имеет множество различных почтовых ящиков. Этот скрипт получает правильные характеристики почтового ящика.
|
Содержимое:
|
И наконец создадим файл адресов.
|
Содержимое
|
Эти четыре файла позволят Postfix-у получить доступ к информации в базе данных mail и присвоить корректные данные каждому письму.
Установим нужные права:
sudo chmod o= /etc/postfix/mysql-* |
(другие группы не имеют доступа к файлам.
И сменим владельца:
sudo chgrp postfix /etc/postfix/mysql-* |
Postfix должен иметь к ним доступ.
Теперь настроим PostfixОтредактируем файл настроек Postfix:
sudo nano /etc/postfix/main.cf |
Обычно нижняя часть файла выглядит так:
|
Убедитесь, что mydestination не сделано присвоение.
Добавим ссылки на созданные файлы настроек, чтобы Postfix использовал их в процессе работы. В конец файла добавьте строки:
|
Дальше нужно настроить безопасное соединение.
Saslauthd требуется для того, чтобы устанавливать безопасные соединения с вашим почтовым сервером.
Посмотрим основной файл настроек программы:
sudo nano /etc/default/saslauthd |
Первым делом надо установить автоматический запуск демона (поменяйте значение на 'yes'. По умолчанию стоит 'no'):
|
Далее нужно изменить некоторые опции в конце файла. По умолчанию они выглядят так:
|
Изменим их следующим образом :
|
Мы только что указали каталог, который не существует в природе. Непорядок. Устраним это:
sudo mkdir -p /var/spool/postfix/var/run/saslauthd |
Мы используем MySQL для хранения наших идентификационных данных. Точнее не наших, а пользователей сервера. Значит процесс авторизации должен знать, где брать данные.
Создадим два файла, чтобы процесс мог получить доступ к базе данных и добыть необходимую ему информацию:
sudo nano /etc/pam.d/smtp |
Добавим в этот файл следующий текст:
|
Это позволит процессу авторизации иметь доступ к БД для проверки пароля и e-mail-а.
И второй файл:
sudo nano /etc/postfix/sasl/smtpd.conf |
Его содержимое следующее:
|
Для того, чтобы Postfix мог получить доступ к процессу Saslauthd, добавим пользователя Postfix в группу Saslauthd
sudo adduser postfix sasl |
Перезапускаем демоны:
|
Создадим сертификат безопасности. По умолчанию он будет создан в каталоге /etc/ssl/certs.
sudo make -ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/certs/mailcert.pem |
В процессе создания, вам зададут несколько вопросов. Ответить можно, например так:
|
Важно, чтобы Hostname совпадал с именем mail server-а — hostname. В нашем случае, это mail.domen1.com.
Мы создали самоподписанный сертификат здесь:
/etc/ssl/certs/mailcert.pem |
Теперь требуется отредактировать главный файл настроек Postfix:
sudo nano /etc/postfix/main.cf |
Найдите секцию TLS parameters. Настройки по умолчанию в ней выглядят так:
|
Стираем их полностью. И вставляем вместо них следующие:
|
Тем самым мы активировали безопасные соединения, перечислили, какие соединения будем принимать, и, наконец, указали путь к сертификату.
Установим Courier который позволит нам получить POP3 и IMAP доступ к нашей почте.
sudo apt-get
install courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl |
Во время установки вам будет задан вопрос, нужно ли создать директории. Правильный ответ — НЕТ
Для начала отредактируем файл:
sudo nano /etc/courier/authdaemonrc |
Поменяйте строку
authmodulelist= "authpam" |
на
authmodulelist= "authmysql" |
Далее редактируем файл с деталями БД /etc/courier/authmysqlrc:
|
После изменения файлов настроек, требуется рестартовать демоны:
|
Нужно заполнить таблички в MySQL, чтобы все то, что мы настроили ранее заработало.
Логинимся в MySQL:
mysql -u root -p |
Выбираем базу данных:
USE mail; |
Заполняем таблицу доменов:
INSERT INTO `domains` (`domain`) VALUES ( 'domen1.com' ); |
Чтобы ввести любой другой домен, выполните аналогичную команду:
INSERT INTO `domains` (`domain`) VALUES ( 'domen2.ru' ); |
Заполняем таблицу пользователей:
INSERT INTO `users` (`email`, ` password `) VALUES ( 'admin@domen1.com' , ENCRYPT( 'secretpassword' )); |
Остальные пользователи вводятся аналогично:
INSERT INTO `users` (`email`, ` password `) VALUES ( 'kot@domen2.ru' , ENCRYPT( 'secretpassword' )); |
Когда все таблицы заполнены — выходим из ведения БД:
Перегружаем postfix:
sudo postfix reload |
Для проверки работоспособности нужно отправить письмо на наш адрес
mail admin@domen1.com |
Через какое-то время проверьте папку /home/vmail:
ls /home/vmail |
Увидите новый каталог:
/home/vmail/domen1.com |
А для каждого пользователя домена domen1.com в папке /home/vmail/domen1.com будет создан собственный каталог с письмами.
Осталось обеспечить возможность проверки почты с помощью WEB клиента.
Наиболее известным бесплатным и свободно распространяемым продуктом для этого является Squirrelmail.
sudo apt-get
install squirrelmail squirrelmail-locales php-pear php5-cli |
Скорее всего сразу после инсталляции ваш веб-клиент будет доступен по адресу: www.domen1.com/squirrelmail (www.domen1.com — ваш домен)
Если это не так, то нужно проделать следующее:
|
Теперь он точно будет доступен по адресу www.domen1.com/squirrelmail. Но это не совсем удобно.
Поэтому проделаем следующее:
sudo nano /etc/apache2/sites-available/squirrelmail |
Закомментируем следующие строки в файле настроек:
# alias /squirrelmail /usr/share/squirrelmail |
Уберем символы комментария в начале строк со следующего блока:
|
Сохраните файл. Потом проверьте настройки apache:
sudo apache2ctl -t |
Если все нормально — перегрузите apache:
sudo /etc/init.d/apache2 reload |
Теперь мы можете заходить как domain1.com/squirrelmail/ или webmail.domain1.com если предпочитаете виртуальный хост.
Настроим squirrelmail, чтобы вы могли не только увидеть его стартовую страничку, но и проверить свою почту.
sudo squirrelmail-configure |
Откроется интерфейс конфигурации веб-клиента.
Нажмите 2 (+Enter) чтобы войти в секцию настроек сервера. Нажмите A, чтобы редактировать настройки IMAP.
Нажмите 8 чтобы изменить программу авторизации. введите courier.
courier |
Теперь нажмем 7, чтобы изменить настройки безопасности secure IMAP. Введите Y для активации.
Введите 5 для редактирования порта IMAP. Введите значение 993.
Нажмите S для сохранения настроек. И «Enter».
Нажмите Q, чтобы выйти из программы настроек.
Сейчас вы можете зайти на страницу domain1.com/squirrelmail/ или webmail.domain1.com и попробовать проверить свою почту, залогинившись.
Источник: http://blog.laptev.info/2009/ubuntu-mail-server-1.html http://blog.laptev.info/2009/ubuntu-mail-server-2.html