openssl

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

openssl

Непрочитанное сообщение ProFTP » 2008-07-26 14:23:17

подскажите в каких ситуациях нужно шифровать почту?

1) если я получаю почту с POP3, сам использую пользовтаелский агент в другой сети?
2) или если на сервер работают пользователи от web сервера? (при добавлении пользователем я написал: nologin в sh)

нужно шифровать?
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: openssl

Непрочитанное сообщение zingel » 2008-07-26 14:36:55

шифровать нужно всё
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: openssl

Непрочитанное сообщение ProFTP » 2008-07-26 14:39:40

но если фильм буду передавть, то это ресурсы будет жрать в 4 раза...

много Howto написаны без шифрование или просто БД с шифрвоанием и все

вот тут без шифрвоания, это что не правильная статья?
http://www.sys-adm.org.ua/mail/mail-howto-p1.php
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: openssl

Непрочитанное сообщение zingel » 2008-07-26 14:49:21

это такой скрытый PR? =)

p.s. статья правильная, но шифровать нужно всё, да и это не поможет....
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: openssl

Непрочитанное сообщение ProFTP » 2008-07-26 14:54:03

zingel писал(а):это такой скрытый PR? =)

p.s. статья правильная, но шифровать нужно всё, да и это не поможет....
нет, это друг lissyara'ы писал ту статью, но все равно многие Howto написаны без шифрования!

и зачем тогда протокол http сделали, надо было сразу https...
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: openssl

Непрочитанное сообщение zingel » 2008-07-26 14:56:20

тогда интернет был чист, девственен, ухожен, а не то, что сейчас - помойка мозговых высеров всех кому не лень...про большого ^ брата (привет, привет) я вообще не говорю....
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: openssl

Непрочитанное сообщение ProFTP » 2008-07-30 4:04:19

Код: Выделить всё

Самым важным параметром является значение Common Name. В нашем случае оно должно совпадать с FQDN сервера, по которому клиенты будут обращаться к нему для отправки почты. После генерации сертификата необходимо включить поддержку TLS в файле main.cf: 
скажите, что писать в FQDN?

хост или домен?

если у меня несколько доменов?

или там надо что-то добавить в ДНС? не могу понять что-то?
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: openssl

Непрочитанное сообщение zingel » 2008-07-30 21:37:43

:[hint]: FQDN: Fully qualified domain name
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: openssl

Непрочитанное сообщение Morty » 2008-07-30 21:52:49

При создании сертификата будет спрашивать

Код: Выделить всё

Common Name : _______
вот туда нада вводит то(FQDN) на что будеш вешать сертификат? если сайт coolsite.com.au
то и CN:coolsite.com.au, при разных данных будет расхождение в данных сертификата на сторне клиента при принятии сертификата(несоответствие), будет ругань....
в ситуации с поддоменами в инете встречаються сертификаты не типа FQDN а в шаблоне

Код: Выделить всё

*.cool.com

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: openssl

Непрочитанное сообщение ProFTP » 2008-08-01 2:17:58

Morty писал(а):При создании сертификата будет спрашивать

Код: Выделить всё

Common Name : _______
вот туда нада вводит то(FQDN) на что будеш вешать сертификат? если сайт coolsite.com.au
то и CN:coolsite.com.au, при разных данных будет расхождение в данных сертификата на сторне клиента при принятии сертификата(несоответствие), будет ругань....
в ситуации с поддоменами в инете встречаються сертификаты не типа FQDN а в шаблоне

Код: Выделить всё

*.cool.com
а как ругаться будет, сильно? если домен будет ua. com. ru etc? или это для всех MTA и pop3-ssl будет ругаться?

======================================================================



при создании ящика пишет такое:

куда копать?

Код: Выделить всё

Aug  1 02:03:00  postfix/master[1815]: daemon started -- version 2.4.6, configuration /usr/local/etc/postfix
Aug  1 02:06:20  postfix/smtpd[1829]: connect from localhost[127.0.0.1]
Aug  1 02:06:20  postfix/smtpd[1829]: setting up TLS connection from localhost[127.0.0.1]
Aug  1 02:06:20  postfix/smtpd[1829]: SSL_accept error from localhost[127.0.0.1]: -1
Aug  1 02:06:20  postfix/smtpd[1829]: warning: TLS library problem: 1829:error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol:s23_srvr.c:562:
Aug  1 02:06:20  postfix/smtpd[1829]: lost connection after CONNECT from localhost[127.0.0.1]
Aug  1 02:06:20  postfix/smtpd[1829]: disconnect from localhost[127.0.0.1]

каталог в spool/mail не создаеться
telnet 127.0.0.1 25 зашел (перекинуло наверное на 456), он написано что принял сертификат и отправить можно 250-STARTTLS, через openssl на 993 вроде бы тоже зашел

Код: Выделить всё

# postfix start
postfix/postfix-script: starting the Postfix mail system
thedj# telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 smtp.x0.org.ua ESMTP
ehlo alex.sys-adm.local
250-smtp.x0.org.ua
250-PIPELINING
250-SIZE 5242880
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN CRAM-MD5
250-AUTH=LOGIN PLAIN CRAM-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

Код: Выделить всё

#
# /usr/local/etc/postfix/main.cf
#

# LOCAL PATHNAME INFORMATION
#
# Указываем месторасположения директории очереди postfix. Также данная
# директория является корнем, когда postfix запускается в chroot окружении.
queue_directory = /var/spool/postfix

# Задает месторасположение всех postXXX команд (postmap, postconf, postdrop)
command_directory = /usr/local/sbin

# Задаем корень конфигурационных файлов, для более "быстрой навигации".
# Например, теперь можно использовать $base/header_checks вместо
# /usr/local/etc/postfix/header_checks. Мелочь, а приятно.
base = /usr/local/etc/postfix

# Задает месторасположение всех программ демонов postfix. Это программы,
# перечисленные в файле master.cf. Владельцем этой директории должен быть root
daemon_directory = /usr/local/libexec/postfix

# QUEUE AND PROCESS OWNERSHIP
#
# Задает владельца очереди postfix, а также большинства демонов postfix.
# В целях безопасности, необходимо использовать выделенную учетную запись.
# Т.е. от данного пользователя не должны запускаться какие-либо процессы
# в системе, а также он не должен являться владельцем каких-либо файлов.
mail_owner = postfix

# Права по умолчанию, использующиеся local delivery agent. Не указывайте
# здесь привилегированного пользователя или владельца postfix.
default_privs = nobody

# INTERNET HOST AND DOMAIN NAMES
#
# Задает имя хоста в формате FQDN. По умолчанию, используется значение,
# возвращаемой функцией gethostname().
#myhostname = mail.sys-adm.org.ua
myhostname = smtp.x0.org.ua

# Задает имя нашего домена. По умолчанию используется значение $myhostname
# минус первый компонент.
mydomain = x0.org.ua

# SENDING MAIL
#
# Данный параметр указывает имя домена, которое используется при отправлении
# почты с этой машины. По умолчанию, используется имя локальной машины -
# $myhostname. Для согласованности между адресами отправителя и получателя,
# myorigin также указывает доменное имя, которое добавляется к адресу
# получателя для которого не указана доменная часть.
# myorigin = $myhostname (отправлять письма от: "alex@mail.sys-adm.org.ua")
# myorigin = $mydomain (отправлять письма от: "alex@sys-adm.org.ua")
myorigin = $mydomain

# RECEIVING MAIL
#
# Указывает адреса сетевых интерфейсов, на которых будет принимать почту
# наша почтовая система. По умолчанию используются все активные интерфейсы
# на машине. При изменении этого праметра необходимо перезапустить postfix
inet_interfaces = all

# Данный параметр указывает список доменов, для которых почта будет доставляться
# локально, а не пересылаться на другой хост. Не указывайте здесь виртуальные
# домены, для этого есть специальный параметр virtual_mailbox_domains
mydestination = $myhostname, localhost.$mydomain, localhost

# REJECTING MAIL FOR UNKNOWN LOCAL USERS
#
# Таблица просмотра со всеми именами и адресами локальных получателей.
local_recipient_maps = unix:passwd.byname $alias_maps

# TRUST AND RELAY CONTROL
#
# Данный параметр задает список "доверенных" клиентов, которые обладают
# некоторыми привилегиями. В частности доверенным SMTP клиентам дозволено
# пересылать почту через postfix. Если вы не доверяете никому, то оставьте
# только 127.0.0.0/8
mynetworks = 127.0.0.0/8

# ALIAS DATABASE
#
# Данный параметр указывает список алиасов, используемый local delivery agent
# После внесения изменений в данный файл необходимо выполнить команду newaliases
# или postalias /etc/mail/aliases
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

# SHOW SOFTWARE VERSION OR NOT
#
# Желательно сообщать как можно меньше информации о нашем почтовом сервере.
# Согласно требованиям SMTP протокола вы должны указать $myhostname вначале текста
smtpd_banner = $myhostname ESMTP

# DEBUGGING CONTROL
#
# Задает уровень информативности, когда имя или адрес SMTP клиента
# или сервера соответствует шаблону, заданному в параметре debug_peer_list.
# Следует использовать только во время отладки.
# debug_peer_list = 127.0.0.1, sys-adm.org.ua
debug_peer_level = 2

# RESTRICTIONS
#
# client, helo, sender, recipient, data, end-of-data
#

# Дополнительные ограничения доступа  smtp сервера в контексте
# smtp запроса клиента
smtpd_client_restrictions =  permit_mynetworks,
                             permit_sasl_authenticated,
                             check_client_access hash:$base/client_access,
                             reject_unknown_client_hostname

# Дополнительные ограничения, применяемые сервером Postfix
# в контексте SMTP команды HELO
smtpd_helo_restrictions =       check_helo_access hash:$base/hello_access,
                                permit_mynetworks,
                                permit_sasl_authenticated,
                                reject_invalid_helo_hostname,
                                reject_non_fqdn_helo_hostname,
                                reject_unknown_helo_hostname

# Дополнительные ограничения, применяемые сервером Postfix
# в контексте команды MAIL FROM
smtpd_sender_restrictions =     permit_mynetworks,
                                check_sender_access hash:$base/sender_access,
                                reject_authenticated_sender_login_mismatch,
                                reject_unknown_sender_domain,
                                reject_unlisted_sender,
                                reject_unverified_sender

# Дополнительные ограничения, применяемые сервером Postfix
# в контексте команды RCPT TO
smtpd_recipient_restrictions =  permit_mynetworks,
                                permit_sasl_authenticated,
                                reject_unauth_destination,
                                check_recipient_access hash:$base/recipient_access,
                                reject_unlisted_recipient,
                                reject_unknown_recipient_domain,
                                reject_non_fqdn_recipient,
                                reject_unverified_recipient

# Отклонять команду ETRN
smtpd_etrn_restrictions = reject

# Заставляем отклонять почту с неизвестным адресом отправителя.
# Позволяет бороться с червями и некоторыми вирусами.
smtpd_reject_unlisted_sender = yes

# Отключает SMTP команду VRFY. В результате чего, невозможно определить
# существование определенного ящика. Данная техника (применение команды
# VRFY) используется спамерами для сбора имен почтовых ящиков.
disable_vrfy_command = yes

# Требуем чтобы адреса, передаваемые в SMTP командах MAIL FROM и RCPT TO
# заключались в <>, а также не содержали стилей или фраз RFC 822.
strict_rfc821_envelopes = yes

# Скрываем отображение имени таблицы получателей в ответе "User unknown"
# yes: User unknown in virtual mailbox table
# no: User unknown
show_user_unknown_table_name = no

# Данный адрес будет использоваться при проверки существования адреса отправителя.
address_verify_sender = <>

# Числовой код ответа SMTP сервера Postfix в случае, когда адрес
# получателя отвергнут ограничением reject_unverified_sender.
unverified_sender_reject_code = 550

# Требуем, чтобы удаленный SMTP клиент представлял себя
# в начале SMTP сессии с помощью команды HELO или EHLO.
smtpd_helo_required = yes

# Всегда отправлять EHLO вначале SMTP сессии
smtp_always_send_ehlo = yes

# Максимальное количество ошибок, которое может сделать удаленный SMTP клиент.
# При превышение данного числа Postfix разорвет соединение.
smtpd_hard_error_limit = 8

# Включаем поддержку sasl аутентификации
smtpd_sasl_auth_enable = yes

# Имя приложения, используемого для инициализации SASL сервера.
# Данный параметр задает имя конфигурационного файла. Имя smtpd
# будет соответсвовать конфигурационному файлу SASL - smtpd.conf.
smtpd_sasl_application_name = smtpd

# Включает функциональную совместимость с SMTP клиентами, которые
# используют устаревшую версию команды AUTH (RFC 2554),
# например, outlook express 4 и MicroSoft Exchange version 5.0.
broken_sasl_auth_clients = yes

# Отвергаем методы, позволяющие анонимную аутентификацию
smtpd_sasl_security_options = noanonymous

# Optional lookup table with the SASL login names
# that own sender (MAIL FROM) addresses
smtpd_sender_login_maps = mysql:$base/mysqlLookupMaps/sender.conf

# Указываем, где postfix должен брать информацию о алиасах
virtual_alias_maps = mysql:$base/mysqlLookupMaps/alias.conf

# Указываем, где postfix должен брать информацию о доменах
virtual_mailbox_domains = mysql:$base/mysqlLookupMaps/domain.conf

# Указываем, где postfix должен брать информацию о почтовых ящиках
virtual_mailbox_maps = mysql:$base/mysqlLookupMaps/mailbox.conf
virtual_mailbox_base = /home/spool/mail

# Настраиваем поддержку квот
virtual_mailbox_limit_maps = mysql:$base/mysqlLookupMaps/quota.conf
virtual_maildir_extended=yes
virtual_mailbox_limit_override=yes
virtual_create_maildirsize = yes
virtual_overquota_bounce = yes
virtual_maildir_limit_message="Sorry, the user's maildir has overdrawn his diskspace quota, please try again later"

mailbox_size_limit = 52428800

message_size_limit = 5242880

# 1981 - uid и gid пользователя и группы virtual соответственно
virtual_gid_maps = static:1981
virtual_uid_maps = static:1981
virtual_minimum_uid = 1000







smtp_use_tls = yes
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /usr/local/etc/postfix/ssl/smtpd.key
smtpd_tls_cert_file = /usr/local/etc/postfix/ssl/smtpd.crt
smtpd_tls_CAfile = /usr/local/etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: openssl

Непрочитанное сообщение ProFTP » 2008-08-01 19:48:14

если не кто не знает почему он там ругеться, может кто-то сказать пожалуйста кто какую связку использует MTA + pop3 вместе с шифрвоанием??

и на хостинге я что-то не видел чтобы шифрование использовалось!!! на хостинге хоть где-то кто-то видел чтобы шифрование было с почтой?
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: openssl

Непрочитанное сообщение ProFTP » 2008-08-01 23:29:55

шифрование фтопку, не нашел нифига!!!

или скажите кто какую связку использовал с шифрованием?
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: openssl

Непрочитанное сообщение zingel » 2008-08-01 23:42:45

и на хостинге я что-то не видел чтобы шифрование использовалось!!! на хостинге хоть где-то кто-то видел чтобы шифрование было с почтой?
почти на всех приличных хостингах шифрование есть.......самый простой вариант qmail+vpopmail+maildrop
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: openssl

Непрочитанное сообщение ProFTP » 2008-08-02 5:11:26

спасибо, так и сделаю

http://www.mail-archive.com/openldap-so ... 13206.html

тут написано что ругаеться на FQDN

про Common Name написал свой домен may.dom.com, может smpt.dom.com надо было поставить, хотя врядли
в общем не понятная проблема....
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: openssl

Непрочитанное сообщение Morty » 2008-08-02 19:37:35

CN = FQDN = SMTP HELLO
вот так должно быть чтоб не было проблем

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: openssl

Непрочитанное сообщение ProFTP » 2008-08-02 20:06:00

У меня postfix + mysql
где это должно быть?

или вы про openldap?
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: openssl

Непрочитанное сообщение zingel » 2008-08-02 20:09:51

Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: openssl

Непрочитанное сообщение ProFTP » 2008-08-02 20:15:20

я именно по этому запросу смотрел 100 раз!! сертификат делал по разному, конфиг менял много раз...
все тоже самое пишет


в консоле через openssl подключился к 456 порту , он написал что сертифика принял и что все ок, а при создании ящика пишет такое и ящики не содаються

а где ошибка в конфиге или нет? может я где затупил в другом месте?
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: openssl

Непрочитанное сообщение zingel » 2008-08-02 20:18:16

в логах нужно смотреть, чего не хватает....
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: openssl

Непрочитанное сообщение ProFTP » 2008-08-02 20:27:47

в логах больше ничего не пишет кроме этого,

только что перезапустил все сервисы...

Код: Выделить всё

./courier-imap-imapd-ssl start
Starting courier_authdaemond.
 /usr/local/etc/rc.d/courier-authdaemond start
Starting courier_authdaemond.
в логах появилось тольк это:

Код: Выделить всё

Aug  2 20:23:02 t authdaemond: stopping authdaemond children
Aug  2 20:23:05 t authdaemond: modules="authmysql", daemons=5
Aug  2 20:23:05 t authdaemond: Installing libauthmysql
Aug  2 20:23:05 t authdaemond: Installation complete: authmysql


попробую тогда другую связку...
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Alex_hha
лейтенант
Сообщения: 755
Зарегистрирован: 2005-11-06 18:25:26
Контактная информация:

Re: openssl

Непрочитанное сообщение Alex_hha » 2008-08-08 18:08:37

У вас клинический случай? Вы МТА от pop3 сервера отличаете? Советую прочитать - http://www.sys-adm.org.ua/mail/mail-architech.php

Лучше несколько раз ;)