Огранизация узла Фидонет под операционной системой UNIX
Материал из 5070.info.
Содержание |
ВВЕДЕНИЕ К ТРЕТЬЕЙ РЕДАКЦИИ
Данная версия является уже третьей редакцией моей статьи, в которой описывается настройка узла Фидонет под операционными системами семейства Unix. Первая редакция была просто наброском, в котором были описаны основные шаги в настройке программного обеспечения, с которым возникали проблемы.
Нынешняя редакция по большей части несет в себе больше косметические функции и исправление небольших ошибок и опечаток, которые ускользнули от моего внимание в предыдущих редакциях. Так же была поизведена некоторые изменения в оглавлении. В целом же это та же самая статья, что была предоставлена в эхоконференции fido7.ru.unix.ftn.
И в качестве послесловия: третья редакция обязана появлению себя на свет развитию нового ресурса по иркутскому фидо и в частности John Lepikhin (2:5070/156@fidonet).
Sun 08 Oct 20:55:12 2006 vadim s. sabinich
ВВЕДЕНИЕ КО ВТОРОЙ РЕДАКЦИИ
В моих планах уже был пункт написания подобной статьи, но некоторые посторонние отвлекающие факторы (подобные краху винта, перехода с Linux Debian 3.0r0 на FreeBSD 5.1 и тому подобное) не оставляли мне желания для текущей работы.
И все же я решился, благодаря одному знакомому новоноду и несчисляемому потоку подобных вопросов в fido7.ru.linux, fido7.ru.linux.chainik и fido7.ru.unix.ftn.
Конечно, я больше чем уверен в том, что данная статья послужит только определенному контингенту читателей, которым интересен не только сам процесс настройки, но и само понимание того, что они делают, как они делают и, самое главное, - почему они делают именно так, а не иначе.
Многие руководства и FAQ'и грешат тем, что они показывают как, но не обьясняют почему. Поэтому, я решил написать эту статью, учитывая все вопросы и личные предпочтения.
Хотелось бы отметить одну очень острую насущную проблему. Если у вас soft-модем или win-modem, и вам жалко нервов и времени - замените его на какой-нибудь нормальный модем. Все настройки программного обеспечения в данной статье будут относительно модема ZyXEL U-1496E+, которым я пользовался на момент написания статьи.
Название статьи обусловлено тем, что методика настройки будет подходить ко всем операционным системам, основанных на UNIX.
Существует несколько способов настройки фидошной станции. Они отличаются по сложности настройки, по идеалогии и по своим возможностям. Разграничим их условными названиями, принятыми в среде фидонет: 'native-fido' и 'unixway-fido'.
Я не являюсь сторонником unixway-fido, но и не являюсь противником. Этот способ работы станции фидонет построен на использовании InternetNewsServer'а (в качестве которого могут быть inn или leafnode), MailTransportAgent'a (sendmail, exim, qmail etc) и, собственно, программы, осуществляющей пересылку между ftn- и rfc-технологиями - гейта (ifmail, fidogate). Во вторая редакции статьи была описана только настройка native-fido, по этому я не стал расширять статью, включая в нее описание настройки и работы фидошной станции по технологии 'unixway'.
Могу посоветовать FAQ, написанный Andrey Slusar [2:467/127] по настройки FidoGate с различными MTA и News-серверами. Данный текст регулярно помещается в эхоконференцию ru.unix.ftn, так же последную версию FAQ можно получить, написав нетмейлом сообщение: To: FAQServer 2:467/126 Subject: FIDOGATE
Напоминаю - FAQ это только руководство к действиям. В документе практически ничего не обьясняется. Было бы двое полезней, если бы Андрей сделал более подробные комментарии по каждому шагу настройки
Сразу же не хочется напомнить о том, что следует более внимательно относится к уровням доступа, ибо наибольшее количество вопросов и неудач возникает именно от несоответствия установленных уровней доступа в программном обеспечении и требуемым настройками операционной системы.
И так. Для начала перечислим ингредиенты:
- mgetty
- программа предназначена для ответа на входящие звонки, определенного типа (fido, ip, voice) и запуска указанных программ.
- mailer
- фидошный мейлер, который будет запускаться посредством mgetty при входящих модемных вызовах и делать исходящие вызовы, будучи запущенным в качестве демона. bforce, qico, BinkleyTerm/XE.
- tosser
- тоссер, занимающийся обработкой эхопочтой. CrashMail, CrashEcho, hpt.
- ticker
- тоссер, занимающийся обработкой файлов, приходящих по файлэхоконференциям. htick (идет в составе hpt), QTick.
- reader
- редактор сообщений. GoldED, MsgED.
Вот, собственно, и весь минимальный комплект фидошного узла. О многих из данных программ я уже рассказывал в своей обзорной статье о фидошном софте.
Теперь остановимся подробней на некоторых тонкостях настройки программного обеспечения.
Вам следует создать пользователя, из-под которого вы будете работать с программным обеспечением для доступа к сети Фидонет. Для удобства, я этого пользователя назову fido.
Для создание нового пользователя, следует ввести команду
root@phobos ~:$ adduser fido
пользуясь привилегией root. В дальнейшем, в /home/fido/ можно будет разместить конфигурационные файлы. Но вы так же можете использовать для этих целей /etc/fido/ или /usr/local/etc/fido/ (под FreeBSD).
НАСТРОЙКА MGETTY
Настройку mgetty хотелось бы начать с небольшой вырезки из мануала по mgetty для более популярного обьяснения возможностей, предоставляемые этой программой:
Mgetty является 'интелектуальным' дополнением к getty, разработанным для использования с hayes-совместимыми модемами и факс-модемами. Mgetty известно о инициализации модема, ручном ответе модемом (так что ваш модем не отвечает, если машина не готова), UUCP-блокировке (и вы можете использовать разное оборудование для входящих и исходящих звонков). Mgetty предоставляет очень широкие возможности журналирования.
Многие из дистрибутивов Линукса уже имеют в своих репозиториях пакеты с уже скомпилированным исходным кодом mgetty. В Debian, ASP Linux и ALT Linux Master 2.2 пакеты собраны с поддержкой распознавания входящих звонков фидошными мейлерами. В остальных дистрибутивах я не уверен в наличии подобного. Поэтому рекомендую брать дистрибутивы с исходными кодами и компилировать самому с указанием в Makefile ключа -DFIDO.
В случае с FreeBSD, при установке из коллекции портов, на экран выводится предупреждение-рекомендация о том, что можно указать данный ключ из коммандной строки.
Будем считать, что mgetty установлена с использованием всех рекомендаций и распознает пакеты EMSI, посылаемые мейлерами для соединения и распознавания ftn-совместимого софта.
В Linux все конфигурационные файлы находятся в /etc/mgetty+sendfax/, а во FreeBSD - /usr/local/etc/mgetty+sendfax.
При установке из Коллекции Портов FreeBSD от ноября-декабря 2003 года активируется довольно удобный интерактивный создатель конфигурационных файлов. В Линуксе, вам придется обойтись примерами тех же самых файлов.
И так, для настройки нам потребуются файлы mgetty.config и login.config. Я не вижу смысла приводить сейчас конфигурационные файлы целиком, поэтому ограничусь только необходимым строками (в принципе, это может означать только одно - остальные строки вам не сильно понадобятся, или не понадобятся вообще).
Рассмотрим mgetty.config (я бы так же посоветовал вам сделать резервные копии дистрибутивных конфигурационных файлов с названием, допустим, mgetty.config.old и login.config.old):
# Указание порта, на котором у вас находится модем. ttyS0 и cuaa # равнозначны com1, а ttyS1 и cuaa1 - com2. Используются в Linux и FreeBSD # соответственно. port cuaa1 # Данная строка определяет уровень детализации журналирования. Может изменять # свои значения от 1 (низкий уровень детализации. Только фиксирует входящие # звонки и их тип) и до 8 (отладочный уровень детализации. Используется для # тестирования новых версии mgetty и любопытными). Для начала я посоветую # оставить или 4, или 5. debug 4 # Установка максимальной скорости модема. # (По данной строке в конфигурационном файле было затеяно небольшое # обсуждение, в ходе которого решили поставить здесь двойную величину # скорости модема. И, как поиск оптимального решения, - начать с # 2xMAX_MODEM_SPEED и двигаться в сторону MAX_PORT_SPEED, оценивая качество # связи.) speed 19200 # Установка уровня доступа к порту. (странно, что данные строки по умолчанию # закомментированы.) Сверьтесь с установками /dev/<port>. И, соответственно, # исправьте в конфигурационном файле. port-owner uucp port-group dialer port-mode 0660 # Если ваш модем не поддерживает прием\посылку факсов или вам не требуется # данная функция. data-only YES ### # В принципе, в моем mgetty.config больше нет никаких настроек. Но все же # советую указать и нижеследующие установки: ## # Следующая строка отвечает за инициализацию модема. Тут я искренне советую # почитать документацию mgetty (вполне возможно, что ваш модем там описан со # всей тщательностью) и документацию от вашего модема. Поэтому ставлю тут # строку, которая инициализирует заводские настройки модема (что крайне не # рекомендуется). init-chat ATZ # Установка количества звонков перед посылкой модему команды ATA для # поднятия трубки. По умолчанию - 1. rings 1 # И последняя строка в этом небольшом конфигурационном файле, # в которой устаналивается строка поднятия модемом трубы. Можете так же # закомментировать строку и использовать по умолчанию. Но, советую все же # поступить так же, как и с init-chat. answer-chat "" ATA CONNECT \c \r
Теперь переходим к настройке приема самих входящих соединений. В login.config вам потребуется только одна строка, а вторую строку можно оставить по желанию. Для возможности соединения удаленным доступом к консоли вашей системы.
# Строка, которая будет отвечать за входящие фидошными мейлерами, начинается # с /FIDO/. Формат подобной строки следующий: # # username userid utmp_entry login_program [arguments] # # Где: # username - может начинаться или оканчиваться на "*". # userid - является доступным в /etc/passwd пользователем, под # которым требуется запустить ту или иную программу. Можно # поставить "-" (прочерк) и сохранить за программой запуск с # привилегией root (используется только для /bin/login). # utmp_entry - будет показываться при вводе команды "who". Для /bin/login # обязательно нужно указать "-", при установке "@" будет # подразумевать ввод имени с максимальной длинной в 8 # символов. # login_program - ну и сама программа, которая будет запускаться с # агрументами, которые указываются в [arguments]. "@" # заменяется на пользовательское имя. Смею заметить, что # отсутствие данного символа крайне нежелательно, ибо будет # неизвестно, какое имя ввел пользователь. /FIDO/ fido fido /usr/local/bin/bforce @
На этом настройки программы закончены и осталось только научиться правильно загружать mgetty. Заметил, что отсутствие данного шага вполне распространенная ошибка, связанная с нежеланием читать документацию.
Теперь осталось прописать запуск mgetty в конфигурационном файле, который отвечает за настройку всех портов в системе, начиная с виртуальных консолей, серийных портов и заканчивая псевдо-терминалами. Данный файл отличается названием и синтаксисом в Linux и FreeBSD. И начну я с описания файла, относительно операционной системе, разработанной в недрах Института Беркли.
FreeBSD держит весь список доступных портов в файле /etc/ttys. Рассмотрим небольшой пример синтаксиса описания серийного порта на примере, взятом из Настольной Книги. Я помещу сюда перевод отрывка главы 17.3.2.1, описыващий настройку:
ttyd1(1) "/usr/libexec/getty std.38400"(2) wy50(3) on(4) insecure(5)
ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure
(1)
Первое поле, в основном, указывает название специального файла
терминала, как он отображается в /dev.
(2)
Второе поле является командой запуска для данной строчки, которой
обычно бывает getty(8). getty инициализирует и открывает
строку, устанавливая скорость, место для указания пользовательского
имени и только после этого запускает программу login(1).
Программа getty поддерживает один (опциональный) параметр на этой
коммандной строке, тип getty. Тип getty настраивается
характеристиками в строке терминала, такие как bps rate и parity.
Программа читает данные характеристики из файла /etc/gettytab.
Файл /etc/gettytab содержит некоторое количество строк, описывающих
как новые, так и старые терминалы. В всяком случае, все строки,
начинающиеся с std будут работать для аппаратных терминалах. Данные
строки игнорируются parity. Эти std для каждого bps rate, начиная с
110 и заканчивая 115200. Конечно, вы можете добавить свои строки в
этот файл. Подробную информацию можно найти в мануале gettytab(5).
После установки типа getty в файле /etc/ttys, проверьте правильность
коммуникационных настроек по совпадению терминала.
Например, Wyse-50 не использует parity и соединяется на 38400 bps.
286 PC не использует parity и соединяется на 19200 bps.
(3)
Третий пункт строки обозначает тип терминала, обычно используемый
для соединения на этой tty-строке. Для диалапных портов обычно
указывается тип unknown или dialup, хотя можно использовать любой из
типов терминалов и программного обеспечения. Для аппаратных
терминалов, тип терминала не изменяется, так что вы можете указать
тип настоящего терминала из termcap(5) файла базы данных этого поля.
Например, Wyse-50 использует тип настоящего терминала, до тех пор,
пока запущен 286 PC, будет устанавливать жмулирование VT-100.
(4)
Четвертое поле строки указывается, если следует открыть порт.
При указании там 'on', будет запускаться программа из второго поля
строки, getty. Если вы укажете 'off', то это просто отключит любой
доступ к порту.
(5)
И последняя часть строки отвечает за безопасность порта. Пометив
порт, как secure, вы, тем самым, разрешите доступ к этому терминалу
пользователем root (или какого другого акаунта, имеющей ID равный
0). Insecure порты запрещают доступ к ним root. На таком порту юзеры
должны входить с непривилегированных аккаунтов и только потом
использовать su(1) или похожий механизм доступа к привилегиям
суперпользователя.
Крайне рекомендуется использовать 'insecure' для всех терминалов,
то создаст впечатление закрытых дверей. Это очень просто - войти и
пользоваться su, если нужны суперпользовательские привилегии.
Остается только прописать свою строку в /etc/ttys для запуска mgetty. Эта строка выглядит следующим образом:
cuaa1 "/usr/local/sbin/mgetty" unknown on insecure
Теперь перейдем к описанию тонкостей настройки запуска mgetty под Linux. Так же как и выше, я начну с описания предназначения файла /etc/inittab, с последующим разбором синтаксиса строк и примером строки запуска программы, отвечающей за ответ на входящие телефонные звонки.
Как и в случае с /etc/ttys, я помещу перевод отрывка мануала inittab(5):
INITTAB(5) Linux System Administrator's Manual INITTAB(5)
НАЗВАНИЕ
inittab - формат файла inittab, используемый sysv-совместимым
процессом инициализации
ОПИСАНИЕ
Файл inittab описывает, какие процессы запускаются при загрузке и в
процессе выполнения соответствующих операций (напр.,
/etc/init.d/boot, /etc/init.d/rc, gettys...). Init(8) различает
многочисленные runlevel'ы, каждый из которых может иметь свой
свобственный загруженный процесс. Правильными runlevel'ами являются
0-6, плюс A, B, и C для строк ondemand. Сама строка, вводимая в
файл inittab имеет следующий формат:
id:runlevels:action:process
Строки, начинающиеся с '#' игнорируются.
id уникальная последовательность 1-4 символов, которые
идентифицируют строку в inittab (для sysvinit,
скомпилированный с библиотекой 5.2.18 или библиотекой
a.out, ограничение в 2 символа).
Note: Для getty или других процессов логина, полю id следует
быть tty-суффиксом, сообщающим tty, напр., 1 для tty1. Хотя,
доступ к аккаунту может не корректно работать.
runlevels
списки runlevel'ов, для которых следует запускать указанное
действие.
action описывают, какое действие следует выполнить
process
указывает запускаемый процесс. Если поле процесса начинается
с символа "+", init не будет вводить utmp и wtmp аккаунты
для данного процесса. Это надо для getty, которые
настаивают на своем владении utmp/wtmp. Так же, это является
исторической ошибкой.
Поле runlevels может содержать различные символы для различных
runlevel'ов. Например, 123 указывает на то, что процесс будет
загружаться в runlevel'ах 1, 2 и 3. Runlevel'ы для ondemand могут
содержать A, B и C. В sysinit, boot и bootwait любые runlevel'ы
игнорируются.
При изменении системного runlevel, любые запущенные процессы,
которые не указаны в новом runlevel, будут убиты; в начале с
SIGTERM, потом с SIGKILL.
Доступные действия для поля action:
respawn
Процесс будет загружаться сразу же после прекращения работы
(напр., getty).
wait
Процесс будет загружен однажды, когда будет введен
соответствующий runlevel, и init будет ждать для прекращения
его работы.
once Процесс загрузится один раз при вводе соответствующего
runlevel.
boot Процесс будет выполнятся при загрузке системы. Поле runlevel
игнорируется.
bootwait
Процесс будет выполняться при загрузке системы, до тех пор,
init будет ждать его отлючения (напр., /etc/rc). Runlevel'ы
игнорируются.
off Ничего не делает.
ondemand
Процесс, помеченный как ondemand, будет запускаться, когда
будет вызываться runlevel, соответствующий ondemand. К тому
же, неизмененные runlevel не будут встречаться (ondemand
runlevel'ы: 'A', 'B' и 'C').
initdefault
Данное действие указывает runlevel, который следует ввести
после загрузки системы. Если отсутствует, то init спросить
об этом runlevel в консоли. Поле process игнорируется.
sysinit
Процесс будет запущен при загрузке системы. Но запущен перед
boot или bootwait строками. Поле runlevels игнорируется.
Данного отрывка мануала должно хватить на то, чтобы дать понять как
и почему загрузка mgetty прописывается в /etc/inittab именно как:
S1:235:respawn:/usr/local/sbin/mgetty /dev/ttyS1 -D -i /etc/issue.net
Следует отметить, что ключи запуска mgetty могут так же варьироваться. Но обязательным остается только первый, указывающий порт, на котором висит загруженная программа (в данном случае это /dev/ttyS1).
После этого можно или перезагрузиться, или загрузить mgetty вручную и перезагрузить терминалы:
root@phobos ~:$ mgetty root@phobos ~:$ kill -HUP 1
(На заметку: перезагрузку можно заменить так же командой init q, которая перезагружает только inittab.)
В итоге, при запуске из коммандной строки команды ps -axww|grep mgetty увидеть что-либо наподобие следующего:
(Linux) 2398 ? S 0:00 /sbin/mgetty -x 3 ttyS1 (FreeBSD) 14631 ?? S 0:00.10 /usr/local/sbin/mgetty cuaa1
НАСТРОЙКА ФИДОШНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Основую проблему настройки я осветил, так что не вижу необходимости описывать с такой же тщательностью настройки тоссера, мейлера и редактора почты. Единственное, что не следует забывать - соответствие прав доступа.
Исторически сложилось, что фидошное программное обеспечние базируется в /var/spool/ftn/. В данной директории может находится следующая иерархия поддиректорий:
drwxr-x--- 2 fido fido 512 9 дек 00:01 announce drwxr-x--- 2 fido fido 1024 23 ноя 10:53 bforce drwxr-x--- 2 fido fido 512 9 дек 00:26 flags drwxr-x--- 4 fido fido 512 9 дек 00:25 inbound drwxrwx--- 2 fido fido 512 2 ноя 14:58 inbound.loc drwxr-x--- 2 fido fido 512 9 дек 00:25 inbound.tmp drwxr-x--- 3 fido fido 1024 21 ноя 20:04 inbound.unp drwxr-x--- 3 fido fido 5120 8 дек 12:31 msgbase drwxr-x--- 11 fido fido 512 11 ноя 13:04 netmail drwxrwx--- 2 fido fido 512 1 дек 01:57 nodelist drwxr-x--- 6 fido fido 1024 9 дек 00:28 outbound drwxr-x--- 2 fido fido 512 9 дек 00:25 outbound.tmp drwxr-x--- 2 fido fido 512 8 дек 12:02 passthrough
При компиляции и установке мейлера, тоссера и редактора, бинарные файлы переносятся в /usr/local/bin/, а конфигурационные файлы в /etc/fido/, или в /etc/ftn/, или в /usr/local/etc/. Все зависит от личных предпочтений автора программ и ваших предпочтений.
БЛАГОДАРНОСТИ
Выражаю благодарность подписчикам эхоконференции ru.unix.ftn. За их мнения, вопросы, дополнения и предложения.
ПРИЛОЖЕНИЕ A: FAQ ПО НАСТРОЙКЕ MGETTY
Цель приложения - уберечь вас от наступания на грабли, которые уже оприходовали своими лбами другие. А так же небольшой перечень вопросов и ответов, связанный с настройкой mgetty. Если у вас возник вопрос или появилась проблема, которая не описана ни здесь, ни по тексту - пишите.
Ошибка "login.config ignored, wrong permissions"
Mgetty собрана с указанием нужных флагов. Загружается и ждет входящего. При звонке, она отвечает на него и идет на соединение, но тут возникает что-то такое, и она просто сбрасывает звоняещего. Вот лог одного из соединений:
12/12 03:57:07 yS1 waiting...
12/12 03:57:32 yS1 wfr: waiting for `RING
12/12 03:57:32 yS1 send: ATA[0d]
12/12 03:57:32 yS1 waiting for `CONNECT ** found **
12/12 03:57:46 yS1 send:
12/12 03:57:46 yS1 waiting for `_ ** found **
12/12 03:57:47 yS1 login: '/etc/mgetty+sendfax/login.config' ignored,
wrong permissions. Must be owned by 'root' and have mode
'0600': Invalid argument
12/12 03:57:47 ##### data dev=ttyS1, pid=2794, caller='none',
conn='31200/ARQ/V34/LAPM/V42BIS', name=, cmd='/bin/login',
user='?**EMSI_INQC816'
(Для удобства чтения лога, некоторые строки перенесены и отформатированы)
Ответ
Да. Все условия компиляции mgetty соблюдены. Но в силу некоторых
причин, конфигурационный файл login.config не получил нужных прав доступа, о чем программа и сообщает в лог-файл. В данном случае следует самостоятельно присвоить требуемые права доступа для соблюдения уровня безопасности, присущий всем UNIX-системам. Следует ввести следующие команды:
root@phobos ~:$ chown -R root:root ($PATH)/mgetty+sendfax/ root@phobos ~:$ chmod 0600 ($PATH)/mgetty+sendfax/login.config
Для удобства я заменил полный путь до конфигурационных файлов одной переменной. Под Linux следует заменить переменную ($PATH) на путь /etc, следовательно, строка примет вид /etc/mgetty+sendfax/.
Во FreeBSD замените переменную на /usr/local/etc. И строка будет выглядеть, как /usr/local/etc/mgetty+sendfax/.
Теперь немного подробней остановимся на коммандах. Как вы знаете, все дистрибутивы Линукса имеют поддержку страниц онлайновой помощи, их еще называют "мануалы", в которых содержится полная информация об использовании того или иного программного обеспечения. Поэтому, набрав man chown или man chmod, вы получите исчерпывающую информацию о всех ключах и переменных данных команд.
Первой командой мы присваиваем всей указанной директории, с помещенными в нее файлами и поддиректориями (если есть. Еще это называется "рекурсия"), права доступа для пользователя root и группы root (во FreeBSD, естественно, такой группы нет и следует заменить ее на wheel).
Вторая команда устанавливает права доступа на указанный файл. В данном случае - права на чтение и запись _только для пользователя_ (root). Подробней о всех ключах можно узнать из мануала, как я и говорил выше.
В каких дистрибутивах mgetty собран с правильными ключами?
В каких дистрибутивах mgetty находится уже в готовом пакете и скомпилированная с нужным ключом (-DFIDO)?
Ответ
Вопрос, конечно, интересный и на него нельзя ответить целиком и сразу. Ибо многие разработчики и майнтэйнеры пакетов могут менять свои мнения и взгляды на тот или иной пакет. Поэтому советую всегда компилировать программы (не только mgetty) самостоятельно.
Известно, что в дистрибутивах Debian, ASP Linux и ALT Linux Master собирают пакет mgetty с ключом -DFIDO.
В Red Hat и Mandrake Linux следует скомпилирвать программу самостоятльно, для работы с фидо-мейлерами. В Slackware Linux и FreeBSD эта программа отсутствует в официальной поставке дистрибутива. Поэтому вам придется так же, как и в случае с Mandrake компилировать самостоятельно.
Хочется заметить одну интересную вещь: от версии к версии в дистрибутиве нередко меняются те или иные маинтейнеры пакетов. И нередко каждый из них собирает прграмму так, как хочется ему. Допустим, в ASP Linux 7.3 мгетти скомпилирована с опцией -DFIDO, а в ASP Linux 9.0 уже нет. Поэтому советую пользоваться способом, который предложил Vitaly Mayatskih (2:5002/79.28):
Наберите strings `which mgetty` | grep EMSI и если будут какие-либо признаки EMSI, значит ваша программа скомпилирована так, как нужно.
ПРИЛОЖЕНИЕ B: ССЫЛКИ НА ДИСТРИБУТИВЫ ПРОГРАММ
- fidogate4
- http://www.fidogate.org/pub/fidogate/
- fidogate5
- http://node126.narod.ru/files/
- ifmail2.15
- inn
- http://www.isc.org/products/INN/
- jamnntpd
- http://www.df.lth.se/~billing/crashmail.html
- leafnode2
- ftp://wpxx02.toxi.uni-wuerzburg.de/pub/
- util-leafnode
- http://maint.unona.ru/soft.shtml
- ftrack
- ftp://fido.aha.ru/pub/fechos/unixftn/ http://node126.narod.ru/files
- bforce
- http://bforce.chbs.ru/
- bforce-kst
- http://kst.spb.ru/bforce/
- qico
- http://lev.serebryakov.spb.ru/
- qico-si
- http://www.sf.net/projects/qico
- husky
- http://husky.sourceforge.net/
- crashmail
- http://www.df.lth.se/~billing/crashmail.html http://www.billingware.org/crashmail.html
- golded+
- http://golded-plus.sourceforge.net/
- binkd
- http://www.corbina.net/~maloff/binkd/ ftp://happy.kiev.ua/pub/fidosoft/mailer/binkd/
- osastat
- ftp://fido.aha.ru/pub/fechos/unixftn/
- exim
- http://www.exim.org/
- sendmail
- ftp://ftp.sendmail.org/pub/sendmail/
- qmail
- http://cr.yp.to/software/
- postfix
- ftp://ftp.porcupine.org/mirrors/postfix-release/official/
- tin
- http://mirrors.rcn.net/pub/news/tin/v1.6/
- pine4
- ftp://ftp.cac.washington.edu/pine/
- slrn
- http://slrn.sourceforge.net/
- mutt
- ftp://ftp.mutt.org/mutt/
- gnus
- http://www.gnus.org/
Данный документ находится на стадии редактирования и корректировки. Учитываются все вопросы, пожелания и исправления.
author: vadim s. sabinich [2:5070/264@fidonet.org] <mef@ats32.ru>
Вторая редакция: 17 Dec 16:22:06 2004
Третья редакция: 15 Oct 18:13:24 2006
