Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
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, должен на него дублироваться (компромат собирать, гы-гы ).
При этом настроить ответвление на самом Exchange не представляется возможным...
Цитата: | Однако зеркалирование на третьем уровне весьма затруднено. Ведь при создании SMTP-коннекта раньше разговаривали 2 компа, а теперь видите ли надо, чтоб было три... |
Да, не очень приятно получается.
В принципе, наверное, подойдёт не зеркалирование, а форвардинг. Не думаю, что это позволит кому-то выяснить, что была сделана копия - ведь программа-воришка будет сидеть на том же компе, что и сервак - кто будет разбираться, отчего этот IP-шник упомянут в заголовках дважды Чем сделать форвардинг на два сервака сразу - вот вопрос.
Цитата: | Обычно зеркалирование трафика делают на управляемом коммутаторе. К зеркалируемому порту подключается снифер. Обычно такую схему используют для поиска неисправностей или 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
|
Тоже не работает!!!
Винду начинаю потихоньку ненавидеть... Хочу обратно Линукс! Но разруливать надо именно в винде... ( _________________ 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
Методика:
поставил 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-й порт.
Система, надо сказать, несколько извращённая, но она работает!
Правда, надо ещё поглядеть, как она будет работать в условиях реальной почтовой системы, где идёт весьма нехилый поток писем... Что ж, будем глядеть .
2All, особенно 2and3008
Спасибо за участие!
2and3008
А с "Инфосистемами Джет" мы работаем Однако, подходящих решений для Windows у них, к сожалению, нет . Всё упирается в настройку почтового сервера, а этого-то я как раз сейчас сделать не могу. _________________ 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. Сколько писем в секунду сможет обработать такой хитрый серверок? |
Выясняется...
Цитата: | 3. Не смогут ли этим сервером воспользоваться спамеры или вирусы? |
Единственная проблема - Exchange не может проверять IP-адреса, с которых приходит почта - вроде как всё идёт с локального хоста... Не знаю ещё, к каким проблемам это может привести - надо посмотреть повнимательнее.
В принципе, я рассматриваю всё это как меру временную - оно должно проработать около месяца, потом уже пофиг _________________ Cисадмин - образ жизни. Программист - диагноз... |
|
Вернуться к началу |
|
|
|