Linux - Алексей Стахнов
Шрифт:
Интервал:
Закладка:
Файл ftpusers должен содержать список следующих псевдо-пользователей, которым будет отказано в подключении к FTP-серверу:
root
bin
daemon
adm
lp
sync
shutdown
halt
news
uucp
operator
games
nobodyОбычно FTP-сервер разрешает загрузку файлов на сервер (upload) всем пользователям. Однако необходимо запретить пользователям загружать свои файлы в некоторые каталоги (а иногда и во все). Для этого в файле ftpaccess необходимо прописать опцию upload с ключом по и указать каталог, на который налагается запрет. Иногда желательно запретить пользователям получение с FTP-сервера некоторых каталогов и файлов. Для этого в файле ftpaccess добавляем строку noretrieve с каталогом, куда необходимо запретить доступ пользователям.
Ссылки
• RFC 959 – RFC, описывающий FTP-протокол.
• www.bog.pp.ru/work/ftpd.html – описание конфигурирования сервера wu-ftp.
• ftp.wu-ftpd.org – исходный текст пакета wu-ftp.
• www.westnet.com/providers/multi-wu-ftpd.txt – описание настройки виртуальных FTP-серверов.
• ftp.foi.com/pub/wu-ftpd/guest-howto – HOWTO по настройке анонимного доступа на FTP-сервер.
Глава 21 Сервер новостей INN
Одним из популярных сервисов, доступных в Интернете, является Usenet (News, новости, телеконференции, эхо-конференции). Это похоже на электронную доску объявлений или Web-форумы. В Usenet минимальной единицей информации является статья. Статья помещается в конференцию. Каждая конференция имеет свою тему. Конференций может быть множество – несколько десятков тысяч. Конференции имеют иерархическую структуру. Имя образуется из имени родительской иерархии, к которому через точку добавляется имя конференции. К примеру – fido7.ru.linux, где fido7 – корень иерархии, показывающий, что группа новостей импортирована из эхо-конференций FIDO, ru – русскоязычная (российская, ранее было su – Советский Союз), linux – конференция посвящена Linux. Для приема и передачи статей используются News-серверы (Usenet-серверы). Эти серверы производят синхронизацию (обмен статьями) между собой. Для передачи и приема статей используется протокол NNTP (Network News Transfer Protocol, сетевой протокол передачи новостей).
Каждая телеконференция имеет свой каталог статей, собранных в соответствующем разделе. Каждая статья в телеконференции имеет оригинальные атрибуты:
• идентификационный номер статьи;
• автор статьи;
• длина статьи;
• тема статьи.
Принятые статьи накапливаются, но не более чем за определенный период (свой для каждой телеконференции). Устаревшие материалы уничтожаются.
Наиболее популярным программным обеспечением для создания сервера телеконференций является пакет InterNetNews, INN.
Сервер новостей InterNetNews (INN)
Пакет INN является одним из старейших пакетов программного обеспечения, предназначенного для создания сервера новостей. Использует стандартный протокол NNTP. Новости хранятся на сервере в дереве каталогов, имена которых формируются из имен телеконференций и повторяют их иерархическую структуру.
Работа пакета INN
Основной процесс – innd. Постоянно запущен в системе, ожидая и принимая поток статей по протоколу NNTP от серверов новостей. Прослушивает порт 119 на наличие входящих соединений. Ведет список активных групп, список статей, статьи, базу заголовков статей, пакеты статей для рассылки по серверам новостей, журналы.
При соединении клиентов для чтения новостей программа innd передает управление демону nnrpd. Этот демон просматривает файл nnrp.access для определения прав доступа к локальной базе статей.
Для управления работой innd – добавления, удаления групп, статей, серверов новостей, изменения параметров работы используется программа ctlinnd.
Удалением старых статей с истекшим сроком хранения занимаются программы expire и expireover, которые удаляют устаревшие файлы, не останавливая innd.
Для автоматического обновления списка новостей используются управляющие сообщения.
Управляющие сообщения
Представляют собой обычные статьи в обычной группе новостей, имеющие заголовок "Control: ". Встретив такую статью, innd обрабатывает записанную в ней команду и сохраняет статью. Управляющие сообщения могут содержать следующие команды:
• cancel Message-ID (обрабатывается самим innd);
• иначе первое слово рассматривается как имя программы (ищется в каталоге ${BIN}/control). Если программа не существует, то вызывается программа default.
Сообщения запоминаются в псевдогруппе control. Если создать подгруппу control.имя_команды, то все соответствующие статьи будут помещаться в эту подгруппу (очень рекомендуется создать control.cancel, control.newgroup, control.rmgroup, control.checkgroups).
Настройка системы INN
Сервер новостей INN по возможностям n сложности настройки весьма напоминает пакет sendmail. Исходя из этого не приходится удивляться огромному количеству конфигурационных файлов и параметров конфигурации. Находятся конфигурационные файлы в каталоге /etc/news. Рассмотрим наиболее значимые из них:
• /etc/news/actsync.cfg – этот файл, как и следующий, используется для конфигурации автоматического изменения списка групп новостей. Обычно, чтобы в последствии не разгребать завалы неведомо откуда взявшихся групп новостей с огромным трафиком, добавление новых групп новостей возлагается на администратора системы;
• /etc/news/actsync.ign – этот файл, как и предыдущий, используется для конфигурации автоматического изменения списка групп новостей;
• /etc/news/control.ctl – в этом файле описывается, как обрабатывать управляющие сообщения. Каждая его строка задает действие. Строки состоят из четырех полей, разделенных двоеточием. Первое поле задает команду, к которой применяется действие (можно указать ключевое слово all), последнее поле – действие. Строки просматриваются по порядку. Используется последняя подошедшая. Возможные действия:
– doit
– doifarg
– doit=отдельный_журнал
– doit=mail
– doit= (без журнализации)
– drop
– log (запись в журнал – errlog)
– log=отдельный_журнал
Описание действий смотрите в документации на сервер INN. Для увеличения безопасности и устойчивости системы рекомендуется не использовать управляющие сообщения, а в файл control.ctl записать единственную строку all:*:*:drop – не делать никакой обработки вообще;
• /etc/news/cycbuff.conf – файл содержит конфигурацию метода хранения CNFS, обычно не используется (подробности смотрите в документации на пакет INN);
• /etc/news/distrib.pats – файл используется программами посылки статей, в частности, inews – для определения области распространения статьи.
Область распространения определяется по шаблону группы новостей и приоритету. Обычно файл не используется;
• /etc/news/expire.cti – файл определяет, через какое время статьи в базе устаревают. Использование файла зависит от метода хранения статей. В частности, метод хранения CNFS самостоятельно удаляет старые статьи. В этом же файле определяется, сколько времени хранить в «истории» информацию об удаленных или отвергнутых статьях.
В начале файла обязательно должна находиться строка, определяющая срок хранения записи об идентификаторах статей в файле history после удаления тела статьи. Это позволяет отклонить статью, если поставщик новостей вновь предложит ее в определенный промежуток времени. Эта строка имеет следующий формат: /remember/:время, где время – срок хранения в днях, по истечении которого из системы удаляются идентификаторы старых статей.
Здесь можно задать для различных групп или набора иерархий групп различные сроки хранения статей. Правила хранения статей задаются следующей строкой, состоящей из пяти полей, разделенных двоеточием:
Шаблоны_имени_группы_через_запятую:флаг:min:default:max
– первое поле в строке задает группу или иерархию, удовлетворяющую шаблону;
– второе поле содержит флаг, который определяет, к какому типу групп применять данное условие:
· A – все группы;
· M – только модерируемые;
· U – только немодерируемые;
· X – все группы. Если статья была послана в несколько групп и удовлетворяет данному шаблону, то она удалится не только из данной группы, но и из всех остальных групп, в которые была отослана;
– третье поле задает минимальное число дней хранения. Так же можно использовать ключевое слово never;
– четвертое поле определяет число дней хранения по умолчанию. Так же можно использовать ключевое слово never;
– пятое поле определяет максимальное число дней хранения статьи в базе. Так же можно использовать ключевое слово never;
• /etc/news/incoming.conf – в файле определяется, кто может служить для нашего сервера поставщиком новостей. Определяющая строка имеет вид: имя, двоеточие, пробел, значение. В качестве имени используются следующие слова:
– Hostname. В качестве значения – список полных доменных имен хостов или десятичных IP-адресов через запятую;
– streaming. В качестве значения – true или false; параметр определяет, разрешен ли потоковый режим;
– max-connections – параметр определяет максимальное число параллельных соединений;
– password – если сервер новостей требует авторизации, здесь прописывается пароль, обычно не используется;