Добрый день!
есть фря 5.1.На ней крутится postfix 2.1. Добавлены в main.cf постфиксовые правила (restrictions) для борьбы со спамом.
smtpd_client_restrictions
smtpd_sender_restrictions и т.д.
все бы замечательно, только режектятся нужные письма с определенного ip
(Out: 450 Client host rejected: cannot find your hostname, [ip])
что добавить и куда что можно было принимать письма с этого ip только со строго определенного e-mail, а остальные e-mail с этого ip режектить?
что никто не хочет помочь?
или все спецы перевелись?
подскажите хоть в каком направлении копать?
Никто и не поможет, пока конфигурацию не покажете (postconf -n). Честно говоря уже достало каждый раз напоминать одно и тоже.
>Никто и не поможет, пока конфигурацию не покажете (postconf -n). Честно говоря
>уже достало каждый раз напоминать одно и тоже.извините....
вот конфиг, кто просил2bounce_notice_recipient = root
bounce_notice_recipient = root
command_directory = /usr/local/postfix/sbin
config_directory = /usr/local/postfix/etc
content_filter =
daemon_directory = /usr/local/postfix/libexec
debug_peer_level = 4
delay_notice_recipient = root
disable_vrfy_command = yes
error_notice_recipient = root
header_checks = regexp:/usr/local/postfix/etc/header_checks
html_directory = /usr/local/postfix/html
inet_interfaces = all
local_recipient_maps = $virtual_mailbox_maps
mail_name = Mail
mail_owner = postfix
mailq_path = /usr/local/postfix/bin/mailq
manpage_directory = /usr/local/postfix/man
masquerade_domains = $mydomain
message_size_limit = 4000000
mydestination = localhost.$mydomain, localhost
mydomain = kkk.kk
myhostname = mail.kkk.kk
mynetworks = x.y.z.0/24, a.b.c.0/24, d.e.f.0/24, 127.0.0.1/32
myorigin = $mydomain
notify_classes = bounce, delay, policy, protocol, resource, software
queue_directory = /var/spool/postfix
readme_directory = no
sample_directory = /usr/local/postfix/etc/sample
sendmail_path = /usr/local/postfix/sbin/sendmail
setgid_group = postdrop
smtpd_banner = ESMTP (Mail)
smtpd_client_restrictions = permit_mynetworks, check_client_access hash:/usr/local/postfix/etc/client_access_ip, reject_unknown_client
smtpd_data_restrictions = reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unknown_sender_domain, reject_multi_recipient_bounce, permit
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname, reject_non_fqdn_hostname, reject_unknown_hostname
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, reject_non_fqdn_recipient, reject_unknown_recipient_domain
smtpd_sender_restrictions = permit_mynetworks, reject_non_fqdn_sender, reject_unknown_sender_domain
strict_rfc821_envelopes = yes
transport_maps = hash:/usr/local/postfix/etc/transportfile
unknown_local_recipient_reject_code = 550
virtual_alias_maps = hash:/usr/local/postfix/etc/virtual
virtual_gid_maps = static:1008
virtual_mailbox_base = /
virtual_mailbox_domains = kkk.kk, nnn.nn
virtual_mailbox_maps = pgsql:/usr/local/postfix/etc/mailbox.pgsql
virtual_minimum_uid = 1
virtual_uid_maps = pgsql:/usr/local/postfix/etc/uid.pgsql
Зачем писать одно и тоже в нескольких restrictions? Т.к. по-умолчанию smtpd_delay_reject=yes они все будут проверяться последовательно после указания получателя RCPT TO. Например можно сделать так/etc/postfix/main.cf:
smtpd_client_restrictions =
smtpd_helo_restrictions =
smtpd_sender_restrictions =
smtpd_recipient_restrictions =
permit_mynetworks,
check_client_access hash:/usr/local/postfix/etc/client_access_ip,
reject_unknown_client,
reject_invalid_hostname,
reject_non_fqdn_hostname,
reject_unknown_hostname, ...smtpd_restriction_classes = restrictive
restrictive = check_sender_access hash:/etc/postfix/sender_access, reject/usr/local/postfix/etc/client_access_ip:
1.2.3.4 restrictive/etc/postfix/sender_access:
user@domain.ru OK
Теперь от сервера 1.2.3.4 будут приниматься письма от user@domain.ru, а остальные отвергаться.
>Зачем писать одно и тоже в нескольких restrictions? Т.к. по-умолчанию smtpd_delay_reject=yes они
>все будут проверяться последовательно после указания получателя RCPT TO. Например можно
>сделать так
>
>/etc/postfix/main.cf:
>
>smtpd_client_restrictions =
>smtpd_helo_restrictions =
>smtpd_sender_restrictions =
>smtpd_recipient_restrictions =
> permit_mynetworks,
> check_client_access hash:/usr/local/postfix/etc/client_access_ip,
> reject_unknown_client,
> reject_invalid_hostname,
> reject_non_fqdn_hostname,
> reject_unknown_hostname, ...
>
>smtpd_restriction_classes = restrictive
>restrictive = check_sender_access hash:/etc/postfix/sender_access, reject
>
>/usr/local/postfix/etc/client_access_ip:
>1.2.3.4 restrictive
>
>/etc/postfix/sender_access:
>user@domain.ru OK
>
>
>Теперь от сервера 1.2.3.4 будут приниматься письма от user@domain.ru, а остальные отвергаться.
>если в client_access_ip указать несколько ip со своими определенными e-mail (в sender_access), то как по шагам будет происходить проверка?
к примеру в client_access_ip указаны ip: 1.2.3.4 и 10.20.30.40
в sender_access прописаны user1@domain.ru, user2@com.com, vasy@org.org
то для каждого из ip, указанных в client_access_ip будут проверяться все e-mail, указанные в sender_access?
Если Вы для 10.20.30.40 укажете класс restrictive, то для него будут выполнены проверки, аналогичные 1.2.3.4. Если нужно сделать наоборот (от user1@domain.ru принимать только с 1.2.3.4, от user2@dom.ru - только с 10.20.30.40), то просто поменяйте местами проверки.
>Если Вы для 10.20.30.40 укажете класс restrictive, то для него будут выполнены
>проверки, аналогичные 1.2.3.4. Если нужно сделать наоборот (от user1@domain.ru принимать только
>с 1.2.3.4, от user2@dom.ru - только с 10.20.30.40), то просто поменяйте
>местами проверки.Еще раз для уточнения для 10.20.30.40 будут проверяться поочереди все e-mail, указанные в файло до совпадения?
Для 10.20.30.40 и любых других будут проводится проверки, которые Вы укажите (restrictive, check_client_access, check_sender_access и т.п.) до первого совпадения (OK, REJECT и т.п.). В нашем случае с restrictive если отправитель user1@domain.ru, то OK. Если ничего не найдено, то reject.
>Для 10.20.30.40 и любых других будут проводится проверки, которые Вы укажите (restrictive,
>check_client_access, check_sender_access и т.п.) до первого совпадения (OK, REJECT и т.п.).
>В нашем случае с restrictive если отправитель user1@domain.ru, то OK. Если
>ничего не найдено, то reject.Попробовал.То что и хотел.
Работает как часы!
Спасибо всем кто помог в решении проблемы.
Особый респект jonatan!!!
а если почтовый сервер висит снаружи локалки? то как обходить это?
>что никто не хочет помочь?
>или все спецы перевелись?
>подскажите хоть в каком направлении копать?
Могу дать полные конфиги своего postfix'а. За 3 месяца работы для 500 юзверей до spamassassina дошло 4 писма со спамом. Если инетерсно стучись на madman@jabber.ru.
>>что никто не хочет помочь?
>>или все спецы перевелись?
>>подскажите хоть в каком направлении копать?
>
>
>Могу дать полные конфиги своего postfix'а. За 3 месяца работы для 500
>юзверей до spamassassina дошло 4 писма со спамом. Если инетерсно стучись
>на madman@jabber.ru.не могу достучаться до madman@jabber.ru. (SMTP error from remote mailer after RCPT TO:<madman@jabber.ru>:
host mx.jabber.ru [213.219.244.136]: 550 <madman@jabber.ru>:
Recipient address rejected: User unknown in local recipient table)
так это не почта.... :))) Это jid.
Давай на почту madman@altair-tv.ru