НОВОЕ: OS/2 GURU - Вопросы и ответы ru · en · de · es · it · pt · cz · pl · fr

OS/2.GURU Library

Reviews / articles about OS/2 eComStation ArcaOS

Operating systems
ArcaOS, eComStation, IBM OS/2 Warp
eComStation myths 

Latest  
 
 
Blonde Guy

Reformat Утилита для форматирования USB флешек, USB винчестеров (для совместимости с OS/2)

 

(promo)

Unsorted

 

 

AD: ArcaOS 5.1 Russian LIP
Russian ARCAOS exists and it's available since the middle of 2017. All versions are supported: 5.1, 5.1.1.

eCo Software is able to maintain OS/2 LIP packages for any other language (German, Dutch, Brazilian Portuguese, Spanish, Sweden, etc)

Distribution of one domain among several SMTP-servers in LAN using Weasel


TITLE: Distribution of one domain among several SMTP-servers in LAN using Weasel

DATE: 2005-02-03 14:25:45

AUTHOR: Vasilkin Andrey
Please use online translator
go to http://translate.google.com
and request the translation of http://ru.ecomstation./projects/reviews/index.php?id=123
to your language

Задача

Рассмотрим ситуацию: жила-была локала в одной конторе, у конторы были удалённые подразделения, которые худо-бедно по дайлапу обменивались почтой через конторский сервер, исправно оплачивая междугородние звонки. Со временем объём почты рос, появились хоть и медленные, но принадлежащие конторе, цифровые линии связи с подразделениями. Естественно, возникла необходимость направить почту по этим линиям, а т.к. скорость передачи не позволяла пользователям комфортно получать/отправлять корреспонденцию, решено было установить в подразделениях свои почтовые сервера.

Всё бы хорошо, но контора имела свой домен 3го уровня, создавать поддомены, усложняя адреса, было бы не удобно. Вот так было принято решение использовать один домен для всего предприятия.

Первое приближение

Итак, схема движения почты представляется таким образом: Конторский сервер в своей базе содержит всех пользователей конторы и подразделений.

При получении письма конторским сервером производится поиск адресата в базе. Если найденный адресат - работник конторы, письмо записывается в соответствующий почтовый ящик, если же найденный адресат - работник какого-либо удалённого подразделения, письмо пересылается на соответствующий сервер внутри своей сети. Т.е. каждый адрес из удалённых подразделений должен быть прописан на своём и на конторском серверах.

Удалённые SMTP-серверы всю корреспонденцию не для своего домена отправляют на конторский сервер (релэй) для дальнейшего разбора.

Сложности начинаются при отправке письма с удалённого подразделения в другое подразделение, либо в контору, т.е. когда письмо направлено в свой домен, но адресата нет в базе данного SMTP-сервера. В этом случае, используется следующая логика: просматривается база своих пользователей, если пользователь не найден, то письмо отправляется на конторский сервер, для этого в письме адреса получателей из вида user@my.domain преобразуется в user@main-SMTP.my.domain , где main-SMTP - имя конторского сервера. (Имеется ввиду не поле "To:", а служебная информация, которой руководствуется сервер при отправке почты). Аналогично преобразуется обратный адрес отправляемого письма: из sender@my.domain в sender@SMTP-1.my.domain, где SMTP-1 - имя отправляющего удалённого SMTP-сервера.

Реализация

На всех серверах в качестве почтового сервера установлен Weasel Питера Мойлана. В настройках необходимо указать в списке "LIST OF DOMAIN NAMES FOR THE LOCAL HOST" адреса данного SMTP-сервера, В нём будет 2 пункта: my.domain и xxxx.my.domain, где xxxx - имя данного сервера.

В Weasel имеется полезная для нас функция: пересылка почты для конкретного пользователя на другой адрес. Это и используется на конторском сервере: для каждого адреса пользователей удалённых подразделений указано на какой SMTP-сервер пересылать почту, например для адресата Ivanov на адрес Ivanov@SMTP-1.my.domain , где SMTP-1 - сервер подразделения, в котором находится адресат Ivanov.

На удалённых серверах указан relay-сервер main-SMTP в режиме "always" для отправки всей исходящей почты (в домены отличные от my.domain) на конторский сервер. Для пересылки почты внутри своего домена на серверах подразделений заведены (скажем так, "фиктивные") пользователи unknown и алиасы "*" (т.е. этот алиас будет срабатывать для любого адресата, не найденного в своей базе пользователей) на пользователя unknown. Таким образом, все письма для нашего домена, не нашедшие адресата на данном сервере будут отправляться в ящик unknown. Теперь нам нужно эти письма переслать на конторский сервер, этим занимается скрипт unknown.cmd, указанный для пользователя unknown как фильтр, т.е. будет выполняться для каждого письма, попадающего в unknown.

В этом скрипте преобразуются адреса получателей и отправителя дописыванием имён машин, соответственно, конторского и своего серверов; эти адреса записываются в заголовок файла письма в соответствии с форматом файлов отправляемых писем weasel; преобразованное письмо перекладывается в директорию %путь для почты Weasel%\forward и устанавливается системный симофор \SEM32\WEASEL\FORWARDMAIL , что заставляет Weasel немедленно отправить почту из forward (в любом случае, forward проверяется раз в несколько минут). В конце работы скрипт возвращает результат, сообщающий серверу, что письмо фильтр не прошло и его сохранять не надо (т.к. в действительности письмо переписано в очередь на отправку).

Адрес отправителя читается из поля return-path: или From:, если домен отправителя наш - производится поиск пользователя в weasel.ini для определения принадлежности отправителя к данному серверу, если пользователь "свой", к доменной части его адреса приписывается имя данного сервера (например, SMTP-1). Полученный адрес записывается в служебный заголовок файла для weasel.

Адреса получателей читаются из полей To: Cc: Bcc:, если адрес получателя направлен не в наш домен, он игнорируется (т.к. на все не свои домены письмо уже отправлено сервером на наш релэй), если домен получателя наш - производится поиск пользователя в weasel.ini для определения принадлежности адресата к данному серверу, если пользователь "свой", его адрес так же игнорируется (письмо уже ему доставлено). Когда находится адресат из нашего домена, но не являющийся пользователем данного сервера - к доменной части его адреса приписывается имя конторского сервера (например, main-SMTP) и полученный адрес добавляется в список получателей (в заголовок файла для weasel).

В unknown.cmd необходимо задать переменные:

  • MyDomain='MY.DOMAIN' /* имя нашего домена большими буквами */
  • RealaySMTP='ns' /* имя релея нашего домена, если задана пустая строка - будет сделана попытка определить имя релея из weasel.ini, если оно задано ввиде xxxx или xxxx.my.domain, тогда RealaySMTP='xxxx' */
  • MySMTP = 'yes1-gw' /* имя данного сервера, если задана пустая строка - MySMTP=%HOSTNAME% */
  • WeaselPath = 'c:\programs\weasel' /* путь к weasel.ini, если задана пустая строка - используется путь данного скрита */

Для работы скрипта потребуется бибилиотека RXU.DLL из пакета rxu1a.zip (Dave Boll)

Замечания

В нашем случае, со стороны наших локальных сетей, в домене my.domain на DNS-сервере прописаны как локальные не реальные ip-адреса удалённых SMTP-серверов, так и реальный ip-адрес конторской почтовой машины для домена my.domain (MX-запись). Если же в локальной сети отсутствует сервер DNS, либо используется локальный не реальный домен, необходимо установить на всех серверах в файлах config.sys переменную SET USE_HOSTS_FIRST=1 и прописать локальные адреса SMTP-серверов в файлах %ETC%\hosts по примеру:

192.168.1.1 main-SMTP
127.0.0.1 my.domain
192.168.1.100 SMTP-1.my.domain
192.168.1.200 SMTP-2.my.domain

При правильной работе скрипта-фильтра для "фиктивного" пользователя unknown директория %путь для почты Weasel%\unknown во время работы сервера должна оставаться пустой.

Как упоминалось, линии связи с подразделениями очень медленные и, при загрузке каналов почтой, управлять Weasel по telnet с помощью конфигурационной программы viosetup довольно сложно. Поэтому, для упрощения редактирования списка пользователей на периферийных серверах с рабочей станции в конторе был написан скрипт weasel-ctrl.cmd (хэлп выдаётся по запуску без параметров), который можно запускать по telnet или rexec. В реальности, я использую самописный веб-интерфейс на php, который выполняет weasel-ctrl.cmd на удалённых серверах через rexec.

Антивирусная защита

Почти вся почта предприятия проходит через центральный сервер (за исключением случая, когда пользователь удалённого подразделения отсылает письмо на адрес в своём же подразделении), поэтому логично будет использовать на нём антивирусную защиту. Для этих целей, на мой взгляд, наиболее удобным антивирусом будет DrWeb. По-хорошему, в таких случаях, используется DrWeb daemon. Т.е. антивирусные базы постоянно хранятся в памяти, а DrWeb daemon принимает запросы на проверку файлов.

Но в нашем случае использована более банальная (более надёжная?) схема: DrWeb запускается для каждого проходящего через сервер письма, что весьма накладно. Поэтому антивирус со всеми базами, а так же и все почтовые скрипты разумно хранить на виртуальном диске (т.е. копировать при загрузке системы, например в startup.cmd). При такой схеме письма проверяются довольно быстро.

Запуском антивируса занимается скрипт filter.cmd, который в Weasel прописан как Filter 4. 4й фильтр выполняется когда письмо полностью получено сервером. В случае обнаружения вируса, будет выслано предупреждение отправителю и возвращён код, сообщающий Weasel, что сохранять письмо и отправлять ошибку пользователю не нужно.

В filter.cmd необходимо задать переменные:
LogFile = 'D:\logs\MailVir.log' /* лог, куда будет записываться информация об обнаруженных вирусах */
AntivirPath = 'H:\' /* путь к DrWeb (мы используем виртуальный диск) */
и отредактировать virus.msg по вкусу.

Стоит обратить внимание, что для отсылки сообщения отправителю о вирусе используется слегка подправленный скрипт send.cmd П. Мойлана.

Для своевременного обновления баз, раз в сутки через cron запускается скрипт VDBUpdate.cmd (см. readme в архиве), который пополняет антивирусные базы на винчестере и копирует их на виртуальный диск.

Все необходимые скрипты так же можно взять с ftp://ftp.os2.snc.ru/pub/weasel/.


Test the program:

Upgrade eComStation 2.0 desktop to NeoWPS (useful extenders for desktop)

Comments:

Papa Karlo
2005-02-04 00:48:43

........ Weasel pro ............ ... . ...-.. ..... ?

Digi
2005-02-04 01:53:48

2Papa Karlo ..., .. pro

Constantin
2005-02-04 15:17:29

.., Domino-.. .. ... ......

... ... N ........ . ..... ...... - ....... ............

Digi
2005-02-04 15:51:16

2Constantin: . .........., .. ..... .... ......, ..... ....... ..... . . ...... ..... linux . sendmail'.. ....... ..... . ...... ........ . ...... Domino, . ... ......., .. .... ........ ...... ...... Domino?

Oleandr
2005-02-04 18:20:11

2Constantin . ... Domino-.. .....?... ..... ........? . . ........ . .. ........ .........? . .. ... ... IPS ........, ...., ....... .......

Eugene Gorbunoff
2005-02-05 14:52:21

* ....... . "......" -- [url]

* ....... . ......, ..... ...... -- [url]

Constantin
2005-02-07 12:56:28

2Oleandr: ...... .. (...., thnks).. .... ..: ...... ........ ......... 5.0.13, . .... ............ ......... ........ . 6..... ........ - 3-. ...., ............. ......... .......... .. № ......

2Digi: .. ........... ..... ....... ......., ............. ........ . "........" ...... .. ....., .. ........ .. ....., ... ......... SMTP

Digi
2005-02-07 14:48:46

.. ...., ...... ..... .... ..... ..... ..... .......... . ..... ....... (Domino) . .......... ........ (Weasel) -;)

Digi
2005-02-15 02:01:38

.. ........ . ........ ........ SMTP-....... ... ....... ......... InetPowerServer. ... ........ ..... . .... ..... .. ... ..... ............. ............. ... .. ........... .......:

[url]

Does ACPI.PSD work on your notebook?

Please press Fn + F1, Fn + F2, .. keys and collect the codes. Read more

 

Siberian OS/2

 


 

 

ArcaOS 5.1.1 - DOS works again

DOS virtual machine works again (it was working on Core 2 Duo, and didn't for i5). Install ArcaOS in UEFI mode to use DOS VM.

We keep the memory about eComStation

OS/2 Guru is the only web-site which talks about the deserts of eComStation (OS/2 Warp was used as base, the development started in 1999.. 2001.. till 2013).

// надо на ENG!!
Blonde Guy

Buy OS/2 application: PM Backup Suite (incremental data backup)

Warpstock Europe 2016

Interview with Dmitry Kuminov

video

 

(C) OS2.GURU 2001 -- 2025