Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:почтовый_сервер_со_всем_фаршем_на_10.04_lts [2011/07/20 12:57] [О документе] |
wiki:почтовый_сервер_со_всем_фаршем_на_10.04_lts [2012/09/10 13:27] (текущий) [Настройка Postfix] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ===== О документе ===== | + | ===== Почтовый сервер со всем фаршем на 10.04 LTS ===== |
Этот документ описывает процедуру установки почтового сервера на базе //Ubuntu 10.04 LTS//. В документе использовано следующее форматирование: | Этот документ описывает процедуру установки почтового сервера на базе //Ubuntu 10.04 LTS//. В документе использовано следующее форматирование: | ||
Строка 267: | Строка 267: | ||
sudo postconf -e 'smtpd_tls_key_file = /etc/postfix/smtp.key' | sudo postconf -e 'smtpd_tls_key_file = /etc/postfix/smtp.key' | ||
sudo postconf -e 'transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf' | sudo postconf -e 'transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf' | ||
- | sudo postconf -e 'virtual_create_maildirsize = yes' | + | sudo postconf -e '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' </code> |
- | sudo postconf -e 'virtual_mailbox_extended = yes' | + | |
- | sudo postconf -e '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' </code> | + | |
===== Создание SSL-сертификатов ===== | ===== Создание SSL-сертификатов ===== | ||
Теперь создадим SSL сертификаты для TLS. Лучше всего (хотя и не обязательно) создать вначале свой CA (Certificate Authority), а потом подписать от его имени все сертификаты (нам еще понадобятся сертификаты для //dovecot//). В этом случае клиентам нужно будет добавить доверие к этому CA, а не каждому сертификату отдельно. | Теперь создадим SSL сертификаты для TLS. Лучше всего (хотя и не обязательно) создать вначале свой CA (Certificate Authority), а потом подписать от его имени все сертификаты (нам еще понадобятся сертификаты для //dovecot//). В этом случае клиентам нужно будет добавить доверие к этому CA, а не каждому сертификату отдельно. | ||
Строка 346: | Строка 344: | ||
Создаем сертификат для подписывания: | Создаем сертификат для подписывания: | ||
- | <code bash>openssl x509 -trustout -inform PEM -in ca.crt -outform DER -out ca.pfx</code> | + | <code bash>openssl pkcs12 -export -in ca.cer -inkey ca.key -out ca.pfx</code> |
+ | |||
+ | <del>openssl x509 -trustout -inform PEM -in ca.crt -outform DER -out ca.pfx</del> | ||
Создадим директорию, в которой у нас будут лежать все ключи для всех серверов (если мы в дальнейшем будем создавать и подписывать ключи для других серверов; например, захотим, чтобы ключи были разные для //smtp.aaa.ru// //pop3.aaa.ru// и //imap.aaa.ru//) и, соответственно, директории для всех имен серверов (в нашем случае — //oban.aaa.ru//) | Создадим директорию, в которой у нас будут лежать все ключи для всех серверов (если мы в дальнейшем будем создавать и подписывать ключи для других серверов; например, захотим, чтобы ключи были разные для //smtp.aaa.ru// //pop3.aaa.ru// и //imap.aaa.ru//) и, соответственно, директории для всех имен серверов (в нашем случае — //oban.aaa.ru//) | ||
Строка 479: | Строка 479: | ||
(ответим, что мы хотим доверять новым сертификатам и выберем в списке наш новый сертификат для активации) | (ответим, что мы хотим доверять новым сертификатам и выберем в списке наш новый сертификат для активации) | ||
- | Нашим клиентам, которые будут связываться с нашим первером с использованием шифрования (TLS, SSL) или с нашим веб-сервером по протоколу HTTPS нужно установить доверие к нашему CA. Тем или иным способом передайте им открытый ключ нашего CA - ca.crt. | + | Нашим клиентам, которые будут связываться с нашим сервером с использованием шифрования (TLS, SSL) или с нашим веб-сервером по протоколу HTTPS нужно установить доверие к нашему CA. Тем или иным способом передайте им открытый ключ нашего CA - ca.crt. |
<note warning>Внимание! Никогда никому не передавайте созданные приватные ключи *.key и не делайте их доступными! </note> | <note warning>Внимание! Никогда никому не передавайте созданные приватные ключи *.key и не делайте их доступными! </note> | ||
Строка 1141: | Строка 1141: | ||
Отредактируем файл /etc/horde/imp4/servers.php | Отредактируем файл /etc/horde/imp4/servers.php | ||
- | <code bash>sudo /etc/horde/imp4/servers.php</code> | + | <code bash>sudo nano /etc/horde/imp4/servers.php</code> |
<file>$servers['imap'] = array( | <file>$servers['imap'] = array( | ||
Строка 1865: | Строка 1865: | ||
<file>milter_default_action = accept | <file>milter_default_action = accept | ||
milter_protocol = 2 | milter_protocol = 2 | ||
- | #smtpd_milters = inet:localhost:8891,inet:localhost:8892 ; for internal delivery only | + | smtpd_milters = inet:localhost:8891,inet:localhost:8892 |
non_smtpd_milters = inet:localhost:8891,inet:localhost:8892 </file> | non_smtpd_milters = inet:localhost:8891,inet:localhost:8892 </file> | ||
- | |||
- | Мы хотим, чтобы подписывались только исходящие письма, поэтому строка //smtpd_milters// закомментарена. | ||
Проверьте, что файл | Проверьте, что файл | ||
Строка 1877: | Строка 1875: | ||
<file>$enable_dkim_verification = 1; </file> | <file>$enable_dkim_verification = 1; </file> | ||
+ | |||
+ | Отредактируем файл /etc/postfix/master.cf | ||
+ | |||
+ | <code bash>sudo nano /etc/postfix/master.cf</code> | ||
+ | |||
+ | и в блоке | ||
+ | |||
+ | <file>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 </file> | ||
+ | |||
+ | изменим строку | ||
+ | |||
+ | <file> -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks,no_milters</file> | ||
+ | |||
+ | иначе наши исходящие письма будут подписываться //DKIM// два раза. | ||
Последнее, что нам осталось сделать - это внести изменения в DNS-записи нашего домена (доменов): | Последнее, что нам осталось сделать - это внести изменения в DNS-записи нашего домена (доменов): | ||
Строка 3636: | Строка 3660: | ||
<file>procmail unix - n n - - pipe | <file>procmail unix - n n - - pipe | ||
- | -o flags=RO user=vmail argv=/usr/bin/procmail -t -m USER=${user} EXTENSION=${extension} NEXTHOP=${nexthop} /etc/postfix/procmailrc.common </file> | + | -o flags=RO user=vmail argv=/usr/bin/procmail -t -m USER=${user} EXTENSION=${extension} NEXTHOP=${nexthop} /etc/postfix/procmail.common </file> |
(вторая строка должна начинаться хотя бы с одного пробела) | (вторая строка должна начинаться хотя бы с одного пробела) | ||
Строка 3874: | Строка 3898: | ||
Теперь в разделе **Почта — Фильтры** можно активировать, редактировать имеющиеся фильтры или добавлять новые. Все правила, которые Вы будете задавать через //horde (ingo)// будут записываться в файл правил с именем //ingo//. Этот файл будет доступен для редактирования с помощью любого другого плагина //sieve// (например, к //thunderbird//). | Теперь в разделе **Почта — Фильтры** можно активировать, редактировать имеющиеся фильтры или добавлять новые. Все правила, которые Вы будете задавать через //horde (ingo)// будут записываться в файл правил с именем //ingo//. Этот файл будет доступен для редактирования с помощью любого другого плагина //sieve// (например, к //thunderbird//). | ||
+ | |||
+ | ===== FAQ ===== | ||
+ | |||
+ | **Q: В этой статье написано, как настроить LDAP?**\\ | ||
+ | A: Нет. Настройка LDAP - это своя большая тема, которая лежит за рамками этого howto. Здесь просто показано, как использовать уже имеющийся LDAP. Если его нет (и нет AD) - используйте только mysql. | ||
+ | |||
+ | **Q: Как сделать такой сервер, но без LDAP?**\\ | ||
+ | A: Просто пропускайте все, что связано с LDAP и делайте только то, что связано с mysql. | ||
===== Ссылки ===== | ===== Ссылки ===== | ||
* [[http://forum.ubuntu.ru/index.php?topic=127090.0|Обсуждение статьи на форуме]] | * [[http://forum.ubuntu.ru/index.php?topic=127090.0|Обсуждение статьи на форуме]] | ||
- | * [[http://forum.ubuntu.ru/index.php?action=dlattach;topic=127090.0;attach=25869|Статья в формате .odt]] | + | * [[http://forum.ubuntu.ru/index.php?action=dlattach;topic=127090.0;attach=30328|Статья в формате .odt]] |
- | + | * [[http://wiki.horde.org/FAQ/Admin/Troubleshoot|Horde Administrator's FAQ]] — решение проблем с Horde | |
- | {{tag>postfix dovecot amavis spamassassin autoresponder sieve horde clamav razor pyzor postgrey spf dkim domainkey mailman fail2ban munin}} | + | |
+ | {{tag>администрирование postfix dovecot amavis spamassassin autoresponder sieve horde clamav razor pyzor postgrey spf dkim domainkey mailman fail2ban munin}} |