Check client access
Check client access
вот содержимое файлов client_access и sender_access они одинаковые по содержимому.
postmap естественно делал после изменения этих файлов, но не работает вот эти две строки:
по описанию должны отбрасывать все письма с поддоменов этих доменов, но спам с них все равно идет например вот с этого адреса info@exelozine.eu
вот заголовок письма
Почему это письмо не отбрасывается? Может где то в другом месте надо вставить эту проверку? Видимо дело вот в этих строчках, вернее во второй строчке
В качестве адресата стоит какой то другой адрес в зоне ru, там видимо релей какой то стоит, но адрес отправителя то должен же отрабатываться. Почему не отрабатывается? подскажите куда вставить эту проверку, что бы подобные письма резались?
- Не работают фильтры check_client_access, check_sender_access, PavelR, 07:15 , 30-Авг-16, (1)
- Не работают фильтры check_client_access, check_sender_access, PavelR, 07:19 , 30-Авг-16, (2)
- Не работают фильтры check_client_access, check_sender_access, KomaLex, 08:06 , 30-Авг-16, (3)
- Не работают фильтры check_client_access, check_sender_access, Филимон Задумчивый, 18:49 , 30-Авг-16, (6) +1
- Не работают фильтры check_client_access, check_sender_access, PavelR, 21:49 , 30-Авг-16, (8)
- Не работают фильтры check_client_access, check_sender_access, Филимон Задумчивый, 18:49 , 30-Авг-16, (6) +1
- Не работают фильтры check_client_access, check_sender_access, KomaLex, 08:06 , 30-Авг-16, (3)
- Не работают фильтры check_client_access, check_sender_access, Bootmen, 18:02 , 30-Авг-16, (4)
- Не работают фильтры check_client_access, check_sender_access, Филимон Задумчивый, 18:39 , 30-Авг-16, (5)
- Не работают фильтры check_client_access, check_sender_access, Andrey Mitrofanov, 10:24 , 31-Авг-16, (9)
- Не работают фильтры check_client_access, check_sender_access, Andrey, 21:06 , 30-Авг-16, (7)
- Не работают фильтры check_client_access, check_sender_access, ALex_hha, 12:07 , 05-Сен-16, (10)
- Не работают фильтры check_client_access, check_sender_access, ALex_hha, 12:15 , 05-Сен-16, (11) +1
- Не работают фильтры check_client_access, check_sender_access, Bootmen, 12:36 , 05-Сен-16, (12)
- Не работают фильтры check_client_access, check_sender_access, ALex_hha, 13:17 , 05-Сен-16, (13)
- Не работают фильтры check_client_access, check_sender_access, Bootmen, 12:36 , 05-Сен-16, (12)
- Не работают фильтры check_client_access, check_sender_access, ALex_hha, 12:15 , 05-Сен-16, (11) +1
- Не работают фильтры check_client_access, check_sender_access, KomaLex, 11:43 , 06-Сен-16, (14)
- Не работают фильтры check_client_access, check_sender_access, ALex_hha, 12:25 , 06-Сен-16, (15)
- Не работают фильтры check_client_access, check_sender_access, KomaLex, 14:39 , 06-Сен-16, (16)
- Не работают фильтры check_client_access, check_sender_access, Bootmen, 14:19 , 07-Сен-16, (17)
- Не работают фильтры check_client_access, check_sender_access, KomaLex, 05:30 , 09-Сен-16, (18)
- Не работают фильтры check_client_access, check_sender_access, Bootmen, 14:02 , 10-Сен-16, (19)
- Не работают фильтры check_client_access, check_sender_access, Alex_hha, 11:17 , 12-Сен-16, (20)
- Не работают фильтры check_client_access, check_sender_access, Alex_hha, 11:28 , 12-Сен-16, (21)
- Не работают фильтры check_client_access, check_sender_access, Andrey Mitrofanov, 11:55 , 12-Сен-16, (22)
- Не работают фильтры check_client_access, check_sender_access, ALex_hha, 16:46 , 12-Сен-16, (23)
- Не работают фильтры check_client_access, check_sender_access, Bootmen, 13:43 , 16-Сен-16, (24)
- Не работают фильтры check_client_access, check_sender_access, _, 19:24 , 16-Сен-16, (25) +1
- Не работают фильтры check_client_access, check_sender_access, ALex_hha, 18:38 , 17-Сен-16, ( 26 )
- Не работают фильтры check_client_access, check_sender_access, Bootmen, 15:02 , 18-Сен-16, ( 27 )
- Не работают фильтры check_client_access, check_sender_access, Bootmen, 15:22 , 18-Сен-16, ( 28 ) –1
- Не работают фильтры check_client_access, check_sender_access, Bootmen, 15:33 , 18-Сен-16, ( 29 ) –1
- Не работают фильтры check_client_access, check_sender_access, ALex_hha, 11:11 , 19-Сен-16, ( 30 )
- Не работают фильтры check_client_access, check_sender_access, ALex_hha, 16:46 , 12-Сен-16, (23)
- Не работают фильтры check_client_access, check_sender_access, Andrey Mitrofanov, 11:55 , 12-Сен-16, (22)
- Не работают фильтры check_client_access, check_sender_access, Alex_hha, 11:28 , 12-Сен-16, (21)
- Не работают фильтры check_client_access, check_sender_access, Alex_hha, 11:17 , 12-Сен-16, (20)
- Не работают фильтры check_client_access, check_sender_access, Bootmen, 14:02 , 10-Сен-16, (19)
- Не работают фильтры check_client_access, check_sender_access, KomaLex, 05:30 , 09-Сен-16, (18)
- Не работают фильтры check_client_access, check_sender_access, Bootmen, 14:19 , 07-Сен-16, (17)
- Не работают фильтры check_client_access, check_sender_access, KomaLex, 14:39 , 06-Сен-16, (16)
- Не работают фильтры check_client_access, check_sender_access, ALex_hha, 12:25 , 06-Сен-16, (15)
- Не работают фильтры check_client_access, check_sender_access, ALex_hha, 12:07 , 05-Сен-16, (10)
Привет из Томска.
check_sender_access type:table
Search the specified access(5) database for the MAIL FROM address, domain, parent domains, or localpart@, and execute the corre-
sponding action.
Опять путаешь SMTP «MAIL FROM» («надпись на конверте письма») и содержимое письма — заголовок From:
Привет обратно в Томск )
Это сервер временный, мне там антиспам разворачивать не надо, можно как то через эти файлы все таки заблокировать эти письма со всех поддоменов этих доменов?
Вот записи из лога постфикса, там тоже этот адрес есть:
postmap -q eu hash:/usr/local/etc/postfix/access_sender
# cat a_s
.eu REJECT
#postmap -q .eu hash:./a_s
REJECT
# postmap -q eu hash:./a_s
#
Я думаю, что postfix ищет именно «eu», а не «.eu».
Т.е. и в файле нужно указывать без точки в начале, аналогично остальным доменам.
Странный конфиг. Зачем все напихали в recipient_restrictions =?
Отдельные секции упрощают все задачи.
Вам в помощь:
http://www.maxblogs.ru/articles/primenenie-ogranichenii-smtp.
он всё правильно напихал. Если отбрасывать на стадии RCPT TO то будет известен хост, от кого и кому. Так можно, например, сделать исключение для abuse@ и postmaster@ — которые будут всегда доступны.
Перевод из переосмысленного из написанного в документации. Sendmail и exim завидуют в стороне.
Перейдите с hash на regexp
считается хорошим тоном, давать отлуп на стадии rcpt to.
C офф доки postfix
Там же расписывают и плюсы такого подхода
лучше все таки прочитать документацию, а не гадать и додумывать 😉
Предположим считается проводить все проверки а потом уже давать отлуп.
smtpd_delay_reject = yes
Так проверяются все рестрикшены а не после первого попадания.
А совать по секциям удобно.
Например я не хочу чтобы permit_mynetworks работало глобально и т д и т п
не вижу взаимосвязи
без точки тоже не работает. Пробовал и так и так. reject дает только при точном указании конкретного e-mail адреса в полном формате. даже если указываешь домен не важно с собакой или без, он не отсеивает письма из этого домена. Только конкретные адреса.
Версия postfix и что стоит в parent_domain_matches_subdomains?
Надо убрать: smtpd_access_maps
Я пробовал, не помогает. Проблему решил переходом на pcre. Работает регулярное выражение типа /*.eu/
У вас ведь и было pcre. Наверное на regexp? Я в свое время пробовал pcre.
Но, regexp проще перловских выражений pcre и его хватает на повседневные задачи.
Я бы на вашем месте всетаки поковырялся с решением вашей задачи.
> Я бы на вашем месте всетаки поковырялся с решением вашей задачи.
это такой тонкий троллинг? Ибо ограничения в postfix очень не удобно настраиваются и очень прямолинейные, если мы сравниваем с тем же exim. sendmail вообще за гранью добра и зла 😉
А-ага. В основном в сторону юношей бледых со взором горящим, у которых «поставь postfix, там просто поставил, и всё просто, и всё есть» — ответ на все вопросы про почту.
>Ибо ограничения в postfix очень не удобно настраиваются
> и очень прямолинейные, если мы сравниваем с тем же exim. sendmail
> вообще за гранью добра и зла 😉
Во-первых, как выясняется при длительном наблюдении, таки [всякий. ] «полный» MTA (чтоб не рассматривать всяческие null- и simple-) старается расти в своей внутренней сложности, чтобы _соответствовать_ собственно предметной области — этой самой [smtp-]почте.
Во-вторых, это не та грань — «мы просто не умеем их готовить», видимо. Или не дали себе труда вывернуть свой взгляд на них под нужным углом, например.
ну я разве что через гланды не смотрел на postfix в свое время 😀 Правда последние пару лет особо за ним не слежу, но сомневаюсь, что там поменялось что то в координальную сторону. И без сторонних policy сервисов, аля postfwd там было все очень печально.
Можно увидеть пару примеров «гибких» правил для свежих версий postfix, которые стали доступны в postfix > 2.10?
Postfix имеет продуманную модульную архитектуру — каждый модуль (демон) отвечает за минимальный набор простых функций. Как следствие, обеспечивается изолированность процессов (что положительно сказывается на безопасности), а также более высокая скорость работы в режиме простоя (за счет выгрузки ненужных модулей).
Как и Sendmail, Exim имеет монолитную архитектуру, которая считается менее безопасной, чем модульная. Однако в отличие от Sendmail, Exim пока не испытывал серьезных проблем с безопасносностью.
Ключевая особенность Exim заключается в логичной и прозрачной схеме обработки почты. Создатели продукта отказались от реализации ряда экзотических функций, что положительно отразилось на простоте решения. Кроме того, Exim считается быстрее и безопаснее все того же Sendmail.
Кого может волновать скорость работы в режиме простоя.
Мне интересна скорость работы в режиме полного абзаца(Tm)
> Однако в отличие от Sendmail, Exim пока не испытывал серьезных проблем с безопасносностью.
Муха-ха-ха 🙂 Откуда ты такое вылезло. Твоя методичка протухла уже так давно, что .
Единственно что ты правильно сказал, так это то, что Exim даёт больше свободы в настройке, чем Postfix. 🙂 Остальное — в трэш.
ЗЫЖ — сам на постфиксе 🙂
ну на самом деле не так, у него дела конечно лучше чем в sendmail, но хуже чем в postfix, по крайней мере после ухода Хазеля
> Не знаете ли как бывший модератор-почему посфикс ру глючит? Пробовал писать указанному контакту. Ответа ноль. Ресурс сознайтесь полезный.
не знаю, давно там не был
Вы мне не обьяснетя его свойства. Лады? ))
Лично я плюнул на тонкости МТА. Ставлю везде iredmail
Там мне все знакомо и привычно.
Да я просто скопипастил. Вощето на постфиксе 13 лет уже.))
ну iredmail это просто солянка, а вот внутри там все тот же postfix
ЗАПИСКИ АДМИНИСТРАТОРА FREEBSD
Главная » Почтовые сервера » Конфигурационный файл настройки postfix
Конфигурационный файл настройки postfix
Разберем примерный конфигурационный файл настройки postfix (на момент написания статьи это был postfix-2.6.3,1 на сервере под управлением FreeBSD 7.2-RELEASE), который стоит между internet и сервером MS Exchange 2007. На сервере, где стоит postfix почтовых ящиков нет.
Конфигурационный файл postfix находится в /usr/local/etc/postfix/main.cf.
Или же выполните команду:
которая покажет вам путь к файлу конфигурации.
В первых закомментированных строках конфигурационного файле указано, что для выяснения полного синтаксиса конкретного параметра необходимо обратиться к man-странице командой man 5 postconf. Также много полезной для себя информации можно почерпнуть из файлов readme, которые при установке пакета помещаются в /usr/local/share/doc/postfix. Если вы не обнаружите по данному пути документации выполните команду:
которая выведет вам путь к файлам документации.
Так же вам рекомендуют менять за один раз не более 2-3 параметров и каждый раз проверять после этого корректную работу postfix. От себя – делайте бекапы, копируя конфигурационный файл в другое место, например в /var/backups. Итак, начнем.
При изменении этого параметра в “soft_bounce = yes” мы укажем posfix заменить действия с REJECT (отклонить) на DEFER (попытаться позже). Это позволит оставлять сообщения в очереди, которые в противном случае были бы возвращены отправителю, т.е. postfix заменит все коды ответов 5xx на 4xx. Бывает очень полезным при тестировании новых restrictions (ограничений на прием почты).
# LOCAL PATHNAME INFORMATION
Выше перечислены стандартные пути до места, где будет находится очередь postfix, где находятся все команды, относящиеся к postfix, где расположен демон программы postfix, путь где postfix создает свои различные служебные файлы (например, master.lock)
# QUEUE AND PROCESS OWNERSHIP
рекомендованный “посвященный” пользователь, от имени которого будет работать postfix.
# INTERNET HOST AND DOMAIN NAMES
В данных параметрах мы можем указать наш хостнейм и обслуживаемый нашим postfix домен. Но если команды:
postconf myhostname и postconf mydomain изначально выводят правильные и нужные нам значения – то указывать это тут не обязательно. Данные значения буду многократно использоваться самим postfix
Указывает полное доменное имя машины (fully-qualified domain name – FQDN), на которой функционирует Postfix. По умолчанию, myhostname устанавливается в имя локальной машины. Если имя вашей машины не указано в полной доменной форме (FQDN), или вы запускаете postfix на виртуальном интерфейсе, вам необходимо указать полное доменное имя (FQDN), которое должна использовать почтовая система. Альтернативно, если вы укажете значение mydomain, то postfix использует это значение, чтобы сгенерировать полное доменное имя машины (FQDN) для параметра myhostname.
По умолчанию, используется имя локальной машины – $myhostname.
inet_interfaces = $myhostname, localhost
В данном параметре указаны сетевые интерфейсы, на которых работает postfix. По умолчанию, он работает на всех сетевых интерфейсах почтового сервера. Вы так же можете указать на каких именно он должен работать (принимать почту). Такая необходимость возникает, если у вас поднято несколько виртуальных адресов на одном из сетевых интерфейсах. Например:
inet_interfaces = 123.456.789.0, 127.0.0.1
в результате postfix будет “слушать” на 123.456.789.0 адресе и на локалхосте.
mydestination = $myhostname, localhost.$mydomain, localhost
В данном параметре указано, для каких доменов почта будет доставляться локально вместо пересылки на другой хост. По умолчанию postfix принимает почту только для локальной машины. Не указывайте тут свои виртуальные домены, для которых вы хотите принимать почту. Это делается в параметре virtual_mailbox_domains.
# REJECTING MAIL FOR UNKNOWN LOCAL USERS
Данную секцию я оставляю не тронутой, т.к. все мои почтовые аккаунты хранятся в Active Directory.
И по умолчанию действие postfix на почту для не найденного в моей системе локального получателя – reject (отклонить). В процессе отладки и настройки получателей рекомендуют устанавливать данный параметр в 450 – попробовать позже.
# TRUST AND RELAY CONTROL
mynetworks = 192.168.0.19/32, 127.0.0.0/8
Очень важная секция, в которой указываются авторизованные сети, от которых ваш postfix будет пересылать через себя почту.
Настоятельно рекомендую указать в данном параметре только нужные для вас сети, т.к. postfix по умолчанию является опен-релеем, т.е. позволяет всем слать через себя почту. В данном примере – 192.168.0.19/32 ip-адрес локального сервера (которому я доверяю), от которого разрешено пересылать почту. Он-же: сервер на котором стоит MS Exchange 2007.
В данном параметре перечислены домены, на которые разрешена пересылка корреспонденции от посторонних клиентов.
# REJECTING UNKNOWN RELAY USERS
Мой postfix является “мостом” для передачи почты из/в internet. В организации используется домен и почтовый сервер MS Exchange 2007, т.е. все пользователи заведены в Active Directory. В данном параметре указано, что получателей локальной почты postfix должен искать по ldap-протоколу в Active Directory домена. С помощью настроек, описанных в ldap_relay_recipient_maps.cf, postfix авторизуется в домене и вычисляет локальных пользователей.
Для этого вам необходимо завести в домене пользователя postfix, присвоить ему пароль и не переносить его из контейнера пользователей по умолчанию Users. В файле ldap_relay_recipient_maps.cf по пути, который выдает команда postconf sample_directory необходимо указать следующее:
search_base = dc=your_domain, dc=ru
где server_host – ip-адрес домен-контроллера;
bind_pw – пароль пользователя posfix в домене;
your_domain – ваш домен.
Пусть к таблице локальных пользователей почты на сервере, где стоит posfix – aliases, на основе которой будет создана база aliases, когда вы дадите команду newaliases после правки таблицы aliases. А также тип и путь к самой базе.
ddd $daemon_directory/$process_name $process_id & sleep 5
Параметры, относящиеся для отладки работы postfix. Я их оставил без изменения.
# INSTALL-TIME CONFIGURATION INFORMATION
Название секции говорит само за себя. Тут прописаны пути для директорий, команд и файлов помощи postfix, куда они поместились в процессе установки пакета.
Далее начинается самое интересное. Пишем свои правила
Все взято из указанных в начале статьи документов и статьи, опубликованной на этом сайте.
Целью написания данных правил является отсечение огромного количества спама и вирусных сообщений, приходящего на почтовые адреса сотрудников организации. Гарантирую, что если вы таким (ну, или почти таким) образом настроите свой postfix, количество спама упадет в разы!
На моем сервере используется антивирус amavis. В данном параметре указано, на каком порту и какого типа у нас работает антивирус.
Запрет некорректного синтаксиса в командах MAIL FROM или RCPT TO. Отключено по умолчанию.
– запрещает использования синтаксиса адресов RFC 822;
– запрещает использования адресов, которые не заключены в угловые скобки <>.
Параметр указывает следующий сервер и порт для доставки почты к указанным в relay_domains доменам. В моем случае – это сервер, где работает MS Exchange 2007.
В данном параметре указывается механизм, с помощью которого postfix определяет ip адреса подключающихся к нему хостов.
Данный параметр ставит ограничение на максимальный размер пересылаемого письма в байтах.
Данный параметр ставит ограничение на максимальный размер почтового ящика получателя почты в байтах. В моем случае этот параметр не актуален.
Этим параметром указывается сколько времени максимально (в данном случае – 10 дней) письмо может находится в очереди, пока не будет отослано назад отправителю с пометкой, что оно не может быть доставлено.
Данной настройкой отключена команда SMTP VRFY. Таким образом мы отключили возможность некоторых способов сбора реально существующих в нашей системе почтовых адресов.
(Но существует вероятность, что почтовый сервер получателя проверяет нашу почту на реальность адрес нашего отправителя. При такой настройке, он не получит его подтверждения. Так что используйте эту настройку на свое усмотрение).
Отклонение писем с несуществующим адресом отправителя. Эта форма фильтрации “на входе” может помочь в борьбе с “червями” и спамерами. Отключено по умолчанию. (См. предыдущий параметр. Используйте на свое усмотрение).
В данном параметре мы указываем максимальное количество входящих подключений, обслуживаемых демоном postfix.
Данной настройкой мы даем команду postfix откладывать обработку списков ограничений до получения команды RCPT TO или ETRN. Таким образом мы сможем увидеть в логе postfix информацию о письме (от кого, кому и т.д.), чтобы при необходимости проанализировать причину, по которой письмо было отклонено.
Требование к клиентам отсылать команду HELO или EHLO перед использованием команды MAIL FROM или ETRN. Ограничение отключено по умолчанию.
Ограничиваем максимальное количество получателей на одно почтовое сообщение. По умолчанию – 1000.
Далее последуют ограничения, которые мы хотим наложить на входящие соединения. Каждый список ограничений обрабатывается слева направо до тех пор, пока какое-либо ограничение не выдаст результат PERMIT (разрешить), REJECT (отклонить) или DEFER (отложить для последующей повторной попытки). Достижение конца списка эквивалентно получению результата PERMIT. Списки ограничений обрабатываются в следующем порядке: client, helo, etrn или client, helo, sender, recipient, data, end-of-data. Когда список ограничений (например, client) выдает результат REJECT или DEFER, обработка всех последующих списков helo, sender, и т.д. не выполняется.
Ограничения, накладываемые на клиента в момент установления соединения:
постфикс: check_client_access не работает
Я хочу заблокировать определенные IP, которые пытаются войти на мой сервер postfix с помощью smtpd. Поэтому в /etc/postfix/main.cf я добавил следующее:
Мой /etc/postfix/blacklist выглядит так:
Конечно, я создал a /etc/postfix/blacklist.db командой
и рестартет постфикс.
Но в /var/log/mail.log все равно появляется следующее:
Таким образом, очевидно, что клиент с IP 185.40.4.32 все еще не заблокирован. У кого-нибудь есть идея, почему?
3 Ответа
это работает. Но подумайте вот о чем:
SMTP особые ограничения команд, описанные в параметрах smtpd_helo_restrictions, smtpd_sender_restrictions или smtpd_recipient_restrictions. Когда ограничения helo, отправителя или получателя перечислены в разделе smtpd_client_restrictions, они действуют только с «smtpd_delay_reject = yes», так что $smtpd_client_restrictions вычисляется во время выполнения команды RCPT TO.
У меня была та же проблема, когда я попытался использовать формат .db. Я получил успешный REJECT, когда использовал формат .cidr. Подобный этому:
Используйте этот формат для ваших записей .cidr: 185.40.4.32 REJECT не хочу, чтобы спамеры
Я уже имел эту проблему раньше и решил ее, добавив в конце main.cnf следующую строку
Не забудь об этом
Похожие вопросы:
Debian Sid, последний постфикс от Sid. Мне нужно вызвать bash скрипт после того, как пользователь reveive mail. Итак, что я сделал: например, создать файл /etc/postfix/transport: mail@domain.com.
Я искал по всему интернету хорошую реализацию в преобразовании не числовых выражений, а переменных выражений из инфиксной нотации в префикс и постфикс. Все мои поиски не увенчались успехом. В.
Я пытаюсь настроить экземпляр postfix для использования sender_based_routing на CentOS6 (но это не имеет особого значения, я думаю). Я просто пробовал постфикс, и он работает. Это дополнение.
Можно ли создать класс, который использует постфикс, например векторный класс var vect:Vector. = new Vector. (); Я знаю, что это не совсем конструктивный вопрос, но это.
У меня есть виртуальный сервер без доменного имени еще. На сервере установлено Ubuntu LAMP. У меня будет доменное имя позже. Я могу получить доступ к серверу через публичный статический ip-адрес. Я.
Я столкнулся с этой странной проблемой, и я целый день пытался решить ее, используя все методы, которые я нашел в google, но до сих пор ничего не работает. Мой ubuntu сервер (10.04 LTS) timezone-это.
я видел этот унарный постфикс в коде Dart/flutter: ?. подобный этому: videoController?.dispose(); и я хочу знать, как это работает.
Я установил postfix в Ubuntu как почтовый сервер. Но проблема в том, что я не могу отправлять почту из функции PHP mail. Код PHP $to = xyz@xyz.com; $subject = Test mail; $message = Please ignore.
Я получаю сообщение об ошибке: префикс / постфикс ‘ = ‘ зарезервирован ибо ниже просто в swift. var c=0,a=2,b=4 c= a+b есть идеи, почему я получаю эту ошибку?
У меня есть следующее странное поведение в Ruby: var1.zero? if var1 = 1 NameError : неопределенная локальная переменная или метод var1 для main:Object С другой стороны, если я делаю то же самое в.
ЗАПИСКИ АДМИНИСТРАТОРА FREEBSD
Главная » Почтовые сервера » Конфигурационный файл настройки postfix
Конфигурационный файл настройки postfix
Разберем примерный конфигурационный файл настройки postfix (на момент написания статьи это был postfix-2.6.3,1 на сервере под управлением FreeBSD 7.2-RELEASE), который стоит между internet и сервером MS Exchange 2007. На сервере, где стоит postfix почтовых ящиков нет.
Конфигурационный файл postfix находится в /usr/local/etc/postfix/main.cf.
Или же выполните команду:
которая покажет вам путь к файлу конфигурации.
В первых закомментированных строках конфигурационного файле указано, что для выяснения полного синтаксиса конкретного параметра необходимо обратиться к man-странице командой man 5 postconf. Также много полезной для себя информации можно почерпнуть из файлов readme, которые при установке пакета помещаются в /usr/local/share/doc/postfix. Если вы не обнаружите по данному пути документации выполните команду:
которая выведет вам путь к файлам документации.
Так же вам рекомендуют менять за один раз не более 2-3 параметров и каждый раз проверять после этого корректную работу postfix. От себя – делайте бекапы, копируя конфигурационный файл в другое место, например в /var/backups. Итак, начнем.
При изменении этого параметра в “soft_bounce = yes” мы укажем posfix заменить действия с REJECT (отклонить) на DEFER (попытаться позже). Это позволит оставлять сообщения в очереди, которые в противном случае были бы возвращены отправителю, т.е. postfix заменит все коды ответов 5xx на 4xx. Бывает очень полезным при тестировании новых restrictions (ограничений на прием почты).
# LOCAL PATHNAME INFORMATION
Выше перечислены стандартные пути до места, где будет находится очередь postfix, где находятся все команды, относящиеся к postfix, где расположен демон программы postfix, путь где postfix создает свои различные служебные файлы (например, master.lock)
# QUEUE AND PROCESS OWNERSHIP
рекомендованный “посвященный” пользователь, от имени которого будет работать postfix.
# INTERNET HOST AND DOMAIN NAMES
В данных параметрах мы можем указать наш хостнейм и обслуживаемый нашим postfix домен. Но если команды:
postconf myhostname и postconf mydomain изначально выводят правильные и нужные нам значения – то указывать это тут не обязательно. Данные значения буду многократно использоваться самим postfix
Указывает полное доменное имя машины (fully-qualified domain name – FQDN), на которой функционирует Postfix. По умолчанию, myhostname устанавливается в имя локальной машины. Если имя вашей машины не указано в полной доменной форме (FQDN), или вы запускаете postfix на виртуальном интерфейсе, вам необходимо указать полное доменное имя (FQDN), которое должна использовать почтовая система. Альтернативно, если вы укажете значение mydomain, то postfix использует это значение, чтобы сгенерировать полное доменное имя машины (FQDN) для параметра myhostname.
По умолчанию, используется имя локальной машины – $myhostname.
inet_interfaces = $myhostname, localhost
В данном параметре указаны сетевые интерфейсы, на которых работает postfix. По умолчанию, он работает на всех сетевых интерфейсах почтового сервера. Вы так же можете указать на каких именно он должен работать (принимать почту). Такая необходимость возникает, если у вас поднято несколько виртуальных адресов на одном из сетевых интерфейсах. Например:
inet_interfaces = 123.456.789.0, 127.0.0.1
в результате postfix будет “слушать” на 123.456.789.0 адресе и на локалхосте.
mydestination = $myhostname, localhost.$mydomain, localhost
В данном параметре указано, для каких доменов почта будет доставляться локально вместо пересылки на другой хост. По умолчанию postfix принимает почту только для локальной машины. Не указывайте тут свои виртуальные домены, для которых вы хотите принимать почту. Это делается в параметре virtual_mailbox_domains.
# REJECTING MAIL FOR UNKNOWN LOCAL USERS
Данную секцию я оставляю не тронутой, т.к. все мои почтовые аккаунты хранятся в Active Directory.
И по умолчанию действие postfix на почту для не найденного в моей системе локального получателя – reject (отклонить). В процессе отладки и настройки получателей рекомендуют устанавливать данный параметр в 450 – попробовать позже.
# TRUST AND RELAY CONTROL
mynetworks = 192.168.0.19/32, 127.0.0.0/8
Очень важная секция, в которой указываются авторизованные сети, от которых ваш postfix будет пересылать через себя почту.
Настоятельно рекомендую указать в данном параметре только нужные для вас сети, т.к. postfix по умолчанию является опен-релеем, т.е. позволяет всем слать через себя почту. В данном примере – 192.168.0.19/32 ip-адрес локального сервера (которому я доверяю), от которого разрешено пересылать почту. Он-же: сервер на котором стоит MS Exchange 2007.
В данном параметре перечислены домены, на которые разрешена пересылка корреспонденции от посторонних клиентов.
# REJECTING UNKNOWN RELAY USERS
Мой postfix является “мостом” для передачи почты из/в internet. В организации используется домен и почтовый сервер MS Exchange 2007, т.е. все пользователи заведены в Active Directory. В данном параметре указано, что получателей локальной почты postfix должен искать по ldap-протоколу в Active Directory домена. С помощью настроек, описанных в ldap_relay_recipient_maps.cf, postfix авторизуется в домене и вычисляет локальных пользователей.
Для этого вам необходимо завести в домене пользователя postfix, присвоить ему пароль и не переносить его из контейнера пользователей по умолчанию Users. В файле ldap_relay_recipient_maps.cf по пути, который выдает команда postconf sample_directory необходимо указать следующее:
search_base = dc=your_domain, dc=ru
где server_host – ip-адрес домен-контроллера;
bind_pw – пароль пользователя posfix в домене;
your_domain – ваш домен.
Пусть к таблице локальных пользователей почты на сервере, где стоит posfix – aliases, на основе которой будет создана база aliases, когда вы дадите команду newaliases после правки таблицы aliases. А также тип и путь к самой базе.
ddd $daemon_directory/$process_name $process_id & sleep 5
Параметры, относящиеся для отладки работы postfix. Я их оставил без изменения.
# INSTALL-TIME CONFIGURATION INFORMATION
Название секции говорит само за себя. Тут прописаны пути для директорий, команд и файлов помощи postfix, куда они поместились в процессе установки пакета.
Далее начинается самое интересное. Пишем свои правила
Все взято из указанных в начале статьи документов и статьи, опубликованной на этом сайте.
Целью написания данных правил является отсечение огромного количества спама и вирусных сообщений, приходящего на почтовые адреса сотрудников организации. Гарантирую, что если вы таким (ну, или почти таким) образом настроите свой postfix, количество спама упадет в разы!
На моем сервере используется антивирус amavis. В данном параметре указано, на каком порту и какого типа у нас работает антивирус.
Запрет некорректного синтаксиса в командах MAIL FROM или RCPT TO. Отключено по умолчанию.
– запрещает использования синтаксиса адресов RFC 822;
– запрещает использования адресов, которые не заключены в угловые скобки <>.
Параметр указывает следующий сервер и порт для доставки почты к указанным в relay_domains доменам. В моем случае – это сервер, где работает MS Exchange 2007.
В данном параметре указывается механизм, с помощью которого postfix определяет ip адреса подключающихся к нему хостов.
Данный параметр ставит ограничение на максимальный размер пересылаемого письма в байтах.
Данный параметр ставит ограничение на максимальный размер почтового ящика получателя почты в байтах. В моем случае этот параметр не актуален.
Этим параметром указывается сколько времени максимально (в данном случае – 10 дней) письмо может находится в очереди, пока не будет отослано назад отправителю с пометкой, что оно не может быть доставлено.
Данной настройкой отключена команда SMTP VRFY. Таким образом мы отключили возможность некоторых способов сбора реально существующих в нашей системе почтовых адресов.
(Но существует вероятность, что почтовый сервер получателя проверяет нашу почту на реальность адрес нашего отправителя. При такой настройке, он не получит его подтверждения. Так что используйте эту настройку на свое усмотрение).
Отклонение писем с несуществующим адресом отправителя. Эта форма фильтрации “на входе” может помочь в борьбе с “червями” и спамерами. Отключено по умолчанию. (См. предыдущий параметр. Используйте на свое усмотрение).
В данном параметре мы указываем максимальное количество входящих подключений, обслуживаемых демоном postfix.
Данной настройкой мы даем команду postfix откладывать обработку списков ограничений до получения команды RCPT TO или ETRN. Таким образом мы сможем увидеть в логе postfix информацию о письме (от кого, кому и т.д.), чтобы при необходимости проанализировать причину, по которой письмо было отклонено.
Требование к клиентам отсылать команду HELO или EHLO перед использованием команды MAIL FROM или ETRN. Ограничение отключено по умолчанию.
Ограничиваем максимальное количество получателей на одно почтовое сообщение. По умолчанию – 1000.
Далее последуют ограничения, которые мы хотим наложить на входящие соединения. Каждый список ограничений обрабатывается слева направо до тех пор, пока какое-либо ограничение не выдаст результат PERMIT (разрешить), REJECT (отклонить) или DEFER (отложить для последующей повторной попытки). Достижение конца списка эквивалентно получению результата PERMIT. Списки ограничений обрабатываются в следующем порядке: client, helo, etrn или client, helo, sender, recipient, data, end-of-data. Когда список ограничений (например, client) выдает результат REJECT или DEFER, обработка всех последующих списков helo, sender, и т.д. не выполняется.
Ограничения, накладываемые на клиента в момент установления соединения:
postfix — smtpd_recipient_restrictions(rbl, check_??_access)
最後更新: 2018-07-19
- smtpd_recipient_restrictions
- smtpd_sender_restrictions
- RBL
- check_client_access
- check_recipient_access
- check_sender_access — BlockList Domain / User
- Hash Table
- regexp (read-only)
- 限制收自己 Domain 的信
- Block Bogus Domain (localhost.localdomain)
smtpd_recipient_restrictions
smtpd_recipient_restrictions 在 «RCPT TO» 後會作出相應的反應
reject_unknown_sender_domain
reject_unknown_recipient_domain
MAIL FROM 的 Domain 沒有 DNS A / MX record , RCPT TO 的 Domain 沒有 DNS / MX record
以上兩者除本地是 final destination 外
Troubleshoot:
明明 x.x 有 A record 及 MX record, 但仍有以下 Error
cp -a /etc/resolv.conf /var/spool/postfix/etc/resolv.conf
reject_unlisted_recipient:
中 $mydestination, $inet_interfaces or $proxy_interfaces 而又不在 $local_recipient_maps, $local_recipient_maps
中 $virtual_alias_domains 而又不在$virtual_alias_maps.
中 $virtual_mailbox_domains 而又不在 $virtual_mailbox_maps, $virtual_mailbox_maps
中 $relay_domains but the recipient 而又不在 $relay_recipient_maps, and $relay_recipient_maps
reject_unauth_destination
不在 $relay_domains, $mydestination, $virtual_alias_domains, $virtual_mailbox_domains 的 E-Mail 會被 reject
reject_non_fqdn_helo_hostname
reject_unknown_helo_hostname
reject_invalid_helo_hostname
HELO 及 EHLO 的 hostname 要有 DNS A 或 MX record
配合 smtpd_helo_required = yes, 強制 client 要說 helo
而且要是正常的 Hostname
permit_auth_destination
RCPT TO domain matches $relay_domains / final destination
smtpd_sender_restrictions
applies in the context of a client » MAIL FROM » command
Default: empty, permit everything
P.S.
reject_unknown_sender_domain 用在 smtpd_sender_restrictions 效果會更加好
smtpd_recipient_restrictions = . reject_rbl_client bl.spamcop.net .
- bl.spamcop.net
- sbl.spamhaus.org
- cbl.abuseat.org
- opm.blitzed.org
- dul.dnsbl.sorbs.net
- dun.dnsrbl.net
- ix.dnsbl.manitu.net
是一個比較特別的 RBL 來, 因為它的查到的 IP 是有特別意義的
check_client_access
# Search the specified access(5) database for IP address
Example:
無條件為某 IP 做 relay
relay_ip:
Block 某些 IP 及某些 IP 不 check RBL
norbl:
Block log:
P.S.
postmap 一次即可, 不用 postfix reload
check_recipient_access
對 RCPT TO 的 address 進行查表, 之後可以使用 ACCESS(5) 內的可用的 Action
應用:
某些收件人的 E-Mail 永遠會接收
建立 hash file:
P.S.
postmap -q abuse@test.com hash:/etc/postfix/alway_accept 是沒有 result 的 !!
check_sender_access
Search the specified access(5) database for the MAIL FROM address, domain, parent domains, or localpart@,
and execute the corresponding action.
whitelist — sender
MySQL
在 DB: policyd 的 table: whitelist_sender 上加入 feild: action
最後在 main.cf 修改 smtpd_recipient_restrictions
reject_unknown_sender_domain
設定 «unknown_address_reject_code» 用來設定 return code (default: 450)
MAIL FROM domain has
2) no DNS address record
unknown_address_tempfail_action
The parameter specifies the action after a temporary DNS error(default: defer_if_permit)
Action:
defer_if_permit
Defer the request if some later restriction would result in an explicit or implicit PERMIT action.
Hash Table (BlockList Domain / User)
# To find out what types of lookup tables your Postfix system supports
* By default the lookup key is mapped to lowercase to make the lookups case insensitive
* hash table 不支援 «.», «*» 的 (所以用 regexp 會好一點 )
* 不可以設定 lookup default value 項目
Remark: pcre 的 lookup example
check_sender_access pcre :/etc/postfix/blocklist.pcre
Example: BlockList Domain / User
main.cf
blocklist
建立 hash 了的 file
P.S.
在 SMTP Session 的 DATA 前 會被 reject 的
regexp (read-only)
格式:
/pattern/flags result
!/pattern/flags result
flags:
- x # extended expression syntax (Default: on)
- i # sensitivity (Default: on)
- m # multi-line mode (Default: off)
* By default, matching is case-insensitive (即是 flag 的 i)
e.g.
DOC:
限制收自己 Domain 的信(Reject incoming emails that use your own domain as sender)
方案1: check_policy_service — SPF
這是最好的方法, 因為 «Return-Path:» 與 «From:» 可能不一樣
方案2: check_sender_access on smtpd_recipient_restrictions
方案 3: smtpd_sender_restrictions on smtpd_sender_restrictions