Обсуждение статьи тематического каталога: Ограничения на пересылку почты отдельным пользователям в postfix (postfix filter acl block user mail mysql)Ссылка на текст статьи: http://www.opennet.dev/base/net/postfix_per_user_acl.txt.html
Как-то мне кажется здесь небольшая нестыковочка.
---------------------------------------------Ну, объяснять думаю не стоит, посему перейдем к созданию таблиц и внесению
данных:
create table protected_destinations (
mailuser varchar(255) primary key,
permissions varchar(128)
);
create table insiders (
domain varchar(255) primary key,
result varchar(8)
);
Так, создали, теперь вносим данные, ну проделаем это все над тем же нашим
пользователем по имени pupkin - бедный церковноприходской учебник математики:
insert into protected_destinations ('pupkin@xxx.com.ua','insiders_only');
теперь укажем, откуда он может получать почту
insert into restricted_senders values ('xxx.com.ua','OK');
нифига не работает.... почта становится комом вся. Письма в исходящих висят и не отправляются !smtpd_client_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
check_client_access hash:/usr/local/etc/postfix/client_restrictions,
reject_rbl_client zen.spamhaus.org,
reject_rbl_client bl.spamcop.net,
reject_unauth_destination
smtpd_recipient_restrictions =
check_sender_access hash:/usr/local/etc/postfix/restricted_senders,
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_pipelining,
reject_unauth_destinationsmtpd_sender_restrictions =
reject_unauthenticated_sender_login_mismatch,
reject_non_fqdn_sender,
reject_unknown_sender_domainsmtpd_restriction_classes = local_only
local_only = check_recipient_access hash:/usr/local/etc/postfix/local_domains, reject
что тут не так ????
kvsrv postfix/smtpd[8418]: fatal: restriction class `local_only' needs a definition
kvsrv postfix/master[8373]: warning: process /usr/local/libexec/postfix/smtpd pid 8418 exit status 1
kvsrv postfix/master[8373]: warning: /usr/local/libexec/postfix/smtpd: bad command startup -- throttlingоттакое в меиллог ....
тема закрыта. То я был олень. не качественно постпам сделал :)После изменений в конфиге main.cf нужно обязательно сразу
postmap /usr/local/etc/postfix/local_domains
postmap /usr/local/etc/postfix/restricted_senders
postfix reload
и все заработало.
Ошибочку-то исправьте, пожалуйста :
"теперь укажем, куда он может отправлять почту
insert into restricted_senders values ('xxx.com.ua','OK'); "не restricted_senders, а local_domains.
Друзья не работает почему то вроде всё правильно сделал:main.cf:
check_sender_access = hash:/etc/postfix/restricted_senders
check_recipient_access = hash:/etc/postfix/local_domains
smtpd_recipient_restrictions = check_sender_access,permit_mynetworks,reject_unauth_destination
smtpd_restriction_classes = local_only
local_only = check_recipient_access,reject[root@mail postfix]# cat local_domains
@starbank.kz OK
@mail2.cbank.kz OK[root@mail postfix]# cat restricted_senders
dursunov.ruslan@starbank.kz local_only
bisenbaev@starbank.kz local_only
письма не уходят ни куда. В чем может быть проблема, в логах ошибок нет.
451 4.3.5 Server configuration error
# Postfix master process configuration file. For details on the format
# of the file, see the master(5) manual page (command: "man 5 master").
#
# Do not forget to execute "postfix reload" after editing this file.
#
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - n - - smtpd
submission inet n - n - - smtpd
-o smtpd_tls_security_level=encrypt
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes
# -o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
#628 inet n - n - - qmqpd
pickup fifo n - n 60 1 pickup
cleanup unix n - n - 0 cleanup
qmgr fifo n - n 300 1 qmgr
#qmgr fifo n - n 300 1 oqmgr
tlsmgr unix - - n 1000? 1 tlsmgr
rewrite unix - - n - - trivial-rewrite
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
trace unix - - n - 0 bounce
verify unix - - n - 1 verify
flush unix n - n 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - n - - smtp
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops
relay unix - - n - - smtp
-o smtp_fallback_relay=
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n - n - - showq
error unix - - n - - error
retry unix - - n - - error
discard unix - - n - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
anvil unix - - n - 1 anvil
scache unix - - n - 1 scache
#
# ====================================================================
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
#
# Many of the following services use the Postfix pipe(8) delivery
# agent. See the pipe(8) man page for information about ${recipient}
# and other message envelope options.
# ====================================================================
#
# maildrop. See the Postfix MAILDROP_README file for details.
# Also specify in main.cf: maildrop_destination_recipient_limit=1
#
maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
#
# ====================================================================
#
# The Cyrus deliver program has changed incompatibly, multiple times.
#
old-cyrus unix - n n - - pipe
flags=R user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -m ${extension} ${user}
#
# ====================================================================
#
# Cyrus 2.1.5 (Amos Gouaux)
# Also specify in main.cf: cyrus_destination_recipient_limit=1
#
cyrus unix - n n - - pipe
user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -r ${sender} -m ${extension} ${user}
#
# ====================================================================
#
# See the Postfix UUCP_README file for configuration details.
#
uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
#
# ====================================================================
#
# Other external delivery methods.
#
ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe
flags=Fq. user=bsmtp argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
#
#scalemail-backend unix - n n - 2 pipe
# flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store
# ${nexthop} ${user} ${extension}
#
mailman unix - n n - - pipe
flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
# ${nexthop} ${user}
В postfix 2.11 после рестарта пишет unused parameter: check_sender_access=mysql:/etc/postfix/restricted_senders.cf
не соображу как прописать чтоб работало
Не работает вообще не с mysql не с файлом все равно оправляется куда хочет
Все замечательно работает. Сделал с использованием MySQL. Для облегчения написал скрипт на PHP для добавления или удаления почтовых учетных записей.