diff --git a/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml b/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml
index 705fd860bd..796ad5ee86 100644
--- a/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml
@@ -1,2766 +1,2789 @@
Получение FreeBSDИздатели CDROM и DVDКоробочная версияFreeBSD доступна в коробочной версии (FreeBSD CD диски,
дополнительное программное обеспечение, печатная документация) от
нескольких поставщиков:CompUSA
WWW: Frys Electronics
WWW: Наборы CD и DVDНаборы FreeBSD CD и DVD доступны у множества онлайн
поставщиков:Daemon News Mall560 South State Street, Suite A2Orem, UT84058США
Телефон: +1 800 407-5170
Факс: +1 1 801 765-0877
Email: sales@bsdmall.com
WWW: FreeBSD Mall, Inc.3623 Sanford StreetConcord, CA94520-1405США
Телефон: +1 925 674-0783
Факс: +1 925 674-0821
Email: info@freebsdmall.com
WWW: FreeBSD Services Ltd11 Lapwing CloseBicesterOX26 6XRВеликобритания
WWW: Hinner EDVSt. Augustinus-Str. 10D-81825MünchenГермания
Телефон: (089) 428 419
WWW: Ikarios22-24 rue Voltaire92000NanterreФранция
WWW: Ingram Micro1600 E. St. Andrew PlaceSanta Ana, CA92705-4926США
Телефон: 1 (800) 456-8000
WWW: JMC SoftwareИрландия
Телефон: 353 1 6291282
WWW: The Linux EmporiumHilliard House, Lester WayWallingfordOX10 9TAВеликобритания
Телефон: +44 1491 837010
Факс: +44 1491 837016
WWW: Linux System Labs Australia21 Ray DriveBalwyn NorthVIC - 3104Австралия
Телефон: +61 3 9857 5918
Факс: +61 3 9857 8974
WWW:
+
+
+ LinuxCenter.Ru
+ ул. Галерная, 55
+ Санкт-Петербург
+ 190000
+ Россия
+ Телефон: +7-812-3125208
+ Email: info@linuxcenter.ru
+ WWW:
+
+
+
UNIXDVD.COM LTD57 Primrose AvenueSheffieldS5 6FSВеликобритания
WWW: РаспространителиЕсли вы продавец и хотите заниматься FreeBSD CDROM,
пожалуйста свяжитесь с распространителем:Cylogistics2672 Bayshore Parkway, Suite 610Mountain View, CA94043США
Телефон: +1 650 694-4949
Факс: +1 650 694-4953
Email: sales@cylogistics.com
WWW: FreeBSD Services Ltd11 Lapwing CloseBicesterOX26 6XRВеликобритания
WWW: Kudzu, LLC7375 Washington Ave. S.Edina, MN55439США
Телефон: +1 952 947-0822
Факс: +1 952 947-0876
Email: sales@kudzuenterprises.comNavarre Corp7400 49th Ave SouthNew Hope, MN55428США
Телефон: +1 763 535-8333
Факс: +1 763 535-0341
WWW: FTP сайтыОфициальным источником FreeBSD являются анонимные FTP
зеркала по всему миру. Сайт
имеет
хорошее подключение и поддерживает большое количество одновременных
соединений, но для вас возможно потребуется найти
ближайшее зеркало (особенно если вы решили настроить
у себя какой-то из видов зеркал).База данных зеркал
FreeBSD предпочтительнее по сравнению со списком зеркал в
Руководстве, поскольку информация в базе собирается из DNS, а не
из статического списка узлов.Кроме того, FreeBSD доступна через анонимный FTP со следующих
зеркал. Если вы выбрали получение FreeBSD через анонимный FTP,
пожалуйста выберите ближайший к вам сайт. Зеркала из списка
Основных зеркал обычно содержат полный архив
FreeBSD (все доступные на данный момент версии для каждой архитектуры),
скорость загрузки возможно будет больше с зеркала, расположенного в
- вашей стране. Сайты каждой страны содержат последнюю версию для наиболее
+ вашей стране или регионе. Сайты каждой страны содержат последнюю версию для наиболее
популярных архитектур, но на них может не быть полного архива FreeBSD.
Все сайты предоставляют доступ через анонимный FTP, а некоторые
- предоставляют доступ и другими методами. Для сайтов каждой страны
- приведен список методов доступа.
+ предоставляют доступ и другими методами. Для каждого сайта
+ приведен список методов доступа в скобках после имени хоста.
&chap.mirrors.ftp.inc;
Анонимный CVSВведениеАнонимный CVS (известный также как,
anoncvs) это возможность, предоставляемая
утилитами CVS, поставляемыми с FreeBSD для синхронизации с удаленным
CVS репозиторием. Помимо прочего, он позволяет пользователям
FreeBSD без специальных привилегий (с правами только на чтение)
выполнять CVS операции на одном из официальных anoncvs серверов
проекта FreeBSD. Для использования этой возможности, просто
установите переменную CVSROOT на соответствующий
сервер anoncvs, введите общеизвестный пароль anoncvs
в ответ на приглашение команды cvs login, а
затем используйте &man.cvs.1; для доступа к репозиторию как к
обычному локальному CVS.Команда cvs login сохраняет пароли,
использованные для авторизации на сервере CVS в файле с
именем .cvspass в каталоге
HOME. Если этот файл не существует, вы можете
получить сообщение об ошибке при первом запуске cvs
login. Просто создайте пустой файл
.cvspass и попробуйте еще раз.Хотя можно сказать, что сервисы CVSup и anoncvs
выполняют в сущности похожие функции, есть несколько отличий,
которые могут повлиять на выбор метода синхронизации.
По своей сути, CVSup гораздо
более эффективно использует сетевые ресурсы, и из двух этих
программ он более интеллектуален, но за его эффективность
приходится платить. Во-первых, для того, чтобы появилась
возможность хоть что-то получить этим методом,
CVSup потребуется установить и
настроить специальную программу, а во-вторых, этот
CVSup позволяет синхронизацию только
довольно больших частей исходных текстов, называемых
коллекциями.Anoncvs напротив может использоваться
для получения как одного файла, так и всей программы
(например ls или grep),
с помощью ссылки на имя модуля CVS. Конечно,
anoncvs хорошо подходит только при
операциях на чтение CVS репозитория, поэтому если вы намереваетесь
производить локальную разработку в одном из репозиториев
проекта FreeBSD, вам подойдет только
CVSup.Использование анонимного CVSНастройка &man.cvs.1; для использования анонимного CVS
репозитория означает установку переменной окружения
CVSROOT на один из anoncvs
серверов проекта FreeBSD. На момент написания этого документа
доступны следующие сервера:
- США:
- :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs
- (Используйте cvs login и введите пароль
- anoncvs в ответ на приглашение.)
+ Австрия:
+ :pserver:anoncvs@anoncvs.at.FreeBSD.org:/home/ncvs
+ (Используйте cvs login и введите любой
+ пароль в ответ на приглашение.)
+
+
+ Франция:
+ :pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs
+ (pserver (пароль anoncvs), ssh (нет пароля))
+ Германия:
:pserver:anoncvs@anoncvs.de.FreeBSD.org:/home/ncvs
(Используйте cvs login и введите пароль
anoncvs в ответ на приглашение.)Германия:
:pserver:anoncvs@anoncvs2.de.FreeBSD.org:/home/ncvs
(rsh, pserver, ssh, ssh/2022)
Япония:
:pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
(Используйте cvs login и введите пароль
anoncvs в ответ на приглашение.)
- Австрия:
- :pserver:anoncvs@anoncvs.at.FreeBSD.org:/home/ncvs
- (Используйте cvs login и введите любой
- пароль в ответ на приглашение.)
+ Швеция:
+ freebsdanoncvs@anoncvs.se.FreeBSD.org:/home/ncvs
+ (только ssh - без пароля)
- Франция:
- :pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs
- (pserver (пароль anoncvs), ssh (нет пароля))
-
+ США:
+ :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs
+ (Используйте cvs login и введите пароль
+ anoncvs в ответ на приглашение.)Поскольку CVS позволяет выполнить check out
практически любой версии исходных текстов FreeBSD, которые
когда-либо существовали (или, в некоторых случаях, будут
существовать), вам необходимо познакомиться с флагом
&man.cvs.1; для ревизий () и с параметрами,
которые могут быть использованы с этим флагом в репозитории
проекта FreeBSD.Есть два вида тегов, теги ревизий и теги ветвей.
Теги ревизий отвечают за определенную ревизию. Их значение
остается прежним изо дня в день. Теги ветвей сопоставляются
последней ревизии определенной ветви разработки, в любой
момент времени. Поскольку теги ветвей не сопоставлены какой-то
определенной ревизии, завтра они могут означать совсем не то,
что сегодня. содержит теги ревизий, которые
могут заинтересовать пользователей. Опять же, ни один из них
не подходит для коллекции портов, поскольку в коллекции портов
нет разнообразия ревизий.Если вы указываете тег ветви, то обычно получаете последнюю
версию файлов этой ветви разработки. Если вы хотите получить
предыдущую версию, это можно сделать путем указания даты флагом
. Обратитесь к странице справочника
&man.cvs.1; за более подробной информацией.ПримерыХотя перед тем, как что-то делать, рекомендуется полностью
прочесть страницу справочника &man.cvs.1;, вот несколько кратких
примеров использования Anonymous CVS:Извлечение кода из -CURRENT (&man.ls.1;) с
последующим удалением:&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginAt the prompt, enter the passwordanoncvs.
&prompt.user; cvs co ls
&prompt.user; cvs release -d ls
&prompt.user; cvs logoutИзвлечение &man.ls.1; из ветви для 3.X-STABLE:&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginAt the prompt, enter the passwordanoncvs.
&prompt.user; cvs co -rRELENG_3 ls
&prompt.user; cvs release -d ls
&prompt.user; cvs logoutСоздание списка изменений &man.ls.1; (в виде unified diff)&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginAt the prompt, enter the passwordanoncvs.
&prompt.user; cvs rdiff -u -rRELENG_3_0_0_RELEASE -rRELENG_3_4_0_RELEASE ls
&prompt.user; cvs logoutПоиск доступных имен модулей:&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginAt the prompt, enter the passwordanoncvs.
&prompt.user; cvs co modules
&prompt.user; more modules/modules
&prompt.user; cvs release -d modules
&prompt.user; cvs logoutДругие ресурсыВ изучении CVS могут помочь следующие дополнительные
ресурсы:Учебник
по CVS от Cal Poly.CVS Home,
сообщество разработки и поддержки CVS.CVSweb
это веб интерфейс к CVS проекта FreeBSD.Использование CTMCTM это метод синхронизации удаленного
дерева исходных текстов с центральным. Он был разработан для
использования с деревом исходных текстов FreeBSD, хотя может
быть полезен и для других целей. На данный момент существует очень
немного (если она вообще существует) документации по процессу создания
дельта-файлов (deltas, разница между имеющимися и актуальными
исходными текстами), поэтому обратитесь в список рассылки
&a.ctm-users.name; за
дополнительной информацией, если захотите использовать
CTM для других целей.Зачем мне может понадобиться
CTM?CTM создаст для вас локальную копию
исходных текстов FreeBSD. Существует множество разновидностей
дерева исходных текстов. Захотите ли вы поддерживать все дерево
CVS или только одну из ветвей, CTM
может предоставить вам все необходимое. Если вы разработчик
FreeBSD, но ваше соединение по TCP/IP некачественное или
отсутствует, или же вы просто хотите, чтобы изменения автоматически
отправлялись вам, CTM предназначен
для вас. Вам потребуется получать до трех изменений в день для
наиболее активных ветвей. Они будут отправляться вам по электронной
почте. Размеры обновлений всегда поддерживаются настолько малыми,
насколько это возможно. Они обычно меньше 5K, хотя случается
(раз из десяти) достигают 10-50K и время от времени даже
100K или больше.Вам также потребуется узнать о различных особенностях работы
непосредственно с исходными текстами в разработке, вместо
готовых релизов. Это в частности относится к выбору исходных
текстов ветви -CURRENT. Рекомендуется прочесть материал
На переднем крае разработок.Что потребуется для использования
CTM?Вам потребуются две вещи: программа
CTM и исходные тексты, которые требуется
обновить (до актуального состояния).Программа CTM была частью
FreeBSD все время с момента выпуска релиза 2.0, она находится
в каталоге /usr/src/usr.sbin/ctm, если
у вас есть копия исходных текстов.Если вы работаете с версией FreeBSD до 2.0, можете получить
актуальные исходные тексты CTM
непосредственно с:Дельта-файлыCTM могут приходить двумя путями,
через FTP или email. Если у вас есть доступ к интернет по FTP,
доступ к CTM может быть получен через
следующие FTP сайты:или с сайтов из списка зеркал.Зайдите по FTP в соответствующий каталог и прочтите файл
README.Если вы предпочитаете получать дельта-файлы по почте:Подпишитесь на один из списков распространения
CTM.
&a.ctm-cvs-cur.name; поддерживает все дерево CVS.
&a.ctm-src-cur.name; поддерживает главную ветвь разработки.
&a.ctm-src-4.name; поддерживает ветвь 4.X, и т.д. Если вы
не знаете, как подписаться на список, нажмите на ссылку выше или
на ссылку &a.mailman.lists.link;, а затем на ссылку соответствующего
списка. Страница списка должна содержать все необходимые инструкции
по подписке.Когда вы начнете получать обновления
CTM по почте, используйте программу
ctm_rmail для распаковки и применения обновлений.
Вы можете использовать программу ctm_rmail
непосредственно из /etc/aliases, если
хотите полностью автоматизировать процесс. Прочтите страницу
справочника ctm_rmail с более подробной
информацией.Вне зависимости от способа получения дельта-файлов
CTM, вам потребуется подписка на
список рассылки &a.ctm-announce.name;. В будущем этот список
станет единственным местом, где будут анонсироваться операции,
относящиеся к системе CTM.
Нажмите на ссылку выше и следуйте инструкциям для подписки
на эту рассылку.Использование CTM в первый
разПеред тем, как вы сможете начать использование дельта-файлов
CTM, потребуется определить
исходную точку для последующего их применения.Сначала потребуется определить, что уже имеется.
Каждый может начать с пустого (empty) каталога.
Вы должны использовать дельта-файл Empty
для создания поддерживаемого CTM дерева.
Планируется распространение стартовых дельта-файлов
на CD, но на данный момент это не делается.Поскольку дерево исходных текстов может быть объемом в десятки
мегабайт, предпочтительно начать с каких-то уже имеющихся текстов.
Если у вас есть -RELEASE CD, распакуйте исходные тексты с него.
Это снизит объем передаваемых данных.Вы можете распознать стартовый дельта-файл
по символу X, добавляемому к номеру
(например, src-cur.3210XEmpty.gz).
Обозначение перед X соответствует имеющимся
исходным текстам. Empty это пустой каталог.
Как правило файл с Empty создается через каждые
100 дельта-файлов. Между прочем, эти файлы большие! От 70 до
;) мегабайт упакованных gzip данных это
обычный размер для XEmpty.Как только вы получили основной дельта-файл, потребуются также
все дельта-файлы с последующими номерами.Повседневное использование
CTMДля применения дельта-файлов, просто выполните:&prompt.root; cd /where/ever/you/want/the/stuff
&prompt.root; ctm -v -v /where/you/store/your/deltas/src-xxx.*CTM работает с дельта-файлами,
упакованными с помощью gzip, поэтому вам не
требуется их распаковывать.Хотя весь процесс довольно безопасен,
CTM не будет изменять дерево исходных
текстов. Для проверки дельта-файла вы также можете использовать
флаг , CTM
только проверит целостность дельта-файла а также его применимость
к существующим исходным текстам.Это все. Каждый раз после получения дельта-файла, запускайте
CTM для поддержания исходных текстов
в актуальном состоянии.Не удаляйте дельта-файлы, если их сложно загрузить еще раз.
Вы возможно захотите сохранить их на всякий случай. Если вы можете
сохранить их только на дискете, используйте для создания копии
fdwrite.Сохранение локальных измененийКак разработчик вы возможно захотите поэкспериментировать и
изменить файлы в дереве исходных текстов.
CTM имеет ограниченную поддержку
локальных изменений: перед проверкой наличия файла
foo, сначала проверяется
foo.ctm. Если он присутствует,
CTM будет работать с ним вместо
foo.Такое поведение обеспечивает простой путь поддержки локальных
изменений: просто скопируйте файлы, которые вы хотите изменить,
в файлы с соответствующими именами и суффиксом
.ctm. Вы можете свободно изменять код,
а CTM будет поддерживать файлы
.ctm в актуальном состоянии.Другие интересные возможности
CTMОпределение файлов, которые будут затронуты
обновлениемВы можете определить список изменений, которые
CTM внесет в исходные тексты,
используя параметр CTM
.Это полезно, если вы хотите поддерживать лог изменений,
выполнить предварительную или последующую обработку изменяемых
файлов, или если вы просто немного параноидальны.Создание резервных копий перед обновлениемИногда вам может понадобиться сделать резервные копии всех
файлов, которые будут изменены
CTM.С параметром
CTM выполнит резервное копирование
всех изменяемых дельта-файлом CTM
файлов в backup-file.Ограничение обновлений для определенных файловИногда необходимо ограничить набор файлов, обновляемых
CTM, или даже задать обновление
нескольких определенных файлов.Вы можете управлять списком файлов, с которыми будет работать
CTM, путем указания фильтрующих
регулярных выражений с параметрами и
.Например, для извлечения свежей копии
lib/libc/Makefile из коллекции сохраненных
дельта-файлов CTM, выполните
команду:&prompt.root; cd /where/ever/you/want/to/extract/it/
&prompt.root; ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*Для каждого указанного CTM
дельта-файла, параметры и
применяются в порядке их задания в командной строке. Файл
обрабатывается CTM только если он
помечается как подходящий после обработки всех параметров
и .Дальнейшие планы для CTMМасса планов:Использовать какой-то из видов аутентификации в системе
CTM, позволяющий обнаружение
поддельных дат CTM.Доработать параметры CTM,
поскольку они могут ввести в заблуждение.РазноеСуществует набор дельта-файлов и для коллекции
ports, но интерес к нему пока не так
высок.Зеркала CTMCTM/FreeBSD доступен через анонимный
FTP с нижеприведенных зеркал. Если вы выбрали получение
CTM через анонимный FTP, используйте
ближайший к вам сервер.В случае возникновения проблем обратитесь в список рассылки
&a.ctm-users.name;.California, Bay Area, официальный источникSouth Africa, резервный сервер для старых дельта-файловTaiwan/R.O.C.Если вы не нашли ближайшего к вам зеркала, или зеркало неполно,
попробуйте воспользоваться поиском, например
alltheweb.Использование CVSupВведениеCVSup это пакет программного
обеспечения для распространения и обновления исходных текстов с
основного репозитория CVS на удаленном сервере. Исходные тексты
FreeBSD поддерживаются в репозитории CVS на центральной машине
разработки в Калифорнии. С помощью CVSup
пользователи FreeBSD легко могут поддерживать собственные исходные
тексты в актуальном состоянии.CVSup использует так называемую
опрашивающую (pull) модель обновления.
Работая по этой модели, каждый клиент запрашивает обновления с
сервера, если и когда они нужны. Сервер пассивно ожидает запросы
на обновление от своих клиентов. Таким образом, все обновления
инициируются клиентами. Сервер никогда не высылает не запрошенные
обновления. Пользователь для получения обновлений должен либо запустить
CVSup клиента вручную, либо добавить
задание в cron для настройки периодических
обновлений в автоматическом режиме.Термин CVSup, написанный с заглавными
буквами, означает весь пакет программного обеспечения. Его основные
компоненты это клиент cvsup, запускаемый на
каждом пользовательском компьютере, и сервер
cvsupd, работающий на каждом зеркале
FreeBSD.При чтении документации FreeBSD и списков рассылки вы могли
встретить указания на sup.
Sup был предшественником
CVSup, и выполнял похожие функции.
CVSup в основном используется тем же
способом, что и sup, и, фактически, использует файлы настройки,
обратно совместимые с файлами sup.
Sup более не используется проектом
FreeBSD, поскольку CVSup и быстрее и
более гибок.УстановкаПростейший способ установки CVSup
это использование прекомпилированного пакета net/cvsup из коллекции
пакетов FreeBSD. Если вы предпочтете собрать
CVSup из исходных текстов, можете
использовать вместо этого порт net/cvsup. Но имейте ввиду:
порт net/cvsup зависит от системы
Modula-3, которой потребуется существенный объем времени и
пространства на диске для загрузки и установки.Если вы собираетесь использовать
CVSup на компьютере, где нет
установленного &xfree86;,
например на сервере, используйте порт, не включающий
CVSup GUI,
net/cvsup-without-gui.Настройка CVSupРабота CVSup контролируется
файлом настройки, называемым supfile.
В каталоге /usr/share/examples/cvsup/
находится несколько примеров supfile.Информация в supfile отвечает на
следующие вопросы CVSup:Какие файлы вы
хотите получить?Какие их версии
вам нужны?Откуда вы хотите
их получить?Где вы хотите
разместить их на своем компьютере?Где вы хотите
разместить файлы статуса?В следующих разделах мы составим типичный
supfile последовательным ответом на каждый из этих
вопросов. Сначала опишем общую структуру
supfile.supfile это текстовый файл. Комментарии,
начинающиеся с #, продолжаются до конца строки.
Пустые строки и строки, содержащие только комментарии,
игнорируются.Каждая из оставшихся строк описывает набор файлов, получаемых
пользователем. Строка начинается с имени коллекции,
логического объединения файлов, определяемых сервером. Имя коллекции
говорит серверу о том, какие файлы вам нужны. После имени коллекции
следуют одно или больше полей, разделенных пробелом. Эти поля
отвечают на вопросы, заданные выше. Есть два типа полей: флаги и
значения. Поле флага состоит из одного ключевого слова, например
delete или compress.
Поле значения также начинается с ключевого слова, но за ним без
пробела следует = и второе слово. Например,
release=cvs это поле значения.supfile обычно задает получение
более одной коллекции. Одним из способов построения
supfile является указание всех соответствующих
полей для каждой коллекции явно. Однако, это приводит к появлению
слишком длинных строк в supfile и это неудобно,
поскольку большинство полей одинаковы для всех коллекций
supfile. CVSup
предоставляет механизм задания значений по умолчанию для устранения
этих проблем. Строки, начинающиеся со специального имени
псевдо-коллекции *default, могут быть использованы
для установки флагов и значений, которые послужат значениями по
умолчанию для всех последующих коллекций supfile.
Значение по умолчанию может быть перезаписано для каждой
отдельной коллекции путем указания другого значения в ее собственных
параметрах. Значения по умолчанию также могут быть изменены
или расширены в любом месте supfile
дополнительными строками *default.Получив эту информацию, мы начнем строить
supfile для получения и обновления главного
дерева исходных текстов FreeBSD-CURRENT.Какие файлы вы хотите
получить?Файлы, доступные через CVSup,
организованы в именованные группы, называемые
коллекциями. Доступные коллекции описаны
в следующем разделе.
В этом примере мы получим все дерево исходных текстов системы
FreeBSD. Существует одиночная большая коллекция
src-all, которая позволит нам сделать это.
В качестве первого шага по созданию supfile,
добавим список коллекций, по одной на строку (в нашем случае,
только одну строку):src-allКакие их версии
вам нужны?С CVSup вы в принципе можете
получить любую версию исходных текстов, которая когда-либо
существовала. Это возможно, поскольку
cvsupd сервер работает непосредственно
с репозиторием CVS, который содержит все версии. Вы указываете
ту, которая вам нужна, с помощью полей tag=
и .Будьте очень осторожны при задании любых полей
tag=. Некоторые теги существуют только
в определенных коллекциях файлов. Если вы укажете
некорректный тег или ошибетесь в его написании,
CVSup удалит файлы, которые вы
возможно не хотели удалять. В частности, используйте
толькоtag=.
для коллекций ports-*.Поля tag= означают символьные имена
в репозитории. Существует два вида тегов, теги ревизий и теги
ветвей. Теги ревизий означают определенную ревизию. Они
не меняются со временем. Теги ветвей, с другой стороны,
означают последнюю ревизию заданной линии разработки в любой
момент времени. Поскольку тег ветви не относится к определенной
ревизии, он может означать завтра что-то иное чем сегодня. содержит теги ветвей, которые
могут быть интересны пользователям. Тег, указанный в
файле настройки CVSup, должен
предваряться строкой tag=
(RELENG_4 превратится в
tag=RELENG_4). Помните, что для коллекции
портов подходит только tag=..Будьте очень осторожны при наборе имен тегов.
CVSup не может отличить правильные
и неправильные теги. Если вы неправильно наберете тег,
CVSup поведет себя так, как если бы
вы указали тег, не содержащий файлов. В этом случае он удалит
существующие исходные тексты.При указании тега ветви вы получите последние версии файлов
этой ветви разработки. Если вы хотите получить какую-то из
предыдущих версий, сделайте это указав дату в поле значения
. Страница справочника &man.cvsup.1;
описывает как сделать это.В нашем примере мы хотим получить FreeBSD-CURRENT. Мы
добавим эту строку в начало
supfile:*default tag=.Существует важный специальный случай, когда не задаются
ни поле tag=, ни поле date=.
В этом случае вы получите последние версии RCS файлов
непосредственно из CVS репозитория сервера вместо получения
определенной версии. Разработчики обычно предпочитают этот
способ. Поддерживая копию репозитория в своей системе, они
получают возможность просмотра истории ревизий и проверки
последних версий файлов. Однако это достигается ценой
большего занимаемого дискового пространства.Откуда вы хотите
их получить?Мы используем поле host= для сообщения
cvsup откуда забирать обновления. Подойдет
любое из CVSup зеркал,
хотя вы должны попробовать выбрать ближайшее к вам зеркало.
В этом примере мы используем не существующий сервер,
cvsup666.FreeBSD.org:*default host=cvsup666.FreeBSD.orgВам потребуется подставить адрес одного из существующих хостов
перед запуском CVSup. При каждом
запуске cvsup, вы можете перезаписать
настройку хоста из командной строки, используя параметр .Где вы хотите
разместить их на своем компьютере?Поле prefix= указывает
cvsup где размещать получаемые файлы.
В этом примере, мы поместим файлы непосредственно в главное
дерево исходных текстов, /usr/src.
Каталог src уже подразумевается в
коллекциях, которые мы собираемся получить, поэтому
корректное указание таково:*default prefix=/usrГде вы хотите
разместить файлы статуса cvsup?Клиент CVSup поддерживает
определенные файлы статуса в так называемом
base каталоге. Эти файлы помогают
CVSup работать более эффективно
путем поддержки истории уже полученных обновлений. Мы будем
использовать стандартный каталог base,
/usr/local/etc/cvsup:*default base=/usr/local/etc/cvsupЭтот каталог используется по умолчанию, если иное не указано
в supfile, поэтому на самом деле строка
выше не нужна.Если base каталог не существует, теперь подходящий момент
для его создания. Клиент cvsup не
запустится, если base каталог не существует.Различные настройки supfile:Существует еще одна строка, которая обычно должна
присутствовать в supfile:*default release=cvs delete use-rel-suffix compressrelease=cvs означает, что сервер должен
получать информацию из главного репозитория FreeBSD CVS.
Это обычно всегда так, но существуют несколько иных вариантов,
изложение которых выходит за пределы этой главы.delete дает
CVSup возможность удалять файлы.
Вы должны всегда указывать этот параметр, чтобы
CVSup мог поддерживать дерево
исходных текстов полностью актуальным.
CVSup удалит только те файлы, за
которые отвечает. Все другие файлы останутся
нетронутыми.use-rel-suffix это ... мистика. Если
вы действительно хотите узнать о нем, обратитесь к странице
справочника &man.cvsup.1;. Иначе просто укажите это поле и не
беспокойтесь о нем больше.compress включает использование
gzip сжатия при передаче данных. Если ваше сетевое подключение
работает со скоростью T1 или быстрее, вам возможно не
потребуется использование сжатия. Иначе оно обычно
помогает.Все это вместе:Вот полный supfile для нашего
примера:*default tag=.
*default host=cvsup666.FreeBSD.org
*default prefix=/usr
*default base=/usr/local/etc/cvsup
*default release=cvs delete use-rel-suffix compress
src-allФайл refuseКак упомянуто выше, CVSup использует
метод опроса. В основном это означает, что
вы подключаетесь к CVSup серверу, и он
говорит Вот то, что вы можете загрузить с меня...,
и клиент отвечает OK, я возьму это, это и это.
С настройкой по умолчанию CVSup клиент
заберет каждый файл, связанный с коллекцией и тегом, выбранным
в файле настройки. Однако, это не всегда то, что вам нужно,
особенно если вы синхронизируете деревья doc,
ports, или www —
большинство людей не могут читать на пяти или четырех языках,
и следовательно им не требуются локализованные файлы. Если вы
обновляете коллекцию портов, это можно обойти путем индивидуального
указания каждой коллекции (например,
ports-astrology,
ports-biology и т.д. вместо
коллекции ports-all). Однако, поскольку для
деревьев doc и www нет
специфичных для языка коллекций, используйте одну из
замечательных возможностей CVSup:
файл refuse.Файл refuse говорит
CVSup, что он не должен забирать каждый
файл из коллекции; другими словами, он говорит клиенту
отказаться (refuse) от получения с сервера
определенных файлов. Файл refuse можно найти
(или, если у вас его еще нет, должен быть помещен) в
base/sup/.
base определен в файле
supfile; по умолчанию,
base это
/usr/local/etc/cvsup, что означает, что по
умолчанию файл refuse это
/usr/local/etc/cvsup/sup/refuse.Формат файла refuse очень прост; он содержит
имена файлов или каталогов, которые вы не хотите загружать.
Например, если вы не можете разговаривать ни на каком языке кроме
английского и русского, и вы не хотите использовать русскоязычные
приложения (или приложения на любом другом языке кроме английского),
поместите следующие строки в файл
refuse:
- ports/chinese
+ ports/arabic
+ports/chinese
ports/french
ports/german
ports/hebrew
ports/hungarian
ports/japanese
ports/korean
ports/polish
ports/portuguese
ports/russian
ports/ukrainian
ports/vietnamese
doc/da_*
doc/de_*
doc/el_*
doc/es_*
doc/fr_*
doc/it_*
doc/ja_*
doc/nl_*
doc/no_*
doc/pl_*
doc/pt_*
doc/sr_*
doc/zh_*и так далее для других языков (полный список находится на
странице FreeBSD
CVS репозитория).С этой очень полезной возможностью пользователи с
низкоскоростным подключением или с поминутной платой за подключение
смогут сохранить время, поскольку им более не потребуется загружать
файлы, которые они никогда не будут использовать. За более
подробной информацией о файлах refuse и
замечательных возможностях CVSup,
обратитесь к его справочной странице.Запуск CVSupТеперь вы готовы к тестированию обновления. Командная строка для
этого очень проста:&prompt.root; cvsup supfileгде supfile
это конечно имя supfile, который только что
был создан. При запуске под X11, cvsup
отобразит GUI интерфейс с несколькими полезными кнопками. Нажмите
кнопку go и смотрите за его работой.Поскольку в этом примере обновляется существующее дерево
/usr/src вам потребуется, запуск программы
из под root, чтобы у cvsup
были права, необходимые для обновления файлов. Если файл настройки
только что создан, и эта программа раньше никогда не использовалась,
это может действовать вам на нервы. Есть простой способ для
пробного запуска без затрагивания ваших драгоценных файлов.
Просто создайте где-нибудь пустой каталог и поместите его в качестве
дополнительного аргумента командной строки:&prompt.root; mkdir /var/tmp/dest
&prompt.root; cvsup supfile /var/tmp/destУказанный каталог будет использоваться в качестве места назначения
всех обновлений. CVSup
будет работать с файлами из /usr/src,
но не станет изменять или удалять их. Вместо этого все обновления
файлов будут помещены в /var/tmp/dest/usr/src.
При запуске таким способом CVSup оставит
также неприкосновенным каталог base. Новые версии этих файлов будут
записаны в указанный каталог. Если у вас есть права на чтение
каталога /usr/src, вам даже не потребуется
работать под root для выполнения пробного
обновления.Если вы не работаете с X11 или просто не любите GUI, добавьте
набор параметров командной строки при запуске
cvsup:&prompt.root; cvsup -g -L 2 supfileПараметр указывает
CVSup не использовать GUI. Он действует
автоматически, если вы не работаете под X11, но иначе вам потребуется
его указать.Параметр указывает
CVSup выводить информацию о каждом
производимом обновлении. Есть три уровня протоколирования,
от до . Уровень
по умолчанию 0, что означает полное отсутствие сообщений,
за исключением сообщений об ошибках.Доступно множество других параметров. Для получения их краткого
списка, наберите cvsup -H. За более подробным
описанием обратитесь к странице справочника.После проверки работоспособности обновлений вы можете организовать
регулярные запуски CVSup с помощью
&man.cron.8;. Очевидно, вы не должны позволять
CVSup использовать GUI при запуске из
&man.cron.8;.Коллекции файлов CVSupКоллекции файлов, доступные через
CVSup, организованы иерархически.
Существует несколько больших коллекций, и они разделены на несколько
меньших под-коллекций. Получение большой коллекции эквивалентно
получению каждой из ее подколлекции. Иерархические отношения
между коллекциями отражаются путем использования отступов в списке
ниже.Наиболее используемые коллекции это
src-all, и
ports-all. Другие коллекции используются
небольшими группами людей для специальных целей и
некоторые сайты зеркал могут не содержать их все.cvs-all release=cvsГлавный FreeBSD CVS репозиторий, включающий
криптографический код.distrib release=cvsФайлы, относящиеся к распространению и зеркалированию
FreeBSD.doc-all release=cvsИсходные тексты Руководства FreeBSD и другой
документации. Они не включают файлы веб-сайта
FreeBSD.ports-all release=cvsКоллекция портов FreeBSD.Если вы не хотите обновлять всю коллекцию
ports-all (все дерево портов),
а только одну из подколлекций, перечисленных ниже,
убедитесь, что вы каждый раз
обновляете подколлекцию ports-base!
При любых изменениях в инфраструктуре сборки портов
подколлекции ports-base, они могут
быть использованы настоящими портами
довольно скоро. Таким образом, если вы обновляете
только настоящие порты и они используют
некоторые новые возможности, есть большой шанс того,
что их сборка прервется с непонятным сообщением об
ошибке. Самое первое, что вы
должны сделать, это убедиться, что подколлекция
ports-base обновлена.ports-archivers
release=cvsАрхиваторы.ports-astro
release=cvsПорты для астрономии.ports-audio
release=cvsПоддержка звука.ports-base
release=cvsИнфраструктура сборки портов -
различные файлы, расположенные в подкаталогах
Mk/ и
Tools/ каталога
/usr/ports.Пожалуйста, прочтите важное
предупреждение выше: вы должны
всегда обновлять эту
подколлекцию, при каждом обновлении любой
части коллекции портов FreeBSD!ports-benchmarks
release=cvsИзмерение производительности.ports-biology
release=cvsПрограммы для биологии.ports-cad
release=cvsИнструменты САПР.ports-chinese
release=cvsПоддержка китайского языка.ports-comms
release=cvsКоммуникационные программы.ports-converters
release=cvsПреобразование кодировок.ports-databases
release=cvsБазы данных.ports-deskutils
release=cvsВещи, использовавшиеся на рабочем столе
до изобретения компьютеров.ports-devel
release=cvsУтилиты разработки.ports-dns
release=cvsПрограммы, имеющие отношение к DNS.ports-editors
release=cvsРедакторы.ports-emulators
release=cvsЭмуляторы других операционных систем.ports-finance
release=cvsФинансовые, расчетные и связанные с ними
приложения.ports-ftp
release=cvsКлиентские и серверные утилиты FTP.ports-games
release=cvsИгры.ports-german
release=cvsПоддержка немецкого языка.ports-graphics
release=cvsГрафические утилиты.ports-hungarian
release=cvsПоддержка венгерского языка.ports-irc
release=cvsIRC утилиты.ports-japanese
release=cvsПоддержка японского языка.ports-java
release=cvs&java; утилиты.ports-korean
release=cvsПоддержка корейского языка.ports-lang
release=cvsЯзыки программирования.ports-mail
release=cvsПочтовое программное обеспечение.ports-math
release=cvsМатематические программы.ports-mbone
release=cvsПриложения MBone.ports-misc
release=cvsРазличные утилиты.ports-multimedia
release=cvsМультимедийное программное обеспечение.ports-net
release=cvsСетевое программное обеспечение.ports-news
release=cvsПрограммное обеспечение новостей USENET.ports-palm
release=cvsПрограммная поддержка для
Palm.ports-polish
release=cvsПоддержка польского языка.ports-portuguese
release=cvsПоддержка португальского языка.ports-print
release=cvsПрограммы печати.ports-russian
release=cvsПоддержка русского языка.ports-security
release=cvsУтилиты безопасности.ports-shells
release=cvsОболочки командной строки.ports-sysutils
release=cvsСистемные утилиты.ports-textproc
release=cvsУтилиты обработки текста (не включают
настольные утилиты публикации).ports-vietnamese
release=cvsПоддержка вьетнамского языка.ports-www
release=cvsПрограммы, относящиеся к World Wide
Web.ports-x11
release=cvsПорты с поддержкой X window
system.ports-x11-clocks
release=cvsЧасы X11.ports-x11-fm
release=cvsФайловые менеджеры X11.ports-x11-fonts
release=cvsШрифты и шрифтовые утилиты X11.ports-x11-toolkits
release=cvsПакеты разработки приложений для X11.ports-x11-serversСерверы X11.ports-x11-wmОконные менеджеры X11.src-all release=cvsОсновные исходные тексты FreeBSD, включая
криптографический код.src-base
release=cvsРазличные файлы непосредственно из
/usr/src.src-bin
release=cvsУтилиты, которые могут
потребоваться в однопользовательском режиме
(/usr/src/bin).src-contrib
release=cvsУтилиты и библиотеки, заимствованные проектом
FreeBSD, используются почти без модификаций
(/usr/src/contrib).src-crypto release=cvsКриптографические утилиты и библиотеки,
заимствованные проектом FreeBSD, используются
почти без модификаций
(/usr/src/crypto).src-eBones release=cvsKerberos и DES
(/usr/src/eBones). Не
используются в текущих релизах FreeBSD.src-etc
release=cvsФайлы настройки системы
(/usr/src/etc).src-games
release=cvsИгры
(/usr/src/games).src-gnu
release=cvsУтилиты, попадающие под GNU Public
License (/usr/src/gnu).src-include
release=cvsФайлы заголовков
(/usr/src/include).src-kerberos5
release=cvsПакет безопасности Kerberos5
(/usr/src/kerberos5).src-kerberosIV
release=cvsПакет безопасности KerberosIV
(/usr/src/kerberosIV).src-lib
release=cvsБиблиотеки
(/usr/src/lib).src-libexec
release=cvsСистемные программы, обычно выполняемые
другими программами
(/usr/src/libexec).src-release
release=cvsФайлы, необходимые для производства релизов
FreeBSD
(/usr/src/release).src-sbin release=cvsСистемные утилиты для однопользовательского
режима
(/usr/src/sbin).src-secure
release=cvsКриптографические библиотеки и команды
(/usr/src/secure).src-share
release=cvsФайлы, которые могут быть использованы
несколькими системами
(/usr/src/share).src-sys
release=cvsЯдро
(/usr/src/sys).src-sys-crypto
release=cvsКриптографический код ядра
(/usr/src/sys/crypto).src-tools
release=cvsРазличные инструменты для поддержки FreeBSD
(/usr/src/tools).src-usrbin
release=cvsПользовательские утилиты
(/usr/src/usr.bin).src-usrsbin
release=cvsСистемные утилиты
(/usr/src/usr.sbin).www release=cvsИсходные тексты www сайта FreeBSD.distrib release=selfСобственные файлы настройки сервера
CVSup. Используются зеркалами
CVSup.gnats release=currentБаза данных отслеживания ошибок GNATS.mail-archive release=currentАрхив списков рассылки FreeBSD.www release=currentФайлы предобработки WWW сайта FreeBSD (не исходные
файлы). Используются зеркалами WWW.Дальнейшая информацияCVSup FAQ и другая информация о
CVSup находится на
Домашней
странице CVSup.Большая часть связанных с FreeBSD обсуждений
CVSup проводилась в &a.hackers;. Новые
версии программного обеспечения анонсируются здесь и в
&a.announce;.Вопросы и сообщения об ошибках адресуйте автору программы
cvsup-bugs@polstra.com.Зеркала CVSupCVSup серверы для FreeBSD работают на
следующих сайтах:
&chap.mirrors.cvsup.inc;
Теги CVS
- При получении или обновлении исходных текстов через
+ При получении или обновлении исходных текстов с использованием
cvs или
- CVSup должен быть указан тег
- (определяющий точку во времени).
-
-
- Тег относится либо к определенной линии разработки
- FreeBSD, либо к определенному моменту времени. Первый тип называется
+ CVSup должен быть указан тег ревизии
+ Тег относится либо к определенной линии разработки &os;
+ либо к определенному моменту времени. Первый тип называется
тегом ветви, второй тип называется тегом
релиза.Теги ветвейВсе они, за исключением HEAD (который всегда
работает), относятся только к дереву src/.
Деревья ports/, doc/ и
www/ не имеют тегов ветвей.HEADСимволическое имя для основной ветви разработки,
FreeBSD-CURRENT. Используется по умолчанию, если тег не
указан.В CVSup, этот тег представлен
символом . (не знак пунктуации, а
символ .).В CVS тег по умолчанию используется, если тег не указан
вообще. Обычно не очень хорошей идеей является обновление
до CURRENT на машине со STABLE, только если вы не стремитесь
именно к этому.RELENG_5_2Ветвь релиза для FreeBSD-5.2 и FreeBSD-5.2.1, используемая только
для исправлений безопасности и других критических
исправлений.RELENG_5_1Ветвь релиза для FreeBSD-5.1, используемая только
для исправлений безопасности и других критических
исправлений.RELENG_5_0Ветвь релиза для FreeBSD-5.0, используемая только
для исправлений безопасности и других критических
исправлений.RELENG_4Ветвь разработки FreeBSD-4.X, известная также как
FreeBSD-STABLE.RELENG_4_10Ветвь релиза для FreeBSD-4.10, используемая только
для исправлений безопасности и других критических
исправлений.RELENG_4_9Ветвь релиза для FreeBSD-4.9, используемая только
для исправлений безопасности и других критических
исправлений.RELENG_4_8Ветвь релиза для FreeBSD-4.8, используемая только
для исправлений безопасности и других критических
исправлений.RELENG_4_7Ветвь релиза для FreeBSD-4.7, используемая только
для исправлений безопасности и других критических
исправлений.RELENG_4_6Ветвь релиза для FreeBSD-4.6 и FreeBSD-4.6.2, используемая
только для исправлений безопасности и других критических
исправлений.RELENG_4_5Ветвь релиза для FreeBSD-4.5, используемая только
для исправлений безопасности и других критических
исправлений.RELENG_4_4Ветвь релиза для FreeBSD-4.4, используемая только
для исправлений безопасности и других критических
исправлений.RELENG_4_3Ветвь релиза для FreeBSD-4.3, используемая только
для исправлений безопасности и других критических
исправлений.RELENG_3Ветвь разработки для FreeBSD-3.X, известная также как
3.X-STABLE.RELENG_2_2Ветвь разработки для FreeBSD-2.2.X, известная также как
2.2-STABLE. Эта ветвь по большей части устарела.Теги релизов
-
- Эти ветви соответствуют дереву FreeBSD src/
- tree (а также деревьям ports/,
- doc/, и www/) в определенные
- моменты времени, когда были выпущены определенные релизы
- FreeBSD.
+ Эти теги относятся к определенным моментам времени, когда
+ были выпущены конкретные версия &os;. Процесс выпуска релизов
+ более детально документирован в информации о выпусках релизов
+ и статье о
+ процессе подготовки релизов. Дерево
+ src использует имена тегов,
+ начинающиеся с RELENG_. Деревья
+ ports и
+ doc используют теги, имена
+ которых начинаются с RELEASE.
+ Наконец, в дереве www
+ нет специальных имен для релизов.RELENG_4_10_0_RELEASEFreeBSD 4.10RELENG_5_2_1_RELEASEFreeBSD 5.2.1RELENG_5_2_0_RELEASEFreeBSD 5.2RELENG_4_9_0_RELEASEFreeBSD 4.9RELENG_5_1_0_RELEASEFreeBSD 5.1RELENG_4_8_0_RELEASEFreeBSD 4.8RELENG_5_0_0_RELEASEFreeBSD 5.0RELENG_4_7_0_RELEASEFreeBSD 4.7RELENG_4_6_2_RELEASEFreeBSD 4.6.2RELENG_4_6_1_RELEASEFreeBSD 4.6.1RELENG_4_6_0_RELEASEFreeBSD 4.6RELENG_4_5_0_RELEASEFreeBSD 4.5RELENG_4_4_0_RELEASEFreeBSD 4.4RELENG_4_3_0_RELEASEFreeBSD 4.3RELENG_4_2_0_RELEASEFreeBSD 4.2RELENG_4_1_1_RELEASEFreeBSD 4.1.1RELENG_4_1_0_RELEASEFreeBSD 4.1RELENG_4_0_0_RELEASEFreeBSD 4.0RELENG_3_5_0_RELEASEFreeBSD-3.5RELENG_3_4_0_RELEASEFreeBSD-3.4RELENG_3_3_0_RELEASEFreeBSD-3.3RELENG_3_2_0_RELEASEFreeBSD-3.2RELENG_3_1_0_RELEASEFreeBSD-3.1RELENG_3_0_0_RELEASEFreeBSD-3.0RELENG_2_2_8_RELEASEFreeBSD-2.2.8RELENG_2_2_7_RELEASEFreeBSD-2.2.7RELENG_2_2_6_RELEASEFreeBSD-2.2.6RELENG_2_2_5_RELEASEFreeBSD-2.2.5RELENG_2_2_2_RELEASEFreeBSD-2.2.2RELENG_2_2_1_RELEASEFreeBSD-2.2.1RELENG_2_2_0_RELEASEFreeBSD-2.2.0AFS сайтыAFS серверы для FreeBSD работают на следующих сайтах:ШвецияЧасть файлов:
/afs/stacken.kth.se/ftp/pub/FreeBSD/stacken.kth.se # Stacken Computer Club, KTH, Sweden
130.237.234.43 #hot.stacken.kth.se
130.237.237.230 #fishburger.stacken.kth.se
130.237.234.3 #milko.stacken.kth.seОтветственный ftp@stacken.kth.sersync сайтыСледующие сайты организуют доступ к FreeBSD через протокол rsync
Утилита rsync работает в основном тем же
путем, что и команда &man.rcp.1;, но поддерживает больше параметров
и использует протокол удаленного обновления rsync, который передает
только разницу между двумя наборами файлов, что значительно повышает
скорость синхронизации по сети. Это особенно полезно, если вы
поддерживаете зеркало сервера FreeBSD FTP, или репозитория CVS.
Пакет rsync доступен для многих
операционных систем, в FreeBSD используйте порт net/rsync или пакет.Чешская республикаrsync://ftp.cz.FreeBSD.org/Доступные коллекции:ftp: Частичное зеркало FreeBSD FTP
сервера.FreeBSD: Полное зеркало FreeBSD FTP
сервера.Германияrsync://grappa.unix-ag.uni-kl.de/Доступные соединения:freebsd-cvs: Полный FreeBSD CVS
репозиторий.Этот компьютер помимо прочих также зеркалирует CVS репозитории
проектов NetBSD и OpenBSD.Нидерландыrsync://ftp.nl.FreeBSD.org/Доступные коллекции:vol/3/freebsd-core: Полное зеркало
FreeBSD FTP сервера.Великобританияrsync://rsync.mirror.ac.uk/Доступные коллекции:ftp.FreeBSD.org: Полное зеркало
FreeBSD FTP сервера.Соединенные Штаты Америкиrsync://ftp-master.FreeBSD.org/Этот сервер может использоваться только основными зеркалами
FreeBSD.Доступные коллекции:FreeBSD: Основной архив FreeBSD
FTP сервера.acl: Основной ACL список
FreeBSD.rsync://ftp13.FreeBSD.org/Доступные коллекции:FreeBSD: Полное зеркало FreeBSD FTP
сервера.
diff --git a/ru_RU.KOI8-R/books/handbook/network-servers/chapter.sgml b/ru_RU.KOI8-R/books/handbook/network-servers/chapter.sgml
index 7a32dbae5a..a11b86d9c6 100644
--- a/ru_RU.KOI8-R/books/handbook/network-servers/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/network-servers/chapter.sgml
@@ -1,4931 +1,4983 @@
MurrayStokelyРеорганизовал Сетевые серверыКраткий обзорЭта глава посвящена некоторым наиболее часто используемым сетевым
службам систем &unix;. Мы опишем, как установить, настроить,
протестировать и поддерживать многие различные типы сетевых сервисов.
Для облегчения вашей работы в главу включены
примеры конфигурационных файлов.После чтения этой главы вы будете знать:Как управлять даемоном inetd.Как настроить сетевую файловую систему.Как настроить сетевой сервер информации для совместного
использования учётных записей пользователей.Как настроить автоматическое конфигурирование сетевых параметров
при помощи DHCP.Как настроить сервер имён.
- Как настроить Apache HTTP сервер.
+ Как настроить Apache HTTP
+ сервер.
- Как настроить файловый и принт сервер для Windows
- клиентов с использованием Samba.
+ Как настроить файловый и принт сервер для &windows;
+ клиентов с использованием Samba.Как синхронизировать дату и время, а также настроить сервер
времени с протоколом NTP.Перед чтением этой главы вы должны:Понимать основы работы скриптов
/etc/rc.Свободно владеть основными сетевыми терминами.Знать как устанавливать дополнительные программы сторонних
разработчиков ().ChernLeeТекст предоставил Супер-серверinetdОбзор&man.inetd.8; называют также супер-сервером
Интернет, потому что он управляет соединениями к нескольким
даемонам. Программы, которые предоставляют сетевые услуги, называют
даемонами. inetd выступает в качестве
управляющего сервера для других даемонов. Когда
inetd принимает соединение, он определяет,
для какого даемона предназначено соединение, вызывает соответствующий
даемон и предоставляет ему сокет. Запуск одного экземпляра
inetd уменьшает общую нагрузку на систему по
сравнению с запуском каждого даемона индивидуально в выделенном
режиме.В первую очередь inetd используется для
вызова других даемонов, но несколько простых протоколов, таких, как
chargen, auth и
daytime, обслуживаются
непосредственно.Этот раздел посвящен основам настройки
inetd посредством его параметров командной
строки и его конфигурационного файла,
/etc/inetd.conf.Настройкиinetd инициализируется посредством
системы /etc/rc.conf. Параметр
inetd_enable по умолчанию установлен в
NO, однако часто включается утилитой
sysinstall при выборе профиля среднего
уровня безопасности. Указание
inetd_enable="YES" или
inetd_enable="NO" в файле
/etc/rc.conf может задать или запретить запуск
inetd во время загрузки.Кроме того, через inetd_flags даемону
inetd могут быть переданы различные
параметры командной строки.Параметры командной строкиФормат вызова inetd:-dВключение отладочной информации.-lВключение регистрации успешных соединений.-wВключение механизма TCP Wrapping для внешних служб (по
умолчанию включено).-WВключение механизма TCP Wrapping для внутренних служб,
которые встроены в inetd (по
умолчанию включено).-c maximumОпределение максимального числа одновременных запусков каждой
службы; по умолчание не ограничено. Может быть переопределено
индивидуально для каждой службы при помощи параметра
.-C rateОпределение по умолчанию максимального количества раз,
которое служба может быть вызвана с одного IP-адреса в минуту; по
умолчанию не ограничено. Может быть переопределено для каждой
службы параметром
.-R rateОпределяет максимальное количество раз, которое служба может
быть вызвана в минуту; по умолчанию 256. Частота, равная 0,
не ограничивает число вызовов.-aЗадает один IP-адрес, к которому делается привязка.
Альтернативно может быть указано имя хоста, и в этом случае
используется соответствующий этому имени хоста адрес IPv4 или
IPv6. Обычно имя хоста задается, когда
inetd запускается в окружении
&man.jail.8;, и в этом случае имя хоста соответствует этому
&man.jail.8;-окружению.Если используется формат с именем хоста и требуется привязка
как для IPv4, так и для IPv6, то для каждой привязки требуется
запись с соответствующим типом протокола для каждой службы в
файле /etc/inetd.conf. К примеру, службе
на основе TCP потребуется две записи, в одной для протокола
используется tcp4, а в другой
используется tcp6.-pЗадает альтернативный файл для хранения ID процесса.Эти параметры могут быть переданы в
inetd при помощи
inetd_flags в файле
/etc/rc.conf. По умолчанию значение
inetd_flags установлено в -wW,
что включает механизм TCP wrapping для внутренних и внешних служб
inetd. Новичкам эти параметры изменять и
даже задавать их в файле /etc/rc.conf не
нужно.Внешняя служба является даемоном вне
inetd, который запускается при получении
соединения к нему. С другой стороны, внутренней службой является
услуга, которую inetd предоставляет
сам.inetd.confНастройка inetd управляется через файл
/etc/inetd.conf.Если в файле /etc/inetd.conf делались
изменения, то inetd можно заставить считать
его конфигурационный файл повторно, послав сигнал HangUP процессу
inetd, как показано здесь:Посылка сигнала HangUP процессу
inetd&prompt.root; kill -HUP `cat /var/run/inetd.pid`В каждой строке конфигурационного файла описывается отдельный
даемон. Комментариям в файле предшествует знак #. Файл
/etc/inetd.conf имеет такой формат:service-name
socket-type
protocol
{wait|nowait}[/max-child[/max-connections-per-ip-per-minute]]
user[:group][/login-class]
server-program
server-program-argumentsПример записи для даемона ftpd,
использующего IPv4:ftp stream tcp nowait root /usr/libexec/ftpd ftpd -lservice-nameЭто имя сервиса, предоставляемого конкретным даемоном. Оно
должно соответствовать сервису, указанному в файле
/etc/services. Здесь определяется, какой
порт должен обслуживать inetd. При
создании нового сервиса он должен помещаться сначала в файл
/etc/services.socket-typestream, dgram,
raw либо seqpacket.
stream должен использоваться для
ориентированных на соединение даемонов TCP, когда как
dgram используется для даемонов, использующих
транспортный протокол UDP.protocolОдно из следующих:ПротоколОписаниеtcp, tcp4TCP IPv4udp, udp4UDP IPv4tcp6TCP IPv6udp6UDP IPv6tcp46TCP как для IPv4, так и для v6udp46UDP как для IPv4, так и для v6{wait|nowait}[/max-child[/max-connections-per-ip-per-minute]] определяет, может ли даемон,
вызванный из inetd, работать с
собственным сокетом, или нет. Сокеты типа
должны использовать параметр , когда как
даемоны с потоковыми
сокетами, которые обычно многопоточны, должны использовать
. обычно передает
много сокетов одному даемону, когда как
порождает даемон для каждого нового сокета.Максимальное число порожденных даемонов, которых может
создать inetd, может быть задано
параметром . Если нужно ограничение в
десять экземпляров некоторого даемона, то после параметра
нужно задать
/10.Кроме , может быть задействован
другой параметр, ограничивающий максимальное число соединений от
одного источника.
служит именно
для этого. Здесь значение, равное десяти, будет ограничивать
любой заданный IP-адрес на выполнение десяти попыток подключения
к некоторому сервису в минуту. Это полезно для предотвращения
намеренного или ненамеренного расходования ресурсов и атак типа
Denial of Service (DoS) на машину.В этом поле или
обязательны. и
опциональны.Многопоточный даемон типа stream без ограничений
или
будет
определен просто вот так: nowait.Тот же самый даемон с ограничением в максимум десять даемонов
будет определен так: nowait/10.Наконец, та же конфигурация с ограничением в двадцать
соединений на IP-адрес в минуту и общим ограничением в максимум
десять порожденных даемонов выглядит так:
nowait/10/20.Эти параметры, используемые все со значениями по умолчанию
даемоном fingerd, имеют такой
вид:finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -suserЭто имя пользователя, под которым должен
работать соответствующий даемон. Чаще всего даемоны работают
как пользователь root. Для обеспечения
безопасности некоторые серверы запускаются как пользователь
daemon или как пользователь с минимальными
правами nobody.server-programПолный маршрут к даемону, который будет выполняться при
установлении соединения. Если даемон является сервисом,
предоставляемым самим inetd, то нужно
задать ключевое слово .server-program-argumentsЭтот параметр работает вместе с параметром
, задавая параметры, начиная с
argv[0], передаваемые даемону при запуске.
Если в командной
строке задано mydaemon -d, то
mydaemon -d будет являться значением для
. И снова, если даемон
является внутренней службой, то здесь нужно использовать
.БезопасностьВ зависимости от схемы безопасности, выбранной при установке,
многие из даемонов inetd могут оказаться по
умолчанию включенными. Если нет особой нужды в некотором даемоне, то
выключите его! Поместите знак # перед ненужным даемоном
в /etc/inetd.conf
и пошлите сигнал для inetd.
Некоторые даемоны, такие, как fingerd,
вообще нежелательны, потому что они дают атакующему слишком много
информации.Некоторые даемоны не заботятся о безопасности и имеют большие
таймауты для соединений или вообще их не имеют. Это позволяет
атакующему неспешно устанавливать соединения к конкретному даемону,
истощая имеющиеся ресурсы. Может оказаться полезным задать для
некоторых даемонов ограничения
и
.По умолчанию механизм TCP wrapping включен. Обратитесь к
справочной странице по &man.hosts.access.5; для получения более
подробной информации о задании ограничений TCP для различных даемонов,
запускаемых посредством inetd.Разноеdaytime,
time,
echo,
discard,
chargen и
auth все являются услугами, предоставляемыми
самим inetd.Сервис auth предоставляет
идентификационные сетевые услуги
(ident, identd)
и поддается настройке.Обратитесь к справочной странице по &man.inetd.8; для получения
более подробной информации.TomRhodesРеорганизация и улучшения BillSwingleТекст создал Network File System (NFS)NFSКроме поддержки многих прочих типов файловых систем, во FreeBSD
встроена поддержка сетевой файловой системы (Network File System),
известной как NFS. NFS позволяет
системе использовать каталоги и файлы совместно с другими машинами,
посредством сети. Посредством NFS пользователи и
программы могут получать доступ к файлам на удалённых системах точно так
же, как если бы это были файлы на собственных дисках.Вот некоторые из наиболее заметных преимуществ, которые даёт
использование NFS:Отдельно взятые рабочие станции используют меньше собственного
дискового пространства, так как совместно используемые данные могут
храниться на одной отдельной машине и быть доступными для других
машин в сети.Пользователям не нужно иметь домашние каталоги, отдельные
для каждой машины в вашей сети. Домашние каталоги могут
располагаться на сервере NFS и их можно сделать
доступными отовсюду в сети.Устройства хранения информации, такие, как дискеты, приводы
CD-ROM и устройства ZIP, могут использоваться другими машинами в
сети. Это может привести к уменьшению переносимых устройств хранения
информации в сети.Как работает NFSNFS строится по крайней мере из двух основных
частей: сервера и одного или большего количества клиентов. Клиент
обращается к данным, находящимся на сервере, в режиме удалённого
доступа. Для того, чтобы это нормально функционировало, нужно
настроить и запустить несколько процессов.В &os; 5.X, утилита portmap была
заменена на утилиту rpcbind.
Таким образом, при
использовании &os; 5.X пользователю необходимо заменить в
последующих примерах все команды portmap
на rpcbind.На сервере работают следующие даемоны:NFSсерверфайл серверunix клиентыportmapmountdnfsdДаемонОписаниеnfsdДаемон NFS, обслуживающий запросы от
клиентов NFS.mountdДаемон монтирования NFS, который
выполняет запросы, передаваемые ему от &man.nfsd.8;.portmapДаемон отображения портов позволяет клиентам
NFS определить порт, используемый сервером
NFS.Клиент может запустить также даемон, называемый
nfsiod. nfsiod
обслуживает запросы, поступающие от сервера от сервера
NFS. Он необязателен, увеличивает
производительность, однако для нормальной и правильной работы не
требуется. Для получения дополнительной информации обратитесь к
разделу справочной системы о &man.nfsiod.8;.Настройка NFSNFSнастройкаНастройка NFS является достаточно незамысловатым
процессом. Все процессы, которые должны быть запущены, могут быть
запущены во время загрузки посредством нескольких модификаций в
вашем файле /etc/rc.conf.Проверьте, что на NFS-сервере в файле
/etc/rc.conf имеются такие строки:portmap_enable="YES"
nfs_server_enable="YES"
nfs_server_flags="-u -t -n 4"
mountd_flags="-r"mountd запускается автоматически, если включена
функция сервера NFS.На клиенте убедитесь, что в файле /etc/rc.conf
присутствует такой параметр:nfs_client_enable="YES"Файл /etc/exports определяет, какие
файловые системы на вашем сервере NFS будут
экспортироваться (иногда их называют совместно
используемыми). Каждая строка в
/etc/exports задаёт файловую систему, которая
будет экспортироваться и какие машины будут иметь к ней доступ. Кроме
машин, имеющих доступ, могут задаваться другие параметры, влияющие на
характеристики доступа. Имеется полный набор параметров,
которые можно использовать, но здесь пойдёт речь лишь о некоторых из
них. Описания остальных параметров можно найти на страницах справочной
системы по &man.exports.5;.Вот несколько примерных строк из файла
/etc/exports:NFSпримеры экспортированияВ следующих примерах даётся общая идея того, как экспортировать
файловые системы, хотя конкретные параметры могут отличаться в
зависимости от ваших условий и конфигурации сети. К примеру, чтобы
экспортировать каталог /cdrom для трёх машин,
находящихся в том же самом домене, что и сервер (поэтому отсутствует
доменное имя для каждой машины) или для которых имеются записи в
файле /etc/hosts. Флаг
указывает на использование экспортируемой файловой
системы в режиме только чтения. С этим флагом удалённая система не
сможет никоим образом изменить экспортируемую файловую систему./cdrom -ro host1 host2 host3В следующей строке экспортируется файловая система
/home, которая становится доступной трем хостам,
указанным по их IP-адресам. Это полезно, если у вас есть собственная
сеть без настроенного сервера DNS. Как вариант,
файл /etc/hosts может содержать внутренние имена
хостов; пожалуйста, обратитесь к справочную систему по &man.hosts.5;
для получения дополнительной информации. Флаг
позволяет рассматривать подкаталоги в
качестве точек монтирования. Другими словами, это не монтирование
подкаталогов, но разрешение клиентам монтировать только каталоги,
которые им требуются или нужны./home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4В строке, приведённой ниже, файловая система
/a экспортируется таким образом, что она доступна
двум клиентам из других доменов. Параметр
позволяет пользователю
root удалённой системы осуществлять запись на
экспортируемую файловую систему как пользователь
root. Если параметр
-maproot=root не задан,
то даже если пользователь имеет права доступа root
на удалённой системе, он не сможет модифицировать
файлы на экспортированной файловой системе./a -maproot=root host.example.com box.example.orgДля того, чтобы клиент смог обратиться к экспортированной файловой
системе, он должен иметь права сделать это. Проверьте, что клиент
указан в вашем файле /etc/exports.В файле /etc/exports каждая строка содержит
информацию об экспортировании для отдельной файловой системы для
отдельно взятого хоста. Удалённый хост может быть задан только
один раз для каждой файловой системы, и может иметь
только одну запись, используемую по умолчанию, для каждой локальной
файловой системы. К примеру, предположим, что
/usr является отдельной файловой системой.
Следующий /etc/exports будет некорректен:/usr/src client
/usr/ports clientОдна файловая система, /usr, имеет две
строки, задающие экспортирование для одного и того же хоста,
client. Правильный формат в этом случае таков:/usr/src /usr/ports clientСвойства отдельной файловой системы, экспортируемой некоторому
хосту, должны задаваться в одной строке. Строки без указания клиента
воспринимаются как отдельный хост. Это ограничивает то, как вы можете
экспортировать файловые системы, но для большинства это не
проблема.Ниже приведён пример правильного списка экспортирования, где
/usr и /exports являются
локальными файловыми системами:# Экспортируем src и ports для client01 и client02, но
# только client01 имеет права пользователя root на них
/usr/src /usr/ports -maproot=root client01
/usr/src /usr/ports client02
# Клиентские машины имеют пользователя root и могут монтировать всё в
# каталоге /exports. Кто угодно может монтировать /exports/obj в режиме чтения
/exports -alldirs -maproot=root client01 client02
/exports/obj -roВы должны перезапустить mountd после того, как
изменили /etc/exports, чтобы изменения вступили в
силу. Это может быть достигнуто посылкой сигнала HUP процессу
mountd:&prompt.root; kill -HUP `cat /var/run/mountd.pid`Как вариант, при перезагрузке FreeBSD всё настроится правильно.
Хотя выполнять перезагрузку вовсе не обязательно. Выполнение следующих
команд пользователем root запустит всё, что
нужно.На сервере NFS:&prompt.root; portmap
&prompt.root; nfsd -u -t -n 4
&prompt.root; mountd -rНа клиенте NFS:&prompt.root; nfsiod -n 4Теперь всё должно быть готово к реальному монтированию удалённой
файловой системы. В приводимых примерах сервер будет носить имя
server, а клиент будет носить имя
client. Если вы только хотите
временно смонтировать удалённую файловую систему, или всего лишь
протестировать ваши настройки, то просто запустите команды, подобные
приводимым здесь, работая как пользователь root на
клиентской машине:NFSмонтирование&prompt.root; mount server:/home /mntПо этой команде файловая система /home на
сервере будет смонтирована в каталог /mnt на
клиенте. Если всё настроено правильно, вы сможете войти в каталог
/mnt на клиенте и увидеть файлы, находящиеся на
сервере.Если вы хотите автоматически монтировать удалённую файловую
систему при каждой загрузке компьютера, добавьте файловую систему в
/etc/fstab. Вот пример:server:/home /mnt nfs rw 0 0На страницах справочной системы по &man.fstab.5; перечислены все
доступные параметры.Практическое использованиеУ NFS есть много вариантов практического
применения. Ниже приводится несколько наиболее широко распространённых
способов её использования:NFSиспользованиеНастройка несколько машин для совместного использования CDROM
или других носителей. Это более дешёвый и зачастую более удобный
способ установки программного обеспечения на несколько машин.В больших сетях может оказаться более удобным настроить
центральный сервер NFS, на котором размещаются
все домашние каталоги пользователей. Эти домашние каталоги могут
затем экспортироваться в сеть так, что пользователи всегда будут
иметь один и тот же домашний каталог вне зависимости от того, на
какой рабочей станции они работают.Несколько машин могут иметь общий каталог
/usr/ports/distfiles. Таким образом, когда
вам нужно будет установить порт на несколько машин, вы сможете быстро
получить доступ к исходным текстам без их загрузки на каждой
машине.WylieStilwellТекст предоставил ChernLeeТекст переписал Автоматическое монтирование с
amdamdдаемон автоматического монтирования&man.amd.8; (даемон автоматического монтирования) автоматически
монтирует удалённую файловую систему,
как только происходит обращение к файлу или каталогу в этой файловой
системе. Кроме того, файловые системы, которые были неактивны
некоторое время, будут автоматически размонтированы даемоном
amd. Использование
amd является простой альтернативой
статическому монтированию, так как в последнем случае обычно всё должно
быть описано в файле /etc/fstab.amd работает, сам выступая как сервер
NFS для каталогов /host и
/net. Когда происходит обращение к файлу в одном
из этих каталогов, amd ищет соответствующий
удаленный ресурс для монтирования и автоматически его монтирует.
/net используется для монтирования экспортируемой
файловой системы по адресу IP, когда как каталог
/host используется для монтирования ресурса по
удаленному имени хоста.Обращение к файлу в каталоге
/host/foobar/usr укажет
amd на выполнение попытки монтирования
ресурса /usr, который находится на хосте
foobar.Монтирование ресурса при помощи
amdВы можете посмотреть доступные для монтирования ресурсы
отдалённого хоста командой showmount. К примеру,
чтобы посмотреть ресурсы хоста с именем foobar, вы
можете использовать:&prompt.user; showmount -e foobar
Exports list on foobar:
/usr 10.10.10.0
/a 10.10.10.0
&prompt.user; cd /host/foobar/usrКак видно из примера, showmount показывает
/usr как экспортируемый ресурс. При переходе в
каталог /host/foobar/usr даемон
amd пытается разрешить имя хоста
foobar и автоматически смонтировать требуемый
ресурс.amd может быть запущен из скриптов
начальной загрузки, если поместить такую строку в файл
/etc/rc.conf:amd_enable="YES"Кроме того, даемону amd могут быть
переданы настроечные флаги через параметр
amd_flags. По умолчанию
amd_flags настроен следующим образом:amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map"Файл /etc/amd.map задает опции, используемые
по умолчанию при монтировании экспортируемых ресурсов. В файле
/etc/amd.conf заданы настройки некоторых более
сложных возможностей amd.Обратитесь к справочным страницам по &man.amd.8; и &man.amd.conf.5;
для получения более полной информации.JohnLindТекст предоставил Проблемы взаимодействия с другими системамиНекоторые сетевые адаптеры для систем PC с шиной ISA имеют
ограничения, которые могут привести к серьезным проблемам в сети, в
частности, с NFS. Эти проблемы не специфичны для FreeBSD, однако
эту систему они затрагивают.Проблема, которая возникает практически всегда при работе по сети
систем PC (FreeBSD) с высокопроизводительными рабочими станциями,
выпущенными такими производителями, как Silicon Graphics, Inc. и Sun
Microsystems, Inc. Монтирование по протоколу NFS будет работать
нормально, и некоторые операции также будут выполняться успешно, но
неожиданно сервер окажется недоступным для клиент, хотя запросы к и
от других систем будут продолжаться обрабатываться. Такое встречается
с клиентскими системами, не зависимо от того, является ли клиент
машиной с FreeBSD или рабочей станцией. Во многих системах при
возникновении этой проблемы нет способа корректно завершить работу
клиента. Единственным выходом зачастую является холодная перезагрузка
клиента, потому что ситуация с NFS не может быть разрешена.Хотя правильным решением является установка более
производительного и скоростного сетевого адаптера на систему FreeBSD,
имеется простое решение, приводящее к удовлетворительным результатам.
Если система FreeBSD является сервером, укажите
параметр на клиенте при монтировании. Если
система FreeBSD является клиентом, то смонтируйте
файловую систему NFS с параметром . Эти
параметры могут быть заданы в четвертом поле записи в файле
fstab клиента при автоматическом монтировании,
или при помощи параметра в команде &man.mount.8; при
монтировании вручную.Нужно отметить, что имеется также другая проблема, ошибочно
принимаемая за приведенную выше, когда серверы и клиенты NFS находятся
в разных сетях. Если это тот самый случай,
проверьте, что ваши маршрутизаторы пропускают
нужную информацию UDP, в противном случае вы
ничего не получите, что бы вы ни предпринимали.В следующих примерах fastws является именем хоста
(интерфейса) высокопроизводительной рабочей станции, а
freebox является именем хоста (интерфейса) системы
FreeBSD со слабым сетевым адаптером. Кроме того,
/sharedfs будет являться экспортируемой через NFS
файловой системой (обратитесь к страницам справочной системы по команде
&man.exports.5;), а /project будет точкой
монтирования экспортируемой файловой системы на клиенте. В любом
случае, отметьте, что для вашего приложения могут понадобиться
дополнительные параметры, такие, как ,
или .Пример системы FreeBSD (freebox) как клиента
в файле /etc/fstab на машине
freebox:fastws:/sharedfs /project nfs rw,-r=1024 0 0Команда, выдаваемая вручную на машине
freebox:&prompt.root; mount -t nfs -o -r=1024 fastws:/sharedfs /projectПример системы FreeBSD в качестве сервера в файле
/etc/fstab на машине
fastws:freebox:/sharedfs /project nfs rw,-w=1024 0 0Команда, выдаваемая вручную на машине
fastws:&prompt.root; mount -t nfs -o -w=1024 freebox:/sharedfs /projectПрактически все 16-разрядные сетевые адаптеры позволят работать
без указанных выше ограничений на размер блоков при чтении и
записи.Для тех, кто интересуется, ниже описывается, что же происходит в
при появлении этой ошибки, и объясняется, почему ее невозможно
устранить. Как правило, NFS работает с блоками размером
8 килобайт (хотя отдельные фрагменты могут иметь меньшие
размеры). Так, пакет Ethernet имеет максимальный размер около
1500 байт, то
блок NFS разбивается на несколько пакетов Ethernet, хотя
на более высоком уровне это все тот же единый блок, который должен быть
принят, собран и подтвержден как один блок.
Высокопроизводительные рабочие станции могут посылать пакеты, которые
соответствуют одному блоку NFS, сразу друг за другом, насколько это
позволяет делать стандарт. На слабых, низкопроизводительных адаптерах
пакеты, пришедшие позже, накладываются поверх ранее пришедших пакетов
того же самого блока до того, как они могут быть переданы хосту и
блок как единое целое не может быть собран или подтвержден. В
результате рабочая станция входит в ситуацию таймаута и пытается
повторить передачу, но уже с полным блоком в 8 КБ, и процесс будет
повторяться снова, до бесконечности.Задав размер блока меньше размера пакета Ethernet, мы достигаем
того, что любой полностью полученный пакет Ethernet может быть
подтвержден индивидуально, и избежим тупиковую ситуацию.Наложение пакетов может все еще проявляться, когда
высокопроизводительные рабочие станции сбрасывают данные на PC-систему,
однако повторение этой ситуации не обязательно с более скоростными
адаптерами с блоками NFS. Когда происходит наложение,
затронутые блоки будут переданы снова, и скорее всего, они будут
получены, собраны и подтверждены.BillSwingleТекст создал EricOgrenВнёс добавления UdoErdelhoffNetwork Information System (NIS/YP)Что это такое?NISSolarisHP-UXAIXLinuxNetBSDOpenBSDNIS,
что является сокращением от Network Information Services
(Сетевые Информационные Службы), которые были разработаны компанией
Sun Microsystems для централизованного администрирования систем &unix;
(изначально &sunos;). В настоящее время эти службы практически стали
промышленным стандартом; все основные &unix;-подобные системы
(&solaris;, HP-UX, &aix;, Linux, NetBSD, OpenBSD, FreeBSD и так далее)
поддерживают NIS.yellow pagesNISNIS
первоначально назывались Yellow Pages (или yp), но из-за
проблем с торговым знаком Sun изменила это название. Старое название
(и yp) всё ещё часто употребляется.NISдоменыЭто система клиент/сервер на основе вызовов RPC, которая позволяет
группе машин в одном домене NIS совместно использовать общий набор
конфигурационных файлов. Системный администратор может настроить
клиентскую систему NIS только с минимальной настроечной информацией, а
затем добавлять, удалять и модифицировать настроечную информацию из
одного места.Windows NTЭто похоже на систему доменов &windowsnt;; хотя их внутренние
реализации не так уж и похожи, основные функции сравнимы.Термины/программы, о которых вы должны знатьСуществует несколько терминов и некоторое количество
пользовательских программ, которые будут нужны, когда вы будете
пытаться сделать NIS во FreeBSD, и в случае создания сервера, и
в случае работы в качестве клиента NIS:portmapТерминОписаниеИмя домена NISГлавный сервер NIS и все его клиенты (включая вторичные
серверы), имеют доменное имя NIS. Как и в случае с именем
домена &windowsnt;, имя домена NIS не имеет ничего общего с
DNS.portmapДля обеспечения работы RPC (Remote Procedure Call,
Удалённого Вызова Процедур, сетевого протокола, используемого
NIS), должен быть запущен даемон portmap.
Если даемон portmap не запущен, невозможно
будет запустить сервер NIS, или работать как
NIS-клиент.ypbindСвязывает
NIS-клиента с его NIS-сервером. Он определяет имя NIS-домена
системы, и при помощи RPC подключается к серверу.
ypbind является основой клиент-серверного
взаимодействия в среде NIS; если на клиентской машине
программа ypbind перестанет работать, то
эта машина не сможет получить доступ к серверу NIS.ypservПрограмма ypserv, которая должна
запускаться только на серверах NIS: это и есть
сервер NIS. Если &man.ypserv.8; перестанет работать, то
сервер не сможет отвечать на запросы NIS (к счастью, на этот
случай предусмотрен вторичный сервер). Есть несколько
реализаций NIS (к FreeBSD это не относится), в которых не
производится попыток подключиться к другому серверу, если ранее
используемый сервер перестал работать. Зачастую единственным
средством, помогающим в этой ситуации, является перезапуск
серверного процесса (или сервера полностью) или процесса
ypbind на клиентской машине.rpc.yppasswddПрограмма rpc.yppasswdd, другой
процесс, который запускается только на главных NIS-серверах:
это даемон, позволяющий клиентам NIS изменять свои
пароли NIS. Если этот даемон не запущен, то пользователи
должны будут входить на основной сервер NIS и там менять свои
пароли.Как это работает?В системе NIS существует три типа хостов: основные (master)
серверы, вторичные (slave) серверы и клиентские машины. Серверы
выполняют роль централизованного хранилища информации о конфигурации
хостов. Основные серверы хранят оригиналы этой информации, когда как
вторичные серверы хранят ее копию для обеспечения избыточности.
Клиенты связываются с серверами, чтобы предоставить им эту
информацию.Информация во многих файлах может совместно использоваться
следующим образом. Файлы master.passwd,
group и hosts используются
совместно через NIS. Когда процессу, работающему на клиентской машине,
требуется информация, как правило, находящаяся в этих файлах локально,
то он делает запрос к серверу NIS, с которым связан.Типы машинNISглавный серверОсновной сервер NIS.
Такой сервер, по аналогии с первичным контроллером домена
&windowsnt;, хранит файлы, используемые всеми клиентами NIS. Файлы
passwd, group и
различные другие файлы, используемые клиентами NIS, находятся
на основном сервере.Возможно использование одной машины в качестве сервера для
более чем одного домена NIS. Однако, в этом введении такая
ситуация не рассматривается, и предполагается менее масштабное
использование NIS.NISвторичный серверВторичные серверы NIS. Похожие на
вторичные контроллеры доменов &windowsnt;, вторичные серверы
NIS содержат копии оригинальных файлов данных NIS. Вторичные
серверы NIS обеспечивают избыточность, что нужно в критичных
приложениях. Они также помогают распределять нагрузку на
основной сервер: клиенты NIS всегда подключаются к тому серверу
NIS, который ответил первым, в том числе и к вторичным
серверам.NISклиентКлиенты NIS.
Клиенты NIS, как и большинство рабочих станций &windowsnt;,
аутентифицируются на сервере NIS (или на контроллере домена
&windowsnt; для рабочих станций &windowsnt;) во время
входа в систему.Использование NIS/YPВ этом разделе приводится пример настройки NIS.В этом разделе предполагается, что вы работаете с FreeBSD 3.3
или выше. Указания, приводимые здесь, скорее всего,
будут работать с любой версией FreeBSD, выше,
чем 3.0, однако нет гарантий, что это на самом деле так.ПланированиеДавайте предположим, что вы являетесь администратором в маленькой
университетской лаборатории. В настоящий момент в этой лаборатории
с 15 машинами отсутствует единая точка администрирования; на каждой
машине имеются собственные файлы /etc/passwd и
/etc/master.passwd. Эти файлы синхронизируются
друг с другом только вручную; сейчас, когда вы добавляете
пользователя в лаборатории, вы должны выполнить команду
adduser на всех 15 машинах. Понятно, что такое
положение вещей нужно исправлять, так что вы решили перевести
сеть на использование NIS, используя две машины в качестве
серверов.Итак, конфигурация лаборатории сейчас выглядит примерно
так:Имя машиныIP-адресРоль машиныellington10.0.0.2Основной сервер NIScoltrane10.0.0.3Вторичный сервер NISbasie10.0.0.4Факультетская рабочая станцияbird10.0.0.5Клиентская машинаcli[1-11]10.0.0.[6-17]Другие клиентские машиныЕсли вы определяете схему NIS первый раз, ее нужно хорошо
обдумать. Вне зависимости от размеров вашей сети, есть несколько
ключевых моментов, которые требуют принятия решений.Выбор имени домена NISNISимя доменаЭто имя не должно быть именем домена, которое
вы использовали. Более точно это имя называется именем
домена NIS. Когда клиент рассылает запросы на получение
информации, он включает в них имя домена NIS, частью которого
является. Таким способом многие сервера в сети могут указать,
какой сервер на какой запрос должен отвечать. Думайте о домене
NIS как об имени группы хостов, которые каким-то образом
связаны.Некоторые организации в качестве имени домена NIS используют
свой домен Интернет. Это не рекомендуется, так как может вызвать
проблемы в процессе решения сетевых проблем. Имя домена NIS должно
быть уникальным в пределах вашей сети и хорошо, если оно будет
описывать группу машин, которые представляет. Например,
художественный отдел в компании Acme Inc. может находиться в
домене NIS с именем acme-art. В нашем примере
положим, что мы выбрали имя test-domain.SunOSНесмотря на это, некоторые операционные системы (в частности,
&sunos;) используют свое имя домена NIS в качестве имени домена
Интернет. Если одна или более машин в вашей сети имеют такие
ограничения, вы обязаны использовать имя
домена Интернет в качестве имени домена NIS.Требования к серверуЕсть несколько вещей, которые нужно иметь в виду при выборе
машины для использования в качестве сервера NIS. Одной из
обескураживающей вещью, касающейся NIS, является уровень
зависимости клиентов от серверов. Если клиент не может
подключиться к серверу своего домена NIS, зачастую машину просто
становится нельзя использовать. Отсутствие информации о
пользователях и группах приводит к временной остановке работы
большинства систем. Зная это, вы должны выбрать машину, которая
не должна подвергаться частым перезагрузкам и не используется
для разработки. Сервер NIS в идеале должен быть отдельно стоящей
машиной, единственным целью в жизни которой является быть сервером
NIS. Если вы работаете в сети, которая не так уж сильно загружена,
то можно поместить сервер NIS на машине, на которой запущены и
другие сервисы, просто имейте в виду, что если сервер NIS
становится недоступным, то это негативно отражается на
всех клиентах NIS.Серверы NISОригинальные копии всей информации NIS хранится на единственной
машине, которая называется главным сервером NIS. Базы данных,
которые используются для хранения информации, называются картами NIS.
Во FreeBSD эти карты хранятся в
/var/yp/[domainname], где
[domainname] является именем обслуживаемого
домена NIS. Один сервер NIS может поддерживать одновременно
несколько доменов, так что есть возможность иметь несколько таких
каталогов, по одному на каждый обслуживаемый домен. Каждый домен
будет иметь свой собственный независимый от других набор карт.Основной и вторичный серверы обслуживают все запросы NIS с
помощью даемона ypserv. ypserv
отвечает за получение входящих запросов от клиентов NIS,
распознавание запрашиваемого домена и отображение имени в путь к
соответствующему файлы базы данных, а также передаче информации из
базы данных обратно клиенту.Настройка основного сервера NISNISнастройка сервераНастройка основного сервера NIS может оказаться сравнительно
простой, в зависимости от ваших потребностей. В поставку FreeBSD
сразу включена поддержка NIS. Все, что вам нужно, это добавить
следующие строки в файл /etc/rc.conf, а
FreeBSD сделает за вас всё остальное..nisdomainname="test-domain"
В этой строке задается имя домена NIS, которое будет
test-domain, еще до настройки сети
(например, после перезагрузки).nis_server_enable="YES"
Здесь указывается FreeBSD на запуск процессов серверов NIS,
когда дело доходит до сетевых настроек.nis_yppasswdd_enable="YES"
Здесь указывается на запуск даемона
rpc.yppasswdd, который, как это отмечено
выше, позволит пользователям менять свой пароль NIS с
клиентской машины.В зависимости от ваших настроек NIS, вам могут понадобиться
дополнительные строки. Обратитесь к разделу о серверах NIS,
которые являются и клиентами NIS ниже для получения
подробной информации.А теперь всё, что вам нужно сделать, это запустить команду
/etc/netstart, работая как администратор. По
ней произойдет настройка всего, при этом будут использоваться
значения, заданные в файле /etc/rc.conf.Инициализация карт NISNISкартыКарты NIS являются файлами баз данных,
которые хранятся в каталоге /var/yp.
Они генерируются из конфигурационных файлов, находящихся в каталоге
/etc основного сервера NIS, за одним
исключением: файл /etc/master.passwd.
На это есть весомая причина, вам не нужно распространять пароли
пользователя root и других административных
пользователей на все серверы в домене NIS. По этой причине, прежде
чем инициализировать карты NIS, вы должны сделать вот что:&prompt.root; cp /etc/master.passwd /var/yp/master.passwd
&prompt.root; cd /var/yp
&prompt.root; vi master.passwdВы должны удалить все записи, касающиеся системных
пользователей (bin, tty,
kmem, games и так далее), а
также записи, которые вы не хотите распространять клиентам NIS
(например, root и другие пользователи с UID,
равным 0 (администраторы)).Проверьте, чтобы файл
/var/yp/master.passwd был недоступен для
записи ни для группы, ни для остальных пользователей (режим
доступа 600)! Воспользуйтесь командой chmod,
если это нужно.Tru64 UNIXКогда с этим будет покончено, самое время инициализировать
карты NIS! В поставку FreeBSD включен скрипт с именем
ypinit, который делает это (обратитесь к его
справочной странице за дополнительной информацией). Отметьте, что
этот скрипт имеется в большинстве операционных систем &unix;, но не
во всех. В системе Digital Unix/Compaq Tru64 UNIX он называется
ypsetup. Так как мы генерируем карты для
главного сервера NIS, то при вызове программы
ypinit мы передаем ей параметр
. Для генерации карт NIS в предположении, что
вы уже сделали шаги, описанные выше, выполните следующее:ellington&prompt.root; ypinit -m test-domain
Server Type: MASTER Domain: test-domain
Creating an YP server will require that you answer a few questions.
Questions will all be asked at the beginning of the procedure.
Do you want this procedure to quit on non-fatal errors? [y/n: n] n
Ok, please remember to go back and redo manually whatever fails.
If you don't, something might not work.
At this point, we have to construct a list of this domains YP servers.
rod.darktech.org is already known as master server.
Please continue to add any slave servers, one per line. When you are
done with the list, type a <control D>.
master server : ellington
next host to add: coltrane
next host to add: ^D
The current list of NIS servers looks like this:
ellington
coltrane
Is this correct? [y/n: y] y
[..вывод при генерации карт..]
NIS Map update completed.
ellington has been setup as an YP master server without any errors.Программа ypinit должна была создать файл
/var/yp/Makefile из
/var/yp/Makefile.dist. При создании этого
файла предполагается, что вы работаете в окружении с единственным
сервером NIS и только с машинами FreeBSD. Так как в домене
test-domain имеется также и вторичный сервер,
то вы должны отредактировать файл
/var/yp/Makefile:ellington&prompt.root; vi /var/yp/MakefileВы должны закомментировать строку, в которой указаноNOPUSH = "True"(она уже не раскомментирована).Настройка вторичного сервера NISNISвторичный серверНастройка вторичного сервера NIS осуществляется ещё проще,
чем настройка главного сервера. Войдите на вторичный сервер и
отредактируйте файл /etc/rc.conf точно также,
как вы делали это ранее. Единственным отличием является то, что
при запуске программы ypinit мы теперь должны
использовать опцию . Применение опции
требует также указание имени главного сервера
NIS, так что наша команда должна выглядеть так:coltrane&prompt.root; ypinit -s ellington test-domain
Server Type: SLAVE Domain: test-domain Master: ellington
Creating an YP server will require that you answer a few questions.
Questions will all be asked at the beginning of the procedure.
Do you want this procedure to quit on non-fatal errors? [y/n: n] n
Ok, please remember to go back and redo manually whatever fails.
If you don't, something might not work.
There will be no further questions. The remainder of the procedure
should take a few minutes, to copy the databases from ellington.
Transferring netgroup...
ypxfr: Exiting: Map successfully transferred
Transferring netgroup.byuser...
ypxfr: Exiting: Map successfully transferred
Transferring netgroup.byhost...
ypxfr: Exiting: Map successfully transferred
Transferring master.passwd.byuid...
ypxfr: Exiting: Map successfully transferred
Transferring passwd.byuid...
ypxfr: Exiting: Map successfully transferred
Transferring passwd.byname...
ypxfr: Exiting: Map successfully transferred
Transferring group.bygid...
ypxfr: Exiting: Map successfully transferred
Transferring group.byname...
ypxfr: Exiting: Map successfully transferred
Transferring services.byname...
ypxfr: Exiting: Map successfully transferred
Transferring rpc.bynumber...
ypxfr: Exiting: Map successfully transferred
Transferring rpc.byname...
ypxfr: Exiting: Map successfully transferred
Transferring protocols.byname...
ypxfr: Exiting: Map successfully transferred
Transferring master.passwd.byname...
ypxfr: Exiting: Map successfully transferred
Transferring networks.byname...
ypxfr: Exiting: Map successfully transferred
Transferring networks.byaddr...
ypxfr: Exiting: Map successfully transferred
Transferring netid.byname...
ypxfr: Exiting: Map successfully transferred
Transferring hosts.byaddr...
ypxfr: Exiting: Map successfully transferred
Transferring protocols.bynumber...
ypxfr: Exiting: Map successfully transferred
Transferring ypservers...
ypxfr: Exiting: Map successfully transferred
Transferring hosts.byname...
ypxfr: Exiting: Map successfully transferred
coltrane has been setup as an YP slave server without any errors.
Don't forget to update map ypservers on ellington.Теперь у вас должен быть каталог с именем
/var/yp/test-domain. Копии карт главного
сервера NIS должны быть в этом каталоге. Вы должны удостовериться,
что этот каталог обновляется. Следующие строки в
/etc/crontab вашего вторичного сервера должны
это делать:20 * * * * root /usr/libexec/ypxfr passwd.byname
21 * * * * root /usr/libexec/ypxfr passwd.byuidЭти две строки заставляют вторичный сервер синхронизировать
свои карты с картами главного сервера. Хотя эти строчки не
обязательны, так как главный сервер делает попытки передать все
изменения в своих картах NIS на свои вторичные серверы, но из-за
того, что информация для входа в систему настолько жизненно важна для
систем, зависящих от сервера, что выполнение регулярных обновлений
является совсем не плохой идеей. Это ещё более важно в загруженных
сетях, в которых обновления карт могут не всегда завершаться
успешно.А теперь точно также запустите команду
/etc/netstart на вторичном сервере, по которой
снова выполнится запуск сервера NIS.Клиенты NISКлиент NIS выполняет так называемую привязку к конкретному
серверу NIS при помощи даемона ypbind.
ypbind определяет домен, используемый в системе
по умолчанию (тот, который устанавливается по команде
domainname), и начинает широковещательную рассылку
запросов RPC в локальной сети. В этих запросах указано имя домена,
к серверу которого ypbind пытается осуществить
привязку. Если сервер, который был настроен для обслуживания
запрашиваемого домена, получит широковещательный запрос, он ответит
ypbind, который, в свою очередь запомнит адрес
сервера. Если имеется несколько серверов (например, главный и
несколько вторичных), то ypbind будет использовать
адрес первого ответившего. С этого момента клиентская система будет
направлять все свои запросы NIS на этот сервер. Время от времени
ypbind будет пинать сервер для
проверки его работоспособности.
Если на один из тестовых пакетов не удастся получить ответа за
разумное время, то ypbind пометит этот домен как
домен, с которым связка разорвана, и снова начнет процесс посылки
широковещательных запросов в надежде найти другой сервер.Настройка клиента NISNISнастройка клиентаНастройка машины с FreeBSD в качестве клиента NIS достаточно
проста.Отредактируйте файл /etc/rc.conf,
добавив туда следующие строки для того, чтобы задать имя домена
NIS и запустить ypbind во время запуска
сетевых служб:nisdomainname="test-domain"
nis_client_enable="YES"Для импортирования всех возможных учётных записей от сервера
NIS, удалите все записи пользователей из вашего файла
/etc/master.passwd и воспользуйтесь
командой vipw для добавления следующей строки
в конец файла:+:::::::::Эта строчка даст всем пользователям с корректной учетной
записью в картах учетных баз пользователей доступ к этой
системе. Есть множество способов настроить ваш клиент NIS,
изменив эту строку. Посмотрите ниже текст, касающийся сетевых групп, чтобы
получить более подробную информацию. Дополнительная информация
для изучения находится в книге издательства O'Reilly под
названием Managing NFS and NIS.Вы должны оставить хотя бы одну локальную запись (то есть
не импортировать ее через NIS) в вашем
/etc/master.passwd и эта запись должна
быть также членом группы wheel. Если
с NIS что-то случится, эта запись может использоваться для
удаленного входа в систему, перехода в режим администратора и
исправления неисправностей.Для импортирования всех возможных записей о группах с
сервера NIS, добавьте в ваш файл
/etc/group такую строчку:+:*::После завершения выполнения этих шагов у вас должно получиться
запустить команду ypcat passwd и увидеть
карту учетных записей сервера NIS.Безопасность NISВ общем-то любой пользователь, зная имя вашего домена, может
выполнить запрос RPC к &man.ypserv.8; и получить содержимое ваших карт
NIS. Для предотвращения такого неавторизованного обмена &man.ypserv.8;
поддерживает так называемую систему securenets, которая может
использоваться для ограничения доступа к некоторой группе хостов. При
запуске &man.ypserv.8; будет пытаться загрузить информацию, касающуюся
securenets, из файла /var/yp/securenets.Имя каталога зависит от параметра, указанного вместе с опцией
. Этот файл содержит записи, состоящие из
указания сети и сетевой маски, разделенных пробелом. Строчки,
начинающиеся со знака #, считаются комментариями.
Примерный файл securenets может иметь примерно такой вид:# allow connections from local host -- mandatory
127.0.0.1 255.255.255.255
# allow connections from any host
# on the 192.168.128.0 network
192.168.128.0 255.255.255.0
# allow connections from any host
# between 10.0.0.0 to 10.0.15.255
# this includes the machines in the testlab
10.0.0.0 255.255.240.0Если &man.ypserv.8; получает запрос от адреса, который соответствует
одному из этих правил, он будет отрабатывать запрос обычным образом.
Если же адрес не подпадает ни под одно правило, запрос будет
проигнорирован и в журнал будет записано предупреждающее сообщение. Если
файл /var/yp/securenets не существует,
ypserv будет обслуживать соединения от любого
хоста.Программа ypserv также поддерживает пакет программ
tcpwrapper от Wietse Venema. Это позволяет
администратору для ограничения доступа вместо
/var/yp/securenets использовать конфигурационные
файлы tcpwrapper.Хотя оба этих метода управления доступом обеспечивают некоторую
безопасность, они, как основанные на проверке привилегированного
порта, оба подвержены атакам типа IP spoofing. Весь
сетевой трафик, связанный с работой NIS, должен блокироваться вашим
межсетевым экраном.Серверы, использующие файл /var/yp/securenets,
могут быть не в состоянии обслуживать старых клиентов NIS с древней
реализацией протокола TCP/IP. Некоторые из этих реализаций при
рассылке широковещательных запросов устанавливают все биты машинной
части адреса в ноль и/или не в состоянии определить маску подсети при
вычислении адреса широковещательной рассылки. Хотя некоторые из этих
проблем могут быть решены изменением конфигурации клиента, другие
могут привести к отказу от использования
/var/yp/securenets.Использование /var/yp/securenets на сервере
с такой архаичной реализацией TCP/IP является весьма плохой идеей, и
приведёт к потере работоспособности NIS в большой части вашей
сети.tcpwrapperИспользование пакета tcpwrapper увеличит
время отклика вашего сервера NIS. Дополнительной задержки может
оказаться достаточно для возникновения таймаутов в клиентских
программах, особенно в загруженных сетях или с медленными серверами
NIS. Если одна или более ваших клиентских систем страдают от таких
проблем, вы должны преобразовать такие клиентские системы во вторичные
серверы NIS и сделать принудительную их привязку к самим себе.Запрет входа некоторых пользователейВ нашей лаборатории есть машина basie, о которой
предполагается, что она является исключительно факультетской рабочей
станцией. Мы не хотим исключать эту машину из домена NIS, однако
файл passwd на главном сервере NIS содержит
учетные записи как для работников факультета, так и студентов. Что мы
можем сделать?Есть способ ограничить вход некоторых пользователей на этой машине,
даже если они присутствуют в базе данных NIS. Чтобы это сделать, вам
достаточно добавить
-username в конец файла
/etc/master.passwd на клиентской машине, где
username является именем пользователя,
которому вы хотите запретить вход. Рекомендуется сделать это с помощью
утилиты vipw, так как vipw
проверит ваши изменения в /etc/master.passwd, а
также автоматически перестроит базу данных паролей по окончании
редактирования. Например, если мы хотим запретить пользователю
bill осуществлять вход на машине
basie, то мы сделаем следующее:basie&prompt.root; vipw[add -bill to the end, exit]
vipw: rebuilding the database...
vipw: done
basie&prompt.root; cat /etc/master.passwd
root:[password]:0:0::0:0:The super-user:/root:/bin/csh
toor:[password]:0:0::0:0:The other super-user:/root:/bin/sh
daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin
operator:*:2:5::0:0:System &:/:/sbin/nologin
bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/sbin/nologin
tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin
kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin
games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin
news:*:8:8::0:0:News Subsystem:/:/sbin/nologin
man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin
bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin
uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico
xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin
pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin
nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin
+:::::::::
-bill
basie&prompt.root;UdoErdelhoffТекст предоставил Использование сетевых группсетевые группыСпособ, описанный в предыдущем разделе, работает достаточно хорошо,
если вам нужны особые правила для очень малой группы пользователей или
машин. В более крупных сетях вы забудете о
запрете входа определенных пользователей на важные машины или даже
будете настраивать каждую машину по отдельности, теряя таким образом
главное преимущество использования NIS:
централизованное администрирование.Ответом разработчиков NIS на эту проблему являются
сетевые группы. Их назначение и смысл можно
сравнить с обычными группами, используемыми в файловых системах &unix;.
Главное отличие заключается в отсутствии числового идентификатора и
возможности задать сетевую группу включением как пользователей, так и
других сетевых групп.Сетевые группы были разработаны для работы с большими, сложными
сетями с сотнями пользователей и машин. С одной стороны, хорошо, если
вам приходится с такой ситуацией. С другой стороны, эта сложность
делает невозможным описание сетевых групп с помощью простых примеров.
Пример, используемый в дальнейшем, демонстрирует эту проблему.Давайте предположим, что успешное внедрение системы NIS в вашей
лаборатории заинтересовало ваше руководство. Вашим следующим заданием
стало расширение домена NIS для включения в него некоторых других
машин студенческого городка. В двух таблицах перечислены имена
новых машин и пользователей, а также их краткое описание.Имена пользователейОписаниеalpha, betaОбычные служащие IT-департаментаcharlie, deltaПрактиканты IT-департаментаecho, foxtrott, golf, ...Обычные сотрудникиable, baker, ...Проходящие интернатуруИмена машинОписаниеwar, death, famine, pollutionВаши самые важные серверы. Только служащим IT позволяется
входить на эти машины.pride, greed, envy, wrath, lust, slothМенее важные серверы. Все сотрудники департамента IT могут
входить на эти машины.one, two, three, four, ...Обычные рабочие станции. Только
реально нанятым служащим позволяется
использовать эти машины.trashcanОчень старая машина без каких-либо критичных данных. Даже
проходящим интернатуру разрешено ее использовать.Если вы попытаетесь реализовать эти требования, ограничивая
каждого пользователя по отдельности, то вам придется добавить на каждой
машине в файл passwd по одной строчке
-user для каждого пользователя, которому
запрещено входить на эту систему. Если вы забудете даже одну строчку,
у вас могут начаться проблемы. Гораздо проще делать это правильно во
время начальной установки, однако вы постепенно будете
забывать добавлять строчки для новых пользователей во время
повседневной работы. В конце концов, Мерфи был оптимистом.Использование в этой ситуации сетевых групп дает несколько
преимуществ. Нет необходимости описывать по отдельности каждого
пользователя; вы ставите в соответствие пользователю одну или
несколько сетевых групп и разрешаете или запрещаете вход всем членам
сетевой группы. Если вы добавляете новую машину, вам достаточно
определить ограничения на вход для сетевых групп. Если добавляется
новый пользователь, вам достаточно добавить его к одной или большему
числу сетевых групп. Эти изменения независимы друг от друга: нет
больше комбинаций для каждого пользователя и машины.
Если настройка вашей системы NIS тщательно спланирована, то для
разрешения или запрещения доступа к машинам вам нужно будет
модифицировать единственный конфигурационный файл.Первым шагом является инициализация карты NIS по имени netgroup.
Программа &man.ypinit.8; во FreeBSD по умолчанию этой карты не
создаёт, хотя реализация NIS будет её поддерживает, как только она
будет создана. Чтобы создать пустую карту, просто наберитеellington&prompt.root; vi /var/yp/netgroupи начните добавлять содержимое. Например, нам нужно по крайней
мере четыре сетевых группы: сотрудники IT, практиканты IT, обычные
сотрудники и интернатура.IT_EMP (,alpha,test-domain) (,beta,test-domain)
IT_APP (,charlie,test-domain) (,delta,test-domain)
USERS (,echo,test-domain) (,foxtrott,test-domain) \
(,golf,test-domain)
INTERNS (,able,test-domain) (,baker,test-domain)IT_EMP, IT_APP и так далее
являются именами сетевых групп. Несколько слов в скобках служат для
добавления пользователей в группу. Три поля внутри группы обозначают
следующее:Имя хоста или хостов, к которым применимы последующие записи.
Если имя хоста не указано, то запись применяется ко всем хостам.
Если же указывается имя хоста, то вы получите мир темноты, ужаса
и страшной путаницы.Имя учетной записи, которая принадлежит этой сетевой
группе.Домен NIS для учетной записи. Вы можете импортировать в вашу
сетевую группу учетные записи из других доменов NIS, если вы один
из тех несчастных, имеющих более одного домена NIS.Каждое из этих полей может содержать шаблоны, подробности даны в
странице справочника по &man.netgroup.5;.сетевые группыНе нужно использовать имена сетевых групп длиннее 8 символов,
особенно если в вашем домене NIS имеются машины, работающие под
управлением других операционных систем. Имена чувствительны к
регистру; использование заглавных букв для имен сетевых групп
облегчает распознавание пользователей, имен машин и сетевых
групп.Некоторые клиенты NIS (отличные от FreeBSD) не могут работать
с сетевыми группами, включающими большое количество записей.
Например, в некоторых старых версиях &sunos; возникают проблемы, если
сетевая группа содержит более 15 записей. Вы
можете обойти это ограничение, создав несколько подгрупп с 15 или
меньшим количеством пользователей и настоящую сетевую группу,
состоящую из подгрупп:BIGGRP1 (,joe1,domain) (,joe2,domain) (,joe3,domain) [...]
BIGGRP2 (,joe16,domain) (,joe17,domain) [...]
BIGGRP3 (,joe31,domain) (,joe32,domain)
BIGGROUP BIGGRP1 BIGGRP2 BIGGRP3Вы можете повторить этот процесс, если вам нужно иметь более 225
пользователей в одной сетевой группе.Активация и распространение вашей карты NIS проста:ellington&prompt.root; cd /var/yp
ellington&prompt.root; makeЭто приведет к созданию трех карт NIS
netgroup, netgroup.byhost и
netgroup.byuser. Воспользуйтесь утилитой
&man.ypcat.1; для проверки доступности ваших новых карт NIS:ellington&prompt.user; ypcat -k netgroup
ellington&prompt.user; ypcat -k netgroup.byhost
ellington&prompt.user; ypcat -k netgroup.byuserВывод первой команды должен соответствовать содержимому файла
/var/yp/netgroup. Вторая команда не выведет
ничего, если вы не зададите сетевые группы, специфичные для хоста.
Третья команда может использоваться пользователем для получения
списка сетевых групп.Настройка клиента достаточно проста. Чтобы настроить сервер
war, вам достаточно запустить &man.vipw.8;
и заменить строку+:::::::::на+@IT_EMP:::::::::Теперь только данные, касающиеся пользователей, определенных в
сетевой группе IT_EMP, импортируются в
базу паролей машины war и только этим
пользователям будет разрешен вход.К сожалению, это ограничение также касается и функции ~ командного
процессора и всех подпрограмм, выполняющих преобразование между
именами пользователей и их числовыми ID. Другими
словами, команда cd ~user
работать не будет, команда ls -l будет выдавать
числовые идентификаторы вместо имён пользователей, а
find . -user joe -print работать откажется, выдавая
сообщение No such user. Чтобы это исправить,
вам нужно будет выполнить импорт всех записей о пользователях
без разрешения на вход на ваши серверы.Это можно сделать, добавив еще одну строку в файл
/etc/master.passwd. Эта строка должна
содержать:+:::::::::/sbin/nologin, что означает
Произвести импортирование всех записей с заменой командного
процессора на /sbin/nologin в импортируемых
записях. Вы можете заменить любое поле в строке с паролем,
указав значение по умолчанию в вашем
/etc/master.passwd.Проверьте, что строка
+:::::::::/sbin/nologin помещена после
+@IT_EMP:::::::::. В противном случае все
пользовательские записи, импортированные из NIS, будут иметь
/sbin/nologin в качестве оболочки.После этого изменения при появлении нового сотрудника IT вам будет
достаточно изменять только одну карту NIS. Вы можете применить
подобный метод для менее важных серверов, заменяя
старую строку +::::::::: в их файлах
/etc/master.passwd на нечто, подобное
следующему:+@IT_EMP:::::::::
+@IT_APP:::::::::
+:::::::::/sbin/nologinСоответствующие строки для обычных рабочих станций могут иметь
такой вид:+@IT_EMP:::::::::
+@USERS:::::::::
+:::::::::/sbin/nologinИ все было прекрасно до того момента, когда через несколько
недель изменилась политика: Департамент IT начал нанимать интернатуру.
Интернатуре в IT позволили использовать обычные рабочие станции и
менее важные серверы; практикантам позволили входить на главные
серверы. Вы создали новую сетевую группу IT_INTERN, добавили в нее
новую интернатуру и начали изменять настройки на всех и каждой
машине... Как говорит старая мудрость: Ошибки в
централизованном планировании приводят к глобальному
хаосу.Возможность в NIS создавать сетевые группы из других сетевых
групп может использоваться для предотвращения подобных ситуаций. Одним
из вариантов является создание сетевых групп на основе ролей.
Например, вы можете создать сетевую группу с именем
BIGSRV для задания ограничений на вход на
важные серверы, другую сетевую группу с именем
SMALLSRV для менее важных серверов и третью
сетевую группу под названием USERBOX для
обычных рабочих станций. Каждая из этих сетевых групп содержит
сетевые группы, которым позволено входить на эти машины. Новые записи
для вашей карты NIS сетевой группы должны выглядеть таким
образом:BIGSRV IT_EMP IT_APP
SMALLSRV IT_EMP IT_APP ITINTERN
USERBOX IT_EMP ITINTERN USERSЭтот метод задания ограничений на вход работает весьма хорошо,
если вы можете выделить группы машин с одинаковыми ограничениями. К
сожалению, такая ситуация может быть исключением, но не правилом. В
большинстве случаев вам нужна возможность определять ограничения на
вход индивидуально для каждой машины.Задание сетевых групп в зависимости от машин является другой
возможностью, которой можно воспользоваться при изменении политики,
описанной выше. При таком развитии событий файл
/etc/master.passwd на каждой машине содержит две
строки, начинающиеся с +. Первая из них добавляет
сетевую группу с учётными записями, которым разрешено входить на эту
машину, а вторая добавляет все оставшиеся учетные записи с
/sbin/nologin в качестве командного процессора.
Хорошей идеей является использование ИМЕНИ МАШИНЫ заглавными буквами
для имени сетевой группы. Другими словами, строки должны иметь такой
вид:+@BOXNAME:::::::::
+:::::::::/sbin/nologinКак только вы завершите эту работу для всех ваших машин, вам не
нужно будет снова модифицировать локальные версии
/etc/master.passwd. Все будущие изменения могут
быть выполнены изменением карты NIS. Вот пример возможной карты
сетевой группы для этого случая с некоторыми полезными
дополнениями:# Сначала определяем группы пользователей
IT_EMP (,alpha,test-domain) (,beta,test-domain)
IT_APP (,charlie,test-domain) (,delta,test-domain)
DEPT1 (,echo,test-domain) (,foxtrott,test-domain)
DEPT2 (,golf,test-domain) (,hotel,test-domain)
DEPT3 (,india,test-domain) (,juliet,test-domain)
ITINTERN (,kilo,test-domain) (,lima,test-domain)
D_INTERNS (,able,test-domain) (,baker,test-domain)
#
# Теперь задаем несколько групп на основе ролей
USERS DEPT1 DEPT2 DEPT3
BIGSRV IT_EMP IT_APP
SMALLSRV IT_EMP IT_APP ITINTERN
USERBOX IT_EMP ITINTERN USERS
#
# И группы для специальных задач
# Открыть пользователям echo и golf доступ к антивирусной машине
SECURITY IT_EMP (,echo,test-domain) (,golf,test-domain)
#
# Сетевые группы, специфичные для машин
# Наши главные серверы
WAR BIGSRV
FAMINE BIGSRV
# Пользователю india необходим доступ к этому серверу
POLLUTION BIGSRV (,india,test-domain)
#
# Этот очень важен и ему требуются большие ограничения доступа
DEATH IT_EMP
#
# Антивирусная машина, упомянутая выше
ONE SECURITY
#
# Ограничить машину единственным пользователем
TWO (,hotel,test-domain)
# [...далее следуют другие группы]Если вы используете какие-либо базы данных для управления
учетными записями ваших пользователей, вы должны смочь создать первую
часть карты с помощью инструментов построения отчетов вашей базы
данных. В таком случае новые пользователи автоматически получат
доступ к машинам.И последнее замечание: Не всегда бывает разумно использовать
сетевые группы на основе машин. Если в студенческих лабораториях вы
используете несколько десятков или даже сотен одинаковых машин, то
вам нужно использовать сетевые группы на основе ролей, а не основе
машин, для того, чтобы размеры карты NIS оставались в разумных
пределах.Важные замечанияЕсть некоторые действия, которые нужно будет выполнять по-другому,
если вы работаете с NIS.Каждый раз, когда вы собираетесь добавить пользователя в
лаборатории, вы должны добавить его только на
главном сервере NIS и обязательно перестроить карты
NIS. Если вы забудете сделать это, то новый
пользователь не сможет нигде войти, кроме как на главном сервере
NIS. Например, если в лаборатории нам нужно добавить нового
пользователя jsmith, мы делаем вот что:&prompt.root; pw useradd jsmith
&prompt.root; cd /var/yp
&prompt.root; make test-domainВместо pw useradd jsmith вы можете также
запустить команду adduser jsmith.Не помещайте административные учетные записи в карты
NIS. Вам не нужно распространять административных
пользователей и их пароли на машины, которые не должны иметь доступ
к таким учётным записям.Сделайте главный и вторичные серверы NIS безопасными
и минимизируйте их время простоя. Если кто-то либо
взломает, либо просто отключит эти машины, то люди без права
входа в лабораторию с легкостью получат доступ.Это основное уязвимое место в любой централизованно
администрируемой системе. Если вы не
защищаете ваши серверы NIS, вы будете иметь дело с толпой
разозлённых пользователей!Совместимость с NIS v1ypserv из поставки FreeBSD имеет
встроенную поддержку для обслуживания клиентов NIS v1. Реализация
NIS
во FreeBSD использует только протокол NIS v2, хотя другие реализации
имеют поддержку протокола v1 для совместимости со старыми системами.
Даемоны ypbind, поставляемые с такими
системами, будут пытаться осуществить привязку к серверу NIS v1, даже
если это им не нужно (и они будут постоянно рассылать широковещательные
запросы в поиске такого сервера даже после получения ответа от сервера
v2). Отметьте, что хотя имеется поддержка обычных клиентских вызовов,
эта версия ypserv не отрабатывает запросы на передачу карт v1;
следовательно, она не может использоваться в качестве главного или
вторичного серверов вместе с другими серверами NIS, поддерживающими
только протокол v1. К счастью, скорее всего, в настоящий момент
такие серверы практически не используются.Серверы NIS, которые также являются клиентами NISОсобое внимание следует уделить использованию
ypserv в домене со
многими серверами, когда серверные машины являются также клиентами
NIS.
Неплохо бы заставить серверы осуществить привязку к самим себе,
запретив рассылку запросов на привязку и возможно, перекрестную
привязку друг к другу. Если один сервер выйдет из строя, а другие
будут зависеть от него, то в результате могут возникнуть странные
ситуации. Постепенно все клиенты попадут в таймаут и попытаются
привязаться к другим серверам, но полученная задержка может быть
значительной, а странности останутся, так как серверы снова могут
привязаться друг к другу.Вы можете заставить хост выполнить привязку к конкретному серверу,
запустив команду ypbind с флагом
. Если вы не хотите делать это вручную каждый
раз при перезагрузке
вашего сервера NIS, то можете добавить в файл
/etc/rc.conf такие строки:nis_client_enable="YES" # run client stuff as well
nis_client_flags="-S NIS domain,server"Дополнительную информацию можно найти на странице справки по
&man.ypbind.8;.Форматы паролейNISформаты паролейОдним из общих вопросов, которые возникают в начале работы с NIS,
является вопрос совместимости форматов паролей. Если ваш сервер NIS
использует пароли, зашифрованные алгоритмом DES, то он будет
поддерживать только тех клиентов, что также используют DES. К
примеру, если в вашей сети имеются клиенты NIS, использующие &solaris;,
то вам, скорее всего, необходимо использовать пароли с шифрованием по
алгоритму DES.Чтобы понять, какой формат используют ваши серверы и клиенты,
загляните в файл /etc/login.conf. Если хост
настроен на использование паролей, зашифрованных по алгоритму DES,
то класс default будет содержать запись вроде
следующей:default:\
:passwd_format=des:\
:copyright=/etc/COPYRIGHT:\
[Последующие строки опущены]Другими возможными значениями для passwd_format
являются blf и md5 (для паролей,
шифруемых по стандартам Blowfish и MD5 соответственно).Если вы внесли изменения в файл
/etc/login.conf, то вам также нужно перестроить
базу данных параметров входа в систему, что достигается запуском
следующей команды пользователем root:&prompt.root; cap_mkdb /etc/login.confФормат паролей, которые уже находятся в файле
/etc/master.passwd, не будет изменён до тех пор,
пока пользователь не сменит свой пароль после
перестроения базы данных параметров входа в систему.После этого, чтобы удостовериться в том, что пароли зашифрованы
в том формате, который выбран вами, нужно проверить, что строка
crypt_default в /etc/auth.conf
указывает предпочтение выбранного вами формата паролей. Для этого
поместите выбранный формат первым в списке. Например, при
использовании DES-шифрования паролей строка будет выглядеть так:crypt_default = des blf md5Выполнив вышеперечисленные шаги на каждом из серверов и клиентов
NIS, работающих на FreeBSD, вы можете обеспечить их согласованность
относительно используемого в вашей сети формата паролей. Если у вас
возникли проблемы с аутентификацией клиента NIS, начать
её решать определённо стоит отсюда. Запомните: если вы хотите
использовать сервер NIS в гетерогенной сети, вам, наверное, нужно
будет использовать DES на всех системах в силу того, что это
минимальный общий стандарт.GregSutterТекст написал Автоматическая настройка сети (DHCP)Что такое DHCP?Dynamic Host Configuration ProtocolDHCPInternet Software Consortium (ISC)DHCP, или Dynamic Host Configuration Protocol (Протокол
Динамической Конфигурации Хостов), описывает порядок, по которому
система может подключиться к сети и получить необходимую информацию
для работы в ней. Во FreeBSD используется реализация DHCP от ISC
(Internet Software Consortium), так что вся информация, описывающая
особенности, зависящие от реализации, относится к дистрибутиву
ISC.Что описывается в этом разделеВ этом разделе описываются компоненты системы ISC DHCP как со стороны
клиента, так и со стороны сервера. Программа, работающая на клиентской
стороне, dhclient, интегрирована в поставку FreeBSD,
а серверная часть доступна в виде порта net/isc-dhcp3-server. Кроме ссылок ниже,
много полезной информации находится на страницах справочной системы,
описывающих &man.dhclient.8;, &man.dhcp-options.5; и
&man.dhclient.conf.5;.Как это работаетUDPКогда на клиентской машине выполняется программа
dhclient, являющаяся клиентом DHCP, она начинает
широковещательную рассылку запросов на получение настроечной информации.
По умолчанию эти запросы делаются на 68 порт UDP. Сервер отвечает на UDP
67, выдавая клиенту адрес IP и другую необходимую информацию, такую, как
сетевую маску, маршрутизатор и серверы DNS. Вся эта информация даётся в
форме аренды DHCP и верна только определенное время (что
настраивается администратором сервера DHCP). При таком подходе
устаревшие адреса IP тех клиентов, которые больше не подключены к сети,
могут автоматически использоваться повторно.Клиенты DHCP могут получить от сервера очень много информации.
Подробный список находится в странице Справочника
&man.dhcp-options.5;.Интеграция с FreeBSDКлиент DHCP от ISC, dhclient, полностью
интегрирован во FreeBSD. Поддержка клиента DHCP есть как в программе
установки, так и в самой системе, что исключает необходимость в
знании подробностей конфигурации сети в любой сети, имеющей сервер
DHCP. Утилита dhclient включена во все версии
FreeBSD, начиная с 3.2.sysinstallDHCP поддерживается утилитой sysinstall.
При настройке сетевого интерфейса из программы
sysinstall первый
вопрос, который вам задается: Do you want to try DHCP
configuration of this interface? (Хотите ли вы попробовать
настроить этот интерфейс через DHCP?). Утвердительный ответ
приведёт к запуску программы dhclient, и при удачном
его выполнении к автоматическому заданию информации для настройки
интерфейса.Есть две вещи, которые вы должны сделать для того, чтобы ваша
система использовала DHCP при загрузке:DHCPтребованияУбедитесь, что устройство bpf
включено в компиляцию вашего ядра. Чтобы это сделать, добавьте
строчку device bpf
(pseudo-device bpf в &os; 4.X)
в конфигурационный
файл ядра и перестройте ядро. Более подробная информация о
построении ядер имеется в разделе .Устройство bpf уже является частью
ядра GENERIC, которое поставляется вместе с
FreeBSD, так что, если вы не используете другое ядро, то вам и
не нужно его делать для того, чтобы работал DHCP.Те, кто беспокоится о безопасности, должны иметь в виду, что
устройство bpf является также тем самым
устройством, которое позволяет работать программам-снифферам
пакетов (хотя для этого они должны быть запущены пользователем
root). Наличие устройства
bpfнеобходимо для
использования DHCP, но если вы чересчур беспокоитесь о
безопасности, то вам нельзя добавлять устройство
bpf в ядро только для того, чтобы
в неопределённом будущем использовать DHCP.Отредактируйте ваш файл /etc/rc.conf,
включив в него следующее:ifconfig_fxp0="DHCP"Обязательно замените fxp0 на имя интерфейса,
который вы хотите настраивать динамически, как это описано в .Если dhclient в вашей системе находится в другом
месте или если вы хотите задать дополнительные параметры для
dhclient, то также укажите следующее (изменив так,
как вам нужно):dhcp_program="/sbin/dhclient"
dhcp_flags=""DHCPсерверСервер DHCP, dhcpd, включён как часть порта
net/isc-dhcp3-server в коллекцию
портов. Этот порт содержит DHCP-сервер от ISC и документацию.ФайлыDHCPконфигурационные файлы/etc/dhclient.confdhclient требует наличия конфигурационного
файла, /etc/dhclient.conf. Как правило, файл
содержит только комментарии, а настройки по умолчанию достаточно
хороши. Этот настроечный файл описан на страницах справочной
системы по &man.dhclient.conf.5;./sbin/dhclientdhclient скомпонован статически и находится
в каталоге /sbin. На страница Справочника
&man.dhclient.8; дается более подробная информация о
dhclient./sbin/dhclient-scriptdhclient-script является специфичным для
FreeBSD скриптом настройки клиента DHCP. Он описан в
&man.dhclient-script.8;, но для нормального функционирования
никаких модификаций со стороны пользователя не требуется./var/db/dhclient.leasesВ этом файле клиент DHCP хранит базу данных выданных к
использованию адресов в виде журнала. На странице
&man.dhclient.leases.5; дается гораздо более подробное
описание.Дополнительная литератураПолное описание протокола DHCP дается в RFC 2131. Кроме
того, дополнительная информация есть на сервере dhcp.org.Установка и настройка сервера DHCPЧему посвящён этот разделЭтот раздел даёт информацию о том, как настроить систему
FreeBSD для работы в качестве сервера DHCP на основе реализации
пакета DHCP от ISC (Internet Software Consortium).Серверная часть пакета не поставляется как часть FreeBSD, так
что вам потребуется установить порт net/isc-dhcp3-server для получения
этого сервиса. Обратитесь к для получения
более полной информации об использовании коллекции портов.Установка сервера DHCPDHCPустановкаДля того, чтобы настроить систему FreeBSD на работу в качестве
сервера DHCP, вам необходимо обеспечить присутствие устройства
&man.bpf.4;, вкомпилированного в ядро. Для этого
добавьте строку device bpf
(pseudo-device bpf в &os; 4.X) в файл
конфигурации вашего ядра. Для получения более полной информации о
построении ядер, обратитесь к .Устройство bpf уже входит в состав
ядра GENERIC, поставляемого с FreeBSD, так что
вам не нужно создавать собственное ядро для обеспечения работы
DHCP.Те, кто обращает особое внимание на вопросы безопасности,
должны заметить, что bpf является тем
устройством, что позволяет нормально работать снифферам пакетов
(хотя таким программам требуются привилегированный доступ).
Наличие устройства bpfобязательно для использования DHCP, но если
вы очень обеспокоены безопасностью, наверное, вам не нужно
включать bpf в ваше ядро только потому,
что в отдалённом будущем вы собираетесь использовать DHCP.Следующим действием, которое вам нужно выполнить, является
редактирование примерного dhcpd.conf, который
устанавливается в составе порта net/isc-dhcp3-server. По умолчанию это
файл /usr/local/etc/dhcpd.conf.sample, и вы
должны скопировать его в файл
/usr/local/etc/dhcpd.conf перед тем, как его
редактировать.Настройка сервера DHCPDHCPdhcpd.confdhcpd.conf состоит из деклараций
относительно подсетей и хостов, и проще всего описывается на
примере:option domain-name "example.com";
option domain-name-servers 192.168.4.100;
option subnet-mask 255.255.255.0;
default-lease-time 3600;
max-lease-time 86400;
ddns-update-style none;
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.129 192.168.4.254;
option routers 192.168.4.1;
}
host mailhost {
hardware ethernet 02:03:04:05:06:07;
fixed-address mailhost.example.com;
}Этот параметр задаёт домен, который будет выдаваться
клиентам в качестве домена, используемого по умолчанию при
поиске. Обратитесь к страницам справочной системы по
&man.resolv.conf.5; для получения дополнительной информации о
том, что это значит.Этот параметр задаёт список разделённых запятыми серверов
DNS, которые должен использовать клиент.Маска сети, которая будет выдаваться клиентам.Клиент может запросить определённое время, которое будет
действовать выданная информация. В противном случае сервер
выдаст настройки с этим сроком (в секундах).Это максимальное время, на которое сервер будет выдавать
конфигурацию. Если клиент запросит больший срок, он будет
подтверждён, но будет действовать только
max-lease-time секунд.Этот параметр задаёт, будет ли сервер DHCP пытаться
обновить DNS при выдаче или освобождении конфигурационной
информации. В реализации ISC этот параметр является
обязательным.Это определение того, какие IP-адреса должны использоваться
в качестве резерва для выдачи клиентам. IP-адреса между и
включая границы, будут выдаваться клиентам.Объявление маршрутизатора, используемого по умолчанию,
который будет выдаваться клиентам.Аппаратный MAC-адрес хоста (чтобы сервер DHCP мог
распознать хост, когда тот делает запрос).Определение того, что хосту всегда будет выдаваться один и
тот же IP-адрес. Заметьте, что указание здесь имени хоста
корректно, так как сервер DHCP будет разрешать имя хоста
самостоятельно до того, как выдать конфигурационную
информацию.Как только вы закончите составлять свой
dhcpd.conf, вы можете продолжить работу
запуском сервера при помощи следующей команды:&prompt.root; /usr/local/etc/rc.d/isc-dhcpd.sh startЕсли в будущем вам понадобится сделать изменения в настройке
вашего сервера, то важно заметить, что посылка сигнала
SIGHUP приложению
dhcpdне приведёт к
перезагрузке настроек, как это бывает для большинства даемонов.
Вам нужно послать сигнал SIGTERM для остановки
процесса, а затем перезапустить его при помощи вышеприведённой
команды.ФайлыDHCPконфигурационный файлы/usr/local/sbin/dhcpddhcpd скомпонован статически и
расположен в каталоге /usr/local/sbin.
Страницы справочной системы &man.dhcpd.8;,
устанавливаемые портом, содержат более полную информацию о
dhcpd./usr/local/etc/dhcpd.confdhcpd требует наличия
конфигурационного файла,
/usr/local/etc/dhcpd.conf, до того, как
он будет запущен и начнёт предоставлять сервис клиентам.
Необходимо, чтобы этот файл содержал все данные, которая
будет выдаваться обслуживаемым клиентам, а также информацию о
работе сервера. Этот конфигурационный файл описывается на
страницах справочной системы &man.dhcpd.conf.5;, которые
устанавливаются портом./var/db/dhcpd.leasesСервер DHCP ведёт базу данных выданной информации в этом
файле, который записывается в виде протокола. Страницы
справочной системы &man.dhcpd.leases.5;, устанавливаемые портом,
дают гораздо более подробное описание./usr/local/sbin/dhcrelaydhcrelay используется в сложных
ситуациях, когда сервер DHCP пересылает запросы от клиента
другому серверу DHCP в отдельной сети. Если вам нужна такая
функциональность, то установите порт net/isc-dhcp3-server. На страницах
справочной системы &man.dhcrelay.8;, которые устанавливаются
портом, даётся более полное описание.ChernLeeТекст предоставил Domain Name System (DNS)ОбзорBINDПо умолчанию во FreeBSD используется одна из версий программы BIND
(Berkeley Internet Name Domain), являющейся самой распространенной
реализацией протокола DNS. DNS - это протокол, при помощи которого
имена преобразуются в IP-адреса и наоборот. Например, в ответ на
запрос о www.FreeBSD.org будет получен IP-адрес
веб-сервера Проекта FreeBSD, а запрос о
ftp.FreeBSD.org возвратит IP-адрес соответствующей
машины с FTP-сервером. Точно также происходит и обратный процесс.
Запрос, содержащий IP-адрес машины, возвратит имя хоста. Для
выполнения запросов к DNS вовсе не обязательно иметь в системе
работающий сервер имён.DNSВ сети Интернет DNS управляется через достаточно сложную систему
авторизированных корневых серверов имён, и других менее крупных
серверов имён, которые содержат и кэшируют информацию о конкретных
доменах.В этом документа рассматривается BIND 8.x, так как это стабильная
версия, используемая во FreeBSD. BIND 9.x может быть установлен как
порт net/bind9.Протокол DNS стандартизован в RFC1034 и RFC1035.На данный момент пакет BIND поддерживается Internet Software Consortium
(www.isc.org).Используемая терминологияДля понимания этого документа нужно понимать значения некоторых
терминов, связанных с работой DNS.ТерминОпределениеПрямой запрос к DNS (forward DNS)Преобразование имён хостов в адреса IPОриджин (origin)Обозначает домен, покрываемый конкретным файлом
зоныnamed, bind, сервер
имёнОбщеупотребительные названия для обозначения пакета BIND,
обеспечивающего работу сервера имён во FreeBSD.ресолверРесолверСистемный процесс, посредством которого машина обращается
к серверу имён для получения информации о зонеобратный DNSОбратный DNS (reverse DNS)Операция, обратная прямому запросу к DNS; преобразование
адресов IP в имена хостовкорневая зонаКорневая зонаНачало иерархии зон Интернет. Все зоны находятся под
корневой зоной, подобно тому, как все файлы располагаются ниже
корневого каталога.ЗонаОтдельный домен, поддомен или часть DNS, управляемая
одним сервером.зоныпримерыПримеры зон:. является корневой зонойorg. является зоной ниже корневой зоныexample.org является зоной под зоной
org.foo.example.org. является поддоменом,
зоной под зоной example.org.1.2.3.in-addr.arpa является зоной, в которую
включены все IP-адреса, формирующие пространство адресов
3.2.1.*.Как можно видеть, уточняющая часть имени хоста появляется слева.
Например, example.org. более точен, чем
org., также, как org. более
точен, чем корневая зона. Расположение каждой части имени хоста сильно
похоже на файловую систему: каталог /dev
расположен в корневой файловой системе, и так далее.Причины, по которым вам может понадобиться сервер имёнСервера имён обычно используются в двух видах: авторитетный сервер
имён и кэширующий сервер имён.Авторитетный сервер имён нужен, когда:нужно предоставлять информацию о DNS остальному миру, отвечая
на запросы авторизированно.зарегистрирован домен, такой, как
example.org и в этом домене требуется
поставить имена машин в соответствие с их адресами IP.блоку адресов IP требуется обратные записи DNS (IP в имена
хостов).резервный (slave) сервер имён должен отвечать на запросы о
домене, когда основной не работает или не доступен.Кэширующий сервер имён нужен, когда:локальный сервер DNS может кэшировать информацию и отвечать на
запросы быстрее, чем это происходит при прямом опросе внешнего
сервера имён.требуется уменьшение общего сетевого трафика (DNS
составляет около 5% всего трафика Интернет, или чуть
больше).Например, когда кто-нибудь запрашивает информацию о
www.FreeBSD.org, то обычно ресолвер обращается к
серверу имён вашего провайдера, посылает запрос и ожидает ответа. С
локальным кэширующим сервером DNS запрос во внешний мир будет делаться
всего один раз. Каждый дополнительный запрос не будет посылаться за
пределы локальной сети, потому что информация уже имеется в
кэше.Как это работаетВо FreeBSD даемон BIND, по очевидным причинам, называется
named.ФайлОписаниеnamedдаемон BINDndcпрограмма управления даемоном сервера имён/etc/namedbкаталог, в котором располагается вся информация о зонах
BIND/etc/namedb/named.confконфигурационный файл для даемонаФайлы зон обычно располагаются в каталоге
/etc/namedb и содержат информацию о зоне DNS,
за которую отвечает сервер имён.Запуск BINDBINDзапускТак как сервер имён BIND устанавливается по умолчанию, его
настройка сравнительно проста.Чтобы даемон named запускался во
время загрузки, поместите в /etc/rc.conf
следующую строку:named_enable="YES"Для запуска даемона вручную (после его настройки):&prompt.root; ndc startКонфигурационные файлыBINDконфигурационные файлыИспользование make-localhostОбязательно выполните следующие команды:&prompt.root; cd /etc/namedb
&prompt.root; sh make-localhostдля того, чтобы правильно создать файл
/etc/namedb/localhost.rev локальной обратной
зоны для loopback-интерфейса./etc/namedb/named.conf// $FreeBSD$
//
// Refer to the named(8) manual page for details. If you are ever going
// to setup a primary server, make sure you've understood the hairy
// details of how DNS is working. Even with simple mistakes, you can
// break connectivity for affected parties, or cause huge amount of
// useless Internet traffic.
options {
directory "/etc/namedb";
// In addition to the "forwarders" clause, you can force your name
// server to never initiate queries of its own, but always ask its
// forwarders only, by enabling the following line:
//
// forward only;
// If you've got a DNS server around at your upstream provider, enter
// its IP address here, and enable the line below. This will make you
// benefit from its cache, thus reduce overall DNS traffic in the
Internet.
/*
forwarders {
127.0.0.1;
};
*/Как и говорится в комментариях, если вы хотите получить эффект от
использования кэша провайдера, то можно включить раздел
forwarders. В обычном случае сервер имён будет
рекурсивно опрашивать определённые серверы имён Интернет до тех пор,
пока не получит ответ на свой запрос. При включении этого раздела
он будет автоматически опрашивать сервер имён вашего провайдера (или
тот, который здесь указан), используя преимущества его кэша.
наличия нужной информации. Если соответствующий сервер имён провайдера
работает быстро и имеет хороший канал связи, то в результате такой
настройки вы можете получить хороший результат.
127.0.0.1 здесь
работать не будет. Измените
его на IP-адрес сервера имён провайдера./*
* If there is a firewall between you and name servers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
/*
* If running in a sandbox, you may have to specify a different
* location for the dumpfile.
*/
// dump-file "s/named_dump.db";
};
// Note: the following will be supported in a future release.
/*
host { any; } {
topology {
127.0.0.0/8;
};
};
*/
// Setting up secondaries is way easier and the rough picture for this
// is explained below.
//
// If you enable a local name server, don't forget to enter 127.0.0.1
// into your /etc/resolv.conf so this server will be queried first.
// Also, make sure to enable it in /etc/rc.conf.
zone "." {
type hint;
file "named.root";
};
zone "0.0.127.IN-ADDR.ARPA" {
type master;
file "localhost.rev";
};
zone
"0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.INT" {
type master;
file "localhost.rev";
};
// NB: Do not use the IP addresses below, they are faked, and only
// serve demonstration/documentation purposes!
//
// Example secondary config entries. It can be convenient to become
// a secondary at least for the zone where your own domain is in. Ask
// your network administrator for the IP address of the responsible
// primary.
//
// Never forget to include the reverse lookup (IN-ADDR.ARPA) zone!
// (This is the first bytes of the respective IP address, in reverse
// order, with ".IN-ADDR.ARPA" appended.)
//
// Before starting to setup a primary zone, better make sure you fully
// understand how DNS and BIND works, however. There are sometimes
// unobvious pitfalls. Setting up a secondary is comparably simpler.
//
// NB: Don't blindly enable the examples below. :-) Use actual names
// and addresses instead.
//
// NOTE!!! FreeBSD runs BIND in a sandbox (see named_flags in rc.conf).
// The directory containing the secondary zones must be write accessible
// to BIND. The following sequence is suggested:
//
// mkdir /etc/namedb/s
// chown bind:bind /etc/namedb/s
// chmod 750 /etc/namedb/sДополнительная информация о запуске BIND в ограниченном окружении
находится в соответствующем
разделе./*
zone "example.com" {
type slave;
file "s/example.com.bak";
masters {
192.168.1.1;
};
};
zone "0.168.192.in-addr.arpa" {
type slave;
file "s/0.168.192.in-addr.arpa.bak";
masters {
192.168.1.1;
};
};
*/Это примеры описаний прямой и обратной зон из файла
named.conf для вторичных серверов.Для каждого новой зоны, которую будет обслуживать сервер имён,
в файл named.conf должна быть добавлена
запись.К примеру, самая простая запись для домена example.org может выглядеть вот так:zone "example.org" {
type master;
file "example.org";
};Зона является первичной, что отражается в поле
, и информация о зоне хранится в файле
/etc/namedb/example.org, что указывается в
поле .zone "example.org" {
type slave;
file "example.org";
};В случае вторичной зоны информация о ней передается с основного
сервера имён для заданной зоны и сохраняется в указанном файле. Если
и когда основной сервер имён выходит и строя или недосягаем, то
скачанная информация о зоне будет находиться на вторичных серверах и
они смогут обслуживать эту зону.Файлы зонПример файла зоны example.org
для основного
сервера (располагающийся в файле
/etc/namedb/example.org) имеет такой
вид:$TTL 3600
example.org. IN SOA ns1.example.org. admin.example.org. (
5 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
; DNS Servers
@ IN NS ns1.example.org.
@ IN NS ns2.example.org.
; Machine Names
localhost IN A 127.0.0.1
ns1 IN A 3.2.1.2
ns2 IN A 3.2.1.3
mail IN A 3.2.1.10
@ IN A 3.2.1.30
; Aliases
www IN CNAME @
; MX Record
@ IN MX 10 mail.example.org.Заметьте, что все имена хостов, оканчивающиеся на .,
задают полное имя, тогда как все имена без символа . на
конце считаются заданными относительно origin. Например,
www преобразуется в
www.origin.
В нашем воображаемом файле ориджином является
example.org., так что
www преобразуется в
www.example.org.Файл зоны имеет следующий формат:recordname IN recordtype valueDNSзаписиНаиболее часто используемые записи DNS:SOAначало зоны ответственностиNSавторитативный сервер именAадрес хостаCNAMEканоническое имя для алиасаMXобмен почтойPTRуказатель на доменное имя (используется в обратных
зонах DNS)example.org. IN SOA ns1.example.org. admin.example.org. (
5 ; Serial
10800 ; Refresh after 3 hours
3600 ; Retry after 1 hour
604800 ; Expire after 1 week
86400 ) ; Minimum TTL of 1 dayexample.org.имя домена, а также ориджин для этого файла зоны.ns1.example.org.основной/авторитативный сервер имён для этой зоны.admin.example.org.человек, отвечающий за эту зону, адрес электронной почты с
подменённым символом @. (admin@example.org
становится admin.example.org)5последовательный номер файла. При каждом изменении файла
зоны это число должно увеличиваться. В настоящее время для
нумерации многие администраторы предпочитают формат
ггггммддвв. 2001041002
будет означать, что
файл последний раз изменялся 10.04.2001, а последнее число
02
означает, что это была вторая модификация файла за день.
Последовательный номер важен, так как он служит для того, чтобы
вторичные серверы узнавали об обновлении зоны.@ IN NS ns1.example.org.Это NS-запись. Такие записи должны иметься для
всех серверов имён, которые будут отвечать за зону. Символ
@, используемый здесь, преобразуется в
example.org. Этот
символ @ соответствует ориджину.localhost IN A 127.0.0.1
ns1 IN A 3.2.1.2
ns2 IN A 3.2.1.3
mail IN A 3.2.1.10
@ IN A 3.2.1.30Записи типа A служат для обозначения имён машин. Как это видно
выше, имя ns1.example.org будет
преобразовано в
3.2.1.2. И снова здесь используется
символ ориджина @, обозначая, что
example.org будет преобразовано
в 3.2.1.30.www IN CNAME @Записи с каноническими именами обычно используются для присвоения
машинам псевдонимов. В этом примере www является
псевдонимом для машины, соответствующей ориджину, то есть
example.org (3.2.1.30).
Записи CNAME могут использоваться для присвоения
псевдонимов именам хостов или для использования одного имени
несколькими машинами по очереди.MX record@ IN MX 10 mail.example.org.MX-запись указывает, какие почтовые серверы
отвечают за обработку входящей электронной почты для зоны. mail.example.org является именем почтового
сервера, а 10 обозначает приоритет этого почтового сервера.Можно иметь несколько почтовых серверов с приоритетами 3, 2 и 1.
Почтовый сервер, пытающийся доставить почту для example.org,
сначала попробует связаться с машиной, имеющий MX-запись с самым
большим приоритетом, затем с приоритетом поменьше и так далее, до тех
пор, пока почта не будет отправлена.Для файлов зон in-addr.arpa (обратные записи DNS) используется тот
же самый формат, отличающийся только использованием записей
PTR вместо A или
CNAME.$TTL 3600
1.2.3.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. (
5 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
3600 ) ; Minimum
@ IN NS ns1.example.org.
@ IN NS ns2.example.org.
2 IN PTR ns1.example.org.
3 IN PTR ns2.example.org.
10 IN PTR mail.example.org.
30 IN PTR example.org.В этом файле дается полное соответствие имён хостов IP-адресам в
нашем описанном ранее вымышленном домене.Кэширующий сервер имёнBINDкэширующий сервер имёнКэширующий сервер имён - это сервер имён, не отвечающий ни
за какую зону. Он просто выполняет запросы от своего имени и сохраняет
результаты для последующего использования. Для настройки такого
сервера достаточно исключить все описания зон из стандартной
конфигурации сервера имён.Запуск named в песочницеBINDработа в песочницеchrootДля дополнительной безопасности вам может потребоваться запускать
&man.named.8; с правами непривилегированного пользователя и настроить
его на выполнение &man.chroot.8; в каталог-песочницу. Это позволит
сделать недоступным для даемона named все,
что расположено вне песочницы. Если named
будет взломан, то это поможет уменьшить возможный ущерб. По умолчанию
во FreeBSD имеются пользователь и группа с именами
bind, которые предназначены именно для такого
использования.Многие рекомендуют вместо настройки
named на использование
chroot, запускать named
внутри &man.jail.8;. В этом разделе такой подход не
рассматривается.Так как named не сможет обратиться ни к
чему вне песочницы (например, совместно используемым библиотекам,
сокетам протоколов и так далее), то нужно выполнить несколько шагов,
чтобы named смог работать нормально. В
следующем списке предполагается, что каталогом песочницы является
/etc/namedb и что вы не делали никаких изменений
в содержимом этого каталога. Выполните следующие шаги, работая как
пользователь root:Создайте все каталоги, которые ожидает увидеть
named:&prompt.root; cd /etc/namedb
&prompt.root; mkdir -p bin dev etc var/tmp var/run master slave
&prompt.root; chown bind:bind slave var/*Программе named нужен доступ с
правом записи в эти каталоги, так что это все, что мы ей
предоставим.Измените и создайте базовые файлы зоны и настроек:&prompt.root; cp /etc/localtime etc
&prompt.root; mv named.conf etc && ln -sf etc/named.conf
&prompt.root; mv named.root master
&prompt.root; sh make-localhost && mv localhost.rev localhost-v6.rev master
&prompt.root; cat > master/named.localhost
$ORIGIN localhost.
$TTL 6h
@ IN SOA localhost. postmaster.localhost. (
1 ; serial
3600 ; refresh
1800 ; retry
604800 ; expiration
3600 ) ; minimum
IN NS localhost.
IN A 127.0.0.1
^DЭто позволит программе named
протоколировать правильное время в &man.syslogd.8;.syslogлог файлыDNSЕсли вы используете &os; версии ранее 4.9-RELEASE, то постройте
статически скомпонованную копию
named-xfer и скопируйте её в
песочницу:&prompt.root; cd /usr/src/lib/libisc
&prompt.root; make cleandir && make cleandir && make depend && make all
&prompt.root; cd /usr/src/lib/libbind
&prompt.root; make cleandir && make cleandir && make depend && make all
&prompt.root; cd /usr/src/libexec/named-xfer
&prompt.root; make cleandir && make cleandir && make depend && make NOSHARED=yes all
&prompt.root; cp named-xfer /etc/namedb/bin && chmod 555 /etc/namedb/bin/named-xferПосле установки статически скомпонованного
named-xfer, во избежание появления старых копий
библиотек и программ в дереве исходного кода, требуется некоторая
зачистка:&prompt.root; cd /usr/src/lib/libisc
&prompt.root; make cleandir
&prompt.root; cd /usr/src/lib/libbind
&prompt.root; make cleandir
&prompt.root; cd /usr/src/libexec/named-xfer
&prompt.root; make cleandirИногда при выполнении этого шага возникают ошибки. Если
это случилось, выполните такую команду:&prompt.root; cd /usr/src && make cleandir && make cleandirи удалите ваше дерево /usr/obj:&prompt.root; rm -fr /usr/obj && mkdir /usr/objПри этом из вашего дерева исходных текстов будет удалён
весь мусор, и повторение вышеописанных шагов
должно выполниться успешно.Если вы используете &os; 4.9-RELEASE или более позднюю версию,
то копия named-xfer в каталоге
/usr/libexec по умолчанию является статически
скомпонованной, и вы можете просто скопировать её в песочницу при
помощи команды &man.cp.1;.Создайте файл устройства dev/null,
который named может видеть и писать в
него:&prompt.root; cd /etc/namedb/dev && mknod null c 2 2
&prompt.root; chmod 666 nullСоздайте символическую ссылку
/var/run/ndc на
/etc/namedb/var/run/ndc:&prompt.root; ln -sf /etc/namedb/var/run/ndc /var/run/ndcЭто просто для того, чтобы не задавать опцию
при каждом запуске &man.ndc.8;. Так как
содержимое каталога /var/run удаляется
при загрузке, и если это
показалось вам полезным, то вы можете добавить эту команду
в crontab для root
с использованием параметра
. Обратитесь к справочной странице по
&man.crontab.5; для получения более полной информации
относительно этого.syslogлог файлыnamedНастройте &man.syslogd.8; на создание дополнительного
протоколирующего сокета log, в который
может писать named. Для этого добавьте
-l /etc/namedb/dev/log к переменной
syslogd_flags из файла
/etc/rc.conf.chrootЗадайте запуск named и выполнение
chroot в песочницу, добавив следующее в
/etc/rc.conf:named_enable="YES"
named_flags="-u bind -g bind -t /etc/namedb /etc/named.conf"Заметьте, что конфигурационный файл
/etc/named.conf именуется по полному
имени относительно песочницы, то есть в
вышеприведённой строке указывается файл, который на самом деле
является файлом
/etc/namedb/etc/named.conf.Следующим шагом является редактирование файла
/etc/namedb/etc/named.conf так, чтобы
named знал, какую зону загружать и где найти
их на диске. Далее следует прокомментированный пример (все, что
специально не прокомментировано, ничем не отличается от настройки
сервера DNS, работающего не в песочнице):options {
directory "/";
named-xfer "/bin/named-xfer";
version ""; // Не выдавайте версию BIND
query-source address * port 53;
};
// управляющий сокет ndc
controls {
unix "/var/run/ndc" perm 0600 owner 0 group 0;
};
// Далее следуют зоны:
zone "localhost" IN {
type master;
file "master/named.localhost";
allow-transfer { localhost; };
notify no;
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "master/localhost.rev";
allow-transfer { localhost; };
notify no;
};
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.int" {
type master;
file "master/localhost-v6.rev";
allow-transfer { localhost; };
notify no;
};
zone "." IN {
type hint;
file "master/named.root";
};
zone "private.example.net" in {
type master;
file "master/private.example.net.db";
allow-transfer { 192.168.10.0/24; };
};
zone "10.168.192.in-addr.arpa" in {
type slave;
masters { 192.168.10.2; };
file "slave/192.168.10.db";
};В директиве directory указан каталог
/, так как все файлы, которые нужны для
named, находятся внутри этого каталога
(вспомните, что это равнозначно обычному
пользовательскому /etc/namedb).Задает полный путь к двоичному выполнимому файлу
named-xfer (внутри границ видимости
named). Это необходимо, так как
named компилируется с тем, чтобы
брать named-xfer по умолчанию из
/usr/libexec.Задает имя файла (относительно директивы
directory выше), в котором
named может найти файл зоны для этой
зоны.Задает имя файла (относительно директивы
directory выше), в котором
named должен записывать копию файла
зоны для этой зоны после успешной передачи ее с основного сервера.
Вот почему нам нужно изменить владельца каталога
slave на bind на этапах
настроек выше.После выполнения шагов выше либо перезагрузите ваш сервер, либо
перезапустите &man.syslogd.8; и запустите &man.named.8;, не забыв
использовать новые опции, заданные в syslogd_flags и
named_flags. Теперь
named должен заработать в песочнице!БезопасностьХотя BIND является самой распространенной реализацией DNS, всегда
стоит вопрос об обеспечении безопасности. Время от времени
обнаруживаются возможные и реальные бреши в безопасности.Весьма полезно прочесть сообщения безопасности CERT и подписаться на
&a.security-notifications; для того, чтобы быть в курсе
текущих проблем с обеспечением безопасности Internet и FreeBSD.Если возникают проблемы, то наличие последних исходных текстов и
свежеоткомпилированного named
не помешает.Дополнительная литератураСправочная информация по BIND/named:
&man.ndc.8;, &man.named.8; и
&man.named.conf.5;
Официальная страница ISC BIND
FAQ по BIND
Книга издательства O'Reilly DNS and BIND 4th
EditionRFC1034 - Domain
Names - Concepts and FacilitiesRFC1035 - Domain
Names - Implementation and SpecificationMurrayStokelyПредоставил Apache HTTP сервервеб сервернастройкаApacheОбзор&os; используется в качестве платформы для многих из самых
нагруженных серверов в мире. Большинство серверов в интернет
используют Apache HTTP сервер.
Пакеты Apache должны быть включены
в поставку FreeBSD. Если вы не установили их во вместе с
системой, воспользуйтесь портами www/apache13 или www/apache2.Как только Apache был успешно
установлен, его необходимо настроить.В этом разделе рассказывается о версии 1.3.X
Apache HTTP сервера, поскольку
- эта версия наиболее широко используется в &os;. Apache 2.X
+ эта версия наиболее широко используется в &os;.
+ Apache 2.X
содержит много новых технологий, но здесь они не обсуждаются.
- За дополнительной информацией о Apache 2.X, обращайтесь к Apache 2.X, обращайтесь к .НастройкаApacheфайл настройки
- В &os; основной файл настройки Apache HTTP сервера
+ В &os; основной файл настройки Apache HTTP сервера
устанавливается в
/usr/local/etc/apache/httpd.conf.
- Это обычный текстовый Unix файл настройки с строками
+ Это обычный текстовый &unix; файл настройки с строками
комментариев, начинающимися с символа #.
Исчерпывающее описание всех возможных параметров настройки
находится за пределом рассмотрения этой книги, поэтому
здесь будут описаны только наиболее часто модифицируемые
директивы.
- ServerRoot "/usr/local"
+ ServerRoot "/usr/local"
- Указывает верхний каталог установки Apache по
+ Указывает верхний каталог установки
+ Apache по
умолчанию. Бинарные файлы находятся в
bin и
sbin, подкаталоги
расположены относительно корневого каталога сервера, файлы
настройки находятся в
etc/apache.
- ServerAdmin you@your.address
+ ServerAdmin you@your.addressАдрес, на который должны будут отправляться
сообщения о проблемах с сервером. Этот адрес
выводится на некоторые генерируемые сервером
страницы, например с сообщениями об ошибках.
- ServerName www.example.com
+ ServerName www.example.com
- ServerName позволяет вам устанавливать имя хоста,
+ ServerName позволяет вам устанавливать имя хоста,
которое отправляется обратно клиентам, если оно
отличается от того, с которым настроен хост
- (например, использование "www" вместо реального имени
- хоста).
+ (например, использование www вместо реального
+ имени хоста).
- DocumentRoot "/usr/local/www/data"
+ DocumentRoot "/usr/local/www/data"
- DocumentRoot: Каталог, внутри которого будут храниться
+ DocumentRoot: Каталог, внутри которого будут храниться
документы. По умолчанию, все запросы обрабатываются внутри
этого каталога, но символические ссылки и синонимы могут
использоваться для указания на другие каталоги.Хорошей идеей будет сделать резервные копии настроек
- Apache перед внесением изменений. Как только вы будете
+ Apache перед внесением изменений. Как только вы будете
удовлетворены первоначальной настройкой, можно запускать
Apache.Запуск ApacheApacheзапуск или остановкаApache не запускается из
inetd, как это делают многие
другие сетевые серверы. Он настроен для автономного запуска,
чтобы обеспечивать большую производительность при обработке
HTTP запросов от браузеров клиентов. Для упрощения запуска,
остановки и перезапуска сервера существует shell скрипт.
Для запуска Apache в первый раз
просто выполните:&prompt.root; /usr/local/sbin/apachectl startВы можете остановить сервер в любой момент, выполнив:&prompt.root; /usr/local/sbin/apachectl stopПосле внесения любых изменений в файл настроек, вам потребуется
перезапустить сервер:&prompt.root; /usr/local/sbin/apachectl restartДля запуска Apache при старте системы,
добавьте в /etc/rc.conf следующую строку:apache_enable="YES"Если вы хотите передать программе Apachehttpd дополнительные параметры командной
при загрузке системы, они могут быть помещены в дополнительную
строку rc.conf:apache_flags=""Теперь, когда веб сервер запущен, вы можете просмотреть свой веб
сайт, задав в строке браузера адрес
http://localhost/. По умолчанию отображается
веб страница
/usr/local/www/data/index.html.
+
+ Виртуальный хостинг
+
+ Apache поддерживает два различных
+ типа виртуального хостинга (Virtual Hosting). Первый метод
+ основан на именах (Name-based Virtual Hosting). Он использует
+ полученные от клиента заголовки HTTP/1.1 для определения имени
+ хоста. Это позволяет многим различным доменам использовать
+ один и тот же IP адрес.
+
+ Для настройки Apache на использование
+ этого типа хостинга добавьте в httpd.conf
+ запись подобную следующей:
+
+ NameVirtualHost *
+
+ Если веб сервер назывался www.domain.tld и
+ вы хотите настроить виртуальный домен для
+ www.someotherdomain.tld, необходимо добавить
+ в httpd.conf следующие записи:
+
+ <VirtualHost *>
+ServerName www.domain.tld
+DocumentRoot /www/domain.tld
+<VirtualHost>
+
+<VirtualHost *>
+ServerName www.someotherdomain.tld
+DocumentRoot /www/someotherdomain.tld
+</VirtualHost>
+
+ Замените адреса и пути к документам на те, что вы будете
+ использовать.
+
+ За дополнительной информацией по настройке виртуальных хостов
+ обращайтесь к официальной документации
+ Apache:
+
+
+
Модули ApacheApacheмодули
- Существуют множество различных модулей Apache,
+ Существуют множество различных модулей
+ Apache,
которые добавляют функциональность к основному
серверу. Коллекция портов FreeBSD предоставляет
простой способ установки Apache
с некоторыми наиболее популярными дополнительными
модулями.mod_sslвеб серверзащитаSSLкриптография
- Модуль mod_ssl использует библиотеку OpenSSL для
+ Модуль mod_ssl использует
+ библиотеку OpenSSL для
сильной криптографии через протоколы Secure Sockets Layer
(SSL v2/v3) и Transport Layer Security (TLS v1).
Этот модуль содержит все необходимое для запроса
подписанного сертификата из центра сертификации
для защищенного веб сервера на &os;.Если вы еще не установили
- Apache, версия Apache с
- mod_ssl может быть установлена через порт Apache, версия
+ Apache с
+ mod_ssl может быть установлена
+ через порт www/apache13-modssl.mod_perlPerl
- Проект интеграции Apache/Perl объединяет мощь
- языка программирования Perl и HTTP сервера Apache.
- С модулем mod_perl возможно написание модулей
- Apache полностью на Perl. Кроме того, постоянно
+ Проект интеграции
+ Apache/Perl объединяет мощь
+ языка программирования Perl и HTTP сервера
+ Apache.
+ С модулем mod_perl возможно
+ написание модулей Apache
+ полностью на Perl. Кроме того, постоянно
запущенный встроенный в сервер интерпретатор
позволяет не тратить ресурсы на запуск внешнего
интерпретатора и время на запуск Perl.Если вы еще не установили Apache,
- его версия с модулем mod_perl может быть установлена через
+ его версия с модулем mod_perl может
+ быть установлена через
порт www/apache13-modperl.PHPPHPPHP, сокращение от PHP: Hypertext
Preprocessor это широко используемый Open Source
скриптовый язык общего назначения, который в основном
предназначен для веб разработки и может быть встроен в
- HTML. Его синтаксис был взят от C, Java, и Perl и язык
+ HTML. Его синтаксис был взят от C, &java;, и Perl и язык
легок в изучении. Основное преимущество языка в том, что
он позволяет веб разработчикам создавать веб страницы быстро,
но есть и множество других возможностей.PHP может быть установлен из порта lang/php5.MurrayStokelyПредоставил Файл сервер и печать для µsoft.windows; клиентов
(Samba)Samba серверMicrosoft Windowsфайл серверWindows клиентыпринт серверWindows клиентыОбзорSamba это популярный пакет
программ с открытыми исходными текстами, которая предоставляет
файловые и принт-сервисы µsoft.windows; клиентам.
Эти клиенты могут подключаться и использовать файловое
пространство FreeBSD, как если бы это был локальный диск,
или принтеры FreeBSD, как если бы это были локальные
принтеры.Пакет Samba должен быть включен
в поставку FreeBSD. Если вы не установили
Samba при первой установке системы,
ее можно установить из порта или пакета net/samba3.НастройкаФайл настройки Samba по умолчанию
устанавливается в
/usr/local/etc/smb.conf.default. Этот файл
необходимо скопировать в
/usr/local/etc/smb.conf и отредактировать
перед использованием Samba.В файле smb.conf находится информация,
необходимая для работы Samba,
например определение принтеров и общих каталогов,
- которые будут использоваться совместно с Windows клиентами.
+ которые будут использоваться совместно с &windows; клиентами.
В пакет Samba входит программа с
веб интерфейсом, называемая swat,
которая дает простой способ редактирования файла
smb.conf.Использование Samba Web Administration Tool (SWAT)Программа веб администрирования Samba (Samba Web
Administration Tool, SWAT) запускается как даемон из
- inetd. Следовательно, в
+ inetd. Следовательно, в
/etc/inetd.conf необходимо снять комментарий
- перед тем, как использовать swat для
- настройки Samba:
+ перед тем, как использовать swat для
+ настройки Samba:swat stream tcp nowait/400 root /usr/local/sbin/swatКак описано в ,
после изменения настроек inetd
необходимо отправить HangUP сигнал.Как только swat был включен
inetd.conf, вы можете использовать
браузер для подключения к http://localhost:901.
Сначала необходимо зарегистрироваться с системной
- учетной записью root.
+ учетной записью root.
После успешного входа на основную страницу настройки
Samba, вы можете просмотреть
документацию или начать настройку, нажав на кнопку
'Globals'. Раздел Globals соответствует переменным,
установленным в разделе [global] файла
/usr/local/etc/smb.conf.Глобальные настройкиНезависимо от того, используете ли вы
swat, или редактируете
/usr/local/etc/smb.conf непосредственно,
первые директивы, которые вы скорее всего встретите при
настройке Samba, будут
следующими:workgroupИмя домена или рабочей группы NT для компьютеров,
которые будут получать доступ к этому серверу.netbios nameNetBIOSУстанавливает имя NetBIOS, под которым будет
- работать Samba сервер. По умолчанию оно устанавливается
+ работать Samba сервер. По
+ умолчанию оно устанавливается
равным первому компоненту DNS имени хоста.server stringУстанавливает строку, которая будет показана командой
net view и некоторыми другими сетевыми
инструментами, которые отображают строку описания
сервера.Настройки безопасностиДве из наиболее важных настроек в
/usr/local/etc/smb.conf отвечают за
выбор модели безопасности и за формат паролей для
клиентов. Эти параметры контролируются следующими
директивами:securityДва наиболее часто используемых параметра это
и . Если имена пользователей для клиентов
совпадают с их именами на компьютере &os;, вы возможно
захотите включить безопасность уровня пользователя (user).
Это политика безопасности по умолчанию, она требует,
чтобы клиент авторизовался перед доступом к совместно
используемым ресурсам.На уровне безопасности share клиенту не требуется
входить на сервер перед подключением к ресурсу.
Эта модель безопасности использовалась по умолчанию
в старых версиях Samba.passdb backendNIS+LDAPSQL база данныхSamba поддерживает
несколько различных подсистем аутентификации. Вы можете
аутентифицировать клиентов с помощью LDAP, NIS+,
базы данных SQL, или через модифицированный файл
паролей. Метод аутентификации по умолчанию
, и здесь рассматривается
только он.Предполагая, что используется подсистема по умолчанию
, необходимо создать файл
/usr/local/private/smbpasswd, чтобы
Samba могла аутентифицировать
клиентов. Если вы хотите разрешить всем учетным записям
- Unix доступ с Windows клиентов, используйте следующую
+ &unix; доступ с &windows; клиентов, используйте следующую
команду:
- &prompt.root; cat /etc/passwd | grep -v "^#" | make_smbpasswd > /usr/local/private/smbpasswd
-&prompt.root; chmod 600 /usr/local/private/smbpasswd
+ &prompt.root; cat /etc/passwd | grep -v "^#" | make_smbpasswd > /usr/local/private/smbpasswd
+&prompt.root; chmod 600 /usr/local/private/smbpasswdОбратитесь к документации на Samba
за дополнительной информацией о параметрах настройки.
Основные настройки, рассмотренные здесь, достаточны для
первого запуска Samba.Запуск SambaДля запуска Samba при
загрузке системы, добавьте в /etc/rc.conf
следующую строку:samba_enable="YES"Затем вы можете запустить Samba в
любой момент, набрав:&prompt.root; /usr/local/etc/rc.d/samba.sh start
Starting SAMBA: removing stale tdbs :
Starting nmbd.
Starting smbd.Samba состоит из трех
отдельных даемонов. Вы можете видеть, что
- nmbd и smbd
+ nmbd и smbd
запускаются скриптом samba.sh.
Если вы включили сервис разрешения имен winbind
в smb.conf, то увидите также
- запуск даемона winbindd.
+ запуск даемона winbindd.
Вы можете остановить Samba в любой
момент, набрав:&prompt.root; /usr/local/etc/rc.d/samba.sh stopSamba это сложный программный
набор с функциональностью, позволяющей полную интеграцию в сети
µsoft.windows;. За дальнейшей информацией о функциях,
выходящих за рамки описанной здесь базовой установки,
обращайтесь к .MurrayStokelyПредоставил Протокол передачи файлов (FTP)FTP серверОбзорПротокол передачи файлов (File Transfer Protocol, FTP) дает
пользователям простой путь передачи файлов на и с FTP сервера. В &os;
серверная программа FTP,
ftpd, включена в базовую систему.
Это упрощает настройку и администрирование FTP сервера в
FreeBSD.НастройкаНаиболее важный шаг заключается в определении того,
каким учетным записям будет позволено получать доступ
к FTP серверу. В обычной системе FreeBSD есть множество
системных учетных записей, используемых различными даемонами,
но пользователям должно быть запрещен вход с использованием
этих учетных записей. В файле /etc/ftpusers
находится список пользователей, которым запрещен доступ по
FTP. По умолчанию он включает упомянутые системные учетные
записи, но в него можно добавить и определенных пользователей,
которым будет запрещен доступ по FTP.Вам может понадобиться ограничить доступ определенных
пользователей без полного запрета использования FTP.
Это можно сделать через файл /etc/ftpchroot.
В нем находится список пользователей и групп, к которым
применяется ограничение доступа. На странице справочника
&man.ftpchroot.5; дана подробная информация, и она не будет
дублироваться здесь.Если вы захотите разрешить анонимный FTP доступ на
сервер, в системе &os; необходимо создать пользователя
ftp. Этот пользователь сможет
входить на FTP сервер с именем пользователя
ftp или anonymous,
с любым паролем (существует соглашение об использовании
почтового адреса пользователя в качестве пароля).
FTP сервер выполнит &man.chroot.2; при входе пользователя
anonymous для ограничения доступа только домашним каталогом
пользователя ftp.Существуют два текстовых файла, определяющих сообщение,
отправляемое FTP клиентам. Содержимое файла
/etc/ftpwelcome будет выведено пользователям
перед приглашением на вход. После успешного входа
будет выведено содержимое файла /etc/ftpmotd.
Обратите внимание, что путь к этому файлу задается относительно
домашнего каталога пользователя, так что анонимным пользователям
будет отправляться ~ftp/etc/ftpmotd.Как только FTP сервер был правильно настроен, он должен
быть включен в /etc/inetd.conf. Все, что
необходимо, это удалить символ комментария
# из начала существующей строки
ftpd:ftp stream tcp nowait root /usr/libexec/ftpd ftpd -lКак описано в ,
сигнал HangUP должен быть отправлен inetd
после того, как этот файл настройки был изменен.Теперь вы можете войти на FTP сервер, введя:&prompt.user; ftp localhostПоддержкаsyslogлог файлыFTPДля протоколирования даемон ftpd
использует сообщения &man.syslog.3;. По умолчанию, &man.syslog.3;
поместит сообщения, относящиеся к FTP, в файл
/var/log/xferlog. Местоположение
лог файла FTP может быть изменено путем изменения следующей
строки в файле /etc/syslog.conf:ftp.info /var/log/xferlogУчитывайте потенциальные проблемы, возникающие с
анонимным FTP сервером. В частности, вы должны дважды
подумать, прежде чем позволить анонимным пользователям
загружать файлы на сервер. Вы можете обнаружить, что
FTP сайт стал форумом, на котором происходит обмен
нелицензионным коммерческим программным обеспечением
или чем-то еще хуже. Если вам необходимо разрешить
анонимную выгрузку файлов на FTP, права должны быть настроены
таким образом, чтобы эти файлы не могли прочитать другие
анонимные пользователи до их рассмотрения администратором.TomHukinsТекст предоставил Синхронизация часов через NTPNTPОбзорС течением времени часы компьютера имеют тенденцию отставать.
Network Time
Protocol - Сетевой Протокол Времени (NTP) является одним из способов
вести точное время.Многие сервисы Интернет опираются или сильно зависят от точности
часов компьютеров. К примеру, веб-сервер может получать запрос на
посылку файла, который был недавно модифицирован. В локальной сети
необходимо, чтобы часы компьютеров, совместно использующих файлы,
были синхронизированы, чтобы время модификации файлов устанавливалось
правильно. Такие службы, как
&man.cron.8;, также зависят от правильности установки системных
часов, поскольку запускают команды в определенное время.NTPntpdFreeBSD поставляется с сервером NTP &man.ntpd.8;, который можно
использовать для опроса других серверов NTP для установки часов на
вашей машине или предоставления услуг точного времени.Выбор подходящих серверов NTPNTPвыбор серверовДля синхронизации ваших часов вам нужно найти для использования
один или большее количество серверов NTP. Ваш сетевой администратор
или провайдер могут иметь сервер NTP для этой цели—обратитесь к
ним, так ли это в вашем случае. Существует онлайн список
общедоступных серверов NTP, которым можно воспользоваться для
поиска ближайшего к вам сервера NTP. Не забудьте выяснить политику
выбранного вами сервера и спросить разрешения, если это
требуется.Выбор нескольких несвязанных серверов NTP является хорошей идеей в
том случае, если один из используемых вами серверов станет недоступным
или его часы неточны. &man.ntpd.8; использует ответы, которые он
получает от других серверов с умом—он делает предпочтение
надежным серверам.Настройка вашей машиныNTPнастройкаБазовая конфигурацияntpdateЕсли вам нужно только синхронизировать ваши часы при загрузке
машины, вы можете воспользоваться утилитой &man.ntpdate.8;. Это
может подойти для некоторых настольных машин, которые часто
перезагружаются и только требуют изредка синхронизироваться, но
на большинстве машин должен работать &man.ntpd.8;.Использование &man.ntpdate.8; при загрузке также хорошо для
машин, на которых запущен даемон &man.ntpd.8;. Программа
&man.ntpd.8; изменяет время постепенно, тогда как &man.ntpdate.8;
устанавливает время вне
зависимости от того, насколько велика разница между текущим временем
машины и точным временем.Для включения &man.ntpdate.8; во время загрузки, добавьте строчку
ntpdate_enable="YES" в файл
/etc/rc.conf. Вам также потребуется указать
все серверы, с которыми вы хотите синхронизироваться, и все
параметры, которые передаются в &man.ntpdate.8;, в
ntpdate_flags.NTPntp.confОбщие настройкиNTP настраивается в файле /etc/ntp.conf,
формат которого описан в &man.ntp.conf.5;. Вот простой
пример:server ntplocal.example.com prefer
server timeserver.example.org
server ntp2a.example.net
driftfile /var/db/ntp.driftПараметр server задает, какие серверы будут
использоваться, по одному в каждой строке. Если сервер задан с
аргументом prefer, как ntplocal.example.com, то этому серверу отдается
предпочтение перед остальными. Ответ от предпочтительного сервера
будет отброшен, если он значительно отличается от ответов других
серверов, в противном случае он будет использоваться безотносительно
к другим ответам. Аргумент prefer обычно
используется для серверов NTP, о которых известно, что они очень
точны, такими, на которых используется специальное оборудование
точного времени.Параметр driftfile задает файл, который
используется для хранения смещения частоты системных часов.
Программа &man.ntpd.8; использует его для автоматической компенсации
естественного смещения часов, позволяя ему поддерживать достаточно
правильную настройку, даже если он на некоторый период отключается от
внешнего источника информации о времени.Параметр driftfile задает, какой файл
используется для сохранения информации о предыдущих ответах от
серверов NTP, которые вы используете. Этот файл содержит внутреннюю
информацию для NTP. Он не должен изменяться никакими другими
процессами.Управление доступом к вашему серверуПо умолчанию ваш сервер NTP будет доступен всем хостам в
Интернет. Параметр restrict в файле
/etc/ntp.conf позволяет вам контролировать,
какие машины могут обращаться к вашему серверу.Если вы хотите запретить всем машинам обращаться к вашему серверу
NTP, добавьте следующую строку в
файл /etc/ntp.conf:restrict default ignoreЕсли вы хотите разрешить синхронизировать свои часы с вашим
сервером только машинам в вашей сети, но запретить им настраивать
сервер или быть равноправными участниками синхронизации времени, то
вместо указанной добавьте строчкуrestrict 192.168.1.0 mask 255.255.255.0 notrust nomodify notrapгде 192.168.1.0 является адресом
IP вашей сети, а 255.255.255.0 её
сетевой маской./etc/ntp.conf может содержать несколько
директив restrict. Для получения подробной
информации обратитесь к подразделу Access Control
Support (Поддержка Управления Доступом) в
&man.ntp.conf.5;.Запуск сервера NTPДля того, чтобы сервер NTP запускался при загрузке, добавьте строку
xntpd_enable="YES" в файл
/etc/rc.conf. Если вы хотите передать
дополнительные опции в &man.ntpd.8;, то отредактируйте параметр
xntpd_flags в файле
/etc/rc.conf.Для запуска сервера без перезагрузки вашей машины, выполните
команду ntpd, не забыв задать дополнительные
параметры из переменной xntpd_flags в файле
/etc/rc.conf. К примеру:&prompt.root; ntpd -p /var/run/ntpd.pidВо &os; 5.X различные параметры из
/etc/rc.conf были переименованы. В частности,
в списке параметров вам необходимо заменить каждую строчку
xntpd на ntpd.Использование ntpd с временным подключением к
ИнтернетДля нормальной работы программе &man.ntpd.8; не требуется
постоянное подключение к Интернет. Однако если ваше временное
подключение к Интернет настроено для дозвона по требованию, хорошо бы
запретить трафику NTP вызывать дозвон или поддерживать соединение
постоянно. Если вы используете пользовательский PPP, то можете
воспользоваться директивами filter в файле
/etc/ppp/ppp.conf. К примеру: set filter dial 0 deny udp src eq 123
# Prevent NTP traffic from initiating dial out
set filter dial 1 permit 0 0
set filter alive 0 deny udp src eq 123
# Prevent incoming NTP traffic from keeping the connection open
set filter alive 1 deny udp dst eq 123
# Prevent outgoing NTP traffic from keeping the connection open
set filter alive 2 permit 0/0 0/0Более подробную информацию можно найти в разделе PACKET
FILTERING (ФИЛЬТРАЦИЯ ПАКЕТОВ) в &man.ppp.8;, а примеры в
/usr/share/examples/ppp/.Некоторые провайдеры Интернет блокируют трафик по портам с
маленькими номерами, что приводит к неработоспособности NTP, так как
ответы никогда не достигают вашей машины.Дополнительная литератураДокументация по серверу NTP может быть найдена в каталоге
/usr/share/doc/ntp/ в формате HTML.