Вопрос или проблема
Я запускаю сервер Ubuntu (я был убежден, и нет ни одного дня, чтобы я не сожалел об этом!), который использует Exim. Глубоко в файлах ACL с разделенной конфигурацией я нашел это:
# Этот хук позволяет вам подключать ваши собственные ACL, не
# модифицируя этот файл. Если вы сделаете это так, как мы предлагаем,
# вы получите небольшое снижение производительности, так как будет
# доступен дополнительный файл. Это не происходит, если вы оставите макрос
# неустановленным.
.ifdef CHECK_RCPT_LOCAL_ACL_FILE
.include CHECK_RCPT_LOCAL_ACL_FILE
.endif
Поиск CHECK_RCPT_LOCAL_ACL_FILE
дает много таких фрагментов, но нигде не говорится где создать переменную или как должен выглядеть файл. Последнее должно быть очевидно, так как он просто будет содержать еще несколько команд ACL. Однако первое является загадкой… Кто-нибудь имеет представление?
Я пытался спросить об этом на ask.ubuntu, и, как обычно, не получил вообще никакого ответа…
Обратите внимание, что следующий фрагмент работает вполне нормально в файле conf.d/acl/30_exim4-config_check_rcpt
, но модификация системных файлов таким образом приведет к проблемам в следующий раз, когда Ubuntu решит обновиться…
deny
condition = ${lookup{$local_part}nwildlsearch{/etc/exim4/black.list}{yes}{no}}
logwrite = :main,reject: $sender_host_address - $local_part@$domain используется только спамерами
message = Пользователь в черном списке. Уходите.
Вам нужно добавить этот ACL в файл /etc/exim4/include/check_rcpt_local_acl
Это работало для меня.
В наши дни, с exim4 4.96 и Debian 12 bookworm, вы можете создать:
conf.d/main/000_localmacros
где вы можете определить:
CHECK_RCPT_LOCAL_ACL_FILE = /где угодно
Я использовал:
CHECK_RCPT_LOCAL_ACL_FILE = /etc/exim4/conf.d/acl/30_exim4-config_check_rcpt.local
что тоже работает отлично.
Ответ или решение
Введение
В вашем вопросе касается настройки Exim4, особенно в контексте параметра CHECK_RCPT_LOCAL_ACL_FILE
. Настройка электронной почты может быть сложной задачей, особенно когда речь идет о конфигурациях, основанных на разделении. В данной статье я подробно рассмотрю, как правильно настроить CHECK_RCPT_LOCAL_ACL_FILE
на вашем сервере Ubuntu, а также объясню значение и роль каждого шага.
Понимание параметра CHECK_RCPT_LOCAL_ACL_FILE
Что такое CHECK_RCPT_LOCAL_ACL_FILE?
CHECK_RCPT_LOCAL_ACL_FILE
— это предопределенный параметр в конфигурации Exim4, который позволяет вам добавлять свои собственные команды ACL (Access Control List), не изменяя основной конфигурационный файл. Это особенно полезно в условиях, когда вы хотите сохранить возможность обновления пакетов без риска потери своей индивидуальной настройки.
Где задается переменная?
Согласно вашим исследованиям, переменная CHECK_RCPT_LOCAL_ACL_FILE
может быть объявлена в специальном файле 000_localmacros
, который расположен в директории conf.d/main/
. Для более новых версий Exim (например, 4.96 и Debian 12 Bookworm), вы можете создать следующий файл:
/etc/exim4/conf.d/main/000_localmacros
В этот файл можно добавить следующее:
CHECK_RCPT_LOCAL_ACL_FILE = /etc/exim4/conf.d/acl/30_exim4-config_check_rcpt.local
Создание файла ACL
Процесс создания файла ACL достаточно прост. Вам необходимо создать файл 30_exim4-config_check_rcpt.local
в директории конфигурации ACL:
sudo touch /etc/exim4/conf.d/acl/30_exim4-config_check_rcpt.local
В этом файле вы можете определить свои собственные команды ACL. Например, ниже представлена строка, которая запрещает доступ к определенным пользователям:
deny
condition = ${lookup{$local_part}nwildlsearch{/etc/exim4/black.list}{yes}{no}}
logwrite = :main,reject: $sender_host_address - $local_part@$domain is only used by spammers
message = User is black listed. Go away.
Заключение
Добавление CHECK_RCPT_LOCAL_ACL_FILE
и создание соответствующих ACL-файлов следует проводить осторожно, чтобы избежать конфликтов с системными обновлениями. Следуя указанным шагам, вы обнаружите, что сможете достаточно гибко настраивать свой Exim и в то же время защищать свою систему от потенциальных угроз.
При возникновении дополнительных вопросов всегда можно обратиться к сообществу Exim или документации на официальном сайте. Надеюсь, что данная информация вам поможет в дальнейшем управлении вашим сервером, и вы сможете избежать прежних сожалений о выборе Ubuntu в качестве серверной платформы.