LINUX.ORG.RU
ФорумAdmin

Postfix smtpd_client_restriction — как отфильтровать по IP?


0

0

Всем привет.

Написал скрипт для фильтрации сообщений, но хочу, чтобы он выполнялся для всех компьютеров, кроме одного. Сделал такую конфигурацию:

main.cf:

smtpd_client_restrictions = hash:/etc/postfix/smtpd.client

smtpd.client:

10.0.0.1 OK //этот адрес надо без фильтра

10.0 FILTER my_filter: // всё остальное в локальной сети

Ну и my_filter в master.cf соответственно описан, не буду приводить ибо не важно. Но выползла наружу следующая проблема: под первую строчку попадают не только 10.0.0.1, но и 10.0.0.10, 10.0.0.11..., 10.0.0.100..., 10.0.0.199 и фильтр не выполняется.

Вопрос: как написать такое правило, чтобы под него попадало только 10.0.0.1, но не другие адреса? Сменить IP с 10.0.0.1 на что-то не допускающее других вариантов не предлагать.

Альтернатива: мне подошел бы ещё один вариант решения моей задачи, но тоже не пойму как сделать. А именно: если бы мой my_filter вызывался бы для клиентов, прошедших SMTP-авторизацию (и не вызывался для не прошедших, естественно). Есть permit_sasl_authenticated, работает, дает отправлять наружу только авторизовавшимся, но не позволяет вызвать собственный фильтр для них.

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

shamus24
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.