URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 57840
[ Назад ]

Исходное сообщение
"Братцы спасайте. Всю голову сломал"

Отправлено chook , 01-Июл-05 04:02 
Postfix авторизация по SASL в smptd_recipient_restrictions = permit_sasl_authenticated
check_sender_access
reject

так вот если авторизация прошла успешно, то осталные строчки по барабану, а мне нужно чтоб и sender проверялся
может кто знает что делать


Содержание

Сообщения в этом обсуждении
"Братцы спасайте. Всю голову сломал"
Отправлено max , 01-Июл-05 07:52 
>Postfix авторизация по SASL в smptd_recipient_restrictions = permit_sasl_authenticated
>check_sender_access
>reject
>
>так вот если авторизация прошла успешно, то осталные строчки по барабану, а
>мне нужно чтоб и sender проверялся
>может кто знает что делать

Дай плиз ссылку на материал как прикрутить авторизацию!...


"Братцы спасайте. Всю голову сломал"
Отправлено jonatan , 01-Июл-05 08:47 
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_access

smtpd_recipient_restrictions =
        permit_sasl_authenticated,
        reject_unauth_destination


"Братцы спасайте. Всю голову сломал"
Отправлено chook , 01-Июл-05 09:23 
нет вопросов. Что скобленное то было в деле, проверено

#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_authenticated

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

# 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'


"Братцы спасайте. Всю голову сломал"
Отправлено jonatan , 01-Июл-05 09:59 
По-умолчанию
smtpd_delay_reject = yes
поэтому уже
smtpd_client_restrictions = permit_sasl_authenticated
разрешит sasl-клиентам доступ и другие ограничения проверяться не будут.

"Братцы спасайте. Всю голову сломал"
Отправлено chook , 01-Июл-05 08:58 
Максу, ты задавай вопросы, что стоит, что еще прикручено, может сразу отвечу. Ежели нет тогда накидаю ссылок по которым я работал.
Благодарен jonatan за совет, да только пробовал так. Появляется глюк. Если не выходя их аутлука дать разрешение на релэй сендеру, и тут же отрубить или поменять пароль авторизации, то юзер если скинет голку авторизации на серваке, то релэй уйдет. Но хрен с ним, это я победил, через задницу но работает. Теперь новая проблема. Пока настройка проверки клиент стоит через hash все зашибись. Но как только прикручиваеш к этому делу mysql появляются два варианта, если включена авторизация, то отсылает при правильной авторизации, если нет, то все равно орет релый открыт, шлите люди добрые. И забил бы на это, работал бы через MDB. Так эта сволоч режет метасимволы. Опять голову ломаю. Из файла все путем, из переменной обрезает

"Братцы спасайте. Всю голову сломал"
Отправлено jonatan , 01-Июл-05 09:11 
Хорошо бы еще в этот монолог вставить файлы конфигурации.

"Братцы спасайте. Всю голову сломал"
Отправлено chook , 01-Июл-05 10:05 
Спасибо, проверю. Вроде выше правил, но думаю ты прав.



"Братцы спасайте. Всю голову сломал"
Отправлено chook , 01-Июл-05 10:18 
Пофигу, если одно из условий выполняется, то второе до фени


"Братцы спасайте. Всю голову сломал"
Отправлено chook , 01-Июл-05 10:30 
вот так работает в любых вариациях, но только не с 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


"Братцы спасайте. Всю голову сломал"
Отправлено jonatan , 01-Июл-05 10:36 
>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
и это уже проверяться не будет.

"Братцы спасайте. Всю голову сломал"
Отправлено chook , 01-Июл-05 10:42 
не могу спорить, верю, что чего то не догоняю, но вот только в таком варианте работает как надо. И рубит если в сендерах не OK и если галка не стоит в авторизации на отправку, и если пароль набран неверно.


"Братцы спасайте. Всю голову сломал"
Отправлено jonatan , 01-Июл-05 11:13 
Да, это я прогнал. Но смысла permit_sasl_authenticated в smtpd_helo_restrictions не вижу.

"Братцы спасайте. Всю голову сломал"
Отправлено chook , 01-Июл-05 11:19 
я тоже. Уверен, должно работать как положено. Но тем не менее это факт. Я уже перкрутил наверное не все вариации, но из логичных большенство. Вот сижу репу чешу. Но если работает пусть работает, может потом на досуге допрет. Вот бы еще mysql заломать

"Братцы спасайте. Всю голову сломал"
Отправлено jonatan , 01-Июл-05 11:25 
Если смысла нет, то уберите permit_sasl_authenticated из smtpd_helo_restrictions.
Какие сейчас проблемы еще остались?

"Братцы спасайте. Всю голову сломал"
Отправлено chook , 01-Июл-05 11:42 
Так если убрать, то тогда не работает. Как только клиент убирает у себя авторизацию на отпраку, все проходит без аторизации, что не есть гут. Вот только в таком виде работает.
Вот еще один глюк. Пров отфильтровал 25 порт. Пришлось открыть еще 2525. Так вот микрософтовские клиенты на 2525 при openssl, падают. Только если на 25. А The bat и Lotus organaizer без проблем секьюрятся. Если можеш дай свой телефон, я позвоню, пообщаемся. Я б дал свой, но я в канаде. моя аська 34087602



"Братцы спасайте. Всю голову сломал"
Отправлено jonatan , 01-Июл-05 11:51 
Давайте начнем сначала. Покажите
postconf -n
и содержимое файла /usr/local/etc/postfix/sender_access

"Братцы спасайте. Всю голову сломал"
Отправлено chook , 01-Июл-05 11:59 
ну вот
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



"Братцы спасайте. Всю голову сломал"
Отправлено jonatan , 01-Июл-05 12:15 
Я просил еще содержимое файла /usr/local/etc/postfix/sender_access

"Братцы спасайте. Всю голову сломал"
Отправлено chook , 01-Июл-05 12:23 
там такая фигня
user@domain.com  OK

или если надо отрубить
user@domain.com  reject

и потом зачем тогда тебе нужно было postconf -n


"Братцы спасайте. Всю голову сломал"
Отправлено jonatan , 01-Июл-05 12:38 
Тогда все понятно. Когда Вы убираете
smtpd_helo_restrictions = permit_sasl_authenticated,reject
то клиенты получают доступ даже без sasl через разрешения в этом файле:
user@domain.com  OK
Объясните, какая конкретно стоит задача? Каким клиентам и куда нужно дать доступ, каким нет?

"Братцы спасайте. Всю голову сломал"
Отправлено chook , 01-Июл-05 12:46 
задача такая. Чтобы пользователь не мог отправить что либо без авторизации и был заблокирован если он не ОК в sender все это должно работать обязательно. т.е. не стоит галка на авторизацию, долой, неправильная авторизация тоже самое, в сендере reject тоже облом. И только при совпадении все наборов правил - relay

"Братцы спасайте. Всю голову сломал"
Отправлено jonatan , 01-Июл-05 12:53 
Короче делайте так.

/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).


"Братцы спасайте. Всю голову сломал"
Отправлено chook , 01-Июл-05 12:59 
спасибо огромное. Сделаю, посмотрю.

"Братцы спасайте. Всю голову сломал"
Отправлено chook , 02-Июн-06 08:30 
Пошел по простому пути. Оставил только пермит сасл. А дальше забрался в код и рубил по своим критериям. Напрмер у меня выключено несоответствие адреса от. (чела кто даже авторизовался) Выключено от. кто послал писем  больше чем нужно. Могу рулить посылкой с TLS или без. и самое главное, на любом порту пересылаю письма с TLS или без