Вопрос или проблема
У меня есть небольшой почтовый сервер (работает на 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
Применение
-
Создайте файл доступа: Вы создаете текстовый файл, который будет содержать правила доступа. Пусть он будет называться
/etc/postfix/sasl_access
. -
Наполнение файла: Поместите в этот файл строки, подобные приведенным выше. Каждый пользователь-сущность связывается с разрешенными IP-адресами. Все остальные подключения для этого пользователя будут отклонены.
-
Конфигурация main.cf: В файле конфигурации Postfix (
/etc/postfix/main.cf
) вам нужно указать использование этого файла для проверки SASL доступов:smtpd_client_restrictions = check_sasl_access hash:/etc/postfix/sasl_access, permit
-
Компиляция файла: После того, как вы создали и сохранили файл
/etc/postfix/sasl_access
, его необходимо скомпилировать в формат, который понимает Postfix:postmap /etc/postfix/sasl_access
-
Перезагрузка Postfix: После внесения изменений необходимо перезапустить Postfix, чтобы изменения вступили в силу:
systemctl restart postfix
Тестирование
Так как вы не можете протестировать систему в изолированной среде, прежде чем внесете изменения на рабочем сервере, убедитесь, что у вас есть план отката на случай, если новая конфигурация нарушит работоспособность почтовой службы. Например, сделайте резервную копию текущего файла конфигурации Postfix.
Важные замечания
-
Убедитесь в точности IP-адресов: Хотя IPv4 известен и понятен, работа с IPv6 может доставить сложности из-за множества вариантов его записи. Убедитесь, что адреса указаны точно.
-
Безопасность: Убедитесь, что пользовательский доступ к вашему серверу Postfix ограничен в соответствии с вашими политиками безопасности. Возможно, стоит применить дополнительные механизмы, такие как брандмауэр, для защиты вашего сервера.
-
Мониторинг журналов: Примените мониторинг логов Postfix, чтобы контролировать успешные и неуспешные попытки авторизации. Это поможет вам быстро выявить и исправить возможные проблемы или нарушения.
Следуя вышеописанным шагам, вы настроите сервер для работы с ограничениями SASL, тем самым повысив его безопасность и функциональность. Уверенное понимание каждой детали процесса — залог успешной настройки почтового сервера.