Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

ответвление SMTP-трафика - чем сделать? [под Винду]

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Сети
Предыдущая тема :: Следующая тема  
Автор Сообщение
dAnIK SeNT



Зарегистрирован: 11.06.2004
Сообщения: 43
Откуда: Казань

СообщениеДобавлено: Пт Авг 27 2004 09:33    Заголовок сообщения: ответвление SMTP-трафика - чем сделать? [под Винду] Ответить с цитатой

Имеется мыльный сервак, принимающий на 25 порт SMTP-траф.
Требуется копию всего входящего smtp-трафика отправлять на 25 порт некоего компа-приёмника, IP-шник которого известен, причём стандартные средства почтового сервака не подходят. Перенастройка любых других машин, кроме той, на которой сидит мыльный сервер, недопустима.
Я вижу только один вариант: почтовый сервак перенастраивается на другой порт (пусть будет 4025). После этого втыкаем некую софтину, которая слушат 25 порт и всё, что на него валится отправляет в двух экземплярах: один - на порт 4025 локального компа, второй - на 25 порт компа-приёмника.
Вопрос - какой софтиной (очень желательно - бесплатной, в крайнем случае - триальной) это можно сделать? И есть ли где-нибудь какие-то доки по данному вопросу?
_________________
Cисадмин - образ жизни. Программист - диагноз...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
and3008



Зарегистрирован: 12.10.2001
Сообщения: 14893
Откуда: Н.Новгород

СообщениеДобавлено: Пт Авг 27 2004 20:16    Заголовок сообщения: Ответить с цитатой

Мыслишь правильно.

Однако зеркалирование на третьем уровне весьма затруднено. Ведь при создании SMTP-коннекта раньше разговаривали 2 компа, а теперь видите ли надо, чтоб было три...

Обычно зеркалирование трафика делают на управляемом коммутаторе. К зеркалируемому порту подключается снифер. Обычно такую схему используют для поиска неисправностей или IDS-систем.

Заркалирование для чего нужно-то? Для перехвата SMTP-трафика?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dAnIK SeNT



Зарегистрирован: 11.06.2004
Сообщения: 43
Откуда: Казань

СообщениеДобавлено: Сб Авг 28 2004 11:56    Заголовок сообщения: Ответить с цитатой

and3008 писал(а):
Заркалирование для чего нужно-то? Для перехвата SMTP-трафика?

Да, именно для него. Есть некий сервак, принимающий почту, и весь SMTP-трафик, проходящий через Exchange, должен на него дублироваться (компромат собирать, гы-гы Smile).
При этом настроить ответвление на самом Exchange не представляется возможным...

Цитата:
Однако зеркалирование на третьем уровне весьма затруднено. Ведь при создании SMTP-коннекта раньше разговаривали 2 компа, а теперь видите ли надо, чтоб было три...

Да, не очень приятно получается.
В принципе, наверное, подойдёт не зеркалирование, а форвардинг. Не думаю, что это позволит кому-то выяснить, что была сделана копия - ведь программа-воришка будет сидеть на том же компе, что и сервак - кто будет разбираться, отчего этот IP-шник упомянут в заголовках дважды Smile Чем сделать форвардинг на два сервака сразу - вот вопрос.

Цитата:
Обычно зеркалирование трафика делают на управляемом коммутаторе. К зеркалируемому порту подключается снифер. Обычно такую схему используют для поиска неисправностей или IDS-систем.

Боюсь, этого сделать не удастся.

Я тут нашёл по подсказке прогу email-relay.
В ней есть фишка форвардинга, причём можно до отправки сообщения пропустить его через программу-фильтр (исходное предназначение - определение того, следует ли пропускать данное письмо, или его надо отвергнуть). В принципе, можно в качестве программы-фильтра сделать мелкую приблуду, которая будет передавать сообщение какому-нибудь лёгкому email-клиенту, и возвращать управление, говоря "всё ок". А уже email-клиент будет переданные ему сообщения доставлять компу-сборщику мессаг. Но тут есть пара непрятных моментов. Во-первых, при получении каждого письма запускается программа-фильтр, и дальнейшие сообщения валятся в спул имейл-релея до тех пор, пока прога-фильтр не вернёт управление. Да и запускать программу несколько раз в секунду (писем валится много) тоже не очень хорошо, лучше бы она резидентно висела... Во-вторых, больно сложная система получается.
Пока хочу бороться с этим путём правки исходников email-relay:
программа-минимум - отключить ожидание ответа от фильтра - кинула ему мессагу и продолжила обрабатывать независимо от результата; программа-максимум - научить её форвардить на два адреса...
_________________
Cисадмин - образ жизни. Программист - диагноз...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
RandomUser
Гость





СообщениеДобавлено: Сб Авг 28 2004 14:06    Заголовок сообщения: Ответить с цитатой

А почему бы не включить на Exchange архивирование всей входящей/исходящей почты ну например в ящик arhiv@domain.ru а второй почтовик нихай сам с него все и сливает по pop3 иль на этом ящике arhiv@domain.ru включить форвард иль это тож не подходит??? У меня так работает на MDaemon.
Вернуться к началу
dAnIK SeNT



Зарегистрирован: 11.06.2004
Сообщения: 43
Откуда: Казань

СообщениеДобавлено: Сб Авг 28 2004 14:34    Заголовок сообщения: Ответить с цитатой

RandomUser писал(а):
А почему бы не включить на Exchange архивирование всей входящей/исходящей почты ну например в ящик arhiv@domain.ru а второй почтовик нихай сам с него все и сливает по pop3 иль на этом ящике arhiv@domain.ru включить форвард иль это тож не подходит??? У меня так работает на MDaemon.

Я уже говорил - стандартные средства Exchange не подходят.
Причины объяснять долго, факт, что ни один из способов ответвления средствами самого Exchange не работает.

В результате экспериментов пришёл к следующей ситуации: E-MailRelay отправляет одну копию сообщения серверу в исходном направлении, а вторую копию передаёт в виде текстового файла моему скрипту. Конкретнее: вызывает что-то вроде
Код:

c:\smtp\emailrelay\test.bat e:\spool\emailrelay.1576.680185.3.content

при этом в .content-файле содержится вся мессага, включая все заголовки.

Новая задача: имеется файл сообщения, включающий все заголовки. Надо отправить его на определённый smtp-сервер. Казалось бы - нефиг делать! Хрена с два... Перепробовал всяческие smtp-send'еры командной строки - ни один не катит. Все чего-то своё приписывают, а в результате отправляется совсем не то, что мне хотелось бы...
Последний вариант, который я придумал:
файл 2telnet.bat:
Код:

@echo OFF
echo HELO secretcomp-pj
echo MAIL FROM:^<stukachok@admin^>
echo RCPT To:^<archiver@secret^>
echo DATA
type "%1"
echo.
echo .
echo.
echo QUIT

собственно, если выполнить этот файл, после чего вручную делать copy-paste строчек, появившихся на экране, в telnet - всё великолепно прокатывает! Но все мои попытки передать выход этого скрипта на вход telnet'а не увенчались успехом...
Прежде всего я, уже привыкший работать с операционной системой, а не с тупым её огрызком, написал:
Код:

2telnet.bat | telnet secret 25

Ага, щаз... После этого, сделав скидку на тупизну и убогость виндовой консоли, переписал:
Код:

2telnet.bat > temp.txt
telnet secret 25 < temp.txt

Тоже не работает!!!
Винду начинаю потихоньку ненавидеть... Хочу обратно Линукс! Но разруливать надо именно в винде... Sad(
_________________
Cисадмин - образ жизни. Программист - диагноз...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
and3008



Зарегистрирован: 12.10.2001
Сообщения: 14893
Откуда: Н.Новгород

СообщениеДобавлено: Сб Авг 28 2004 14:57    Заголовок сообщения: Ответить с цитатой

Поищи еще этих мелких прог. Должны быть.

Опять займусь рекламой Communigate Pro... В нем есть правило "Mirror To". Делает то, что тебе надо.
Только эта... Этот комп должен быть relay-сервером. Как для входящего трафика, так и для исходящего. Т.е. настройку Exchange прийдется подправить.
Если хочешь - поставь его. Для упрощения можешь в нем по-отключать кучу функций.

Вообще для таких задач есть готовые решения. Например "Инфосистемы Джет" кое-чего могут предложить.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Борис
Гость





СообщениеДобавлено: Сб Авг 28 2004 15:28    Заголовок сообщения: софтина -- это другой эсэмтипи-сервер Ответить с цитатой

>>>> После этого втыкаем некую софтину, которая слушат 25 порт и всё, что на него валится отправляет в двух экземплярах: один - на порт 4025 локального компа, второй - на 25 порт компа-приёмника.
>>>> Вопрос - какой софтиной (очень желательно - бесплатной, в крайнем случае - триальной) это можно сделать? И есть ли где-нибудь какие-то доки по данному вопросу?

Ответ: софтина -- это другой эсэмтипи-сервер, настроенный соответствующим образом, то есть переправляющий всё в простецкую программу (примерно 10 строк на шелле), а она всё отправляет в основной эсэмтипи-сервер, тот, что на 4025-м порту в нашем случае.
Вернуться к началу
and3008



Зарегистрирован: 12.10.2001
Сообщения: 14893
Откуда: Н.Новгород

СообщениеДобавлено: Сб Авг 28 2004 15:52    Заголовок сообщения: Ответить с цитатой

А слабо эти 10 строк сюда показать?

Помним, что нужно под ОС Windows!!!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Гость






СообщениеДобавлено: Сб Авг 28 2004 16:02    Заголовок сообщения: Ответить с цитатой

and3008 писал(а):
А слабо эти 10 строк сюда показать?

Помним, что нужно под ОС Windows!!!


Слона-то я и не приметил (позор на мою седую голову)! Тогда 10 строк на си++. А впрочем, что smtp-сервер? С ним, наверное, есть что-нибудь, отправляющее файл из командной строки?
Вернуться к началу
dAnIK SeNT



Зарегистрирован: 11.06.2004
Сообщения: 43
Откуда: Казань

СообщениеДобавлено: Сб Авг 28 2004 16:10    Заголовок сообщения: Ответить с цитатой

Уф! Сделал-таки!
Правда, на Exchange пока не проверял - экспериментировал на кошках, т.е. на MDaemon'е.

Использованный софт:
* E-MailRelay V1.3.1
* Console Telnet v2.1b2
* windows, так её растак, shell Smile

Методика:
поставил emailrelay, настроил на прослушивание 25-го порта фильтрацию через filter.bat и форвардинг на 4025 порт почтового сервера (имя машины - mailserver, MDaemon перенастроил на прослушивание 4025-го порта).

Командная строка запуска:
Цитата:
c:\relay\emailrelay --as-proxy mailserver:4025 --port 25 --remote-clients --spool-dir c:\relay\spool --filter
"c:\relay\filter.bat"


В папку c:\relay\sendmail положил telnet2.exe (Console Telnet v2.1b2) и два .bat-файла.
2telnet.bat:
Код:

@echo OFF
echo HELO %1
echo MAIL FROM:^<%2^>
echo RCPT To:^<%3^>
echo DATA
type "%4"
echo.
echo .
echo QUIT


sendmail.bat:
Код:

@echo OFF
rem USAGE: sendmail server port from to message-file

c:\relay\sendmail\2telnet.bat %1 %3 %4 %5 | c:\relay\sendmail\telnet2 --Input_Redir=1 --Output_Redir=1 %1 %2


в папку c:\relay положил filter.bat:
Код:

@echo off
c:\relay\sendmail\sendmail secret 25 admin@mailserver archive@secret %1
exit 0


emailrelay принимает почту на порт 25, передаёт её скрипту filter.bat, тот отправляет почту на 25 порт машины secret (при помощи скрипта sendmail.bat) и возвращает код 0 (что emailrelay расценивает как "сообщение одобрено"), после чего emailrelay уже передаёт письмо серверу на локальной машине (mailserver) на 4025-й порт.

Система, надо сказать, несколько извращённая, но она работает!
Правда, надо ещё поглядеть, как она будет работать в условиях реальной почтовой системы, где идёт весьма нехилый поток писем... Что ж, будем глядеть Smile.

2All, особенно 2and3008
Спасибо за участие!

2and3008
А с "Инфосистемами Джет" мы работаем Smile Однако, подходящих решений для Windows у них, к сожалению, нет Sad. Всё упирается в настройку почтового сервера, а этого-то я как раз сейчас сделать не могу.
_________________
Cисадмин - образ жизни. Программист - диагноз...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
and3008



Зарегистрирован: 12.10.2001
Сообщения: 14893
Откуда: Н.Новгород

СообщениеДобавлено: Сб Авг 28 2004 17:24    Заголовок сообщения: Ответить с цитатой

Ну собственно ожидаемых проблемм 3.

1. Что будет, если Exchange выключен и не принимает почту некоторое время? Будет ли e-mail relay повторно передавать почту? Аналогично с сервером secret.

2. Сколько писем в секунду сможет обработать такой хитрый серверок?

3. Не смогут ли этим сервером воспользоваться спамеры или вирусы?

Мое личное беспокойство вызывает только п.1 и п.3
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dAnIK SeNT



Зарегистрирован: 11.06.2004
Сообщения: 43
Откуда: Казань

СообщениеДобавлено: Вс Авг 29 2004 21:31    Заголовок сообщения: Ответить с цитатой

and3008 писал(а):
1. Что будет, если Exchange выключен и не принимает почту некоторое время? Будет ли e-mail relay повторно передавать почту? Аналогично с сервером secret.

На первую половину вопроса ответ - будет. В параметрах запуска релея можно установить, с какой частотой повторять и сколько времени, прежде чем слать откат. А вот на вторую половину - зависит от скрипта. Можно написать более продвинутый скрипт, который будет не всегда возвращать код 0, а только в том случае, когда почта ушла на secret. В противном же случае - возвращать код, заставляющий emailrelay повторить попытку проверки сообщения через некоторое время, а пока подержать его в спуле.
Цитата:
2. Сколько писем в секунду сможет обработать такой хитрый серверок?

Выясняется... Smile
Цитата:
3. Не смогут ли этим сервером воспользоваться спамеры или вирусы?

Единственная проблема - Exchange не может проверять IP-адреса, с которых приходит почта - вроде как всё идёт с локального хоста... Не знаю ещё, к каким проблемам это может привести - надо посмотреть повнимательнее.

В принципе, я рассматриваю всё это как меру временную - оно должно проработать около месяца, потом уже пофиг Smile
_________________
Cисадмин - образ жизни. Программист - диагноз...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Сети Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...