Назад | Перейти на главную страницу

Классы ограничений Postfix для виртуального псевдонима

Эй, мы используем postfix в качестве почтовой системы, а конфигурация содержит виртуальную таблицу псевдонимов для проверки адреса. Мы также используем простой список для административного использования. Список находится в / etc / postfix / virtual и записывается как "test@domain.tld userxy".

Список и сопоставления пользователей работают нормально, но проблема в том, что мы хотим защитить некоторые адреса только для внутреннего использования. Поэтому я добавляю следующие строки в main.cf

smtpd_recipient_restrictions = 
      check_recipient_access hash:/etc/postfix/protected_destinations,
      permit_mynetworks, 
      permit_sasl_authenticated, 
      reject_unauth_destination

smtpd_restriction_classes = insiders_only 
insiders_only = check_sender_access hash:/etc/postfix/insiders, reject

Файл protected_destinations содержит:

test@domain.tld             insiders_only 

Инсайдеры файлов содержат:

domain.tld        DUNNO 

Вывод postconf -n:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
inet_interfaces = all
mailbox_size_limit = 0
mailbox_transport = cyrus
message_size_limit = 0
mydestination = domain.tld,domain2.tld
myhostname = domain.tld
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.100.0/24
myorigin = /etc/mailname
recipient_delimiter = +
relay_domains = domain.tld
relayhost = [x.x.x.x]
smtpd_recipient_restrictions = permit_mynetworks,        permit_sasl_authenticated,        reject_unauth_destination,   hash:/etc/postfix/access,   hash:/etc/postfix/virtual-user_access
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_path = smtpd
smtpd_sasl_security_options = noanonymous
virtual_alias_domains = /etc/postfix/virtual-domains
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_mailbox_limit = 0

Но это не работает, я могу отправлять почту с внешнего адреса на test@domain.tld, может ли кто-нибудь объяснить, что я делаю не так?

Вот файл журнала о письме от extern к test@domain.tld:

Apr 19 16:57:34 serverx postfix/smtpd[15963]: 777A51762F1: client=smarthost.host[192.168.100.xy], sasl_method=LOGIN, sasl_username=userxy
Apr 19 16:57:34 serverx postfix/cleanup[15966]: 777A51762F1: message-id=<20120419145859.37090@externedomain.tld>
Apr 19 16:57:34 serverx postfix/qmgr[15959]: 777A51762F1: from=<address@externedomain.tld>, size=1720, nrcpt=2 (queue active)
Apr 19 16:57:34 serverx postfix/pipe[15972]: 777A51762F1: to=<interneruser@domain.tld>, orig_to=<test@domain.tld>, relay=cyrus, delay=0.24, delays=0.06/0.01/0/0.17, dsn=2.0.0, status=sent (delivered via cyrus service)
Apr 19 16:57:34 serverx postfix/pipe[15969]: 777A51762F1: to=<interneruser2@domain.tld>, orig_to=<test@domain.tld>, relay=cyrus, delay=0.24, delays=0.06/0/0/0.18, dsn=2.0.0, status=sent (delivered via cyrus service)
Apr 19 16:57:34 serverx postfix/qmgr[15959]: 777A51762F1: removed

Чтобы ограничить доступ к внутренним спискам, у нас есть следующее:

smtpd_recipient_restrictions =
hash:/etc/postfix/access
hash:/etc/postfix/virtual-users_access

Затем в карте / etc / postfix / access у нас есть такие вещи, как

all@          permit_mynetworks,reject
list2@        permit_mynetworks,reject

И в виртуальных пользователях доступ к таким вещам, как

anonymous@domain     permit_mynetworks,reject
user1@domain        permit_mynetworks,reject
user2@domain        permit_mynetworks,reject