Вопрос или проблема
Я пытаюсь понять правильный подход к поддержке электронной почты через Postfix/Dovecot для пользователей, аутентифицированных в сети, и различных сетевых сервисов, таких как Gitlab.
Мой сервер аутентификации в сети работает на Ubuntu 22.04, использует OpenLDAP и Kerberos. Все мои пользователи, аутентифицированные в сети, наследуют классы объектов posixAccount
и PostfixBookMailAccount
, в то время как мои сервисные аккаунты наследуют только последний. Это попытка разрешить вход на различные машины только моим пользователям, но не сервисным аккаунтам, при этом поддерживая электронную почту для обоих.
Я пытался настроить Dovecot для использования драйвера pam
, который работал для электронной почты пользователей, но Gitlab не заработал. Я изменил конфигурации PAM (все из которых использовали Kerberos, но не LDAP), добавив LDAP перед Kerberos. Это включало настройку PAM LDAP для поиска на основе mailEnabled
вместо posixAccount
для поиска пользователей, но что-то может быть не так, так как это все равно работало для пользователей, но не для сервисов.
Я также пытался настроить Dovecot для использования драйвера ldap
и аналогично производить поиск по mailEnabled
, но что-то также не так, так как это не работало для любых аккаунтов.
Похоже, я мог бы просто создать аккаунты пользователей для таких сервисов, как Gitlab, но это вызывает у меня опасения за безопасность.
Перед тем как тратить больше времени или двигаться в неправильном направлении, я бы сначала хотел понять, имеет ли смысл различать эти два источника электронной почты или я просто переусердствую. Если я должен различать, может ли кто-то указать мне ссылки на материалы, в которых описан этот подход, или дать несколько рекомендаций о том, какие соображения нужно учесть при настройке Postfix/Dovecot. Пока что у меня нет комбинации, которая бы подходила для обоих типов аккаунтов. Мои веб-поиски не принесли никаких результатов по поводу того, какой подход выбрать, и, следовательно, никакого актуального материала.
Ответ или решение
Настройка почтовой системы с использованием Postfix и Dovecot для поддержки как сетевых пользователей, а также сервисных аккаунтов, таких как Gitlab, требует детальной настройки и учета различий между этими типами учетных записей. Ваша текущая конфигурация на основе Ubuntu 22.04, OpenLDAP и Kerberos является хорошей основой, но давайте рассмотрим, как правильно организовать поддержку электронной почты для обеих категорий пользователей.
Основные понятия и архитектура
-
Пользовательские и сервисные аккаунты: Сетевые пользователи должны иметь возможность входить в систему, чтобы пользоваться почтой и другими сервисами, тогда как сервисные аккаунты должны ограничиваться только доступом к необходимым сервисам. Вам нужно, чтобы только пользователи, которые имеют
posixAccount
, могли аутентифицироваться через ваше сетевое окружение. -
Объектные классы: Убедитесь, что сервисные аккаунты действительно имеют все необходимые атрибуты для использования с постовыми системами. Если они наследуют только
PostfixBookMailAccount
, это может привести к недостатку необходимых атрибутов для аутентификации.
Конфигурация Dovecot
1. Использование PAM и LDAP
Вы начали использовать PAM и LDAP, но, возможно, вам стоит убедиться, что конфигурация PAM правильно настроена для аутентификации обоих типов пользователей. Вот несколько шагов:
- Измените конфигурацию PAM: Убедитесь, что ваша конфигурация PAM действительно дает приоритет LDAP перед Kerberos. Это позволяет использовать LDAP, чтобы находить пользователей и проверять их права доступа.
Пример конфигурации для /etc/pam.d/common-auth
:
auth required pam_ldap.so
auth sufficient pam_krb5.so
auth required pam_unix.so nullok
- LDAP поиск: В конфигурации LDAP проверьте, что поиск осуществляется по атрибуту
mailEnabled
. Убедитесь, что вы правильно конфигурируетеdovecot.conf
для определенияpass_db
, которая должна использовать вашу LDAP конфигурацию.
passdb {
driver = ldap
args = /etc/dovecot-ldap.conf.ext
}
2. Конфигурация Dovecot для LDAP
Чтобы Dovecot правильно работал с вашим LDAP, приведите конфигурацию /etc/dovecot/dovecot.conf
к следующему виду:
mail_location = maildir:/var/mail/%d/%n
auth {
passdb {
driver = ldap
args = /etc/dovecot-ldap.conf.ext
}
userdb {
driver = ldap
args = /etc/dovecot-ldap.conf.ext
}
}
И удостоверьтесь, что dovecot-ldap.conf.ext
сконфигурирован для поиска правильных учетных записей. Например:
hosts = ldap://localhost
dn = cn=admin,dc=example,dc=com
dnpass = your_ldap_admin_password
base = ou=Users,dc=example,dc=com
user_attrs = uid=<username>, mail=<email>
user_filter = (&(objectClass=PostfixBookMailAccount)(mailEnabled=TRUE)(uid=%u))
Поддержка сервисных аккаунтов
Сервисные аккаунты, такие как Gitlab, должны иметь отдельный способ аутентификации. Обратите внимание на следующее:
-
Разрешения: Убедитесь, что ваши сервисные аккаунты имеют необходимые разрешения на использование почты. Возможно, имеет смысл создать специальную группу для сервисных аккаунтов, которая будет иметь те же права на отправку и получение писем.
-
Проверка: Сервисные аккаунты не должны аутентифицироваться через PAM. Вместо этого использование LDAP для проверки
mailEnabled
account следует обеспечивать их доступ к почте.
Рекомендации
-
Отладка: Используйте журналы Dovecot и Postfix, чтобы отслеживать любые ошибки аутентификации. Это поможет вам указать точные причины, почему какая-то аутентификация проходит, а другая — нет.
-
Тестирование конфигурации: Проводите регулярное тестирование, чтобы удостовериться, что все изменения не нарушают существующий функционал.
-
Документация и поддержка: Используйте официальную документацию Dovecot (https://doc.dovecot.org) и Postfix (http://www.postfix.org/documentation.html) для глубоких настроек и примеров.
-
Безопасность: Убедитесь, что любые изменения не снижаете безопасность системы. Рассмотрите возможность применения методов многофакторной аутентификации для сетевых пользователей и сервисов, если это возможно.
Надеюсь, эти рекомендации помогут вам правильно настроить систему. Если у вас есть дополнительные вопросы по конфигурации, не стесняйтесь обращаться.