The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Создание сервера новостей (Inn+Newsx), настройка фидинга (inn freebsd usenet news howto)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: inn, freebsd, usenet, news, howto,  (найти похожие документы)
From: alexch <alexch at alexch.com.ua> Newsgroups: email Date: Mon, 30 Apr 2004 14:31:37 +0000 (UTC) Subject: Создание сервера новостей (Inn+Newsx), настройка фидинга Прелюдия: В связи с тем, что людей читающих конференции в компании становится все больше и больше, возникла потребность в построении сервера новостей с поддержкой локальных групп, которые будут содержать робочие документы офисного значения, а также желании многих пользователей читать общедоступные группы конференций. Посему в качестве сервера был выбрал Inn. Leafnode не имеет смысла ставить пока не вышла его вторая версия, которая кроме фидинга новостей с сервера провайдера, будет поддерживать и локальные группы. Ну значит так тому и быть. Используем: FreeBSD 4.8 Inn 2.4.0 Newsx 1.6 Инсталяция Inn -------------- Инсталим стандартно, из портов cd /usr/ports/news/inn make make install make clean Конфигурирование ---------------- inn.conf -------- Далее идем в директорию /usr/local/news/etc и находим основной файл конфигурации inn.conf, используем дифолтные настройки, но кое-где вставляем свои. organization: "My organization" ovmethod: tradindexed server: myserver.mydomain.com artcutoff: 365 (статьи, возраст которых больше 365 дней будут удалены сервером) bindaddress: all (биндимся на внешний и внутренный интерфейс) sourceaddress: any (читаем man inn.conf) fromhost: myserver.mydomain.com moderatormailer: admin@myserver.mydomain.com (на всякий случай, если захочется сделать кое-какие группы модерируемыми) status: 600 (запись текущего состояния inn'а в файл inn_status.html каждые 600 секунд) timer: 600 (запись текущей производительности inn'а в лог news.notice каждые 600 секунд. По этим записям innreport может строить занятную статистику) в секции Path я задал директорию /usr/local/news как корневую для директорий run, spool etc, tmp и тд, просто мне так больше нравится, пускай всё будет в одном месте. Записываем, выходим. storage.conf ------------ Далее нас интересует файл storage.conf. Там мы задаём метод хранения статей method timehash { newsgroups: * class: 0 } expire.ctl ---------- Еще один интересный файл expire.ctl. Если мы не хотим чтобы наш сервер забился старыми и ненужными статьями, следовательно нам нужно выставить время жизни статей, это делается здесь /remember/:365 infoagency.*:A:1:90:never (статьи локальных групп мы храним 90 дней, поскольку далее их актуальность для работы компании утрачивается) comp.*:A:365:365:365 elvisti.*:A:365:365:365 fido7.*:A:365:365:365 mailing.*:A:365:365:365 microsoft.*:A:365:365:365 news.*:A:365:365:365 ukr.finance:A:365:365:365 ukr.law:A:365:365:365 ukr.nodes:A:30:30:30 (статьи ньюсовых групп, которые мы стягиваем у провайдера будем хранить год) readers.conf ------------ Следующий файл readers.conf. Здесь мы выставим права на чтение/постинг auth "localhost" { hosts: "localhost, 127.0.0.1, stdin" default: "<localhost>" } access "localhost" { users: "<localhost>" newsgroups: "*" access: RPA } auth office { auth: "ckpasswd -f /usr/local/news/etc/userpasswd" (здесь мы хотим, чтобы пользователи проходили авторизацию, файл userpasswd создаётся при помощи программы htpasswd /из пакета apache/ htpasswd -c userpasswd -u для первого пользователя, и htpasswd userspasswd -u для всех последующих) hosts: "192.168.1.0/24,192.168.3.0/24 (разрешаем только нашим сетям, и никаким другим) default: "<LOCAL-USERS>" } Пример более навороченного конфига auth default { auth: "ckpasswd -f /usr/local/news/etc/userpasswd" hosts: "192.168.1.0/24,192.168.3.0/24,127.0.0.1" default: <public> default-domain: mydomain.com } access "infoagency" { read: "gc.infoagency.*,ukr.*" post: "ukr.*,gc.infoagency.*" } (разрешаем читать/постить локальные группы новостей и группы ukr.* только тем, кто пройдет авторизацию) access public { users: "<public>@*" newsgroups: "*,!infoagency.*,!fido7.ru.unix.*,!fido7.ru.windows.*,!control*,!junk" } (пользователи для которых в клиенте не будет настроена авторизация, будут доступны все остальные группы кроме тех, что мы укажем после знака "!") access "admin" { users: "alexch@*,sha@*" newsgroups: * } (владельцы компьютеров alexch и sha могут читать/постить во все группы) syslog.conf ----------- Далее нам нужно чтобы система писала логи, для чего открываем файл syslog.conf. Находим строчки которые касаются ньюсов, раскоментариваем их, подправляем пути к лог-файлам, записываем, выходим. Идем в /usr/local/news/log, создаем нужные лог-файлы, не забываем о том, что владельцем файлов должен быть юзер news touch news news.err news.crit news.notice chown news:news * killall -1 syslogd Подготовка к запуску -------------------- Для полной уверенности можно сделать /usr/local/news/bin/inncheck смотрим, и поправляем если что-то не так. Еще раз запускаем, и если все ОК, тогда запускам наш ньюс-сервер. Запуск Inn ---------- /usr/local/etc/rc.d/innd.sh start убедимся, что он висит на 119 порту, делаем sockstat -4 | grep inn должна быть строчка вида: news innd 843 4 tcp4 *:119 *:* если этого не наблюдается-смотреть ньюсовые логи, там обязательно чтото будет на тему не старта Создание/удаление групп ----------------------- Это естественно, что проводить операции с группами можно только при работающим Inn :-). /usr/loca/news/bin/ctlinnd newgroup infoagency.1 /usr/loca/news/bin/ctlinnd newgroup infoagency.2 (создаем локальные группы) /usr/loca/news/bin/ctlinnd newgroup fido7.ru.unix.bsd (и группы в которые будут сваливаться ньюсы, которые мы будет тянуть у провайдера) удалить группу можно командой ctlinnd rmgroup man ctlinnd узнаете много интересных возможностей /usr/local/news/bin/ctlinnd rmgroup infoagency.1 вообщето, чтоб каждый раз не набирать /usr/loca/news/bin внесём эту строку в path конф-файла нашего шелла. Для еще одной проверки можно сделать телнет на 119 порт telnet news.mydomain.com 119 Trying 192.168.1.2... Connected to myserver.mydomain.com. Escape character is '^]'. 200 news.mydomain.com InterNetNews NNRP server INN 2.4.0 ready list active infoagency.1 0000000000 0000000001 y infoagency.2 0000000000 0000000001 y fido7.ru.unix.bsd 0000000000 0000000001 y группы видны, теперь осталось настроить клиента, который будет читать/постить согласно прав которые мы дали в readers.conf Feeding ньюсов -------------- Инсталяция newsx стягивать ньюсы с сервера провайдера будем этой программой. Как обычно из портов cd /usr/ports/news/newsx make make install make clean newfeeds.conf ------------- открываем файл, ищем секцию которая начинается на ME и пишем туда ньюсовые группы, которые мы хотим стягивать ME::: news.svitonline.com/newsx\ :comp.databases.postgresql.admin,\ comp.databases.postgresql.general,\ comp.databases.postgresql.hackers,\ comp.databases.postgresql.novice,\ comp.databases.postgresql.sql,\ elvisti.info.astrology,\ fido7.crack,\ fido7.crack.talks,\ fido7.ru.1csoft,\ fido7.ru.baby, \ fido7.ru.cats,\ fido7.ru.f1csoft*,\ fido7.ru.internet,\ fido7.ru.internet.security,\ !junk*,!control*\ :Tf,Wnm: естественно, что эти группы уже должны быть созданы. news.svitonline.com - это сервер с которого я таскаю. Обязательно делаем stop/start сервера. Собстевенно сам фидинг ---------------------- Теперь, когда мы определились, какие именно группы тянуть, попробуем стянуть с включенным дебагом newsx -ddddd --maxart 100 news.svitonline.com news.svitonline.com если все прошло успешно, тогда запостим эти статьи в наши группы rnews -U статью которую мы написали в группу elvisti.info.astrology теперь нужно отправить на сервер провайдера, для этого делаем newsx news.svitonline.com news.svitonline.com Теперь можно все это поместить в crontab для юзера news. У меня работает через каждых 2 минуты. Можно также попробавать настроить фидинг при помощи innfeed (тогда по крону не нужно запускать), но мне было лень :-).

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1, Sen (?), 19:04, 04/10/2005 [ответить]  
  • +/
    Все настроил четко. Постить на сервер могу, но читать с него - нет.
    Как настроить сервер, чтоб пользователи локальной сети могли читать статьи? В каком формате должны быть статьи?
     
     
  • 3, Oleg Reva (?), 19:56, 10/02/2007 [^] [^^] [^^^] [ответить]  
  • +/
    Файл readers.conf - пропиши сетку локальную в нем.
     

  • 2, Oleg Reva (?), 19:55, 10/02/2007 [ответить]  
  • +/
    Я по статье http://www.opennet.ru/base/net/inn_newsx_setup.txt.html Пробовал уже по разному настроить inn, даже с suck. Сам inn работает нормально, клиенты новости и конверенции получают,
    видят. Но вот не могу забирать новости от news сервера с помощью newsx. Выводится сообщение об ошибке - файл спула не найден. А если создать файл спутла принудительно - все равно пишет, что нет ответа от сервера новостей.

    Теперь понял в чем было дело.
    Нужно было прописать так:

    news.wnet.ua/news-in.wnet.ua,news-out.wnet.ua,news.wnet.ua\
    далее перечислить конверенции как обычно..

    И вызывать команду newsx news.wnet.ua news.wnet.ua только от
    пользователя news!! Иначе каждый раз файл спула удаляется и выводится
    сообщение об ошибке.

     
  • 4, steel (??), 00:18, 21/04/2008 [ответить]  
  • +/
    Пиплы, не могу разобраться с получением, отправкой групп на другой сервер. Последнии версии INN умеют и получать и отправлять? Я пытаюсь заюзать newsx, но понему так мало инфы.. Допустим мне надо собирать с сервера news.ru всю группу sochi.* и постить туда же. Требуется авторизация. Может кто-нибудь п ример показать?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру