Linux
Шрифт:
/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). Однако это не
/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-сервер, хранящий оригинал, и выдаст документ вам, одновременно положив копию документа в свой кэш.
Чем больше пользователей пользуются proxy-сервером, тем более существенной становится его помощь. Согласно статистике, количество обращений пользователей к одним и тем же документам в сети Интернет приближается к 60 %.
Многие proxy-серверы обладают еще одним интересным свойством – они могут обмениваться информацией с соседними proxy-серверами, что существенно ускоряет доступ к данным, хранящимся на удаленных или сильно загруженных серверах.
Proxy-сервер предоставляет следующие возможности:
• централизованный выход в Интернет через один сервер в сети;
• локальное хранение часто просматриваемых документов для увеличения скорости загрузки страниц;
• возможность регулировать пропускную способность канала в зависимости от его нагрузки;
• авторизованный доступ в Интернет;
• возможность обмена данными кэша с соседними proxy-серверами.
Однако не все данные могут быть корректно получены через proxy-серверы. Это касается, прежде всего, динамически формируемой информации. Однако большинство современных proxy-серверов имеют большое количество настроек и обладают множеством интеллектуальных алгоритмов, позволяющих в большинстве случаев корректно получать самую свежую информацию.
Наиболее распространенным proxy-сервером, доступным под лицензией GNU, является Squid.
Squid
Squid это высокопроизводительный кэширующий proxy-сервер, поддерживающий протоколы FTP, gopher и HTTP. Squid сохраняет часто запрашиваемые данные в оперативной памяти компьютера, что позволяет резко увеличить производительность proxy-сервера, кэширует DNS-запросы (это свойство интересно тем, кто не имеет своего DNS-сервера). Помимо вышеперечисленных возможностей, поддерживает SSL, расширенный контроль доступа и полную регистрацию запросов.
Одной из ключевых возможностей пакета Squid является использование протокола Internet Cache Protocol (ICP, Протокол интернет-кэширования), что позволяет создать иерархию proxy-серверов Squid для дополнительной экономии пропускной способности канала.
Поддерживаемые функции Squid:
• proxy и кэширование HTTP, FTP;
• proxy для SSL;
• иерархия кэшей;
• ICP, НТСР, CARP, Cache digests;
• прозрачный proxy;
• WCCP;
• гибкий контроль доступа;
• HTTP-серверное ускорение;
• SNMP;
• кэширование DNS-запросов;
• возможность ограничения трафика.
Рассмотрим некоторые из этих функций подробнее.
Протокол ICP
Протокол ICP используется в иерархии кэшей для поиска объектов в дереве кэшей Squid-серверов. Если ваш Squid не находит нужного документа, то посылает ICP-запрос другим Squid-серверам, входящим в вашу иерархию proxy-серверов. Эти серверы отвечают ICP ответами hit (попадание) или miss (промах). После получения ответов ваш сервер решает, при помощи какого кэша proxy-сервера получить необходимые ему данные.