dadv: (chuck)
[personal profile] dadv

Как включить поддержку шифрования почты в протоколе SMTP для FreeBSD и штатного sendmail, в ужасном стиле безграмотных "хаутушек". Контекст - полное отсутствие доверия к публичным центрам сертификации, продающим сертификаты за деньги и желание закрыть SMTP-трафик от тупых СОРМ2-снифферов без попытки защититься от man-in-the-middle.

  • Устанавливаем cyrus-sasl2 из портов или пакетов.
  • В /etc/make.conf добавляем строчки:

    SENDMAIL_CFLAGS=-I/usr/local/include/sasl -DSASL
    SENDMAIL_LDFLAGS=-L/usr/local/lib
    SENDMAIL_LDADD=-lsasl2

    Пересобираем штатный sendmail с поддержкой SASL:

    cd /usr/src/lib/libsmutil
    make cleandir && make obj && make
    cd /usr/src/lib/libsm
    make cleandir && make obj && make
    cd /usr/src/usr.sbin/sendmail
    make cleandir && make obj && make && make install

    Эта часть позаимствована из Handbook.

  • Создаём сертификаты.

    Берем вот этот скрипт: make-server-key, кладем его в /etc/mail. Туда же кладем openssl.cnf.diff.

    Редактируем начало скрипта, подставляя в servername имя почтового сервера (для содержимого сертификата), в shortname короткое имя сервера для именования файла сертификата, в contact адрес электронной почты (для соответствующего поля сертификата), в days время действия сертификата, в pass пароль для шифрования приватного ключа создаваемого скриптом самоподписанного Certificate Authority (CA), в answers - ответы на стандартные вопросы openssl, которые он задаёт при генерации сертификатов. А можно ничего не редактировать, оставить дефолты (нигилизм mode on).

    Запускаем скрипт, он полностью автоматически создаёт в /etc/mail подкаталоги CA и certs, в которых генерирует самодельный Certificate Authority, а так же выданный им сертификат для sendmail. По умолчанию срок действия 10 лет.

    Берем sendmail.mc.add, меняем в нём myserver на shortname, прописанный в make-server-key (или, опять же, ничего не меняем). Дописываем строчки из него в свой .mc-файл, пересобираем и переустанавливаем конфиг, рестартуем sendmail.

Всё. Теперь те сервера, которые тоже поддерживают STARTTLS и которым неважно, что сертификат самодельный, станут шифровать SMTP-трафик при отправке нам почты, или при приёме от нас. В /var/log/maillog для таких шифрованных сессий будут писаться слова типа STARTTLS=server, version=TLSv1/SSLv3, cipher=DHE-RSA-AES256-SHA, bits=256/256

This account has disabled anonymous posting.
(will be screened if not validated)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org

Profile

dadv: (Default)
Choose your future

July 2024

M T W T F S S
12 34567
891011121314
15161718192021
22232425262728
293031    

Tags

Style Credit

Powered by Dreamwidth Studios