Во второй версии dovecot’а есть возможность указывать разные сертификаты для разных доменов (IP адресов и протоколов).

Для этого создаем шаблон:

[ req ]
default_bits = 1024
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type
prompt = no

[ req_dn ]
# country (2 letter code)
#C=FI

# State or Province Name (full name)
#ST=

# Locality Name (eg. city)
#L=Helsinki

# Organization (eg. company)
#O=Dovecot

# Organizational Unit Name (eg. section)
OU=IMAP server

# Common Name (*.example.com is also possible)
CN=imap.example.com

# E-mail contact
emailAddress=postmaster@example.com

[ cert_type ]
nsCertType = server

и сертификат:

# openssl req -new -x509 -nodes -config cert.cnf -out dovecot-domain-crt.pem -keyout dovecot-domain-key.pem -days 365

перемещаем сертификат и ключ куда надо, задаем права на файлы и т.д.

#  mv dovecot-crt.pem /etc/pki/dovecot/cert/dovecot-domain-crt.pem

#  mv dovecot-key.pem /etc/pki/dovecot/private/dovecot-domain-key.pem

# chmod 0600 /etc/pki/dovecot/cert/dovecot-domain-crt.pem

# chmod 0600 /etc/pki/dovecot/private/dovecot-domain-key.pem

# openssl x509 -subject -fingerprint -noout -in /etc/pki/dovecot/certs/dovecot-domain-crt.pem

далее необходимо поправить конфигурацию ssl для dovecot /etc/dovecot/conf.d/10-ssl.conf находим

ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem

и НИЖЕ ДОБАВЛЯЕМ

local xx.xx.xx.xx {
protocol pop3 {
ssl_cert = </etc/pki/dovecot/certs/dovecot-domain-crt.pem
ssl_key = </etc/pki/dovecot/private/dovecot-domain-key.pem
}
}

Стандартную секцию необходимо оставить, иначе вы будете получать ошибку doveconf: Error: ssl enabled, but ssl_cert not set

вместо local <ваш IP> можно использовать local_name domain.tld, в этом случае секция с protocol pop3 не нужна, но вам понадобится поддержка TLS SNI (Server Name Indication)!

Настраивая что-нибудь в центоси вы обязательно огребете проблем если у вас включен SELinux.

Таким замечательным примером может служить настройка Postfix с SASL аутентификацией в Dovecot. Вы спокойно сделали конфиги, всё проверили, рестартанули сервисы, а в результате нижуя не работает! WTF? Это няши, SELinux.

Идем в лог /var/log/maillog и любуемся такой вот ошибкой:

localhost postfix/smtpd: warning: SASL: Connect to private/auth failed: Permission denied

Благодарим это чудо за чудесную ночь секаса или же берем клаву и ставив на место это безобразие (:

grep smtpd_t /var/log/audit/audit.log | audit2allow -M postfixsasl

коротко о команде — найти smtpd_t в логе аудита и создать на основе этого правило для selinux

semodule -i posfixsasl.pp

добавляем правило в проклятый selinux, перезапускаем сервис(ы) и всё няшно. Эх, если бы я нашла эту фичку год назад…

 

Дополнительно:

Иногда может случиться так, что вы вроде бы всё добавили (например, модули для munin), а что-то всё ещё не работает из-за SELinux’a. Причиной этому может быть то, что события блокировки попадают под donotaudit события. В этом случае можно временно включить donotaudit события командой:

semodule -DB

и потом вернуть обратно

semodule -B

 

Так же, помимо описанного выше способа поиска для создания правил. Можно воспользоваться командой:

ausearch -m avc -ts today | audit2allow -M myfix

Которая автоматически поищет все события и создаст правила для их разрешения.

 

p.s.

Вот тут: гайд как это работает + ещё примеры для тех кто любит и пожестче.

Вот думала что писала уже про это, а нет, заметки не оказалось. Между тем, для непосвященных няшек это может стать небольшой проблемой, так как стандартные мануалы не подразумевают наличия SELinux и других ништяков.

 

Итак, для того чтобы изменить стандартный порт доступа надо сделать 3 вещи:

1. открываем /etc/ssh/sshd_config и раскомментируем строку

Port 22

меняем 22 на выбранный вами порт. Если вы хотите чтобы ssh слушал только на IPv4, то раскомментируйте строку

ListenAddress 0.0.0.0

остальные настройки по вкусу (:

 

2. добавляем правило для iptables (вы можете изменить стандартное правило для 22-го порта)

iptables-save > /path/to/rules.list

добавляем строку

-A INPUT -p tcp -m state —state NEW -m tcp —dport 1234 -j ACCEPT

и сохранив файлик обновляем правила

iptables-restore < /path/to/rules.list

НО, данный вариант будет работать только до первой перезагрузки! Если вы хотите добавить постоянное правило, изменения следует вносить в /etc/sysconfig/iptables

 

И вот казалось бы всё, но в этом случае перезапустив sshd вы рискуете потерять доступ к серверу, так как включенный по-умолчанию SELinux будет считать что негоже использовать иной порт. Так что переходим к пункту…

3. для того чтобы selinux не возникал, необходимо добавить ваш порт как порт для ssh

semanage port -a -t ssh_port_t -p tcp 1234

проверяем

semanage -l | grep ssh

 

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

yum whatprovides /usr/sbin/semanage

и получив ответ, устанавливаем нужный пакет. в моём случае это

yum install policycoreutils-python

 

Вот теперь можно смело (перепроверив не забыли ли вы чего!) перезапускать sshd и ломиться на новый порт

service sshd restart

Вот думала писать или не писать, но всё же опубликую…

Оказывается меня очень-люто-дико-бешено бесит когда кто-то пытается решать что-то касающееся меня без моего участия либо игнорируя меня.

Не вдаваясь в подробности: завтра у меня должна была состояться встреча. Кто-то, подумав «ну зачем же завтра, лучше послезавтра. так удобней будет» ну и дали знать тому человечку через ещё кого-то. Представляете мое офигевание, когда мне звонит этот человек и говорит мол так и так, но двай перенесём… Подумали, и договорились сдвинуть срок на несколько дней. И что вы думаете? Кое-кто, узнав что мы оказывается перенесли встречну на несколько дней, а не на сутки как кое-кто планировал, приходит к удивительному умозаключению (!) «ой, но ведь в тот день будет ещё не удобней!». Вот тут меня это уже реально напрягло и я высказала всё что я думаю по этому поводу. В результате чего была сделана вторая ошибка. Кое-кто опять подёргал за ниточки и постарался «исправить ситуацию»… Догадываетесь что вышло? Правильно, ничего хорошего >.> Ещё кто-то, который вообще не в курсе всего этого сдвинул срок на завтра, но совсем на другое, ожуенно не удобное для меня время! В результате, из-за «добрых» намерений получилось не как всегда, а полная Ж… и дизориентация.

И вот я хз в какую из трех (!) дат теперь встреча… А самое обидное, что из-за такой вот самодеятельности почти поссорилась с близким человеком. :< Неужели так трудно не принимать решения за кого-то?…

Наверное у каждого в жизни хоть раз случается момент когда ты понимаешь что ты делаешь что-то не так. Не так как хотелось бы окружающим, не так как хотелось бы тебе. А что если всё что ты делаешь, ты делаешь не так? Да, всех всё устраивает, кроме тебя. Ты знаешь какое это фуфло, потому что может быть лучше, совершенней! Перфекционизм.

 

Фактически, всё что кажется совершенным всё равно имеет какой-нибудь изъян. Большинству пофиг на это, но меня это раздражает. Ты находишь что-то прекрасное, но стоит посмотреть на это некоторое время и ты видишь мелкие недоработки, мельчайшие детали и… Ты уже не можешь восхищаться казалось бы самым няшным, потому что даже одна самая мелкая деталь, стоит её заметить, начинает резать тебе глаз (слух и.т.д.) не хуже скальпеля хирурга.

 

Перфекционизм — это отличный демотиватор. Потому что какой смысл создавать УГ если твоя цель не может быть достигнута?

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

Перфекционизм — это оружие. Оружие способное разрушить самую неприступную крепость найдя в ней плохо уложенный камень.

Перфекционизм — это мой дар и моё проклятие. Очередной повод ненавидеть себя, видя какой сучкой я являюсь на самом деле.

Задолбало каждый раз попадать в долбаные библиотечки?

Открываем свойства ярлычка:

C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Windows Explorer.lnk

и исправляем target на православный Мой Компьютер

%windir%\explorer.exe /e,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}

проклинаем мелкосакс, ставим Read Only атрибут на ярлык и продолжаем уже приятную работу :3