Ключевые слова:fido, faq, (найти похожие документы)
- RU.UNIX.LINUX (2:5077/15.22) -------------------------------- RU.UNIX.LINUX -
From : Serge N. Pokhodyaev 2:5020/1838 26 Feb 00 00:25:00
Subj : FIDOGATE FAQ v1.17
-------------------------------------------------------------------------------
FAQ по FIDOGATE
~~~~~~~~~~~~~~~
$Id: FAQ_fidogate,v 1.17 2000/02/25 20:25:52 snp Exp $
FAQ ведет Serge N. Pokhodyaev (2:5020/1838, snp@ru.ru)
Если вы хотите внести какие-либо изменения или дополнения в этот FAQ, пишите
по указанным выше адресам (предпочтительнее по фидошному).
______________________________________________________________________________
В создании, изменении и дополнении этого FAQ участвовали:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(SNP): Serge N. Pokhodyaev (2:5020/1838, snp@ru.ru)
(PVC): Peter V. Chernikoff (2:5020/1354.332)
______________________________________________________________________________
Список вопросов:
~~~~~~~~~~~~~~~~
1. Что это такое?
2. Где взять?
3. Зачем нужен патч `-snp'?
4. Как работает?
5. Как настроить транзитную подписку?
6. Как сделать autocreate эх?
7. Как подружить с INN, в котором используется storage API?
8. У меня наблюдается несоответствие количества пришедших сообщений и тех
сообщений, которые реально прогейтовались.
9. В outbound'e лежит почта на меня, но она не гейтуется. В логах ничего
подозрительного нету.
10. Как сделать read-only или mandatory эхи?
11. Есть ли в FIDOGATE режим подписки passive?
12. FIDOGATE псевдографику корежит.
13. Как подружить qmail с FIDOGATE?
14. Как прикрутить FIDOGATE к exim'у?
15. Как прикрутить FIDOGATE к INN?
16. Может ли areafix/filefix работать без использования MTA (sendmail, etc.)?
17. Как сделать локального поинта (для FAQserver'а, etc.)?
______________________________________________________________________________
1. Что это такое?
~~
(SNP):
Гейт+тоссер. Основное преимущество перед ifmail -- отсутствие двойного
гейтования и связанных с этим проблем. Кроме того fidogate превосходит ifmail
по набору функций. В частности, имеются встроенные areafix/filefix, легко
настраиваются passthru эхи, более продвинутые роутинг и упаковка и др.
2. Где взять?
~~
(SNP):
Hа сайте автора (http://www.fido.de/fidogate/). Патч `-snp' (см. ниже) и
реальные конфиги (для примера) берутся на http://f1838.euro.ru/fidogate/
3. Зачем нужен патч `-snp'?
~~
(SNP):
Во-первых, патч устраняет некоторые проблемы с перекодировкой сообщений из
cp866 в koi8-r и обратно, а также некоторые баги оригинального fidogate.
Во-вторых, добавляет много разных полезных функций, в частности read-only и
mandatory эхи, режим подписки passive, автоматический выбор нужной AKA и
многое другое.
4. Как работает?
~~
(SNP):
Fidogate содержит в директории ${prefix}/lib/fidogate/bin/ 5 скриптов,
необходимых и достаточных для работы fidogate: runin, rungate, runmail,
runnews, runout
При запуске runin нетмейл и эхомейл, имеющийся в inbound'е, тоссится и
раскладывается на линков. Мы также считаемся линком, поэтому следует указать
в конфиге (файл routing), чтобы все для наших адресов укладывалось на холд.
Следует заметить, что в процессе тоссинга ни INN, ни sendmail не используются.
Hесколько слов об обработке эхомейла. Возможны три варианта. Если очередное
сообщение адресовано в эху, отсутствующую в файле areas.bbs, эха там имеется,
но в списке линков, подписанных на нее отсутствует линк, от которого пришло
это сообщение (используется адрес из заголовка .PKT), то сообщение идет в bad.
Если эха прописана как passthru, то сообщение идет только к линкам, которые
подписаны на эту эху. Если эха не passthru, то сообщение идет и к линкам,
и к нам (т.е. на одну из наших AKA).
После запуска rungate все сообщения на наши адреса, лежащие в outbound'е на
холде, гейтуются (т.е. отдаются INN'у или sensmail'у).
runmail, runnews, runout все сообщения от нас (соответственно: mail, news и
служебные сообщения fidogate) раскладывают на линков.
Запуск этих скриптов лучше всего прописать в crontab.
Более подробная информация содержится в документации на fidogate.
(PVC):
Постараюсь рассказать:
Итак, на пришедший бандл напускается скрипт runin, который вызывает сначала
rununpack (его задача определить, каким архиватором заархивирован бандл и
вызвать соответствующий архиватор), затем пускается runtoss. runtoss --
перловый скрипт, вызывающий в свою очередь ftntoss, ftnroute, ftnpack. Эти
проги смотрят в подписку и раскладывают почту, как написано в areas.bbs,
routing и пакуют ее в соответствии с packing. Почта складывается в аутбаунд,
прописываются flo'шки, hlo'шки, clo'шки. Почта для локального прочтения тоже
попадает в outbound -- свой адрес надо обозначить в routing как:
===
NetMail
send hold 2:1234/567.0
EchoMail
sendmove hold 2:1234/567.0
===
а в packing прописать:
===
NetMail
pack noarc 2:1234/567.0
^^^^^^^^^^ Вместо этого обычно пишут *
EchoMail
pack noarc 2:1234/567.0
===
Далее при запуске rungate будет вызван ftnin с соответствующим скриптом
ftninpost. ftninpost будет запускать программки, в зависимости от характера
письма. Для переконвертированного в rfc'шный формат письма будет вызван
rnews, если это эхомейл (news), sendmail, если эхо нетмейл (e-mail),
ftninrecomb -- сборщик порезаных сообщений.
(SNP):
Hебольшое добавление к словам Peter V. Chernikoff. Можно изменить (в лучшую
сторону :) схему гейтования. Для этого прописываем в файл packing (строчка
`prog gate ...' -- в одну строку):
===
progn gate "${prefix}/lib/fidogate/ftn2rfc -i
-x ${prefix}/lib/fidogate/ftninpost -l %s"
EchoMail
pack gate 2:1234/567.0
NetMail
pack gate 2:1234/567.0
===
В этом случае сообщения для нас (т.е. для наших AKA) не будут укладываться в
outbound, а сразу будут гейтоваться. В результате отпадает необходимость в
запуске rungate.
5. Как настроить транзитную подписку?
~~
(SNP):
Для этого используется опция `-s <state>' в описании эхи в файле areas.bbs
(или fareas.bbs). Рассмотрим случай, когда мы не подписаны на эху у аплинка.
В описание эхи следует добавить опцию `-s U', а в списке линков первым (и
единственным) должен быть адрес аплинка. Если кто-либо подпишется на данную
эху, его адрес добавляется в список линков. Затем следует запустить команду
${prefix}/lib/fidogate/bin/ftnafutil subscribe
которая для всех эх, имеющих более одного адреса в списке линков и имеющих
опцию `-s U' сгенерирует запросы на подписку к ареафиксам аплинков и заменит
эту опцию на `-s S'.
Автоматическая отписка происходит похожим образом: необходимо запустить
команду
${prefix}/lib/fidogate/bin/ftnafutil unsubscribe
которая для всех эх, имеющих только один адрес в списке линков и имеющих
опцию `-s S' сгенерирует запросы на отписку к ареафиксам аплинков и заменит
эту опцию на `-s U'.
Запуск ftnafutil лучше всего прописать в crontab.
6. Как сделать autocreate эх?
~~
(SNP):
В настоящий момент известны 2 программы, реализующие это:
ftp://ftp.ilim.ru/pub/Linux/FIDO/Fidogate/autocreate.tgzftp://cube.sut.ru/pub/dyer/fido/ftncrt
7. Как подружить с INN, в котором используется storage API?
~~
(PVC & SNP):
Если в INN используется storage API, нужно немного подправить send-fidogate.
Вот патч:
===8<===
- --- send-fidogate.orig Mon Jan 3 17:55:42 2000
+++ send-fidogate Thu Jan 27 15:08:43 2000
@@ -63,12 +63,12 @@
echo "${PROGNAME}: [$$] begin ${SITE}"
# old version using batcher
-# time batcher -N ${QUEUEJOBS} -b500000 \
-# -p"$RFC2FTN -b -n" \
-# ${SITE} ${BATCHFILE}
+ time batcher -N ${QUEUEJOBS} -b500000 \
+ -p"$RFC2FTN -b -n" \
+ ${SITE} ${BATCHFILE}
# new version using rfc2ftn in batch file mode
- time $RFC2FTN -f $BATCHFILE -m 500
+# time $RFC2FTN -f $BATCHFILE -m 500
echo "${PROGNAME}: [$$] end ${SITE}"
done
===8<===
Также рекомендуется man batcher :)
8. У меня наблюдается несоответствие количества пришедших сообщений и тех
~~ сообщений, которые реально прогейтовались.
(PVC):
Возможны два варианта:
a) сообщения откинуты в badmail, dupemail или по еще каким-либо
причинам.
б) при компиляции была задействована оптимизация (-O2 у меня). Печально --
большая часть сообщений просто пропадало при гейтовании. Выход -- не
включать оптимизацию.
9. В outbound'e лежит почта на меня, но она не гейтуется. В логах ничего
~~ подозрительного нету.
(PVC):
RH 6.x ? Hужно заменить в packing строку с pack noarc на pack gate. Мне
помогло. Hа RH 5.2 такого не наблюдается.
10. Как сделать read-only или mandatory эхи?
~~~
(SNP):
Hадо приложить патч `-snp' (см. пункты 2 и 3 этого FAQ), т.к. оригинальный
FIDOGATE не поддерживает ни read-only, ни mandatory. Подробное описание
можно найти в README, идущем вместе с патчем.
11. Есть ли в FIDOGATE режим подписки passive?
~~~
(SNP):
В оригинальном -- нет. Он есть в патче `-snp' (см. пункты 2 и 3 этого FAQ).
Подробное описание можно найти в README, идущем вместе с патчем.
12. FIDOGATE псевдографику корежит.
~~~
(SNP):
Проблема в том, что во многих дистрибутивах (в частности, RedHat) идет
неправильная (т.е. не соответствующая rfc1489) таблица перекодировки из koi8-r
в alt (в RedHat лежит в /usr/lib/kbd/consoletrans/koi2alt)
Правильную таблицу можно взять, например, из исходников ifmail-2.14.os-p7
(лежит в директории `misc/inouttabs/', файл `outkoi8alt.new'), либо на
ftp://oskin.macomnet.ru/pub/fido/
Есть и другой вариант -- использовать console fonts cyrillic (берется на
http://www.ice.ru/~vitus/). Вот пример использования (этот кусок удобно
вставить, например, в rc.local):
===
kbd_path="/usr/local/lib/kbd"
consolechars -f $kbd_path/consolefonts/alt_8x16.psf -m \
$kbd_path/consoletrans/koi8-r.acm
===
13. Как подружить qmail с FIDOGATE
~~~
(PVC):
Допустим, наши адреса 2:5020/1354.332 -- Main
2:5020/1309.332 -- AKA
$ ls -lga /usr/local/ftn/route/
-rw-r----- 1 ftn uucp 80 Авг 28 22:12 .qmail-f1309-default
-rw-r----- 1 ftn uucp 80 Авг 22 06:22 .qmail-f1354-default
=== .qmail-f1309-default ===
|/usr/local/ftn/bin/rfc2ftn -a 2:5020/1309.332 "$DEFAULT"@"$HOST"
===
=== .qmail-f1354-default ===
|/usr/local/ftn/bin/rfc2ftn "$DEFAULT"@"$HOST"
===
=== /var/qmail/control/virtualdomains ===
p332.f1354.n5020.z2.fidonet.org:ftn-local
p332.f1627.n5020.z2.fidonet.org:ftn-local
f1309.n5020.z2.fidonet.org:ftn-f1309
.fidonet.org:ftn-f1354
===
14. Как прикрутить FIDOGATE к exim'у?
~~~
(PVC):
а) Конфиги для поинта с двумя АКА.
Вот мои конфиги (еще не значит, что правильные).
Предположим, что мы имеем два адреса: 2:5020/1354.332 -- Main
2:5020/1309.332 -- AKA
=== /etc/exim/exim.conf ===
######################################################################
# TRANSPORTS CONFIGURATION #
######################################################################
fidogate_local:
driver = pipe
user = ftn
group = uucp
command = "/usr/local/ftn/lib/rfc2ftn -i ${pipe_addresses}"
fidogate_1309:
driver = pipe
user = ftn
group = uucp
command = "/usr/local/ftn/lib/ftnmail -i -a 2:5020/1309.332
${pipe_addresses}"
fidogate_1354:
driver = pipe
user = ftn
group = uucp
command = "/usr/local/ftn/lib/ftnmail -i ${pipe_addresses}"
######################################################################
# ROUTERS CONFIGURATION #
######################################################################
fidonet_local:
transport = fidogate_local
driver = domainlist
route_file = CF/ftntable_local
search_type = partial-lsearch*
fidonet_1309:
transport = fidogate_1309
driver = domainlist
route_file = CF/ftntable_1309
search_type = partial-lsearch*
fidonet_1354:
transport = fidogate_1354
driver = domainlist
route_file = CF/ftntable_1354
search_type = partial-lsearch*
===
Хочу напомнить, что более специальные правила должны быть записаны перед более
общими. То есть роутинг для фидо должен идти _ПЕРЕД_ транспортом/роутерами для
smtp, local и пр.
=== /etc/exim/ftntable_local ===
p332.f1354.n5020.z2.fidonet.org: p332.f1354.n5020.z2.fidonet.org
p332.f1309.n5020.z2.fidonet.org: p332.f1309.n5020.z2.fidonet.org
===
=== /etc/exim/ftntable_1309 ===
*.f1309.n5020.z2.fidonet.org: f1309.n5020.z2.fidonet.org
===
=== /etc/exim/ftntable_1354 ===
*.fidonet.org: f1354.n5020.z2.fidonet.org
===
б) Конфиги для нода с левонетами.
Конфиги не мои, но написал тоже я :-)) (опять-таки, совершенно не означает,
что правильные).
Предположим, наши адреса: 2:5020/1354 -- Main
275:5020/8 -- AKA
777:5020/32 -- AKA
963:1/87 -- AKA
=== /etc/exim/exim.conf
######################################################################
# TRANSPORTS CONFIGURATION #
######################################################################
fidogate:
driver = pipe
user = ftn
group = uucp
command = "/usr/local/ftn/lib/rfc2ftn -i ${pipe_addresses}"
######################################################################
# ROUTERS CONFIGURATION #
######################################################################
fidonet:
transport = fidogate
driver = domainlist
route_file = /etc/exim/ftntable
search_type = partial-lsearch*
===
=== /etc/exim/ftntable ===
##
## FidoNet routing table
##
*.f1354.n5020.z2.fidonet.org f1354.n5020.z2.fidonet.org
*.f1393.n5020.z2.fidonet.org f1393.n5020.z2.fidonet.org
*.f2424.n5020.z2.fidonet.org f2424.n5020.z2.fidonet.org
*.f427.n5020.z2.fidonet.org f427.n5020.z2.fidonet.org
*.f510.n50.z2.fidonet.org f510.n50.z2.fidonet.org
*.f1611.n5020.z2.fidonet.org f1611.n5020.z2.fidonet.org
*.f715.n5020.z2.fidonet.org f715.n5020.z2.fidonet.org
*.f1431.n5020.z2.fidonet.org f1431.n5020.z2.fidonet.org
*.f1072.n5020.z2.fidonet.org f1072.n5020.z2.fidonet.org
*.f226.n5020.z2.fidonet.org f226.n5020.z2.fidonet.org
*.f955.n5020.z2.fidonet.org f955.n5020.z2.fidonet.org
*.f859.n5020.z2.fidonet.org f859.n5020.z2.fidonet.org
*.f969.n5020.z2.fidonet.org f969.n5020.z2.fidonet.org
*.f1999.n5020.z2.fidonet.org f1999.n5020.z2.fidonet.org
*.f1245.n5020.z2.fidonet.org f1245.n5020.z2.fidonet.org
*.f1076.n5020.z2.fidonet.org f1706.n5020.z2.fidonet.org
*.f1.n5072.z2.fidonet.org f1.n5072.z2.fidonet.org
*.fidonet.org f236.n5020.z2.fidonet.org
##
## HackNet routing table
##
*.f8.n5020.z275.hacknet.org f8.n5020.z275.hacknet.org
*.hacknet.org f3.n5020.z275.hacknet.org
##
## BasicNet routing table
##
*.f32.n5020.z275.basicnet.org f32.n5020.z275.basicnet.org
*.f137.n5020.z275.basicnet.org f137.n5020.z275.basicnet.org
*.basicnet.org f40.n5020.z275.basicnet.org
##
## ViwaNet routing table
##
*.f87.n1.z963.viwanet.ru f87.n1.z963.viwanet.ru
*.viwanet.ru f6.n1.z963.viwanet.ru
===
15. Как прикрутить INN к FIDOGATE.
~~~
(PVC):
Легко.
Допустим, наш хост зовут alien.digger.org.ru.
=== inn.conf ===
[skip]
server: alien.digger.org.ru
pathhost: alien.digger.org.ru
moderatormailer: alien.digger.org.ru
fromhost: alien.digger.org.ru
[skip]
innflags: -c0 -u
[skip]
===
=== expire.ctl ===
/remember/:30
*:A:1:7:15
===
man expire.ctl будет ОЧЕHЬ невредно сделать.
=== nnrp.access ===
stdin:Read Post:::*
127.0.0.1:Read Post:::*
192.168.3.2:Read Post:::*
localhost:Read Post:::*
alien.digger.org.ru:Read Post:::*
===
=== newsfeeds ===
ME\
:!*\
::
overview!\
:*,\
:Tc,WO,S3000\
:/usr/local/inn/bin/overchan
fidogate\
:*,\
!junk,\
!control\
:Tf,Wfb,B4096/1024:
===
16. Может ли areafix/filefix работать без использования MTA (sendmail, etc.)?
(SNP):
Может. Вот пример:
=== routing ===
remapto 2:5020/1838.0 2:5020/1838.9000 "areafix"
remapto 2:5020/1838.0 2:5020/1838.9001 "filefix"
remapfrom 2:5020/1838.9000 2:5020/1838.0 "*"
remapfrom 2:5020/1838.9001 2:5020/1838.0 "*"
===
=== packing ===
progn areafix "/usr/local/lib/fidogate/ftnafpkt -l %s"
progn filefix "/usr/local/lib/fidogate/ftnafpkt -l -F %s"
NetMail
pack areafix 2:5020/1838.9000
pack filefix 2:5020/1838.9001
===
17. Как сделать локального поинта (для FAQserver'а, etc.)?
~~~
(SNP):
Все очень просто. Предположим, что нужно все сообщения, пришедшие на адрес
2:5020/1838.100 направлять на адрес <locpoint@localhost>, тогда:
=== /usr/local/etc/fidogate/aliases ===
locpoint 2:5020/1838.100 "*"
===
=== /usr/local/etc/fidogate/routing ===
NetMail
route hold 2:5020/1838.0 2:5020/1838.100
===
--- FIDOGATE 4.4.0-snp9 * Origin: none (2:5020/1838.0)