Настройка почтового сервера Postfix в Debian Squeeze
Настройка почтового сервера Postfix в Debian Squeeze
Содержание
- 1 Подготовка
- 2 Установка Postfix, Courier, Saslauth, MySQL, phpMyAdmin
- 3 Создание базы данных для Postfix/Courier
- 4 Конфигурирование Postfix
- 5 Конфигурирование Saslauthd
- 6 Конфигурирование Courier
- 7 Изменение /etc/aliases
- 8 Установка amavisd-new, SpamAssassin, и ClamAV
- 9 Установка и конфигурирование SpamAssassin
- 10 Установка и конфигурирование Razor
- 11 Тестирование Postfix
- 12 Наполнение базы и тестирование
- 13 Отправка первого сообщения для создания структуры каталогов maildir
- 14 Логирование
- 15 Установка RoundCube
- 16 Статистика
- 17 Источники информации
- 18 Обсуждение
Подготовка
Требования
- Хранение почты на сервере
- Фильтрация спама
- Проверка вложений на вирусы
- Возможность использовать дополнительные домены
- Средние нагрузки (250+ пользователей)
- Списки рассылок
- WEB клиент
Используемое ПО
- Postfix
- Courier
- Amavis
- Spamassassin
- Razor
- ClamAV
- Roundcube
- Mailman
- Mailgraph
- AwStats
- MySQL
- Saslauth
- phpMyAdmin
Причины отказа от индивидуального квотирования
- В большинстве случаев для не публичных почтовых серверов квоты не нужны
- Для работы с индивидуальными квотами на postfix необходимо накладывать патч, что не позволит в дальнейшем стандартное обновление
Причины отказа от Pyzor
- Более полутора лет назад выпущена последняя версия
- Практически нет документации
Причины отказа от DCC
- Отсутствие в стандартном репозитории, что не позволит в дальнейшем стандартное обновление
- Непонятки с лицензией
Причины отказа от грэй листов
- Теоретически возможно частичные потери входящей почты
Выбор оборудования
- Гостевая система KVM
- CPU: 2x ядра Intel(R) Xeon(R) CPU E5506 @2.13GHz
- RAM: 2Gb
- HDD: 15Gb для системы, 150gb для хранилища почты
- Lan: 1Glan
Предварительные работы
- Настройка сетевого интерфейса для работы со статический белым IP адресом (либо ваша собственная конфигурация NAT-а и др.)
- Запись в прямой и обратной зоне DNS имени системы
- Запись MX, PTR и SPF в DNS
- Отдельный диск для хранилища почты (второй жесткий диск в /mnt/vdb1)
Советы
- Перед редактированием какого либо конфигурационного файла создаем резервную копию оригинала (cp /path/filename /path/filename_orig)!
Установка Postfix, Courier, Saslauth, MySQL, phpMyAdmin
Для установки вышеперечисленного выполняем:apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl phpmyadmin apache2 libapache2-mod-php5 php5 php5-mysql postfix-pcre gaminБудут заданы следующие вопросы:
- Пароль пользователя root для сервера баз данных mysql
- Создать ли каталоги для веб-администрирования? Выбираем "Да"
- Выберите тип настройки почтового сервера, который оптимально удовлетворяет ваши требования. Выбираем "Интернет-сайт".
- "Почтовое имя". Вводим имя почтового хоста с полным доменным именем. Предположим это будет
mail.вашдомен.ru
- Требуется сертификат SSL. Жмем Enter.
- Выберите веб-сервер, который будет автоматически настроен для запуска phpMyAdmin. Выбираем Apache.
- Настроить базу данных для phpmyadmin с помощью dbconfig-common? Вводим пароль root для mysql.
- Пароль для пользователя базы phpmyadmin. Вводим пароль (не обязательно совпадающий с паролем root-а сервера mysql).
Создание базы данных для Postfix/Courier
Для создания базы данных воспользуемся phpmyadmin:http://mail.вашдомен.ru/phpmyadmin
- Создаем новую базу данных mail. В поле сравнение выбираем utf8_general_ci
- Добавляем нового пользователя с именем mail_admin и паролем (этого пользователя будут использовать Postfix и Courier для доступа к базе mail
- Добавляем права на SELECT, INSERT, UPDATE, DELETE для пользователя mail_admin на базу mail
- Перезагружаем привилегии
- Добавляем таблицы в базу
CREATE TABLE domains ( domain varchar(50) NOT NULL, PRIMARY KEY (domain) );
CREATE TABLE forwardings ( source varchar(80) NOT NULL, destination TEXT NOT NULL, description TEXT NOT NULL, PRIMARY KEY (source) );
CREATE TABLE users ( email varchar(80) NOT NULL, password varchar(20) NOT NULL, PRIMARY KEY (email));
CREATE TABLE transport ( domain varchar(128) NOT NULL default '', transport varchar(128) NOT NULL default '', UNIQUE KEY domain (domain));В таблице domains будут хранится имена доменов, для которых Postfix будет принимать почту. Для нас достаточно одной записи:
domain |
вашдомен.ru |
source | destination | description |
director@вашдомен.ru | secretar@вашдомен.ru | Перенаправление почты директора на секретаря. Не все директора умеют пользоваться электронкой :) |
ivanov@вашдомен.ru | ivanov@вашдомен.ru petrov@вашдомен.ru | Письма Иванова дублируются Петрову. Иванов часто не выходит на работу, а на его адрес приходят срочные письма! |
password | |
director@вашдомен.ru | No9.E4skNvGa. |
При необходимости, вы можете добавить другие поля в таблицу users - например номер телефона и кабинета в котором работает сотрудник (главное не забываем о 152-ФЗ).
Таблица transport содержит записи, указывающие Postfix, письма каких пользователей (доменов) обрабатывать самому, а каких пересылать (существует возможность пересылать письма определенных пользователей, или даже целый доменов на другой почтовый сервер).
domain | transport |
вашдомен.ru | : |
вашдомен.ru | smtp:[a.b.c.d] |
director@вашдомен.ru | smtp:[c.d.e.f] |
Во втором примере, вся почта для домена "вашдомен.ru" будет пересылаться на сервер с ip адресом: [a.b.c.d]
И наконец третий пример указывает постфиксу пересылать почту пришедшую на адрес "director@вашдомен.ru" серверу с ip адресом [a.b.c.d].
Для более подробной информации смотрите
man transportПомните, что порядок записей в транспортной таблице важен! Кроме этого знайте - данные из таблицы транспорта кэшируются и для применения изменений в базе данный необходима перезагрузка параметров Postfix-а командой:
/etc/init.d/postfix reloadВ первом примере, все пришедшие письма Postfix будет пересылать другому почтовому серверу (определенному по MX записи для домена "другойдомен.ru") письма адресованные director@вашдомен.ru будут пересланы на другой домен.
Второй пример аналогичен первому за исключением того, что письма будут пересылаться на другой почтовый сервер с IP адресом "a.b.c.d" (нужно заметить, что в случае пересылки на заданный IP, сам IP указывается в квадратных скобках).
И наконец для третьего примера, письма пришедшие на конкретный адрес "director@вашдомен.ru" буду пересланы на сервер с IP "c.d.e.f".
Конфигурирование Postfix
Добавим пользователя Postfix в группу sasl:adduser postfix saslПроверим, что сервер mysql ожидает соединений по адресу 127.0.0.1. В файле /etc/mysql/my.cnf переменная bind-address должна иметь значение 127.0.0.1:
bind-address = 127.0.0.1В случае если это не так, внесем необходимые изменения и рестартуем сервер mysql:
/etc/init.d/mysql restartДля проверки того, что мы сделали все верно запустим команду:
netstat -tapСреди прочего, в выводе команды, мы должны увидеть:
tcp 0 0 localhost:mysql *:* LISTEN 4556/mysqldгде 4556 это PID процесса и у всех будет разный. Если такая строка присутствует в выводе команды значит mysql работает правильно.
Настройка извлечения данных из mysql
Создадим папку для дополнительных конфигурационных файлов:mkdir /etc/postfix/configТеперь нам необходимо указать Postfix, как извлекать информацию из созданной нами базы. Для этого мы создадим пять текстовых файлов.
mcedit /etc/postfix/config/mysql-virtual_domains.cf
user = mail_admin password = mail_admin_password dbname = mail query = SELECT domain AS virtual FROM domains WHERE domain='%s' hosts = 127.0.0.1
mcedit /etc/postfix/config/mysql-virtual_forwardings.cf
user = mail_admin password = mail_admin_password dbname = mail query = SELECT destination FROM forwardings WHERE source='%s' hosts = 127.0.0.1
mcedit /etc/postfix/config/mysql-virtual_mailboxes.cf
user = mail_admin password = mail_admin_password dbname = mail query = SELECT CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') FROM users WHERE email='%s' hosts = 127.0.0.1
mcedit /etc/postfix/config/mysql-virtual_email2email.cf
user = mail_admin password = mail_admin_password dbname = mail query = SELECT email FROM users WHERE email='%s' hosts = 127.0.0.1
mcedit /etc/postfix/config/mysql-virtual_transports.cf
user = mail_admin password = mail_admin_password dbname = mail query = SELECT transport FROM transport WHERE domain='%s' hosts = 127.0.0.1где mail_admin это имя пользователя созданного нами ранее, mail_admin_password его пароль.
Теперь создадим пользователя и группу для работы с хранилищем почты. Домашний каталог пользователя и будет корнем хранилища. Я буду использовать для хранилища почты отдельный раздел на отдельном диске (смонтированный в каталог /mnt/vdb1/vmail). Вы же указываете свой путь для хранилища почты.
groupadd -g 5000 vmail useradd -g vmail -u 5000 vmail -d /mnt/vdb1/vmail -m
Общее
Дальше займемся конфигурированием Postfix. Редактируем файл /etc/postfix/main.cf:#Время, в течении которого письма будут находится в очереди maximal_queue_lifetime = 10d #Ограничение на размер письма в байтах message_size_limit = 10000000 #Дополнительные файлы конфигурации additional_config_dir = /etc/postfix/config alias_maps = hash:/etc/aliases #Соответствует полному доменному имени (FQDN) myhostname = mail.вашдомен.ru #Список доменов, для которых почта будет доставляться локально, а не пересылаться на другой хост. mydestination = $myhostname, localhost, localhost.$mydomain, $myhostname.$mydomain #Локальные сети mynetworks = 127.0.0.0/8 10.0.0.0/8 #Карта алиасов virtual_alias_maps = proxy:mysql:$additional_config_dir/mysql-virtual_forwardings.cf, mysql:$additional_config_dir/mysql-virtual_email2email.cf #Карта расположения почтовых ящиков virtual_mailbox_maps = proxy:mysql:$additional_config_dir/mysql-virtual_mailboxes.cf #Содержит имена обслуживаемых доменов virtual_mailbox_domains = proxy:mysql:$additional_config_dir/mysql-virtual_domains.cf #Нужен чтобы по MAIL FROM узнать логин и затем сверить с логином, по которому прошла аутентификация. smtpd_sender_login_maps = mysql:$additional_config_dir/mysql-virtual_email2email.cf #Путь до каталога хранилища почты virtual_mailbox_base = /mnt/vdb1/vmail #Карта UID-ов виртуальных пользователей virtual_uid_maps = static:5000 #Тоже самое для групп: virtual_gid_maps = static:5000 #Поддержку sasl авторизации smtpd_sasl_auth_enable = yes #Поддержки старых версий почтовых клиентов, например Microsoft Outlook Express 4 и Microsoft Exchange 5, использующих другую форму команды AUTH broken_sasl_auth_clients = yes #Требуем, чтобы удаленный SMTP клиент представлял себя в начале SMTP сессии с помощью команды HELO или EHLO. smtpd_helo_required = yes #Всегда отправлять EHLO вначале SMTP сессии smtp_always_send_ehlo = yes #Отключает SMTP команду VRFY. В результате чего, невозможно определить существование определенного #ящика. Данная техника (применение команды VRFY) используется спамерами для сбора имен почтовых ящиков. disable_vrfy_command = yes #Сообщать ли клиентам о возможности использования TLS (шифрования соединения) smtpd_use_tls = yes #Расположение файла сертификата сервера smtpd_tls_cert_file = /etc/ssl/certs/mail.вашдомен.ru.crt #Расположение файла открытого ключа smtpd_tls_key_file = /etc/ssl/private/mail.вашдомен.ru.key #Карта транспорта transport_maps = proxy:mysql:$additional_config_dir/mysql-virtual_transports.cf #Список таблиц, которым разрешено работать через proxymap (кэширует запросы и снижает нагрузку на БД) proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworksПараметр proxy_read_maps описывается в одну строку. Переносы добавлены для лучшего отображения в MediaWiki.
Ограничения
#Создаем классы: smtpd_restriction_classes = verify_sender, rbl_cbl_abuseat_org, rbl_sbl_spamhaus_org, rbl_dul_ru, rbl_spamcop, white_client_ip, black_client_ip, block_dsl, helo_access, white_client, mx_access #Описание классов: verify_sender = reject_unverified_sender, permit rbl_cbl_abuseat_org = reject_rbl_client cbl.abuseat.org rbl_dul_ru = reject_rbl_client dul.ru rbl_sbl_spamhaus_org = reject_rbl_client sbl.spamhaus.org rbl_spamcop = reject_rbl_client bl.spamcop.net #IP адреса, которые нужно пропускать не смотря ни на что white_client_ip = check_client_access hash:$additional_config_dir/white_client_ip #IP адреса, которые нужно блокировать не смотря ни на что black_client_ip = check_client_access hash:$additional_config_dir/black_client_ip #Правила для блокировки dsl/модемных пулов, с которых подключаются клиенты. block_dsl = regexp:$additional_config_dir/block_dsl #Соблюдение документа RFC 2821 helo_access = check_helo_access pcre:$additional_config_dir/helo_checks white_client = check_sender_access pcre:$additional_config_dir/access_vip_sender mx_access = check_sender_mx_access cidr:$additional_config_dir/mx_access #Далее restrictions: #Проверки клиентского компьютера (или другого почтового сервера), #который соединяется с сервером postfix для отправки письма smtpd_client_restrictions = black_client_ip, #Принимать письма от клиентов локальной сети permit_mynetworks, #Пропускать письма от авторизованный пользователей permit_sasl_authenticated, #Если клиент не из mynetworks оценивает reject_unauth_destination. Отклоняется попытки пересылки, если получатель #сообщения не относится к доменам места назначения и доменам пересылки, указанным в ваших настройках reject_unauth_destination, white_client_ip, #Отвергает запрос, когда клиент отправляет команды SMTP раньше времени, еще не зная о том, #действительно ли Postfix поддерживает конвейерную обработку команд ESMTP reject_unauth_pipelining, helo_access, block_dsl, #блокируем клиентов с адресами from, домены которых не имеют A/MX записей reject_unknown_address, #блокирует почту от несуществующих доменов reject_unknown_recipient_domain, #Проверяем домен на записи типа A и MX в DNS — если нет, то отклоняем reject_unknown_sender_domain, rbl_dul_ru, rbl_sbl_spamhaus_org, rbl_spamcop, rbl_cbl_abuseat_org #Проверки исходящей или пересылаемой через нас почты smtpd_sender_restrictions = white_client, white_client_ip, black_client_ip, #если пользователь авторизуется как user1@domain.com и попытается передать письмо в #котором в качестве обратного адреса указан user2@domain.com, то в ответ получит ошибку reject_authenticated_sender_login_mismatch, #Отклоняет сообщения в не существующие домены reject_unknown_recipient_domain, #Проверяем домен на записи типа A и MX в DNS — если нет, то отклоняем reject_unknown_sender_domain, #Если имя получателя не соответствует FQDN то отклоняем reject_non_fqdn_recipient, #Если имя отправителя не соответствует FQDN - отклоняем reject_non_fqdn_sender, permit_sasl_authenticated, permit_mynetworks, #Содержит список приватных сетей, которые по всем канонам глобальной сети интернет #не могут быть использованы в качестве IP для MX записей mx_access, #Отклонение писем с несуществующим адресом отправителя reject_unlisted_sender, #Если клиент не из mynetworks оценивает reject_unauth_destination. Отклоняется попытки пересылки, если получатель reject_unauth_destination #Правила приема почты нашим сервером: smtpd_recipient_restrictions = white_client, #блокирует почту от несуществующих доменов reject_unknown_recipient_domain, #Проверяем домен на записи типа A и MX в DNS — если нет, то отклоняем reject_unknown_sender_domain, #Если имя получателя не соответствует FQDN — отклоняем reject_non_fqdn_recipient, #Если имя отправителя не соответствует FQDN - отклоняем reject_non_fqdn_sender, #Отвергает запрос, когда клиент отправляет команды SMTP раньше времени, еще не зная о том, #действительно ли Postfix поддерживает конвейерную обработку команд ESMTP reject_unauth_pipelining, #Пропускать письма от авторизованный пользователей permit_sasl_authenticated, #Принимать письма от клиентов локальной сети permit_mynetworks, helo_access, #Отклонить, если адреса RCPT TO нет в допустимых получателей reject_unlisted_recipient, #блокируем клиентов с адресами from, домены которых не имеют A/MX записей reject_unknown_address, #Если клиент не из mynetworks оценивает reject_unauth_destination. Отклоняется попытки пересылки, если получатель #сообщения не относится к доменам места назначения и доменам пересылки, указанным в ваших настройках reject_unauth_destination, #Для отказа в приеме сообщениям с пустым именем отправителя конверта, предназначенным нескольким получателям reject_multi_recipient_bounce smtpd_data_restrictions = reject_unauth_pipelining, reject_multi_recipient_bounce, permit #Пропустить серверы, которые приветствуют нас кодом состояния 5xx smtp_skip_5xx_greeting = no #Отклонение писем с несуществующим адресом отправителя smtpd_reject_unlisted_sender = yes #Отклонение писем с несуществующим адресом получателя smtpd_reject_unlisted_recipient = yesСоздадим файлы с правилами, используемые в конфиге:
touch /etc/postfix/config/white_client_ip touch /etc/postfix/config/black_client_ip touch /etc/postfix/config/white_client touch /etc/postfix/config/access_vip_sender
mcedit /etc/postfix/config/helo_checksС таким содержимым:
/^\[?10\.\d{1,3}\.\d{1,3}\.\d{1,3}\]?$/ REJECT Address in RFC 1918 private network /^\[?192\.\d{1,3}\.\d{1,3}\.\d{1,3}\]?$/ REJECT Address in RFC 1918 private network /^\[?172\.\d{1,3}\.\d{1,3}\.\d{1,3}\]?$/ REJECT Address in RFC 1918 private network /\d{2,}[-\.]+\d{2,}/ REJECT Invalid hostname (D-D) /^(((newm|em|gm|m)ail|yandex|rambler|hotbox|chat|rbc|subscribe|spbnit)\.ru)$/ REJECT Faked hostname ($1) /^(((hotmail|mcim|newm|em)ail|post|hotbox|msn|microsoft|aol|news|compuserve|yahoo|google|earthlink|netscape)\.(com|net))$/ REJECT Faked hostname ($1) /[^[] *[0-9]+((\.|-|_)[0-9]+){3}/ REJECT Invalid hostname (ipable) /(modem|dia(l|lup)|cp[ce]|dsl|p[cp]p|cable|catv|poo(l|les)|pppoe|dhcp|client|customer|user|host|[0-9]{4,})(-|_|\.|[0-9])/ REJECT Invalid hostname (client)
mcedit /etc/postfix/config/mx_accessС таким содержимым:
127.0.0.1 DUNNO 127.0.0.2 550 Domains not registered properly. Can't assign requested address 0.0.0.0/8 REJECT Domain MX in broadcast network 10.0.0.0/8 REJECT Domain MX in RFC 1918 private network 127.0.0.0/8 REJECT Domain MX in loopback network 169.254.0.0/16 REJECT Domain MX in link local network 172.16.0.0/12 REJECT Domain MX in RFC 1918 private network 192.0.2.0/24 REJECT Domain MX in TEST-NET network 192.168.0.0/16 REJECT Domain MX in RFC 1918 private network 224.0.0.0/4 REJECT Domain MX in class D multicast network 240.0.0.0/5 REJECT Domain MX in class E reserved network 248.0.0.0/5 REJECT Domain MX in reserved network
mcedit /etc/postfix/config/block_dslС таким содержимым:
/^dsl.*\..*/i 553 AUTO_DSL We aren't accept direct connection not from dedicated SMTP servers. Please use your internet provider SMTP Server. /.*\.dsl\..*/i 553 AUTO_DSL2 We aren't accept direct connection not from dedicated SMTP servers. Please use your internet provider SMTP Server. /[a|x]dsl.*\..*\..*/i 553 AUTO_[A|X]DSL We aren't accept direct connection not from dedicated SMTP servers. Please use your internet provider SMTP Server. /client.*\..*\..*/i 553 AUTO_CLIENT We aren't accept direct connection not from dedicated SMTP servers. Please use your internet provider SMTP Server. /cable.*\..*\..*/i 553 AUTO_CABLE We aren't accept direct connection not from dedicated SMTP servers. Please use your internet provider SMTP Server. /pool\..*/i 553 AUTO_POOL We aren't accept direct connection not from dedicated SMTP servers. Please use your internet provider SMTP Server. /.*dial(\.|-).*\..*\..*/i 553 AUTO_DIAL We aren't accept direct connection not from dedicated SMTP servers. Please use your internet provider SMTP Server. /ppp.*\..*/i 553 AUTO_PPP We aren't accept direct connection not from dedicated SMTP servers. Please use your internet provider SMTP Server. /dslam.*\..*\..*/i 553 AUTO_DSLAM We aren't accept direct connection not from dedicated SMTP servers. Please use your internet provider SMTP Server. /dslb.*\..*\..*/i 553 AUTO_DSLB We aren't accept direct connection not from dedicated SMTP servers. Please use your internet provider SMTP Server. /node.*\..*\..*/i 553 AUTO_NODE We aren't accept direct connection not from dedicated SMTP servers. Please use your internet provider SMTP Server. /.*\.dynamicIP\..*/i 553 AUTO_DYNAMIC We aren't accept direct connection not from dedicated SMTP servers. Please use your internet provider SMTP Server. /[ax]dsl.*\..*\..*/i REJECT Your message looks like SPAM 01 /\.dsl.*\..*\..*/i REJECT Your message looks like SPAM 02 /cable.*\..*\..*/i REJECT Your message looks like SPAM 03 /client.*\..*\..*/i REJECT Your message looks like SPAM 04 /dhcp.*\..*\..*/i REJECT Your message looks like SPAM 05 /dial.*\..*\..*/i REJECT Your message looks like SPAM 06 /dialup.*\..*\..*/i REJECT Your message looks like SPAM 07 /dslam.*\..*\..*/i REJECT Your message looks like SPAM 08 /node.*\..*\..*/i REJECT Your message looks like SPAM 09 /pool.*\..*\..*/i REJECT Your message looks like SPAM 10 /ppp.*\..*\..*/i REJECT Your message looks like SPAM 11 /user.*\..*\..*/i REJECT Your message looks like SPAM 12 /[0-9]+-[0-9]+/ REJECT Invalid hostname (D-D) (dsl) /(modem|dia(l|lup)|cp[ce]|dsl|p[cp]p|cable|catv|poo(l|les)|pppoe|dhcp|client|customer|user|host|[0-9]{4,})(-|_|\.|[0-9])/ REJECT Invalid hostname (client)
mcedit /etc/postfix/config/white_client_ipС таким содержимым:
dwhite.ltd OK 10.11.12.13 OKГде dwhite.ltd 10.11.12.13 имя домена и ip адреса сервер, которые заблокированы в каком либо блэк листе (например rbl)
Выставим права доступа:
chown root:postfix /etc/postfix/config/ -R chmod 650 /etc/postfix/config/ -RПосле каждого изменения конфигурационных файлов имеющих тип hash, необходимо выполнить:
postmap /etc/postfix/config/имя_конфигурационного_файлаВ нашем случае таким файлом например является white_client_ip. Тип файла указывается в main.cf. Например: white_client_ip = check_client_access hash:$additional_config_dir/white_client_ip
Создание сертификата
Создадим приватный ключ:openssl genrsa -des3 -out mail.вашдомен.ru.key 2048На запрос два раза вводим пароль (и обязательно запомним)!
Теперь создадим подписанный сертификат:
openssl req -new -key mail.вашдомен.ru.key -out mail.вашдомен.ru.csrНа запрос вводим:
Country Name: RU Страна, в виде двухсимвольного ISO-кода. State or Province Name (full name) [Some-State]: Altai Область, в которой официально зарегистрирована организация (на английском языке) Locality Name (eg, city) []: Pavlovsk Город, где официально зарегистрирована организация (на английском языке) Organization Name (eg, company) [Internet Widgits Pty Ltd]: Точное наименование организации в соответствии с Уставом организации на английском языке GlavRazvedUprav (Не используйте сокращенное наименование организации) Organizational Unit Name (eg, section) []: IT Наименование отдела, подразделения (на английском языке) Common Name (eg, YOUR name) []: mail.вашдомен.ru Полное доменное имя для вашего веб-сервера. Email Address []: postmaster.вашдомен.ru postmaster@вашдомен.ru Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:Просмотреть данные сертификата можем с помощью команды:
openssl req -noout -text -in mail.вашдомен.ru.csrУдалим пароль из ключа:
cp mail.вашдомен.ru.key mail.вашдомен.ru.key_orig openssl rsa -in mail.вашдомен.ru.key_orig -out mail.вашдомен.ru.key Enter pass phrase for debianworld.ru.key_orig: (Вводим пароль указанный при создании mail.вашдомен.ru.key) writing RSA keyГенерируем SSL сертификат:
openssl x509 -req -days 3650 -in mail.вашдомен.ru.csr -signkey mail.вашдомен.ru.key -out mail.вашдомен.ru.crt Signature ok subject=/C=RU/ST=Russia/O=mail.вашдомен.ru/CN=mail.вашдомен.ru/emailAddress=ssl@вашдомен.ru Getting Private keyПереместим сертификат и ключ в положенное место:
mv mail.вашдомен.ru.crt /etc/ssl/certs/ mv mail.вашдомен.ru.key /etc/ssl/private/И заметем следы :) :
rm mail.вашдомен.ru.csr mail.вашдомен.ru.key_origУкажем web серверу использовать новый сертификат:
mcedit /etc/apache2/sites-available/default-ssl
SSLCertificateFile /etc/ssl/certs/mail.вашдомен.ru.crt SSLCertificateKeyFile /etc/ssl/private/mail.вашдомен.ru.key
Конфигурирование Saslauthd
Создаем каталог:mkdir -p /var/spool/postfix/var/run/saslauthdРедактируем файл конфигурации:
mcedit /etc/default/saslauthd
#Включаем автозапуск START=yes #Изменим значение PARAMS OPTIONS="-m /var/spool/postfix/var/run/saslauthd -r" #Добавим новый параметр PIDFILE PIDFILE="/var/spool/postfix/var/run/${NAME}/saslauthd.pid"Создадим файл /etc/pam.d/smtp
mcedit /etc/pam.d/smtpсо следующим содержимым:
auth required pam_mysql.so user=mail_admin passwd=mail_admin_password host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1 account sufficient pam_mysql.so user=mail_admin passwd=mail_admin_password host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1Где mail_admin и mail_admin_password это имя и пароль созданного выше пользователя базы данных.
Далее создадим файл /etc/postfix/sasl/smtpd.conf:
mcedit /etc/postfix/sasl/smtpd.confСо следующим содержимым:
pwcheck_method: saslauthd mech_list: plain login allow_plaintext: true auxprop_plugin: mysql sql_hostnames: 127.0.0.1 sql_user: mail_admin sql_passwd: mail_admin_password sql_database: mail sql_select: select password from users where email = '%u'На забываем про mail_admin и mail_admin_password.
После проделанных операций, для применения новых параметров, необходимо перезагрузить Postfix и Saslauth:
/etc/init.d/postfix restart /etc/init.d/saslauthd restart
Конфигурирование Courier
Необходимо указать Courier-у, где у нас хранятся авторизационные данные пользователей. Для этого в конфигурационном файле /etc/courier/authdaemonrc изменим значение authmodulelist на "authmysql":mcedit /etc/courier/authdaemonrc
authmodulelist="authmysql"Редактируем файл /etc/courier/authmysqlrc
mcedit /etc/courier/authmysqlrcПосле редактирования он должен иметь следующее содержимое:
MYSQL_SERVER localhost MYSQL_USERNAME mail_admin MYSQL_PASSWORD mail_admin_password MYSQL_PORT 0 MYSQL_DATABASE mail MYSQL_USER_TABLE users MYSQL_CRYPT_PWFIELD password MYSQL_UID_FIELD 5000 MYSQL_GID_FIELD 5000 MYSQL_LOGIN_FIELD email MYSQL_HOME_FIELD "/mnt/vdb1/vmail" MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')Не забыв подставить свои авторизационные данные к базе и путь к хранилищу почты.
Мне предпочтительнее, чтобы пользователи хранили свою почту на сервере (использовали IMAP). Основной причиной этого является отсутствие возможности потери почтовых сообщений из за выхода их строя жесткого диска на клиентской машине. Плюс к этому IMAP позволяет работать с почтой через web интерфейс. По этим причинам отключим протокол POP3. В файле /etc/courier/pop3d поправим:
... POP3DSTART=NO ...В файле /etc/courier/pop3d-ssl:
... POP3DSSLSTART=NO ...К тому же отключим не шифрованное соединение по протоколу IMAP. Файле /etc/courier/imapd:
... IMAPDSTART=NO ...Увеличим количество одновременных подключений для IMAP (максимальное количество запускаемых копий демона), и укажем сертификат:
mcedit /etc/courier/imapd-ssl
... MAXDAEMONS=300 TLS_CERTFILE=/etc/courier/mail.вашдомен.ru.crt ...Создадим для Courier сертификат в том формате, в котором он требует:
cp /etc/ssl/certs/mail.вашдомен.ru.crt /etc/courier/ cat /etc/ssl/private/mail.вашдомен.ru.key >> /etc/courier/mail.вашдомен.ru.crtПерезагружаем все сервисы Courier-а:
/etc/init.d/courier-authdaemon restart /etc/init.d/courier-imap restart /etc/init.d/courier-imap-ssl restart /etc/init.d/courier-pop restart /etc/init.d/courier-pop-ssl restartДля проверки работоспособности Courier-а подключимся к порту IMAP-SSL (993 порт) с помощью телнета:
telnet localhost 993Если в ответ вы увидели нечто, похожее на это:
Trying 127.0.0.1... Connected to localhost.localdomain. Escape character is '^]'.значит Courier работает. Для выхода из telnet достаточно шесть раз нажать ENTER :)
Изменение /etc/aliases
В файле /etc/aliases мы определим администратора почты.mcedit /etc/aliases
root: postmaster postmaster: postmaster@вашдомен.ruТеперь почта адресованная пользователю root будет перенаправлена postmaster-у. А почта postmaster-а в свою очередь будет переправлена на postmaster@вашдомен.ru
Для применения изменений необходимо выполнить команду:
newaliasesИ перезагрузить Postfix:
/etc/init.d/postfix restart
Установка amavisd-new, SpamAssassin, и ClamAV
Для установки amavisd-new, spamassassin и clamav необходжимо установить следующие пакеты:apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 libnet-ph-perl libnet-snpp-perl libnet-telnet-perl nomarch lzop paxДля правильной работы Amavasd-new необходимо отредактировать три файла.
Включим ClamAV и SpamAssassin. Для этого разкоментируем строки с @bypass_virus_checks_maps и @bypass_spam_checks_maps:
mcedit /etc/amavis/conf.d/15-content_filter_modeПосле редактирования файл должен выглядеть так:
use strict; # You can modify this file to re-enable SPAM checking through spamassassin # and to re-enable antivirus checking. # # Default antivirus checking mode # Uncomment the two lines below to enable it back # @bypass_virus_checks_maps = ( \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re); # # Default SPAM checking mode # Uncomment the two lines below to enable it back # @bypass_spam_checks_maps = ( \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re); 1; # insure a defined returnДальше необходимо взглянуть на настройки определения спама и действий выполняемых со спамом в файле /etc/amavis/conf.d/20-debian_defaults. Сам файл мы не редактируем, а все необходимые параметры добавляем в файл /etc/amavis/conf.d/50-user:
mcedit /etc/amavis/conf.d/50-user
use strict; $pax='pax'; #Считываем таблицу обслуживаемых доменов. Письма адресованные пользователям этих доменов будут проверяться на спам @lookup_sql_dsn = ( ['DBI:mysql:database=mail;host=127.0.0.1;port =3306', 'mail_admin', 'password']); $sql_select_policy = 'SELECT domain FROM domains'; #Что дописываем в тему спам сообщения $sa_spam_subject_tag = '***СПАМ***'; $sa_spam_modifies_subj = 1; #Дописывать данные о проверке на спам в заголовок письма всегда $sa_tag_level_deflt = undef; #Пропускаем спам письма адресату. $final_spam_destiny = D_PASS; #Пропускаем письма содержащие вирус адресату. $final_virus_destiny = D_PASS; $final_banned_destiny = D_PASS; #Добавляем в тему письма содержащего вирус $subject_tag_maps_by_ccat{+CC_VIRUS} = [ '***ВИРУС*** ' ]; #Таким образом отключим оповещения о вирусах и спаме $virus_admin = undef; $spam_admin = undef; 1;Теперь добавим пользователя clamav в группу amavis и перезагрузим amavis и clamav:
addgroup clamav amavis /etc/init.d/amavis restart /etc/init.d/clamav-daemon restart /etc/init.d/clamav-freshclam restartТеперь мы должны реконфигурировать Postfix так, чтобы он пропускал всю входящую почту через amavisd-new. Для этого добавим в конфигурационный файл main.cf строки:
content_filter = amavis:[127.0.0.1]:10024 receive_override_options = no_address_mappingsИ в конец файла /etc/postfix/master.cf следующие строки:
amavis unix - - - - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes 127.0.0.1:10025 inet n - - - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_client_restrictions= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks -o smtpd_bind_address=127.0.0.1После чего рестартуем Postfix:
/etc/init.d/postfix restartДля проверки работоспособности всего того, что мы настроили запустим следующую команду:
netstat -tapСреди прочего мы должны увидеть строки подобные этим:
tcp 0 0 localhost.localdo:10024 *:* LISTEN 16043/amavisd tcp 0 0 localhost.localdo:10025 *:* LISTEN 15794/master tcp 0 0 *:smtp *:* LISTEN 15794/masterПервая строка говорит нам о том, что порт 10024 слушает amavisd, а порты 10025 и 25 (smtp) слушает postfix.
Установка и конфигурирование SpamAssassin
Редактируем файл конфигурации SpamAssassin:mcedit /etc/spamassassin/local.cfПосле редактирования файл должен выглядеть примерно так:
# Указываем какие подсети будут "доверенными", письма с которых не будут считаться спамом trusted_networks 10.0.0.0/8 # Включаем bayes обучение системы use_bayes 1 use_bayes_rules 1 # Указываем путь до базы bayes bayes_path /var/lib/amavis/.spamassassin/bayes # SA будет автоматически добавлять сообщения, распознанные как SPAM #на 100% или на 100% как не SPAM сообщения, в bayes базу данных bayes_auto_learn 1 # Не отключаем разные сетевые проверки skip_rbl_checks 0 # Указываем SA использовать Razor use_razor2 1 # Указываем SA не использовать DCC use_dcc 0 # Указываем SA не использовать Pyzor use_pyzor 0 #Следующие строчки указывают, на каких языках Вам обычно приходят письма. Если #проверяемое письмо будет на другом языке, то его Spam-Level повысится. ok_languages en ru ok_locales en ruПерезагрузим amavis для применения параметров:
/etc/init.d/amavis restart
Установка и конфигурирование Razor
Устанавливаем пакет:apt-get install razorСоздаем конфигурацию по умолчанию:
razor-admin -create(конфигурационные файлы будут созданы в ~/.razor) Регистрируемся на сервера razor:
razor-admin -register -user=user -pass=pass
Тестирование Postfix
Чтобы проверить работоспособность Postfix-а коннектимся на 25 порт телнетом:telnet localhost 25После установки соединения, передадим Postfix-у команду:
ehlo localhostВы должны увидеть ответ такого содержания:
250-server1.example.com 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSNОбратите внимание на эти строки:
250-STARTTLS 250-AUTH PLAIN LOGINЕсли они есть то все отлично.
Чтобы выйти наберите quit.
Наполнение базы и тестирование
Будем добавлять данные в базу. Для этого как и прежде воспользуемся phpmyadmin.В таблицу domains добавим запись:
domains |
вашдомен.ru |
password | |
secretar@вашдомен.ru | secr |
director@вашдомен.ru | direct |
В таблицу forwards добавим один алиас:
source | distanation | description |
director@вашдомен.ru | secretar@вашдомен.ru | Почту директора пересылаем секретарю |
source | distanation | description |
director@вашдомен.ru | director@вашдомен.ru secretar@вашдомен.ru | Шлем секретарю копии директорских писем |
domain | transport |
вашдомен.ru | : |
Перегрузим Postfix для применения новых параметров:
/etc/init.d/postfix reload
Отправка первого сообщения для создания структуры каталогов maildir
После того как вы создали нового пользователя в базе данных, необходимо отправить письмо на адрес этого пользователя, чтобы в хранилище почты создалась необходимая структура каталогов для этого пользователя. В противном случае, при попытке соединиться с IMAP сервером вы получите ошибку.Установим пакет mailutils
apt-get install mailutilsДля отправки сообщения добавленному пользователю secretar@вашдомен.ru выполним команду:
mailx secretar@вашдомен.ruЖмем enter, вводим тему письма, жмем enter, пишем текст письма, жмем enter, CTRL-D и еще раз enter.
#mailx secretar@вашдомен.ru Cc: <-- ENTER Subject: Welcome <-- ENTER Welcome! Have fun with your new mail account. <-- ENTER <-- CTRL+D #
Логирование
mcedit /etc/logrotate.d/rsyslogУдаляем строки:
/var/log/mail.info /var/log/mail.warn /var/log/mail.err /var/log/mail.logСоздаем:
mcedit /etc/logrotate.d/mailТакого содержания:
/var/log/mail.info /var/log/mail.warn /var/log/mail.err /var/log/mail.log { rotate 24 weekly missingok notifempty compress delaycompress sharedscripts postrotate invoke-rc.d rsyslog reload > /dev/null endscript }Ротироваться лог файлы почты будут каждый день, хранится в течении 24 месяцев. Вы можете выбрать и другие значения, но знайте, что при достаточно высокой нагрузке, лог файлы будут очень быстро расти и за месяц по объему могут перевалить за сотни мегабайт.
Теперь отключим запись логов в /etc/var/log/syslog:
mcedit /etc/rsyslog.confДобавляем запись "mail.none" в строку "*.*;auth,authpriv.none -/var/log/syslog"
*.*;mail.none,auth,authpriv.none -/var/log/syslog
Установка RoundCube
Установка
apt-get install roundcube roundcube-mysqlНа вопрос "Прежде чем использовать пакет roundcube, нужно установить и настроить его базу данных" отвечаем утвердительно.
Использовать будем базу данных mysql.
Вводим пароль root для mysql.
Два раза вводим пароль для создаваемого автоматически пользователя roundcube.
Настроим работу RoundCube через https.
mv /etc/apache2/conf.d/roundcube /etc/apache2/sites-available/ a2ensite roundcube a2enmod sslФайл /etc/apache2/sites-available/roundcube приведем к следующему виду
mcedit /etc/apache2/sites-available/roundcube
<VirtualHost _default_:443> ServerName mail.вашдомен.ru DocumentRoot /var/www Alias /roundcube/program/js/tiny_mce/ /usr/share/tinymce/www/ Alias /roundcube /var/lib/roundcube <Directory "/usr/share/tinymce/www/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order allow,deny allow from all </Directory> <Directory /var/lib/roundcube/> Options +FollowSymLinks AllowOverride All order allow,deny allow from all </Directory> <Directory /var/lib/roundcube/config> Options -FollowSymLinks AllowOverride None </Directory> <Directory /var/lib/roundcube/temp> Options -FollowSymLinks AllowOverride None Order allow,deny Deny from all </Directory> <Directory /var/lib/roundcube/logs> Options -FollowSymLinks AllowOverride None Order allow,deny Deny from all </Directory> SSLEngine on SSLCertificateFile /etc/ssl/certs/mail.вашдомен.ru.crt SSLCertificateKeyFile /etc/ssl/private/mail.вашдомен.ru.key Alias /awstatsicons /usr/share/awstats/icon ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> </VirtualHost>Настроим перенаправление с адреса http://mail.вашдомен.ru:
mcedit /etc/apache2/sites-enabled/000-defaultИ добавим в начало файла следующие строки:
<VirtualHost *:80> ServerAdmin administrator@вашдомен.ru ServerName mail.вашдомен.ru DocumentRoot /var/www RewriteEngine on RewriteRule ^(.*)$ https://mail.вашдомен.ru/roundcube RewriteLog "/var/log/apache2/rewrite.log" RewriteLogLevel 2 </VirtualHost>Включим модуль rewrite:
a2enmod rewrite
Конфигурирование
В файле /etc/roundcube/main.inc.php содержится значительное количество параметров. Поправим некоторые из них://Принудительное использование https. Не гоже чтобы пароли к почте гуляли в открытом виде: $rcmail_config['force_https'] = TRUE; //IMAP сервер. Тут шифрацию включать не будем, потому как и IMAP сервер и RoundCube находятся на одной машине: $rcmail_config['default_host'] = 'ssl://mail.вашдомен.ru'; //Почтовый домен. Пропишем его, если не собираемся использовать несколько виртуальных доменов. Это упростит ввод авторизационных данных при регистрации: $rcmail_config['username_domain'] = 'вашдомен.ru'; $rcmail_config['mail_domain'] = 'mail.вашдомен.ru'; //Наш smtp сервер: $rcmail_config['smtp_server'] = 'localhost'; //Преверять все папки на предмет новых сообщений $rcmail_config['check_all_folders'] = FALSE; //Не отображать удаленные письма $rcmail_config['skip_deleted'] = TRUE; //При первом логине пользователя создаются стандартные почтовые папки (Входящие, Исходящие, Корзина и тд.) $rcmail_config['create_default_folders'] = TRUE;И еще поправим некоторые параметры в файле /usr/share/roundcube/.htaccess:
#Объем вложений: php_value upload_max_filesize 10M #В конфиге по умолчанию, этот параметр указан на 20% больше чем выше. Мы поступим так же: php_value post_max_size 12M #Выделяемый объем оперативной памяти. Немного увеличим: php_value memory_limit 128MРестартуем apache:
/etc/init.d/apache2 restartТеперь web интерфейс к нашей почте доступ по адресу:
http://mail.вашдомен.ru
Статистика
Установка AwStats
apt-get install awstatsКонфигурируем awstats:
mcedit /etc/awstats/awstats.postfix.conf
LogFile = "perl /usr/share/doc/awstats/examples/maillogconvert.pl standard < /var/log/mail.log |" LogType = M LogFormat = "%time2 %email %email_r %host %host_r %method %url %code %bytesd" SiteDomain = "mail.вашдомен.ru" HostAliases = "127.0.0.1 localhost REGEX[mail.вашдомен\.ru$]" DirData = "/mnt/vdb1/awstats" DirCgi = "/awstats" DirIcons = "/awstatsicons" AllowFullYearView = 3 AllowToUpdateStatsFromBrowser = 0 LevelForBrowsersDetection = 0 LevelForOSDetection = 0 LevelForRefererAnalyze = 0 LevelForRobotsDetection = 0 LevelForWormsDetection = 0 LevelForSearchEnginesDetection = 0 LevelForFileTypesDetection = 0 UseFramesWhenCGI = 1 ShowSummary = HB ShowMonthStats = HB ShowDaysOfMonthStats = HB ShowDaysOfWeekStats = HB ShowHoursStats = HB ShowDomainsStats = 1 ShowHostsStats = HBL ShowAuthenticatedUsers = 0 ShowRobotsStats = 0 ShowEMailSenders = HBML ShowEMailReceivers = HBML ShowSessionsStats = 0 ShowPagesStats = 0 ShowFileTypesStats = 0 ShowFileSizesStats = 0 ShowBrowsersStats = 0 ShowOSStats = 0 ShowOriginStats = 0 ShowKeyphrasesStats = 0 ShowKeywordsStats = 0 ShowMiscStats = 0 ShowHTTPErrorsStats = 0 ShowSMTPErrorsStats = 1 LoadPlugin = "decodeutfkeys"Настраиваем ежечасное автоматическое обновление данных:
echo "55 * * * * root /usr/lib/cgi-bin/awstats.pl -config=postfix -update > /dev/null" >> /etc/cron.d/awstatsОтредактируем настройки виртуального хоста mail.вашдомен.ru:
mcedit /etc/apache2/sites-enabled/roundcube
Alias /awstatsicons /usr/share/awstats/icon ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory>Для отображения иконок в awstats выполняем:
ln -s /usr/share/awstats/icon/ /var/www/awstatsiconsСоздадим каталог, в котором Awstats будет хранить свои данные (этот же каталог указан в конфиге):
mkdir /mnt/vdb1/awstats chown www-data:www-data /mnt/vdb1/awstatsТеперь по адресу:
https://mail.вашдомен.ru/cgi-bin/awstats.pl?config=postfixмы можем видеть статистику.
Установка MailGraph
apt-get install mailgraphТеперь по адресу:
http://mail.вашдомен.ru/cgi-bin/mailgraph.cgiможно посмотреть графики работы почтового сервера.
Настройка почтового сервера: Postfix Dovecot MySQL SASL Clamav Spamassassin на Debian 7 Wheezy
Установим необходимые пакеты:
MySQL, Dovecot, Postfix, SASL, bsd-mailx (для тестирования)
Для автоматического конвертирования конфига из ранней версии в позднюю есть утилита doveconf.
Используют ее следующим образом:
Настройка MySQL. Можно так же поставить phpmyadmin для облегченной работы с БД
Для начала необходимо создать БД для почтового сервера Postfix, для этого подключаемся к MySQL:
Теперь создаем БД:
Таблица для хранения виртуальных доменов (в ней будет храниться инфа о доменах которые будут обслуживаться):
Для проверки MySQL необходимо выполнить:
bind-address = 127.0.0.1
Далее необходимо настроить работу Postfix с MySQL, т.е дать ему понять откуда брать данные.
Создадим отдельно каталог mysql в /etc/postfix/ для хранения наших будущих файлов конфигурации:
Файл конфигурации для виртуальных доменов /etc/postfix/mysql/virtual_domains.cf:
Скопируем файл конфигурации для внештатных ситуаций:
Установим права доступа для созданного файла ключа:
Создадим каталог для Saslauthd:
# touch /etc/pam.d/smtp
и внесем следующее содержимое:
Создаем файл конфигурации smtpd.conf:
Теперь необходимо установить права на созданные файлы:
Настройка Dovecot.
Создаем резервную копию конфига:
Далее
# cp /etc/dovecot/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf
и заменяем содержимое на:
Создадим каталог для сертификатов Dovecot:
Установим права доступа для созданного файла ключа:
Для настройки почтовых алиасов необходимо отредактировать файл /etc/aliases. Нас интересует две строки:
postmaster: root
root: postmaster@sysadmin-komi.ru
где меняем адрес postmaster@sysadmin-komi.ru на желаемый. Сохраняем изменения и применяем изменения:
# newaliases
Теперь перезагружаем сервисы Postfix, Saslauthd, Dovecot:
Если нашли указанную строку — все в порядке и можно идти дальше.
Теперь можно приступить к заполнению БД MySQL.
Предварительно сделаем резервную копию наше пустой БД:
Для начала необходимо внести домен. Так как домен будет использоваться только одни, вносим соответственно тоже один: входим в MySQL:
mailxtest@sysadmin-komi.ru
где изменяем аккаунт на свой.
вводим тему сообщения, нажимаем Enter и вводим текст сообщения после чего нажимаем комбинацию Ctrl+D. Поле «СС» оставляем пустым.
Теперь смотрим файл логов на предмет ошибок и прочего:
Настройка переадресации почты.
Для переадресации почты мы изначально создавали конфиг virtual_forwardings.cf с таблицей в MySQL, теперь только осталось заполнить БД данными для требуемых пользователей.
Настроим переадресацию почты с пользователя root на нашего созданного пользователя test@sysadmin-komi.ru(не забываем менять данные на свои):
mysql -u root -p
USE mail;
INSERT INTO forwardings (source, destination) VALUES ('root@sysadmin-komi.ru', 'test@sysadmin-komi.ru');
quit
Теперь можно протестировать перенаправление почты с одного пользователя на другого.
На этом настройка MTA закончена. Можно прикрутить SpamAssassin, ClamAV, Roundcube но это уже дело вкуса и по надобности.
Ставим SpamAssassin, ClamAV
Clamav
Отредактируйте /etc/default/spamassassin для активации сервиса Spamassassin. Измените
на
Теперь запустим сервис:
Возврат спама может быть плохой идеей, поскольку обратный адрес часто неверный. Подумайте над тем, чтобы изменить в /etc/amavis/conf.d/20-debian_defaults установку $final_spam_destiny на D_DISCARD вместо D_BOUNCE, как показано ниже:
Дополнительно вы можете захотеть установить следующие опциональные флаги для отметки большего количества сообщений как спам:
Если сетевое имя сервера отличается от MX записи домена, вам может потребоваться установить вручную опцию $myhostname. Также, если сервер принимает почту для нескольких доменов, опцию @local_domains_acl потребуется изменить. Отредактируйте файл /etc/amavis/conf.d/50-user:
Если вы хотите покрывать несколько доменов, вы можете использовать следующее в файле /etc/amavis/conf.d/50-user:
После настройки Amavisd-new требуется перезапустить:
Далее отредактируйте /etc/postfix/master.cf, добавив следующее в коне файла:
Также добавьте следующие две строки непосредственно после транспортного сервиса "pickup":
Это предотвратит от попадания в спам сообщений, созданных в качестве отчетов о спаме.
Теперь перезапустите Postfix:
Фильтрация содержимого с поиском спама и вирусов теперь включена.
Существует несколько вариантов разрешить эту ситуацию:
В заголовке сообщений, которые будут проходить через фильтр содержимого вы должны увидеть следующее:
Установим необходимые пакеты:
MySQL, Dovecot, Postfix, SASL, bsd-mailx (для тестирования)
# apt-get install mysql-client mysql-server postfix postfix-mysql postfix-doc dovecot-common dovecot-imapd libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl telnet bsd-mailxВ Debian 7 используется Dovecot v2.1.7, поэтому если есть конфиг более ранней версии — то его необходимо будет изменять, так как на новой версии он однозначно не заведется.
Для автоматического конвертирования конфига из ранней версии в позднюю есть утилита doveconf.
Используют ее следующим образом:
# doveconf -n -c /etc/dovecot/dovecot.conf > /etc/dovecot/dovecot-2.confПосле выполнения конвертирования стоит внимательно посмотреть что выплюнет консоль, ибо в ней 99% будет выведена информация для решения проблемы и помощи в поднятии до рабочего состояния нового конфига.
Настройка MySQL. Можно так же поставить phpmyadmin для облегченной работы с БД
Для начала необходимо создать БД для почтового сервера Postfix, для этого подключаемся к MySQL:
# mysql -u root -pвводим пароль(он при вводе не отображается) и в случае удачного:
Теперь создаем БД:
CREATE DATABASE mail;далее выбираем нашу базу:
USE mail;Для дальнейшей настройки необходимо придумать логин и пароль который будет использоваться в почте для настройки файлов конфигурации (соответственно mail_admin_post и mail_adminPOST необходимо изменить на свое).
GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin_post'@'localhost' IDENTIFIED BY 'mail_adminPOST';
GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin_post'@'localhost.localdomain' IDENTIFIED BY 'mail_adminPOST';
FLUSH PRIVILEGES;Теперь необходимо создать таблицы в нашей БД.
Таблица для хранения виртуальных доменов (в ней будет храниться инфа о доменах которые будут обслуживаться):
CREATE TABLE domains (domain varchar(50) NOT NULL, PRIMARY KEY(domain));Таблица в которой будет храниться информация о пересылке писем между почтовыми ящиками (перенаправление писем с одного почтового ящика на другой):
CREATE TABLE forwardings (source varchar(80) NOT NULL, destination TEXT NOT NULL, PRIMARY KEY(source));Таблица для хранения почтовых аккаунтов:
CREATE TABLE users (email varchar(80) NOT NULL, password varchar(20) NOT NULL, PRIMARY KEY(email));На этом работа пока с MySQL закончена.
Для проверки MySQL необходимо выполнить:
# cat /etc/mysql/my.cnf |grep bindна что мы должны получить:
bind-address = 127.0.0.1
Далее необходимо настроить работу Postfix с MySQL, т.е дать ему понять откуда брать данные.
Создадим отдельно каталог mysql в /etc/postfix/ для хранения наших будущих файлов конфигурации:
# mkdir /etc/postfix/mysqlДалее создаем файлы конфигурации с указанным содержимым.
Файл конфигурации для виртуальных доменов /etc/postfix/mysql/virtual_domains.cf:
user = mail_admin_post password = mail_adminPOST dbname = mail query = SELECT domain AS virtual FROM domains WHERE domain = '%s' hosts = 127.0.0.1Файл конфигурации для перенаправления почты с почтовых ящиков /etc/postfix/mysql/virtual_forwardings.cf:
user = mail_admin_post password = mail_adminPOST dbname = mail query = SELECT destination FROM forwardings WHERE source = '%s' hosts = 127.0.0.1Файл конфигурации для почтовых аккаунтов /etc/postfix/mysql/virtual_mailboxes.cf:
user = mail_admin_post password = mail_adminPOST dbname = mail query = SELECT CONCAT( SUBSTRING_INDEX(email, '@', -1), '/' , SUBSTRING_INDEX(email, '@', 1), '/' ) FROM users WHERE email = '%s' hosts = 127.0.0.1Файл конфигурации для отображения почты /etc/postfix/mysql/virtual_email2email.cf:
user = mail_admin_post password = mail_adminPOST dbname = mail query = SELECT email FROM users WHERE email = '%s' hosts = 127.0.0.1Установим права и владельца для созданных файлов:
# chmod o= /etc/postfix/mysql/virtual_*.cf
# chgrp postfix /etc/postfix/mysql/virtual_*.cfДобавим группу с пользователем для хранения/передачи почты:
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /home/vmail -mНастройка Postfix.
Скопируем файл конфигурации для внештатных ситуаций:
# cp /etc/postfix/main.cf /etc/postfix/main.cf.backи приступаем к его наполнению:
# See /usr/share/postfix/main.cf.dist for a commented, more complete version # Debian specific: Specifying a file name will cause the first # line of that file to be used as the name. The Debian default # is /etc/mailname. #myorigin = /etc/mailname smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) biff = no # appending .domain is the MUA's job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h readme_directory = /usr/share/doc/postfix # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for # information on enabling SSL in the smtp client.
myhostname = mail.sysadmin.com alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = mail.sysadmin.com, localhost.sysadmin.com, , localhost relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all html_directory = /usr/share/doc/postfix/html # TLS parameters smtpd_tls_cert_file = /etc/postfix/certificate/smtpd.pem smtpd_tls_key_file = /etc/postfix/certificate/smtpd.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_loglevel = 0 #smtpd_tls_received_header = yes # MySQL конфигурация virtual_alias_domains = virtual_alias_maps = proxy:mysql:/etc/postfix/mysql/virtual_forwardings.cf, mysql:/etc/postfix/mysql/virtual_email2email.cf virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql/virtual_domains.cf virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql/virtual_mailboxes.cf virtual_mailbox_base = /home/vmail virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 # SASL конфигурация smtpd_sasl_auth_enable = yes smtpd_sasl_authenticated_header = yes smtpd_sasl_local_domain = $myhostname smtpd_sasl_security_options = noanonymous smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth broken_sasl_auth_clients = yes smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_unauth_pipelining, reject_invalid_hostname,
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps virtual_transport = dovecot
Далее приступаем к генерированию SSL сертификатов для Postfix:
# openssl req -new -outform PEM -out smtpd.pem -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509вводим запрашиваемые данные и у нас появятся 2 файла.
Установим права доступа для созданного файла ключа:
# chmod o= /etc/postfix/certificate/smtpd.keyНастраиваем совместную работу Saslauthd c MySQL для Postfix.
Создадим каталог для Saslauthd:
# mkdir -p /var/spool/postfix/var/run/saslauthdСоздадим резервную копию файла конфигурации:
# cp -a /etc/default/saslauthd /etc/default/saslauthd.backи можно приступить к редактированию конфига, который приводим к такому виду:
START=yes DESC="SASL Authentication Daemon" NAME="saslauthd" MECHANISMS="pam" MECH_OPTIONS="" THREADS=5 OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"Далее создадим файл для smtp:
# touch /etc/pam.d/smtp
и внесем следующее содержимое:
auth required pam_mysql.so user=mail_admin_post passwd=mail_adminPOST host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1 account sufficient pam_mysql.so user=mail_admin_post passwd=mail_adminPOST host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1где необходимо заменить вместо mail_admin_post и mail_adminPOST свои значения использовавшиеся выше.
Создаем файл конфигурации smtpd.conf:
# touch /etc/postfix/sasl/smtpd.confи вносим содержимое:
pwcheck_method: saslauthd mech_list: plain login allow_plaintext: true auxprop_plugin: mysql sql_hostnames: 127.0.0.1 sql_user: mail_admin_post sql_passwd: mail_adminPOST sql_database: mail sql_select: SELECT password FROM users WHERE email = '%u'где также необходимо заменить вместо mail_admin_post и mail_adminPOST свои значения использовавшиеся выше.
Теперь необходимо установить права на созданные файлы:
# chmod o= /etc/pam.d/smtp
# chmod o= /etc/postfix/sasl/smtpd.confи добавить пользователя postfix в группу sasl:
# adduser postfix saslТеперь необходимо перезапустить сервисы postfix и saslauthd:
# service postfix restart
# service saslauthd restartОшибок не должно быть.
Настройка Dovecot.
Создаем резервную копию конфига:
# cp /etc/postfix/master.cf /etc/postfix/master.cf_backи начинаем править master.cf добавляя в конце конфига:
dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}Делаем резервную копию dovecot.conf:
# cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf_backи заменяем все содержимое файла конфига на ниже приведенный код:
# Dovecote configuration file
protocols = imap
listen = *
shutdown_clients = yes
mail_uid = vmail
mail_gid = vmail
first_valid_uid = 5000
last_valid_uid = 5000
# Log files
log_path = /var/log/dovecot.log
log_timestamp = "%Y-%m-%d %H:%M:%S "
# SSL
ssl_cert = </etc/dovecot/certificate/dovecot.pem
ssl_key = </etc/dovecot/certificate/dovecot.key
# Расположениеиформатфайловпочты (%d - домен, %n - имяпользователя)
mail_location = maildir:/home/vmail/%d/%n
protocol lda {
auth_socket_path = /var/run/dovecot/auth-master
log_path = /home/vmail/dovecot-deliver.log
mail_plugins = sieve
postmaster_address = postmaster@sysadmin-komi.ru
}
namespace {
inbox = yes
location =
prefix = INBOX.
separator = .
}
passdb {
args = /etc/dovecot/dovecot-sql.conf
driver = sql
}
service auth {
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0660
user = postfix
}
unix_listener auth-master {
mode = 0600
user = vmail
}
user = root
}
userdb {
args = uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes
driver = static
}
где необходимо изменить адрес postmaster@sysadmin-komi.ru на свой.Далее
# cp /etc/dovecot/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf
и заменяем содержимое на:
driver = mysql connect = host=127.0.0.1 dbname=mail user=mail_admin_post password=mail_adminPOST default_pass_scheme = CRYPT password_query = SELECT email AS user, password FROM users WHERE email = '%u'где необходимо также поменять mail_admin_post и mail_adminPOST на свои.
Создадим каталог для сертификатов Dovecot:
# mkdir /etc/dovecot/certificateДалее приступаем к генерированию SSL сертификатов для Dovecot:
# openssl req -new -outform PEM -out dovecot.pem -newkey rsa:2048 -nodes -keyout dovecot.key -keyform PEM -days 365 -x509вводим запрашиваемые данные и у нас появятся 2 файла.
Установим права доступа для созданного файла ключа:
# chmod o= /etc/dovecot/certificate/dovecot.keyПерезапускаемсервис dovecot:
# service dovecot restartУстанавливаем права и владельца на созданные файлы конфигурации:
# chgrp vmail /etc/dovecot/dovecot.conf
# chmod g+r /etc/dovecot/dovecot.confНастройка почтовых алиасов.
Для настройки почтовых алиасов необходимо отредактировать файл /etc/aliases. Нас интересует две строки:
postmaster: root
root: postmaster@sysadmin-komi.ru
где меняем адрес postmaster@sysadmin-komi.ru на желаемый. Сохраняем изменения и применяем изменения:
# newaliases
Теперь перезагружаем сервисы Postfix, Saslauthd, Dovecot:
# service postfix restart
# service saslauthd restart
# service dovecot restartТеперь можно проверить работу IMAP сервера и для этого воспользуемся telnet:
telnet localhost 25на что нам должно выдать сообщение:
Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 sysadmin-komi.ru ESMTP Postfix (Debian/GNU)далее необходимо убедиться в наличии 250-STARTTLS
ehlo localhostна что выдаст что то наподобие:
250-sysadmin-komi.ru 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH PLAIN 250-AUTH=PLAIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSNДля выхода необходимо ввести команду quit.
Если нашли указанную строку — все в порядке и можно идти дальше.
Теперь можно приступить к заполнению БД MySQL.
Предварительно сделаем резервную копию наше пустой БД:
Для начала необходимо внести домен. Так как домен будет использоваться только одни, вносим соответственно тоже один: входим в MySQL:
mysql -u root -pвыбираем нашу БД:
USE mail;вносим наш домен:
INSERT INTO domains (domain) VALUES ('sysadmin-komi.ru');Теперь создадим нашего первого пользователя:
INSERT INTO users (email, password) VALUES ('test@sysadmin-komi.ru', ENCRYPT('password'));Теперь необходимо проверить работу отправки сообщения на созданный аккаунт, для этого воспользуемся программой mailx из пакета bsd-mailx:
mailxtest@sysadmin-komi.ru
где изменяем аккаунт на свой.
вводим тему сообщения, нажимаем Enter и вводим текст сообщения после чего нажимаем комбинацию Ctrl+D. Поле «СС» оставляем пустым.
Теперь смотрим файл логов на предмет ошибок и прочего:
Jan 19 01:29:21 user postfix/pickup[7933]: 444AF3F130: uid=1000 from=<userpc> Jan 19 01:29:21 user postfix/cleanup[7944]: 444AF3F130: message-id=<20140118232921.444AF3F130@sysadmin-komi.ru>; Jan 19 01:29:21 user postfix/qmgr[7113]: 444AF3F130: from=<>, size=292, nrcpt=1 (queue active) an 19 01:29:21 user postfix/pipe[7949]: 444AF3F130: to=<test@sysadmin-komi.ru>;, relay=dovecot, delay=0.32, delays=0.12/0.01/0/0.19, dsn=2.0.0, status=sent (delivered via dovecot service) Jan 19 01:29:21 user postfix/qmgr[7113]: 444AF3F130: removed
заодносмотримфайллогов Dovecot в /home/vmail/dovecot-deliver.log:
2014-01-19 01:29:21 lda(test@sysadmin-komi.ru): Info: msgid=<20140118232921.444AF3F130@sysadmin-komi.ru>;: saved mail to INBOXОшибок нет. Письмо тестовое успешно отправлено и доставлено.
Настройка переадресации почты.
Для переадресации почты мы изначально создавали конфиг virtual_forwardings.cf с таблицей в MySQL, теперь только осталось заполнить БД данными для требуемых пользователей.
Настроим переадресацию почты с пользователя root на нашего созданного пользователя test@sysadmin-komi.ru(не забываем менять данные на свои):
mysql -u root -p
USE mail;
INSERT INTO forwardings (source, destination) VALUES ('root@sysadmin-komi.ru', 'test@sysadmin-komi.ru');
quit
Теперь можно протестировать перенаправление почты с одного пользователя на другого.
На этом настройка MTA закончена. Можно прикрутить SpamAssassin, ClamAV, Roundcube но это уже дело вкуса и по надобности.
Ставим SpamAssassin, ClamAV
apt-get install amavisd-new spamassassin clamav-daemon pyzor razor arj cabextract cpio nomarch pax rar unrar unzip zip
adduser clamav amavis
adduser amavis clamav
gpasswd -a amavis clamav
Spamassassin
Spamassassin автоматически определяет общие компоненты и использует их, если они присутствуют. Это означает, что нет необходимости настраивать pyzor и razor.Отредактируйте /etc/default/spamassassin для активации сервиса Spamassassin. Измените
ENABLED=0
ENABLED=1
service spamassassin start
Amavisd-new
Сначала активируем проверку на спам и вирусы в Amavisd-new, отредактировав /etc/amavis/conf.d/15-content_filter_mode:use strict;
# You can modify this file to re-enable SPAM checking through spamassassin
# and to re-enable antivirus checking.
#
# Default antivirus checking mode
# Uncomment the two lines below to enable it
#
@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
#
# Default SPAM checking mode
# Uncomment the two lines below to enable it
#
@bypass_spam_checks_maps = (
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
1; # insure a defined return
$final_spam_destiny = D_DISCARD;
$sa_tag_level_deflt = -999; # add spam info headers if at, or above that level
$sa_tag2_level_deflt = 6.0; # add 'spam detected' headers at that level
$sa_kill_level_deflt = 21.0; # triggers spam evasive actions
$sa_dsn_cutoff_level = 4; # spam level beyond which a DSN is not sent
$myhostname = 'mail.sysadmin-komi.ru';
@local_domains_acl = ( "sysadmin-komi.ru", "example.org" );
@local_domains_acl = qw(.);
service amavis restart
Postfix
Для интеграции Postfix, введите следующее из терминала:postconf -e 'content_filter = smtp-amavis:[127.0.0.1]:10024'
smtp-amavis unix - - - - 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20
127.0.0.1:10025 inet n - - - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks
-o content_filter=
-o receive_override_options=no_header_body_checks
Теперь перезапустите Postfix:
service postfix restart
Amavisd-new и Spamassassin
При интеграции Amavisd-new со Spamassassin, если вы решили заблокировать фильтр Байеса, отредактировав /etc/spamassassin/local.cf, и использовать cron для обновления ночных правил, то это может привести к ситуации, когда большой объем сообщений об ошибках будет посылаться пользователю amavis через задание cron amavisd-new.Существует несколько вариантов разрешить эту ситуацию:
- Настройте ваш MDA на фильтрацию сообщений, которые вы не желаете видеть.
- Измените /usr/sbin/amavisd-new-cronjob на проверку, что use_bayes установлен в 0. Например, отредактируйте /usr/sbin/amavisd-new-cronjob, добавив следующее в начало до строк проверки:
egrep -q "^[ \t]*use_bayes[ \t]*0" /etc/spamassassin/local.cf && exit 0
Проверка
Для начала проверьте, что Amavisd-new SMTP активен:telnet localhost 10024
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 [127.0.0.1] ESMTP amavisd-new service ready
^]
X-Spam-Level:
X-Virus-Scanned: Debian amavisd-new at sysadmin-komi.ru
X-Spam-Status: No, hits=-2.3 tagged_above=-1000.0 required=5.0 tests=AWL, BAYES_00
X-Spam-Level:
Все, отлично получилось, дальше можно прикручивать разные правила и так же прикрутить roudncubemail, всем приятной работы.
По просьбе трудящихся, допилим эту связку…
Установка PostfixAdmin
Качаем deb-пакет от производителя. На данный момент версия - 2.91-1.
root@mail:/# cd /usr/src/
root@mail:/usr/src# dpkg -i postfixadmin_2.91-1_all.deb
Debian ругнется на то, что нет определенных пакетов. Выполним следующее
root@mail:/usr/src# apt-get -f install
Теперь ответим на вопросы:
1. Webserver, на котором будет работать PostfixAdmin — выбираем apache2
2. Настроить базу данных для PostfixAdmin с помощью dbconfig-common — выбираем Да
3. Тип базы, используемой в PostfixAdmin - mysql
4. Вводим пароль root MySQL
5. Вводим пароль для подключения к базе postfixadmin - 123456789
6. Подтверждаем пароль
Редактируем файл конфига /etc/postfixadmin/config.inc.php — проверяем следующие строки
$CONF['database_type'] = 'mysql'; $CONF['database_host'] = 'localhost'; $CONF['database_user'] = 'postfixadmin'; $CONF['database_password'] = '123456789'; $CONF['database_name'] = 'postfixadmin'; $CONF['database_prefix'] = '';
Остальные опции правим под себя. В качестве примера привожу полный вариант своего config.inc.php
Придумываем пароль, вводим его и нажимаем «Generate password hash».Теперь копируем всю строку с хэшем пароля установки (начинается с $CONF['setup_password']) и заменяем нею соответствующую строку в файле config.inc.php, сохраняем изменения в файле. Теперь обновляем страницу в браузере.
Вводим пароль, вводим e-mail администратора и подтверждаем его пароль. После этого нажимаем «Добавить администратора». Должно появиться сообщение о том, что администратор успешно добавлен.
X-Virus-Scanned: Debian amavisd-new at sysadmin-komi.ru
X-Spam-Status: No, hits=-2.3 tagged_above=-1000.0 required=5.0 tests=AWL, BAYES_00
X-Spam-Level:
Все, отлично получилось, дальше можно прикручивать разные правила и так же прикрутить roudncubemail, всем приятной работы.
По просьбе трудящихся, допилим эту связку…
Установка PostfixAdmin
Качаем deb-пакет от производителя. На данный момент версия - 2.91-1.
root@mail:/# cd /usr/src/
root@mail:/usr/src# wget http://sourceforge.net/projects/postfixadmin/files/postfixadmin/postfixadmin-2.91/postfixadmin_2.91-1_all.debУстанавливаем
root@mail:/usr/src# dpkg -i postfixadmin_2.91-1_all.deb
Debian ругнется на то, что нет определенных пакетов. Выполним следующее
root@mail:/usr/src# apt-get -f install
Теперь ответим на вопросы:
1. Webserver, на котором будет работать PostfixAdmin — выбираем apache2
2. Настроить базу данных для PostfixAdmin с помощью dbconfig-common — выбираем Да
3. Тип базы, используемой в PostfixAdmin - mysql
4. Вводим пароль root MySQL
5. Вводим пароль для подключения к базе postfixadmin - 123456789
6. Подтверждаем пароль
Редактируем файл конфига /etc/postfixadmin/config.inc.php — проверяем следующие строки
$CONF['database_type'] = 'mysql'; $CONF['database_host'] = 'localhost'; $CONF['database_user'] = 'postfixadmin'; $CONF['database_password'] = '123456789'; $CONF['database_name'] = 'postfixadmin'; $CONF['database_prefix'] = '';
Остальные опции правим под себя. В качестве примера привожу полный вариант своего config.inc.php
Придумываем пароль, вводим его и нажимаем «Generate password hash».Теперь копируем всю строку с хэшем пароля установки (начинается с $CONF['setup_password']) и заменяем нею соответствующую строку в файле config.inc.php, сохраняем изменения в файле. Теперь обновляем страницу в браузере.
Вводим пароль, вводим e-mail администратора и подтверждаем его пароль. После этого нажимаем «Добавить администратора». Должно появиться сообщение о том, что администратор успешно добавлен.
Комментарии
Отправить комментарий