Чтение онлайн

на главную - закладки

Жанры

Стахнов Алексей Александрович

Шрифт:

#!/bin/sh

sed < active.provider > active \

–e \'s/^\([^ ]*\) [0–9]* [0–9]* \([^ ]*\)$/\1 0000000000 0000000000 \2/\'

Нужный файл active готов (он содержит строки для всех групп, которые поддерживает наш сервер), но надо сообщить и провайдеру о нашем выборе (чтобы он знал, какие группы новостей ему нужно пересылать на наш хост). Даже если провайдер пропишет нас в своей конфигурации сервера новостей, он не сможет пересылать нам новости по NNTP. Мы должны дать ему разрешение на это. Для этого добавим строчку в файл hosts.nntp:

newsserver.our.provider:

Здесь надо заметить, что мы полагаемся на провайдера – знаем, что он будет снабжать нас только теми конференциями, о которых мы его попросили. Если же вы не доверяете своим NNTP-соседям, то можно указать конкретно шаблон конференций, которые вы принимаете на локальный диск от конкретного NNTP-соседа. Например, мы хотим принимать от провайдера newsserver.our.badprovider только relcom-группы новостей:

newsserver.our.badprovider::relcom.*

Отредактируем файл newsfeeds, указав всех NNTP-соседей, которых мы хотим снабжать

статьями. Не забудем указать в этом файле своего провайдера. Ниже приведены два примера этого файла. • В первом случае мы планируем снабжать статьями хост newsserver.our.provider по NNTP:

ME:*, !junk, !control*, !local*/!local:: newsserver.our.provider:*, !junk, !control*, !local*:Tf, Wnm: newsserver.our.provider

• Во втором случае мы хотим снабжать этот же хост по UUCP (имя этой UUCP-системы provider), используя программу sendbatch:

ME:*, !junk, !control*, !local*/!local:: provider/newsserver.our.provider:*, !junk, !control*, !local*:Tf, Wnb:

Затем назначим различные глобальные параметры сервера новостей (имя сервера, имя домена) и параметры, используемые при формировании заголовков статей, публикуемых у нас. Эта информация хранится в файле inn.conf. Определимся теперь с клиентами нашего сервера новостей (хосты, которые через программу чтения новостей общаются с нашим сервером). Например, мы хотим ограничить пространство пользования ресурсами нашего сервера новостей своей интранет-сетью (192.168.111.0/255.255.255.0) и нашей внешней сетью (домен our.domain), причем пользователям этих сетей мы разрешаем и читать новости, и публиковать их на нашем сервере. При этом надо помнить о партнерах из домена partner.domain (правда, им нечего делать в наших локальных конференциях). Ну, а для остальных поместим первым правило, запрещающее любой доступ. Для этого добавим в файл nnrp.access строки:

*:: -no– : -no– :!*

192.168.111.*:Read Post:::*

*.our.domain:Read Post:::*

*.partner.domain:Read Post:::*, !local*

Как только мы начнем получать статьи на локальный диск, надо будет следить за сроком их хранения на диске и удалять старые (диск же не резиновый). К счастью, за нас это будет делать программа expire, а от нас требуется только дать ей соответствующие указания в файле expire.ctl (ну и конечно, запускать механизм очистки). В этом файле следует указать:

• срок хранения идентификаторов статей в файле history (это делается для того, чтобы не принимать заново удаленные статьи);

• срок хранения самих тел статей.

Пример ниже показывает, что запись об идентификаторе статей хранится в файле history 14 дней после удаления тела этих статей, тела статей из локальных телеконференций хранятся на системе от 5 до 7 дней (по умолчанию 6), а для всех остальных телеконференций тела хранятся от 3 до 5 дней (по умолчанию – 4 дня):

/remember/:14

*: А:3:4:5

local*:А:5:6:7

Заметим, что значение по умолчанию (образец *) должно фигурировать раньше, чем строки для отдельных групп, поскольку применяется последнее соответствие образцу в первом поле.

Важным шагом после редактирования конфигурационных файлов является проверка корректности сделанных нами изменений. Система INN имеет ряд средств, помогающих нам в решении этой задачи. Вот некоторые из них.

• Для поиска ошибок в файле newsfeeds можно дать следующую команду:

innd -s

Например, если вы получили в ответ следующее:

Found 1 errors –see syslog

то это значит, что командой обнаружена одна ошибка, о которой сообщается через syslog в файлах news.err и news.notice. • Для проверки файла active на наличие неверных строк можно дать следующую команду:

expire -n -х -t

Например, если в ответ получено следующее:

/var/news/etc/active: line 5 wrong number of fields

то это значит, что вы ошиблись с количеством полей в 5-й строке этого файла (их должно быть 4). Однако это не лучший способ проверки файла active. В частности, expire не замечает отсутствие флага для группы новостей (в отличие от inncheck). Итак, обратим внимание на inncheck – Рег1-сценарий, предназначенный для проверки всех рассматриваемых нами конфигурационных файлов. Помимо проверки файлов на наличие синтаксических ошибок, он может осуществлять проверку прав доступа к файлам их владельцев. Возвращаясь к примеру выше (отсутствие флага в конце строки файла active), inncheck сообщит вам об этой ошибке:

/var/news/etc/active:5: ends with whitespace

Запущенный без параметров, inncheck проверит синтаксис всех файлов (которые может проверить), с выводом на экран сообщений об ошибках. Если мы укажем опцию v (режим verbose), то inncheck расскажет нам о том, что он просматривает. Мы можем ограничить работу inncheck проверкой синтаксиса конкретного файла, дав команду inncheck имя_файла. Для того чтобы проверить корректность прав доступа к файлам и корректность владельцев и групп файлов, можно дать команду inncheck -perm. Ту же информацию, да еще и с указанием того, какие команды надо выполнить, чтобы устранить ошибки, дает команда inncheck -f -perm. Последний шаг настройки – периодически запускать программу отправки статей с нашей машины, программу чистки каталога статей и обобщения log-файлов. Для этого отредактируем таблицу заданий пользователя news для демона сгоп:

crontab -u news -е

Ваш редактор (определенный переменной окружения editor) откроет файл /var/cron/tabs/news. Ежедневно в 4 часа утра мы будем запускать сценарий news.daily, в функции которого входит обобщение и ротация файлов регистрации, прогон программы expire и др. Далее, в 1-ю минуту и 28-ю минуту каждого часа мы будем запускать программу nntpsend для отправки потоков статей по NNTP нашим соседям.

0 4 * * * /usr/news/bin/news.daily > /dev/null 2>&1 & 1, 28 * * * * /usr/news/bin/nntpsend > /dev/null 2>&1 &

Наконец,

если мы планируем отправлять потоки новостей по UUCP на UUCP-систему provider, то в 37 минут каждого часа из сгоп будем вызывать программу sendbatch:

37 * * * * /usr/news/bin/sendbatch -с provider > /dev/null 2>&1 &

Ну что ж, теперь можно запустить демон innd (rc.news поможет нам в этом) и насладиться его работой!

Журналирование пакета INN

Пакет INN использует стандартный способ – стандартную систему журнализации событий syslog. Помимо этого, можно использовать дополнительные журналы сообщений, в частности:

• news.crit – содержит сообщения о критических ошибках, требующих внимания от администратора сервера новостей;

• news.err – содержит сообщения о фатальных ошибках сервера;

• news.notice – используется для записи информации о соединении удаленных NNTP-хостов, активности клиентов, в этом же файле информируют о своей работе программы ctlinnd, innxmit, rnews.

Система INN имеет помимо log-файлов, поддерживаемых системой syslog, встроенные log-файлы – errlog и news (по умолчанию они расположены в каталоге /var/log/news):

• файл errlog содержит стандартный вывод и стандартные ошибки любых программ, порождаемых демоном innd;

• файл news регистрирует все статьи, поступающие к innd для обработки.

Помимо перечисленных выше файлов регистрации, ряд программ системы INN ведет собственные файлы регистрации (expire.log, send-uucp.log, nntpsend.log и др.).

Программы пакета INN

Поскольку пакет INN очень велик, то в этом разделе приведены некоторые программы, имеющие отношение к пакету с небольшими комментариями:

• /usr/bin/actived – вспомогательный демон для nmpd, хранит в памяти проиндексированный файл active;

• /usr/bin/actmerge – утилита, позволяющая произвести слияние двух файлов active;

• /usr/bin/actsync – утилита для синхронизации, сравнения или слияния файлов active;

• /usr/bin/archive – утилита для создания архивной копии части статей;

• /usr/bin/batcher – программа разбивает на пакеты указанного размера список статей, подготовленных для посылки на хост;

• /usr/bin/controlchan – программа позволяет передать обработку управляющих сообщений из innd внешней программе;

• /usr/bin/convdate – утилита для преобразования формата времени;

• /usr/bin/ctlinnd – интерфейс для управления работающим innd;

• /usr/bin/cvtbatch – преобразует Usenet-пакеты в формат INN;

• /usr/bin/expire – утилита для удаления старых статей без прерывания работы innd;

• /usr/bin/expireindex – удаление старых статей из списка заголовков статей группы;

• /usr/bin/expireover – удаление старых статей из списка статей группы;

• /usr/bin/fastrm – быстрое удаление группы файлов;

• /usr/bin/getlist – получение списков от NNTP-сервера;

• /usr/bin/grephistory – быстрое извлечение статьи по ее индексу;

• /usr/bin/inncheck – проверка конфигурационных файлов;

• /usr/bin/innd – основной сервер, принимающий данные и изменяющий базу данных;

• /usr/bin/inndstart – пусковая программа для innd;

• /usr/bin/innreport – обработка журналов;

• /usr/bin/innstat – выдать состояние сервера;

• /usr/bin/innwatch – мониторинг сервера inn;

• /usr/bin/innxbatch – послать статьи в формате Usenet другому NNTP-серверу;

• /usr/bin/innxmit – пересылка пакета статей другому NNTP-серверу;

• /usr/bin/mailpost – поместить письмо в news-группу;

• /usr/bin/makeactive – восстановление файла active по спулу;

• /usr/bin/news.daily – подготовка ежедневного отчета;

• /usr/bin/news2mail – превращение статей в письма;

• /usr/bin/nnrpd – отдельный процесс, предоставляющий клиентам доступ к статьям;

• /usr/bin/nntpsend – оболочка для innxmit;

• /usr/bin/overchan – заполнение данных списка заголовков статей группы;

• /usr/bin/parsecontrol – анализ управляющих сообщений;

• /usr/bin/pgpverify – проверка управляющих сообщений;

• /usr/bin/scanlogs – обработка журналов;

• /usr/bin/send-nntp – подготовка и рассылка пакетов с помощью innxmit;

• /usr/bin/sendxbatches – подготовка и рассылка пакетов с помощью innxbatch;

• /usr/bin/writelog – запись в журнал inn.

Утилиты

newsprune

Утилита просматривает все каталоги, соответствующие файлу active, и генерирует список файлов, для которых нет соответствующей строки в индексном файле.

findmissing.pl

Создает список файлов, найденных в спуле, но отсутствующих в индексном файле.

Ссылки

• malik.bishkek.su/doc/UNIX/innd/inn.htm – Юрий Савин. Сервер новостей InterNetNews (INN).

• www.bog.pp.ru/work/inn.html – конфигурирование сервера INN.

• www.isc.org/products/INN – официальный сайт INN.

• www.switch.ch/switch/netnews/wg/newstools.html – утилиты для пакета INN.

• www.mibsoftware.com/userkt/inn/0346.htm – утилиты для пакета INN.

Глава 22 Proxy-сервер

При подключении к любому провайдеру вам выдаются параметры настройки – адрес сервера DNS, адрес почтового сервера и сервера новостей, а так же – адрес proxy-сервера.

Что собой представляет proxy-сервер? Если вы настроите свой браузер для работы через proxy-сервер, то при запросе некоторого документа из Интернета, если некоторое время назад кто-то уже обращался с подобным запросом, вы получите документ незамедлительно, с максимальной скоростью, на которую способно ваше сетевое подключение, потому что вы получите копию документа, взятую из кэша proxy-сервера. Если же proxy-сервер не имеет в своем кэше данного документа, то proxy-сервер запросит удаленный WWW-сервер, хранящий оригинал, и выдаст документ вам, одновременно положив копию документа в свой кэш.

Поделиться:
Популярные книги

Сама себе хозяйка

Красовская Марианна
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Сама себе хозяйка

Ученичество. Книга 2

Понарошку Евгений
2. Государственный маг
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Ученичество. Книга 2

Надуй щеки!

Вишневский Сергей Викторович
1. Чеболь за партой
Фантастика:
попаданцы
дорама
5.00
рейтинг книги
Надуй щеки!

На границе империй. Том 9. Часть 4

INDIGO
17. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 4

Эволюционер из трущоб. Том 6

Панарин Антон
6. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Эволюционер из трущоб. Том 6

Идеальный мир для Лекаря 19

Сапфир Олег
19. Лекарь
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 19

Гарем на шагоходе. Том 1

Гремлинов Гриша
1. Волк и его волчицы
Фантастика:
боевая фантастика
юмористическая фантастика
попаданцы
5.00
рейтинг книги
Гарем на шагоходе. Том 1

Академия проклятий. Книги 1 - 7

Звездная Елена
Академия Проклятий
Фантастика:
фэнтези
8.98
рейтинг книги
Академия проклятий. Книги 1 - 7

Беглец

Бубела Олег Николаевич
1. Совсем не герой
Фантастика:
фэнтези
попаданцы
8.94
рейтинг книги
Беглец

Сломанная кукла

Рам Янка
5. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Сломанная кукла

Офицер-разведки

Поселягин Владимир Геннадьевич
2. Красноармеец
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Офицер-разведки

Имя нам Легион. Том 9

Дорничев Дмитрий
9. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 9

(Не)нужная жена дракона

Углицкая Алина
5. Хроники Драконьей империи
Любовные романы:
любовно-фантастические романы
6.89
рейтинг книги
(Не)нужная жена дракона

Этот мир не выдержит меня. Том 2

Майнер Максим
2. Первый простолюдин в Академии
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Этот мир не выдержит меня. Том 2