| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
Часть первая. ifmail Автор пакета ifmail - Eugene Crosser, crosser@average.org, 2:5020/230@fidonet. URL :
Здесь я опишу настройку двух первых ветвей ifmail'а из этого списка - v2.14.os-p7 и v2.14.os-p7-tma5.3. Вторая базируется на первой и содержит большее количество возможностей. Основным будет описание .os-p7, новые возможности .tma5.3 будут описаны по тексту. Берем последнюю версию с ftp://oskin.macomnet.ru/pub/linux/fido/, на настоящий момент - ifmail-2.14.os-p7.tar.bz2. (Или .tma версию с ftp://tma.spb.ru/pub/unix/fido/ifmail/, например ifmail-2.14.os-p7-tma5.3.tar.bz2). Для распаковки вам понадобятся архиваторы bzip2 и tar. Разворачиваем архив : bunzip2 ifmail-2.14.os-p7.tar.bz2, а затем tar -xvf ifmail-2.14.os-p7.tar. Будем считать, что вы раскрутили архив в каталог /usr/src/ifmail-2.14.os-p7. Все дальнейшие пути к файлам с исходными текстами, если не указано иное, будем считать от него. Добавьте опцию -DDONT_HAVE_GETOPT если у вас не установлена GNU getopt library (отсутствуют файлы /usr/local/include/getopt.h, /usr/local/lib/libgnugetopt.*. Если хотите, можете устанавить эту библиотеку из packages/devel)Если ваши линки поддерживают пароли на *.pkt, то можете установить опцию -DPARANOID , хотя я этого не делал.Можете добавить опцию -DFORCEINTL , при этом в письмах даже внутри одной зоны будет ставиться INTL, например : Если вы любите читать логи, то опция -DHAS_SYSLOG полезна тем, что при ее установке логгирование производится как в ifmail.log (если установлена опция -DHAS_FILLOG ), так и через syslog, что позволяет разделить вывод программ (ifcico, iftoss, ...) по разным лог-файлам (хотя зачем это нужно ?), например : Опция -DNO_RECEIVED влияет на наличие в письме поля "Received:", например, если не устанавливать ее : (нетмейл) Рекомендую ее не убирать.Опция -DNO_FROM влияет на наличие в теле письма поля "From:", например, если не устанавливать ее : (нетмейл)Рекомендую ее не убирать. При установленной опции -DT_LINE , в tearline будет название вашей почтовой программы (TheBat, PMMail, Eudora, etc.) - для нетмейла, и название вашей читалки новостей (Forte Agent, NewsXPress, XNews, etc.) - для эхомейла. Названия программ берутся из "X-mailer" и "X-Newsreader" заголовков интернетовского письма, например : (нетмейл)Если эта опция не установлена, то на месте tearline в эхомейле будет полное название ifmail'а, а в нетмейловом сообщении tearlin'a не будут вовсе, например : (нетмейл)Если опция -DDENY_BAD_HEADERS не установлена, то куча заголовков из вашего интернетовского письма попадет в его фидошный образ, например : (нетмейл)Естественно, ее лучше установить, но предварительно почитайте о правомочности обрезания таких заголовков в транзитных письмах в misc/FAQ ("Q: How do I get rid of the RFC headers converted to that silly kludges in the FidoNet messages?"). Так что решайте сами - резать или нет. Замечание : Если вы устанавливаете пакет .tma5.3, то вам дополнительно доступны, в частности, следующие опции : -DFBOX - поддержка файлбоксов. Подробнее о них рассказано в разделе настройка.-DHIDDENS - поддержка hidden и override;-DAMIGADOS_4D_OUTBOUND - иной формат outbound'а. Перед использованием убедитесь, поддерживают ли его другие ваши программы (binkd, filefix, etc.);-DHAS_FILE_ATTACH (и прочие *ATTACH* ) - поддержка транзитных файлаттачей. Я это не использовал;Без опции -DSHELL = \"/bin/sh\" у меня пакет не смог откомпилироваться (выдавалась ошибка в execsh.c);ACL в iftoss (описано в файле README.access-list). Я не пробовал. Таким образом, в конце концов секция OPTS= у меня стала выглядеть примерно так (знаком "+" выделены добавившиеся опции, знаком "-" удаленные) : При прописывании этих опций не забывайте добавлять "\" в конце каждой строчки.Закончив настройку OPTS = , идем дальше :каталог для бинарных файлов - ifcico, ifmail, iftoss, др. BINDIR = /usr/local/fidonet/bin владелец и группа для фидософта. Я использую fido:fido. OWNER = fido Закомментируем SHARED=1 и включим SHARED=0 (при SHARED=1 у меня не получилось скомпилировать ifmail)Закомментируем LIBS в секции Linux , раскоментируем LIBS в секции 386BSD,FreeBSD и добавим путь -L/usr/local/lib - если библиотека gdbm лежит там (/usr/local/lib/libgdbm.*), иначе - поправьте. Соответственно нужно подправить путь к gdbm.h : INCLUDES = -I${INCDIR} -I/usr/local/include Закомментируем NEEDED = в секции Linux и раскоментируем в секции SunOS,386BSD,FreeBSD .Вот, собственно, с CONFIG закончили. Запускаем make. Если компиляция началась - хорошо. Если же выдалось что-то типа : то значить вам нужен GNU make. Если он у вас не установлен, то в общем-то можно в Makefile'ах из каталогов ifcico, ifgate, iflib ручками вычистить конструкции типа ifeq (1,${SHARED}) / else / endif , оставив части между else и endif (если мы компилируем без shared libs). Если хотите установить gmake (он может пригодиться при компиляции некоторых других прогамм), то можно установить его из packages, секция devel.Итак, запускаем gmake (или просто make если он GNU-сный). Все должно скомпилироваться. Теперь создаем группу fido в файле /etc/group, например : fido:*:120: Затем создаем пользователя fido (если посредством vipw, то просто прописываем строчку : fido:*:120:120::0:0:fidonet:/usr/local/fidonet:/bin/sh , заменив UID на незанятый, а GID на тот, что прописали для группы fido).У меня этот пользователь "реальный" - на него идет фидошный нетмейл, отчеты анализаторов статистики, копии отлупов роботов, и т.д. Создаем директорию /usr/local/fidonet, меняем ее владельца на fido:fido, устанавливаем права (у меня 0755). Переходим в /usr/local/fidonet и создаем каталоги, запустив следующий скрипт : su fido -c ./mkdirs.sh Этот скрипт, конечно, создает несколько "лишних" на первый взгляд каталогов, но на них я буду ссылаться в дальнейших описаниях.Возвращаемся в каталог с исходниками ifmail, запускаем make install. Бинарники должны скопироваться в /usr/local/fidonet/bin. Осталось установить man-страницы, конфиги и утилиты. Man-страницы находятся в каталогах : ifcico (ifcico.8, ifindex.8, ifinfo.8, ifreq.8, ifroute.8, ifstat.8, nlpatch.8), ifgate (ifmail.8, iftoss.8), и в iflib (parsedata.3). Раскладываем их в /usr/local/fidonet/man/man8 и /usr/local/fidonet/man/man3 соответственно, делаем над ними chown bin:bin и chmod 0444. (Для удобства можете сделать хардлинк ln ifmail.8 ifnews.8). Конфиги и утилиты лежат в каталоге misc. Копируем оттуда файлы Areas и config в /usr/local/fidonet/etc/. Из misc/inouttabs копируем outaltkoi8 и outkoi8alt в /usr/local/fidonet/etc/. С исходниками все. В /etc/manpath.config добавляем MANDATORY_MANPATH /usr/local/fidonet/man Будем считать что у вас две модемные линии : первая - CM, вторая - ночная. Посмотрим, кто владеет портами, на которых находятся ваши модемы : Это uucp:dialer. Таким образом, для того, чтобы ifcico могла звонить, ее владелец (fido) должен входить в группу dialer. Редактируем /etc/group : dialer:*:68:fido Так как при тоссинге iftoss вызывает /usr/local/news/bin/rnews из пакета INN, то он (iftoss) должен иметь соответствующие права. Так как rnews принадлежит news:uucp, поэтому простейшим решением будет прописать в /etc/group : uucp:*:66:fido Проверьте существование каталога (или корректного симлинка) /tmp - если его нет, почта тосситься не будет. Переходим в /usr/local/fidonet/etc. Там у нас пока четыре фйла : config, Areas, outaltkoi8 и outkoi8alt. Последние два - это перекодировочные таблицы : фидошные письма приходят в 866 кодировке, а inn'у скармливаются (и кладутся в news-базу) в koi8-r. Исходящие письма, наоборот, перекодируются из koi8-r в 866. Начинаем редактировать /usr/local/fidonet/etc/config : Параметры logfile и debugfile можно закоментарить, тогда будут использоваться значения, заданные в файле CONFIG при копиляции программы.В address прописываете ваш адрес и aka.Вместо прописывания паролей, можно написать : include /usr/local/fidonet/etc/ifmail.passwd ,создать файл ifmail.passwd, в котором и прописать пароли - так удобнее и безопаснее. Можете создать и настроить aliases, как описано в комментариях (хотя у меня он пустой). sysalias /usr/local/fidonet/etc/aliases ,В myfqdn - ваше fqdn ;) ,в данном примере я буду использовать domain.my. Прописываем каталоги : inbound /usr/local/fidonet/inbound.unp Так как по сути, listed практически не отличается в плане безопасности от unlisted, то и от тех и от других приходящие файлы будем класть в inbound.unp. Прописываете outbound для зоны (обычно - Zone 2), которой принадлежин ваш основной адрес : outbound /usr/local/fidonet/outbound Если вы скомпилировали ifmail с опцией -DEXT_FREQ и собираетесь разрешить у себя freq's, то прописываете путь к freq-процессору :ext_rp /usr/local/fidonet/bin/freq/ifextrp (freq-процессоры описаны в Части 4, глава утилиты) Каталог magic можно оставить тем же. magic /usr/local/fidonet/magic В секции nodelist прописываете имена и пути к ноделисту и пойнтлистам :
при этом не забудьте положить туда эти файлы ;). Самую свежую версию нодлиста можно взять на официальном сайте - ftp://ftp.sstar.com/fidonet/zone2/ domtrans у меня прописан как domtrans .fidonet .fidonet.org Идем далее : эти два файла (ifdbm и seq) должны находится в каталоге, доступном пользователю fido на запись. database /usr/local/fidonet/ifdbm, areas /usr/local/fidonet/etc/Areas. - на ваше усмотрение, я их вообще убрал.Таблицы перекодировки. См. мои замечания в Части 4, hints outtab /usr/local/fidonet/etc/outkoi8alt Касательно этих опций - см. мои комментари к опциям компиляции -DNO_RECEIVED и -DNO_FROM received no Исправляем пути для вызываемых программ : sendmail обычно в /usr/sbin sendmail /usr/sbin/sendmail -f $F $T rnews в /usr/local/news/bin (когда мы проинсталлируем туда inn ;) rnews /usr/local/news/bin/rnews iftoss /usr/local/fidonet/bin/iftoss архиваторы - там, где они у вас лежат. Если ставить их из packages, секция archivers, то - /usr/local/bin unzip /usr/local/bin/unzip -ojq $F для zip я добавил опции "-9q" - чтобы оно сжимало получше ;) и поменьше писало в лог.packer /usr/local/bin/zip -9q $F $P Настройки размеров для пакетов подправьте в зависимости от стабильности связи, количества линков, и т.д. У себя я увеличил maxmsize , а то 12.3k - маловато. Стоявшая у меня перед этим фастэха/2 поддерживала размер письма по-моему до 512k ;)Две строчки : #newslog /usr/lib/news/log имеют значение только если у вас в качестве news-сервера не inn а cnews. ModemPort cuaa0:L115200 порты модемов и скорость, на которую они залочены (COM1 - cuaa0, COM2 - cuaa1, etc.). Вообще, постарайтесь, чтобы во всех ваших коммуникационных программах (ifcico, ppp, mgetty, cu, etc.) каждый порт лочился бы на одну и ту же скорость. Настройте трансляцию телефонных кодов для вашей местности : PhoneTrans 7-3532- / Из строчек ModemDial у вас (в простейшем случае) будет ModemDial ATDPW \T\r в options выставляем желаемые опции (все они описаны в комментариях)# Вы же прочитали Readme.janus из -tma.5.3, да ? в секции EMSI data прописываем информацию о станции, избегая '}' и ']'. Для .tma5.3 доступно еще несколько опций : outbox 2:5058/500 /usr/local/fidonet/fileboxes/500-box С config все. Теперь надо отредактировать Areas. Там коментарии все понятны, единственное что надо иметь в виду - это названия эх со спецсимволами - &, $, др. - inn не сможет корректно их воспринять. Для таких эх желательно построить преобразование вида $CRACK$.TALKS fido7.cracks.talks fido7 , т.е. без спецсимволов.У меня файл Areas выглядит так : О том, ставить или нет префикс fido7 во втором столбце - решайте сами. В простейшем случае, если у вас только фидошные линки, то под каким именем INN хранит эху в ньюс-базе - это ваше личное дело. Все равно при упаковке на линка ifmail ей вернет "фидошное" название. Если же у вас есть источник usenet-ньюсов (например ваш провайдер предоставляем вам доступ), то проще, конечно, придерживаться единообразия.Что касается третьего столбца (distribution), то почитайте документацию inn'а (например man distrib.pats) и смотрите сами. В большинстве простейших случаев distributions можно не использовать. Таким образом у вас в каталоге nodelist должны быть ноделист и пойнтлисты, в etc следующие файлы : aliases, Areas, config, ifmail.passwd, outaltkoi8, outkoi8alt. Теперь проверьте, чтобы владельцем всех этих файлов конфигурации (и ноделиста с пойнтлистами) были fido:fido. В исходниках ifmail'а, в каталоге misc/inn лежит скрипт send-ifmail. Он используется для подготовки исходящей почты к упаковке. Я встречал два варианта этого скрипта - одн из поставки ifmail.os-p7, другой из ifmail.os-p7-tma5.3. Они немного отличаются, но оба v1.11 ;). Я опишу необходимые изменения для скрипта из ifmail.os-p7-tma5.3. Если у вас просто ifmail.os-p7, то подкорректируйте по аналогии. Надо изменить несколько строчек : путь к innshellvars : ## =()<. @<_PATH_SHELLVARS>@>()= Т.к. send-ifmail будем запускать от пользователя fido, то логичным было бы чтобы лог писался в /usr/local/fidonet/log :LOG=/usr/local/fidonet/log/${PROGNAME}.log Путь к конфигу ifmail'а : CONF=/usr/local/fidonet/etc/config В секции "## Get the compression flags." можете подкорректировать тип создаваемых пакетов (прочитайте описание опции -g в man ifmail), например : Подкорректируйте путь к ifnews. Если у вас большой исходящий траффик, то можете добавить ключик -b0 в строку с вызовом batcher'а (man batcher) :time batcher \ Скопируйте send-ifmail в /usr/local/fidonet/bin, смените владельца на fido:fido. Перед первым звонком необходимо откомпилировать ноделист, запустив ifindex (su fido -c /usr/local/fidonet/bin/ifindex). У вас в каталоге nodelist появятся файлики index.dir, index.pag, а в катологе log - ifmail.debug и ifmail.log. В процессе настройки, при пробных тоссингах/постингах и т.д. предварительно сохраняйте пакеты с почтой, во избежание их потери при ошибках в настройке. Если вы растоссили пришедшую почту, но в в базе INN'а ничего не появилось, проверьте, запущен ли у вас inn; посмотрите в /usr/local/news/log логи news и news.notice; проверьте каталоги : a) /usr/local/news/spool/articles/junk - если пришедшая почта там, то запустите autocreate b) /usr/local/news/spool/incoming/ - запустите rnews -U. Прозвонка : "/usr/local/fidonet/bin/ifcico -r1". При этом ifcico просмотрит outbound, определит на кого можно звонить (это зависит от вида .?lo'шки, времени работы и прочих настроек) и попробует обзвонить эти узлы. Если вы при запуске ifcico укажете в командной строке адрес, например : "/usr/local/fidonet/bin/ifcico -r1 f500.n5058.z2", то по нему будет совершен принудительный звонок. Прочие параметры ifcico читайте в man ifcico. Для того, чтобы ifcico могла отвечать на входящие звонки, вам необходимо поставить mgetty, настройка которой описана в Части 4, глава mgetty. Тоссинг (если у вас уже инсталлирован inn) : su fido -c "/usr/local/fidonet/bin/ifunpack" Упаковка на линков (если у вас уже инсталлирован inn) : su fido -c "/usr/local/fidonet/bin/send-ifmail ; /usr/local/fidonet/bin/ifpack" Я сознательно в этом описании указываю "su fido -c ...", "su news -c ..." для того, чтобы никто не забывал запускать программы с правами конкретных пользователей (а не от root'а, например) - это позволит избежать многих ошибок. Более подробно об автоматизации прозвонки, тоссинга, обработки файлэх, freq и прочего рассказано в Части 5 - совместная работа. [Содержание][Вперед] |
|
| ||||||||||||||||
|