Postfix авторизация по SASL в smptd_recipient_restrictions = permit_sasl_authenticated
check_sender_access
rejectтак вот если авторизация прошла успешно, то осталные строчки по барабану, а мне нужно чтоб и sender проверялся
может кто знает что делать
>Postfix авторизация по SASL в smptd_recipient_restrictions = permit_sasl_authenticated
>check_sender_access
>reject
>
>так вот если авторизация прошла успешно, то осталные строчки по барабану, а
>мне нужно чтоб и sender проверялся
>может кто знает что делатьДай плиз ссылку на материал как прикрутить авторизацию!...
smtpd_recipient_restrictions =
check_sender_access hash:/etc/postfix/sender_access,
permit_sasl_authenticated,
reject_unauth_destinationили
smtpd_sender_restrictions =
check_sender_access hash:/etc/postfix/sender_accesssmtpd_recipient_restrictions =
permit_sasl_authenticated,
reject_unauth_destination
нет вопросов. Что скобленное то было в деле, проверено#disable_vrfy_command = yes
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
#smtp_sasl_password_maps = mysql:/usr/local/etc/postfix/sql/mysql_sasl.cf
#smtp_sasl_security_options = noanonymous, noplaintext, noactive, nodictionary
#smtp_sasl_security_options =
#check_sender_access = mysql:/usr/local/etc/postfix/sql/mysql_ch_send.cf
smtpd_client_restrictions = permit_sasl_authenticated
smtpd_sender_restrictions = permit_sasl_authenticatedsmtp_always_send_ehlo = yes
smtpd_helo_required = yes
#smtpd_helo_restrictions = permit_mynetworks,reject_invalid_hostname,reject_unknown_hostname
#!!!!!!!!!!!!!!!!!!!!!
#smtpd_helo_restrictions = permit_sasl_authenticated,reject#reject_code = 499
#relay_domains_reject_code = 449
#access_map_reject_code = 1001#smtpd_recipient_restrictions = check_sender_access mysql:/usr/local/etc/postfix/mysql-sender.cf,reject
smtpd_recipient_restrictions = check_sender_access hash:/usr/local/etc/postfix/sender_access,reject
#smtpd_recipient_restrictions = check_sender_access hash:/usr/local/etc/postfix/sender_access,permit_sasl_authenticated,reject
#smtpd_recipient_restrictions = check_sender_access mysql:/usr/local/etc/postfix/mysql_ch_send.cf,permit_sasl_authenticated,reject# permit_mynetworks,
# permit_sasl_authenticated,
# check_sender_access mysql:/usr/local/etc/postfix/mysql_ch_send.cf
# check_sender_access hash:/usr/local/etc/postfix/sender_access,
# reject
# permit_sasl_authenticated
# reject# check_relay_domains, reject
# permit_sasl_authenticated,
# reject_unauth_destinination,
# reject_rbl_client list.dsbl.org,
# reject_rbl_client relays.ordb.org,
# reject_rbl_client dynablock.wirehub.net,
# reject_rbl_client blackholes.wirehub.net,
# reject_rbl_client dnsbl.njabl.orgи к скулю
domain=xxx
user=xxx
password=xxx
hosts=localhost
dbname=xxx
query = SELECT name FROM xxx WHERE username='%u@%d' AND active='1'
По-умолчанию
smtpd_delay_reject = yes
поэтому уже
smtpd_client_restrictions = permit_sasl_authenticated
разрешит sasl-клиентам доступ и другие ограничения проверяться не будут.
Максу, ты задавай вопросы, что стоит, что еще прикручено, может сразу отвечу. Ежели нет тогда накидаю ссылок по которым я работал.
Благодарен jonatan за совет, да только пробовал так. Появляется глюк. Если не выходя их аутлука дать разрешение на релэй сендеру, и тут же отрубить или поменять пароль авторизации, то юзер если скинет голку авторизации на серваке, то релэй уйдет. Но хрен с ним, это я победил, через задницу но работает. Теперь новая проблема. Пока настройка проверки клиент стоит через hash все зашибись. Но как только прикручиваеш к этому делу mysql появляются два варианта, если включена авторизация, то отсылает при правильной авторизации, если нет, то все равно орет релый открыт, шлите люди добрые. И забил бы на это, работал бы через MDB. Так эта сволоч режет метасимволы. Опять голову ломаю. Из файла все путем, из переменной обрезает
Хорошо бы еще в этот монолог вставить файлы конфигурации.
Спасибо, проверю. Вроде выше правил, но думаю ты прав.
Пофигу, если одно из условий выполняется, то второе до фени
вот так работает в любых вариациях, но только не с mysql
smtp_always_send_ehlo = yes
smtpd_helo_required = yes
#smtpd_helo_restrictions = permit_mynetworks,reject_invalid_hostname,reject_unknown_hostname
#!!!!!!!!!!!!!!!!!!!!!
smtpd_helo_restrictions = permit_sasl_authenticated,reject#reject_code = 499
#relay_domains_reject_code = 449
#access_map_reject_code = 1001#smtpd_recipient_restrictions = check_sender_access mysql:/usr/local/etc/postfix/mysql-sender.cf,reject
#smtpd_recipient_restrictions = check_sender_access hash:/usr/local/etc/postfix/sender_access,reject
smtpd_recipient_restrictions = check_sender_access hash:/usr/local/etc/postfix/sender_access,permit_sasl_authenticated,reject
#smtpd_recipient_restrictions = check_sender_access mysql:/usr/local/etc/postfix/mysql_ch_send.cf,permit_sasl_authenticated,reject
>smtpd_helo_restrictions = permit_sasl_authenticated,reject
Только что говорил об этом. Это разрешит sasl-клиентам доступ
>smtpd_recipient_restrictions = check_sender_access hash:/usr/local/etc/postfix/sender_access,permit_sasl_authenticated,reject
и это уже проверяться не будет.
не могу спорить, верю, что чего то не догоняю, но вот только в таком варианте работает как надо. И рубит если в сендерах не OK и если галка не стоит в авторизации на отправку, и если пароль набран неверно.
Да, это я прогнал. Но смысла permit_sasl_authenticated в smtpd_helo_restrictions не вижу.
я тоже. Уверен, должно работать как положено. Но тем не менее это факт. Я уже перкрутил наверное не все вариации, но из логичных большенство. Вот сижу репу чешу. Но если работает пусть работает, может потом на досуге допрет. Вот бы еще mysql заломать
Если смысла нет, то уберите permit_sasl_authenticated из smtpd_helo_restrictions.
Какие сейчас проблемы еще остались?
Так если убрать, то тогда не работает. Как только клиент убирает у себя авторизацию на отпраку, все проходит без аторизации, что не есть гут. Вот только в таком виде работает.
Вот еще один глюк. Пров отфильтровал 25 порт. Пришлось открыть еще 2525. Так вот микрософтовские клиенты на 2525 при openssl, падают. Только если на 25. А The bat и Lotus organaizer без проблем секьюрятся. Если можеш дай свой телефон, я позвоню, пообщаемся. Я б дал свой, но я в канаде. моя аська 34087602
Давайте начнем сначала. Покажите
postconf -n
и содержимое файла /usr/local/etc/postfix/sender_access
ну вот
alias_database = hash:/etc/mail/aliases
alias_maps = hash:/etc/mail/aliases
allow_untrusted_routing = no
bounce_size_limit = 10000
broken_sasl_auth_clients = yes
command_directory = /usr/local/sbin
config_directory = /usr/local/etc/postfix
daemon_directory = /usr/local/libexec/postfix
debug_peer_level = 9
default_privs = nobody
disable_vrfy_command = yes
header_checks = regexp:/usr/local/etc/postfix/header-checks
html_directory = no
mail_owner = postfix
mail_spool_directory = /var/mail
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/man
maps_rbl_reject_code = 499
message_size_limit = 5120000
mydestination = $myhostname, localhost.$mydomain $mydomain
mydomain = xp277.lsoft.net
myhostname = xp277.lsoft.net
mynetworks = 127.0.0.0/8
myorigin = $mydomain
newaliases_path = /usr/local/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = no
sample_directory = /usr/local/etc/postfix
sendmail_path = /usr/local/sbin/sendmail
setgid_group = maildrop
smtp_always_send_ehlo = yes
smtp_tls_note_starttls_offer = yes
smtp_use_tls = yes
smtpd_banner = ESMTP READY ! ALL CONNECTION LOGGED !
smtpd_client_restrictions = permit_sasl_authenticated
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_sasl_authenticated,reject
smtpd_recipient_restrictions = check_sender_access hash:/usr/local/etc/postfix/sender_access,permit_sasl_authenticated,reject
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sender_restrictions = permit_sasl_authenticated
smtpd_tls_CAfile = /usr/local/etc/postfix/ca.crt
smtpd_tls_ask_ccert = yes
smtpd_tls_auth_only = no
smtpd_tls_cert_file = /usr/local/etc/postfix/server.crt
smtpd_tls_key_file = /usr/local/etc/postfix/server.key
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_use_tls = yes
tls_random_source = dev:/dev/urandom
unknown_local_recipient_reject_code = 450
virtual_mailbox_base = /var/spool/virtual
Я просил еще содержимое файла /usr/local/etc/postfix/sender_access
там такая фигня
user@domain.com OKили если надо отрубить
user@domain.com rejectи потом зачем тогда тебе нужно было postconf -n
Тогда все понятно. Когда Вы убираете
smtpd_helo_restrictions = permit_sasl_authenticated,reject
то клиенты получают доступ даже без sasl через разрешения в этом файле:
user@domain.com OK
Объясните, какая конкретно стоит задача? Каким клиентам и куда нужно дать доступ, каким нет?
задача такая. Чтобы пользователь не мог отправить что либо без авторизации и был заблокирован если он не ОК в sender все это должно работать обязательно. т.е. не стоит галка на авторизацию, долой, неправильная авторизация тоже самое, в сендере reject тоже облом. И только при совпадении все наборов правил - relay
Короче делайте так./usr/local/etc/postfix/main.cf:
smtpd_client_restrictions =
smtpd_helo_restrictions =
smtpd_sender_restrictions =
smtpd_recipient_restrictions =
reject_sender_login_mismatch,
check_sender_access hash:/usr/local/etc/postfix/sender_access,
permit_sasl_authenticated,
reject/usr/local/etc/postfix/sender_access:
user@domain.com REJECT
user1@domain.com REJECTВ файле sender_access прописываем ТОЛЬКО пользователей, которым нужно ЗАБЛОКИРОВАТЬ доступ (REJECT).
спасибо огромное. Сделаю, посмотрю.
Пошел по простому пути. Оставил только пермит сасл. А дальше забрался в код и рубил по своим критериям. Напрмер у меня выключено несоответствие адреса от. (чела кто даже авторизовался) Выключено от. кто послал писем больше чем нужно. Могу рулить посылкой с TLS или без. и самое главное, на любом порту пересылаю письма с TLS или без