Если почта не работает Доступен
Основной файл регистрации хранит все транзакции, файл reject содержит детали сообщений, которые были отклонены по причинам стратегии, а файл panic предназначен для фиксации сообщений, касающихся ошибок конфигурации и т.п.
Типичные записи в основном (main) файле регистрации показаны ниже. Каждая запись является одной строкой текста, начинающегося с даты и времени. Они здесь разделены на несколько строк, чтобы поместить на страницу:
2000-01-30 15:46:37 12EwYe-0004WO-00 jill D=localuser T=local_delivery 2000-01-30 15:46:37 12EwYe-0004WO-00 Completed |
Эти записи показывают, что сообщение из jack@vstout.vbrew.com на jill@vbrew.com успешно доставлено в почтовый ящик на локальном компьютере. Отправка письма помечается , а доставка =>.
Есть два вида ошибок доставки: постоянный и временный. Постоянные ошибки регистрируются в записи файла регистрации и помечаются ** :
2000-01-30 14:48:28 12EvcH-0003rC-00 ** bill@lager.vbrew.com R=lookuphost T=smtp: SMTP error from remote mailer after RCPT TO: : host lager.vbrew.com [192.168.157.2]: 550 ... User unknown |
При таком сбое Exim посылает отправителю отчет о сбое доставки, часто называемый bounce message.
Временные ошибки отмечаются ==:
2000-01-30 12:50:50 12E9Un-0004Wq-00 == jim@bitter.vbrew.com T=smtp defer (145): Connection timed out |
Эти ошибки типичны для ситуации, в которой Exim правильно распознает, что сообщение должно быть доставлено удаленному компьютеру, но не способен соединиться с SMTP-сервисом на нем. Удаленная система может быть выключена, или на ней может быть проблема с сетью. Всякий раз, когда сообщение отложено (deferred), оно остается в очереди и через некоторое время будет послано еще раз. Однако, если это терпит неудачу достаточно длительное время (обычно несколько дней), происходит постоянная ошибка, и сообщение отклоняется.
Если Вы не смогли понять проблему из сообщения об ошибке Exim, можно включить сообщения отладки. Вы можете сделать это опцией -d, факультативно сопровождаемой номером уровня (9 дает максимальную информацию). Exim отображает отчет о каждой операции на экране, который может дать Вам большее количество сведений относительно того, что идет неправильно.
Ethernet
Среди сетевых аппаратных средств наиболее широко используется повсюду в локальных сетях Ethernet. Он состоит из единственного кабеля с хостами. Скорость передачи зависит от типа Ethernet и составляет 10, 100 или около 1000 мегабит в секунду.
Ethernet
Среди сетевых аппаратных средств наиболее широко используется повсюду в локальных сетях Ethernet. Он состоит из единственного кабеля с хостами. Скорость передачи зависит от типа Ethernet и составляет 10, 100 или около 1000 мегабит в секунду.
Ethernets бывает трех типов: толстый (thick), тонкий (thin) и витая пара (twisted pair). Тонкий и толстый Ethernet использует коаксиальный кабель, отличающейся толщиной (отсюда и название) и способом подключения машины к кабелю. Тонкий Ethernet использует BNC-коннектор в форме буквы Т, в который Вы вставляете кабель и вкручиваете сзади компьютера в гнездо сетевой платы. Толстый Ethernet требует, чтобы Вы проделали маленькую дырочку в кабеле и воткнули коннектор "методом вампира" (vampire tap). Один или больше хостов может быть присоединено к одному такому коннектору. Тонкий и толстый кабель Ethernet может иметь длину не больше 200 и 500 метров соответственно, поэтому они также названы 10base-2 и 10base-5. Витая пара использует кабель, сделанный из медных проводов, но обычно требует дополнительных аппаратных средств (активных концентраторов, active hubs). Он также известен как 10base-T. Здесь "base" является сокращением от "baseband modulation", это значит, что данные непосредственно поданы на кабель без каких-либо модемов и других подобных устройств. Число в начале показывает скорость в мегабитах в секунду, число в конце показывает максимальную длину кабеля. "T" обозначает витую пару. Витая пара на 100 мегабит в секунду обозначается как "100base-T".
Добавление хоста к толстому Ethernet не слишком сложно, оно даже не разрушает временно сеть. Чтобы добавить машину к сети с тонким Ethernet Вы должны прервать работу сети по крайней мере на несколько минут потому, что надо разрезать кабель, чтобы вставить Т-connector. Витая пара в этом плане очень удобна: в ней используется концентратор (hub), который является точкой обмена данными. Машина может быть подключена к нему или отключена от него независимо от работы других машин в сети.
Большинство людей предпочитают тонкой Ethernet для небольших сетей, потому что это очень дешево: карты стоят всего $30, а кабель в диапазоне нескольких центов за метр. Однако, для больших сооружений толстый Ethernet подходит лучше. Например, в отделе математики используют толстый Ethernet, так что у них работа сети не будет прерваться каждый раз, когда к сети добавляется новый хост. Витая пара в плане подключения машина очень удобна, а по цене сейчас тоже стала вполне доступной. Концентраторы, правда, пока стоят довольно дорого, да и сам кабель дешевизной не отличается, но цены падают. По удобству же этому варианту просто нет равных, так что не стоит удивляться тому, что в серьезных сетях именно витая пара уже сейчас занимает ведущие позиции.
Один из недостатков Ethernet: ограниченная длина кабеля, который позволяет использовать его только для локальных сетей. Однако, несколько сегментов Ethernet могут быть связаны друг с другом с помощью повторителей (repeaters), мостов (bridges) или маршрутизаторов (routers). Повторители просто копируют сигналы между двумя или больше сегментами так, что все сегменты вместе действуют, как будто это один Ethernet. Но между двумя любыми машинами сети не может быть больше четырех повторителей, иначе они исказят сигнал. Мосты и маршрутизаторы более сложные. Они анализируют поступающие данные и отправляют их только тогда, когда хоста получателя нет в местном сегменте Ethernet.
Ethernet работает подобно системной шине, где хост может послать пакеты (или кадры, frames) до 1500 байтов длиной другому хосту на том же самом сегменте Ethernet. Хост идентифицируется адресом, состоящим из шести байт, зашитых в Ethernet-плату при ее создании. Эти адреса обычно записываются как последовательность шестнадцатиричных чисел с двумя цифрами отделяемыми двоеточиями, например, aa:bb:cc:dd:ee:ff.
Структура, посланная одной машиной, видна и всем остальным, но только хост места назначения подбирает и обрабатывает ее. Если две машины пробуют послать сообщение одновременно, происходит столкновение ( collision), которое решается двумя машинами с помощью остановки передачи и повторной попытки передачи данных несколько позже. Число столкновений доходит до 30% от пропускной способности сети, но при сильной нагрузке, этот показатель будет расти. Это нормально. Беспокоиться стоит начинать, когда он достигнет 60%. Тут может сильно помочь витая пара: в ней пакеты идут по двум разным проводам и поэтому не сталкиваются. Именно поэтому, все крупные сети делают на витой паре.
Файл control ctl Файл control
Файл control.ctl
Файл control.ctl довольно прост. Правила синтаксиса для этого файла аналогичны правилам для прочих файлов INN. Строки, начинающиеся с # игнорируются, строки могут быть продолжены, используя символ переноса /, поля разделяются двоеточиями (:).
Когда сообщение управления будет получено, оно будет проверено по каждому правилу в файле. Используется последнее подходящее совпадение, так что Вы должны поместить любые универсальные правила в начало файла и более специфические правила в конце. Общий синтаксис файла:
message:from :newsgroups: action |
Поля имеют смысл: message
Имя контрольного сообщения. Типичные сообщения описаны ниже.
fromОбразец в стиле оболочки, соответствующий e-mail адресу отправителя сообщения. Адрес будет преобразован в нижний регистр перед сравнением.
newsgroupsЕсли пришло сообщение newgroup или rmgroup, это поле хранит соответствие образца в стиле оболочки (shell-style) с именем соответствующей группы.
actionЭто поле определяет, какое действие выполнять для любого сообщения, соответствующего правилу. Имеется множество действий, которые мы можем выполнить, они будут описаны ниже.
Поле message каждой строки может иметь одно из значений:
checkgroupsПредписывает администраторам новостей синхронизировать их базы данных активных групп со списком в сообщении.
newgroupСоздать новую группу. Сообщение должно содержать короткое описание создаваемой группы новостей.
rmgroupУдалить группу новостей.
sendsysПереслать файл sys с этого сервера новостей отправителю сообщения. RFC-1036 заявляет, что это требование членства в Usenet. Эта информация должна быть публично доступна потому, что она используется для построения карты Usenet.
versionВернуть отправителю сообщения имя хоста и версию программного обеспечения сервера новостей.
allСоответствует любому типу сообщений управления.
Поле message может также включать любые следующие действия:
doitЗапрошенная команда выполняется. Во многих случаях будет послано e-mail сообщение администратору, чтобы уведомить его о выполнении.
doit=fileАналог doit, но сообщение протокола пишется в файл протокола с именем file. Если в качестве имени файла задано mail, протокол отсылается по e-mail. Если в качестве имени задана пустая строка, сообщение будет записано в дыру памяти /dev/null, эквивалентно использованию неквалифицированного действия doit. Если строка file начинается с символа /, имя считается абсолютным (путевым или полным). В противном случае указанное имя транслируется в /var/log/news/file.log.
doifargЗапрошенная команда выполняется, если имеет параметр. Если команда не имеет никакого параметра, сообщение управления игнорируется.
dropЗапрошенная команда игнорируется.
logСообщение протокола будет послано на stderr процессом innd. Это обычно направляется в файл /var/log/news/errlog.
log=fileАналог log, но файл протокола определен согласно правилам, заданным для действия doit=file.
mailБудет послано e-mail сообщение администратору новостей, содержащее запрошенные команды. Никаких других действий не будет выполнено.
verify-*Если действие начинается со строки "verify-", то сообщение управления заверено, используя PGP (или GPG).
Пример простого файла control.ctl:
## Sample /etc/news/control.ctl ## ## Warning: You should not use this file, it is illustrative only. ## ## Control Message Handling all:*:*:mail checkgroups:*:*:mail ihave:*:*:drop sendme:*:*:drop sendsys:*:*:log=sendsys senduuname:*:*:log=senduuname version:*:*:log=version newgroup:*:*:mail rmgroup:*:*:mail ## Handle control messages for the eight most important news heirarchies ## COMP, HUMANITIES, MISC, NEWS, REC, SCI, SOC, TALK checkgroups:*:comp.*|humanities.*|misc.*|news.*|rec.*|sci.*|soc.*|talk.*:drop newgroup:*:comp.*|humanities.*|misc.*|news.*|rec.*|sci.*|soc.*|talk.*:drop rmgroup:*:comp.*|humanities.*|misc.*|news.*|rec.*|sci.*|soc.*|talk.*:drop checkgroups:group-admin@isc.org:*:verify-news.announce.newgroups newgroup:group-admin@isc.org:comp.*|misc.*|news.*:verify-news.announce.newgroups newgroup:group-admin@isc.org:rec.*|sci.*|soc.*:verify-news.announce.newgroups newgroup:group-admin@isc.org:talk.*|humanities.*:verify-news.announce.newgroups rmgroup:group-admin@isc.org:comp.*|misc.*|news.*:verify-news.announce.newgroups rmgroup:group-admin@isc.org:rec.*|sci.*|soc.*:verify-news.announce.newgroups rmgroup:group-admin@isc.org:talk.*|humanities.*:verify-news.announce.newgroups ## GNU ( Free Software Foundation ) newgroup:gnu@prep.ai.mit.edu:gnu.*:doit newgroup:news@*ai.mit.edu:gnu.*:doit rmgroup:gnu@prep.ai.mit.edu:gnu.*:doit rmgroup:news@*ai.mit.edu:gnu.*:doit ## LINUX (Newsfeed from news.lameter.com) checkgroups:christoph@lameter.com:linux.*:doit newgroup:christoph@lameter.com:linux.*:doit rmgroup:christoph@lameter.com:linux.*:doit |
Файл для CHAP
Когда надо опознать себя с некоторым сервером, используя CHAP, pppd ищет в файле chap-secrets запись с именем клиента, равным локальному hostname, и именем сервера, равного удаленному hostname, посланному в CHAP Challenge. При требовании опознавания себя роли просто поменялись: pppd будет искать запись с именем клиента, приравненным к удаленному hostname (посланному в CHAP-ответе клиенту) и имя сервера, приравненное локальному хосту.
Файл для CHAP
Когда надо опознать себя с некоторым сервером, используя CHAP, pppd ищет в файле chap-secrets запись с именем клиента, равным локальному hostname, и именем сервера, равного удаленному hostname, посланному в CHAP Challenge. При требовании опознавания себя роли просто поменялись: pppd будет искать запись с именем клиента, приравненным к удаленному hostname (посланному в CHAP-ответе клиенту) и имя сервера, приравненное локальному хосту.
Типовой файл chap-secrets для vlager:
# CHAP secrets for vlager.vbrew.com # # client server secret addrs #--------------------------------------------------------------------- vlager.vbrew.com c3po.lucas.com "Use The Source Luke" vlager.vbrew.com c3po.lucas.com vlager.vbrew.com "arttoo! arttoo!" c3po.lucas.com * vlager.vbrew.com "TuXdrinksVicBitter" pub.vbrew.com |
При установлении PPP-связи с c3po, c3po просит vlager опознать себя, используя CHAP и посылая CHAP challenge. Затем pppd просматривает файл chap-secrets для записи с клиентской областью, приравненой к vlager.vbrew.com и областью сервера, приравненной к c3po.lucas.com, и находит первую строку, показанную выше. Затем производится CHAP-ответ из challenge string и шифра (Use The Source Luke) на машину c3po.
В то же самое время pppd составляет CHAP challenge для c3po, содержащую уникальную challenge string, и полностью квалифицированное доменное имя vlager.vbrew.com. В ответ c3po создает CHAP-ответ способом, который мы только что обсудили, и возвращает его vlager. Теперь pppd извлекает клиентский hostname (c3po.vbrew.com) из ответа и ищет в файле chap-secrets строку, соответствующую c3po как клиенту и vlager как серверу. Вторая строка задает pppd объединить CHAP challenge с паролем (arttoo! arttoo!), зашифровать результат и сравнить CHAР-ответом c3po.
Произвольное четвертое поле перечисляет адреса IP, которые допустимы для клиентов в первом поле. Адреса могут быть заданы в dotted quad notation или как имена машин, которые будут найдены через сервер имен. Например, если c3po запросил во время IPCP-переговоров использование IP-адреса, который не в этом списке, запрос будет отклонен, и IPCP будет выключено. В типовом файле, показанном выше, c3po будет ограничен использованием собственного адреса. Если поле адреса пусто, будут позволяться любые адреса. Задание тире (-) запрещает использование IP-адреса.
Третья строка в примере файла chap-secrets позволяет любому хосту установить связь PPP с vlager потому, что * в поле клиента или сервера соответствует любому hostname. Единственое требование: он знает пароль и использует адрес pub.vbrew.com. Запись с групповым символом для имен машин может появится где угодно в файле шифров, так как pppd будет всегда использовать наиболее подходящую запись, которая применима к паре сервер/клиент.
Нужно упомянуть способ, которым pppd находит имена машин: он ищет их в файле шифров. Как было объяснено выше, удаленное имя всегда передается в CHAP Challenge или в Response packet. Локальный hostname будет получен, если вызвать функцию gethostname(2). Если Вы установили имя системы в Ваше неквалифицированное hostname, то должны задать для pppd опцию domain:
# pppd -domain vbrew.com |
Это добавит имя домена Brewery к vlager для всех действий по авторизации. Для локального имени интересны также опции usehostname и name. Когда Вы задаете локальный IP-адрес в командной строке, используя local: remote и имя local вместо IP-адреса, pppd использует его как локальный hostname.
Файл для PAP
Файл шифров PAP очень похож на тот, который используется CHAP. Первые два поля всегда содержат имена пользователя и сервера, третье поле хранит шифр PAP. Когда удаленная машина посылает запрос опознания, pppd использует запись, которая имеет поле сервера равное локальному hostname, и поле пользователя, равное имени пользователя, посланному в запросе. Когда опознание произойдет, pppd
выберет шифр, который будет послан с полем пользователя, приравненным к локальному имени пользователя, и полем сервера, приравненным к удаленному hostname.
Файл для PAP
Файл шифров PAP очень похож на тот, который используется CHAP. Первые два поля всегда содержат имена пользователя и сервера, третье поле хранит шифр PAP. Когда удаленная машина посылает запрос опознания, pppd использует запись, которая имеет поле сервера равное локальному hostname, и поле пользователя, равное имени пользователя, посланному в запросе. Когда опознание произойдет, pppd
выберет шифр, который будет послан с полем пользователя, приравненным к локальному имени пользователя, и полем сервера, приравненным к удаленному hostname.
Образец файла шифров для PAP:
# /etc/ppp/pap-secrets # # user server secret addrs vlager-pap c3po cresspahl vlager.vbrew.com c3po vlager DonaldGNUth c3po.lucas.com |
Первая строка используется для того, чтобы опознать нас, когда мы соединяемся с c3po. Вторая описывает, как пользователь c3po должен опознавать себя при соединении с нами.
Имя vlager-pap в столбце имени пользователя мы посылаем на c3po. По умолчанию pppd выберет локальный hostname как имя пользователя, но Вы можете также определить различные имена, давая опцию user, сопровождаемую эти именем.
При выборе записи из файла pap-secrets для авторизации pppd должен знать имя удаленного хоста. Поскольку он не имеет способа нахождения такой информации, Вы должны точно определить его в командной строке, используя ключевое слово remotename, сопровождаемое соответствующим hostname. Например, используя вышеупомянутую запись для установления подлинности c3po, мы добавляем следующую опцию к командной строке pppd:
# pppd ... remotename c3po user vlager-pap |
В четвертом поле (и всех следующих) Вы можете определить, какие адреса IP разрешены точно, как в файле шифров CHAP. Удаленная машина затем может запроситьь только адреса из этого списка. В типовом файле мы требуем, чтобы c3po использовал реальный адрес IP.
Заметьте, что PAP довольно слабый опознавательный метод, и лучше использовать CHAP, если это возможно. Я не буду здесь описывать PAP в деталях: если Вы заинтересованы в использовании PAP, то найдете больше сведений на pppd(8) man-странице.
Файл expire ctl Сервер INN использует
Файл expire.ctl
Сервер INN использует программу expire, чтобы удалить устаревшие статьи. Она в свою очередь использует файл /etc/news/expire.ctl, чтобы конфигурировать правила, которые управляют этим процессом.
Синтаксис /etc/news/expire.ctl довольно прост. Как и в большинстве файлов конфигурации строки, начинающиеся с символа # или пустые, игнорируются. Общая идея состоит в том, что Вы определяете одно правило на строку. Каждое правило определяет, как будет стареть указанная группа статей. Синтаксис правила выглядит следующим образом:
pattern: modflag:keep: default:purge |
Поля имеют смысл: pattern
Разделенный запятыми список образцов имен групп. Для проверки используется программа wildmat. Будет применено последнее подходящее правило.
modflagОписывает, как это правило применяется к модерируемым группам. Допустимо указание M для модерируемых групп, U для немодерируемых групп, или A, чтобы указать, что это правило применимо к любым группам новостей.
keepПозволяет Вам определять минимальное время, которое статья с полем "Expires" в заголовке будет храниться. Единицами измерения являются дни. Можно использовать плавающую точку, например, 7.5 для указания семи с половиной дней. Можно также указать never, чтобы статья не сохранялась вообще.
defaultЭто поле позволяет определять, сколько времени статья без поля Expires в заголовке будет храниться. Большинство статей не имеют поля Expires в заголовке, так что этот параметр очень важен. Это поле кодируется по правилам для поля keep, но значение never указывает, что статьи без поля Expires в заголовке будут бессмертны.
purgeЭто поле позволяет Вам определять максимальное время. которое статья с полем Expires в заголовке будет храниться до начала процесса старения. Правила задания аналогичны полю keep.
Наши требования просты. Мы будем хранить все статьи во всех группах в течение 14 дней по умолчанию и от 7 до 21 для статей с полем Expires в заголовке. Группа rec.crafts.brewing.private является внутренней, и в ней статьи бессмертны:
# expire.ctl file for the Virtual Brewery # Expire all articles in 14 days by default, 7-21 days for those with # Expires: headers *:A:7:14:21 # This is a special internal newsgroup, which we will never expire. rec.crafts.brewing.private:A:never:never:never |
Есть один специальный тип записи, который Вы можете иметь в файле /etc/news/expires.ctl. Допустима только одна строка, которая выглядит следующим образом:
/remember/:days |
Файл host conf
Опции в /etc/host.conf должны быть на отдельных строках. Области могут быть отделены пустым пространством (пробелами или табуляцией). Знак # вводит комментарий до конца строки. Доступны следующие опции:
Файл host.conf
Опции в /etc/host.conf должны быть на отдельных строках. Области могут быть отделены пустым пространством (пробелами или табуляцией). Знак # вводит комментарий до конца строки. Доступны следующие опции:
order
Эта опция определяет порядок, в котором перебираются все доступные сервисы. Значение hosts связывает запросы сервера с поиском хостов в /etc/hosts, bind с пакетом named, а nis с NIS-поиском. Любое или все значения сразу могут быть определены. Порядок, в котором они появляются в строках, определяет последовательность, в которой будут перебираться сервисы.
multiЭта опция определяет, разрешено ли хосту в /etc/hosts иметь несколько IP-адресов, которые обычно называются "multi-homed". Этот флаг не действует на DNS или NIS запросы. Допустимые значения: on или off. По умолчанию off.
nospoofКак уже объяснено в предыдущем разделе, DNS позволяет найти имя хоста, принадлежащего IP-адресу, используя домен in-addr.arpa. Попытки серверов поддержать ложное имя хоста называются "спуфинг" ("spoofing"). Чтобы обезопасить себя от этого, библиотека может быть сконфигурирована на проверку, является ли настоящий IP-адрес фактически связанным с полученным именем хоста. Если нет, то этому имени будет отказано в преобразовании и возвращен код ошибки. Это поведение зависит от того, включен ли nospoof.
alertЭта опция может принимать значения on или off. Если она включена, то любые попытки спуфинга будут внесены в протокол syslog.
trimЭта опция берет как аргумент имя домена, которое будет удалено из имени хоста перед поиском. Это полезно для информационных элементов, где Вы хотите точно определить имя хоста с локальным доменом. При поиске хоста с именем локального домена будет удалено имя этого домена. Таким образом, легко осуществить поиск в /etc/hosts. Добавляемое имя домена должно оканчиваться точкой (.), например linux.org.au..
Опция trim позволяет рассматривать Ваш хост как локальный для нескольких доменов.
Типовой файл для vlager показан в примере 6-1.
Файл incoming conf Я упомянул
Файл incoming.conf
Я упомянул в обзоре по INN, что данный пакет достигает хороших результатов, отделяя механизм рассылки новостей от работы с клиентскими программами. Файл /etc/news/incoming.conf как раз то место, где Вы определяете, какие хосты будут подавать Вам новости, используя протокол NNTP и ряд параметров подачи. Любой хост, не перечисленный в этом файле, не будет обработан демоном innd. Вместо этого для него будет запущен демон nnrpd.
Синтаксис файла /etc/news/incoming.conf очень прост. Допустимы три типа записей: пары "ключ/значение", задающие значения параметров, доменные имена, задающие имена хостов для доступа по NNTP (peer), и группы (group), задающие связь между двумя первыми типами записей. Пары ключ/значение могут иметь три различных типа контекста. Глобальные пары относятся ко всем записям хостов, определенным в файле. Группы обращаются ко всем определенным хостам в своей группе.
Фигурные скобки ({}) задают начало и конец записей типов group и peer. Символ # задает комментарий. Пары ключ/значение разделяются двоеточием и располагаются по одной на строке.
Наиболее часто используются следующие ключи: hostname
Определяет разделенный запятыми список полных доменных имен или IP-адресов хостов, которым разрешено посылать новости на наш сервер.
streamingЗадает, разрешены ли потоковые команды с этого хоста. Тип переменной Boolean. По умолчанию значение true.
max-connectionsМаксимальное количество подключений из этой группы или с данного сервера. Значение 0 (ноль) задает неограниченное число подключений, аналогично значению none.
passwordЗадает пароль, используемый для передачи новостей. По умолчанию не определен, то есть пароль не требуется.
patternsОпределяет группы, которые принимаются от соответствующего сервера (или группы). Это поле кодируется по правилам из файла newsfeeds.
В нашем примере мы имеем только один хост, с которым надо обмениваться новостями. Пароль задавать не будем, но обеспечим, чтобы частные группы не выходили за пределы нашей сети. Файл hosts.nntp выглядит примерно так:
# Virtual Brewery incoming.conf file. # Global settings streaming: true max-connections: 5 # Allow NNTP posting from our local host. peer ME { hostname: "localhost, 127.0.0.1" } # Allow groucho to send us all newsgroup except our local ones. peer groucho { hostname: news.groucho.edu patterns: !rec.crafts.brewing.private } |
Файл inn conf Главный файл настройки
Файл inn.conf
Главный файл настройки INN называется inn.conf. Помимо прочего, он задает имя Вашей машины в сети Usenet. INN Version 2 имеет огромное количество настроек в этом файле. Удачно, что большинство параметров имеет значения по умолчанию, которые являются приемлемыми для многих случаев. Страница справочника inn.conf(5) имеет подробное описание всех деталей параметров этого файла, и Вы должны ее внимательно изучить, если испытываете проблемы с настройкой.
Простой пример inn.conf:
# Sample inn.conf for the Virtual Brewery server: vlager.vbrew.com domain: vbrew.com fromhost: vbrew.com pathhost: news.vbrew.com organization: The Virtual Brewery mta: /usr/sbin/sendmail -oi %s moderatormailer: %s@uunet.uu.net # # Paths to INN components and files. # pathnews: /usr/lib/news pathbin: /usr/lib/news/bin pathfilter: /usr/lib/news/bin/filter pathcontrol: /usr/lib/news/bin/control pathdb: /var/lib/news pathetc: /etc/news pathrun: /var/run/news pathlog: /var/log/news pathhttp: /var/log/news pathtmp: /var/tmp pathspool: /var/spool/news patharticles: /var/spool/news/articles pathoverview: /var/spool/news/overview pathoutgoing: /var/spool/news/outgoing pathincoming: /var/spool/news/incoming patharchive: /var/spool/news/archive pathuniover: /var/spool/news/uniover overviewname: .overview |
Первая строка сообщает, где искать программы rnews и inews, с которыми компьютер должен входить в контакт при поставке статей. Это очень важно, поскольку innd должен установить соединение по NNTP для связи с сервером.
Ключевое слово domain должно определить доменную часть имени хоста. Если сервер имен возвращает неполное доменное имя, к нему будет присоединено значение параметра domain.
Следующая строка определяет имя хоста, которое собирается использовать inews при добавлении строки From: к статьям, зарегистрированным локальными пользователями. Большинство программ чтения новостей использует поле From: при создании ответа автору статьи. Если Вы опускаете это поле, будет использовано полное доменное имя хоста новостей. Это не всегда самый лучший выбор. Вы могли бы, например, обрабатывать почту и новости разными компьютерами. В этом случае Вы должны указать доменное имя почтового сервера после инструкции fromhost.
Строка pathhost определяет имя хоста INN для добавления к полю Path: в заголовке статей. В большинстве случаев Вы будете использовать доменное имя сервера новостей. В этой ситуации поле можно пропустить: значением по умолчанию как раз и является доменное имя сервера новостей. Иногда Вы можете использовать универсальное имя, типа news.vbrew.com, при обслуживании большого домена. Это позволяет Вам легко перемещать систему новостей с одной машины на другую в зависимости от технических требований.
Следующая строка имеет ключевое слово organization. Эта инструкция позволяет Вам конфигурировать, какой текст inews поместит в поле Organization: заголовков статей, зарегистрированных Вашими локальными пользователями. Формально здесь нужно указать описание или название Вашей организации.
Ключевое слово organization обязательно и определяет имя агента транспортировки почты, который будет использован для отправки сообщений модератору. Здесь вместо %s будет подставлен e-mail адрес модератора группы.
Слово moderatormailer определяет заданный по умолчанию адрес, используемый, когда пользователь пробует послать статью в модерируемую группу. Список адресов модераторов для каждой группы обычно хранится в отдельном файле. Запись moderatormailer используется как последняя инстанция: если она определена, inews заменит %s на адрес для соответствующей группы новостей. Например, при регистрации в soc.feminism статья будет отправлена по почте на адрес soc-feminism@uunet.uu.net, заданный в данной конфигурации для модератора данной группы.
В заключение, каждая из оставшихся записей определяет расположение некоторого компонента, файла или программы, принадлежащего INN. Если Вы установили INN из пакета, эти пути должны быть уже сконфигурированы. Если же Вы устанавливаете INN из исходников, то должны гарантировать, что они отражают реальную ситуацию.
Файл newsfeeds Файл newsfeeds
Файл newsfeeds
Файл newsfeeds определяет, куда какие статьи рассылать. Обычно он лежит в каталоге /etc/news.
Формат файл newsfeeds сначала может показаться сложным. Здесь я опишу его в общих чертах, а за подробностями отсылаю к man-странице newsfeeds(5). Синтаксис файла:
# newsfeeds file format site:pattern:flags:param site2:pattern2\ :flags2:param2 |
Поле site определяет имя сайта, передача которому описана этой строкой. Здесь можно вписать любое имя, на которое потом будут ссылаться другие определения. Единственное, что здесь нельзя писать, это доменное имя сайта. Записанное здесь имя понадобится позже для поиска в таблице имен для программы innxmit, которая передает статьи по протоколу NNTP на удаленный сервер. Можно иметь несколько записей для одного сайта: они обрабатываются индивидуально.
Поле pattern указывает имена групп, которые надо передать этому сайту. Значение по умолчанию должно послать все группы, так что, если нужно именно это, оставьте поле пустым. Это поле обычно хранит разделенный запятыми список шаблонов имен. Символ * как обычно соответствует любой строке символов или ее отсутствию, символ . (точка) не имеет никакой специальной нагрузки, зато символ ! (при использовании в начале выражения) задает логический NOT. Наконец, символ @ в начале имени группы запрещает пересылать любые статьи, которые посланы в эту группу. Список читается и обрабатывается слева направо, так что Вы должны поместить более специфические правила сначала. Например, шаблон:
rec.crafts.brewing*,!rec.crafts.brewing.poison,@rec.crafts.brewing.private |
пошлет все новости иерархии rec.crafts.brewing за исключением группы rec.crafts.brewing.poison. Он не пошлет никаких статей, которые пришли в группу rec.crafts.brewing.private: эти статьи будут доступны только тем людям, которые используют этот сервер.
Поле flags контролирует подачу новостей к заданному сайту. Здесь используется разделенный запятыми список из следующих команд:
sizeСтатья должна быть размером меньше заданного значения в байтах.
A itemsСтатья проверяется на соответствие критериям: d (должен быть заголовок Distribution) или p (не проверять сайт в поле Path заголовка).
B high/ lowРазмер внутреннего буфера перед записью.
H [count]Статья должна иметь меньше, чем count записей о пересылке, по умолчанию 1.
I sizeРазмер внутреннего буфера для передачи файлов.
M patternЭтому шаблону соответствуют только модерируемые группы.
N patternЭтому шаблону соответствуют только немодерируемые группы.
S sizeЕсли размер статьи в байтах превышает указанный, поместить ее в очередь для отправки.
T typeТипы подачи новостей: f (файл), m (поток, поле param в соответствующей записи указывает, что статья будет подаваться потоком), p (канал к программе), c (послать каналу stdin подпроцесса, заданного в поле param) и x (аналог c).
W itemsЧто записывать: b (размер статьи в байтах), f (полный путь), g (первая группа новостей), m (Message ID), n (относительный путь), s (сайт для подачи статьи), t (время приема), * (имя потока или перечень всех сайтов, которые получают статью), N (поле newsgroups заголовка), D (поле distribution заголовка), H (весь заголовок), O (обзорные данные) и R (данные для ответа).
Поле param имеет специальное кодирование, которое зависит от типа передачи. В наиболее общей конфигурации здесь хранится имя выходного файла, в который Вы будете записывать исходящие данные. В других конфигурациях Вы можете оставлять его пустым или задавать другие значения. Если Вы хотите сделать что-либо нестандартное, обратитесь за подробностями к man-странице newsfeeds(5).
Имеется специальное имя сайта, которое должно быть кодировано как ME и быть первым в этом файле. Эта запись используется, чтобы управлять заданными по умолчанию параметрами настройки для входящих статей. Если запись ME имеет дистрибутивный список, связанный с ней, этот список будет добавлен к каждой записи перед отправкой сообщения.
Я упомянул ранее, что можно использовать специальное сообщение для построения данных, которые делает работу с новостями проще. Это делается командой overchan, которая является частью INN. Чтобы делать это, мы создадим специальную локальную рассылку overview, которая передаст статьи для обработки команде overchan.
Наш сервер новостей будет обеспечивать только одну внешнюю подачу новостей, которая идет на Groucho Marx University, они получают все статьи из всех групп, кроме control и junk, а также группы rec.crafts.brewing.private, которая является местной, и rec.crafts.brewing.poison, в которую не могут ничего послать локальные пользователи.
Мы используем команду nntpsend для транспортировки новостей по NNTP на сервер news.groucho.edu. Программа nntpsend требует, чтобы мы использовали метод поставки "file" и писали путевое имя статьи и ее ID. Заметьте, что надо установить поле param в имя файла для вывода. Конфигурация в файле:
# /etc/news/newsfeeds file for the Virtual Brewery # # Send all newsgroups except the control and junk ones by default ME:!control,!junk:: # # Generate overview data for any newsreaders to use. overview::Tc,WO:/usr/lib/news/bin/overchan # # Feed the Groucho Marx University everything except our private newsgroup # and any articles posted to the rec.crafts.brewing.poison newsgroup. gmarxu:!rec.crafts.brewing.poison,@rec.crafts.brewing.private:\ Tf,Wnm:news.groucho.edu |
Файл nnrp access Я упомянул ранее
Файл nnrp.access
Я упомянул ранее, что программы чтения новостей (а фактически любой компьютер, не перечисленный в hosts.nntp), которые соединяются с INN, обрабатываются программой nnrpd. Демон nnrpd использует файл /etc/news/nnrp.access, чтобы определить, кто и с какими правами может использовать сервер.
Файл nnrp.access имеет структуру, схожую с файлами настройками, рассмотренными выше. Он включает набор образцов, используемых для проверки соответствия доменных имен или IP-адресов соединяющихся машин и определения прав доступа. Каждая запись должна быть на отдельной строке, поля разделяются двоеточиями. Для работы используется последнее найденное соответствие. Каждая запись включает пять полей: Hostname или IP-адрес
Это поле соответствует правилам wildmat(3) соответствия шаблонов. Это образец, который описывает имя соединяющегося компьютера или его IP-адрес.
PermissionsЭто поле определяет то, какие права нужно предоставлять. Есть два права: R для чтения и P для посылки статей в группы.
UsernameНеобязательно, но позволяет Вам определять имя пользователя для его регистрации клиентом NNTP на сервере перед тем, как он будет посылать статьи (для чтения авторизация не требуется).
PasswordНеобязательно, но может задавать пароль для отправки статей и задается в паре с username. Пустое поле определяет, что пароль не нужен.
NewsgroupsЗадает группы, к которым разрешен доступ клиенту. Шаблон определен по правилам из файла newsfeeds.
В нашем примере разрешается каждому пользователю нашего домена читать статьи и посылать их по NNTP. Кроме того, всем клиентам NNTP предоставляется доступ только на чтение (read-only) ко всем конференциям, кроме внутренних. Файл nnrp.access выглядит так:
# Virtual Brewery - nnrp.access # We will allow public reading of all newsgroups except our private one. *:R:::*,!rec.crafts.brewing.private # Any host with the Virtual Brewery domain may Read and Post to all # newsgroups *.vbrew.com:RP::* |
Файл nntpsend ctl Программа nntpsend
Файл nntpsend.ctl
Программа nntpsend управляет передачей новостей, используя протокол NNTP и вызывая команду innxmit. Простое использование nntpsend было только что показано, но у нее есть свой файл настройки, который обеспечивает некоторую гибкость при передаче новостей.
Команда nntpsend ожидает найти пакетные файлы для сайтов, с которыми работает. Предполагается, что эти пакетные файлы будут именованы как /var/spool/news/out.going/ sitename. Демон innd создает эти пакетные файлы при обработке записи в newsfeeds, который приведен в предыдущем разделе. Там имя сайта было определено как имя файла в поле param, и это удовлетворяет входные требования команды nntpsend.
Команда nntpsend имеет файл конфигурации nntpsend.ctl, который обычно сохраняется в каталоге /etc/news.
Файл nntpsend.ctl позволяет связывать полное доменное имя, настройки подачи новостей и ряд параметров передачи с именем сайта назначения. Общий формат файла:
sitename:fqdn:max_size:[args] |
Элементы этого формата:
sitenameИмя сайта из файла newsfeeds.
fqdnПолное доменное имя сервера, которому будут передаваться новости.
max_sizeМаксимальный объем новостей, передаваемых одним блоком.
argsДополнительные параметры для команды innxmit.
Наш пример конфигурации требует очень простой файл nntpsend.ctl. Мы имеем только одну подачу новостей. Ограничим максимальный блок новостей 2 MB и передадим параметр innxmit, который устанавливает 3-минутное (180 секунд) время ожидания. Если бы мы поддерживали большой сайт новостей с несколькими клиентами, пришлось бы создать дополнительные записи для каждого клиента:
# /etc/news/nntpsend.ctl # gmarxu:news.groucho.edu:2m:-t 180 |
Файл nsswitch conf
Version 2 GNU standard library включает более мощный и гибкий механизм, чем старый host.conf. Понятие сервиса имен было расширено с включением ряда различных типов информации. Опции конфигурации для всех функций, которые делают запрос к базам данных, были вынесены в один файл конфигурации nsswitch.conf.
Файл nsswitch.conf
Version 2 GNU standard library включает более мощный и гибкий механизм, чем старый host.conf. Понятие сервиса имен было расширено с включением ряда различных типов информации. Опции конфигурации для всех функций, которые делают запрос к базам данных, были вынесены в один файл конфигурации nsswitch.conf.
Файл nsswitch.conf позволяет администратору конфигурировать большое число разных баз данных. Мы ограничим наше обсуждение параметрами, которые касаются хостов и поиска адресов IP.
Опции в nsswitch.conf должны располагаться на отдельных строках. Поля разделяются пробелами или табуляцией. Знак # как обычно определяет комментарий. Каждая строка описывает свой сервис. Первое поле в каждой строке задает имя базы данных, заканчивающееся двоеточием. База данных для преобразования адресов hosts. Связанная база данных, которая используется для преобразования имен сетей в адреса, networks.
Доступны следующие параметры: dns
Использовать Domain Name System (DNS), чтобы найти адрес. Это имеет смысл только для адресов машин, но не сетей. Этот механизм использует файл /etc/resolv.conf, который мы обсудим позже.
filesИскать локальный файл для хоста или имени сети и связанный адрес. Опция использует традиционные /etc/hosts и /etc/network.
nis или nisplusИспользовать Network Information System (NIS), чтобы найти адрес. NIS и NIS+ подробно рассмотрены в главе 13.
Порядок, в котором перечислены сервисы, определяет последовательность их опроса. Список порядка опроса находится в описании сервиса в файле /etc/nsswitch.conf. Сервисы опрашиваются слева направо, и по умолчанию опрос прекращается когда преобразование выполнено.
Простой пример спецификации баз данных host и network показан в примере 6-2.
Файл sys Файл sys расположенный
Файл sys содержит записи для каждого сервера, на который Вы передаете новости, и описание групп, которые Вы принимаете. Запись выглядит так (запись ME обозначает Ваш сайт):
ME:all/all:: |
site[/exclusions]:grouplist[/distlist][:flags[:cmds]] |
Записи могут быть продолжены на следующей строке, используя наклонную черту влево (\). Знак (#) обозначает комментарий.
siteЯвляется именем сервера к которому применяется запись. Обычно для этого выбирается имя UUCP-сервера. Должна быть запись для Вашего сервера, или Вы не будете получать статьи самостоятельно.
Специальное имя ME обозначает Ваш сервер. Запись ME определяет все локальные группы новостей. Статьи, не подходящие под определение строки ME, попадут в группу junk.
Так как C-News проверяет имена серверов в поле заголовка Path: на основе имен записей, Вы должны удостовериться, что они соответствуют действительности. Некоторые абоненты используют полное имя домена в этом поле или специальное, подобно news.site.domain. Чтобы предотвратить возврат статей к этому абоненту, Вы должны добавить их к списку исключения, отделяя их запятыми.
Для записи о машине moria поле имени сервера (site) содержало бы moria/moria.orcnet.org. Если moria также имеет псевдоним news.orcnet.org, поле site будет содержать moria/moria.orcnet.org,news.orcnet.org.
grouplistПредставляет собой разделенный запятыми список групп и иерархий для данного конкретного сервера. Иерархия может быть определена заданием префикса иерархии (comp.os для всех групп, чьи имена начинаются с этого префикса), необязательно сопровождаемого ключевым словом all (например, comp.os.all).
Иерархия или группа исключается из пересылки приписыванием восклицательного знака. Если группа новостей проверяется по списку, применяется самое длинное соответствие. Например, если grouplist содержит:
!comp,comp.os.linux,comp.folklore.computers |
Если сервер просит послать все новости, которые Вы получаете, впишите all в grouplist .
distlistСодержит список областей распространения, которым будут посланы статьи. Вы можете исключать некоторые области, ставя перед ними восклицательный знак. Все области обозначены all. Отсутствие distlist подразумевает рассылку всем.
Например, Вы можете использовать список all,!local, чтобы предотвратить рассылку новостей для локального использования отдаленному абоненту.
Обычно имеются по крайней мере две области: world, которая является часто заданным по умолчанию, используемым значением для случая, когда ничего не определено пользователем, и local. Могут иметься другие области. В заключение, имеются две области, используемые только C-News: это sendme и ihave, они используются для протокола sendme/ihave.
flagsЗдесь описывются некоторые параметры для feed. Их может не быть, или они могут быть комбинацией следующего: F
Этот флаг дает возможность пакетированию.
fПочти идентичен флагу F, но позволяет C-News вычислять размер исходящих пакетов более точно.
IЭтот флаг заставит C-News создать список статей, подходящих для использования ihave/sendme. Дополнительные изменения файлов sys и batchparms требуются, чтобы дать возможность работать ihave/sendme.
nЭто создает командные файлы для активных клиентов передачи NNTP (например, nntpxmit). Командные файлы содержат имя файла статьи наряду с id сообщения (см. главу 22).
LПредписывает C-News передать только статьи, зарегистрированные на Вашем сервере. Этот флаг может сопровождаться десятичным числом n, которое заставит C-News передать статьи, зарегистрированные только внутри n переходов с Вашего сервера. C-News определяет число переходов по полю Path:.
uРазрешить C-News принимать только статьи из групп unmoderated.
mРазрешить C-News принимать только статьи из групп moderated.
Вы можете использовать не больше одного из F, f, I или n.
cmdsЭто поле содержит команду, которая будет выполнена для каждой статьи, если пакетирование не допускается. Статья будет подана на стандартный ввод команды. Это должно использоваться для очень малых потоков, иначе нагрузка на обеих системах будет слишком высока.
Заданная по умолчанию команда:
uux - -r -z remote-system!rnews |
Она вызывает rnews на удаленной системе, подавая статью на стандартный ввод.
Заданный по умолчанию путь поиска для команд, заданных в этом поле, /bin:/usr/bin:/usr/lib/news/batch. Последний каталог содержит ряд команд оболочки, чьи имена начинается с via. Они будут кратко описаны позже в этой главе.
Если пакетирование допускается использованием флагов F, f, I или n, C-News ожидает найти в этом поле имя файла, а не команду. Если имя файла не начинается с наклонной черты вправо (/), оно воспринимается относительно /var/spool/news/out.going. Если поле пусто, то значение по умолчанию remote-system/togo.
При установке C-News Вам, возможно, придется написать собственный файл sys. Чтобы помочь Вам с этим, я даю типовой файл для vbrew.com ниже, с которого Вы могли бы скопировать то, в чем Вы нуждаетесь:
# We take whatever they give us. ME:all/all:: # We send everything we receive to moria, except for local and # brewery-related articles. We use batching. moria/moria.orcnet.org:all,!to,to.moria/all,!local,!brewery:f: # We mail comp.risks to jack@ponderosa.uucp ponderosa:comp.risks/all::rmail jack@ponderosa.uucp # swim gets a minor feed swim/swim.twobirds.com:comp.os.linux,rec.humor.oracle/all,!local:f: # Log mail map articles for later processing usenet-maps:comp.mail.maps/all:F:/var/spool/uumaps/work/batch |
Файлы active и newsgroups Файлы
Файлы active и newsgroups
Файлы active и newsgroups используются, чтобы сохранять и описывать группы, поддерживаемые этим сервером. Они вносят в список группы, в получении и поддержке которых заинтересован данный сервер, и административную информацию о них. Эти файлы обычно лежат в каталоге /var/lib/news.
Файл active определяет группы новостей, поддерживаемые данным сервером. Синтаксис у него простой. Каждая строка имеет четыре поля, разделенные пробелами:
name himark lomark flags |
Поле name задает имя группы. Поле himark определяет самый старший номер, который использовался для статьи в этой группе. Аналогично поле lomark задает младший номер. Чтобы проиллюстрировать, как это работает, рассмотрим пример. Допустим, что мы имеем недавно созданную группу: himark и lowmark в ней пока 0, потому что нет статей. Если послать 5 статей, они будут пронумерованы от 1 до 5. Теперь himark будет равняться 5, самому старшему номеру, а lowmark соответственно будет равен 1. Если статью 5 удалить, ничего не изменится; himark будет равен 5, чтобы гарантировать, что номер статьи не перераспределен, и lowmark останется в 1, самом младшем номере активной статьи. Если мы теперь отменяем статью 1, himark останется неизменяемым, но lowmark будет теперь равен 2, потому что 1 больше не активен. Если мы теперь регистрируем новую статью, ей будет назначенный номер 6, так что himark будет теперь равен 6. Статья 5 была использована, так что мы не будем переназначать этот номер. Значение lowmark остается в 2. Этот механизм позволяет нам легко распределять уникальные числа статьи для новых статей и вычислять приблизительно, как много активных статей находятся в группе: himark- lowmark.
Поле flags может иметь одно из следующих значений: y
Отправка статей непосредственно на этот сервер разрешена.
nОтправка статей непосредственно на этот сервер запрешена. Новые статьи могут быть получены только с других серверов. Программы работы с новостями непосредственно на этот сервер передать ничего не могут.
mГруппа модерируемая. Любые статьи будут посланы модератору для утверждения прежде, чем они войдут в группу. Больше всего немодерируемых групп новостей.
jСтатьи в этой группе не сохраняются, а только передаются. Это вызывает сервер новостей для приема статьи, но он только передаст ее следующему серверу транзитом. Он не будет делать статьи доступными программам чтения новостей (newsreaders) с этого сервера.
xСтатья не может быть послана в эту группу. Единственный путь, которым статья может сюда попасть, это прийти с другого сервера.
=foo.barМестные статьи регистрируются в группе ``foo.bar''.
В нашей простой конфигурации файл /var/lib/news/active выглядит так:control 0000000000 0000000001 y junk 0000000000 0000000001 y rec.crafts.brewing 0000000000 0000000001 y rec.crafts.brewing.ales 0000000000 0000000001 y rec.crafts.brewing.badtaste 0000000000 0000000001 y rec.crafts.brewing.brandy 0000000000 0000000001 y rec.crafts.brewing.champagne 0000000000 0000000001 y rec.crafts.brewing.private 0000000000 0000000001 y |
Файл newsgroups еще проще. Он обеспечивает однострочные описания для групп новостей. Некоторые программы способны читать и предоставлять эту информацию пользователям, чтобы помочь им решить, хотят ли они подписаться.
Формат файла newsgroups:
name description |
В данном случае мы хотим описывать группы, которые поддерживает наш сервер, так что напишем такой файл newsgroups:
rec.crafts.brewing.ales Home brewing Ales and Lagers rec.crafts.brewing.badtaste Home brewing foul tasting brews rec.crafts.brewing.brandy Home brewing your own Brandy rec.crafts.brewing.champagne Home brew your own Champagne rec.crafts.brewing.private The Virtual Brewery home brewers group |
Файлы настройки INN INN использует
Если Вы хотите узнать больше относительно свойств файлов конфигурации, Вы можете также обратиться к man-страницам: дистрибутив INN имеет индивидуальную man-страницу для каждого файла.
Файлы последовательных устройств
Младшие числа идентичны для обоих типов последовательных устройств. Если модем подключен к одному из портов от COM1 до COM4, младший номер будет номером COM-порта плюс 63. Если Ваша настройка отлична от этой, например, при использовании платы, поддерживающей множество последовательных линий, пожалуйста, обратитесь к Serial Howto.
Файлы последовательных устройств
Младшие числа идентичны для обоих типов последовательных устройств. Если модем подключен к одному из портов от COM1 до COM4, младший номер будет номером COM-порта плюс 63. Если Ваша настройка отлична от этой, например, при использовании платы, поддерживающей множество последовательных линий, пожалуйста, обратитесь к Serial Howto.
Предположим, что модем находится на COM2. Таким образом, младший номер будет 65, а старший номер для дозвона будет 4. Следовательно, должно быть устройство ttyS1, которое имеет этот номер. Просмотрите список последовательных устройств в каталоге /dev. Колонки 5 и 6 должны показать старшие и младшие номера соответственно:
$ ls -l /dev/ttyS* 0 crw-rw---- 1 uucp dialout 4, 64 Oct 13 1997 /dev/ttyS0 0 crw-rw---- 1 uucp dialout 4, 65 Jan 26 21:55 /dev/ttyS1 0 crw-rw---- 1 uucp dialout 4, 66 Oct 13 1997 /dev/ttyS2 0 crw-rw---- 1 uucp dialout 4, 67 Oct 13 1997 /dev/ttyS3 |
Если нет таких устройств, Вы должны создать их: войдите как пользователь root и наберите:
# mknod -m 666 /dev/ttyS1 c 4 65 # chown uucp.dialout /dev/ttyS1 |
Некоторые люди предлагают создание символической связи /dev/modem на устройство модема так, чтобы пользователи не должны были запоминать несколько не понятное ttyS1. Однако, Вы не можете использовать modem в одной программе, а реальное имя файла устройства в другой. Это потому, что программы используют так называемые файлы блокировки (lock files) для обозначения того, что устройство занято. Применение различных файлов устройства для того же самого порта приведет к тому, что программы окажутся не в состоянии распознать файлы блокировки для каждого имени и будут обращаться к устройству в одно и то же время. В результате, приложения не будут работать вообще.
Файлы sendmail cf и sendmail mc
Процесс конфигурации, в основном, вопрос создания подходящего файла sendmail.mc, который включает макрокоманды, описывающие желательную конфигурацию. Макрокоманды представляют собой выражения, которые макропроцессор m4 понимает и разворачивает в синтаксис файла sendmail.cf. Макровыражения составлены из макроимени (текст в заглавных буквах в начале), которое может быть уподоблено функции в языках программирования, и некоторых параметров (текст внутри скобок), которые используются в расширении. Параметры могут быть переданы буквально в генерируемый файл sendmail.cf или использоваться, чтобы управлять путем, которым происходит обработка данной макрокоманды в подготовленном файле sendmail.mc.
Файл sendmail.mc для минимальной конфигурации (UUCP или SMTP со всей нелокальной почтой, передаваемой на непосредственно связанный интеллектуальный хост (smart host), может быть длиной всего в 10 или 15 строк, исключая комментарии.
Файлы services и protocols Номера
Здесь service задает имя сервиса, port определяет номер порта, используемого этим сервисом, а protocol определяет, каким транспортным протоколом пользуется сервис. Имеется возможность различия протоколов udp или tcp. Сервис может работать с разными протоколами, а может быть два сервиса работают на одном порте, но с разными протоколами. Поле aliases позволяет задавать несколько имен (псевдонимов) для одного сервиса.
Обычно, Вы не должны менять файл сервисов в Вашей Linux-системе. Однако, я даю пример такого файла на всякий случай.
FEATURE Макрокоманда FEATURE позволяет
FEATURE
Макрокоманда FEATURE позволяет включить предопределенные свойства sendmail в Вашу конфигурацию. Эти свойства sendmail делают конфигурации очень простыми в использовании. Имеется большое количество свойств, и я расскажу о наиболее полезных и важных. Вы можете узнать подробности о свойствах из файла CF в пакете исходных текстов.
Чтобы использовать любое из перечисленных свойств, Вы должны включить в Ваш sendmail.mc строку наподобие:
FEATURE(name) |
FEATURE(name, param) |
Где взять код
Последние устойчивые ядра Linux могут быть найдены на
ftp.kernel.org в каталоге /pub/linux/kernel/v2.x , где x четное число. Последние экспериментальные ядра Linux могут быть найдены на
ftp.kernel.org в каталоге /pub/linux/kernel/v2.y , где y нечетное число. Есть зеркала этого сайта по всему миру.
Где взять код
Последние устойчивые ядра Linux могут быть найдены на
ftp.kernel.org в каталоге /pub/linux/kernel/v2.x , где x четное число. Последние экспериментальные ядра Linux могут быть найдены на
ftp.kernel.org в каталоге /pub/linux/kernel/v2.y , где y нечетное число. Есть зеркала этого сайта по всему миру.
Настройка последовательного
Эта глава написана для тех людей, кто полагается на модемы для доступа в сеть. Однако, существует много деталей, в которые мы не будем вдаваться, например, как конфигурировать модем. Все эти темы охвачены в Serial HOWTO (автор David Lawyer), который регулярно отправляется в конференцию comp.os.linux.announce. Зато мы рассмотрим специфичные для Linux аспекты управления устройствами, работы с портами, создание файлов устройств, программы для работы с модемом, последовательное оборудование и его настройку командами setserial и stty.
Настройка сервера имен
С другой стороны Вы можете использовать BIND ( Berkeley Internet Name Domain) для перевода имен хостов в IP-адреса. Конфигурация BIND может быть сложной задачей, но если только Вы сделаете это, то изменения в сетевой топологии могут быть легко отслежены. На Linux, как и на многих других Unix-подобных cистемах, сервис обеспечивается через программу, называемую named. При запуске эта программа загружает множество основных файлов в собственный кэш и ждет запрос от удаленных или локальных пользовательских процессов. Имеющиеся способы требуют, чтобы Вы обязательно ввели имя сервера для каждого хоста.
Serial Line IP (IP на
Сравнительно низкая цена медленных dialup-модемов и телефонных схем сделали протоколы IP на последовательных линиях очень популярными, особенно для обеспечения связи конечным пользователям Internet. Аппаратные средства, требуемые, чтобы выполнить SLIP или PPP, просты и легко доступны. Все, что требуется, модем и последовательный порт, оборудованный FIFO-буфером.
Протокол SLIP очень прост и некоторое время был наиболее используемым. Сегодня почти каждый вместо него применяет протокол PPP. Он добавляет ряд полезных свойств, которые сегодня стали важными.
Linux поддерживает драйверы ядра для SLIP и PPP. Драйверы довольно долго отлаживались, благодаря чему устойчивы и надежны. В этой и следующей главах мы обсудим оба протокола и как их конфигурировать.
Протокол PointtoPoint
В самой основе PPP лежит управление передачей данных высокого уровня, сокращенно HDLC (High-Level Data Link Control), которое определяет границы структур PPP и обеспечивает 16 разрядов контрольной суммы. В противоположность более примитивному оформлению SLIP-пакета, PPP способен к захвату блоков из других протоколов таких, как IP, IPX Novell или Appletalk. PPP достигает этого, добавляя область протокола к основному HDLC.
Протокол управления связью LCP (Link Control Protocol) используется на вершине HDLC для согласования опций, имеющих отношение к каналу связи типа Maximum Receive Unit (MRU), которая заявляет максимальный размер пакета одной стороны связи.
Важный шаг в конфигурации связи PPP, организация клиентской авторизации. Хотя это необязательно, но для dial-up линий должно быть сделано. Обычно вызываемый хост просит клиента зарегистрировать себя, доказывая, что он знает секретный ключ. Если клиент набрал неправильный ключ, связь будет прервана. С PPP авторизация работает обоими способами. То есть, вызывающий может также просить, чтобы сервер опознал себя. Эти процедуры установления подлиности не зависят друг от друга. Имеются два протокола для различных типов авторизации, которые мы обсудим позже. Они называются "протокол установления подлинности пароля" или PAP (Password Authentication Protocol) и CHAP (Challenge Handshake Authentication Protocol).
Каждый сетевой протокол, который использует канал связи подобно IP, AppleTalk и т.д., может быть сконфигурирован динамически, используя Network Control Protocol (NCP). Например, чтобы послать IP-пакет, оба PPP-абонента должны сначала обсудить, какой из IP-адресов каждый из них использует. Протокол управления, используемый для этого, Internet Protocol Control Protocol (IPCP).
Помимо посылки IP-пакетов PPP также поддерживает Van Jacobson header compression IP-пакетов. Это метод для того, чтобы сократить заголовки TCP-блоков всего до трех байтов. Это также используется в CSLIP и относится к VJ header compression. Использование сжатия может быть задано во время запуска через IPCP.
Управление Taylor UUCP
Однако, как это случилось с большинством программного обеспечения, которое так или иначе стало "стандартом" за эти годы, нет такого UUCP, который можно было бы назвать подлинным UUCP. Он подвергался постепенному процессу эволюции, начиная с первой версии, которая была разработана в 1976. В настоящее время имеются две основных разновидности, которые отличаются в основном поддержкой аппаратных средств и конфигурацией. Кроме них существуют различные реализации, немного отличающиеся деталями.
Одна разновидность, это так называемая Версия 2 UUCP (Version 2 UUCP), которая датируется 1977 годом и реализована Mike Lesk, David A. Novitz и Greg Chesson. Она все еще используется, хотя и устарела. Недавние реализации Версии 2 обеспечивают многие из возможностей более новой разновидности UUCP.
Вторая разновидность была разработана в 1983 и обычно упоминается как BNU (Basic Networking Utilities, базисные утилиты работы с сетями), HoneyDanBer UUCP или HDB для краткости. Название получено из имен авторов: P. Honeyman, D. A.Novitz, и B. E. Redman. HDB был задуман, чтобы устранить некоторые из неточностей Версии 2 UUCP. Например, были добавлены новые протоколы передачи, и буферный каталог был переделан так, что теперь имеется каталог для каждого компьютера, с которым Вы связываетесь через UUCP.
Реализация UUCP, в настоящее время распространяемого с Linux, Taylor UUCP 1.06, является версией, которую описывает эта глава. Версия Taylor UUCP 1.06 была выпущена в августе 1995. Кроме традиционных файлов конфигурации Taylor UUCP может быть скомпилирована так, чтобы понимать новый стиль "Taylor-файлы конфигурации".
В большинстве дистрибутивов Linux Taylor UUCP обычно компилируется совместимым с BNU или Taylor-схемой конфигурации, или с обоими. Так как последний намного более гибок и, возможно, проще для понимания, чем довольно часто запутанные файлы конфигурации BNU, ниже я буду описывать схему Taylor.
Цель этой главы не в том, чтобы дать исчерпывающее описание опций командной строки для команд UUCP, а в том, чтобы дать Вам введение в установку работающего узла UUCP. Первый раздел дает введение в то, как UUCP осуществляет удаленное выполнение и передачу файла. Если Вы не новичок в UUCP, Вы можете пропустить этот раздел и перейти к разделу "Файлы настройки UUCP", который объясняет различные файлы, используемые для установки UUCP.
Считается, что Вы знакомы с пользовательскими программами набора программ UUCP uucp и uux. За описанием обратитесь, пожалуйста, к их man-страницам.
Кроме общедоступных программ uucp и uux набор программ UUCP содержит ряд команд, используемых только для административных целей. Они используются для контроля трафика UUCP через узел, удаления старых регистрационных файлов, или для обработки статистики. Они не будут описаны здесь, потому что они периферийные к основным задачам UUCP. Кроме того, они хорошо документированы и довольно легки для понимания. Однако, имеется третий класс, который включает рабочие программы UUCP. Они называются uucico (где cico обозначает copy-in copy-out) и uuxqt, которая выполняет работы, посланные из удаленных систем.
Если Вы в этой главе не найдете то, что хотите, прочитайте документацию, которая поставляется с пакетом. Это набор texinfo-файлов, которые описывают установку с использованием Taylor-схемы конфигурации. Texinfo может быть преобразован в dvi файлы информации, используя команду texi2dvi. Для просмотра служит xdvi.
Хорошим источником сведений по UUCP является Guylhem Aznar's UUCP-HOWTO. Он есть на зеркалах Linux Documentation Project и регулярно рассылается в группу новостей comp.os.linux.answers.
Для обсуждения вопросов по UUCP есть специальная группа новостей comp.mail.uucp.
Sendmail Локальное оглавление
Введение в Sendmail
Иногда говорят, что Вы не настоящий администратор системы Unix, пока не редактировали файл sendmail.cf. Также принято говорить, что Вы сумасшедший, если попытаетесь сделать это несколько раз.
sendmail невероятно мощная программа. Также для большинства людей ее невероятно трудно узнавать и понимать. Любая программа, чье окончательное руководство (sendmail, издано O'Reilly and Associatеs) состоит из 1050 страниц, отпугивает многих.
К счастью, новые версии sendmail сильно отличаются. В них уже не надо редактировать всегда загадочный файл sendmail.cf. Здесь есть утилита настройки, которая создает sendmail.cf из макросов и позволяет администратору определять пункт-специфическую маршрутизацию и конфигурацию адресации через относительно простые для понимания файлы поддержки, называемые таблицами. Это основано на стандартной Unix-утилите m4, обрабатывающей сложные макросы.
Здесь я рассмотрю sendmail, как его настроить, поставить и протестировать.
NNTP и nntpd Daemon Локальное
Различные команды позволяют клиентам принимать, посылать и отправлять по почте статьи. Различие между посылкой и отправкой в том, что последняя может включать статьи с незавершенной информацией заголовка. Поиск статьи может использоваться клиентом передачи новостей также, как программами чтения (newsreaders). Это делает NNTP превосходным средством для обеспечения доступа к новостям клиентам в локальной сети без применения NFS.
NNTP также обеспечивает активый и пассивный способы передачи новостей, которые называются "pushing" и "pulling". Выталкивание (pushing), в основном, представляет собой то же самое, что и C-News протокол ihave/sendme, который рассмотрен в главе 21). Клиент предлагает статью серверу через IHAVE msgid, а сервер возвращает код ответа, который указывает, имеет ли он уже эту статью, или она требуется. В последнем случае, клиент посылает статью, завершенную одиночной точкой в отдельной строке.
Выталкивание новостей имеет один недостаток: оно вызывает значительную загрузку сервера, так как он должен искать в базе данных хронологий каждую конкретную статью.
Противоположная методика: перемещать (pulling) новости. Клиент запрашивает список всех доступных статей группы, которые прибыли после заданной даты. Этот запрос выполняется командой NEWNEWS. Из возвращенного списка сообщений, клиент выбирает те статьи, которые он еще не имеет, используя команду ARTICLE для каждой из них.
Проблема с перемещением новостей состоит в том, что требуется хорошее управление сервером, которое позволяет клиенту запрашивать группы и распределения. Например, оно должно гарантировать, что никакой конфиденциальный материал из локальных групп не будет послан несанкционированной клиентуре.
Имеется также ряд команд для newsreaders, которые разрешают им отыскивать заголовок и тело статьи отдельно или даже находтьь коекретные строки заголовка из набора статей. Это дает возможность хранить все новости на центральной машине, используя nntp-основанные клиентские программы для чтения и регистрации. Это альтернатива экспорту каталогов новостей через NFS, который описан в главе 21.
Полная проблема NNTP состоит в том, что он позволяет хорошо осведомленному специалисту вставлять статьи в поток новостей с ложной спецификацией отправителя. Это называется news faking или spoofing. Расширение NNTP позволяет требовать установления подлинности пользователя для некоторых команд.
Имеется ряд доступных пакетов NNTP. Один из наиболее широко известных: NNTP daemon. Первоначально, он был написан Stan Barber и Phil Lapsley, чтобы проиллюстрировать подробности RFC-977. Вы можете найти его в большинстве дистрибутивов Linux, а также получить исходники и откомпилировать их.
Пакет nntpd состоит из сервера и двух клиентов для перемещения и выталкивания новостей, соответственно, и свою версию программы inews. Они живут в среде B-news, но с небольшими дополнениями, они будут работать с C-news. Однако, если Вы планируете использовать NNTP больше, чем для доступа newsreaders к серверу новостей, эта реализация недостаточна. Мы обсудим только NNTP daemon, содержащийся в пакете nntpd и не будем останавливаться на клиентских программах.
Если Вы желаете использовать большой сайт новостей, Вы должны рассмотреть пакет InterNet News (INN), который был написан Rich Salz. Этот пакет обеспечивает NNTP и UUCP-доставку новостей, что определенно лучше, чем nntpd. INN подробно рассматривается в главе 23.
Глобальные параметры
Есть ряд параметров INN, которые являются глобальными для всех групп новостей.
Глобальные параметры
Есть ряд параметров INN, которые являются глобальными для всех групп новостей.
Hoststat Команда hoststat отображает
hoststat
Команда hoststat отображает информацию относительно состояния хостов, которым sendmail попытался доставить почту. Вызов hoststat эквивалентен вызову:
sendmail -bh |
Вывод представляет каждый хост на своей строке, и для каждого указывается время доставки почты и ее состояние.
Пример 18-6 показывает образец вывода команды hoststat. Обратите внимание на то, что большинство результатов указывают на успешную доставку. Результат для earthlink.net, с другой стороны, указывает на то, что доставка была неудачна. Сообщение состояния может иногда помочь определить причину сбоя. В этом случае, подключение было закрыто по окончании тайм-аута потому, что хост был выключен или недоступен.
Интерфейс bml
Программа bml является стандартной для абонентов сети Relcom. Она входит в комплект версии для пользователей MS-DOS и имеется во многих Unix-системах сети. Для лучшей наглядности лучше обратиться к рисунку 3.4.
Интерфейс elm
Наиболее распространенной программой работы с почтой в Unix-системах является программа elm. Elm также, как и bml, является полноэкранным почтовым интерфейсом. Запуск программы осуществляется по команде elm:
elmНа экране появляется сообщение о версии системы, список полученных сообщений и список команд, которыми может воспользоваться пользователь. Следует обратить внимание на то, что некоторые версии elm способны подстраиваться под размер экрана автоматически. Пример экрана elm представлен на рисунке 3.8.
Интерфейс Eudora
Интерфейс Eudora является одним из множества почтовых интерфейсов, ориентированных на работу с почтой Internet из системы MS-Windows. На примере этого интерфейса мы рассмотрим типичные проблемы, которые возникают у пользователей персональных компьютеров при подключении к почтовому сервису Internet, и пути их решения.
Первой проблемой является тот факт, что компьютер выключается из сети на время отсутствия пользователя. Это значит, что в это время прием почтовых сообщений не производится. Следовательно, вся почта должна хранится на почтовом сервере и получаться пользователем по его запросу. При работе с Unix об этом заботится программа sendmail, в MS-Windows такой программы нет (точнее есть, но она не ориентирована на Internet). Поэтому обычно применяется следующая схема (рисунок 3.9):
Интерфейс mail
Самая простая и самая распространенная программа подготовки и отправки почты - это программа mail или ее аналог mailx. Для большинства современных пользователей mail покажется архаизмом времен, когда полноэкранные и графические интерфейсы еще не были даже задуманы. Однако, попробовать mail имеет смысл, т.к. ограничения mail на размер файлов не столь жесткие как в полноэкранных интерфейсах типа bml и принцип работы программы более прозрачен, чем принципы работы ее современных аналогов. Для отправки почты самому себе следует набрать следующую строку:
mail paulВ качестве paul укажите свой почтовый адрес. В ответ программа выдаст предложение ввести сообщение:
Subject:Если это тестовое сообщение, лучше всего ввести слово "test". Теперь программа перейдет на следующую строку и будет ждать текста сообщения. Следует учесть, что при редактировании в mail можно использовать только стирание стоящей перед курсором буквы и только в пределах текущей строки. Если пользователь нажал клавишу Enter, то весь текст выше текущей строки недоступен для редактирования. Пусть сообщение будет состоять из одной фразы:
This is a test message.Для завершения ввода сообщения следует нажать Cntrl+D, что означает конец ввода. После этого сообщение будет отправлено. Окончить ввод сообщения можно и другим способом - ввести строку, которая содержит только символ "." в первой позиции.
Прочитать его можно выполнив программу mail без аргумента:
mailВ этом случае на экране появится что-то вроде:
Mail version 5.5 6/1/90. Type ? for help "/var/mail/paul": 1 message 1 new >N 1 paul Sun Feb 5 15:21 11/246 &Первая строка указывает на версию программы, вторая строка показывает место почтового ящика пользователя и количество сообщений в нем, при этом указывается отдельно число новых сообщений. Третья строка - это начало списка полученных почтовых сообщений. Буква "N" в начале строки указывает на то, что это новое сообщение, "1" - номер по порядку в почтовом ящике, paul - адрес отправителя, "Sun Feb 5 15:21" - дата и время отправки сообщения, "11/246" - указывает на число строк в сообщении и число байтов, которые составляют сообщение. Для просмотра сообщения следует просто нажать Enter. На экране появится:
Message 1: From paul Sun Feb 5 15:21:57 1995 Date: Sun, 5 Feb 95 15:21:57 -0700 From: paul To: paul Subject: test This is a test message. &Как можно заметить, текст сообщения содержит дополнительную информацию, которая была добавлена программами рассылки и называется заголовком почтового сообщения. Заголовок отделен от сообщения пустой строкой. Из заголовка можно понять, кто и когда отправил сообщение.
Фактически, mail без аргументов просматривает почтовый ящик пользователя. Если в нем находятся другие сообщения, отличные от тестового сообщения пользователя, то это значит, что к пользователю пришла почта от других пользователей сети, или программ. Для прекращения просмотра сообщений, следует после знака "&" ввести символ "q".
Для отправки файла программой mail следует указать этот файл в качестве файла стандартного ввода:
mail paul < file.inВ этом случае файл будет немедленно отправлен адресату.
Следует заметить, что от системы к системе синтаксис команды mail может незначительно меняться. Так, в системе HP/UX 9.0, mail не предлагает ввести тему сообщения, аналогично ведет себя mail и системе BSDI/386 0.9. Однако mailx из HP/UX 9.0 практически аналогична mail из BSDI/386 0.9. В любом случае имеет смысл обратиться к руководству по командам операционной системы.
Важным моментом при использовании mail является его использование в качестве фильтра:
uuencode test.exe test.exe | mail paul@quest.polyn.kiae.suВ приведенном выше примере бинарный файл test.exe предварительно кодируется программой uuencode в файл ASCII, а затем отправляется пользователю paul на машине quest.polyn.kiae.su.
Рассмотрим теперь более современные интерфейсы подготовки почтовых сообщений bml и elm. Обе эти программы подготовки почты работают в режиме полноэкранных интерфейсов.
Internet Protocol
Конечно, Вы не хотели бы, чтобы Ваша сеть ограничивалась только Ethernet. В идеале хотелось бы использовать сеть независимо от того, какими аппаратными средствами это достигается. Например, в больших сооружениях (Groucho Marx) Вы обычно имеете набор отдельных Ethernet, которые должны быть связаны некоторым образом. В GMU в математическом отделе используются два Ethernet: одна сеть быстрых машин для профессоров и студентов последних курсов и другая с медленными машинами для студентов (обе связаны с FDDI).
Internet Protocol
Конечно, Вы не хотели бы, чтобы Ваша сеть ограничивалась только Ethernet. В идеале хотелось бы использовать сеть независимо от того, какими аппаратными средствами это достигается. Например, в больших сооружениях (Groucho Marx) Вы обычно имеете набор отдельных Ethernet, которые должны быть связаны некоторым образом. В GMU в математическом отделе используются два Ethernet: одна сеть быстрых машин для профессоров и студентов последних курсов и другая с медленными машинами для студентов (обе связаны с FDDI).
Эта связь управляется специальным хостом, так называемым gateway, который направляет поступающие и исходящие пакеты, копируя их между двумя Ethernet и FDDI. Например, если Вы в математическом отделе и хотите получить доступ к машине quark в локальной сети физического отдела, сетевое программное обеспечение не может послать пакеты непосредственно quark, потому что он находится на другом Ethernet. Поэтому этим занимается gateway. Gateway (назовем его sophus) посылает эти пакеты другому gateway (niels) в отделе физики, niels же отправляет их на требуемую машину.
Эта схема направления данных удаленному хосту называется маршрутизацией (routing), а пакеты часто называют дэйтаграммами (datagrams). Для простоты обмен дэйтаграммами управляется в соответствии c отдельным протоколом, который является независимым от используемых аппаратных средств: IP или Internet Protocol. В главе 2 мы будем рассматривать IP и routing более подробно.
Основное преимущество IP в том, что он преобразует физически несовместимые сети в одну с виду однородную сеть. Это называется internetworking, в результате получаем "метасеть" называемую internet. Обратите внимание на различие между inetrnet и Internet! Последнее является официальным названием одного специфического глобального inetrnet.
Конечно, IP также требует машинонезависимой схемы адресации. Это достигается с помощью назначения каждому хосту уникального номера размером в 32 бита, названного IP-адресом (IP address). IP-адрес обычно пишется как четыре десятичных числа для каждой 8-битовой части, разделенных точками. Например, quark мог бы иметь IP-адрес 0x954C0C04, который будет записан как 149.76.12.4. Этот формат также назван dotted decimal notation или dotted quad notation, в общем, формат записи с точками. Это известно под именем IPv4 (Internet Protocol, Version 4), потому что новый стандарт IPv6 предлагает намного более гибкую адресацию и другие современные свойства. Но новый стандарт IPv6 войдет в повсеместное использование еще очень не скоро...
Теперь мы имеем три различных типа адресов: имя хоста, например quark, IP-адрес и, наконец, адреса аппаратных средств, например, Ethernet-адрес с 6 байтами. Все они так или иначе соответствуют друг другу, так что, когда Вы пишете rlogin quark, программное обеспечение находит его IP-адрес. Когда IP пересылает данные в Ethernet отдела физики, так или иначе по IP-адресу выясняется Ethernet-адрес.
Мы не будем здесь вдаваться в подробности этого процесса, а сделаем это в главе 2. Пока достаточно помнить, что эти шаги называются hostname resolution, поиск IP-адреса по имени хоста, и address resolution, поиск физического адреса по IP.
Интерпретация и написание правил
Каждое правило имеет левую и правую стороны, отделяемые по крайней мере одним символом табуляции. Когда sendmail обрабатывает почту, он просматривает правила в поисках соответствия на левой стороне. Если адрес соответствует левой стороне правила, он будет заменен правой стороной и обработан снова.
Интерпретация правил в нашем примере
Интерпретация правил в нашем примере
В примере 18-3
использована макрокоманда LOCAL_NET_CONFIG, чтобы объявить локальное правило, которое гарантирует, что любая почта внутри нашего домена будет доставлена непосредственно, используя транспорт smtp. Теперь, когда мы рассмотрели, как строятся правила, мы сможем понять, как это правило работает. Давайте возьмем другой пример, чтобы рассмотреть этот процесс.
IP на последовательных линиях
Здесь стандартом является SLIP (Serial Line IP) или IP для последовательных линий. Есть модификация CSLIP (сжатый SLIP, Compressed SLIP), который использует сжатие IP-заголовков, чтобы оптимизировать IP для относительно низкой пропускной способности последовательной связи. PPP или протокол Point-to-Point Protocol еще один протокол для последовательных линий. PPP имеет большее число возможностей, чем SLIP, включая стадии переговоров о начале связи. Его главное преимущество по сравнению со SLIP в том, что он не ограничивается только транспортировкой IP-пакетов, а предназначен для передачи любого типа дэйтаграм.
IP на последовательных линиях
Здесь стандартом является SLIP (Serial Line IP) или IP для последовательных линий. Есть модификация CSLIP (сжатый SLIP, Compressed SLIP), который использует сжатие IP-заголовков, чтобы оптимизировать IP для относительно низкой пропускной способности последовательной связи. PPP или протокол Point-to-Point Protocol еще один протокол для последовательных линий. PPP имеет большее число возможностей, чем SLIP, включая стадии переговоров о начале связи. Его главное преимущество по сравнению со SLIP в том, что он не ограничивается только транспортировкой IP-пакетов, а предназначен для передачи любого типа дэйтаграм.
IPX и Linux Alan Cox разработал
Сегодня Linux поддерживает широкий набор сервисов, которые позволяют системам быть интегрированными с существующими Novell-сетями.
Использование файлов Options Прежде
Первый файл опций /etc/ppp/options, который всегда просматривается тогда, когда запускается pppd. Использование его для установки глобальных значений по умолчанию удобно потому, что это позволит Вам избавить пользователей от выполнения нескольких вещей, которые могут поставить под угрозу защиту. Например, чтобы pppd запросил конкретный тип авторизации (PAP или CHAP), Вы бы добавили опцию auth к этому файлу. Эта опция необходима для того, чтобы стало невозможно установить PPP-связь с любой системой, которая не в наших опозназательных базах данных. Помните, что ряд опций может быть перехвачен, например, строка connect.
Другой файл опций, который читается после /etc/ppp/options, .ppprc в домашнем каталоге пользователя. Он позволяет каждому пользователю точно определить собственное множество опций по умолчанию.
Типовой файл /etc/ppp/options мог бы выглядеть следующим образом:
# Global options for pppd running on vlager.vbrew.com lock # use UUCP-style device locking auth # require authentication usehostname # use local hostname for CHAP domain vbrew.com # our domain name |
Первые две из этих опций относятся к авторизации и будут объяснены ниже. Ключевое слово блокировки (lock) заставит pppd уступить стандарту UUCP метод блокировки устройства. Там каждый процесс, который обращается к последовательному устройству, скажем /dev/ttyS3, создает файл блокировки, названный LCK..ttyS3 в UUCP-катологе, чтобы сообщить, что это устройство находится в использовании. Необходимо предохранить любые другие программы типа minicom или uucico от использования этого локального устройства в то время, как используется PPP.
Причина задания этой опции в глобальном конфигурационном файле то, что опции типа тех, что были показанны выше, не могут быть отменены и обеспечивают приемлемый уровень защиты. Заметьте однако, что некоторые опции могут быть отменены позже. Один такой пример: строка connect. Следующие три опции связаны с авторизацией и, следовательно, защиты системы. Опции безопасности лучше всего поместить в этот файл потому, что они "привелигированные" и не могут быть перекрыты в пользовательских файлах ~/.ppprc.
Использование интеллектуальных хостов (Smart Host)
Иногда компьютер находит почту, которую не может доставить непосредственно компьютеру-адресату. Часто удобно иметь один компьютер в сети, который занимается проблемами рассылки почты на другие системы.
Использование интеллектуальных хостов (Smart Host)
Иногда компьютер находит почту, которую не может доставить непосредственно компьютеру-адресату. Часто удобно иметь один компьютер в сети, который занимается проблемами рассылки почты на другие системы.
Такой подход упрощает настройку. Вы можете упростить управление при наличии только одного компьютера со всесторонней конфигурацией почты, которая знает, как обработать типы транспорта почты, например UUCP, Usenet и прочие. Все остальные компьютеры нуждаются только в одном транспорте для передачи писем на этот центральный хост. Хосты, которые выполняют центральную маршрутизацию почты названы интеллектуальными хостами (smart hosts). Если Вы имеете такой хост, который примет Вашу почту, то можете смело обрушить на него весь поток писем: разберется.
Еще одним применением такого хоста является протаскивание почты через частный firewall. Часто встречаются сети, в которых используются недействительные IP-адреса. Такие сети подключаются к Internet через firewall. Прямая отправка почты из такой сети невозможна: машины в ней не могут работать по SMTP в Internet непосредственно. Вместо этого можно оснастить firewall интеллектуальной почтовой функцией. Интеллектуальный хост способен установить прямые сетевые подключения с компьютерами в частной сети и в Internet. Заодно он поработает маршрутизатором, пересылая входящую почту на внутренние машины.
Интеллектуальные компьютеры обычно используются, когда все другие методы доставки непригодны. В случае организации с частной сетью было бы разумно, чтобы машины в сети сначала попробовали доставить почту сами, и если это невозможно, обратились бы к интеллектуальному хосту. Это избавляет его от лишнего внутреннего трафика.
Пакет sendmail обеспечивает простой метод конфигурирования интеллектуальных хостов, использующий свойство SMART_HOST;
define(`SMART_HOST', `uucp-new:moria') LOCAL_NET_CONFIG # This rule ensures that all local mail is delivered using the # smtp transport, everything else will go via the smart host. R$* < @ $* .$m. > $* $#smtp $@ $2.$m. $: $1 < @ $2.$m. > $3 |
Макрос SMART_HOST позволяет Вам определять хост, которому надо передать всю почту, которую не получается доставить самому, и протокол транспортировки почты, используемый для этих целей.
В нашей конфигурации мы используем транспорт uucp-new для передачи на UUCP-хост moria. Если бы мы хотели конфигурировать sendmail, чтобы использовать интеллектуальный хост с поддержкой SMTP, надо было бы написать следующее:
define(`SMART_HOST', `mail.isp.net') |
Давайте подумаем, что сделают правило переписки и макрос LOCAL_NET_CONFIG.
Макрос LOCAL_NET_CONFIG позволяет добавлять к Вашей конфигурации правила sendmail, которые определяют, какая почта должна остаться внутри локальной системы. В нашем примере, мы использовали правило, которое соответствует любому адресу e-mail, где компьютер принадлежит нашему домену (.$m.), и почта будет переслана на него напрямую по SMTP. Это гарантирует, что любое сообщение для компьютера в нашей локальной сети будет направлено немедленно к SMTP-транспорту и послано на тот компьютер до того, как свалиться на наш интеллектуальный хост, который является заданной по умолчанию стратегией обработки.
Использование ipfwadm
Команда ipfwadm представляет собой инструмент конфигурации для второго поколения Linux IP firewall. Возможно, самый простой способ описывать использование команды ipfwadm это примеры. Начнем с примера сети.
Использование ipfwadm
Команда ipfwadm представляет собой инструмент конфигурации для второго поколения Linux IP firewall. Возможно, самый простой способ описывать использование команды ipfwadm это примеры. Начнем с примера сети.
Использование карт passwd и group
При доверии к информации о паролях, распределенной NIS, Вы сначала должны удостовериться, что числовые идентификаторы пользователей в локальном файле passwd соответствуют представлениям сервера NIS по этому вопросу. Непротиворечивость важна и для других целей, подобно установке NFS.
Если любой из числовых идентификаторов в /etc/passwd или /etc/group отличается от своего значения в картах, надо исправлять ситуацию с правами доступа. Сначала Вы должны изменить все uid и gid в файлах passwd и group на новые значения, затем поменять владельцев у объектов, принадлежащих пользователям, идентификаторы которых Вы сменили. Допустим, news имеет идентификатор 9, а okir имел идентификатор (user ID) 103, но теперь он сменился на что-то другое. Скомандуйте от имени root:
# find / -uid 9 -print >/tmp/uid.9 # find / -uid 103 -print >/tmp/uid.103 # cat /tmp/uid.9 | xargs chown news # cat /tmp/uid.103 | xargs chown okir |
Важно выполнить эти команды при установленном новом файле passwd, и собрать все имена файлов перед сменой их владельца. Чтобы модифицировать группу владельца, используйте подобный метод с gid вместо uid и chgrp вместо chown.
Теперь числовые идентификаторы на Вашей машине приведены в соответствие с остальной сетью. Следующим шагом надо добавить строки в nsswitch.conf, которые поиск через NIS данных о пользователе и группе:
# /etc/nsswitch.conf - passwd and group treatment passwd: nis files group: nis files |
Это воздействует на команду login и все остальные, которые собирают данные о пользователе. Когда пользователь пробует войти, login сначала запрашивает карту NIS, и в случае провала идет обратно к локальным файлам. Обычно Вы удаляете почти всех пользователей из локальных файлов и оставляете входы только для root и универсальные логины, подобно mail. Это потому, что некоторым жизненным задачам системы, вероятно, придется отображать uid к именам. Например, административные работы cron могут выполнить команду su, чтобы временно стать пользователем news, или подсистема UUCP может послать отчет о состоянии. Если news и uucp не имеют записей в локальном файле passwd, эти работы будут терпеть неудачу.
Наконец, если Вы используете любую старую реализацию NIS (поддерживаются режимом compat для файлов passwd и group в реализациях NYS или glibc), Вы должны вставить специальные записи. Они представляют, где полученные записи NIS будут вставлены в базу данных информации. Они могут добавляться в любом месте, но обычно добавляются только к концу. Записи для добавления к файлу /etc/passwd:
+:::::: |
+::: |
В glibc 2.x и NYS Вы можете отменять параметры в пользовательских записях, полученных от сервера NIS созданием записей со знаком "+" перед именем пользователя и исключать указанных пользователей добавлением перед их именами знака "-". Например, записи:
+stuart::::::/bin/jacl -jedd:::::: |
Еть две проблемы. Во-первых, приведенная здесь настройка не использует затенение паролей, а стоило бы. Сложность использования теневых паролей с NIS обсуждается ниже. Во-вторых, команда login не единственная, которой нужен файл passwd: есть часто используемая команда ls. При построении широкого вывода она отображает имена владельца файла и его группы. Значит, для каждого uid и gid будет послан запрос на сервер NIS. Это снижает производительность.
Но представим, что пользователь решил сменить пароль. Обычно он вызывает команду passwd, которая читает новый пароль и обновляет локальный файл passwd. Это невозможно с NIS, так как этот файл больше не доступен локально. NIS обеспечивает замену passwd по имени yppasswd, которая обрабатывает смену пароля через NIS. Для изменения пароля на сервере эта утилита связывается с yppasswdd daemon на сервере по RPC и передает ему требуемую информацию. Обычно Вы устанавливаете yppasswd вместо нормальной программы:
# cd /bin # mv passwd passwd.old # ln yppasswd passwd |
В то же самое время, Вы должны установить rpc.yppasswdd на сервере и запускать его из скрипта для инициализации сети.
Использование результатов IP Accounting
Команды ipfwadm, ipchains и iptables отличаются по тому, как обрабатываются собираемые данные, так что мы рассмотрим их независимо.
Использование скрипта для автоматического
Хорошая альернатива для этого expect, написанная Don Libes. Она имеет очень мощный язык, основанный на Tcl, и была разработана для этого типа приложений. Именно ее стоит использовать в случае длинного и сложного процесса входа в систему.
Программа chat позволяет Вам определить скрипт в стиле UUCP. В основном скрипт состоит из последовательности чередующихся строк, которые ожидается получить от удаленной системы, и ответов, которые мы должны ей послать. Мы будем называть expect и send строки, соответственно для приема и передачи. Типичная часть chat-скрипта:
ogin: b1ff ssword: s3| |
Он сообщает chat, что нужно ждать ответ удаленной системы с запросом имени пользователя (login prompt) и вернуть ей в ответ имя b1ff. Мы ждем только ogin: таким образом, не имеет значения с символа в верхнем или нижнем регистре начинается запрос, или он приходит искаженным. Следующяя строка заставит chat ждать запрос пароля и послать свой пароль в ответ.
Это, в основном, все то, для чего предназначены chat-скрипты. Полный скрипт для соединения с PPP-сервером должен включать соотствующие команды модема. Допустим, что модем понимает Hayes команды, и номер телефона сервера 318714. Полный вызов chat для установки связи с c3po:
$ chat -v '' ATZ OK ATDT318714 CONNECT '' ogin: ppp word: GaGariN |
По определению, первая строка должна быть expect-строкой, но так как модем не будет сообщать что-нибудь прежде, чем мы запустим его, запустим chat так, чтобы он сначала ожидал пустую строку. Мы посылаем ATZ, команду reset для Hayes-совместимых модемов и ждем реакцию (OK). Следующая строка посылает команду dial с номером телефона для chat и ожидает сообщение CONNECT в ответ. За этим снова следует пустая строка, потому что мы не хотим ничего посылать, но надо подождать для быстрого входа в систему. Остальная часть chat-скрипта работает точно так же, как описано выше.
Опция -v сообщает chat о необходимости вести подробный протокол средствами демона syslog вызовом local2.
Определение chat-скрипта в командной строке несет оправданный риск, потому что пользователи могут просматривать командную строку любого процесса с использованием команды ps. Вы можете избежать этого, помещая chat-скрипт в файл, скажем dial-c3po. Вы можете заставить chat взять скрипт из файла вместо командной строки, передавая ему опцию -f, сопровождаемую именем файла. Наш скрипт dial-c3po будет выглядеть так:
'' ATZ OK ATDT318714 CONNECT '' ogin: ppp word: GaGariN |
Вызов pppd будет таким:
# pppd connect "chat -f dial-c3po" /dev/ttyS3 38400 -detach \ crtscts modem defaultroute |
Помимо опции connect, которая определяет скрипт дозвона, мы добавили еще две опции в командной строке: -detach, которая сообщает pppd не отделяться от консоли и стать фоновым процессом. Ключевое слово modem заставит его выполнить некоторые действия, специфичные для модема, на последовательном устройстве, подобно "повесить трубку" после вызова. Если Вы не используете это ключевое слово, pppd не будет определять линию DCD и не обнаружит неожиданного обрыва связи.
Примеры, показанные выше были довольно просты; chat позволяет создавать намного более сложные скрипты. Одна очень полезная особенность, это способность к точному определению строки, на которой можно прервать chat с сообщением об ошибке. Типичные аварийные строки BUSY или NO CARRIER, которые модем обычно генерирует, когда вызываемый номер занят или не поднимает трубку. Для того, чтобы сделать так, чтобы chat их распознавал, Вы можете определить начало скрипта, используя ключевое слово ABORT:
$ chat -v ABORT BUSY ABORT 'NO CARRIER' '' ATZ OK ... |
В подобном режиме Вы можете изменить значение блокировки по времени для частей скрипта, вставляя опции TIMEOUT.
Иногда нужно иметь возможность условного выполненич частей скрипта. Например, когда Вы не получаете запрос имени пользователя с удаленной машины, возможно, стоит послать BREAK или возврат каретки. Вы можете достичь этого, присоединяя sub-скрипт к expect-строке. Он состоит из последовательности send и expect строк точно таких же, как и обычный скрипт. Sub-скрипт отделяется тире и выполняется всякий раз, когда не было ничего получено в качестве ожидаемой строки. В примере, изложенном выше, мы модифицировали бы chat-скрипт следующим образом:
ogin:-BREAK-ogin: ppp ssword: GaGariN |
Теперь, когда chat видит, что удаленная система не посылает запрос на вход в систему, sub-скрипт выполняется, сначала посылая BREAK, а затем снова ожидает запрос для входа в систему. Если теперь запрос появится, то основной скрипт будет продолжаться как обычно, иначе он прервется с сообщением об ошибке.
Использование ssh Теперь пакет
Использование ssh
Теперь пакет ssh и связанные с ним команды установлены и готовы к выполнению.
Сначала опробуем удаленный вход в систему. Можно использовать программу slogin точно так же, как использовалась программа rlogin в примере в первой главе. Первый раз, когда Вы делаете попытку подключения к компьютеру, ssh получит публичный ключ хоста и запросит подтверждение с помощью электронной подписи fingerprint.
Администратор удаленного компьютера должен предоставить электронную подпись, которую Вы должны добавить к Вашему файлу .ssh/known_hosts. Если он этого не сделал, Вы можете соединиться с удаленным компьютером, но ssh предупредит Вас о возникшей ситуации. Допустим, что Вы уверены в том, что работаете с тем компьютером, с которым хотели связаться (никто не перехватил DNS). Тогда ответьте на запрос положительно. Соответствующий ключ будет автоматически сохранен в Вашем файле .ssh/known_hosts без повторных запросов. Если при следующей попытке подключения, публичный ключ с этого компьютера не соответствует тому, который сохранен, Вы будете предупреждены, потому что это представляет потенциальную опасность.
Первый вход в систему на удаленном компьютере будет выглядеть так:
$ slogin vchianti.vbrew.com The authenticity of host 'vchianti.vbrew.com' can't be established. Key fingerprint is 1024 7b:d4:a8:28:c5:19:52:53:3a:fe:8d:95:dd:14:93:f5. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'vchianti.vbrew.com,172.16.2.3' to the list of/ known hosts. maggie@vchianti.vbrew.com's password: Last login: Tue Feb 1 23:28:58 2000 from vstout.vbrew.com $ |
На запрос о пароле нужно указать свой пароль на удаленной системе. Этот пароль не будет отображен на экране, когда Вы напечатаете его.
Без специальных параметров slogin будет пытаться войти с тем же идентификатором пользователя, который был применен на локальной машине. Вы можете отменить это, указанием параметра -l с именем для регистрации на удаленном компьютере.
Можно копировать файлы по сети командой scp. Синтаксис подобен стандартной cp за исключением того, что Вы можете определять имя машины перед именем файла, указывая, что файл находится на определенном компьютере. Следующий пример иллюстрирует синтаксис scp, копируя локальный файл /tmp/fred в каталог /home/maggie/ на удаленный компьютер chianti.vbrew.com:
$ scp /tmp/fred vchianti.vbrew.com:/home/maggie maggie@vchianti.vbrew.com's password: fred 100% |*****************************| 50165 00:01 ETA |
Конечно, будет запрошен пароль. Команда scp по умолчанию отображает полезные сообщения о ходе процесса копирования. Вы можете копировать файл и с удаленного компьютера: просто определите имя хоста и путь к файлу как источник и локальный путь как адресат. Можно даже копировать файлы с удаленного компьютера на другой удаленный компьютер, но это не очень удобно, поскольку все данные пойдут транзитом через Ваш компьютер.
Вы можете выполнять команды на удаленных компьютерах, использующих ssh. Синтаксис очень прост. Допустим, пользователь maggie просматривает оглавление корневого каталога на машине vchianti.vbrew.com. Команда:
$ ssh vchianti.vbrew.com ls -CF / maggie@vchianti.vbrew.com's password: bin/ console@ dos/ home/ lost+found/ pub@ tmp/ vmlinuz@ boot/ dev/ etc/ initrd/ mnt/ root/ usr/ vmlinuz.old@ cdrom/ disk/ floppy/ lib/ proc/ sbin/ var/ |
Можно помещать ssh в поток команд с перенаправлением ввода-вывода ("трубопровод"). Все будет работать как и в любой другой команде Linux с той лишь разницей, что ввод-вывод ssh пойдет по сети через защищенное соединение. Вот пример того, как Вы могли бы использовать эту возможность в комбинации с командой tar, чтобы скопировать целый каталог с подкаталогами и файлами с удаленного компьютера на локальный компьютер:
$ ssh vchianti.vbrew.com "tar cf - /etc/" | tar xvf - maggie@vchianti.vbrew.com's password: etc/GNUstep etc/Muttrc etc/Net etc/X11 etc/adduser.conf .. .. |
Здесь выполняемая команда взята в кавычки, чтобы она вся была воспринята как параметр ssh, а не обрабатывалась локальной оболочкой. Эта команда выполняет tar на удаленном компьютере, чтобы архивировать каталог /etc, и пишет результат на стандартный вывод. Мы имеем перенаправление на команду tar на локальном компьютере в режиме извлечения, причем чтение архива идет из стандартного ввода.
Конечно, везде и всегда запрашивается пароль. Теперь становится понятно, почему ssh часто настраивают так, что он не запрашивает Вас относительно паролей все время! Теперь настроим локальный клиент ssh, чтобы он не спрашивал пароль для связи с vchianti.vbrew.com. Я ранее упомянул файл .ssh/authorized_keys, здесь-то он и нужен. Файл .ssh/authorized_keys хранит публичные (public) ключи любых удаленных записей пользователя, к которым нужен автоматический вход. Можно устанавливать автоматические входы в систему, копируя содержание .ssh/identity.pub из удаленной (remote) системы в локальный файл .ssh/authorized_keys. Установите права доступа к файлу .ssh/authorized_keys так, чтобы только Вы могли его читать и писать. Это делается командой:
$ chmod 600 ~/.ssh/authorized_keys |
Публичный ключ представляет собой длинную одиночную строку текста. Если Вы используете копирование и вставку, чтобы копировать ключ в локальный файл, убедитесь, что удалили символы конца строки. Файл .ssh/authorized_keys может содержать много таких ключей по одному на строке.
Набор инструментальных средств ssh очень мощен и имеет многие другие полезные свойства и параметры. Для дальнейшего его изучения обратитесь к man-страницам и другой документации, которая поставляется вместе с пакетом.
Источники информации Есть огромное
Linux Documentation Project
Linux Documentation Project включает книги по Linux, документы HOWTO и man-страницы решительно по всем аспектам системы: от установки до программирования ядра. LDP включает книги: Linux Installation and Getting Started
Автор Matt Welsh. Книга описывает, как получить и поставить Linux. Включает довольно подробную информацию о базовых командах, системном администрировании, X Window System и сетевой поддержке.
Linux System Administrators GuideАвторы Lars Wirzenius и Joanna Oja. Книга углубленно рассматривает системное администрирование, включая создание и настройку пользователей, резервирование, настройку некоторых пакетов программ, установку и обновление различного программного обеспечения.
Linux System Adminstration Made EasyАвтор Steve Frampton. Книга описывает повседневные задачи администрирования ОС Linux.
Linux Programmers GuideАвторы B. Scott Burkett, Sven Goldt, John D. Harper, Sven van der Meer и Matt Welsh. Книга будет интересна всем, кто хочет разрабатывать программы для Linux.
The Linux KernelАвтор David A. Rusling. Книга подробно описывает устройство и функционирование ядра Linux.
The Linux Kernel Module Programming GuideАвтор Ori Pomerantz. Книга описывает как писать и отлаживать модули для ядра Linux.
Еще несколько книг сейчас пишутся. Все о LDP можно найти на сайте проекта http://www.linuxdoc.org и его многочисленных зеркалах в разных странах.
Документы HOWTOLinux HOWTO представляют собой серию документов по настройке всего, что настраивается в Linux. Здесь можно найти информацию о написании программ, компиляции ядра, настройке всех сервисов и распространенных пакетов программ. Найти их можно в подкаталоге HOWTO на FTP сайтах Linux Documentation Project. Файл HOWTO-INDEX хранит перечень статей с кратким описанием.
Например, Installation HOWTO предоставляет советы по установке Linux, Hardware Compatibility HOWTO имеет список известного Linux оборудования, Distribution HOWTO предлагает перечень поставщиков Linux на дискетах и CD-ROM.
Linux Frequently Asked QuestionsДокумент Linux Frequently Asked Questions with Answers (FAQ) освещает большой перечень вопросов и ответов по системе.
Изменение группы
Параметры группы меняются следующим образом:
ctlinnd changegroup group rest |
Изменение группы
Параметры группы меняются следующим образом:
ctlinnd changegroup group rest |
Аргументы имеют смысл:
groupИмя изменяемой группы.
restЭтот параметр должен быть кодирован таким же образом, как поле flags файла active.
Эта команда полезна, чтобы управлять статусом модерируемости группы.
Изменение режимиа работы с NNTP
Программы работы с новостями (Newsreaders) используют собственный набор команд при работе с сервером новостей. Чтобы активизировать эти команды, сервер должен перейти в режим читателя (reader). Большинство серверов так и делают, если IP-адрес соединяющейся машины не перечислен в списке серверов новостей (news-forwarding). В любом случае NNTP обеспечивает команду для явного переключения в режим reader:
Изменение режимиа работы с NNTP
Программы работы с новостями (Newsreaders) используют собственный набор команд при работе с сервером новостей. Чтобы активизировать эти команды, сервер должен перейти в режим читателя (reader). Большинство серверов так и делают, если IP-адрес соединяющейся машины не перечислен в списке серверов новостей (news-forwarding). В любом случае NNTP обеспечивает команду для явного переключения в режим reader:
mode reader 200 news.vbrew.com InterNetNews NNRP server INN 1.7.2 08-Dec-1997 ready/ (posting ok). help 100 Legal commands authinfo user Name|pass Password|generic article [MessageID|Number] body [MessageID|Number] date group newsgroup head [MessageID|Number] help ihave last list [active|active.times|newsgroups|distributions|distrib.pats|/ overview.fmt|subscriptions] listgroup newsgroup mode reader newgroups yymmdd hhmmss ["GMT"] [] newnews newsgroups yymmddhhmmss ["GMT"] [] next post slave stat [MessageID|Number] xgtitle [group_pattern] xhdr header [range|MessageID] xover [range] xpat header range|MessageID pat [morepat...] xpath MessageID Report problems to . |
Режим NNTP reader имеет много команд. Многие из их разработаны, чтобы облегчить работу с новостями. Я упомянул ранее, что там есть команды, которые предписывают серверу высылать заголовок и тело статьи по отдельности. Имеются также команды, которые вносят в список доступные группы и статьи, и другие, которые позволяют регистрировать альтернативные средства посылки новостей.