Защищенные канал для почты

Аватар пользователя Alexey

У меня установлен почтовый сервер:
fetchmail+postfix+popa3d
Мой сервер имеет 5 клиентов и соединяется с сервером провайдера relay_host=mail.altair-tv.ru
У провайдера сервер поддерживает ssl соединение для получения почты и TLS для отправки, авторизацию требует только для получения. Сейчас у меня настроенно для работы без всякой защиты, а связь идет через сеть, где много молодых ищущих умов, и защита просто необходимо. Как настроить мой сервер для работы с SSL и ТLS? ОС-ASP10 :-?

Аватар пользователя sergeil

Re: Защищенные канал для почты

То есть, как я понял, вы хотите защитить обмен между почтовым сервером провайдера и своим сервером.

То есть только:
1. postfix -> mail.altair-tv.ru (smtp)
2. fetchmail <- mail.altair-tv.ru (pop3)

Дальше трафик идет нешифрованый.
1. От почтового сервера Вашего провайдера до почтового сервера получателя.
2. От почтового сервера отправителя до почтового сервера Вашего провайдера.

Я правильно понял? То есть, это будет только небольшой отрезок, а не весь путь следования пакетов ...

Аватар пользователя Alexey

Re: Защищенные канал для почты

Совершенно верно. Пусть это совсем небольшой кусок, но совершенно точно известно, что в нем засели враги. Тут есть достаточно снифферов и т.п.

Аватар пользователя sergeil

Re: Защищенные канал для почты

Цитата:
Alexey писал:
Совершенно верно. Пусть это совсем небольшой кусок, но совершенно точно известно, что в нем засели враги. Тут есть достаточно снифферов и т.п.

Почитав howto на fetchmail, я обнаружил, что он может достаточно разнообразно использовать протоколы шифрования.

1. fetchmail может уже быть скомпилирован с поддержкой SSL.

Вот, что говорит о ключах запуска fetchmail из ASPLinux-10
То есть, как я понимаю, он уже умеет организовывать SSL.
Самое интересное, что fetchmail из ASPLinux-7.3 тоже предложил мне опции SSL. Так-что, это не новая фича...

usage: fetchmail [options] [server ...]
Options are as follows:
...
--ssl enable ssl encrypted session
--sslkey ssl private key file
--sslcert ssl client certificate
--sslproto force ssl protocol (ssl2/ssl3/tls1)
...
Смотрите также параметры для fetchmailrc.

2. fetchmail может использовать внешние программы для организации защищенного соединения. Могут быть использованы SSL, SSH, ...
usage: fetchmail [options] [server ...]
Options are as follows:
...
--plugin specify external command to open connection
--plugout specify external command to open smtp
...

Теперь Вам необходимо:
1. более внимательно почитать описание fetchmail.
2. согласовать с Вашим провайдером шифрование...
Или, для начала, просто попытаться забрать почту через SSL.

Потом следует занятся smtp сервером ...
Но пока давайте настроим что-то одно...
Улыбка

Кажется кое-что по конфигурированию TLS на postfix
http://www.msys.ca/wordpress/?p=35

Отдельная директория документации...
/usr/share/doc/postfix-2.1.5/TLS/*

Аватар пользователя Alexey

Re: Защищенные канал для почты

Я почитал внимательно рекомендованную документацию, хоть и тяжело на английском, в итого следущая строка добавлена в файл ./fetchmailrc
poll mail.altair-tv.ru with proto POP3
user '*****' there with password '*****' ssl is alexey here
в итоге почта забирается с сервера, ошибок на терминале и в файлах message и maillog не видно. Можно ли считать, что все работает и шифрованное соединение устанавливается? Кстати есть средство ethereal, по моему это сниффер, он перехватывает пакеты, у меня с графическим интерфейсом, запустил для пробы, много он чего схватил. А могу я с его помощью проверять шифрованность соединений?

Аватар пользователя Alexey

Re: Защищенные канал для почты

Пользуясь ethereal (кстати где бы толковую доку на рус. достать), установил, что при приеме почты действительно открывается шифрованное соединение ssl, и почта и пароль мой не передаются в окрытом виде. ура! Значит часть задачи есть. Теперь осталось наладить передачу в шифрованном виде.

Аватар пользователя sergeil

Re: Защищенные канал для почты

Цитата:
Alexey писал:
Пользуясь ethereal (кстати где бы толковую доку на рус. достать), установил, что при приеме почты действительно открывается шифрованное соединение ssl, и почта и пароль мой не передаются в окрытом виде. ура! Значит часть задачи есть. Теперь осталось наладить передачу в шифрованном виде.

Поздравляю, "1:0" в Вашу пользу!!!
Еще немножко - и за Вами будет чистая победа.

Улыбка

Аватар пользователя Alexey

Re: Защищенные канал для почты

Много искал в гугле, но нахожу все о том, как заставить postfix посылать почту клиентам применяя ssl. Про сертификаты и т.п. но мне надо, чтобы postfix послал почту серверу mail.altair-tv.ru, использую защищенное соединение с его стороны, т.е. принел его сертификаты и открыл соединение. А своим клиентам у меня почту раздает popa3d. Эти сертификаты создавать, все как-то очень сложно. Ведь есть и более простые решения, ведь обычные почтовики делают это без проблем. Как бы мне уточнить запросы по этой теме, в каком направление рыть?

Аватар пользователя sergeil

Re: Защищенные канал для почты

Цитата:
Alexey писал:
Много искал в гугле, но нахожу все о том, как заставить postfix посылать почту клиентам применяя ssl.

Мы говорили с Вами о том, что postfix будет использовать TLS. В документации на postfix этому посвящена целая директория документации /usr/share/doc/postfix-2.1.5/TLS/*

Как я понимаю, Ваш postfix будет выполняить функции только клиента. смотрите Postfix/TLS client mode.

Если я правильно понял документацию, то Ваш провайдер может сгенерировать для Вас клиетнский сертификат на основе своего собственного сертификата... Прочитайте бокументацию. У меня postfix не установлен и я читаю доку прямо из rpm...

Цитата:
... но мне надо, чтобы postfix послал почту серверу mail.altair-tv.ru, использую защищенное соединение с его стороны, т.е. принел его сертификаты и открыл соединение.

Насколько я понял, вы также должны подтвердить себя сертификатом...

Postfix/TLS client mode
When connecting to a server offering TLS, postfix can present a client certificate of its own. As realized by now, only one certificate can be managed, so it should be issued on your own hostname. No default is supplied (no certificate is presented), unless you explicitly set the certificate in the configuration. You can use the same certificate as for the server side:

smtp_tls_key_file = /etc/postfix/key.pem
chown root /etc/postfix/key.pem ; chmod 400 /etc/postfix/key.pem

smtp_tls_cert_file = /etc/postfix/cert.pem

smtp_tls_CAfile = /etc/postfix/CAcert.pem

Client certificates
One reason to do all of this work is that I want to do relaying based on client certificates. The clients present a certificate from a CA, that is unique and cannot be faked.

Some clients can have several certificates issued by different CAs. Upon connection the server will pass the client the list of CAs he knows (has the CA certificates) and the client can then pass back a certificate of choice. With Netscape this means, a window is opened and only those client certificates compatible with the server are listed for selection.

So if your clients already have certificates from trustable sources, it is not necessary to create a lot of problems. You just have to collect the CA certificates and make them available to Postfix/TLS. If that is not enough, you can still become your own CA to easily create client certificates for your users (which are of course of no use outside your scope).
Listing CA certificates

You have two possibilities to perform this task.

   1. You just add the CA certificates to the smtp[d]_tls_CAfile you already have created, one after the other. This file is probably not very readable, but it has the advantage that it is read at smtpd before switching to chroot jail and hence works in chroot mode.
   2. You can add the CA certificates in single files with adequate names to a certificate directory specified in:

smtpd_tls_CApath = /etc/postfix/certs

      Please don't forget to issue a $OPENSSL_HOME/bin/c_rehash /etc/postfix/certs after you have made changes, as the hashes are use to find the right CA certificate. This method should not work in chroot mode.

Adding client certificates
The client certificates are issued for a DN (Distinguished Name) made up of company, department, name, email... As they may contain blanks, @ signs and colons, it is quite difficult to handle them with standard postfix tools.

A quite practical thing is that every client certificate has a "fingerprint" that is extremely difficult to fake (read this: from my knowledge, it might take years even on fast computers). I have to do some more research about the security of the fingerprint, but at least for relaying it should be secure enough. I will much easier find a host with worse security to send out my SPAM than to fake a client certificate with a matching fingerprint (which I also don't know to from the outside, even from the inside you might protect the fingerprint data with a chmod 400).

Цитата:
Эти сертификаты создавать, все как-то очень сложно.

Попросите помощи у своего провайдера...

Цитата:
Ведь есть и более простые решения, ведь обычные почтовики делают это без проблем. Как бы мне уточнить запросы по этой теме, в каком направление рыть?

Исходя из Вашего первого сообщения, Ваш провайдер обозначил только SSL/TLS.

Аватар пользователя Alexey

Re: Защищенные канал для почты

Спасибо Сергей, пытаюсь так сделать. Нашел материал по русски, жаль, что провайдер отказался помочь с сертификатами, пытаюсь сам составить, пока не выходит, не читает postfix мои сертификаты, хотя составлять их вроде бы просто, ответил на несколько вопросов и все, буду думать.

Аватар пользователя sergeil

Re: Защищенные канал для почты

Цитата:
Alexey писал:
Спасибо Сергей, пытаюсь так сделать. Нашел материал по русски, жаль, что провайдер отказался помочь с сертификатами, пытаюсь сам составить, пока не выходит, не читает postfix мои сертификаты, хотя составлять их вроде бы просто, ответил на несколько вопросов и все, буду думать.

Hint: Это Ваш postfix не читает сертификаты или postfix провайдера их не принимает?

RSS-материал