Postfix + openssl

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
gcc
Сообщения: 526
ОС: FreeBSD 8.0 CURRENT

Postfix + openssl

Сообщение gcc »

1. скажите нужно шифрвоать трафик и в каких ситуациях? если на сервер с пользователями без ssh? или если веб сервер с почтой?

2. Кто какую связку использует?? exim например не умее тшифровать

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

куда копать?

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

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
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 887
ОС: gentoo

Re: Postfix + openssl

Сообщение vr13 »

gcc писал(а):
01.08.2008 07:29
2. Кто какую связку использует?? exim например не умее тшифровать


exim4. между прочим умеет шифровать :)

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


если вы используете smtp, то никто никого никуда не перекидывает: начинает работать обычный [e]smtp (rfc-821, rfc-1869), а starttls - это тоже экстеншн smtp (rfc-2487), поддержка которого, если включена, анонсируется в банере после ehlo

порт 465 - это smtps (rfc-2554). к starttls никакого отношения не имеет. в настоящее время часто используется для передачи сообщения от аутентефицированного клиента к "своему" серверу
порт 993 - это вообще imaps (rfc-2595, кажется)
Спасибо сказали:
Аватара пользователя
gcc
Сообщения: 526
ОС: FreeBSD 8.0 CURRENT

Re: Postfix + openssl

Сообщение gcc »

подскжаите что с эти делать? (при добавляении ящика) куда копать?

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

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]


если не получиться тогда exim или другое буду ставить!!

но все такия не понял зачем его шифровать, многие статьи написаны без шифрвоании и почтовая сиситема провайдера работает без шифрвоания, тоже, зачем тогда шифровать? ИМХО
а на хостинге надо шифровать?
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 887
ОС: gentoo

Re: Postfix + openssl

Сообщение vr13 »

gcc писал(а):
01.08.2008 19:47
подскжаите что с эти делать? (при добавляении ящика) куда копать?

ничего не надо делать. не вижу тут ошибки. ну, не получилось установить ssl-соединение.. вероятно следует установить smtpd_tls_auth_only в 'no'. правда, не совсем понятно, что значит "добавление ящика"
если не получиться тогда exim или другое буду ставить!!

это ваше право. кажется, нет разницы в функциональности. я использую exim только потому, что он _мне_ больше нравится, а не потому что он лучше
но все такия не понял зачем его шифровать, многие статьи написаны без шифрвоании и почтовая сиситема провайдера работает без шифрвоания, тоже, зачем тогда шифровать? ИМХО
а на хостинге надо шифровать?

надо или не надо, только вы сможете определить
Спасибо сказали:
Аватара пользователя
gcc
Сообщения: 526
ОС: FreeBSD 8.0 CURRENT

Re: Postfix + openssl

Сообщение gcc »

vr13 писал(а):
02.08.2008 13:00
ничего не надо делать. не вижу тут ошибки. ну, не получилось установить ssl-соединение.. вероятно следует установить smtpd_tls_auth_only в 'no'. правда, не совсем понятно, что значит "добавление ящика"


почтовая ситема настроенная, без шифрования работает postfix + mysql

чтобы не принимало от всех подряд нужна авторизация, все храниться в таблицах

через postfixadmin я добавил в таблицу домен и почноый ящик alex@alex.com, postfix должен создаться каталог в /var/spool/mail ??? он не создаеться и при создании в логах такая ошибка всегда которую я написал в первом посте!!
я поставил smtpd_tls_auth_only в 'no - ничего не изменилось, или проблема в другом скажите пожалуйста?

на 25 порт я зашел через тонель openssl s_client -connect host:port -starttls smtp cертификат он принял, и написал ок

вот imapd-ssl, сертифика генерил через скрипт который в установочном пакете

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

##VERSION: $Id: imapd-ssl.dist.in,v 1.16 2007/11/22 14:22:44 mrsam Exp $
#
#    openssl s_client -connect host:port -starttls smtp
#    openssl s_client -connect localhost:25 -starttls smtp
#

SSLPORT=993
SSLADDRESS=127.0.0.1
SSLPIDFILE=/var/run/imapd-ssl.pid
SSLLOGGEROPTS="-name=imapd-ssl"
IMAPDSSLSTART=NO
IMAPDSTARTTLS=YES
IMAP_TLS_REQUIRED=0
COURIERTLS=/usr/local/bin/couriertls
TLS_PROTOCOL=SSL3
TLS_STARTTLS_PROTOCOL=TLS1
TLS_CERTFILE=/usr/local/share/courier-imap/imapd.pem
TLS_VERIFYPEER=NONE
TLS_CACHEFILE=/usr/local/var/couriersslcache
TLS_CACHESIZE=524288
MAILDIRPATH=Maildir
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 887
ОС: gentoo

Re: Postfix + openssl

Сообщение vr13 »

gcc писал(а):
03.08.2008 00:05
почтовая ситема настроенная, без шифрования работает postfix + mysql

чтобы не принимало от всех подряд нужна авторизация, все храниться в таблицах


боюсь, что вас не понимаю: судя по вашему конфигу не видно, что система настроена. что касается вашего мнения "чтобы не понимало от всех подряд.." - тоже не совсем понимаю. также кажется, что у вас какая-то путаница в терминах "авторизация" и "шифрованием smtp/imap". попробуйте посмотреть эту статейку - вдруг будет полезно?
Спасибо сказали:
Аватара пользователя
gcc
Сообщения: 526
ОС: FreeBSD 8.0 CURRENT

Re: Postfix + openssl

Сообщение gcc »

сори, проблему нашел была в master.cn навреное в опции

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

  -o smtpd_tls_wrappermode=yes


окончательный вариант:

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

#
# Postfix master process configuration file.  For details on the format
# of the file, see the master(5) manual page (command: "man 5 master").
#
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -      n       -       -       smtpd
submission inet n       -       n       -       -       smtpd
  -o smtpd_enforce_tls=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

smtps     inet  n       -       n       -       -       smtpd
#  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_client_restrictions=permit_sasl_authenticated,reject


вроде бы работает
Спасибо сказали: