Postfix: Как использовать check_sasl_access для ограничения отправителей по IP-адресу?

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

У меня есть небольшой почтовый сервер (работает на Ubuntu 22.04), на котором около 10 учетных записей имеют разрешение отправлять почту через аутентификацию SASL (они принадлежат системной группе).

Я хотел бы ограничить пару этих учетных записей, разрешив им подключаться только с определенного IP-адреса (один IPv6, другой IPv4).

Например, вот типичная запись журнала для одной из учетных записей, приходящая с легитимного адреса:

Jan 31 04:15:35 alice submission/smtpd[3140867]: 8EA36BA068: client=mail.xxx.xxx.uk[2001:xxx:x:xxx::xx], sasl_method=PLAIN, sasl_username=user1

Jan 31 04:15:35 alice msmtp: host=smtp.xxx.xxx.uk tls=on auth=on user=user1 [email protected] [email protected] mailsize=2021 smtpstatus=250 smtpmsg='250 2.0.0 Ok: queued as 8EA36BA068' exitcode=EX_OK

Я думаю, что могу использовать smtpd_client_restrictions с файлом поиска check_sasl_access для этого, но немного запутался, что именно нужно поместить в сам файл доступа.

Будет ли содержимое файла check_sasl_access выглядеть так (где user1 — это sasl-клиент, о котором идет речь)?

user1 192.x.x.x     PERMIT 
user1 2001:x:x:x::x PERMIT 
user1 REJECT

Обратите внимание, что в почтовом логе эти пользователи отображаются без доменного имени, поэтому я предполагаю, что оно здесь не нужно.

Я хотел бы получить подтверждение данного подхода, прежде чем попробовать это, поскольку это рабочий сервер, и выполнение пробного запуска на моем тестовом оборудовании невозможно из-за сетевой настройки.

Ответ или решение

Для настройки ограничений на отправку писем через Postfix по IP-адресам с использованием механизма проверки аутентификации SASL, предлагаю изучить теоретическую основу, практические примеры реализации, и возможное применение в вашем конкретном случае. Это позволит минимизировать риск возникновения ошибок на продуктивном сервере.

Теория

Postfix предоставляет гибкий механизм управления доступом посредством различных правил и проверок. Одним из таких механизмов является check_sasl_access, который позволяет настраивать ограничения по аутентифицированным пользователям. Вы можете определить, какие пользователи и с каких IP-адресов имеют разрешение на отправку почты.

Основной принцип работы check_sasl_access заключается в следующем: когда клиент аутентифицируется с использованием SASL, Postfix смотрит на имя пользователя и применяет определенные правила доступа. Эти правила вы можете задать в базе данных, которая обычно представляет собой текстовый файл.

Пример

На примере, который вы описали, вы хотите ограничить возможность доступа для некоторых пользователей с конкретных IP-адресов. Основной структурный элемент конфигурации — это текстовый файл, который содержит правила в формате:

<пользователь> <IP-адрес> PERMIT
<пользователь> REJECT

Ваша текущая конфигурация может выглядеть так:

user1 192.x.x.x PERMIT
user1 2001:x:x:x::x PERMIT
user1 REJECT

Применение

  1. Создайте файл доступа: Вы создаете текстовый файл, который будет содержать правила доступа. Пусть он будет называться /etc/postfix/sasl_access.

  2. Наполнение файла: Поместите в этот файл строки, подобные приведенным выше. Каждый пользователь-сущность связывается с разрешенными IP-адресами. Все остальные подключения для этого пользователя будут отклонены.

  3. Конфигурация main.cf: В файле конфигурации Postfix (/etc/postfix/main.cf) вам нужно указать использование этого файла для проверки SASL доступов:

    smtpd_client_restrictions = check_sasl_access hash:/etc/postfix/sasl_access, permit
  4. Компиляция файла: После того, как вы создали и сохранили файл /etc/postfix/sasl_access, его необходимо скомпилировать в формат, который понимает Postfix:

    postmap /etc/postfix/sasl_access
  5. Перезагрузка Postfix: После внесения изменений необходимо перезапустить Postfix, чтобы изменения вступили в силу:

    systemctl restart postfix

Тестирование

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

Важные замечания

  • Убедитесь в точности IP-адресов: Хотя IPv4 известен и понятен, работа с IPv6 может доставить сложности из-за множества вариантов его записи. Убедитесь, что адреса указаны точно.

  • Безопасность: Убедитесь, что пользовательский доступ к вашему серверу Postfix ограничен в соответствии с вашими политиками безопасности. Возможно, стоит применить дополнительные механизмы, такие как брандмауэр, для защиты вашего сервера.

  • Мониторинг журналов: Примените мониторинг логов Postfix, чтобы контролировать успешные и неуспешные попытки авторизации. Это поможет вам быстро выявить и исправить возможные проблемы или нарушения.

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

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

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