In article <36673A1C.135864C5@escortcorp.com>, Vladimir Pastukhov
<vol@escortcorp.com> wrote:
> > Ну так вот именно по этой информации и определяется - релеинг это или нет.
> > Если РУТЕР после применения всех своих встроенных и определенных правил
> > сказал - это пойдет на не-SMTP то считается (сейчас, по крайней мере), что
> > это - не релей. Если на SMTP - то это релей, смотрится - от кого и кому, и
> > разрешено ли это.
>
> Что именно смотрится? Кому - это адрес конечного получателя или
> адрес, полученный от Рутера?
На выходе мы имеем:
<modulename> <entityName> <address>
(если MODULENAME = SMTP, то entityName - имя домена - куда слать, в остальных
случаях - не стольк важно).
If moduleName = SYSTEM and then entityName = NULL then
// это кого-то зарутили в NULL, типа:
// <vol@escortcorp.com> = NULL
// *.edu = NULL
acceptReceipient(250,"Welcome to the black hole");
elsif moduleName = SYSTEM and then entityName = ERROR then
// это кого-то заblacklist-или, зарутили в ERROR, типа:
// <vol@escortcorp.com> = ERROR
// *.edu = ERROR
rejectReceipient(571,"address ^0 is blacklisted here");
elsif moduleName != SMTP then
// это что-то локальное, пусть они сами разбираются - LOCAL MAIL, UUCP, LIST..
acceptReceipient(250,"will leave the Internet");
elsif openRelay then
// мы тут добрые, и все релеим, куда ни скажут
acceptReceipient(250,"will relay");
elsif something then
// так я вам тут и рассказал, что еще можно релееить :-)
acceptReceipient(250,"will relay");
elsif peerIPAddress in TrustedClientAddresses then
// это от нашего клиента, и все релеим, куда ни скажут
acceptReceipient(250,"will relay for a client"); // это дырка нумер раз
elsif entityName in SupportedDomains then
// на этот домен нам разрешено релеить
acceptReceipient(250,"will relay to a client"); // это дырка нумер два
elsif IPAddressOfTheFirstMX(entityName) in SupportedIPAddresses then
// на этот домен нам разрешено релеить
acceptReceipient(250,"will relay to a client"); // это дырка нумер два
else
rejectReceipient(592,"we do not relay"); // это дырка нумер два
endif
Это довольно упрощенно (там еще три клаузы есть, кажется), и - без
обработки RBL и BlackList - они тоже теперь через общую дырку
обрабатываются, чтобы можно было делать "WhiteHoles" (этого в CGatePro
пока нету, посмотрите в www.stalker.com/SIMS/)
Ну так вот, если мы друг у друга - в TrustedClientAddresses, и в
SupportedIPAddresses (а у нас пока - это вообще одна таблица), то дыра
видна невооруженным глазом: Петя шлет Васе, потому что Васе можно слать, а
Вася релеет все, что пришло от Пети, потому что от Пети все можно релеить.
Решение - в том, чтобы сказать Васе - "Вася, это от меня, от Пети, но ты
мне не верь - я просто для тебя релею, а нужно это тебе и можешь ты это
релеить или нет - решай сам". То есть - чтобы mail server вылезающий с
адреса xx.yy.zz.tt мог быть ОТЛИЧЕН от юзеровского майлера, вылезающего на
нас с того же адреса.
Решения -
а) запретить ситуации. Нечего, мол: у них есть там на xx.yy.zz.tt, вот
пусть им и пользуются. То есть - убираем Петю xx.yy.zz.tt из списка
Васиных "клиентных хостов"
б) идентифицировать клиентов не по IP адресам. В одном случае - для
мобильных клиентов это уже сделано (релеим почту во время и немного после
POP/IMAP сессии с того же адреса), но это - годится только на крайний
случай. Лучше всего - SMTP с аутентикацией (Netscape/Explorer - умеют). Но
не у всех же, как видим Explorer стоит.
в) сделать так, чтобы майлер мог таки сам себя отличить. То есть нечто вроде:
C: EHLO
S: 250-....
S: 250-ORIG -- "Original HELO" extension
S: 250 EHLO
C: MAIL FROM: <Vasya@hrenznayetgde.com> ORIG=250.56.78.97
S: 250 OK
....
Ну и обработку вести по алгоритму для "неизвестного хоста" в этом случае
как для "пришлого хоста". Точнее даже не совсем так: если хост, который
нам сказал "ORIG" - тот, которому мы верим, то проверить ORIG - и
основываться на адресе/домене в ORIG, а не адресе актуального коннекта. А
если мы не верим - то ORIG игнорируется - и соответственно он всегда будет
обрабатываться как "чужак".
Does it make sense? Одну проблему я, правда, уже вижу...
> Vladimir Pastukhov <vol@escortcorp.com>
-- Vladimir Butenko Stalker Software, Inc. -- end of forwarded message --
-- С тем, что не помешает никогда, Kittle