The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как Sendmail-ом узнать залогинен или не залогинен отправител..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как Sendmail-ом узнать залогинен или не залогинен отправител..."  
Сообщение от chainik (??) on 06-Авг-07, 19:45 
Нужно дифференцировать клиентов по признаку залогинились ли они перед отправкой сообщения или нет, и в зависимости от этого не проверять или проверять IP отправляющей машины по spam-листам. Как такое правило записать в sendmail.mc?

Чуть более длинно суть проблемы можно изложить так:

В sendmail.mc я использую опции блокировки по спам-спискам типа

FEATURE(dnsbl,`cbl.abuseat.org',`550 Mail from $&{client_addr} rejected; Spam detected by use cbl.abuseat.org')

При этом Sendmail проверяет в том числе IP и тех машин, с которых клиенты удачно прошли аутентификацию, воспользовавшись своими usernames и паролями. Вместе с тем, IP, динамически раздаваемые провайдерами клиентам, способным удачно пройти аутентификацию, часто оказываются в spam-листах, что вызывает нежелательное "отфутболивание" таких клиентов. Нужно как-то отключить действие опции "FEATURE(dnsbl....", но избирательно - только на тех, кто прошёл аутентификацию, ведь IP их машин нет смысла проверять. С каких бы машин они ни отправляли почту, они должны иметь возможность это сделать.

На всякий случай, на машине используется Linux, поставленный из Slackware то ли 10, то ли 11 (уже не помню), но кое-что на ней подновлено. Что касается Sendmail, то его версия - 8.13.8/8.13.8.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Как Sendmail-ом узнать залогинен или не залогинен отправител..."  
Сообщение от Medlar on 09-Авг-07, 18:12 
I. если ip,для к-х следует сделать исключение, известны, то просто в access добавить
CONNECT:1.2.3       OK

II. ЕСли важно наличие именно smtp-авторизации, то:

1. Включить в sendmail.mc
FEATURE(delay_check)

Иначе факт имевшей место авторизации в локальном наборе правил Local_check_relay
еще не будет известен

см. .../sendmail/sendmail/cf/README не предмет
By using FEATURE(`delay_checks') the rulesets check_mail and check_relay
will not be called when a client connects or issues a MAIL command,
respectively.  Instead, those rulesets will be called by the check_rcpt
ruleset; they will be skipped if a sender has been authenticated using
a "trusted" mechanism, i.e., one that is defined via TRUST_AUTH_MECH().

2. В Local_check_relay добавить проверку макроса $&{auth_authen} (если этот макрос не пустой, то юзер авторизовался)

LOCAL_CONFIG
LOCAL_RULESETS

#Do not check if it is  smtp-authenticated mail
R$*                     $: < $&{auth_authen} >
R< $+ >                 $@ OK

ПЕресобираем sendmail.mc и перестартуем sendmail
О результатах сообщаем.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Как Sendmail-ом узнать залогинен или не залогинен отправител..."  
Сообщение от Medlar on 09-Авг-07, 18:15 
Поправочка:

LOCAL_CONFIG
LOCAL_RULESETS

SLocal_check_relay
#Do not check if it is  smtp-authenticated mail
R$*                     $: < $&{auth_authen} >
R< $+ >                 $@ OK


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Как Sendmail-ом узнать залогинен или не залогинен отправител..."  
Сообщение от chainik (??) on 09-Авг-07, 22:30 
>[оверквотинг удален]
>еще не будет известен
>
>см. .../sendmail/sendmail/cf/README не предмет
>By using FEATURE(`delay_checks') the rulesets check_mail and check_relay
>will not be called when a client connects or issues a MAIL
>command,
>respectively.  Instead, those rulesets will be called by the check_rcpt
>ruleset; they will be skipped if a sender has been authenticated using
>
>a "trusted" mechanism, i.e., one that is defined via TRUST_AUTH_MECH().

Я поступил именно так - кажется всё работает, т.е и FEATURE(dnsbl...), и аутентификация "невзирая на ip". В access у меня прописано только
To:mydomain.ru             RELAY
где вместо "mydomain" - реальное имя домена.

>[оверквотинг удален]
>
>LOCAL_CONFIG
>LOCAL_RULESETS
>
>#Do not check if it is  smtp-authenticated mail
>R$*                     $: < $&{auth_authen} >
>R< $+ >                 $@ OK
>
>ПЕресобираем sendmail.mc и перестартуем sendmail
>О результатах сообщаем.

Этот пункт я не выполнял, т.к. результат, кажется, достигается и без него. В check_relay у меня после сборки senmail.cf (я его не редактировал) прописано буквально следующее:

SLocal_check_relay
Scheckrelay
R$*                     $: $1 $| $>"Local_check_relay" $1
R$* $| $* $| $#$*       $#$3
R$* $| $* $| $*         $@ $>"Basic_check_relay" $1 $| $2

Я всё же не гуру в sendmail, и до редактирования sendmail.cf ещё не добирался, однако если отсутствие проверки макроса $&{auth_authen} мне чем-то угрожает, дайте знать.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Как Sendmail-ом узнать залогинен или не залогинен отправител..."  
Сообщение от Medlar on 10-Авг-07, 12:03 
>Я поступил именно так - кажется всё работает, т.е и FEATURE(dnsbl...), и
>аутентификация "невзирая на ip".

А это что такое?

>Этот пункт я не выполнял, т.к. результат, кажется, достигается и без него.

Отказываюсь что-либо понимать.
Вы пишите:
" ... Нужно как-то отключить действие опции "FEATURE(dnsbl....", но избирательно - только на тех, кто прошёл ***аутентификацию***, ведь IP их машин нет смысла проверять ..."

Почему же тогда проверка наличия аутентификации вдруг стала лишней ???


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Как Sendmail-ом узнать залогинен или не залогинен отправител..."  
Сообщение от chainik (??) on 10-Авг-07, 12:23 
>Отказываюсь что-либо понимать.
>Вы пишите:
>" ... Нужно как-то отключить действие опции "FEATURE(dnsbl....", но избирательно - только
>на тех, кто прошёл ***аутентификацию***, ведь IP их машин нет смысла
>проверять ..."
>
>Почему же тогда проверка наличия аутентификации вдруг стала лишней ???

А проверка у меня почему-то выполняется, т.е. если не аутентифицироваться, то relay не будет разрешён, а будет разрешён только приём почты для локальных пользователей, но с проверкой ip по чёрным спискам.

Вот - sendmail.mc, который я использую (изначально он был из дистрибутива Slackware, номер уже не помню, ну и естественно, я его несколько поизменял):

dnl# This is the a sendmail .mc file for Slackware with TLS support.
dnl# To generate the sendmail.cf file from this (perhaps after making
dnl# some changes), use the m4 files in /usr/share/sendmail/cf like this:
dnl#
dnl# cp sendmail-slackware-tls.mc /usr/share/sendmail/cf/config.mc
dnl# cd /usr/share/sendmail/cf
dnl# sh Build config.cf
dnl#
dnl# You may then install the resulting .cf file:
dnl# cp config.cf /etc/mail/sendmail.cf
dnl#
include(`../m4/cf.m4')
VERSIONID(`TLS supporting setup for Slackware Linux')dnl
OSTYPE(`linux')dnl
dnl#
dnl#
dnl# You will need to create the certificates below with OpenSSL first:
define(`confCACERT_PATH', `/etc/mail/certs/')
dnl#define(`confCACERT', `/etc/mail/certs/CA.cert.pem')
dnl#define(`confSERVER_CERT', `/etc/mail/certs/smtp.cert.pem')
dnl#define(`confSERVER_KEY', `/etc/mail/certs/smtp.key.pem')
dnl#
define(`confCACERT', `/etc/mail/certs/ca.crt')
define(`confSERVER_CERT', `/etc/mail/certs/server.crt')
define(`confSERVER_KEY', `/etc/mail/certs/server.key')
define(`confCLIENT_CERT', `/etc/mail/certs/client.crt')dnl
define(`confCLIENT_KEY', `/etc/mail/certs/client.key')dnl
dnl#
dnl#
dnl# These settings help protect against people verifying email addresses
dnl# at your site in order to send you email that you probably don't want:
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
dnl# Uncomment the line below to send outgoing mail through an external server:
dnl#define(`SMART_HOST',`[umail.ru]')
dnl# No timeout for ident:
define(`confTO_IDENT', `0')dnl
dnl# Enable the line below to use smrsh to restrict what sendmail can run:
dnl FEATURE(`smrsh',`/usr/sbin/smrsh')dnl
dnl# See the README in /usr/share/sendmail/cf for a ton of information on
dnl# how these options work:
FEATURE(`use_cw_file')dnl
FEATURE(`use_ct_file')dnl
FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl
FEATURE(`access_db', `hash -T<TMPF> /etc/mail/access')dnl
dnl# FEATURE(`relay_entire_domain')dnl
FEATURE(`blacklist_recipients')dnl
FEATURE(`local_procmail',`',`procmail -t -Y -a $h -d $u')dnl
FEATURE(`always_add_domain')dnl
FEATURE(`redirect')dnl
dnl#
define(`confMAX_MESSAGE_SIZE', `8388608')
dnl#
define(`ALIAS_FILE',`/etc/mail/aliases')dnl
dnl#
dnl# Turn this feature on if you don't always have DNS, or enjoy junk mail:
FEATURE(`accept_unresolvable_domains')dnl
dnl#
dnl#
dnl# Antispam block (http://www.dnsbl.info/)
dnl#
dnl# First of all we need to turn checks off for authenticated users
dnl# See, for instance, http://www.nabble.com/Sendmail-Blacklists-rejecting-authenticated-users-t898199.html
dnl# and http://www.sendmail.org/m4/anti_spam.html#delay_check
FEATURE(`delay_checks')dnl
dnl#
FEATURE(dnsbl,`bl.spamcop.net',`550 Mail from $&{client_addr} rejected\; This IP address is in a spam list\. Try to check it at http://dnsbl.info')
dnl#
FEATURE(dnsbl,`dnsbl.sorbs.net',`550 Mail from $&{client_addr} rejected\; This IP address is in a spam list\. Try to check it at http://dnsbl.info')
dnl# SORBS is an acronym for Spam and Open Relay Blocking System.
dnl# This is not strictly accurate as a description though,
dnl# as it stops Open Proxy servers and Open SOCKS servers as well as Open Relays.
dnl#
FEATURE(dnsbl,`relays.ordb.org',`550 Mail from $&{client_addr} rejected\; This IP address is in a spam list\. Try to check it at http://dnsbl.info')
FEATURE(dnsbl,`cbl.abuseat.org',`550 Mail from $&{client_addr} rejected\; This IP address is in a spam list\. Try to check it at http://dnsbl.info')
dnl#
FEATURE(dnsbl,`list.dsbl.org',`550 Mail from $&{client_addr} rejected\; This IP address is in a spam list\. Try to check it at http://dnsbl.info')
dnl# DSBL lists contain the IP addresses of servers which have relayed special test messages
dnl# to listme@listme.dsbl.org; this can happen if the server is an open relay, an open proxy or has another
dnl# vulnerability that allows anybody to deliver email to anywhere, through that server. Note that DSBL itself
dnl# doesn't do any tests; it simply listens for incoming test messages and lists the server that delivers the
dnl# message to DSBL's mail server.
dnl#
FEATURE(dnsbl,`sbl.spamhaus.org',`550 Mail from $&{client_addr} rejected\; This IP address is in a spam list\. Try to check it at http://dnsbl.info')
FEATURE(dnsbl,`dnsbl.njabl.org',`550 Mail from $&{client_addr} rejected\; This IP address is in a spam list\. Try to check it at http://dnsbl.info')
dnl#
FEATURE(dnsbl,`opm.blitzed.org',`550 Mail from $&{client_addr} rejected\; This IP address is in a spam list\. Try to check it at http://dnsbl.info')
dnl# opm.blitzed.org is excluded because of too long response time (it was tested by Maslenok at 07/04/07 8:30pm)
dnl#
FEATURE(dnsbl,`whois.rfc-ignorant.org',`550 Mail from $&{client_addr} rejected\; This IP address is in a spam list\. Try to check it at http://dnsbl.info')
dnl#
dnl#
dnl# Allow SASL authentication/relaying:
define(`confAUTH_OPTIONS', `A y')dnl# "p" - prevents from LOGIN and PLAIN methods
define(`confAUTH_MECHANISMS', `LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl
TRUST_AUTH_MECH(`LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl
FEATURE(`no_default_msa')dnl
DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
dnl# DAEMON_OPTIONS(`Port=smtps, Name=MSA-SSL, M=E')dnl
dnl#
EXPOSED_USER(`root')dnl
dnl# Also accept mail for localhost.localdomain:
LOCAL_DOMAIN(`localhost.localdomain')dnl
MAILER(local)dnl
MAILER(smtp)dnl
MAILER(procmail)dnl

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру