Установка FIDOGATE ver 0.0.2 Создатель Andrey Slusar (2:467/126 и santinel@ua.fm) Если вы хотите внести изменения или дополнения в данный документ желательно пишите по фидошному адресу. Внимание! Для дополнени данного документа ищется информация по установке и настройке других MTA: qmail, smail etc и news-серверов - dnews, leafnode etc. =============================================================================== Будет описана установка текущей версии FIDOGATE под Linux с MTA Postfix 1.1.11, ньюссервером inn 2.3.2, которые входят в стандартный дистибутив Debian GNU linux3.0(woody). Все пути к файлам установки соответствуют дистрибутиву Debian GNU Linux3.0 (woody), и для других дистрибутивов Linux могут быть некоторые несущественные отличия. Для Postfix версии 2.0 настройка аналогична 1.1.11 - основные конфиги у Postfix не менялись. Для профи в unix-подобных системах данная инструкция не требуется - достаточно почитать README в поставке fidogate и man'ы к своему MTA и news-серверу. ------------------------------------------------------------------------------- 1.Правим свой хост и домен для нормального хождения почты и ньюсов. Hапример пишем в /etc/hosts: Для "santinel" в домене "ua": === hosts === 127.0.0.1 santinel.ua localhost 192.168.0.1 santinel.ua santinel === В hostname: === hostname === santinel === ------------------------------------------------------------------------------- 2.Устанавливаем Postfix и procmail так, чтобы ходила локальна почта: Вот пример работающего main.cf Postfix'а c procmail'ом: === main.cf === command_directory = /usr/sbin daemon_directory = /usr/lib/postfix program_directory = /usr/lib/postfix smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) setgid_group = postdrop biff = no # appending .domain is the MUA's job. append_dot_mydomain = yes myhostname = santinel.ua mydomain = ua alias_maps = hash:/etc/aliases transport_maps = hash:/etc/postfix/transport alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = santinel.ua mynetworks = 127.0.0.0/8 192.168.0.1/8 mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 === В большинстве случаев достаточно просто вписать путь к transport_maps Редактируем файл /etc/aliases: Желательно прописать юзера, который будет получать письма для root'а: root: Даем команду(от root) newaliases. Желательно почитать man sendmail. ------------------------------------------------------------------------------- 3.Устанавливаем inn: Допустим хост называется santinel.ua: === inn.conf === innflags: -c0 -u [skip] server: santinel.ua pathhost: santinel.ua moderatormailer: santinel.ua fromhost: santinel.ua domain: ua nnrpdposthost: santinel.ua nnrpdposrport: 119 moderatormailer: %s@santinel.ua === Все остальное можно оставить по умолчанию или почитать man inn.conf и в соответствии с ним отредактировать. Редактируем expire.ctl: === expire.ctl === /remember/:20 *:A:1:7:15 === Формат: /remember/:время Срок хранения в днях(можно с дробной частью 1.5 - полтора дня), по истечении которого из системы удаляются идентификаторы статей. Вторая строка определет, когда из системы нужно удалять тела статей: pattern:modflag:keep:default:purge * pattern - образец для групп новостей в wildmat-формате, для которого применяется остаток данной строки; * modflag - флаг, используемый для дальнейшего ограничения списка новостей, для которых использовать данную строку. Описание полей: o М - то применть остаток данной строки только для групп с ведущим (moderated groups) из тех, которые соответствуют образцу pattern первого поля; o U - то применть остаток данной строки только для групп без ведущего (unmoderated groups) из тех, которые соответствуют образцу pattern первого поля; o A - то применть остаток данной строки для всех групп новостей, соответствущих образцу pattern первого поля. Обычно достаточно "A" в modflag'е. Следующие 3 поля определют какое количество дней хранить тела статей на локальном сервере новостей: * keep - определяет минимальное число дней хранения тел статей в системе для определемых групп новостей. Любая статья из этих групп не может хранится меньше указанного этим полем срока (если Expires-заголовок статьи имеет меньший срок, то будет использовано значение keep). * default - определет число дней хранения для тех статей из определенных групп, у которых отсутствует заголовок Expires. * purge - определет максимальное число дней хранения тел статей на локальном сервере для определяемых групп новостей. Любая статья из этих групп не может храниться больше указанного этим полем срока (если Expires- заголовок статьи имеет больший срок, то будет использовано значение purge). Желательно почитать man expire.ctl Редактируем readers.conf: readers.conf определет доступ пользователей к серверу новостей: === readers.conf === [skip] auth santinel.ua { hosts: "santinel.ua, 127.0.0.1, stdin" default: } access full { newsgroups: * } === man readers.conf было бы неплохо почитать. Этим самым дается полный доступ по своему локальному хосту ко всем группам новостей. Редактируем incoming.conf: В этом файле прописываются хосты, с которых берутся группы новостей для сервера: === incoming.conf === peer ME { hostname: "santinel.ua, localhost, 127.0.0.1" } === ------------------------------------------------------------------------------- 4. Устанавливаем FIDOGATE: 4.1.Берем исходники последнего FIDOGATE5 или с cvs(все в одну строчку): === cvs -z3 -d:pserver:anonymous@cvs.fidogate.sourceforge.net:/cvsroot/fidogate co -r dp fidogate === Или в фэхе UNIXFTN, архивы которой можно найти на FTP: === ftp://fido.aha.ru/pub/fileecho/unixftn === Распаковываем исходники в папку fidogate, заходим в нее, смотрим ./configure --help, делаем ./configure с нужными опцими, Например с такими: ---------------- ./configure --prefix=/usr/local/fidogate \ --with-newsbindir=/usr/lib/news/bin \ --with-owner=news --with-group=news \ --with-logdir=/var/log/fidogate \ --with-vardir=/var/lib/fidogate \ --with-spooldir=/var/spool/fido/gate \ --with-btbasedir=/var/spool/fido/bt \ --enable-amiga-out \ --disable-desc-dir ----------------- Редактируем, если нужно, config.h, config.make. Описание токенов в конфигах можно прочитать в README или README.en поставки FIDOGATE. Делаем "make", "make install-dirs", "make install". Hе делайте make install-config - лучше все изменени руками внести в конфиги. 4.2.Можно просто взть у меня на сайте файл fidogate-5.0.0-beta7.src.rpm и перекомпилировать: Копируем этот файл в /usr/src/rpm/SRPMS, делаем: cd /usr/src/rpm, rpm -i SRPMS/fidogate-5.0.0-beta7.src.rpm, Редактируем файл /usr/src/rpm/SPECS/fidogate.spec: rpm -ba SPECS/fidogate.spec Устанавливаем fidogate: rpm -i RPMS/i386/fidogate-5.0.0-beta7.rpm; или воспользоватьс готовым бинарным пакетом fidogate-5.0.0-beta7.rpm: rpm -i fidogate-5.0.0-beta7.rpm. Для Debian: dpkg -i fidogate-5.0.0-beta7_1.deb ------------------------------------------------------------------------------- 5.Редактируем newsfeeds inn'a: Стираем все, что там незакомментировано и пишем: === newsfeeds === ME\ :*,\ !junk,\ !control\ :: fidogate\ :*,!cc,\ !junk,\ !control\ :Tf,Wnb:fidogate === Редактируем transport Postfix'a: Добавлем туда содержимое /doc/mailer/postfix/transport. От root даем команду "postmap /etc/postfix/transport" для создания transport.db Желательно почитать man 5 transport. Добавлем содержимое /doc/mailer/postfix/master.cf Вот пример правильного master.cf(фидошная часть): === master.cf === [skip] ftn unix - n n - - pipe flags=F user=news argv=/usr/local/fidogate/libexec/ftnmail -- $recipient ftni unix - n n - - pipe flags=F user=news argv=/usr/local/fidogate/libexec/rfc2ftn -i -- $recipient ftna unix - n n - - pipe flags=F user=news argv=/usr/local/fidogate/libexec/rfc2ftn -a $nexthop -i \ -- $recipient ftno unix - n n - - pipe flags=F user=news argv=/usr/local/fidogate/libexec/ftnmail -a $nexthop -O \ outpkt/$nexthop -i -- $recipient === Редактируем fidogate.conf, acl, aliases, areas, fidokill, ftnacl, hosts, packing, passwd, routing, spyes, uplinks которые подробно описаны в README и примерах конфигов. От юзера news даем команду crontab -e и прописываем там запуск скрипта send-fidogate допустим каждые 15мин., прописываем запуск news.daily, flush cache на каждый день, rnews -U, send-nntp для чтения ньюсов по nntp: === news === */4 * * * * /usr/local/fidogate/bin/send-fidogate 30 21 * * * news.daily expireover lowmark delayrm 40 21 * * * ctlinnd -t 300 -s reload incoming.conf "flush cache" 10 * * * * test -x /usr/bin/rnews && rnews -U */15 * * * * send-nntp santinel.ua === Перезапускаем innd. Примечание: Создать корректный history inn'a можно так: От root ввести: === su news makehistory -b -f history -O -l 30000 -I makedbz -f history -i -o -s 30000 exit /etc/init.d/inn2 start === Все. ------------------------------------------------------------------------------- 6.Работа fidogate: Hа входящих для тоссинга прописать в мейлере или по крону запуск runinc. Hа исходящих для запаковки почты запускать runinc -o -------------------------------------------------------------------------------