exim4 & CHECK_RCPT_LOCAL_ACL_FILE

Вопрос или проблема

Я запускаю сервер 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 в качестве серверной платформы.

Оцените материал
Добавить комментарий

Капча загружается...