| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
Часть третья. inn В настоящее время InterNetNews package (INN) разрабатывается консорциумом ISC, URL :
Компиляция Берем последнюю версию с ftp://ftp.isc.org/isc/inn/, например inn-2.2.1.tar.gz (на момент написания этого howto последней версией была 2.2.2, но в ней был глюк в программе batcher, что приводило к дупам у линков. Поэтому я, установив 2.2.2, взял batcher от 2.2.1), раскручиваем его в /usr/src/inn-2.2.1 : tar -xzvf inn-2.2.1.tar.gz, заходим в этот каталог. В дальнейшем я буду на него ссылаться как на $INN_SRC. Условимся, что скомпилированный пакет будем устанавливать в /usr/local/news/. В /etc/manpath.config добавляем MANDATORY_MANPATH /usr/local/news/man Запустив vipw, проверяем наличие пользователя news. Домашним каталогом ему я поставил /usr/local/news, шеллом - /bin/sh. Это пригодилось при отладке. Так как при тоссинге iftoss вызывает /usr/local/news/bin/rnews, то он (iftoss) должен иметь соответствующие права - rnews принадлежит news:uucp, поэтому надо будет прописать в /etc/group : uucp:*:66:fido В /etc/syslog.conf раскоментируйте строчки с news.*, подправьте пути : news.crit /usr/local/news/log/news.crit и сделайте : touch /usr/local/news/log/news.crit /usr/local/news/log/news.err /usr/local/news/log/news.notice назначьте владельцем этих файлов news:news Перезапустите syslogd : killall -1 syslogd Переходим в /usr/local/news/etc. Редактируем inn.conf, прочитав $INN_SRC/INSTALL и man inn.conf (весьма желательно !). В простейшем случае достаточно будет изменить шесть строчек : ваш Origin : organization: My Cool Origin Адрес вашего сервера. Этот домен должен быть прописан в DNS. Если вы не подключены к интернету, то используйте localhost.server: news.domain.my Следующие строчки нужны для того, чтобы письма, приходящие в "неизвестные" для inn'а конференции не грохались, а помещались в ньюсгруппу junk, откуда потом их будут доставать всякие autocreate'ы wanttrash: true Если не ставить флаг -c0 (0 - это цифра, не буква), то inn будет отвергать письма, возраст которых более 14 дней. Флаг -u отключает буферизацию логов (это необходимо для ifmail'а).
Редактируем expire.ctl (необязательно) : /remember/:14 Это число регулирует, сколько дней информация о каждом письме будет храниться в файле /usr/local/news/db/history (history - это аналог дупобазы в фидошных эхопроцессорах). # Значение по умолчанию для всех эх Смысл всех букв и цифр объясняется в самом начале expire.ctl. Настраивайте в зависимости от объема свободного места на вашем диске. Имейте в виду, что оно обычно кончается гораздо быстрее чем предполагалось ;)Прочитайте man expire.ctl Если вы будете читать почту ньюсридером по локальной сетке, то надо будет отредактировать nnrp.access : admin.localhost:Read Post:admin:mypassword:* Здесь прописываете доступ для машин в локальной сетке - кому r/w, кому r/o, имя/пароль для авторизации, и список доступных ньюсгруп через запятую. Прочитайте комментарии в файле. Прочитайте man nnrp.access. Позже, когда вы запустите inn, то сможете попробовать зайти с локальной машины на ньюссервер телнетом : $ telnet news.domain.my 119 Если данная машина корректно прописана в nnrp.access, то появится что-то вроде :200 news.domain.my InterNetNews NNRP server INN 2.2.1 25-Aug-1999 ready (posting ok). или 201 news.domain.my InterNetNews NNRP server INN 2.2.1 25-Aug-1999 ready (no posting). Если она в nnrp.access не прописана, то появится :502 You have no permission to talk. Goodbye. Теперь редактируем файл newsfeeds. Это наиболее часто изменяемый файл из всех конфигов inn'а, в нем расписано от кого вы получаете эхи и кому их отдаете. Сначала прочитайте комментарии в этом файле, затем можете подкорректировать секцию ME (я убрал оттуда все лишнее) : ME:*,!junk,!control*,!f99.*:: В каком-то FAQ рекомендовалось прописать "фиктивный" feed. Пропишите, хуже от этого не будет : dummy-feed:!*:: Далее описываем линков. Обратите внимание на то, что адреса нужно писать с указанием зоны (z2). В простейшем случае у вас будут только фидошные эхи и локалка : Это наш аплинк f500.n5058.z2:!*,\ Это себе, несколько эх на домашний пойнтовый адресp1.f99.n5058.z2:!*,\ А здесь другой пойнтp2.f99.n5058.z2:!*,\ А этот пойнт автоматом подписан на всё. (убран '!' перед '*') p3.f99.n5058.z2:\ А этот feed подписан на все эхи - он просматривает все сообщения, ищет адресованные мне и откладывает их в carboncopy (настройка описана в Части 4, раздел carboncopy)cc:\ Посмотрите на описания флагов (T,W,B,<,>,C,:) - с их помощью можно делать много забавных вещей. Прочитайте man newsfeeds Переходим в /usr/local/news/db и создаем базы : Создаем файл active, для начала состоящий из двух строчек : control 0000000000 0000000001 n в этом файле не должно быть пустых строк (!) Создаем файл newsgroups, содержащий описания конференций (в общем-то необязательные) control control Создаем базу history : /usr/local/news/bin/makehistory -i переименовываем полученные файлы : mv history.n.dir history.dir Устанавливаем права на файлы в /usr/local/news/db : chown news:news * Базы готовы. Произведем пробный запуск inn'а (от имени пользователя news) : При этом на экране появится нечто вроде :Starting innd. А в /usr/local/news/log появится файл news.notice (если вы его включили в /etc/syslog.conf) с содержимым типа : Nov 1 23:08:24 domain.my innd: SERVER descriptors 520 В живости innd можно убедиться, запустив ps : $ ps -ax -Unews Обычно inn запускают при загрузке системы из /usr/local/etc/innd.sh : su news -c /usr/local/news/bin/rc.news В /usr/local/news создайте файлик news.cron (отредактировав его, не забывайте запускать crontab -u news news.cron) с содержимым : 0 3 * * * /usr/local/news/bin/news.daily expireover lowmark Если у вас нет чисто usenet'овских линков, то строчку с nntpsend можно выкинуть. Если вы выключаете компьютер на ночь, проставьте в первой строчке подходящее время для запуска. Прочитайте конец файла $SRC_INN/INSTALL - там все это описано поподробнее. В идеале, все ваше взаимодействие с inn ограничится добавлением/убавлением линков и корректировкой их подписки в файле newsfeeds. Я бы не советовал делать это руками, лучше довериться areafix'у - по крайней мере, при правильной настройке вы сможете избежать грубых технических ошибок. Но несколько команд для "ручной" работы я здесь упомяну. Практически все управление осуществляется программой /usr/local/news/bin/ctlinnd (при работающем innd). Прочитайте man ctlinnd. Перед тем, как менять какой-либо конфиг (типа newsfeeds, active) необходимо приостановить innd командой "ctlinnd pause причина". В данном случае "причина" - это слово(слова), которые попадут в news.notice, и которые понадобятся для "разморозки" innd. После изменения конфигурационных файлов необходимо их перечитать командой "ctlinnd reload имя_конфига причина", например : # Ставим на паузу Теперь посмотрите лог news.notice. Там появятся строчки типа :Feb 30 17:54:22 domain.my innd: SERVER paused Sysop edit active Если вы редактируете newsfeeds, то по окончании редактирования, перед запуском ctlinnd reload сначала запустите ctlinnd checkfile - он проверит синтаксис newsfeeds.Для ручного добавления новых конференций, удаления старых используются команды : Добавление группы - ctlinnd newgroup имя_группы флаг, например : ctlinnd newgroup fido7.su.os2.apps y ctlinnd newgroup fido7.humor.filtered n Описание флагов - в man active. Вкратце : "y" - r/w, "n" - r/o. Удаление группы : ctlinnd rmgroup имя_группы Для автосоздания новых эхоконференций, падающих обычно в junk (во всяком случае при вышеописанной настройке они должны падать именно туда ;) используйте программы autocreate'ы, описанные в Части 4, раздел autocreate Более подробно об автоматизации прозвонки, тоссинга, обработки файлэх, и прочего рассказано в Части 5 - совместная работа.
[Назад][Содержание][Вперед] |
|
| ||||||||||||||||
|