Сервисы TCP для OS/2
Данный пакет (tcp4os2.zip, 1.3M) создан на основе shareware пакета Apop3d-Adialin (автор Axel Mueller, ФРГ). К сожалению, автор пакета пропал в неизвестном направлении, прекратив поддержку пользователей и развитие пакета. Я купил его в 1997 году и с тех пор на основе него потихоньку состряпал полный комплект служб TCP для OS/2. Из Apop3d, который представляет собой POP и PPP-сервер, я взял за основу единую базу данных на пользователей, а остальное дописал сам.
Сначала появился TELNET-сервер. Он работает так же заумно, как и штатный --
т.е. использует Character Device Monitor и замену VIO подсистемы. Кроме того,
для обеспечения корректной работы с многими процессами я попользовался
Named Pipes, чтобы обеспечить правильный сбор потока данных с нескольких
параллельно работающих instanses VIO DLL. Главное отличие от штатного -- сервер
содержит встроенный командный интерпретатор, который позволяет ограничить
доступ пользователя к диску его Home Directory, а также проверять допустимость
выполнения команд с помощью специального файла TELNETD.CFG, где содержатся
описания команд и ключей и разграничение прав пользователей на выполнение команды.
Для привиллегированных пользователей есть возможность выхода в системный shell с
помощью команды SU. Кроме того, я встроил в Telnet почтового клиента, похожего на
Unix'овый, т.к. обнаружил, что многие пользователи предпочитают работать со своей
почтой именно через TELNET, если собственная персоналка далеко. Частью
телнет-сервера является talkd, который работает не только как стандартный TALK-сервер
(причём многопользовательский), но и обеспечивает обмен сообщениями между параллельно
работающими сессиями телнет, что позволяет реализовать такие Unix'овые команды,
как who и
Fingerd позволяет посмотреть данные из базы данных пользователей.
Потом в 1998 году я написал FTP-сервер, потому что имеющиеся серверы не умели
пользовать ACL и Directory Limits с 386HPFS, и мне хотелось, чтобы для FTP также
работала единая база на пользователей. FTP пользуется паролем и именем доступа
из базы данных пользователей для TCP, а правами доступа - из ACL, что, конечно,
требует одновременного существования account'а для пользователя и на LAN сервере,
что, впрочем, логично. Доступ по FTP ограничен одним диском, во-первых, по соображениям
безопасности, во-вторых, мне уж очень не хотелось придумывать всякие псевдокаталоги.
Диск для доступа берется из переменной USER_HOME. Сервер также умеет выдавать баннерные
файлы для каталогов и ограничивать доступ к определенным ресурсам по IP-адресам.
Для работы сервера необходимо запустить ftpacc.exe, которая обеспечивает
взаимодействие с LAN Server или Peer. Server или Peer должен быть активен, иначе
не работает запрос ACL, и пользователь хотя и войдёт в FTP, ничего не увидит.
Чтобы пользоваться Directory Limits, необходимо установить Local Security в
LAN Server и поставить на все диски разрешение для local -RWDEXAP;
ftpacc.exe при этом необходимо запускать из командника runpriv.cmd.
Последнее добавление - это bugfix к sendmail 8.9.3, портированного неизвестным автором.
Поскольку автор этого порта не сумел победить переименование открытых файлов, то
sendmail некорректно работает с очередью, если за один раз не удалось "пропихнуть"
письмо. Поэтому пользователь может получать какие-нибудь warning'и каждые полчаса,
что не вызовет у него восторга. Я написал небольшую программку, которая не только устраняет
данный недостаток, но и добавляет опцию "-а", как у IBM sendmail.
Кроме того, я исправил несколько глюков в Apop3d и Adialin, поскольку их всё равно пришлось
развинчивать.
Должен добавить, что Apop3d и Adialin по-прежнему имеют статус shareware: если Вы пользуетесь
этими программами, то должны будете заплатить Mueller'у назначенную им сумму в 49 DM за каждый
из пакетов (если, конечно, Mueller когда-нибудь найдётся). Мои программы
совершенно бесплатны.
Dmitry V. Serebryakov
Интересные ссылки:
Комментариев к странице: 0 | Добавить комментарий