diff --git a/ru_RU.KOI8-R/books/handbook/Makefile b/ru_RU.KOI8-R/books/handbook/Makefile
index e9ce677af2..d59d218461 100644
--- a/ru_RU.KOI8-R/books/handbook/Makefile
+++ b/ru_RU.KOI8-R/books/handbook/Makefile
@@ -1,260 +1,260 @@
#
# The FreeBSD Russian Documentation Project
#
# $FreeBSD$
-# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/Makefile,v 1.45 2006/03/07 16:28:34 marck Exp $
+# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/Makefile,v 1.46 2006/05/19 12:09:01 marck Exp $
#
-# Original revision: 1.97
+# Original revision: 1.100
#
# Build the FreeBSD Handbook.
#
# ------------------------------------------------------------------------
#
# Handbook-specific variables
#
# WITH_PGPKEYS The print version of the handbook only prints PGP
# fingerprints by default. If you would like for the
# entire key to be displayed, then set this variable.
# This option has no affect on the HTML formats.
#
# Handbook-specific targets
#
# pgpkeyring This target will read the contents of
# pgpkeys/chapter.sgml and will extract all of
# the pgpkeys to standard out. This output can then
# be redirected into a file and distributed as a
# public keyring of FreeBSD developers that can
# easily be imported into PGP/GPG.
#
# ------------------------------------------------------------------------
.PATH: ${.CURDIR}/../../share/sgml/glossary
MAINTAINER=phantom@FreeBSD.org
DOC?= book
FORMATS?= html-split
#HAS_INDEX= true
USE_PS2PDF= yes
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
IMAGES_EN = advanced-networking/isdn-bus.eps
IMAGES_EN+= advanced-networking/isdn-twisted-pair.eps
IMAGES_EN+= advanced-networking/natd.eps
IMAGES_EN+= advanced-networking/net-routing.pic
IMAGES_EN+= advanced-networking/static-routes.pic
IMAGES_EN+= install/adduser1.scr
IMAGES_EN+= install/adduser2.scr
IMAGES_EN+= install/adduser3.scr
IMAGES_EN+= install/boot-mgr.scr
IMAGES_EN+= install/console-saver1.scr
IMAGES_EN+= install/console-saver2.scr
IMAGES_EN+= install/console-saver3.scr
IMAGES_EN+= install/console-saver4.scr
IMAGES_EN+= install/desktop.scr
IMAGES_EN+= install/disklabel-auto.scr
IMAGES_EN+= install/disklabel-ed1.scr
IMAGES_EN+= install/disklabel-ed2.scr
IMAGES_EN+= install/disklabel-fs.scr
IMAGES_EN+= install/disklabel-root1.scr
IMAGES_EN+= install/disklabel-root2.scr
IMAGES_EN+= install/disklabel-root3.scr
IMAGES_EN+= install/disk-layout.eps
IMAGES_EN+= install/dist-set.scr
IMAGES_EN+= install/dist-set2.scr
IMAGES_EN+= install/docmenu1.scr
IMAGES_EN+= install/ed0-conf.scr
IMAGES_EN+= install/ed0-conf2.scr
IMAGES_EN+= install/edit-inetd-conf.scr
IMAGES_EN+= install/fdisk-drive1.scr
IMAGES_EN+= install/fdisk-drive2.scr
IMAGES_EN+= install/fdisk-edit1.scr
IMAGES_EN+= install/fdisk-edit2.scr
IMAGES_EN+= install/ftp-anon1.scr
IMAGES_EN+= install/ftp-anon2.scr
IMAGES_EN+= install/hdwrconf.scr
IMAGES_EN+= install/keymap.scr
IMAGES_EN+= install/main1.scr
IMAGES_EN+= install/mainexit.scr
IMAGES_EN+= install/main-std.scr
IMAGES_EN+= install/main-options.scr
IMAGES_EN+= install/main-doc.scr
IMAGES_EN+= install/main-keymap.scr
IMAGES_EN+= install/media.scr
IMAGES_EN+= install/mouse1.scr
IMAGES_EN+= install/mouse2.scr
IMAGES_EN+= install/mouse3.scr
IMAGES_EN+= install/mouse4.scr
IMAGES_EN+= install/mouse5.scr
IMAGES_EN+= install/mouse6.scr
IMAGES_EN+= install/mta-main.scr
IMAGES_EN+= install/net-config-menu1.scr
IMAGES_EN+= install/net-config-menu2.scr
IMAGES_EN+= install/nfs-server-edit.scr
IMAGES_EN+= install/ntp-config.scr
IMAGES_EN+= install/options.scr
IMAGES_EN+= install/pkg-cat.scr
IMAGES_EN+= install/pkg-confirm.scr
IMAGES_EN+= install/pkg-install.scr
IMAGES_EN+= install/pkg-sel.scr
IMAGES_EN+= install/probstart.scr
IMAGES_EN+= install/routed.scr
IMAGES_EN+= install/security.scr
IMAGES_EN+= install/sysinstall-exit.scr
IMAGES_EN+= install/timezone1.scr
IMAGES_EN+= install/timezone2.scr
IMAGES_EN+= install/timezone3.scr
IMAGES_EN+= install/userconfig.scr
IMAGES_EN+= install/userconfig2.scr
IMAGES_EN+= install/xf86setup.scr
IMAGES_EN+= mail/mutt1.scr
IMAGES_EN+= mail/mutt2.scr
IMAGES_EN+= mail/mutt3.scr
IMAGES_EN+= mail/pine1.scr
IMAGES_EN+= mail/pine2.scr
IMAGES_EN+= mail/pine3.scr
IMAGES_EN+= mail/pine4.scr
IMAGES_EN+= mail/pine5.scr
IMAGES_EN+= geom/striping.pic
IMAGES_EN+= install/example-dir1.eps
IMAGES_EN+= install/example-dir2.eps
IMAGES_EN+= install/example-dir3.eps
IMAGES_EN+= install/example-dir4.eps
IMAGES_EN+= install/example-dir5.eps
IMAGES_EN+= security/ipsec-network.pic
IMAGES_EN+= security/ipsec-crypt-pkt.pic
IMAGES_EN+= security/ipsec-encap-pkt.pic
IMAGES_EN+= security/ipsec-out-pkt.pic
IMAGES_EN+= vinum/vinum-concat.pic
IMAGES_EN+= vinum/vinum-mirrored-vol.pic
IMAGES_EN+= vinum/vinum-raid10-vol.pic
IMAGES_EN+= vinum/vinum-raid5-org.pic
IMAGES_EN+= vinum/vinum-simple-vol.pic
IMAGES_EN+= vinum/vinum-striped-vol.pic
IMAGES_EN+= vinum/vinum-striped.pic
# Images from the cross-document image library
IMAGES_LIB= callouts/1.png
IMAGES_LIB+= callouts/2.png
IMAGES_LIB+= callouts/3.png
IMAGES_LIB+= callouts/4.png
IMAGES_LIB+= callouts/5.png
IMAGES_LIB+= callouts/6.png
IMAGES_LIB+= callouts/7.png
IMAGES_LIB+= callouts/8.png
IMAGES_LIB+= callouts/9.png
IMAGES_LIB+= callouts/10.png
#
# SRCS lists the individual SGML files that make up the document. Changes
# to any of these files will force a rebuild
#
# SGML content
SRCS+= audit/chapter.sgml
SRCS+= book.sgml
SRCS+= colophon.sgml
SRCS+= freebsd-glossary.sgml
SRCS+= advanced-networking/chapter.sgml
SRCS+= basics/chapter.sgml
SRCS+= bibliography/chapter.sgml
SRCS+= boot/chapter.sgml
SRCS+= config/chapter.sgml
SRCS+= cutting-edge/chapter.sgml
SRCS+= desktop/chapter.sgml
SRCS+= disks/chapter.sgml
SRCS+= eresources/chapter.sgml
SRCS+= firewalls/chapter.sgml
SRCS+= geom/chapter.sgml
SRCS+= install/chapter.sgml
SRCS+= introduction/chapter.sgml
SRCS+= kernelconfig/chapter.sgml
SRCS+= l10n/chapter.sgml
SRCS+= linuxemu/chapter.sgml
SRCS+= mac/chapter.sgml
SRCS+= mail/chapter.sgml
SRCS+= mirrors/chapter.sgml
SRCS+= multimedia/chapter.sgml
SRCS+= network-servers/chapter.sgml
SRCS+= pgpkeys/chapter.sgml
SRCS+= ports/chapter.sgml
SRCS+= ppp-and-slip/chapter.sgml
SRCS+= preface/preface.sgml
SRCS+= printing/chapter.sgml
SRCS+= security/chapter.sgml
SRCS+= serialcomms/chapter.sgml
SRCS+= users/chapter.sgml
SRCS+= vinum/chapter.sgml
SRCS+= x11/chapter.sgml
# Entities
SRCS+= chapters.ent
SYMLINKS= ${DESTDIR} index.html handbook.html
# Turn on all the chapters.
CHAPTERS?= ${SRCS:M*chapter.sgml}
SGMLFLAGS+= ${CHAPTERS:S/\/chapter.sgml//:S/^/-i chap./}
SGMLFLAGS+= -i chap.freebsd-glossary
pgpkeyring: pgpkeys/chapter.sgml
@${JADE} -V nochunks ${OTHERFLAGS} ${JADEOPTS} -d ${DSLPGP} -t sgml ${MASTERDOC}
#
# Handbook-specific variables
#
.if defined(WITH_PGPKEYS)
JADEFLAGS+= -V withpgpkeys
.endif
url_relprEFIX?= ../../../..
DOC_PREFIX?= ${.CURDIR}/../../..
#
# rules generating lists of mirror site from XML database.
#
XMLDOCS= mirrors-ftp:::mirrors.sgml.ftp.inc.tmp \
mirrors-cvsup:::mirrors.sgml.cvsup.inc.tmp \
eresources:::eresources.sgml.www.inc.tmp
DEPENDSET.DEFAULT= transtable mirror
XSLT.DEFAULT= ${XSL_MIRRORS}
XML.DEFAULT= ${XML_MIRRORS}
NO_TIDY.DEFAULT= yes
PARAMS.mirrors-ftp+= --param 'type' "'ftp'" \
--param 'proto' "'ftp'" \
--param 'target' "'handbook/mirrors/chapter.sgml'"
PARAMS.mirrors-cvsup+= --param 'type' "'cvsup'" \
--param 'proto' "'cvsup'" \
--param 'target' "'handbook/mirrors/chapter.sgml'"
PARAMS.eresources+= --param 'type' "'www'" \
--param 'proto' "'http'" \
--param 'target' "'handbook/eresources/chapter.sgml'"
SRCS+= mirrors.sgml.ftp.inc \
mirrors.sgml.cvsup.inc \
eresources.sgml.www.inc
CLEANFILES+= mirrors.sgml.ftp.inc mirrors.sgml.ftp.inc.tmp \
mirrors.sgml.cvsup.inc mirrors.sgml.cvsup.inc.tmp \
eresources.sgml.www.inc eresources.sgml.www.inc.tmp
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
.for p in ftp cvsup
mirrors.sgml.${p}.inc: mirrors.sgml.${p}.inc.tmp
${SED} -e 's,<\([^ >]*\)\([^>]*\)/>,<\1\2>\1>,;s,,,'\
< $@.tmp > $@ || (${RM} -f $@ && false)
.endfor
eresources.sgml.www.inc: eresources.sgml.www.inc.tmp
${SED} -e 's,<\([^ >]*\)\([^>]*\)/>,<\1\2>\1>,;s,,,'\
< $@.tmp > $@ || (${RM} -f $@ && false)
diff --git a/ru_RU.KOI8-R/books/handbook/book.sgml b/ru_RU.KOI8-R/books/handbook/book.sgml
index 2eb8701b48..ec0e243a44 100644
--- a/ru_RU.KOI8-R/books/handbook/book.sgml
+++ b/ru_RU.KOI8-R/books/handbook/book.sgml
@@ -1,359 +1,359 @@
%books.ent;
%chapters;
%txtfiles;
%pgpkeys;
]>
Руководство FreeBSDПроект Документации FreeBSDФевраль 1999199519961997199819992000200120022003200420052006The FreeBSD Documentation Project2000200120022003200420052006Проект Русской Документации FreeBSD
&bookinfo.legalnotice;
&tm-attrib.freebsd;
&tm-attrib.3com;
&tm-attrib.3ware;
&tm-attrib.arm;
&tm-attrib.adaptec;
&tm-attrib.adobe;
&tm-attrib.apple;
&tm-attrib.corel;
&tm-attrib.creative;
&tm-attrib.cvsup;
&tm-attrib.heidelberger;
&tm-attrib.ibm;
&tm-attrib.ieee;
&tm-attrib.intel;
&tm-attrib.intuit;
&tm-attrib.linux;
&tm-attrib.lsilogic;
&tm-attrib.m-systems;
&tm-attrib.macromedia;
&tm-attrib.microsoft;
&tm-attrib.netscape;
&tm-attrib.nexthop;
&tm-attrib.opengroup;
&tm-attrib.oracle;
&tm-attrib.powerquest;
&tm-attrib.realnetworks;
&tm-attrib.redhat;
&tm-attrib.sap;
&tm-attrib.sun;
&tm-attrib.symantec;
&tm-attrib.themathworks;
&tm-attrib.thomson;
&tm-attrib.usrobotics;
&tm-attrib.vmware;
&tm-attrib.waterloomaple;
&tm-attrib.wolframresearch;
&tm-attrib.xfree86;
&tm-attrib.xiph;
&tm-attrib.general;
Добро пожаловать в FreeBSD! Это Руководство охватывает процесс
установки и ежедневного использования FreeBSD
&rel2.current;-RELEASE и FreeBSD
&rel.current;-RELEASE.
Оно находится в процессе
разработки и являет собой результат работы множества
людей. Многие из разделов до сих пор не существуют, а некоторые из
существующих требуют обновления. Если вы заинтересованы в помощи
этому проекту, отправьте письмо в &a.ru.doc;. Обновленная версия этого
документа постоянно доступна с
Основного Web сервера Проекта Русской Документации FreeBSD и
Основного Web сервера
FreeBSD. Он также может быть загружен из
интернет в одном из наиболее распространенных форматов с FTP сервера Проекта
FreeBSD или с одного из многочисленных зеркал. Если вы предпочитаете иметь
напечатанный (английский) вариант Руководства, то можете приобрести
его на FreeBSD Mall.
Вы также можете воспользоваться Поиском в Руководстве
FreeBSD.
&chap.preface;
В началеЭта часть Руководства Пользователя FreeBSD предназначена для
пользователей и администраторов - новичков в FreeBSD. Эти главы:Введут вас в FreeBSD.Проведут вас по процессу установки FreeBSD.Обучат вас некоторым основам &unix;.Покажут вам как устанавливать программные пакеты не входящие
в стандартную поставку FreeBSD.Введут вас в X Window, оконную систему для &unix;, и опишут
как настроить графическое окружение и сделать вашу работу
более продуктивной.Мы попытались сократить множество ссылок в тексте до минимума
для того, чтоб вы могли прочитать этот раздел Руководства с начала
до конца с минимумом перелистываний страниц.Общие задачиТеперь, когда основы были пройдены, в данной части Руководства
FreeBSD будут обсуждаться некоторые часто используемые возможности
FreeBSD. В этих главах:Введение в популярные и полезные графические приложения:
браузеры, бизнес приложения, программы просмотра документов
и т.д.Представлены множество мультимедийных программ,
доступных в FreeBSD.Описан процесс создания собственного ядра FreeBSD
для включения дополнительных функций системы.Система печати разобрана в деталях, как для
непосредственно подключенных принтеров, так и для
принтеров, подключенных через сеть.Показано, как запускать приложения Linux в системе
FreeBSD.Перед прочтением некоторых из этих глав необходимо
ознакомиться с предварительной информацией,
что указано в кратком обзоре в начале каждой главы.Системное администрированиеОставшиеся главы Руководства охватывают все аспекты
администрирования FreeBSD системы. Каждая глава начинается с
описания того, что вы сможете изучить в результате прочтения
этой главы.Эти главы спланированы так, что вы можете прочитать их когда
вам нужно узнать какую-либо информацию. Вам не нужно читать их
в определенном порядке, и не нужно прочитать их все перед тем, как
начать пользоваться FreeBSD.Сетевые коммуникацииFreeBSD это одна из наиболее широко используемых в
высокопроизводительных сетевых серверах операционных систем.
Главы этой части книги охватывают:Последовательные соединенияPPP и PPP через EthernetЭлектронную почтуЗапуск сетевых серверовБрандмауэрыДругую сетевую тематику повышенной сложностиЭти главы предназначены для получения дополнительной
информации. Нет необходимости читать их в определенной
последовательности, или читать их все перед тем, как
начать использовать FreeBSD в сети.Приложения
&chap.colophon;
diff --git a/ru_RU.KOI8-R/books/handbook/chapters.ent b/ru_RU.KOI8-R/books/handbook/chapters.ent
index 228e322dc2..200f0a65ed 100644
--- a/ru_RU.KOI8-R/books/handbook/chapters.ent
+++ b/ru_RU.KOI8-R/books/handbook/chapters.ent
@@ -1,65 +1,65 @@
diff --git a/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml b/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml
index 4361c4e4e6..057cc2ad1b 100644
--- a/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml
@@ -1,4571 +1,4556 @@
АндрейЗахватовПеревод на русский язык: Устройства храненияКраткий обзорВ этой главе описывается использование дисков во FreeBSD. К ним
относятся диски в памяти, диски, подключенные по сети, обычные
устройства хранения SCSI/IDE и устройства, использующие
интерфейс USB.После чтения этой главы вы будете знать:Терминологию, используемую во FreeBSD для описания организации
данных на физическом диске (разделы и слайсы).Как добавить дополнительные винчестеры к вашей системе.Как настроить &os; для использования дисковых устройств
USB.Как настроить виртуальные файловые системы, такие, как диски в
оперативной памяти.Как использовать квоты для ограничения использования дискового
пространства.Как зашифровать диски, чтобы защитить их от взлома.Как создавать и записывать CD и DVD во FreeBSD.Различные варианты использования устройств хранения для
резервных копий.Как использовать программы резервного копирования, имеющиеся
для FreeBSD.Как выполнять резервное копирование на дискеты.Что такое мгновенные копии файловых систем и как
их эффективно использоватьПеред прочтением этой главы вам потребуется:Узнать как настраивать и устанавливать новое ядро FreeBSD
().Имена устройствДалее приводится список физических устройств хранения информации,
которые поддерживаются во FreeBSD, и имена устройств, которые им
соответствуют.
Соглашения по именованию физических дисковТип дискаИмя дискового устройстваВинчестеры IDEadПриводы IDE CDROMacdВинчестеры SCSI и дисковые устройства USBdaПриводы SCSI CDROMcdРазличные нестандартные приводы CDROMmcd для Mitsumi CD-ROM,
scd для Sony CD-ROM,
matcd для Matsushita/Panasonic CD-ROM
5 октября 2002 года драйвер &man.matcd.4; был удалён
из ветки FreeBSD 4.X и отсутствует во FreeBSD 5.0
и последующих релизах.ДискетыfdЛенточные приводы SCSIsaЛенточные приводы IDEastФлэш-дискиfla для флэш-устройств
&diskonchip;Диски RAIDaacd для &adaptec; AdvancedRAID,
mlxd и mlyd для &mylex;,
amrd для AMI &megaraid;,
idad для Compaq Smart RAID,
twed для &tm.3ware; RAID.
DavidO'BrienИзначальный текст предоставил Добавление дисковдискидобавлениеПредположим, что мы хотим установить новый диск SCSI на машину,
имеющую в данный момент только один диск. Сначала выключим компьютер и
установим диск в компьютер согласно инструкциям к компьютеру,
контроллеру и от производителя диска. Из-за большого разнообразия
этих процедур их рассмотрение выходит за рамки этого документа..Войдите в систему как пользователь root.
После того, как вы установили диск, просмотрите файл
/var/run/dmesg.boot, чтобы убедиться, что новый
диск был найден. Продолжая наш пример, только что добавленный диск
будет называться da1 и мы хотим смонтировать его
в каталог /1 (если вы добавляете диск IDE, то
устройство будет называться wd1 в системах,
предшествовавших 4.0, и ad1 в системах
4.X и 5.X).разделыслайсыfdiskFreeBSD работает на IBM-PC совместимых компьютерах, поэтому она
должна уметь работать с разделами PC BIOS. Однако они отличаются от
традиционных разделов BSD. Диск ПК может иметь до четырёх
записей разделов BIOS. Если диск на самом деле будет использоваться
исключительно под FreeBSD, вы можете использовать режим
dedicated. В противном случае FreeBSD будет
располагаться в одном из разделов PC BIOS. Во FreeBSD разделы PC BIOS
называются слайсами, чтобы не путать их с
традиционными разделами BSD. Вы также можете использовать слайсы и с
диском, предназначенным исключительно для FreeBSD, однако используемым
в компьютере, на котором имеется дополнительная операционная система.
Это является хорошим способом избежать путаницы в утилите
fdisk других операционных систем, не связанных с
FreeBSD.В случае слайсов диск будет добавлен как
/dev/da1s1e. Это интерпретируется следующим
образом: диск SCSI, устройство номер 1 (второй диск SCSI), слайс 1
(раздел PC BIOS 1), и раздел BSD e. В случае
использования в выделенном режиме диск будет добавлен просто как
/dev/da1e.Вследствие использования 32-разрядных целых чисел для адресации
секторов, &man.bsdlabel.8; (называемый &man.disklabel.8; в
&os; 4.X) ограничен 2^32-1 секторами на диск, или 2TB в
в большинстве случаев. Формат &man.fdisk.8; позволяет наличие
первого сектора со смещением не более 2^32-1 и длину не более
2^32-1, что ограничивает размер раздела до 2TB, а размер диска
до 4TB в большинстве случаев. Формат &man.sunlabel.8; ограничен
2^32-1 секторами на раздел и 8 разделами, что составляет 16TB.
Для дисков большего раздела могут быть использованы разделы
&man.gpt.8;.Использование утилиты &man.sysinstall.8;sysinstallдобавление дисковsuИспользование SysinstallВы можете использовать простые меню утилиты
sysinstall (/stand/sysinstall
во &os; версий, более старых, чем 5.2) для разбиения на разделы и
разметки нового диска. Войдите как пользователь
root или воспользуйтесь командой
su. Запустите команду
sysinstall и войдите в меню
Configure. Внутри FreeBSD
Configuration Menu, пролистайте и выберите пункт
Fdisk.Редактор разделов fdiskПри работе с утилитой fdisk ввод
A используется для выделения под
FreeBSD полностью всего диска. Когда будет задан вопрос о том,
хотите ли вы сохранить совместимость с другими возможными
операционными системами в будущем, ответьте
YES. Запишите изменения на диск при помощи
команды W. А теперь выйдите из редактора
FDISK, нажав q. В этот момент вам будет
задан вопрос о Master Boot Record (главной
загрузочной записи). Так как вы добавляете диск к уже работающей
системе, выберите None.Редактор метки дискаразделы BSDТеперь вам нужно выйти из sysinstall
и запустить эту утилиту снова. Следуйте указаниям выше, но на этот
раз выберите пункт Label. Вы перейдёте к
меню Disk Label Editor.
Здесь вы создадите традиционные разделы BSD. На диске может быть
до восьми разделов, имеющих метки a-h.
Некоторые из меток разделов
имеют особый смысл. Раздел a используется для
размещения корневого раздела (/). По этой
причине только ваш системный диск (например, тот, с которого
происходит загрузка), должен иметь раздел a.
Раздел b используется под раздел подкачки, и вы
можете иметь много дисков с разделами подкачки. Раздел
c используется для доступа ко всему диску в
режиме эксклюзивного использования или ко всему слайсу FreeBSD при
работе в режиме с использованием слайсов. Остальные разделы имеют
обычное предназначение.Редактор метки диска программы
sysinstall использует раздел
e для некорневого раздела и не для раздела
подкачки. Внутри редактора метки диска создайте отдельную файловую
систему, нажав C. Когда будет задан
вопрос о том, будет ли это раздел с файловой системой (FS) или это
будет раздел подкачки, выберите FS и наберите
точку монтирования (например, /mnt). При
добавлении диска после установки системы, программа
sysinstall не
будет автоматически создавать записи в файле
/etc/fstab, поэтому точка монтирования не так
уж и важна.Теперь вы готовы записать новую метку на диск и создать на нем
файловую систему. Сделайте это, набрав W.
Проигнорируйте сообщения об ошибках от
sysinstall о невозможности смонтировать
новый раздел. Полностью выйдите из редактора метки диска и из
программы sysinstall.ЗавершениеПоследний шаг заключается в редактировании файла
/etc/fstab и добавлении записи для вашего
нового диска.Использовании утилит командной строкиРабота со слайсамиСледующая настройка позволит вашему диску корректно работать с
другими операционными системами, которые могут быть установлены на
вашем компьютере, и не вызовет конфликта с утилитами
fdisk других операционных систем. Этот способ
рекомендуется использовать для установок новых дисков. Используйте
эксклюзивный режим, только если у вас есть
реальные причины делать это!&prompt.root; dd if=/dev/zero of=/dev/da1 bs=1k count=1
&prompt.root; fdisk -BI da1 # Инициализируем новый диск.
&prompt.root; disklabel -B -w -r da1s1 auto # Размечаем его.
&prompt.root; disklabel -e da1s1 # Редактируем только что созданную метку диска и добавляем разделы.
&prompt.root; mkdir -p /1
&prompt.root; newfs /dev/da1s1e # Повторяем этот шаг для всех созданных разделов.
&prompt.root; mount /dev/da1s1e /1 # Монтируем раздел(ы)
&prompt.root; vi /etc/fstab # Добавляем соответствующую запись/записи в файл /etc/fstab.Если у вас установлен диск IDE, подставьте
ad вместо da. На системах
версий ранее 4.X используйте wd.Эксклюзивный режимOS/2Если вы не будете использовать новый диск совместно с другой
операционной системой, то вы можете использовать режим
эксклюзивного использования. Отметьте, что этот
режим может ввести в заблуждение операционные системы от Microsoft;
однако информацию они не разрушат. А вот &os2; компании IBM будет
забирать себе любой раздел, который она найдет и не
сможет распознать.
&prompt.root; dd if=/dev/zero of=/dev/da1 bs=1k count=1
&prompt.root; disklabel -Brw da1 auto
&prompt.root; disklabel -e da1 # create the `e' partition
&prompt.root; newfs -d0 /dev/da1e
&prompt.root; mkdir -p /1
&prompt.root; vi /etc/fstab # add an entry for /dev/da1e
&prompt.root; mount /1Альтернативный метод заключается в следующем:&prompt.root; dd if=/dev/zero of=/dev/da1 count=2
&prompt.root; disklabel /dev/da1 | disklabel -BrR da1 /dev/stdin
&prompt.root; newfs /dev/da1e
&prompt.root; mkdir -p /1
&prompt.root; vi /etc/fstab # add an entry for /dev/da1e
&prompt.root; mount /1Начиная с &os; 5.1-RELEASE, на смену старой программе
&man.disklabel.8; пришла утилита &man.bsdlabel.8;. У
&man.bsdlabel.8; отсутствуют некоторые устаревшие опции и
параметры; в примере выше параметр не может
использоваться с &man.bsdlabel.8;. Для получения дополнительной
информации обратитесь к справочной странице п
о &man.bsdlabel.8;.RAIDПрограммный RAIDChristopherShumwayОригинальный текст предоставил JimBrownИзменения внёс RAIDпрограммныйRAIDCCDКонфигурация драйвера объединённого диска (CCD)При выборе решения для организации хранилища самыми важными
характеристиками являются скорость, надежность и стоимость. Редко
все эти характеристики наличествуют одновременно; обычно
быстрое и надёжное устройство хранения стоит дорого, а при
уменьшении стоимости в жертву приносятся скорость работы или
надёжность.При проектировании описываемой далее системы в качестве
самого важного фактора была выбрана её стоимость, затем
быстродействие и надёжность. Скорость передачи данных для этой
системы ограничивалась только пропускной способностью сети. И,
хотя надёжность очень важна, CCD-диск, описываемый ниже,
обслуживал работу с данными, полные копии которых уже хранились на
дисках CD-R, так они могли быть с лёгкостью обновлены.При выборе решения для массового хранения данных первым шагом
является определение ваших требований к нему. Если в ваших
требованиях главными являются скорость или надёжность, а не
стоимость, то ваш выбор будет отличаться от описываемой в этом
разделе системы.Установка оборудованияКроме системного IDE-диска, основу описываемого далее CCD-диска
общим объёмом примерно в 90 Гбайт составили три IDE-диска Western
Digital 30GB, 5400 RPM. В идеальном случае каждый диск IDE имеет
собственный контроллер и кабель, но для минимизации стоимости
дополнительные контроллеры IDE не использовались. Вместо этого
диски были настроены при помощи переключателей так, что на каждом
IDE-контроллере находилось по одному ведущему и одному ведомому
диску.До перезагрузки BIOS системы была настроена на автоматическое
распознавание подключенных дисков. Более важно то, что при
перезагрузке их распознала FreeBSD:ad0: 19574MB <WDC WD205BA> [39770/16/63] at ata0-master UDMA33
ad1: 29333MB <WDC WD307AA> [59598/16/63] at ata0-slave UDMA33
ad2: 29333MB <WDC WD307AA> [59598/16/63] at ata1-master UDMA33
ad3: 29333MB <WDC WD307AA> [59598/16/63] at ata1-slave UDMA33Если FreeBSD не распознала все диски, проверьте корректность
положения переключателей на них. На большинстве IDE-дисков
имеется также переключатель Cable Select. Он
не имеет отношения к выбору ведущего и
ведомого устройств. Для получения помощи по правильному
положению переключателей обратитесь к документации по
устройствам.Затем определите, как сделать их частью файловой системы.
Изучите справку по &man.vinum.8; () и
&man.ccd.4;. В нашем конкретном случае была выбрана технология
&man.ccd.4;.Настройка CCDДрайвер &man.ccd.4; позволяет вам взять несколько
идентичных дисков и объединить их в одну логическую файловую
систему. Для использования &man.ccd.4; нужно
ядро со встроенной поддержкой &man.ccd.4;.
Добавьте такую строку в файл конфигурации ядра, перестройте и
установите новое ядро:pseudo-device ccd 4В системах 5.X вместо этого вам нужно использовать такую
строку:device ccdВо FreeBSD 5.X нет нужды указывать количество устройств
&man.ccd.4; так как драйвер устройства &man.ccd.4; теперь
клонируется сам — новые экземпляры устройств будут
создаваться автоматически по необходимости.Во FreeBSD 3.0 и последующих версиях поддержка &man.ccd.4;
также может быть обеспечена загрузкой подгружаемого модуля
ядра.Для настройки &man.ccd.4; сначала вам
нужно воспользоваться утилитой &man.disklabel.8; для разметки
дисков:disklabel -r -w ad1 auto
disklabel -r -w ad2 auto
disklabel -r -w ad3 autoПри этом создаются метки для ad1c,
ad2c и ad3c,
которые занимают диск полностью.Начиная с &os; 5.1-RELEASE, на смену старой программе
&man.disklabel.8; пришла утилита &man.bsdlabel.8;. У
&man.bsdlabel.8; отсутствуют некоторые устаревшие опции и
параметры; в примере выше параметр не может
использоваться с &man.bsdlabel.8;. Для получения дополнительной
информации обратитесь к справочной странице п
о &man.bsdlabel.8;.Следующим шагом является изменение типа метки диска. Для
редактирования дисков можно использовать утилиту
&man.disklabel.8;:disklabel -e ad1
disklabel -e ad2
disklabel -e ad3При этом в редакторе, задаваемом переменной окружения
EDITOR (обычно это &man.vi.1;),
открывается текущая метка каждого диска.Немодифицированная метка диска будет выглядеть примерно
следующим образом:8 partitions:
# size offset fstype [fsize bsize bps/cpg]
c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)Добавьте новый раздел e для использования
драйвером &man.ccd.4;. Как правило, он может быть скопирован с
раздела c, но поле
должно иметь значение
4.2BSD. Теперь метка диска должна выглядеть
примерно так:8 partitions:
# size offset fstype [fsize bsize bps/cpg]
c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)
e: 60074784 0 4.2BSD 0 0 0 # (Cyl. 0 - 59597)Построение файловой системыФайл устройства для ccd0c может ещё
не существовать, так что для его создания предварительно выполните
такие команды:cd /dev
sh MAKEDEV ccd0Во FreeBSD 5.0 &man.devfs.5; будет управлять файлами
устройств в каталоге /dev автоматически, так
что в использовании MAKEDEV необходимости
нет.Теперь, когда все диски размечены, вы должны построить
&man.ccd.4;. Для этого используйте утилиту
&man.ccdconfig.8; с параметрами, подобными следующим:ccdconfig ccd0 32 0 /dev/ad1e /dev/ad2e /dev/ad3eИспользование и значение каждого параметра описывается
ниже:Первым аргументом является конфигурируемое устройство,
в нашем случае /dev/ccd0c. Часть
/dev/ является необязательной.Чередование для файловой системы. Оно определяет размер
единицы блока данных в количестве дисковых блоков, каждый из
которых обычно имеет объём в 512 байт. Таким образом, при
чередовании в 32 это будет составлять 16384 байт.Опции для &man.ccdconfig.8;. Если вы хотите включить
зеркалирование диска, то можете задать это здесь. В нашей
конфигурации зеркалирование для &man.ccd.4; не предусмотрено,
поэтому здесь задан 0 (ноль).Последним параметром для &man.ccdconfig.8;
является список устройств для объединения в массив. Для
каждого устройства нужно задавать полное имя.После запуска &man.ccdconfig.8; устройство
&man.ccd.4; будет отконфигурировано. Может
будет построить файловую систему. Обратитесь к справке по
команде &man.newfs.8; для выяснения требуемых параметров, или
просто запустите: newfs /dev/ccd0cАвтоматическое выполнениеВообще говоря, вам потребуется монтировать
&man.ccd.4; при каждой перезагрузке. Для этого
сначала вы должны отконфигурировать это устройство. Запишите
вашу текущую конфигурацию в файл /etc/ccd.conf
при помощи такой команды:ccdconfig -g > /etc/ccd.confПри перезагрузке скрипт /etc/rc запускает
команду ccdconfig -C, если существует файл
/etc/ccd.conf. При этом
&man.ccd.4; автоматически конфигурируется так,
чтобы он мог быть смонтирован.Если при загрузке вы входите в однопользовательский режим, то
перед тем, как выполнять монтирование &man.ccd.4; по команде
&man.mount.8;, вам нужно для конфигурации массива
запустить следующую команду:ccdconfig -CДля автоматического монтирования &man.ccd.4;
поместите запись о &man.ccd.4; в файл
/etc/fstab, чтобы он мог быть
смонтирован во время загрузки системы:/dev/ccd0c /media ufs rw 2 2Менеджер томов VinumRAIDпрограммныйRAIDVinumМенеджер томов Vinum является драйвером блочного устройства,
который реализует виртуальные диски. Он отделяет дисковое
оборудование от интерфейса блочного устройства и работает с данными
таким образом, что в результате повышается гибкость,
производительность и надёжность по сравнению с традиционным
взглядом на дисковое хранилище как на кусок дискового пространства.
&man.vinum.8; реализует модели RAID-0, RAID-1 и RAID-5, как по
отдельности, так и в комбинациях.Обратитесь к для получения более
полной информации о &man.vinum.8;.Аппаратный RAIDRAIDОборудованиеFreeBSD поддерживает также целый ряд аппаратных контроллеров
RAID. Эти устройства самостоятельно управляют
RAID-подсистемой, без необходимости иметь
специфичное для FreeBSD программное обеспечения управления
массивом.При помощи встроенной в адаптер BIOS, он
сам управляет большинством дисковых операций. Далее следует краткое
описание установки при помощи контроллера Promise
IDE RAID.
После установки адаптера и запуска системы, выдаётся
запрос на ввод. Следуйте указаниям для входа в настройку адаптера.
Отсюда вы можете объединить все подключенные диски. После этого
во FreeBSD диск(и) будут выглядеть как один диск. Аналогично могут
быть настроены и другие уровни RAID.Перестроение массивов ATA RAID1FreeBSD позволяет вам выполнять горячую замену вышедшего из строя
диска. При этом требуется, чтобы вы заметили это до
перезагрузки.Вероятно, в файле /var/log/messages или в
выдаче команды &man.dmesg.8; вы увидите примерно следующее:ad6 on monster1 suffered a hard error.
ad6: READ command timeout tag=0 serv=0 - resetting
ad6: trying fallback to PIO mode
ata3: resetting devices .. done
ad6: hard error reading fsbn 1116119 of 0-7 (ad6 bn 1116119; cn 1107 tn 4 sn 11)\\
status=59 error=40
ar0: WARNING - mirror lostПри помощи &man.atacontrol.8; получите дополнительную
информацию:&prompt.root; atacontrol list
ATA channel 0:
Master: no device present
Slave: acd0 <HL-DT-ST CD-ROM GCR-8520B/1.00> ATA/ATAPI rev 0
ATA channel 1:
Master: no device present
Slave: no device present
ATA channel 2:
Master: ad4 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
Slave: no device present
ATA channel 3:
Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
Slave: no device present
&prompt.root; atacontrol status ar0
ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADEDСначала вам нужно отключить канал контроллера ATA, содержащий
отказавший диск, чтобы его можно было без последствий
извлечь:&prompt.root; atacontrol detach ata3Замените диск.Повторно подключите канал дискового контроллера:&prompt.root; atacontrol attach ata3
Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
Slave: no device presentДобавьте новый диск к массиву в качестве резервного:&prompt.root; atacontrol addspare ar0 ad6Перестройте массив:&prompt.root; atacontrol rebuild ar0Проверить состояние дел можно при помощи следующей команды:&prompt.root; dmesg | tail -10
[выдача удалена]
ad6: removed from configuration
ad6: deleted from ar0 disk1
ad6: inserted into ar0 disk1 as spare
&prompt.root; atacontrol status ar0
ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completedДождитесь завершения этой операции.MarcFonvieilleПредоставил USB устройства храненияUSBдискиМножество современных устройств хранения используют Universal
Serial Bus (USB): жесткие диски, брелоки USB, CD-R приводы,
и т.д. &os; предоставляет поддержку этих устройств.НастройкаДрайвер &man.umass.4; предоставляет поддержку устройств
хранения USB. Если вы используете GENERIC
ядро, изменять что-либо в настройках не потребуется. Если вы
используете настроенное ядро, убедитесь, что в файле настройки
присутствуют следующие строки:device scbus
device da
device pass
device uhci
device ohci
device usb
device umassДля доступа к устройствам хранения USB драйвер &man.umass.4;
использует подсистему SCSI, ваши устройства USB будут видны
системе как SCSI устройства. В зависимости от чипсета USB
на материнской плате, вам потребуется только один из параметров
device uhci или device ohci.
Однако, наличие обоих этих параметров не помешает. Не забудьте
скомпилировать и установить новое ядро после добавления каких-либо
строк.Если ваше USB устройство это пишущий привод CD-R или DVD,
необходимо добавить
в ядро SCSI CD-ROM драйвер, &man.cd.4;, следующей строкой:device cdПоскольку устройство записи видно как SCSI диск, драйвер
&man.atapicam.4; не должен использоваться в файле
настройки.Поддержка USB 2.0 контроллеров предоставляется в
&os; 5.X, и в ветви 4.X с &os; 4.10-RELEASE.
Добавьте:device ehciв файл настройки ядра для поддержки USB 2.0. Обратите внимание,
что драйверы &man.uhci.4; и &man.ohci.4; все еще нужны, если
необходима поддержка USB 1.X.В &os; 4.X, необходимо запустить USB даемона
(&man.usbd.8;), чтобы увидеть некоторые USB устройства.
Для этого добавьте usbd_enable="YES"
в файл /etc/rc.conf и перезагрузите
компьютер.Тестирование конфигурацииКонфигурация готова к тестированию, подключите устройство USB,
и в буфере системных сообщений (&man.dmesg.8;), диск должен
отобразиться примерно так:umass0: USB Solid state disk, rev 1.10/1.00, addr 2
GEOM: create disk da0 dp=0xc2d74850
da0 at umass-sim0 bus 0 target 0 lun 0
da0: <Generic Traveling Disk 1.11> Removable Direct Access SCSI-2 device
da0: 1.000MB/s transfers
da0: 126MB (258048 512 byte sectors: 64H 32S/T 126C)Конечно, производитель, имя устройства
(da0) и другие детали могут
отличаться в зависимости от конфигурации.Поскольку устройство USB видится как SCSI, команда
camcontrol может быть использована для
вывода списка устройств хранения USB, подключенных к системе:&prompt.root; camcontrol devlist
<Generic Traveling Disk 1.11> at scbus0 target 0 lun 0 (da0,pass0)Если на диске есть файловая система, у вас должна быть
возможность смонтировать ее.
поможет вам создать и отформатировать разделы на диске
USB если потребуется.Если вы отключите устройство (диск должен быть сначала
размонтирован), вы должны увидеть в буфере системных сообщений
что-то подобное:umass0: at uhub0 port 1 (addr 2) disconnected
(da0:umass-sim0:0:0:0): lost device
(da0:umass-sim0:0:0:0): removing device entry
GEOM: destroy disk da0 dp=0xc2d74850
umass0: detachedДополнительная информацияПомимо разделов Добавление
дисков и Монтирование
и размонтирование файловых систем, также может быть полезно
чтение различных страниц справочника: &man.umass.4;,
&man.camcontrol.8;, и &man.usbdevs.8;.MikeMeyerТекст предоставил Запись и использование оптических носителей (CD)CDROMсозданиеВведениеКомпакт-диски (CD) имеют несколько особенностей, отличающих их от
обычных дисков. Во-первых, на них невозможно производить запись. Они
спроектированы с расчетом на то, что их можно читать последовательно без
задержек на перемещение головки между дорожками. К тому же их гораздо
проще переносить от системы к системе, чем носители близкого
объема.У CD имеются дорожки, но они представляют собой последовательность
данных, читаемую последовательно, и не являются физической
характеристикой диска. Для записи CD во FreeBSD вы готовите файлы
данных, которые будут формировать дорожки на компакт-диске, а затем
записываете дорожки на CD.ISO 9660файловые системыISO 9660Файловая система ISO 9660 была разработана с учетом этих отличий, К
сожалению, она унаследовала ограничения файловых систем, которые были
тогда. К счастью, она дает механизм расширений, которые позволяют
правильно записанным дискам обходить эти ограничения и при этом
продолжать работать с системами, которые не поддерживают эти
расширения.sysutils/cdrtoolsДля создания файла данных, содержащего файловую систему ISO 9660,
используется программа &man.mkisofs.8;, которая включена в порт
sysutils/cdrtools. Она имеет опции,
поддерживающие различные расширения, и описана ниже.устройство записи CDATAPIКакой инструмент использовать для записи CD, зависит от того,
является ли
ваше устройство для записи CD устройством ATAPI или каким-либо другим.
С устройствами для записи стандарта ATAPI используется программа
burncd, которая
является частью комплекта поставки системы. С устройствами SCSI и USB
нужно использовать cdrecord из порта
- sysutils/cdrtools.
-
- burncd поддерживает не все устройства. Для
- определения того, поддерживается ли устройство, посмотрите список
- поддерживаемых приводов
- CD-R/RW.
-
-
-
- устройство записи CD
-
- драйвер ATAPI/CAM
-
-
- Если вы используете &os; 5.X, &os; 4.8-RELEASE или
- более новые версии, то при работе с ATAPI-оборудованием через модуль ATAPI/CAM можно использовать
- утилиту cdrecord и
- другие инструменты для SCSI-приводов.
-
+ sysutils/cdrtools.
+ Утилиту cdrecord и
+ другие инструменты для SCSI-приводов также можно использовать при
+ работе с ATAPI-оборудованием через модуль
+ ATAPI/CAM.
Если для записи CD вам нужна программа с графическим
интерфейсом пользователя, взгляните на
X-CD-Roast или
K3b. Они доступны в виде пакетов
или из портов sysutils/xcdroast и sysutils/k3b.
Программам X-CD-Roast и
K3b для работы с оборудованием
ATAPI требуется модуль ATAPI/CAM.mkisofsПрограмма &man.mkisofs.8;, поставляемая с портом sysutils/cdrtools создаёт
файловую систему ISO 9660, которая является образом дерева каталогов в
пространстве имён файловой системы &unix;. В самом простом случае она
используется так:&prompt.root; mkisofs -o imagefile.iso/path/to/treeфайловые системыISO 9660Эта команда создаст файл imagefile.iso,
содержащий файловую систему ISO 9660, которая является копией дерева
каталогов /path/to/tree. Во время работы
она будет преобразовывать имена файлов в имена, которые удовлетворяют
ограничениям файловой системы ISO 9660, и исключит файлы, которые носят
имена, неподходящие для файловой системы ISO.файловые системыHFSфайловые системыJolietДля того, чтобы обойти эти ограничения, имеется несколько опций. В
частности, включает использование расширений
Rock Ridge, распространенных в &unix;-системах, с
будут применены расширения Joliet, используемые в системах от
Microsoft, а может использоваться для создания
файловых систем HFS, используемых в &macos;.Для CD, которые будут использоваться только с системами FreeBSD,
может использоваться опция , отменяющая все
ограничения на имена файлов. При использовании с опцией
генерируется образ файловой системы, идентичный начальному дереву
FreeBSD, хотя при этом стандарт ISO 9660 может нарушаться в нескольких
местах.CDROMсоздание загрузочногоПоследней часто используемой опцией является .
Она используется для указания загрузочного образа для использования при
создании загрузочного CD в стандарте El Torito. Этой
опции указывается аргумент, который является маршрутом к загрузочному
образу из корня дерева, записываемого на CD.
По умолчанию, &man.mkisofs.8; создает образ ISO в так называемом режиме
эмуляции флоппи-диска, и потому ожидает загрузочный
образ размера строго 1200, 1440 или 2880 KB. Некоторые
загрузчики, в том числе и тот, что используется на дистрибутивных
дисках &os;, не используют режим эмуляции; в этом случае должна
использоваться опция . Так что, если
/tmp/myboot содержит загрузочную систему FreeBSD с
загрузочным образом в /tmp/myboot/boot/cdboot, вы
можете создать образ файловой системы ISO 9660 в
/tmp/bootable.iso следующим образом:&prompt.root; mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/mybootСделав это, и имея в ядре отконфигурированное устройство
vn (для FreeBSD 4.X) или
md (при использовании FreeBSD 5.X), вы
можете смонтировать файловую систему, выполнив:&prompt.root; vnconfig -e vn0c /tmp/bootable.iso
&prompt.root; mount -t cd9660 /dev/vn0c /mntв случае использования FreeBSD 4.X, а для
FreeBSD 5.X:&prompt.root; mdconfig -a -t vnode -f /tmp/bootable.iso -u 0
&prompt.root; mount -t cd9660 /dev/md0 /mntВ этот момент вы можете проверить, что /mnt и
/tmp/myboot идентичны.Имеется много других опций, которые можно использовать с
программой &man.mkisofs.8; для
тонкой настройки её поведения. В частности: модификации в размещении
ISO 9660 и создание дисков в форматах Joliet и HFS. Обратитесь к
справочным страницам по &man.mkisofs.8; для получения более подробной
информации.burncdCDROMзаписьЕсли ваше устройство для записи CD соответствует стандарту ATAPI,
то для записи ISO-образа на компакт-диск вы можете воспользоваться
командой burncd. burncd входит
в базовый комплект операционной системы и установлена как
/usr/sbin/burncd. Использовать её очень просто,
так как параметров у ней немного:&prompt.root; burncd -f cddevice data imagefile.iso fixateПо этой команде файл imagefile.iso будет
скопирован на cddevice. По умолчанию
используется устройство /dev/acd0 (или
/dev/acd0c в &os; 4.X). Для получения
информации о параметрах, задающих скорость записи, выброс диска после
записи и запись звуковых данных, обратитесь к &man.burncd.8;.cdrecordЕсли ваше устройство для записи CD не соответствует стандарту
ATAPI, то для записи компакт-дисков вам нужно пользоваться программой
cdrecord. cdrecord не входит в
комплект поставки системы; вы должны установить её из порта
sysutils/cdrtools или из
соответствующего пакета. Изменения в системе могут приводить к тому,
что откомпилированные версии этой программы работать не будут, или
приводить к порче дисков. Поэтому вы должны при обновлении системы
либо обновить порт, либо, если вы следуете
-STABLE, обновить порт при появлении его новой версии.Хотя cdrecord имеет много опций, в основном
использовать её ещё проще, чем burncd. Запись образа
ISO 9660 делается такой командой:&prompt.root; cdrecord dev=deviceimagefile.isoТонким моментом при использовании cdrecord
является определение правильного устройства . Чтобы
задать параметр правильно, воспользуйтесь флагом
команды cdrecord, в
результате чего может получиться примерно такой результат:CDROMзапись&prompt.root; cdrecord -scanbus
Cdrecord 1.9 (i386-unknown-freebsd4.2) Copyright (C) 1995-2000 Jörg Schilling
Using libscg version 'schily-0.1'
scsibus0:
0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk
0,1,0 1) 'SEAGATE ' 'ST39173W ' '5958' Disk
0,2,0 2) *
0,3,0 3) 'iomega ' 'jaz 1GB ' 'J.86' Removable Disk
0,4,0 4) 'NEC ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM
0,5,0 5) *
0,6,0 6) *
0,7,0 7) *
scsibus1:
1,0,0 100) *
1,1,0 101) *
1,2,0 102) *
1,3,0 103) *
1,4,0 104) *
1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM
1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner
1,7,0 107) *Здесь приведены соответствующие значения параметров
для имеющихся устройств. Найдите здесь ваше
устройство для записи CD, а в качестве параметров для
задавайте три числа через запятые. В нашем случае
CRW-устройству соответствуют числа 1,5,0, так что правильным параметром
будет . Имеется более
простой способ задать эти значения; обратитесь к справочной информации
о &man.cdrecord.1; для выяснения подробностей. Там же находится
информация о записи звуковых дорожек, управлении скоростью и другим
вещам.Копирование аудио CDВы можете копировать музыкальные CD, извлекая данные аудио с CD
в набор файлов, а затем записывая эти файлы на чистый CD. Процесс
несколько различен в случаях использования устройств ATAPI и
SCSI.Устройства SCSIИспользуйте cdda2wav для извлечения
данных аудио.&prompt.user; cdda2wav -v255 -D2,0 -B -OwavВоспользуйтесь cdrecord для записи файлов
.wav.&prompt.user; cdrecord -v dev=2,0 -dao -useinfo *.wavЗначение, соответствующее 2,0,
должно быть установлено правильно, как это описано в .Устройства ATAPIДрайвер устройств ATAPI CD делает каждую дорожку доступной как
/dev/acddtnn,
где d является номером привода, а
nn соответствует номеру дорожки, который
записывается двумя десятичными цифрами с нулём в начале, если это
нужно. Таким образом, первая дорожка на первом диске будет носить
имя /dev/acd0t01, вторая будет именоваться
/dev/acd0t02, третья будет носить имя
/dev/acd0t03 и так далее.Удостоверьтесь, что соответствующий файл имеется в каталоге
/dev. При его отсутствии следует
принудительно перечитать оглавление диска:&prompt.root; dd if=/dev/acd0 of=/dev/null count=1В версиях &os; 4.X номера треков не предваряются нулем.
В случае отсутствия нужных файлов устройств, создайте их при
помощи команды MAKEDEV:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV acd0t99Извлеките каждую дорожку при помощи команды &man.dd.1;. При
извлечении файлов вы должны также использовать специфическое
значение для размера блока.&prompt.root; dd if=/dev/acd0t01 of=track1.cdr bs=2352
&prompt.root; dd if=/dev/acd0t02 of=track2.cdr bs=2352
...
Запишите извлечённые файлы на диск при помощи утилиты
burncd. Вы должны указать, что это файлы с
аудио, и что burncd должна зафиксировать диск
по окончании работы.&prompt.root; burncd -f /dev/acd0 audio track1.cdr track2.cdr ... fixateКопирование компакт-дисков с даннымиВы можете скопировать CD с данными в файл образа, который
функционально эквивалентен файлу образа, созданному командой
&man.mkisofs.8;, и вы можете
использовать его для копирования любого CD с данными. В приводимом
здесь примере предполагается, что ваш привод CDROM называется
acd0. Подставьте название вашего привода
CDROM. В &os; 4.X к имени устройства должен быть добавлен
символ c
для указания на то, что берётся весь раздел, а в
случае CDROM, весь диск.&prompt.root; dd if=/dev/acd0 of=file.iso bs=2048Теперь, когда вы имеете образ, вы можете записать его на CD так,
как это описано выше.Использование компакт-диски с даннымиТеперь, после того, как вы создали стандартный CDROM с данными, вы,
наверное, захотите смонтировать его и считать с него данные. По
умолчанию &man.mount.8; предполагает, что файловая система имеет тип
ufs. Если вы попытаетесь выполнить что-то
вроде:&prompt.root; mount /dev/cd0 /mntвы получите сообщение Incorrect super block,
и диск не смонтируется. CDROM не является файловой системой
UFS, поэтому попытки смонтировать его таким образом
будут терпеть неудачу. Вам просто нужно указать команде &man.mount.8;,
что файловая система имеет тип ISO9660, и всё должно
заработать. Сделайте это, задав параметр
при вызове &man.mount.8;. К примеру, если вы хотите смонтировать
устройство CDROM, /dev/cd0, в каталог
/mnt, вы должны выполнить:&prompt.root; mount -t cd9660 /dev/cd0 /mntЗаметьте, что имя вашего устройства
(/dev/cd0 в этом примере) может быть другим,
в зависимости от интерфейса, используемого в CDROM. Кроме того,
параметр всего лишь задаёт выполнение
утилиты &man.mount.cd9660.8;. Пример выше может быть упрощён
до:&prompt.root; mount_cd9660 /dev/cd0c /mntТаким способом, вообще говоря, вы можете использовать компакт-диски
любого производителя. Диски с некоторыми расширениями ISO 9660 могут,
однако, работать со странностями. К примеру диски Joliet хранят все
имена файлов в виде последовательностей двухбайтовых символов Unicode.
Ядро FreeBSD (пока ещё) не может работать с Unicode, поэтому не
английские символы выводятся в виде знаков вопроса. (Если в работаете
с FreeBSD 4.3 или более поздней версией, то в драйвере CD9660 имеется
механизм для динамической загрузки соответствующей таблицы
преобразования Unicode. Модули для некоторых распространённых
кодировок могут быть получены из порта
sysutils/cd9660_unicode.)Время от времени вы можете получать сообщения Device not
configured при попытке смонтировать CDROM. Это обычно
означает, что привод CDROM полагает, что в нём нет диска, или что
привод не виден на шине. Приводу CDROM может понадобиться несколько
секунд, чтобы понять, что он был закрыт, так что будьте
терпеливы.Иногда SCSI CDROM может потеряться из-за того, что у него не было
достаточно времени, чтобы ответить на сброс шины. Если у вас имеется
SCSI CDROM, то, пожалуйста, добавьте следующий параметр в конфигурацию
вашего ядра и перестройте
его.options SCSI_DELAY=15000Это укажет вашей шине SCSI выдерживать 15-секундную паузу во время
загрузки, чтобы дать вашему приводу CDROM шанс ответить на сброс
шины.Запись необработанных данных на компакт-дискиВы можете предпочесть запись файла непосредственно на CD без
создания файловой системы ISO 9660. Некоторые поступают так при
создании резервных копий. Это выполняется гораздо быстрее. чем запись
стандартного компакт-диска:&prompt.root; burncd -f /dev/acd1 -s 12 data archive.tar.gz fixateДля извлечения данных, записанных так на компакт-диск, вы должны
считывать данные из файла непосредственного доступа к
устройству:&prompt.root; tar xzvf /dev/acd1Вы не можете монтировать этот диск как обычный CDROM. Такой
компакт-диск не может быть прочитан ни в какой другой операционной
системе, кроме FreeBSD. Если вы хотите монтировать CD или
обменяться данными с другой операционной системой, то вы должны
использовать &man.mkisofs.8; так,
как это было описано выше.MarcFonvieilleПредоставил устройство записи CDдрайвер ATAPI/CAMИспользование драйвера ATAPI/CAMЭтот драйвер позволяет работать с ATAPI-устройствами (приводы
CD-ROM, CD-RW, DVD и так далее) через подсистему SCSI, таким образом
расширяя использование таких приложений, как sysutils/cdrdao или &man.cdrecord.1;.Для использования этого драйвера вам необходимо добавить в файл
конфигурации ядра следующую строку:device atapicamКроме того, в файле конфигурации ядра должны быть следующие
строки:device ata
device scbus
device cd
device passкоторые уже должны там присутствовать.После этого перестройте и установите ваше новое ядро, выполните
перезагрузку машины. В процессе загрузки ваш пишущий привод должен
появиться примерно следующим образом:acd0: CD-RW <MATSHITA CD-RW/DVD-ROM UJDA740> at ata1-master PIO4
cd0 at ata1 bus 0 target 0 lun 0
cd0: <MATSHITA CDRW/DVD UJDA740 1.00> Removable CD-ROM SCSI-0 device
cd0: 16.000MB/s transfers
cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closedТеперь с ним можно работать через устройство
/dev/cd0, например, чтобы смонтировать
CD-ROM в каталог /mnt, просто наберите следующую
команду:&prompt.root; mount -t cd9660 /dev/cd0 /mntДля получения SCSI-адреса пишущего привода, вы можете, работая как
пользователь root, запустить такую
команду:&prompt.root; camcontrol devlist
<MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (pass0,cd0)Таким образом, 1,0,0 будет SCSI-адресом для
использования с &man.cdrecord.1; и другими приложениями для работы со
SCSI.Для получения дополнительной информации об ATAPI/CAM и системе
SCSI, обратитесь к страницам справочной системы по &man.atapicam.4; и
&man.cam.4;.MarcFonvieilleПредоставил AndyPolyakovДополнения предоставил Создание и использование оптических носителей (DVD)DVDзаписьВведениеDVD это следующее после CD поколение оптических носителей.
DVD может вмещать больше данных чем любой CD и является
современным стандартом распространения видео.Для записываемых DVD существует пять физических форматов
записи:DVD-R: Был первым форматом записываемых DVD. Стандарт
DVD-R был создан DVD Forum.
Это формат для однократной записи.DVD-RW: Это перезаписываемая версия стандарта DVD-R.
Носители DVD-RW могут быть перезаписаны около 1000 раз.DVD-RAM: Это также перезаписываемый формат, поддерживаемый
DVD Forum. DVD-RAM может быть виден как съемный жесткий диск.
Однако, этот носитель не совместим с большинством приводов
DVD-ROM и проигрывателями DVD-Video; лишь некоторые
пишущие DVD поддерживают формат DVD-RAM. Более подробно
о работе с DVD-RAM можно прочитать в разделе
.DVD+RW: Это перезаписываемый формат, созданный
DVD+RW
Alliance. Носитель DVD+RW может быть перезаписан около
1000 раз.DVD+R: Этот формат — однократно записываемая версия
формата DVD+RW.Однослойный записываемый DVD может хранить до
4,700,000,000 байт, что равно 4.38 Гбайт, или
4485 Мбайт (1 килобайт это 1024 байт).Необходимо различать физический носитель и приложение.
Например, DVD-Video это определенная файловая раскладка, которая
может быть помещена на записываемый DVD любого физического
формата: DVD-R, DVD+R, DVD-RW и т.д. Перед выбором типа
носителя вы должны убедиться, что и устройство записи и
DVD-Video проигрыватель (отдельный или DVD-ROM привод
компьютера) совместимы с данным носителем.НастройкаДля записи DVD будет использоваться программа &man.growisofs.1;.
Эта команда входит в набор утилит
dvd+rw-tools (sysutils/dvd+rw-tools), который поддерживает
все типы носителей DVD.Эти утилиты используют подсистему SCSI для доступа к устройствам,
следовательно необходимо добавить в ядро поддержку ATAPI/CAM. Если пишущий
привод использует USB интерфейс, это добавление бесполезно и
необходимо прочесть более подробную информацию по настройке
устройств USB в Вам также потребуется включить DMA доступ для устройств ATAPI,
это можно сделать добавив в
/boot/loader.conf следующую строку:hw.ata.atapi_dma="1"Перед использованием
dvd+rw-tools вы должны свериться со
списком
совместимого оборудования dvd+rw-tools с информацией
по устройствам для записи DVD.Если вам нужен графический интерфейс пользователя,
взгляните на K3b (sysutils/k3b), который
предоставляет дружественный пользователю интерфейс к
&man.growisofs.1; и многим другим программам
записи.Запись DVD с даннымиКоманда &man.growisofs.1; является оболочкой для mkisofs, она вызовет
&man.mkisofs.8; для создания файловой системы и запишет
DVD. Это означает, что вам не потребуется создавать образ
с данными перед началом процесса записи.Для записи данных из каталога /path/to/data на DVD+R или DVD-R,
используйте следующую команду:&prompt.root; growisofs -dvd-compat -Z /dev/cd0 -J -R /path/to/dataПараметры передаются
&man.mkisofs.8; для создания файловой системы (в данном случае:
файловая система ISO 9660 с расширениями Joliet и Rock Ridge),
обратитесь к странице справочника &man.mkisofs.8; за более
подробной информацией.Параметр используется для первой сессии
записи в любом случае: для одной или нескольких сессий.
Устройство DVD, /dev/cd0, должно
быть изменено в соответствии с имеющимися настройками.
Параметр закроет диск и дозапись
станет невозможна. Это должно улучшить совместимость с
приводами DVD-ROM.Возможна также запись предварительного (pre-mastered) образа,
например, для записи
imagefile.iso запустим:&prompt.root; growisofs -dvd-compat -Z /dev/cd0=imagefile.isoСкорость записи должна быть определена и автоматически
установлена в соответствии с носителем и приводом. Если вы хотите
явно указать скорость записи, используйте параметр
. За дальнейшей информацией обратитесь к
странице справочника &man.growisofs.1;.DVDDVD-VideoЗапись DVD-VideoDVD-Video это особая файловая система, базирующаяся на ISO 9660
и спецификациях micro-UDF (M-UDF). DVD-Video также представляет
определенную иерархию структуры данных, поэтому для создания DVD
потребуется особая программа, такая как multimedia/dvdauthor.Если у вас уже есть образ файловой системы DVD-Video,
просто запишите его как любой другой образ, примеры находятся
в предыдущем разделе. Если вы создали DVD и результат находится
в каталоге /path/to/video,
для записи DVD-Video должна быть использована следующая
команда:&prompt.root; growisofs -Z /dev/cd0 -dvd-video /path/to/videoПараметр будет передан
&man.mkisofs.8; и укажет создать файловую систему DVD-Video.
Помимо этого, параметр подразумевает
параметр &man.growisofs.1; .DVDDVD+RWИспользование DVD+RWВ отличие от CD-RW, новый DVD+RW необходимо отформатировать перед
первым использованием. Программа &man.growisofs.1; позаботится об
этом сама при необходимости, и это
рекомендованный способ. Тем не менее,
для форматирования DVD+RW вы можете использовать команду
dvd+rw-format:&prompt.root; dvd+rw-format /dev/cd0Эту операцию необходимо выполнить лишь однажды, помните,
что только новые носители DVD+RW необходимо форматировать.
Затем запишите DVD+RW тем способом, который описан в предыдущем
разделе.Если вы хотите записать новые данные (полностью новую файловую
систему, а не дописать данные) на DVD+RW, его не нужно очищать,
просто запишите поверх предыдущей записи (создав новую начальную
сессию) примерно так :&prompt.root; growisofs -Z /dev/cd0 -J -R /path/to/newdataФормат DVD+RW делает возможным легко дописать данные к предыдущей
записи. Операция состоит в присоединении предыдущей сессии к
существующей, это не мультисессионная запись, &man.growisofs.1;
расширит (grow) файловую систему ISO 9660,
существующую на носителе.Например, для дозаписи данных к предыдущей сессии на
DVD+RW, используется следующая команда:&prompt.root; growisofs -M /dev/cd0 -J -R /path/to/nextdataПри последующих записях &man.mkisofs.8; необходимо передавать
те же параметры, что и при первой записи.Вы можете использовать параметр
для улучшения совместимости с приводами DVD-ROM. В случае
DVD+RW это не помешает добавлению данных.Если по какой-либо причине вам потребуется очистить носитель,
используйте следующую команду:&prompt.root; growisofs -Z /dev/cd0=/dev/zeroDVDDVD-RWИспользование DVD-RWСуществует два формата дисков DVD-RW: последовательно
дополняемый и с ограниченной перезаписью. По умолчанию
формат дисков DVD-RW последовательный.Новый DVD-RW может быть записан непосредственно без
необходимости форматирования, однако DVD-RW с данными
в последовательном формате необходимо очистить перед
созданием новой начальной сессии.Для очистки DVD-RW в последовательном формате, запустите:&prompt.root; dvd+rw-format -blank=full /dev/cd0Полная очистка () займет
около одного часа на скорости 1x. Быструю очистку можно
выполнить с параметром , если
DVD-RW будет записан в режиме Disk-At-Once (DAO).
Для записи DVD-RW в режиме DAO, используйте команду:&prompt.root; growisofs -use-the-force-luke=dao -Z /dev/cd0=imagefile.isoПараметр не
должен потребоваться, поскольку &man.growisofs.1; попытается
определить был ли носитель быстро очищен и включить
DAO запись.Фактически, лучше использовать режим с ограниченной
перезаписью с любым DVD-RW, этот формат более гибкий, чем
формат по умолчанию с последовательной записью.Для записи данных на последовательный DVD-RW, используйте
ту же команду, что и для других форматов DVD:&prompt.root; growisofs -Z /dev/cd0 -J -R /path/to/dataЕсли вы хотите добавить данные к предыдущей записи,
используйте параметр &man.growisofs.1; .
Однако при добавлении данных на DVD-RW в последовательном
режиме, на диске будет создана новая сессия и в результате
получится мультисессионный диск.В формате DVD-RW с ограниченной перезаписью не требуется
очищать носитель перед созданием новой начальной сессии,
вам всего лишь нужно переписать диск с параметром
, подобно DVD+RW. Возможно также увеличение
существующей файловой системы ISO 9660, записанной на диск
тем же способом, как для DVD+RW с параметром .
В результате получится односессионный DVD.Для перевода DVD-RW в формат с ограниченной перезаписью,
необходимо использовать следующую команду:&prompt.root; dvd+rw-format /dev/cd0Для перевода обратно в последовательный формат, выполните:&prompt.root; dvd+rw-format -blank=full /dev/cd0МультисессияЛишь несколько DVD-ROM и проигрывателей поддерживают
мультисессионные DVD, в основном они в лучшем случае прочтут только
первую сессию. DVD+R, DVD-R и DVD-RW в последовательном формате
могут работать с несколькими сессиями, и это не относится к
форматам DVD+RW и DVD-RW в формате ограниченной перезаписи.Использование следующей команды после первой (не закрытой) сессии
для DVD+R, DVD-R, или DVD-RW в последовательном формате, добавит
на диск новую сессию:&prompt.root; growisofs -M /dev/cd0 -J -R /path/to/nextdataИспользование этой командной строки с DVD+RW или DVD-RW в
режиме ограниченной перезаписи добавит данные, объединив новую сессию
с предыдущей. В результате получится односессионный диск.
Такой способ используется для добавления данных после первой
записи на эти носители.Некоторый объем носителя используется между сессиями для
завершения и начала сессии. Следовательно, для оптимизации
объема хранения сессии должны быть большими. Количество сессий
ограничено 154 для DVD+R, около 2000 для DVD-R и 127 для
DVD+R Double Layer.Дополнительная информацияДля получения дополнительной информации о DVD, можно запустить
команду dvd+rw-mediainfo
/dev/cd0, диск должен
находиться в приводе.Дополнительная информация о
dvd+rw-tools может быть найдена на
странице справочника &man.growisofs.1;, на Web-сайте
dvd+rw-tools и в архивах списка рассылки
cdwrite.Вывод dvd+rw-mediainfo при записи
или проблемный носитель необходимы для любого сообщения
о проблеме. Без этого вывода будет совершенно невозможно
помочь вам.Использование DVD-RAMDVDDVD-RAMКонфигурацияЗаписывающие устройства DVD-RAM поставляются с интерфейсами
SCSI и ATAPI. В последнем случае вы должны убедиться, что для
них включен режим DMA, добавив в файл
/boot/loader.conf строкуhw.ata.atapi_dma="1"Подготовка носителяКак указывалось ранее, DVD-RAM представляется съемным жестким
диском. Как и другие дисковые устройства, DVD-RAM должет быть
подготовлен к первому использованию. В нашем примере
мы займём все пространство диска одной файловой системой
UFS2.Убедившись, что носитель находится в приводе, выполните от имени
пользователя root команды&prompt.root; dd if=/dev/zero of=/dev/acd0 count=2
&prompt.root; disklabel -Bw acd0
&prompt.root; newfs /dev/acd0Имя устройства DVD device, acd0, должно
соответствовать вашей конфигурации.Использование носителяПосле выполнения указанных выше команд, DVD-RAM может быть
смонтирован как обычный жесткий диск:&prompt.root; mount /dev/acd0/mntПосле этого вы можете читать и писать на DVD-RAM.JulioMerinoПервоначальный текст предоставил MartinKarlssonПереписал ДискетыХранение данных на дискетах иногда бывает полезным, например,
когда нет других съёмных носителей или когда необходимо перенести
небольшой объём данных на другой компьютер.В этом разделе будет описано, как использовать дискеты во FreeBSD.
В основном речь пойдёт о форматировании и использовании
дискет DOS размером 3.5 дюйма, однако общие принципы применимы и для
других форматов гибких дисков.Форматирование дискетУстройствоДоступ к гибким дискам, как, впрочем, и к остальным устройствам,
осуществляется через соответствующие файлы в
каталога /dev. Чтобы обратиться к дискете при
использовании релизов 4.X и ранее, необходимо работать с
/dev/fdN,
где N обозначает номер привода, обычно 0,
или /dev/fdNX, где
X обозначает букву.В 5.0 и более новых релизах просто используйте
/dev/fdN.Размер диска в 4.X и более ранних релизахИмеются также устройства /dev/fdN.size,
где size обозначает размер дискеты в
килобайтах. Эти файлы устройств используются во время
низкоуровневого форматирования для задания размера устройства.
В последующих примерах будет использоваться размер в 1440kB.Иногда записи в каталоге /dev необходимо
создавать повторно. Для этого выполните следующее:&prompt.root; cd /dev && ./MAKEDEV "fd*"Размер диска в 5.0 и последующих релизахВ 5.0 &man.devfs.5; управляет файлами устройств в каталоге
/dev в автоматическом режиме, так что
использование MAKEDEV необязательно.Требуемый размер диска передаётся утилите &man.fdformat.1; при
помощи параметра . Поддерживаемые
размеры перечислены в &man.fdcontrol.8;, но, по нашему мнению,
лучше всего работает 1440kB.ФорматированиеПеред тем, как дискетой можно будет воспользоваться, её
необходимо отформатировать на низком уровне. Обычно это выполняется
производителем, однако форматирование является хорошим способом
проверить целостность носителя. Большинство гибких дисков
предназначены для использования с размером 1440kB, однако возможно
задать меньший или больший размер.Для низкоуровневого форматирования дискет вам нужно использовать
&man.fdformat.1;. В качестве параметра этой утилите передаётся
имя устройства.Обратите внимание на появление сообщений об ошибках, так как
они могут помочь определить, хорошая это дискета или плохая.Форматирование в 4.X и более ранних релизахДля форматирования дискет используйте устройства
/dev/fdN.size.
Вставьте новую 3.5-дюймовую дискету в дисковод и введите
команду:&prompt.root; /usr/sbin/fdformat /dev/fd0.1440Форматирование в 5.0 и более новых релизахДля форматирования гибких дисков используйте устройства
/dev/fdN. Вставьте
новую 3.5-дюймовую дискету в дисковод и введите команду:&prompt.root; /usr/sbin/fdformat -f 1440 /dev/fd0Метка дискаПосле низкоуровневого форматирования диска вам нужно поместить на
него метку диска. Эта метка будет потом разрушена, но она будет нужна
системе для определения размера диска и его характеристик.Новая метка диска будет касаться диска в целом, и будет содержать
полную информацию о параметрах дискеты.
Значения геометрии для метки диска перечислены в файле
/etc/disktab.
Теперь вы можете запустить &man.disklabel.8; примерно так:&prompt.root; /sbin/disklabel -B -r -w /dev/fd0 fd1440Начиная с &os; 5.1-RELEASE, на смену старой программе
&man.disklabel.8; пришла утилита &man.bsdlabel.8;. У
&man.bsdlabel.8; отсутствуют некоторые устаревшие опции и
параметры; в примере выше параметр не может
использоваться с &man.bsdlabel.8;. Для получения дополнительной
информации обратитесь к справочной странице п
о &man.bsdlabel.8;.Файловая системаТеперь ваша дискета готова к высокоуровневому форматированию.
При этом на неё будет помещаться новая файловая система, которая
позволит FreeBSD читать и записывать информацию на диск. После
создания новой файловой системы метка диска уничтожается, так что если
вы захотите переформатировать диск, вам придётся создавать метку диска
повторно.Файловой системой для дискеты может служить UFS или FAT.
Вообще говоря, FAT для дискет походит лучше.Для размещения на дискете новой файловой системы,
выполните:&prompt.root; /sbin/newfs_msdos /dev/fd0Теперь диск готов к работе.Использование дискетДля работы с гибким диском смонтируйте его при помощи утилит
&man.mount.msdos.8; (для 4.X и более ранних релизов) или
&man.mount.msdosfs.8; (в 5.0 и последующих релизах). Можно также
использовать пакет emulators/mtools
из коллекции портов.Создание и использование архивных копий на магнитной лентеносители на магнитной лентеК наиболее часто используемым носителям на магнитной ленте следует
отнести ленты шириной 4мм и 8мм, а также типа QIC, мини-картриджи и
DLT.4мм (DDS: Digital Data Storage)носители на магнитной лентемагнитные ленты DDS (4мм)носители на магнитной лентемагнитные ленты QICЛенты шириной 4мм заменяют QIC в качестве наиболее
предпочтительного носителя для создания резервных копий. Эта тенденция
значительно усилилась после покупки компанией Conner фирмы Archive,
ведущего производителя накопителей QIC и последующего прекращения
их выпуска. Накопители 4мм малы по размеру и мало шумят, но у них нет
репутации носителя, обладающего надежностью приводов 8мм. Картриджи
более дешевы и меньше по размеру (3 x 2 x 0.5 дюймов, 76 x 51 x 12 мм),
чем 8мм-картриджи. Накопители для лент шириной 4мм, как и 8мм, имеют
сравнительно малый срок службы головок, по причине использования в
обоих случаях технологии спирального сканирования (helical
scan).Пропускная способность у таких накопителей начинается с цифры
~150 kB/s, пиковая достигает ~500 kB/s. Ёмкость накопителей
начинается с 1.3 GB и может достигать 2.0 GB. Аппаратное
сжатие, имеющееся на
большинстве таких накопителей, даёт увеличение ёмкости примерно вдвое.
Блоки многоприводных ленточных библиотек могут иметь до 6 накопителей
в одном модуле с автоматической сменой ленты. Ёмкость библиотек может
достигать 240 Гбайт.Стандарт DDS-3 в настоящее время поддерживает ёмкости лент вплоть
до 12 Гбайт (или 24 Гбайт сжатой информации).В накопителях 4мм, как и в приводах 8мм, используется технология
спирального сканирования. Все плюсы и минусы этой технологии относятся
как к 4мм, так и 8мм приводам.Не следует использовать ленты после того, как они были подвергнуты
2000 проходов, или были использованы для создания 100 полных
копий.8мм (Exabyte)носители на магнитной лентемагнитные ленты Exabyte (8мм)Ленты шириной 8мм являются самым распространённым типом для
ленточных SCSI-накопителей; они же являются наиболее удачным выбором при
выборе типа носителей для обмена лентами. Наверное, каждый сервер
имеет привод Exabyte шириной 8мм и объёмом 2 Гбайт. Эти приводы
удобны, они работают надёжно и тихо. Картриджи дешевы и малы по
размеру (4.8 x 3.3 x 0.6 дюймов; 122 x 84 x 15 мм). Одним минусом
лент шириной
8мм является сравнительно малое время службы головок и лент из-за
высокой скорости движения ленты вдоль головок.Скорость передачи данных варьируется от ~250 kB/s
до ~500 kB/s. Объём хранимых данных начинается с 300 Мбайт и
может достигать 7 Гбайт.
Аппаратное сжатие, имеющееся практически на всех таких приводах,
увеличивает емкость примерно вдвое. Эти приводы существуют как в виде
отдельных модулей, так и в виде многоприводных ленточных библиотек с
6 приводами и 120 лентами в одном отсеке. Ленты сменяются
автоматически модулем. Емкости библиотек достигают величин,
превышающих 840 Гбайт.Модель Exabyte Mammoth поддерживает ёмкость ленты в
12 Гбайт (24 Гбайт со сжатием) и стоит примерно вдвое больше, чем
обычный ленточный накопитель.Данные на ленту записываются по технологии спирального
сканирования, головки позиционируются под углом к носителю (примерно в
6 градусов). Лента оборачивается на 270 градусов вокруг шпульки,
которая держит головки. Во время скольжения ленты вокруг шпульки
последняя вращается. В результате достигается высокая плотность записи
данных с очень близко лежащими дорожками, расположенными под наклоном
по всей ленте.QICносители на магнитной лентеQIC-150Ленты и накопители формата QIC-150, наверное, являются наиболее
распространенным типом носителей. Приводы лент формата QIC являются
самыми дешёвыми серьёзными накопителями для резервного
копирования.
Минусом является стоимость носителей. Ленты формата QIC по сравнению
с лентами шириной 8мм или 4мм являются дорогими, превосходя их по
стоимости хранения одного гигабайта в пять раз. Однако если вам
будут достаточно половины ленты, QIC может оказаться правильным
выбором. QIC является самым распространенным
типом привода. Каждый сайт имеет привод QIC какой-либо емкости. QIC
имеет большое количество плотностей на физически похожих (иногда
даже идентичных) лентах. Приводы QIC работают вовсе не тихо. Эти
накопители громко осуществляют поиск перед тем, как начать запись
данных и достаточно шумны в процессе чтения, записи или поиска. Ленты
QIC имеют размеры (6 x 4 x 0.7 дюймов; 152 x 102 x 17 мм).Скорость обмена данными лежит в границах от ~150 kB/s
до ~500 kB/s. Ёмкость накопителей варьируется от 40 Мбайт
до 15 Гбайт. Аппаратное сжатие
присутствует во многих современных накопителях QIC. Приводы QIC
устанавливаются менее часто; они вытесняются накопителями DAT.На ленту данные записываются в виде дорожек. Дорожки располагаются
в длину вдоль всей ленты. Количество дорожек, и, в свою очередь, их
ширина, меняется вместе с емкостью ленты. Большинство, если не все
современные накопители обеспечивают обратную совместимость по крайней
мере для чтения (однако зачастую и для режима записи). Формат QIC
имеет хорошую репутацию в области надежности хранения данных (механика
устроена проще и более надежна, чем в случае накопителей, построенных
по технологии спирального сканирования).Ленты не следует больше использовать после создания 5,000 резервных
копий.DLTносители на магнитной лентеDLTФормат DLT обладает самой высокой скоростью передачи данных среди
всех перечисленных здесь накопителей. Лента шириной 1/2" (12.5мм)
помещена в один картридж с катушкой (4 x 4 x 1 дюймов; 100 x 100 x
25 мм). Вдоль одной из сторон картриджа расположена сдвигающаяся
крышечка. Механизм накопителя открывает эту крышку, чтобы вытащить
конец ленты. На этом конце имеется овальное отверстие, которое
используется для захвата ленты. Принимающая катушка
размещена внутри
накопителя. Все другие типы картриджей, перечисленные здесь (за
исключением 9-дорожечных лент), имеют как подающий, так и принимающий
барабаны внутри самого картриджа.Скорость передачи данных равна примерно 1.5 MB/s, что в три
раза больше скорости передачи данных для накопителей 4мм, 8мм или QIC.
Ёмкость картриджей варьируется от 10 Гбайт до 20 Гбайт для одного
накопителя. Приводы могут компоноваться как многоленточные
роботизированные, так и многоленточные, многоприводные библиотеки
лент, вмещающие от 5 до 900 лент и от 1 до 20 приводов, что даёт
ёмкость хранилища от 50 Гбайт до 9 Тбайт.Формат DLT Type IV поддерживает емкость до 70 Гбайт со
сжатием.Данные на ленту записываются в виде дорожек, параллельных
направлению движения (точно также, как и для лент QIC). Одновременно
записываются две дорожки. Срок жизни головок чтения/записи
сравнительно велик; как только лента перестает двигаться, одновременно
прекращается трение между головками и лентой.AITносители на магнитной лентеAITAIT - это новый формат фирмы Sony, который позволяет хранить до
50 Гбайт (со сжатием) информации на одной ленте. Ленты содержат
микросхемы памяти, на которых размещается каталог содержимого ленты.
Этот каталог может быть быстро считан накопителем для определения
расположения файлов на ленте, вместо того, чтобы тратить несколько
минут на поиск, как это происходит с другими форматами. Такое
программное обеспечение, как
SAMS:Alexandria, может управлять сорока или
большим количеством
ленточных библиотек AIT, связываясь непосредственно с памятью лент для
вывода их содержимого, определения того, какие файлы были скопированы
на какую ленту, выбора нужной ленты, её загрузки и восстановления
данных с ленты.Библиотеки с такими функциями стоят в районе $20,000, выводя их из
ниши любительского рынка.Использование новой ленты первый разЕсли вы попытаетесь прочитать или записать новую, абсолютно чистую
ленту, в первый раз, то вам это не удастся. Выводимые на консоль
сообщения будут выглядеть примерно так:sa0(ncr1:4:0): NOT READY asc:4,1
sa0(ncr1:4:0): Logical unit is in process of becoming readyНа ленте отсутствует идентификационный блок (блок номер 0). Со
времен принятия стандарта QIC-525 все накопители формата QIC записывают
на ленту идентификационный блок (Identifier Block). Здесь имеется два
решения:По команде mt fsf 1 ленточный накопитель
записывает идентификационный блок на ленту.Воспользуйтесь кнопкой на передней панели для выброса
ленты.Вставьте ленту повторно и по команде dump
сбросьте данные на ленту.Программа dump выдаст DUMP: End
of tape detected, а на консоли будет выведено:
HARDWARE FAILURE info:280 asc:80,96.перемотайте ленту такой командой:
mt rewind.Последующие операции с лентой будут успешными.Создание резервных копий на дискетахМожно ли использовать дискеты для создания резервных копий моих
данных?дискеты с резервными копиямидискетыНа самом деле дискеты не подходят для создания резервных копий,
потому что:Носитель ненадёжен, особенно если речь идет о больших сроках
хранения.Создание резервных копий и восстановление данных происходит
очень медленно.Дискеты имеют весьма ограниченную емкость (дни, когда весь
винчестер копировался на десяток или около того дискет, давно
прошли).Несмотря на все это, если у вас нет другого способа сделать
резервную копию ваших данных, то дискеты все же лучше, чем
ничего.Если вы используете дискеты, то проверьте, что они должны быть
хорошего качества. Дискеты, которые валялись по всему офису в течении
нескольких лет, не подойдут. Идеально использовать новые от известного
производителя.Итак, как же сделать резервную копию данных на дискетах?Самым лучшим методом создания резервной копии на дискете является
использование утилиты &man.tar.1; с опцией
(многотомные архивы), которая позволяет размещать
архивы на нескольких дискетах.Для копирования всех файлов в текущем каталоге и подкаталогах
выполните следующее (работая как пользователь
root):&prompt.root; tar Mcvf /dev/fd0 *Когда первая дискета окажется полностью заполненной, программа
&man.tar.1; выдаст запрос на следующий том (так как работа
утилиты &man.tar.1; не зависит от носителя, она имеет дело с
томами; здесь это означает дискету).Prepare volume #2 for /dev/fd0 and hit return:Это сообщение будет повторяться (со все увеличивающимся номером
тома) до тех пор, пока все указанные файлы не будут
заархивированы.Можно ли резервные копии подвергнуть компрессии?targzipсжатиеК сожалению, &man.tar.1; при создании многотомных архивов
не позволяет использовать опцию . Вы конечно же,
можете скомпрессировать все файлы утилитой &man.gzip.1;,
программой &man.gzip.1; скопировать их на дискеты, а затем
распаковать файлы снова утилитой &man.gunzip.1;!Как восстановить данные из моих резервных копий?Для полного восстановления архива воспользуйтесь такой
командой:&prompt.root; tar Mxvf /dev/fd0Есть два подхода к восстановлению только нужных вам файлов. В
первом вы можете начать с первой дискеты и выдать такую команду:&prompt.root; tar Mxvf /dev/fd0 filenameПрограмма &man.tar.1; будет выдавать запрос на подачу
последующих дискет до тех пор, пока не найдет требуемый файл.Как альтернатива, если вы знаете, на какой дискете расположен файл,
то вы можете просто подать ее и дать ту же самую команду, что и выше.
Заметьте, что если первый файл на дискете является продолжением
предыдущего, то &man.tar.1; выдаст предупреждение о том, что
не может его восстановить, хотя вы этого и не просили делать!LowellGilbertПервоначально написаноСтратегии резервного копированияПри разработке плана резервного копирования первым делом надо
продумать методы защиты от следующих проблем:Отказ жесткого дискаСлучайное удаление файловПовреждение содержимого файловПолное уничтожение компьютера (например, при пожаре), при
котором погибнут также резервные копии, физически находящиеся
рядом.Вполне возможно, что для ваших нужд нет единой стратегии, наилучшим
образом покрывающей все описанные проблемы; более того, скорее всего,
ее и не может быть (разве что для персональных систем, где ценность
данных очень низка).Вот несколько наиболее распространенных технологий, применяемых
для резервного копирования:Архивация системы целиком с копированием на какой-либо надежный
внешний носитель и размещение его вдалеке от основной системы.
При этом вы защищены от всех перечисленных проблемы, однако этот
метод требует много времени и неудобен в процессе восстановления.
Вы можете хранить резервные копии рядом или даже смонтированными,
однако все равно столкнетесь с неудобствами при восстановлении,
в особенности для непривилегированных пользователей.Снэпшоты файловых систем. Помогают только от случайного
удаления файлов, но как раз в этом случае
очень полезны и эффективны.Полные копии файловых систем или дисков (например, периодический
запуск программы rsync для машины целиком).
Для защиты от отказа жестких дисков этот способ обычно несколько
уступает RAID; для восстановления случайно
удаленных файлов может быть сравним по удобству со снэпшотами
UFS, в зависимости от вашей ситуации.RAID. Минимизирует или исключает вовсе
простои при отказе жестких дисков. При этом средняя частота
таких отказов увеличивается (поскольку количество дисков больше),
но разбираться с ними становится много спокойнее.Проверка отпечатков файлов (fingerprints). Для этого весьма
полезна утилита &man.mtree.8;. Не являясь собственно технологией
резервного копирования, этот метод помогает выяснять, когда вам
пока обращаться к резервным копиям. В особенности это важно для
"оффлайновых" резервных копий.Довольно легко придумать и другие стратегии резервного копирования;
многие из них будут композициями уже упомянутых. Наличие специальных
требований, как правило, приводит к специализированным же технологиям
(например, резервное копирование базы данных, как правило, требует
использования методов, специфичных для соответствующей СУБД).
Главным остается знание опасностей потери данных, от которых вы хотите
себя оградить, и методов защиты от них.Основы технологии резервного копированияТремя основными программами резервного копирования являются
&man.dump.8;, &man.tar.1; и &man.cpio.1;.Dump и Restoreпрограммы резервного копированиярезервное копирование / восстановлениеdumprestoreДля &unix; традиционными программами резервного копирования
являются dump и restore. Они
работают с приводом как с набором дисковых блоков, которые расположены
ниже понятий файлов, связей и каталогов, создаваемых файловыми
системами. Программа dump выполняет резервное
копирование всей файловой системы, располагающейся на устройстве.
Невозможно выполнить резервное копирование части файловой системы или
дерева каталогов, которые располагаются более чем в одной файловой
системе. Утилита dump не записывает на ленту файлы
и каталоги, она записывает блоки данных, из которых строятся файлы и
каталоги.Если вы используете программу dump для работы
с корневым каталогом, при этом не будет выполняться резервное
копирование
/home, /usr и многих других
каталогов, так как они обычно являются точками монтирования других
файловых систем или символическими ссылками на эти файловые
системы.В программе dump имеются некоторые неудобства,
оставшиеся
от её ранних дней в составе Version 6 операционной системы AT&T
UNIX (примерно 1975). Параметры, используемые по умолчанию, подходят
для 9-дорожечных лент (6250 bpi), но не для современных носителей с
высокой плотностью записи информации (до 62,182 ftpi). Для
использования ёмкостей нынешних накопителей на магнитной ленте эти
параметры могут быть заданы в командной строке..rhostsПри помощи rdump и rrestore
возможно резервное
копирование данных по сети на накопитель, подключенный к другому
компьютеру. Обе программы используют в работе &man.rcmd.3; и
&man.ruserok.3; для доступа к накопителю на магнитной ленте на
удалённом компьютере. Поэтому пользователь, выполняющий резервное
копирование, должен быть указан в файле .rhosts на
удалённом компьютере. Аргументы для rdump и
rrestore должны подходить для использования на
другом компьютере. При выполнении копирования по команде
rdump на компьютере с FreeBSD на накопитель Exabyte,
подключенный к машине Sun по имени komodo, используйте
такую команду:&prompt.root; /sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1Будьте осторожны: есть проблемы с обеспечением безопасности при
аутентификации посредством .rhosts. Внимательно
рассмотрите вашу ситуацию.Программы dump и restore
можно использовать в более защищённом режиме посредством
ssh.Использование dump через
ssh&prompt.root; /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \
targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gzЛибо воспользуйтесь встроенной в dump
возможностью, задав переменную окружения RSH:Использование dump при работе через
ssh с заданием RSH&prompt.root; RSH=/usr/bin/ssh /sbin/dump -0uan -f targetuser@targetmachine.example.com:/dev/sa0 /usrtarпрограммы резервного копированияtarУтилита &man.tar.1; также восходит корнями к Version 6 системы
AT&T UNIX (около 1975). tar работает с
файловой системой, записывая на ленту файлы и
каталоги. Эта утилита
поддерживает не полный набор опций, имеющихся в &man.cpio.1;, однако
не требует необычного перенаправления в командной строке, которое
используется в утилите cpio.tarFreeBSD начиная с версии 5.3 содержит как GNU
tar, так и используемую по умолчанию
утилиту bsdtar. Версия GNU вызывается командой
gtar, и поддерживает удалённые устройства в том же
самом синтаксисе, что и rdump. Чтобы скопировать
данные на накопитель Exabyte, подключенный к машине Sun по имени
komodo, используйте такую команду:&prompt.root; /usr/bin/gtar cf komodo:/dev/nsa8 . 2>&1Тот же результат вы можете получить, используя
bsdtar, воспользовавшись перенаправлением вывода и командой
rsh для посылки данных на удалённый ленточный
накопитель.&prompt.root; tar cf - . | rsh hostname dd of=tape-device obs=20bЕсли вы беспокоитесь о безопасности создания резервных копий по
сети, то вместо rsh вам нужно использовать
ssh.cpioпрограммы резервного копированияcpio&man.cpio.1; является оригинальной программой &unix; для обмена
файлами на магнитных носителях. В утилите cpio
имеются опции (кроме всего прочего), позволяющие выполнять изменение
порядка следования байтов, поддерживающие различные форматы архивов и
выполняющие перенаправление данных другим программам. Последняя
возможность делает cpio прекрасным выбором для
целей установки. cpio не знает о том, как
работать с каталогами, список файлов должен даваться через
stdin.cpiocpio не поддерживает создание резервных
копий по сети. Вы можете воспользоваться перенаправлением вывода и
программой rsh для посылки данных на удалённый
накопитель.&prompt.root; for f in directory_list; dofind $f >> backup.listdone
&prompt.root; cpio -v -o --format=newc < backup.list | ssh user@host "cat > backup_device"Где directory_list это список директорий, c которых Вы хотите
создать резервные копии,
user@host это
комбинация пользователь/хост которая описывает того кто
занимается резервированием, и backup_device
это устройство куда копии должны быть записаны (например,
/dev/nsa0).paxпрограммы резервного копированияpaxpaxPOSIXIEEE&man.pax.1; является ответом IEEE/&posix; на утилиты
tar и cpio. В течение многих лет
различные версии программ tar и
cpio получались не совсем совместимыми. Так что
вместо того, чтобы попытаться полностью их стандартизировать, &posix;
создал новую утилиту для работы с архивами. pax
пытается читать и писать различные форматы cpio
и tar, и, кроме
того, свои собственные новые форматы. Набор команд этой утилиты больше
напоминает cpio, чем tar.Amandaпрограммы резервного копированияamandaamandaAmanda (Advanced Maryland Network Disk
Archiver) является целой клиент/серверной системой резервного
копирования, а не отдельной программой. Сервер
Amanda сможет осуществлять резервное
копирование на единственный накопитель любого количества компьютеров,
на которых имеется клиент Amanda и которые
могут связываться по сети с сервером Amanda.
Общей проблемой систем с большим количеством больших дисков является
то, что время, требуемое для непосредственной записи данных на ленту,
превышает лимит времени, выделенный на эту задачу.
Amanda решает эту проблему.
Amanda может использовать
промежуточный диск для резервного копирования нескольких
файловых систем одновременно. Amanda
создаёт наборы архивов: группа лент, используемых в
некоторый период времени для создания полных копий всех файловых
систем, перечисленных в конфигурационном файле системы
Amanda. Архивный
набор содержит также создаваемый каждую ночь инкрементальные
(или дифференциальные) резервные копии всех файловых систем.
Восстановление повреждённой файловой системы требует наличия самой
последней полной копии и инкрементальных резервных копий.Конфигурационный файл даёт прекрасный механизм для управления
процессом резервного копирования и объёмом трафика, генерируемого
системой Amanda.
Amanda сможет использовать любую из
перечисленных выше программ для записи данных на ленту.
Amanda имеется в виде как
порта, так и пакета, и по умолчанию она не установлена.Не делать ничегоНе делать ничего - это не программа для компьютера,
и в то же время это наиболее широко используемая стратегия резервного
копирования. Здесь нет никаких первоначальных затрат. Здесь нет
расписания, которому нужно следовать. Просто скажите нет. Если что-то
случится с вашими данными, улыбнитесь и забудьте о них!Если ваше время и данные практически ничего не стоят, то не
делать ничего является самой подходящей программой для вашего
компьютера. Но будьте осторожны, &posix; является весьма полезным
инструментом, и через полгода вы можете обнаружить, что у вас есть
набор файлов, представляющих для вас определенную ценность.Ничего не делать является правильным методом
резервного копирования для /usr/obj и других
деревьев каталогов, которые могут быть в точности перегенерированы
вашим компьютером. Примером являются файлы, представляющие страницы
этого Руководства в форматах HTML или &postscript;. Они генерируются
из входных файлов в формате SGML. Создавать резервные копии файлов в
форматах HTML и &postscript; не нужно. Исходные файлы в формате SGML
копируются регулярно.Какая программа резервного копирования самая лучшая?LISA&man.dump.8; Точка. Elizabeth D. Zwicky
протестировала все программы резервного копирования, обсуждаемые здесь.
Беспроигрышным вариантом для сохранения всех ваших данных и
особенностей файловых систем &unix; является dump.
Элизабет создала файловые системы, содержащие большое количество
необычных элементов (и некоторых не так уж необычных) и тестировала
каждую из программ, выполняя резервное копирование и последующее
восстановление этих файловых систем. В число необычных элементов
входили: файлы с дырами, файлы с дырами и блоком пустого места, файлы с
необычными символами в их именах, нечитаемые и незаписываемые файлы,
устройства, меняющие свой размер во время резервного копирования, файлы,
создаваемые и удаляемые во время копирования и тому подобное. Она
представила результаты на конференции LISA V в октябре 1991 года.
Посмотрите ссылку на сайте
torture-testing Backup and Archive Programs.Процедура восстановления при сбоеДо того, как случится катастрофаВам нужно выполнить всего лишь четыре шага для того, чтобы быть
готовым к любому сбою.disklabelВо-первых, распечатайте разметку диска для всех ваших дисков
(к примеру, disklabel da0 | lpr), таблицу файловых
систем (/etc/fstab) и все сообщения, выводимые
при загрузке, каждого по два экземпляра.аварийные дискетыВо-вторых, определите, все ли устройства присутствуют на
загрузочной и аварийной дискетах (boot.flp и
fixit.flp). Самым простым способом проверки
является перезагрузка вашей машины с загрузочной дискетой,
вставленной в дисковод и последующая проверка сообщений при загрузке.
Если все имеющиеся у вас устройства здесь будут перечислены и будут
работоспособны, перейдите к третьему шагу.В противном случае вам необходимо будет создать две особым
образом сформированные загрузочные дискеты, на которых помещено
ядро, могущее смонтировать все ваши диски и получить доступ к вашему
стримеру. На этих дискетах должны быть: fdisk,
disklabel, newfs,
mount и какая-либо
используемая вами программа резервного копирования. Эти программы
должны быть скомпонованы статически. Если вы используете
dump, то на дискете должна присутствовать и программа
restore.В-третьих, регулярно создавайте резервные копии на ленте. Любые
изменения, которые вы делали после последнего резервного копирования,
могут быть безвозвратно потеряны. На лентах включайте защиту от
записи.В-четвертых, проверяйте работу дискет (либо
boot.flp и fixit.flp, либо
двух дискет, которые вы сделали при выполнении второго шага) и лент
с резервными копиями. Ведите журнал выполняемых действий. Храните
эти записи вместе с загрузочной дискетой, распечатками и лентами.
Вы просто обезумеете при восстановлении данных, если окажется, что
записи могли бы избежать разрушения ваших резервных копий (Каким
образом? Вместо команды tar xvf /dev/sa0 вы
могли случайно набрать tar cvf /dev/sa0 и тем
самым перезаписать вашу резервную копию).Для дополнительной страховки, каждый раз создавайте загрузочные
дискеты и две резервные копии на ленте. Храните одну из копий в
каком-то удаленном месте и НЕ в том же здании, где находится ваш
офис. Достаточно большое количество компаний во Всемирном Торговом
Центре изучило это на своей шкуре. Это удаленное хранилище должно
быть физически отделено на большое расстояние от ваших компьютеров и
дисковых устройств.Скрипт для создания загрузочной дискеты /mnt/sbin/init
gzip -c -best /sbin/fsck > /mnt/sbin/fsck
gzip -c -best /sbin/mount > /mnt/sbin/mount
gzip -c -best /sbin/halt > /mnt/sbin/halt
gzip -c -best /sbin/restore > /mnt/sbin/restore
gzip -c -best /bin/sh > /mnt/bin/sh
gzip -c -best /bin/sync > /mnt/bin/sync
cp /root/.profile /mnt/root
cp -f /dev/MAKEDEV /mnt/dev
chmod 755 /mnt/dev/MAKEDEV
chmod 500 /mnt/sbin/init
chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt
chmod 555 /mnt/bin/sh /mnt/bin/sync
chmod 6555 /mnt/sbin/restore
#
# create the devices nodes
#
cd /mnt/dev
./MAKEDEV std
./MAKEDEV da0
./MAKEDEV da1
./MAKEDEV da2
./MAKEDEV sa0
./MAKEDEV pty0
cd /
#
# create minimum filesystem table
#
cat > /mnt/etc/fstab <После сбояГлавный вопрос: выжило ли ваше оборудование? Вы регулярно делали
резервные копии, так что нет нужды беспокоиться о программном
обеспечении.Если оборудование было повреждено, должны быть заменены
неисправные компоненты.Если с оборудованием все в порядке, проверьте ваши дискеты. При
использовании самостоятельно созданной загрузочной дискеты,
загрузитесь в однопользовательском режиме (набрав
-s в приглашении boot:).
Пропустите следующий абзац.Если вы используете дискеты boot.flp и
fixit.flp, читайте дальше. Вставьте дискету
boot.flp в первый дисковод и загрузите
компьютер. На экран будет выведено оригинальное меню установки.
Выберите пункт Fixit--Repair mode with CDROM or
floppy. После вывода приглашения вставьте
fixit.flp. restore и другие
нужные вам программы находятся в каталоге /mnt2/rescue (/mnt2/stand во &os; версий, предшествующих
5.2).Восстановите по отдельности каждую файловую систему.mountкорневой разделdisklabelnewfsПопробуйте выполнить команду mount (например,
mount /dev/da0a /mnt) по отношению к корневому
разделу вашего первого диска. Если метка диска была испорчена,
то воспользуйтесь командой disklabel для
переразбиения на
разделы и разметки диска так, чтобы получившаяся метка совпала с той,
которая вами была распечатана и сохранена. Для повторного создания
файловых систем используйте утилиту newfs. Повторно
смонтируйте корневой раздел дискеты в режиме чтения-записи
(mount -u -o rw /mnt). Воспользуйтесь вашей
программой резервного копирования и резервными копиями на лентах для
восстановления данных для этой файловой системы (например.
restore vrf /dev/sa0). Размонтируйте файловую
систему (например, umount /mnt). Повторите эту
процедуру для каждой файловой системы, которая была повреждена.Как только ваша система заработает, сделайте резервную копию на
новые ленты. Что бы ни вызвало сбой или потерю данных, это может
случиться снова. Ещё один час, потраченный в этот момент, может
спасти вас от неприятностей в будущем.* Я не был готов к катастрофе, и что теперь?
]]>
MarcFonvieilleРеорганизацию и улучшения выполнил Сетевые файловые системы, файловые системы в памяти и с отображением
в файлвиртуальные дискидискивиртуальныеКроме дисков, которые вы физически устанавливаете в ваш компьютер;
дискеты, компакт-диски, винчестеры и так далее, FreeBSD воспринимает и
другие типы дисков - виртуальные диски.NFSCodaдискипамятьСюда могут быть отнесены сетевые файловые системы, такие, как
Network File System и Coda, а также
файловые системы с организацией в памяти и создаваемые в файлах.В зависимости от версии FreeBSD, которую вы используете, для создания
и работы с файловыми системами, отображаемыми в оперативную память или
файлы, вам нужно будет пользоваться разными инструментами.Пользователи FreeBSD 4.X для создания требуемых устройств
должны использовать &man.MAKEDEV.8;. Во FreeBSD 5.0 и более
поздних версиях для создания файлов устройств используется
&man.devfs.5;, которая выполняет это прозрачно для
пользователей.Файловая система в файле во FreeBSD 4.Xдискихранимые в файле (4.X)Утилита &man.vnconfig.8; конфигурирует и позволяет использовать
дисковые устройства на основе псевдо-устройств vnode.
vnode представляет собой файл и отвечает за
работу с файлом. Это означает, что &man.vnconfig.8; использует файлы
для создания и работы с файловой системой. Одним из возможных
способов использования является монтирование образов дискет или
образов компакт-дисков, сброшенных в файлы.Для использования &man.vnconfig.8; в конфигурационном файле ядра
вам нужно включить поддержку &man.vn.4;:pseudo-device vnЧтобы смонтировать имеющийся образ файловой системы:Использование vnconfig для монтирования имеющегося образа
файловой системы во FreeBSD 4.X&prompt.root; vnconfig vn0diskimage
&prompt.root; mount /dev/vn0c /mntДля создания нового образа файловой системы с помощью
&man.vnconfig.8;:Создание нового диска в файле с помощью
vnconfig&prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k
5120+0 records in
5120+0 records out
&prompt.root; vnconfig -s labels -c vn0newimage
&prompt.root; disklabel -r -w vn0 auto
&prompt.root; newfs vn0c
Warning: 2048 sector(s) in last cylinder unallocated
/dev/vn0c: 10240 sectors in 3 cylinders of 1 tracks, 4096 sectors
5.0MB in 1 cyl groups (16 c/g, 32.00MB/g, 1280 i/g)
super-block backups (for fsck -b #) at:
32
&prompt.root; mount /dev/vn0c /mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/vn0c 4927 1 4532 0% /mntФайловые системы, отображаемые в файлыдискиотображаемые в файлыВо FreeBSD 5.X и более поздних для конфигурации и подключения дисков
&man.md.4;, отображаемых в оперативную память, используется утилита
&man.mdconfig.8;. Для работы с &man.mdconfig.8; вам нужно подгрузить
модуль &man.md.4; или добавить поддержку этих устройств в файл
конфигурации ядра:device mdУтилита &man.mdconfig.8; поддерживает три типа виртуальных дисков,
отображаемых в память: диски в памяти, которая выделяется запросами
&man.malloc.9; и диски в памяти, использующие в качестве устройств
хранения файлы или раздел подкачки. Одним из возможных использований
таких дисков является монтирование файлов с образами дискет или
CD.Для монтирования образа существующей файловой системы:Использование mdconfig для монтирования файла
с образом существующей файловой системы&prompt.root; mdconfig -a -t vnode -f diskimage -u 0
&prompt.root; mount /dev/md0/mntДля создания образа новой файловой системы при помощи
&man.mdconfig.8;:Создание нового диска, отображаемого в файл, при помощи
mdconfig&prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k
5120+0 records in
5120+0 records out
&prompt.root; mdconfig -a -t vnode -f newimage -u 0
&prompt.root; bsdlabel -w md0 auto
&prompt.root; newfs md0a
/dev/md0c: 5.0MB (10224 sectors) block size 16384, fragment size 2048
using 4 cylinder groups of 1.25MB, 80 blks, 192 inodes.
super-block backups (for fsck -b #) at:
160, 2720, 5280, 7840
&prompt.root; mount /dev/md0a /mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0a 4710 4 4330 0% /mntЕсли в параметре вы не задали номер устройства,
то &man.mdconfig.8; для выбора неиспользуемого устройства будет
использовать функцию автоматическое выделения в &man.md.4;. Имя
выделенного устройства будет выдано на стандартное устройство выводы в
виде, например, md4. Для получения более
полной информации о &man.mdconfig.8;, пожалуйста, обратитесь к
соответствующей странице справочной системы.Утилита &man.mdconfig.8; весьма полезна, однако для создания файла
с файловой системой требуется произвести много действий. Вместе с
FreeBSD 5.0 поставляется утилита под названием &man.mdmfs.8;,
которая создаёт диск &man.md.4; при помощи &man.mdconfig.8;, размещает
на нём файловую систему UFS при помощи &man.newfs.8; и монтирует её
командой &man.mount.8;. Например, если вы хотите создать и
смонтировать такой же образ файловой системе, как выше, просто наберите
такую команду:Настройка и монтирование диска, отображаемого в файл, при помощи
команды mdmfs&prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k
5120+0 records in
5120+0 records out
&prompt.root; mdmfs -F newimage -s 5m md0/mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0 4718 4 4338 0% /mntЕсли вы используете параметр без номера
устройства, то &man.mdmfs.8; будет использовать автоматическую
нумерацию &man.md.4; для автоматического выбора неиспользуемого
устройства. Более полную информацию о &man.mdmfs.8; можно найти на
страницах справочной системы.Файловая система в памяти во FreeBSD 4.Xдискифайловые системы в памяти (4.X)Драйвер &man.md.4; является простым и эффективным способом создания
файловых систем в памяти во FreeBSD 4.X. Для выделения памяти
используется &man.malloc.9;.Просто возьмите файловую систему, которую вы приготовили при
помощи, скажем, &man.vnconfig.8; и:Диск md в памяти во FreeBSD 4.X&prompt.root; dd if=newimage of=/dev/md0
5120+0 records in
5120+0 records out
&prompt.root; mount /dev/md0c/mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0c 4927 1 4532 0% /mntДля получения более полной информации, пожалуйста, обратитесь к
страницам справочной системы по &man.md.4;.Файловые системы с отображением в памятьдискифайловая система в памятиПри работе с файловыми системами, отображаемыми в файл или память,
используются одни и те же утилиты: &man.mdconfig.8; или &man.mdmfs.8;.
Обычно для отображаемых в память файловых систем следует использовать
опцию хранение на области подкачки. Это не означает,
что такая файловая система будет сразу сброшена на диск: место под нее
будет выделено из общего пула памяти, и при необходимости может
перемещаться в область подкачки. Также, возможно выделение места под
файловую систему в основной памяти (через &man.malloc.9;); однако,
следует помнить, что использование таких файловых систем, в
особенности большого размера, может привести к панике системы от
исчерпания ядерной памяти.Создание нового диска с отображением в память при помощи
mdconfig&prompt.root; mdconfig -a -t swap -s 5m -u 1
&prompt.root; newfs -U md1
/dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048
using 4 cylinder groups of 1.27MB, 81 blks, 192 inodes.
with soft updates
super-block backups (for fsck -b #) at:
160, 2752, 5344, 7936
&prompt.root; mount /dev/md1/mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md1 4718 4 4338 0% /mntСоздание нового диска с отображением в память при помощи
mdmfs&prompt.root; mdmfs -s 5m md2/mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md2 4846 2 4458 0% /mntОтключение диска, отображаемого в память, от системыдискиотключение диска, отображаемого в памятьЕсли файловые системы, отображаемые в память или файл, больше не
используются, вам нужно высвободить все ресурсы для системы. Первым
делом нужно размонтировать файловую систему, затем воспользоваться
&man.mdconfig.8; для отключения диска от системы и освободить
ресурсы.К примеру, чтобы отключить и освободить все ресурсы, используемые
/dev/md4:&prompt.root; mdconfig -d -u 4Для выдачи информации об отконфигурированных устройствах
&man.md.4; используется команда mdconfig -l.Во FreeBSD 4.X для отключения устройства используется команда
&man.vnconfig.8;. Например, для отключения и освобождения всех
ресурсов, используемых /dev/vn4:&prompt.root; vnconfig -u vn4TomRhodesТекст предоставил Мгновенные копии файловых системфайловые системымгновенные копииВо FreeBSD 5.0 вместе с технологией
Отложенных обновлений представлена новая возможность: генерация
мгновенных копий файловых систем.Мгновенные копии позволяют пользователю создавать образы заданных
файловых систем и работать с ними как с файлами.
Файлы мгновенных копий должны создаваться в той файловой
системе, над которой производится действие, и пользователь может
создавать не более 20 мгновенных копий для каждой файловой системы.
Активные копии записываются в суперблок, так что они остаются в силе
между операциями монтирования и размонтирования в процессе системных
перезагрузок. Если мгновенная копия больше не нужна, она может быть
удалена стандартной командой &man.rm.1;. Мгновенные копии могут
удаляться в любом порядке, однако всё использованное пространство не
может быть использовано, так как другая мгновенная копия может
претендовать на некоторые блоки из освобождённых.Неизменяемый флаг устанавливается на файл
при помощи &man.mksnap.ffs.8; после первоначального создания файла
мгновенной копии. Команда &man.unlink.1; делает исключение для
файлов мгновенных копий, позволяя их удалять.Мгновенные копии создаются при помощи утилиты &man.mount.8;. Чтобы
создать мгновенную копию /var в файле
/var/snapshot/snap, воспользуйтесь такой
командой:&prompt.root; mount -u -o snapshot /var/snapshot/snap /varВ качестве альтернативного средства создания мгновенных копий
вы можете использовать утилиту &man.mksnap.ffs.8;:&prompt.root; mksnap_ffs /var /var/snapshot/snapФайлы мгновенных копий файловых систем (к примеру,
/var) можно найти при помощи команды
&man.find.1;:&prompt.root; find /var -flags snapshotПосле создания мгновенной копии есть несколько способов её
использования:Некоторые администраторы будут использовать файл мгновенной
копии для целей создания резервной копии, так как мгновенная копия
может быть перенесена на CD или магнитную ленту.Утилита проверка целостности файловой системы, &man.fsck.8;,
может быть запущена над мгновенной копией. Полагая, что
файловая система была в порядке, когда она была смонтирована, вы
всегда должны получать нормальный (и неизменный) результат.
Это именно то, что выполняет фоновый процесс &man.fsck.8;.Запустить утилиту &man.dump.8; с мгновенной копией. Будет
создаваться дамп, соответствующий файловой системе на момент
создания мгновенной копии. Утилита &man.dump.8; при использовании
опции тоже может работать с мгновенными копиями,
создавать их дампы, а затем удалять за один проход.Смонтировать командой &man.mount.8; мгновенную копию как
замороженный образ файловой системы. Чтобы смонтировать командой
&man.mount.8; мгновенную копию
/var/snapshot/snap, запустите:&prompt.root; mdconfig -a -t vnode -f /var/snapshot/snap -u 4
&prompt.root; mount -r /dev/md4 /mntТеперь вы можете пройтись по иерархии вашей зафиксированной файловой
системы /var, смонтированной в каталог
/mnt. Первоначально всё будет в том же самом
состоянии, в каком это было во время создания мгновенной копии.
Единственным исключением будет то, что любые ранее сделанные мгновенные
копии будут видны как файлы нулевой длины. Когда использование
мгновенной копии закончено, она может быть удалена командой:&prompt.root; umount /mnt
&prompt.root; mdconfig -d -u 4Для получения более полной информации о
и мгновенных копиях файловых систем, включая технической описание, вы
можете посетить сайт Маршалла Кёрка МакКузика (Marshall Kirk McKusick) по
адресу .Квотирование файловых системучётдисковое пространстводисковые квотыКвоты - это опциональная возможность операционной системы, которая
позволяет ограничивать объем дискового пространства и/или количество
файлов для конкретного пользователя или членов определенной группы
в рамках одной файловой системы. Чаще всего эта возможность
используется в системах разделения времени, когда желательно ограничить
количество ресурсов, которые может использовать один пользователь или
группа пользователей. Это позволит не допустить ситуации, когда
один пользователь или группа пользователей заполняют всё доступное
дисковое пространство.Настройка вашей системы на использование дисковых квотПеред тем, как попытаться использовать дисковые квоты, необходимо
убедиться, что квоты включены в вашем ядре. Это делается добавлением
следующей строки в конфигурационный файл вашего ядра:
options QUOTA
В стандартном ядре GENERIC это по умолчанию
не включено, так что для использования дисковых квот вам нужно будет
настроить, откомпилировать и установить собственное ядро.
Пожалуйста, обратитесь к за
дополнительной информацией о настройке ядра.Затем вам потребуется включить квотирование дисков в файле
/etc/rc.conf. Это делается добавление такой
строчки:enable_quotas="YES"дисковые квотыпроверкаДля более полного контроля над запуском квотирования имеется
дополнительная переменная для настройки. Как правило, при загрузке
целостность квот каждой файловой системы проверяется программой
&man.quotacheck.8;. При работе программы &man.quotacheck.8;
проверяется точное соответствие данных
в базе данных квот данным в файловой системе. Это весьма долгий
процесс, что отражается на времени загрузки системы. Если вам
захочется пропустить этот шаг, то для этого предназначена специальная
переменная в файле /etc/rc.conf:check_quotas="NO"Наконец, вам потребуется отредактировать файл
/etc/fstab для включения дисковых квот на
уровне файловых систем. Это то место, где вы можете включить квоты
для пользователей, для групп или для обеих этих категорий для всех
ваших файловых систем.Для включения пользовательских квот для файловой системы,
добавьте параметр в поле параметров
файловой системы, на которой вы хотите включить квотирование, в файле
/etc/fstab. Например:/dev/da1s2g /home ufs rw,userquota 1 2Подобным же образом для включения квотирования на уровне групп,
воспользуйтесь параметром вместо
. Чтобы включить
квотирование как для пользователей, так и для групп, измените
строчку следующим образом:
/dev/da1s2g /home ufs rw,userquota,groupquota 1 2
По умолчанию файлы квот хранятся в корневом каталоге файловой
системы в файлах с именами quota.user и
quota.group соответственно для пользовательских
и групповых квот. Для получения подробной информации обратитесь к
команде &man.fstab.5;. Хотя справочная страница по &man.fstab.5;
утверждает, что вы можете указать другое местоположение файлов с
квотами, этого делать не рекомендуется, потому что различные утилиты
для работы с квотами не могут нормально работать в такой
ситуации.На этом этапе вы должны перезагрузить вашу систему с новым ядром.
Скрипт /etc/rc автоматически запустит
соответствующие команды для создания начальных файлов для всех квот,
которые вы создали в файле /etc/fstab, так что
нет нужды вручную создавать никаких файлов квот нулевой длины.При нормальной работе вам не потребуется вручную запускать
программы &man.quotacheck.8;, &man.quotaon.8; или &man.quotaoff.8;.
Однако вам нужно хотя бы прочесть
страницы справочника по этим командам, просто чтобы ознакомиться
с их функциями.Установка квотдисковые квотыограниченияКак только вы настроили вашу систему на использование квот,
проверьте, что они действительно были задействованы. Простым
способом сделать это является запуск такой команды:&prompt.root; quota -vВы должны увидеть однострочную информацию, отражающую
использование диска и текущие ограничения для каждой файловой
системы, на которой включено квотирование.Теперь вы действительно готовы задавать ограничения при помощи
команды &man.edquota.8;.У вас есть несколько вариантов того, как приводить в действие
ограничения по объему дискового пространства, который могут занимать
пользователь или группа, а также по количеству файлов, которые они
могут создать. Вы можете ограничивать размещение ресурсов на основе
объема дискового пространства (квотирование блоков), количества
файлов (квотирование inode) или их комбинации. Каждое из этих
ограничений, в свою очередь, делится на две категории: мягкие и
жёсткие ограничения.жёсткое ограничениеЖёсткое ограничение не может быть превышено. Как только
пользователь достиг своих ограничений, ресурсы соответствующей
файловой системы ему больше выделяться не будут. Например, если
пользователь имеет жесткое ограничение в 500 Кбайт на файловой
системе и в текущий момент использует 490 Кбайт, то
пользователь может получить дополнительно ещё 10 Кбайт. Попытка
занять ещё 11 Кбайт окончится неудачно.мягкое ограничениеС другой стороны, мягкие ограничения могут быть превышены в
течении некоторого периода времени. Этот период времени также
называют периодом отсрочки, который по умолчанию равен одной неделе.
Если пользователь превышает своё мягкое ограничение в течение периода
времени, превышающего отсрочку, то это мягкое ограничение становится
жестким и последующее выделение ресурсов будет запрещено. Когда
пользователь вернётся обратно к отметке, меньшей, чем мягкое
ограничение, то период отсрочки будет сброшен.Далее приводится пример того, что вы можете наблюдать при
запуске команды &man.edquota.8;. Когда вызывается команда
&man.edquota.8;, вы оказываетесь в редакторе, заданном
переменной переменной окружения EDITOR, или в
редакторе vi, если переменная
EDITOR не задана, и можете редактировать квоты.&prompt.root; edquota -u testQuotas for user test:
/usr: kbytes in use: 65, limits (soft = 50, hard = 75)
inodes in use: 7, limits (soft = 50, hard = 60)
/usr/var: kbytes in use: 0, limits (soft = 50, hard = 75)
inodes in use: 0, limits (soft = 50, hard = 60)Для каждой файловой системы, на которой включено квотирование,
вы должны увидеть две строки. В одной строке приведены ограничения
на блоки, а в другой на количество inode. Например, чтобы увеличить
ограничения на количество блоков для пользователя с мягкого
ограничения в 50 и жёсткого ограничения в 75, на мягкое ограничение
в 500 и жёсткое ограничение в 600, измените:/usr: kbytes in use: 65, limits (soft = 50, hard = 75)на:/usr: kbytes in use: 65, limits (soft = 500, hard = 600)Новые ограничения вступят в силу после выхода из
редактора.Иногда желательно установить ограничения квот на некоторый
диапазон UID (идентификаторов пользователей). Это можно сделать при
помощи параметра в команде
&man.edquota.8;. Во-первых, установите желаемое
ограничение для пользователя, а затем запустите команду
edquota -p protouser startuid-enduid. Например,
если пользователь test имеет желаемые
ограничения, то для дублирования этих ограничений на пользователей с
UID от 10000 до 19999 может быть использована такая
команда:&prompt.root; edquota -p test 10000-19999Дополнительную информацию можно получить из справочной страницы по
команде &man.edquota.8;.Проверка ограничений и использования дискадисковые квотыпроверкаДля проверки квот и использования дисков вы можете использовать
команды &man.quota.1; или &man.repquota.8;.
Команда &man.quota.1; может быть использована для проверки
квот отдельных пользователей, групп, а также использования дисков.
Пользователь может только проверить собственную квоту и квоту той
группы, к которой он принадлежит. Только администратор системы может
проверить квоты всех пользователей и групп. Команду
&man.repquota.8; можно использовать для получения
суммарной статистики всех квот и использования дисков для файловых
систем с включенными квотами.Далее приведен пример вывода команды quota -v
для пользователя, который имеет ограничения на двух файловых
системах.Disk quotas for user test (uid 1002):
Filesystem usage quota limit grace files quota limit grace
/usr 65* 50 75 5days 7 50 60
/usr/var 0 50 75 0 50 60период отсрочкиВ этом примере для файловой системы /usr
пользователь превысил свое мягкое ограничение в 50 Кбайт на 15
Кбайт и имеет 5 дней до истечения отсрочки. Отметьте знак
звездочки *, который указывает на превышение
пользователем своего ограничения.Как правило, файловые системы, на которых пользователь не
занимает дискового пространства, не показываются в выводе команды
&man.quota.1;, даже если ему выделена квота на
этой файловой системе. При использовании параметра
эти файловые системы выводятся, как, например,
файловая система /usr/var в примере выше.Квоты в NFSNFSКвоты определяются подсистемой квот на сервере NFS. Даемон
&man.rpc.rquotad.8; предоставляет информацию о квотах для программы
&man.quota.1; на клиентах NFS, позволяя пользователям на этих машинах
смотреть свою статистику о квотах.Включите rpc.rquotad в файле
/etc/inetd.conf следующим образом:
rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad
Теперь перезапустите inetd:&prompt.root; kill -HUP `cat /var/run/inetd.pid`LuckyGreenТекст предоставил shamrock@cypherpunks.toШифрование дисковых разделовдискишифрованиеFreeBSD предоставляет прекрасную возможность по защите от
несанкционированного доступа к данным. Права на доступ к файлам и
технология принудительного контроля доступа MAC (Mandatory Access Control)
(смотрите see ) помогают предотвратить
несанкционированный доступ посторонних лиц к данным, при условии работы
операционной системы и компьютера. Однако права доступа, контролируемые
операционной системой, не имеют значения, если нападающий получает
физический доступ к компьютеру и может просто перенести жёсткий диск на
другую машину для копирования и дальнейшего анализа важных данных.Вне зависимости от того, как атакующий завладел жёстким диском или
выключенным компьютером, технологии gbde (GEOM
Based Disk Encryption - шифрование диска на уровне GEOM) и
криптографическая подсистема geli &os; могут защитить
данные файловой системы компьютера даже против очень заинтересованной
атакующей стороны с достаточными ресурсами. В отличие от громоздких
систем шифрования, которые шифруют отдельные файлы,
gbde и geli шифруют в прозрачном режиме файловую
систему в целом, при этом данные в открытом виде на диск никогда не
записываются.Шифрование диска при помощи gbdeПолучите права пользователя rootНастройка gbde требует права доступа
администратора системы.&prompt.user; su -
Password:Проверьте номер версии операционной системыДля работы &man.gbde.4; требуется FreeBSD 5.0 и выше.&prompt.root; uname -r
5.0-RELEASEВключите поддержку &man.gbde.4; в конфигурационный
файл ядраДобавьте
следующую строку в файл конфигурации вашего ядра:options GEOM_BDEПерестройте ядро
FreeBSD. Этот процесс описан в .Перезагрузитесь, запустив новое ядро.Подготовка зашифрованного жёсткого дискаВ следующем примере предполагается, что в вашу систему вы
добавляете новый винчестер, на котором будет располагаться единственный
раздел с зашифрованными данными. Этот раздел будет монтироваться в
каталог /private. gbde
может также использоваться для шифрования /home и
/var/mail, но это требует более сложной
последовательности действий, что выходит за рамки этого вводного
материала.Подключите новый жёсткий дискУстановите новый диск в систему, как это описано в . В рамках этого примера раздел,
соответствующий новому жёсткому диску, будет называться
/dev/ad4s1c. Устройства
/dev/ad0s1*
представляют существующие стандартные разделы FreeBSD нашей
тестовой системы.&prompt.root; ls /dev/ad*
/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1
/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c
/dev/ad0s1a /dev/ad0s1d /dev/ad4Создайте каталог для размещения файлов блокировок GBDE&prompt.root; mkdir /etc/gbdeФайл блокировки gbde содержит
информацию, которая нужна gbde для
доступа к зашифрованному разделу. Не имея доступа к файлу
блокировки, gbde не сможет расшифровать
данные, хранимые в зашифрованном разделе, без значительного ручного
вмешательства, что программно не поддерживается. Каждый
зашифрованный раздел использует отдельный файл блокировки.Инициализируйте раздел gbdeПеред началом работы с разделом gbde
его необходимо проинициализировать. Эта инициализация производится
только один раз:&prompt.root; gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c&man.gbde.8; запустит редактор, что позволит вам задать
в шаблоне различные конфигурационные параметры. При работе с
файловыми системами UFS1 и UFS2 задайте значение sector_size равным
2048:$FreeBSD: src/sbin/gbde/template.txt,v 1.1 2002/10/20 11:16:13 phk Exp $
#
# Sector size is the smallest unit of data which can be read or written.
# Making it too small decreases performance and decreases available space.
# Making it too large may prevent filesystems from working. 512 is the
# minimum and always safe. For UFS, use the fragment size
#
sector_size = 2048
[...]&man.gbde.8; дважды запросит ввод пароля, который будет
использоваться для защиты данных. Пароль в обоих случаях должен
вводиться одинаковый. Возможности gbde
по защите ваших данных полностью зависят от качества выбранной
вами ключевой фразы.
Советы по выбору легко запоминающихся ключевых фраз можно
найти на сайте Diceware
Passphrase.По команде gbde init создаётся файл
блокировок для вашего раздела gbde,
который в нашем случае будет иметь имя
/etc/gbde/ad4s1c.Резервные копии файлов блокировок
gbdeдолжны
храниться вместе с содержимым шифруемых разделов. Хотя удаление
только блокировочного файла не сможет противостоять дешифрации
атакующим раздела gbde, без этого
файла даже легитимный пользователь не сможет получить доступ к
данным без определённых и значительных усилий, что не
поддерживается &man.gbde.8; и его разработчиком.Подключите зашифрованный раздел к системе&prompt.root; gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1cБудет выдан запрос на ввод ключевой фразы, которую вы выбирали
во время инициализации зашифрованного раздела. Новое защищённое
устройство будет видно в каталоге /dev под
названием /dev/device_name.bde:&prompt.root; ls /dev/ad*
/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1
/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c
/dev/ad0s1a /dev/ad0s1d /dev/ad4 /dev/ad4s1c.bdeСоздайте файловую систему на зашифрованном устройствеКак только защищённое устройство будет подключено к системе,
вы сможете создать на нём файловую систему. Для этого используется
утилита &man.newfs.8;. Так как инициализация новой файловой
системы UFS2 происходит быстрее, чем инициализация файловой системы
старого формата UFS1, то рекомендуется использовать &man.newfs.8; с
параметром .Во &os; 5.1-RELEASE и последующих релизах параметр
используется по умолчанию.&prompt.root; newfs -U -O2 /dev/ad4s1c.bdeЗапуск команды &man.newfs.8; должен выполняться над
подключенном разделе gbde, который
идентифицируется по расширению
*.bde в имени
устройства.Смонтируйте зашифрованный разделСоздайте точку монтирования для зашифрованной файловой
системы.&prompt.root; mkdir /privateСмонтируйте защищённую файловую систему.&prompt.root; mount /dev/ad4s1c.bde /privateПроверьте доступность зашифрованной файловой системыЗащищённая файловая система теперь должна быть доступна утилите
&man.df.1; и доступной для использования.&prompt.user; df -H
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 1037M 72M 883M 8%
/devfs 1.0K 1.0K 0B 100% /dev
/dev/ad0s1f 8.1G 55K 7.5G 0% /home
/dev/ad0s1e 1037M 1.1M 953M 0% /tmp
/dev/ad0s1d 6.1G 1.9G 3.7G 35% /usr
/dev/ad4s1c.bde 150G 4.1K 138G 0% /privateМонтирование имеющихся зашифрованных файловых системПосле каждой загрузки для каждой защищённой файловой системы перед
их использованием должны выполняться повторное подключение к системе,
проверка на наличие ошибок и монтирование. Требуемые для этого команды
должны выполняться пользователем root.Подключение gbde-раздела к системе&prompt.root; gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1cБудет выдан запрос на ввод ключевой фразы, выбранной на этапе
инициализации зашифрованного раздела gbde.Проверка файловой системы на наличие ошибокТак как защищаемая файловая система не может пока быть указана
в файле /etc/fstab для автоматического
монтирования, то она должны проверяться на наличие ошибок
посредством ручного запуска &man.fsck.8; до её монтирования.&prompt.root; fsck -p -t ffs /dev/ad4s1c.bdeМонтирование зашифрованной файловой системы&prompt.root; mount /dev/ad4s1c.bde /privateТеперь защищённая файловая система доступна для работы.Автоматическое монтирование зашифрованных разделовДля автоматического подключения, проверки и монтирования
зашифрованного раздела можно создать скрипт, но по соображениям
безопасности в этом скрипте пароля для &man.gbde.8; быть не должно.
Поэтому рекомендуется запускать такие скрипты вручную, а пароль
задавать с консоли или сеанса &man.ssh.1;.Начиная с версии &os; 5.2-RELEASE, базовая система содержит
скрипт rc.d для автоматического монтирования шифрованных разделов.
Его аргументы могут быть указаны в файле &man.rc.conf.5;:gbde_autoattach_all="YES"
gbde_devices="ad4s1c"При этом ключевая фраза для gbde
должна быть введена на этапе загрузки. После введения ключевой
фразы зашифрованный раздел будет смонтирован автоматически.
Такой подход может быть очень удобным для использования
gbde на ноутбуках.Криптографическая защита, применяемая в gbde&man.gbde.8; шифрует содержимое секторов при помощи 128-битного
AES в режиме CBC. Каждый сектор диска шифруется различным ключом
AES. Более полная информацию о системе шифрования
gbde, включая алгоритм генерации ключей
для секторов из ключевой фразы, вводимой пользователем, можно найти
на страницах справочной системы о &man.gbde.4;.Вопросы совместимости&man.sysinstall.8; несовместим с устройствами, зашифрованными
gbde. Все устройства
*.bde перед
запуском &man.sysinstall.8; должны быть отключены от системы, или
эта утилита аварийно завершит работу на этапе обнаружения устройств.
Для отключения защищённого устройства, используемого в нашем примере,
воспользуйтесь такой командой:&prompt.root; gbde detach /dev/ad4s1cТакже заметьте, что, так как &man.vinum.4; работает не через
подсистему &man.geom.4;, то вы не можете использовать тома
vinum с
gbde.DanielGerzoПредоставлено Шифрование дисков при помощи geliНачиная с версии 6.0 &os; поддерживается новый класс GEOM —
geli. В настоящий момент он поддерживается
&a.pjd;. Класс Geli отличается от
gbde; он предоставляет другой комплекс
возможностей и использует иную схему криптования.Наиболее значимыми особенностями &man.geli.8; являются:Использование инфраструктуры &man.crypto.9;: при наличии
аппаратной криптографической поддержки, geli
автоматически использует ее.Поддержка разнообразных криптоалгоритмов (в настоящее время
AES, Blowfish и 3DES).Поддержка шифрованного корневого раздела. Для загрузки
в такой ситуации потребуется ввести ключевую фразу.Поддержка двух независимых ключей шифрования (например,
основного ключа и ключа
компании).Высокая скорость работы geli за счет
простого криптования сектор-сектор.Поддержка архивирования основных ключей. При необходимости
текущие ключи могут быть уничтожены, а в дальнейшем доступ к
данным восстановлен при помощи архивированных ключей.Поддержка криптования файловых систем случайным одноразовым
ключом — например, для разделов подкачки или временных
файловых систем.Другие возможности класса geli описаны в его
странице справочника: &man.geli.8;.Несколько следующих страниц будут посвящены описанию процесса
конфигурации geli в ядре &os; и создания
нового криптографического провайдера geli.
В завершение, мы продемонстрируем, как создать шифрованный раздел
подкачки при помощи geli.Для того чтобы использовать geli, вам
потребуется &os; версии 6.0-RELEASE или более поздней. Поскольку
необходимо внести изменения в конфигурацию ядра, потребуются также
привилегии суперпользователя.Изменение конфигурацию ядра: включение
geliДобавьте в конфигурационный файл ядра следующие строки:options GEOM_ELI
device cryptoПерестройте ядро, как описано в разделе .Помимо этого, поддержка geli может быть
активирована модулем ядра на этапе загрузки. Для этого добавьте
в файл /boot/loader.conf строку:geom_eli_load="YES"Теперь ядро должно поддерживать &man.geli.8;.Генерация главного ключаПредлагаемый пример описывает процесс генерации ключевого
файла, который послужит частью главного ключа для шифрованного
провайдера, монтируемого в каталог /private. При помощи содержимого
ключевого файла создается набор случайных данных, которым
зашифровывается главный ключ. Кроме того, он будет защищен
кодовой фразой. Размер сектора провайдера будет составлять
4kB. Наконец, мы обсудим, как присоединиться к провайдеру
geli, создать на базе его файловую систему,
как ее смонтировать и работать с ней, и, в заключение, как
корректно завершить работу.Больший чем обычно размер сектора (как в нашем примере, 4 кБ)
рекомендуется для увеличения производительности.Главный ключ будет защищен кодовой фразой; данные для
ключевого файла берутся из /dev/random.
Размер сектора создаваемого нами шифрованного провайдера
/dev/da2.eli — 4кБ.&prompt.root; dd if=/dev/random of=/root/da2.key bs=64 count=1
&prompt.root; geli init -s 4096 -K /root/da2.key /dev/da2
Enter new passphrase:
Reenter new passphrase:Использование одновременно кодовой фразы и ключевого файла
не обязательно: любой из этих методов защиты главного ключа может
применяться независимо.Если в качестве имени ключевого файла указан -,
используется стандартный ввод. Это позволяет использовать более
одного ключевого файла:&prompt.root; cat keyfile1 keyfile2 keyfile3 | geli init -K - /dev/da2Свяжите сгенерированный ключ с провайдером&prompt.root; geli attach -k /root/da2.key /dev/da2
Enter passphrase:Созданный при этом файл дискового устройства будет называться
/dev/da2.eli.&prompt.root; ls /dev/da2*
/dev/da2 /dev/da2.eliСоздайте новую файловую систему&prompt.root; dd if=/dev/random of=/dev/da2.eli bs=1m
&prompt.root; newfs /dev/da2.eli
&prompt.root; mount /dev/da2.eli /privateЗашифрованная файловая система будет видна в выводе утилиты
&man.df.1; и готова к использованию:&prompt.root; df -H
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 248M 89M 139M 38% /
/devfs 1.0K 1.0K 0B 100% /dev
/dev/ad0s1f 7.7G 2.3G 4.9G 32% /usr
/dev/ad0s1d 989M 1.5M 909M 0% /tmp
/dev/ad0s1e 3.9G 1.3G 2.3G 35% /var
/dev/da2.eli 150G 4.1K 138G 0% /privateРазмонтирование и деактивация провайдераПосле завершения работы с шифрованным разделом, когда
содержимое каталога /private
больше не нужно, будет разумным отключить раздел от
системы.&prompt.root; umount /private
&prompt.root; geli detach da2.eliДополнительную информацию о &man.geli.8; можно найти на
соответствующей странице справочника.Использование стартового скрипта rc.dgeliДля удобства использования подсистемы geli
в комплект базовой системы &os; входит стартовый скрипт, работой
которого можно управлять из &man.rc.conf.5;:geli_devices="da2"
geli_da2_flags="-p -k /root/da2.key"При этом дисковый раздел /dev/da2 будет
сконфигурирован как провайдер geli, связан с
ключевым файлом /root/da2.key, а кодовая
фраза не будет использоваться (отметим, что это возможно только
в том случае, если при инициализации geli был
указан ключ -P). Шифрованный провайдер geli
будет отсоединен перед выключением системы.Дополнительную информацию о конфигурации скриптов rc.d можно
найти в соответствующей
главе Руководства.ChristianBrüfferНаписано Шифрование области подкачкиswapencryptingШифрование области подкачки в &os; доступно начиная с версии
5.3-RELEASE и достаточно легко конфигурируется. Варианты конфигурации
слегка различаются в зависимости от версии системы. Начиная с версии
6.0-RELEASE, для шифрования разделов подкачки можно использовать
утилиты &man.gbde.8; или &man.geli.8;; в более ранних версиях доступно
только решение при помощи &man.gbde.8;. В обоих случаях используется
скрипт rc.d
encswap.Предыдущий раздел, Шифрование
дисковых разделов, кратко описывает различные методы
криптования.Зачем шифровать область подкачки?Как и в случае дисковых разделов, шифрование области подкачки
применяется для защиты важной информации. Возьмем, к примеру,
приложение, которому требуется работать с паролями. До тех пор, пока
пароли хранятся в физической памяти, все в порядке. Если же
операционная система начинает выгружать отдельные участки памяти в
область подкачки, чтобы освободить память для других приложений,
пароли могут быть записаны на диск в открытом виде и тем самым
оказаться легко доступными злоумышленнику (имеющему физический доступ к
диску — прим. пер.). В таких ситуациях решением может стать
шифрование раздела подкачки.ПодготовкаВ данном разделе мы будем считать, что разделом подкачки
является ad0s1b.До настоящего момента раздел подкачки не был зашифрован. Таким
образом, на нем могут содержаться пароли или какая-либо иная важная
информация в открытом виде. Чтобы избавиться от этого, заполним раздел
подкачки случайными данными:&prompt.root; dd if=/dev/random of=/dev/ad0s1b bs=1mШифрование раздела подкачки при помощи &man.gbde.8;В версиях &os; начиная с 6.0-RELEASE в строку файла
/etc/fstab, описывающую раздел подкачки,
необходимо добавить суффикс .bde:
# Device Mountpoint FStype Options Dump Pass#
/dev/ad0s1b.bde none swap sw 0 0
В системах версий до &os; 6.0-RELEASE, кроме того, потребуется
следующая строка в файле конфигурации системы
/etc/rc.conf:gbde_swap_enable="YES"Шифрование раздела подкачки при помощи &man.geli.8;Процедура при использовании &man.geli.8; для шифрования раздела
подкачки сходна с использованием &man.gbde.8;. В строку файла
/etc/fstab, описывающую раздел подкачки,
нужно добавить суффикс .eli:
# Device Mountpoint FStype Options Dump Pass#
/dev/ad0s1b.eli none swap sw 0 0
По умолчанию, &man.geli.8; использует алгоритм криптования
AES с длиной ключа 256 бит.При необходимости эти параметры могут быть изменены в опции
geli_swap_flags файла конфигурации
/etc/rc.conf. Приведенная ниже строка указывает,
что скрипт rc.d encswap должен использовать для
криптования алгоритм Blowfish с ключом длиной 128 бит, размером сектора
4 килобайта и включенной опцией отсоединиться при последнем
закрытии:geli_swap_flags="-a blowfish -l 128 -s 4096 -d"За списком возможных опций обращайтесь к описанию команды
onetime в странице справочника &man.geli.8;.Окончательная проверкаПосле перезагрузки системы правильность работы шифрованного раздела
подкачки может быть проверена при помощи команды
swapinfo.В случае использования &man.gbde.8;:&prompt.user; swapinfo
Device 1K-blocks Used Avail Capacity
/dev/ad0s1b.bde 542720 0 542720 0%
При использовании &man.geli.8;:&prompt.user; swapinfo
Device 1K-blocks Used Avail Capacity
/dev/ad0s1b.eli 542720 0 542720 0%
diff --git a/ru_RU.KOI8-R/books/handbook/firewalls/chapter.sgml b/ru_RU.KOI8-R/books/handbook/firewalls/chapter.sgml
index 6eb0366077..9e01afbbf9 100644
--- a/ru_RU.KOI8-R/books/handbook/firewalls/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/firewalls/chapter.sgml
@@ -1,1118 +1,1122 @@
Joseph J.BarbishПредоставил BradDavisПреобразовал в SGML и обновил Межсетевые экранымежсетевой экранбезопасностьмежсетевой экранбрандмауэрмежсетевой экранВведениеМежсетевые экраны (firewall, брандмауэр)
делают возможной фильтрацию входящего и исходящего
трафика, идущего через систему. Межсетевой экран использует один
или более наборов правил для проверки сетевых
пакетов при их входе или выходе через сетевое соединение, он
или позволяет прохождение трафика или блокирует его. Правила
межсетевого экрана могут проверять одну или более характеристик пакетов,
включая но не ограничиваясь типом протокола, адресом хоста источника
или назначения и портом источника или назначения.Межсетевые экраны могут серьезно повысить уровень безопасности хоста
или сети. Они могут быть использованы для
выполнения одной или более нижеперечисленных задач:Для защиты и изоляции приложений, сервисов и машин во
внутренней сети от нежелательного трафика, приходящего
из внешней сети интернет.Для ограничения или запрещения доступа хостов внутренней
сети к сервисам внешней сети интернет.Для поддержки преобразования сетевых адресов (network
address translation, NAT), что позволяет
использование во внутренней сети приватных
IP адресов (либо через один выделенный
IP адрес, либо через адрес из пула
автоматически присваиваемых публичных адресов).После прочтения этой главы вы узнаете:Как правильно задать правила фильтрации
пакетов.Разницу между межсетевыми экранами,
встроенными в &os;Как использовать и настраивать межсетевой экран
OpenBSD PF.Как использовать и настраивать
IPFILTER.Как использовать и настраивать
IPFW.Перед прочтением этой главы вам потребуется:Ознакомиться с основами &os; и интернет.Принципы работы межсетевых экрановмежсетевой экраннаборы правилСуществует два основных способа создания наборов правил
межсетевого экрана: включающий и исключающий.
Исключающий межсетевой экран позволяет прохождение всего трафика,
за исключением трафика, соответствующего набору правил.
Включающий межсетевой экран действует прямо противоположным образом.
Он пропускает только трафик, соответствующий правилам и
блокирует все остальное.Включающие межсетевые экраны обычно более безопасны, чем
исключающие, поскольку они существенно уменьшают риск
пропуска межсетевым экраном нежелательного трафика.Безопасность может быть дополнительно повышена с
использованием межсетевого экрана с сохранением
состояния. Такой межсетевой экран сохраняет информацию
об открытых соединениях и разрешает только трафик через
открытые соединения или открытие новых соединений.
Недостаток межсетевого экрана с сохранением состояния в том, что
он может быть уязвим для атак DoS
(Denial of Service, отказ в обслуживании), если множество
новых соединений открывается очень быстро. Большинство
межсетевых экранов позволяют комбинировать поведение с сохранением
состояния и без сохранения состояния, что оптимально
для реальных применений.Пакеты межсетевых экрановВ &os; встроено три программных межсетевых экрана.
Это IPFILTER (известный также как
IPF), IPFIREWALL (известный также
как IPFW) и OpenBSD PacketFilter
(также известный какPF).
Помимо этого, &os; содержит два пакета ограничения трафика (шейпера):
&man.altq.4; и &man.dummynet.4;. Dummynet традиционно сильно связан с
IPFW, а ALTQ с
IPF и PF.
IPF, IPFW и PF для контроля исходящих и входящих пакетов
используют наборы правил, хотя и разными способами с разным
синтаксисом правил.Причина, по которой в &os; включено более одного пакета
межсетевых экранов, заключается в том, что разные сети выдвигают
к ним различные требования и используют разные предпочтения.
Нет одного пакета, который был бы очевидно лучше других.Автор предпочитает IPFILTER, поскольку его
правила с сохранением состояния гораздо проще использовать
совместно с NAT; кроме того, в него встроен
ftp прокси, упрощающий настройку безопасного внешнего использования
FTP.Поскольку все межсетевые экраны основаны на анализе значений выбранных
полей заголовка пакета, для создания правил межсетевого экрана необходимо
понимание принципов TCP/IP, того, что означают
различные поля заголовка пакета, и как эти поля используются в
обычной сессии. Хорошим примером является:
.Packet Filter Firewall (PF, межсетевой экран OpenBSD)межсетевой экранPFВ июле 2003 программный межсетевой экран OpenBSD, известный как
PF, был портирован в &os; и стал доступен
из коллекции портов &os;; первым релизом, где
PF был интегрирован в основную систему,
стала &os; 5.3 в ноябре 2004.
PF это полноценный межсетевой экран с широким набором
возможностей, в котором есть опциональная поддержка
ALTQ (Alternate Queuing).
ALTQ предоставляет управление пропускной способностью
Quality of Service (QoS), позволяющее гарантировать
пропускную способность для различных сервисов на основе фильтрующих
правил. Проект OpenBSD поддерживает Руководство
Пользователя PF, которое не было внесено в этот раздел руководства
во избежание дублирования работы.Информация по доступности PF для различных версий &os;
приведена ниже:Версия &os;Доступность PFВерсии до 4.XPF недоступен для релизов &os; более старых, чем
релизы из ветви 4.X.Все версии ветви 4.XPF доступен как часть KAME.Релизы 5.X до 5.3-RELEASEДля установки PF на эти версии &os; может использоваться
порт security/pf.
Эти релизы предназначались для разработчиков и тех, кто
желал ознакомиться с ранними версиями 5.X. Настоятельно
рекомендуется обновление до 5.3-RELEASE или более свежих
версий &os;.5.3-RELEASE и более свежие версииPF стал частью основной системы. Не
используйте порт security/pf
на этих версиях &os;. Он не будет работать. Вместо этого
воспользуйтесь поддержкой &man.pf.4; в базовой системе.Дополнительную информацию можно получить с веб сайта PF для &os;:
.Включение PFPF включен в базовую поставку &os; версии 5.3 и выше в качестве
отдельного загружаемого модуля. PF динамически подгружает модуль ядра
если включена переменная rc.conf pf_enable="YES".
Загружаемый модуль создан с включенным &man.pflog.4;.Модуль предполагает, что файл конфигурации вашего ядра содержит
строки options INET и
device bpf. Если не определен параметр
NOINET6 для &os; версий до 6.0-RELEASE и
NO_INET6 для более поздних версий (например,
в файле &man.make.conf.5;), требуется также параметр
options INET6.После загрузки модуля или пересборки ядра с поддержкой PF,
функциональность pf может управляться
при помощи команды pfctl.pf включается при помощи команды&prompt.root; pfctl -eКоманда pfctl позволяет управлять правилами
pf. Дополнительную информацию следует
черпать из страницы справочника &man.pfctl.8;.Параметры ядрапараметры ядраdevice pfпараметры ядраdevice pflogпараметры ядраdevice pfsyncВключение PF путем компиляции с ядром &os; не является обязательным
требованием, и описано здесь в качестве дополнительной информации.
При компиляции PF с ядром загружаемый модуль не используется.Пример параметров конфигурации ядра для включения PF находится в
/usr/src/sys/conf/NOTES
(/usr/src/sys/arch/conf/LINT
для &os; 4.X) и показан здесь:device pf
device pflog
device pfsyncdevice pf включает поддержку межсетевого экрана
Packet Filter.device pflog включает необязательное сетевое
псевдоустройство &man.pflog.4;, которое может использоваться для
протоколирования трафика через &man.bpf.4;. Даемон &man.pflogd.8;
может использоваться для сохранения протоколируемой информации
на диск.device pfsync включает необязательное
сетевое псевдоустройство &man.pfsync.4;, используемое для
отслеживания изменений состояния. Поскольку оно
не входит в загружаемый модуль, для его использования необходимо
собрать собственное ядро.Эти настройки будут действовать только после сборки и установки
нового ядра.Доступные параметры rc.confДля активации PF во время загрузки в
/etc/rc.conf должны быть включены следующие
переменные:pf_enable="YES" # Включить PF (загрузить модуль если необходимо)
pf_rules="/etc/pf.conf" # определение правил для pf
pf_flags="" # дополнительные флаги для запуска pfctl
pflog_enable="YES" # запустить pflogd(8)
pflog_logfile="/var/log/pflog" # где pflogd должен сохранять протокол
pflog_flags="" # дополнительные флаги для запуска pflogdЕсли за межсетевым экраном находится локальная сеть и необходимо передавать
пакеты для компьютеров этой сети, или использовать NAT, включите также
следующий параметр:gateway_enable="YES" # Включить сетевой шлюзВключение ALTQALTQ может быть включен только путем
компилирования ядра &os; с соответствующими параметрами.
ALTQ поддерживается не всеми существующими
драйверами сетевых карт. Для просмотра списка поддерживаемых
устройств в вашем релизе &os; обратитесь к странице справочника
&man.altq.4;. Следующие параметры включат ALTQ
и добавят дополнительную функциональность.options ALTQ
options ALTQ_CBQ # Class Bases Queuing (CBQ)
options ALTQ_RED # Random Early Detection (RED)
options ALTQ_RIO # RED In/Out
options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC)
options ALTQ_PRIQ # Priority Queuing (PRIQ)
options ALTQ_NOPCC # Required for SMP buildoptions ALTQ включает подсистему
ALTQ.options ALTQ_CBQ включает Class Based
Queuing (CBQ). CBQ
позволяет распределять пропускную способность соединений
по классам или очередям для выставления приоритетов трафика
на основе правил фильтрации.options ALTQ_RED включает Random Early
Detection (RED). RED
используется для предотвращения перегрузки сети.
RED вычисляет длину очереди и сравнивает ее
с минимальной и максимальной границей очереди. Если
очередь превышает максимум, все новые пакеты отбрасываются.
В соответствии со своим названием, RED
отбрасывает пакеты из различные соединений в произвольном
порядке.options ALTQ_RIO включает Random Early
Detection In and Out.options ALTQ_HFSC включает
Hierarchical Fair Service Curve Packet Scheduler. Дополнительная
информация о HFSC находится по адресу: .
options ALTQ_PRIQ включает Priority
Queuing (PRIQ). PRIQ
всегда пропускает трафик из более высокой очереди
первым.options ALTQ_NOPCC включает
поддержку SMP для ALTQ.
Эта опция необходима для SMP
систем.Создание правил фильтрацииПакет PF читает конфигурацию из файла &man.pf.conf.5;; пакеты
отвергаются, пропускаются или модифицируются в соответствии с
правилами и определениями из этого файла. В стандартную поставку
&os; входит файл /etc/pf.conf, содержащий
полезные примеры с комментариями.Несмотря на наличие собственного для &os; файла
/etc/pf.conf, синтаксис его совпадает с
OpenBSD. Отличное руководство по конфигурации
pf, написанное группой разработки OpenBSD,
расположено по адресу
.Изучая Руководство PF, имейте в виду, что различные версии
&os; содержат разные версии pf. pf
в &os; 5.X соответствует OpenBSD версии 3.5, в &os; 6.X
pf соответствует OpenBSD версии 3.7.&a.pf; является хорошим местом, чтобы задавать вопросы по
конфигурации и использованию пакета pf.
Не забудьте проверить архивы списка рассылки перед тем, как
задавать вопрос.* IPFILTER (IPF)межсетевой экранIPFILTERПеревод раздела не завершен.Этот раздел находится в процессе написания; содержание
может не вполне соответствовать действительности.Автором IPFILTER является Darren Reed. IPFILTER не
зависит от операционной системы: это приложение с открытыми
исходными текстами, которое было портировано на операционные
системы &os;, NetBSD, OpenBSD, SunOS, HP/UX, и Solaris.
IPFILTER активно разрабатывается и поддерживается, регулярно
выпускаются обновленные версии.IPFILTER основан на межсетевом экране уровня ядра, механизм
NAT может управляться и контролироваться
через пользовательский интерфейс. Правила межсетевого экрана
могут устанавливаться или удаляться утилитой &man.ipf.8;.
Правила NAT могут устанавливаться или
удаляться утилитой &man.ipnat.1;. Утилита &man.ipfstat.8;
выводит статистику IPFILTER для ядра. Программа
&man.ipmon.8; заносит действия IPFILTER в файлы системных
протоколов.IPF был первоначально написан с использованием правила
последнее совпадение применяется и только
с правилами без сохранения состояния. Со временем IPF
был расширен и включает параметры quick и
keep state (сохранение состояния), которые
кардинальным образом изменяют обработку пакетов.
Официальная документация IPF включает традиционные параметры
правил с традиционной последовательностью обработки пакетов.
Измененные функции включены в виде дополнительных параметров,
они необходимы для создания эффективного межсетевого экрана.Инструкции этого раздела подразумевают использование
параметра quick и параметра сохранения
состояния keep state. Это основа для создания
включающего межсетевого экрана.Детальное описание методов обработки правил:
и
.IPF FAQ
.
+ Архив списка рассылки по IPFilter с возможностью поиска доступен
+ по адресу .
+
Включение IPFIPFILTERвключениеIPF включен в базовую систему &os; в качестве отдельного
загружаемого модуля. Система динамически загрузит модуль IPF,
если в rc.conf указана переменная
ipfilter_enable="YES". Модуль создается
с включенным протоколированием и правилом по умолчанию
block all (пропускать все). Для изменения
правила по умолчанию не обязательно собирать ядро с новыми
параметрами. Просто добавьте в конец набора правило,
блокирующее все пакеты.Параметры ядрапараметры ядраIPFILTERпараметры ядраIPFILTER_LOGпараметры ядраIPFILTER_DEFAULT_BLOCKIPFILTERпараметры ядраСборка ядра с &os; включением IPF не обязательна.
Эта процедура представлена здесь в качестве дополнительной
информации. При включении IPF в ядро загружаемый модуль
не используется.Пример параметров настройки ядра для IPF находится в
/usr/src/sys/conf/NOTES
(/usr/src/sys/arch/conf/LINT
для &os; 4.X) и воспроизведен здесь:options IPFILTER
options IPFILTER_LOG
options IPFILTER_DEFAULT_BLOCKoptions IPFILTER включает поддержку
межсетевого экрана IPFILTER.options IPFILTER_LOG включает
протоколирование трафика через IPF путем записи его в
псевдо-устройство протоколирования пакетов
ipl для каждого
правила, содержащего ключевое слово
log.options IPFILTER_DEFAULT_BLOCK
изменяет поведение по умолчанию так, что блокируется каждый
пакет, не соответствующий правилу
pass.Эти настройки будут работать только после сборки и установки
нового ядра.Доступные параметры rc.confДля активации IPF во время загрузки в
/etc/rc.conf потребуется добавить
следующие переменные:ipfilter_enable="YES" # Запуск межсетевого экрана ipf
ipfilter_rules="/etc/ipf.rules" # Загрузка файла с правилами
ipmon_enable="YES" # Включение протоколирования IP monitor
ipmon_flags="-Ds" # D = запуск в виде даемона
# s = протоколирование в syslog
# v = протоколирование tcp window, ack, seq
# n = отображение имен IP и портовЕсли за межсетевым экраном находится локальная сеть, использующая
приватные IP адреса, для включения NAT
потребуется добавить следующие переменные:gateway_enable="YES" # Включение шлюза для локальной сети
ipnat_enable="YES" # Запуск функции ipnat
ipnat_rules="/etc/ipnat.rules" # Определение файла правил для ipnatIPFipfКоманда ipf используется для загрузки файла с правилами.
Обычно создается файл, содержащий подготовленный набор
правил, который полностью замещает набор, используемый
на данный момент:&prompt.root; ipf -Fa -f /etc/ipf.rules означает сброс всех внутренних таблиц правил. указывает файл с правилами, который необходимо загрузить.Таким образом, после внесения изменений в файл правил и
запуска вышеприведенной команды IPF, набор правил межсетевого экрана
обновляется без перезагрузки системы. Для обновления правил
такой подход очень удобен, поскольку команду можно выполнять
столько раз, сколько нужно.На странице справочной системы &man.ipf.8; находится
подробная информация по флагам этой команды.Набор правил для команды &man.ipf.8; должен быть в виде
стандартного текстового файла. Правила, написанные в виде
скрипта с символами подстановки, не принимаются.Есть способ составления правил IPF, использующих
символы подстановки. Обратитесь к .IPFSTATipfstatIPFILTERстатистикаПо умолчанию &man.ipfstat.8; получает и отображает суммарную
статистику, полученную в результате применения действующих правил
к пакетам, проходящим через межсетевой экран с момента его последнего
запуска, или с того момента, когда статистика была последний раз
обнулена командой ipf -Z.Детальная информация приводится на странице справочника
&man.ipfstat.8;.Вывод команды &man.ipfstat.8; по умолчанию выглядит
примерно так:input packets: blocked 99286 passed 1255609 nomatch 14686 counted 0
output packets: blocked 4200 passed 1284345 nomatch 14687 counted 0
input packets logged: blocked 99286 passed 0
output packets logged: blocked 0 passed 0
packets logged: input 0 output 0
log failures: input 3898 output 0
fragment state(in): kept 0 lost 0
fragment state(out): kept 0 lost 0
packet state(in): kept 169364 lost 0
packet state(out): kept 431395 lost 0
ICMP replies: 0 TCP RSTs sent: 0
Result cache hits(in): 1215208 (out): 1098963
IN Pullups succeeded: 2 failed: 0
OUT Pullups succeeded: 0 failed: 0
Fastroute successes: 0 failures: 0
TCP cksum fails(in): 0 (out): 0
Packet log flags set: (0)При задании флага или
соответственно для входящих или
или исходящих пакетов, будет получен и отображен список правил,
используемых на данный момент.ipfstat -in отображает правила, применяемые
к входящим пакетам, вместе с номерами этих правил.ipfstat -on отображает правила, применяемые
к исходящим пакетам, вместе с номерами этих правил.Вывод команды будет выглядеть примерно так:@1 pass out on xl0 from any to any
@2 block out on dc0 from any to any
@3 pass out quick on dc0 proto tcp/udp from any to any keep stateipfstat -ih отображает правила, применяемые
к входящим пакетам, со счетчиком количества совпадений для
каждого правила.ipfstat -oh отображает правила, применяемые
к исходящим пакетам, со счетчиком количества совпадений для
каждого правила.Вывод команды будет выглядеть примерно так:2451423 pass out on xl0 from any to any
354727 block out on dc0 from any to any
430918 pass out quick on dc0 proto tcp/udp from any to any keep stateОдна из наиболее важных функций команды
ipfstat активируется флагом ,
правила отображаются подобно тому, как &man.top.1;
показывает таблицу запущенных процессов &os;. Когда межсетевой экран
подвергается атаке, эта функция позволяет обнаружить соответствующие
пакеты. Дополнительные флаги дают возможность выбирать IP
адрес назначения или источника, порт или протокол, которые
будут отслеживаться в реальном времени. Подробная информация
приведена на странице &man.ipfstat.8;.IPMONipmonIPFILTERloggingДля того, чтобы стало возможно использование команды
ipmon, необходимо включить параметр ядра
IPFILTER_LOG. Эта команда может использоваться в двух различных
режимах. В основном режиме, который используется по умолчанию,
она используется без флага .В режиме даемона создается непрерывный протокол, и возможен
просмотр предыдущих событий. В этом режиме IPFILTER работает
в &os;. Поскольку в &os; встроена функция ротации файлов
протокола, лучше использовать syslogd, чем используемый по
умолчанию вывод в обычный файл. В rc.conf
по умолчанию ipmon_flags имеет значение :ipmon_flags="-Ds" # D = start as daemon
# s = log to syslog
# v = log tcp window, ack, seq
# n = map IP & port to namesОписывать преимущества протоколирования излишне. Например,
оно дает возможность просмотра информации о отброшенных
пакетах, откуда они пришли и куда направлялись. Это дает
определенные возможности отслеживания атак.Даже с включенным протоколированием, IPF не ведет протокол
для каждого правила. Администратор межсетевого экран должен решить,
по каким правилам набора нужно вести протокол и добавить ключевое
слово log к этим правилам. Обычно протоколируются только правила,
отбрасывающие пакеты.Довольно часто правило по умолчанию, запрещающее прохождение
пакетов, включается в набор последним, и для него применяется
ключевое слово log. Так вы можете увидеть все пакеты, не
попадающие ни под одно правило набора.Протоколирование IPMONДля сбора данных Syslogd
использует свой собственный
специальный метод. Он использует группировку по категории
(facility) и уровню (level).
IPMON в режиме использует
security (local0
для &os; 4.X) в качестве имени категории.
Все протоколируемые IPMON данные также
отправляются на security (local0
для &os; 4.X). Для сбора
протоколируемых данных могут быть использованы следующие
уровни:LOG_INFO - packets logged using the "log" keyword as the action rather than pass or block.
LOG_NOTICE - packets logged which are also passed
LOG_WARNING - packets logged which are also blocked
LOG_ERR - packets which have been logged and which can be considered shortДля указания IPFILTER протоколировать все данные в
/var/log/ipfilter.log, создайте этот
файл следующей командой:&prompt.root; touch /var/log/ipfilter.logФункционирование syslog управляется настройками в файле
/etc/syslog.conf. Файл
syslog.conf позволяет достаточно гибко
настроить обработку системных сообщений, выдаваемых программами,
такими как IPF.Добавьте в /etc/syslog.conf
следующий оператор (для &os; 5.X и позднее):security.* /var/log/ipfilter.logИли следующую строку для &os; 4.X:local0.* /var/log/ipfilter.logsecurity.* (local0.* для
&os; 4.X) означает запись всех
протоколируемых сообщений в указанный файл.Для применения внесенных в
/etc/syslog.conf изменений вы можете
перезагрузиться или заставить syslog перечитать
/etc/syslog.conf, выполнив команду
/etc/rc.d/syslogd reload (
killall -HUP syslogd
в &os; 4.X).Не забудьте отредактировать
/etc/newsyslog.conf для ротации только
что созданного лог файла.Формат протоколируемых сообщенийСообщения, генерируемые ipmon, состоят
из полей данных, разделенных пробелами. Поля, общие для всех
сообщений:Дата получения пакета.Время получения пакета. Формат времени
HH:MM:SS.F для часов, минут, секунд и долей секунд
(последнее поле может состоять из нескольких цифр).Имя интерфейса, через который прошел пакет,
например dc0.Группа и номер правила, например
@0:17.Эти сообщения могут быть просмотрены командой
ipfstat -in.Действие: p для пропущенных, b для заблокированных, S
для пакетов с неполным заголовком (short packet),
n для пакетов, не соответствующих какому-либо правилу,
L для соответствующих правилу протоколирования.
Порядок следования по флагам: S, p, b, n, L. Знаки
P или B в верхнем регистре означают, что пакет был
протоколирован в соответствии с общими настройками,
а не каким-то конкретным правилом.Адреса. Всего три поля: адрес и порт источника
(разделенные запятой), ->, адрес и порт
назначения.
209.53.17.22,80 -> 198.73.220.17,1722.PR, с последующим именем или
номером протокола, например PR tcp.len, с последующей длиной заголовка
и общей длиной пакета, например len 20 40.Для TCP пакетов добавляется дополнительное
поле, начинающееся с дефиса, за которым следуют буквы,
соответствующие установленным флагам. На странице справочника
находится список букв и флагов.Для пакетов ICMP, в конце находятся два поля,
одно всегда ICMP, а во втором тип
ICMP сообщения (message и sub-message),
например ICMP 3/3 для сообщения port
unreachable.Создание набора правил с использованием символьной подстановкиНекоторые опытные пользователи IPF создают файл правил,
поддерживающий использование символьной подстановки. Основное
преимущество использования такого скрипта заключается в
возможности изменения значения, присваиваемого символьному
имени, в результате чего во всех правилах, содержащих эту
символьную подстановку, будет использоваться новое значение.
В начале скрипта вы можете поместить часто используемые
переменные, а затем использовать их сразу в нескольких
правилах. Ниже дан пример такого использования.Синтаксис скрипта совместим с sh, csh, и
tcsh.Символьная подстановка предваряется знаком доллара:
$.Для присвоения значения символьным переменным знак
$ не используется.Присваиваемое символической переменной значение должно
быть заключено в двойные кавычки (").Начните файл правил примерно так:############# Start of IPF rules script ########################
oif="dc0" # name of the outbound interface
odns="192.0.2.11" # ISP's DNS server IP address
myip="192.0.2.7" # my static IP address from ISP
ks="keep state"
fks="flags S keep state"
# You can choose between building /etc/ipf.rules file
# from this script or running this script "as is".
#
# Uncomment only one line and comment out another.
#
# 1) This can be used for building /etc/ipf.rules:
#cat > /etc/ipf.rules << EOF
#
# 2) This can be used to run script "as is":
/sbin/ipf -Fa -f - << EOF
# Allow out access to my ISP's Domain name server.
pass out quick on $oif proto tcp from any to $odns port = 53 $fks
pass out quick on $oif proto udp from any to $odns port = 53 $ks
# Allow out non-secure standard www function
pass out quick on $oif proto tcp from $myip to any port = 80 $fks
# Allow out secure www function https over TLS SSL
pass out quick on $oif proto tcp from $myip to any port = 443 $fks
EOF
################## End of IPF rules script ########################Это все, что требовалось сделать. В данном примере сами
правила не важны; важно то, как используется символьная подстановка.
Если вышеприведенный пример помещен в файл
/etc/ipf.rules.script, вы можете
перезагрузить набор правил, введя следующую команду:&prompt.root; sh /etc/ipf.rules.scriptС использованием в правилах символьной подстановки связана одна
проблема: IPF не понимает символьную подстановку и не может обработать
такой скрипт непосредственно.Скрипт может использоваться одним из следующих двух
способов:Уберите комментарий перед строкой, начинающейся с
cat, и закомментируйте строку,
начинающуюся с /sbin/ipf. Поместите
строку ipfilter_enable="YES" в файл
/etc/rc.conf как обычно, и запускайте
скрипт после каждого его обновления для создания или обновления
файла /etc/ipf.rules.Отключите IPFILTER в стартовых скриптах системы, поместив
строку ipfilter_enable="NO" (это значение
по умолчанию) в файл /etc/rc.conf.Поместите скрипт, подобный нижеприведенному в каталог
/usr/local/etc/rc.d/. У него должно
быть однозначно говорящее о его назначении имя, например
ipf.loadrules.sh. Расширение
.sh обязательно.#!/bin/sh
sh /etc/ipf.rules.scriptПрава на этот скрипт должны разрешать чтение, запись и
выполнение владельцу root.&prompt.root; chmod 700 /usr/local/etc/rc.d/ipf.loadrules.shТеперь, при загрузке системы, правила IPF будут
загружены.IPF Rule SetsНабор правил ipf это группа правил, составленных для
пропускания или блокирования пакетов на основе их содержимого.
Двусторонний обмен пакетами между хостами составляет сессию.
Межсетевой экран обрабатывает пакеты в обеих направлениях,
Каждый IP пакет имеет такие характеристики как порт и адрес
источника и назначения. Эти основные характеристики используются
для пропускания или блокирования пакетов.IPFILTERпорядок обработки правилIPF был первоначально написан с использованием логики
последнее совпадающее правило побеждает и
только с правилами без сохранения состояния. Со временем
в IPF был включен параметр quick и параметр
сохранения состояния keep state, что
существенно улучшило логику обработки правил.Инструкции, помещенные в эту главу, созданы с использованием
параметров quick и keep state.
Это основа для создания набора правил включающего межсетевого
экрана.При работе с правилами межсетевого экрана, будьте
очень осторожны. Некоторые
конфигурации могут заблокировать вам
доступ к серверу. В целях предосторожности,
первоначальную настройку межсетевого экрана вы можете
выполнить с локальной консоли, а не через удаленное
подключение, такое как
ssh.* IPFWЭтот раздел не переведен.
diff --git a/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml b/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml
index fa76f9bf32..746c0eed17 100644
--- a/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml
@@ -1,3184 +1,3180 @@
ДенисПеплинПеревод на русский язык: Получение FreeBSDИздатели CDROM и DVDКоробочная версияFreeBSD доступна в коробочной версии (FreeBSD CD диски,
дополнительное программное обеспечение, печатная документация) от
нескольких поставщиков:CompUSA
WWW: Frys Electronics
WWW: Наборы CD и DVDНаборы FreeBSD CD и DVD доступны у множества онлайн
поставщиков:BSD Mall (подразделение Daemon News)PO Box 161Nauvoo, IL62354USA
Телефон: +1 866 273-6255
Факс: +1 217 453-9956
Email: sales@bsdmall.com
WWW: BSD-Systems
Email: info@bsd-systems.co.uk
WWW:
-
-
- fastdiscs.com
- 6 Eltham Close
- Leeds, LS6 2TY
- United Kingdom
- Телефон: +44 870 1995 171
- Email: sales@fastdiscs.com
- WWW:
-
-
-
FreeBSD Mall, Inc.3623 Sanford StreetConcord, CA94520-1405США
Телефон: +1 925 674-0783
Факс: +1 925 674-0821
Email: info@freebsdmall.com
WWW: Ingram Micro1600 E. St. Andrew PlaceSanta Ana, CA92705-4926США
Телефон: 1 (800) 456-8000
WWW: Hinner EDVSt. Augustinus-Str. 10D-81825MünchenГермания
Телефон: (089) 428 419
WWW: Ikarios22-24 rue Voltaire92000NanterreФранция
WWW: JMC SoftwareИрландия
Телефон: 353 1 6291282
WWW: Linux CD MallPrivate Bag MBE N348Auckland 1030Новая Зеландия
Телефон: +64 21 866529
WWW: The Linux EmporiumHilliard House, Lester WayWallingfordOX10 9TAВеликобритания
Телефон: +44 1491 837010
Факс: +44 1491 837016
WWW: Linux+ DVD MagazineLewartowskiego 6Warsaw00-190Польша
Телефон: +48 22 860 18 18
Email: editors@lpmagazine.org
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: РаспространителиЕсли вы продавец и хотите заниматься FreeBSD CDROM,
пожалуйста свяжитесь с распространителем:Cylogistics809B Cuesta Dr., #2149Mountain View, CA94040США
Телефон: +1 650 694-4949
Факс: +1 650 694-4953
Email: sales@cylogistics.com
WWW: Kudzu, LLC7375 Washington Ave. S.Edina, MN55439США
Телефон: +1 952 947-0822
Факс: +1 952 947-0876
Email: sales@kudzuenterprises.comLinuxCenter.Ruул. Галерная, 55Санкт-Петербург190000Россия
Телефон: +7-812-3125208
Email: info@linuxcenter.ru
WWW: Navarre 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анонимныйАнонимный 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.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 в ответ на приглашение.)США:
freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs
(только ssh - без пароля)SSH HostKey: 1024 a1:e7:46:de:fb:56:ef:05:bc:73:aa:91:09:da:f7:f4 root@sanmateo.ecn.purdue.edu
SSH2 HostKey: 1024 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65 ssh_host_dsa_key.pubСША:
anoncvs@anoncvs1.FreeBSD.org:/home/ncvs (только ssh - без
пароля)SSH HostKey: 1024 8b:c4:6f:9a:7e:65:8a:eb:50:50:29:7c:a1:47:03:bc root@ender.liquidneon.com
SSH2 HostKey: 2048 4d:59:19:7b:ea:9b:76:0b:ca:ee:da:26:e2:3a:83:b8 ssh_host_dsa_key.pubПоскольку 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.jp.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginAt the prompt, enter the passwordanoncvs.
&prompt.user; cvs co lsИспользование SSH для извлечения дерева
src/:&prompt.user; cvs -d freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs co src
The authenticity of host 'anoncvs.freebsd.org (128.46.156.46)' can't be established.
DSA key fingerprint is 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known hosts.Извлечение &man.ls.1; из ветви для 6-STABLE:&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginAt the prompt, enter the passwordanoncvs.
&prompt.user; cvs co -rRELENG_6 lsСоздание списка изменений &man.ls.1; (в виде unified diff)&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginAt the prompt, enter the passwordanoncvs.
&prompt.user; cvs rdiff -u -rRELENG_5_3_0_RELEASE -rRELENG_5_4_0_RELEASE lsПоиск доступных имен модулей:&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginAt the prompt, enter the passwordanoncvs.
&prompt.user; cvs co modules
&prompt.user; more modules/modulesДругие ресурсыВ изучении CVS могут помочь следующие дополнительные
ресурсы:Учебник
по CVS от Cal Poly.CVS Home,
сообщество разработки и поддержки CVS.CVSweb
это веб интерфейс к CVS проекта FreeBSD.Использование CTMCTMCTM это метод синхронизации удаленного
дерева исходных текстов с центральным. Он был разработан для
использования с деревом исходных текстов 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, если
у вас есть копия исходных текстов.Дельта-файлы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;
или &xorg;,
например на сервере, используйте порт, не включающий
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 зеркал,
хотя вы должны попробовать выбрать ближайшее к вам зеркало.
В этом примере мы используем не существующий сервер,
cvsup99.FreeBSD.org:*default host=cvsup99.FreeBSD.orgВам потребуется подставить адрес одного из существующих хостов
перед запуском CVSup. При каждом
запуске cvsup, вы можете перезаписать
настройку хоста из командной строки, используя параметр .Где вы хотите
разместить их на своем компьютере?Поле prefix= указывает
cvsup где размещать получаемые файлы.
В этом примере, мы поместим файлы непосредственно в главное
дерево исходных текстов, /usr/src.
Каталог src уже подразумевается в
коллекциях, которые мы собираемся получить, поэтому
корректное указание таково:*default prefix=/usrГде вы хотите
разместить файлы статуса cvsup?Клиент CVSup поддерживает
определенные файлы статуса в так называемом
base каталоге. Эти файлы помогают
CVSup работать более эффективно
путем поддержки истории уже полученных обновлений. Мы будем
использовать стандартный каталог base,
/var/db:*default base=/var/dbЕсли 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=cvsup99.FreeBSD.org
*default prefix=/usr
*default base=/var/db
*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 это
/var/db, что означает, что по
умолчанию файл refuse это
/var/db/sup/refuse.Формат файла refuse очень прост; он содержит
имена файлов или каталогов, которые вы не хотите загружать.
Например, если вы не можете разговаривать ни на каком языке кроме
английского и русского, и вы не будете читать документацию на этих
языках, поместите следующие строки в файл
refuse:doc/bn_*
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/tr_*
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/INDEX, вы
должны обновить коллекцию
ports-all (полное дерево портов).
Построение файла ports/INDEX с
частью дерева не поддерживается, хотя и возможно.
См. также
FAQ.ports-accessibility
release=cvsПО для поддержки пользователей с нарушениями
зрения, слуха и т.п.ports-arabic
release=cvsПоддержка арабского языка.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-hebrew
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-net-im
release=cvsПрограммы обмена быстрыми сообщениями.ports-net-mgmt
release=cvsПО для сетевого управления.ports-net-p2p
release=cvsСети клиентского обмена (peer-to-peer).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-science
release=cvsНаучное программное обеспечение.ports-security
release=cvsУтилиты безопасности.ports-shells
release=cvsОболочки командной строки.ports-sysutils
release=cvsСистемные утилиты.ports-textproc
release=cvsУтилиты обработки текста (не включают
настольные утилиты публикации).ports-ukrainian
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
release=cvsСерверы X11.ports-x11-themes
release=cvsТемы X11.ports-x11-wm
release=cvsОконные менеджеры 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.name;. Новые
версии программного обеспечения анонсируются здесь и в
списке рассылки &a.announce.name;.Вопросы и сообщения об ошибках адресуйте автору программы
cvsup-bugs@polstra.com.Зеркала CVSupCVSup серверы для FreeBSD работают на
следующих сайтах:
&chap.mirrors.cvsup.inc;
Использование PortsnapВведениеPortsnap — система для
защищенного распространения дерева портов &os;. Примерно раз
в час генерируется снэпшот дерева портов,
который затем архивируется и подписывается электронной подписью.
Полученные файлы затем распространяются при помощи HTTP.Подобно CVSup,
portsnap использует
активную (pull) модель обновлений:
упакованное и подписанное дерево помещается на веб-сервер, откуда
его должны забирать клиенты. Пользователь должен либо запустить
&man.portsnap.8; вручную, чтобы получить
обновления, либо настроить периодическое задание при помощи
&man.cron.8;.По техническим причинам Portsnap
не обновляет основное (живое) дерево портов в
каталоге /usr/ports/, а работает со сжатой
копией дерева в каталоге /var/db/portsnap/.
Впоследствии эта копия используется для обновления основного
дерева.Если Portsnap был установлен из
Коллекции портов &os;, каталогом для снэпшотов будет
/usr/local/portsnap/, а не
/var/db/portsnap/.Установка&os; начиная с версии 6.0 содержит
Portsnap в базовой поставке системы.
Для более ранних релизов &os; эта утилита может быть установлена
из порта sysutils/portsnap.Конфигурация PortsnapКонфигурация Portsnap описывается
файлом /etc/portsnap.conf. Для большинства
пользователей вполне подойдет конфигурация по умолчанию;
за подробностями обращайтесь к странице справочника
&man.portsnap.conf.5;.При установке Portsnap из
Коллекции портов используется файл конфигурации
/usr/local/etc/portsnap.conf.
При установке порта этот файл не создается; вам нужно создать
его самостоятельно командой&prompt.root; cd /usr/local/etc && cp portsnap.conf.sample portsnap.confПервый запуск PortsnapПри первом запуске утилите &man.portsnap.8;
потребуется загрузить упакованный снэпшот полного дерева портов
в каталог /var/db/portsnap/
(/usr/local/portsnap/, если
Portsnap был установлен из Коллекции
портов). На начало 2006 года размер снэпшота составляет около
41 МБ.&prompt.root; portsnap fetchПосле загрузки снэпшота из него может быть развернуто основное
дерево портов. Это необходимо, даже есть каталог
/usr/ports/заполнен каким-либо другим
способом, например при помощи CVSup,
поскольку позволяет установить точку отсчета, от которой
portsnap будет определять необходимый
объем изменений.&prompt.root; portsnap extractВ конфигурации установки по умолчанию каталог
/usr/ports не создан.
Если вы используете &os; 6.0-RELEASE,
создайте его самостоятельно перед первым запуском
утилиты portsnap.
В более поздних версиях &os; или в версии из портов
Portsnap автоматически создаст
его при первом вызове.Обновление дерева портовПосле того как первоначальный снэпшот дерева портов будет
развернут в каталог /usr/ports/, обновление
дерева портов будет состоять из двух шагов:
загрузки (fetch) обновлений к упакованному
снэпшоту и последующего обновления (update)
основного дерева. Оба шага могут быть выполнены одним запуском
portsnap:&prompt.root; portsnap fetch updateНекоторые из старых версий portsnap
не поддерживают такой синтаксис; в этом случае, используйте две
последовательные команды:&prompt.root; portsnap fetch
&prompt.root; portsnap updateЗапуск portsnap из cronДля того, чтобы избежать проблем с безумными
толпами клиентов, одновременно приходящими на сервера
Portsnap, команда portsnap
fetch не запустится как задание &man.cron.8;.
Для работы из cron предназначена специальная
команда portsnap cron, которая перед
загрузкой обновлений ожидает случайное время до 3600 секунд.Кроме того, настоятельно не рекомендуется запускать из
cron команду portsnap
update, поскольку при пересечении с процессом сборки
или установки какого-либо порта неизбежно возникнет конфликт.
С другой стороны, безопасно обновить индексный файл
INDEX, запустив
portsnap -I update (разумеется, команду
portsnap update без ключа
для обновления оставшейся части дерева портов придется запустить
вручную).Для ежедневного обновления упакованного снэпшота и индексного
файла при помощи portsnap и последующего
отчета почтой об устаревших установленных пакетах добавьте
в ваш файл /etc/crontab строку0 3 * * * root portsnap -I cron update && pkg_version -vIL=Если системные часы не установлены в локальное время,
пожалуйста, замените 3 на случайное
число между 0 и 23, чтобы не создавать пиковых нагрузок на
серверы portsnap.Старые версии утилиты portsnap
не поддерживали несколько команд при одном запуске (например,
cron update). Если команда, указанная выше,
не сработает, попробуйте заменить
portsnap -I cron update на
portsnap cron && portsnap -I update.Теги CVSПри получении или обновлении исходных текстов с использованием
cvs или
CVSup должен быть указан тег ревизии
Тег относится либо к определенной линии разработки &os;
либо к определенному моменту времени. Первый тип называется
тегом ветви, второй тип называется тегом
релиза.Теги ветвейВсе они, за исключением HEAD (который всегда
работает), относятся только к дереву src/.
Деревья ports/, doc/ и
www/ не имеют тегов ветвей.HEADСимволическое имя для основной ветви разработки,
FreeBSD-CURRENT. Используется по умолчанию, если тег не
указан.В CVSup, этот тег представлен
символом . (не знак пунктуации, а
символ .).В CVS тег по умолчанию используется, если тег не указан
вообще. Обычно не очень хорошей идеей является обновление
до CURRENT на машине со STABLE, только если вы не стремитесь
именно к этому.RELENG_6Ветвь разработки FreeBSD-6.X, известная также как
FreeBSD 6-STABLE.RELENG_6_1Ветвь релиза для FreeBSD-6.1, используемая только
для исправлений безопасности и других критических
исправлений.RELENG_6_0Ветвь релиза для FreeBSD-6.0, используемая только
для исправлений безопасности и других критических
исправлений.RELENG_5Ветвь разработки FreeBSD-5.X, известная также как
FreeBSD 5-STABLE.RELENG_5_4Ветвь релиза для FreeBSD-5.4, используемая только
для исправлений безопасности и других критических
исправлений.RELENG_5_3Ветвь релиза для FreeBSD-5.3, используемая только
для исправлений безопасности и других критических
исправлений.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 4-STABLE.RELENG_4_11Ветвь релиза для FreeBSD-4.11, используемая только
для исправлений безопасности и других критических
исправлений.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. Эта ветвь по большей части устарела.Теги релизовЭти теги относятся к определенным моментам времени, когда
были выпущены конкретные версии &os;. Процесс выпуска релизов
более детально документирован в информации о выпусках релизов
и статье о
процессе подготовки релизов. Дерево
src использует имена тегов,
начинающиеся с RELENG_. Деревья
ports и
doc используют теги, имена
которых начинаются с RELEASE.
Наконец, в дереве www
нет специальных имен для релизов.
+
+ RELENG_6_1_0_RELEASE
+
+
+ FreeBSD 6.1
+
+
+
RELENG_6_0_0_RELEASEFreeBSD 6.0RELENG_5_4_0_RELEASEFreeBSD 5.4RELENG_4_11_0_RELEASEFreeBSD 4.11RELENG_5_3_0_RELEASEFreeBSD 5.3RELENG_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/4/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 d965aa7ec2..c89486d6ff 100644
--- a/ru_RU.KOI8-R/books/handbook/network-servers/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/network-servers/chapter.sgml
@@ -1,5256 +1,5274 @@
MurrayStokelyРеорганизовал АндрейЗахватовПеревод на русский язык: Сетевые серверыКраткий обзорЭта глава посвящена некоторым наиболее часто используемым сетевым
службам систем &unix;. Мы опишем, как установить, настроить,
протестировать и поддерживать многие различные типы сетевых сервисов.
Для облегчения вашей работы в главу включены
примеры конфигурационных файлов.После чтения этой главы вы будете знать:Как управлять даемоном inetd.Как настроить сетевую файловую систему.Как настроить сетевой сервер информации для совместного
использования учётных записей пользователей.Как настроить автоматическое конфигурирование сетевых параметров
при помощи DHCP.Как настроить сервер имён.Как настроить Apache HTTP
сервер.Как настроить файловый и сервер печати для &windows;
клиентов с использованием Samba.Как синхронизировать дату и время, а также настроить сервер
времени с протоколом NTP.Перед чтением этой главы вы должны:Понимать основы работы скриптов
/etc/rc.Свободно владеть основными сетевыми терминами.Знать как устанавливать дополнительные программы сторонних
разработчиков ().ChernLeeТекст предоставил Обновлено для &os; 6.1-RELEASEПроект документации &os;Супер-серверinetdОбзор&man.inetd.8; иногда называют также супер-сервером
Интернет, потому что он управляет соединениями к многим
сервисам. Когда
inetd принимает соединение, он определяет,
для какой программы предназначено соединение, запускает соответствующий
процесс и предоставляет ему сокет, ссылка на который передается
процессу в качестве стандартных устройств ввода, вывода и сообщения об
ошибках. Для не слишком нагруженных серверов запуск через
inetd может уменьшить общую нагрузку на систему по
сравнению с запуском каждого даемона индивидуально в выделенном
режиме.В первую очередь inetd используется для
вызова других даемонов, но несколько простых протоколов, таких, как
chargen, auth и
daytime, обслуживаются
непосредственно.Этот раздел посвящен основам настройки
inetd посредством его параметров командной
строки и его конфигурационного файла,
/etc/inetd.conf.Настройкиinetd инициализируется посредством
системы &man.rc.8;. Параметр
inetd_enable по умолчанию установлен в
NO, однако может быть включен утилитой
sysinstall в процессе установки.
Указание
inetd_enable="YES" или
inetd_enable="NO" в файле
/etc/rc.conf разрешит или запретит запуск
inetd во время загрузки.
Команда
/etc/rc.d/inetd rcvar
покажет текущие установки переменных, относящихся к
inetd.Кроме того, через inetd_flags даемону
inetd могут быть переданы различные
параметры командной строки.Параметры командной строкиКак и большинство даемонов, для inetd
существует большое количество разнообразных опций, изменяющих
его поведение. Полный из список таков;inetdОпции могут передаваться inetd
при помощи переменной inetd_flags файла
/etc/rc.conf. По умолчанию переменная
inetd_flags установлена в -wW -C
60, то есть включает обработку TCP wrapping и запрещает
обращаться с одного IP-адреса к сервису более чем 60 раз в
минуту.Начинающих пользователей порадует отсутствие необходимости
менять эти параметры в стандартных случаях. Тем не менее, мы
остановимся на опциях, ограничивающих количество и частоту
соединений, поскольку они могут быть полезны для исключения
массированных атак. Полный список опций можно найти на странице
справочника &man.inetd.8;.-c maximumОпределение максимального числа одновременных запусков каждой
службы; по умолчание не ограничено. Может быть переопределено
индивидуально для каждой службы при помощи параметра
.-C rateОпределение по умолчанию максимального количества раз,
которое служба может быть вызвана с одного IP-адреса в минуту; по
умолчанию не ограничено. Может быть переопределено для каждой
службы параметром
.-R rateОпределяет максимальное количество раз, которое служба может
быть вызвана в минуту; по умолчанию 256. Частота, равная 0,
не ограничивает число вызовов.-s maximumЗадает максимальное количество процессов, одновременно
обслуживающих один сервис для одного IP-адреса; по умолчанию
не ограничено. Может переопределяться для каждой службы
параметром .inetd.confНастройка inetd производится через файл
/etc/inetd.conf.Если в файле /etc/inetd.conf делались
изменения, то inetd можно заставить считать
его конфигурационный файл повторно посредством командыПерезагрузка конфигурационного файла
inetd&prompt.root; /etc/rc.d/inetd reloadВ каждой строке конфигурационного файла описывается отдельный
даемон. Комментариям в файле предшествует знак #.
Строки в файле
/etc/inetd.conf имеют такой формат:service-name
socket-type
protocol
{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]
user[:group][/login-class]
server-program
server-program-argumentsПример записи для даемона &man.ftpd.8;,
использующего 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[/max-child-per-ip]]] определяет, может ли даемон,
вызванный из inetd, работать с
собственным сокетом, или нет. Сокеты типа
должны использовать параметр , когда как
даемоны с потоковыми
сокетами, которые обычно многопоточны, должны использовать
. обычно передает
много сокетов одному даемону, когда как
порождает даемон для каждого нового сокета.Максимальное число порожденных даемонов, которых может
создать inetd, может быть задано
параметром . Если нужно ограничение в
десять экземпляров некоторого даемона, то после параметра
нужно задать
/10. При задании /0
ограничения на количество экземпляров снимаются.Кроме , могут быть задействованы
два других параметра, ограничивающих максимальное число соединений от
одного источника.
ограничивает
количество соединений от одного IP-адреса в течение минуты, так что
значение, равное десяти, будет ограничивать
любой заданный IP-адрес на выполнение десяти попыток подключения
к некоторому сервису в минуту. Параметр
ограничивает количество
дочерних процессов, которые могут быть одновременно
задействованы на обслуживание одного IP-адреса.
Эти опции полезны для предотвращения
намеренного или ненамеренного расходования ресурсов и атак типа
Denial of Service (DoS) на машину.В этом поле одно из значений
или
обязательны. ,
и
опциональны.Многопоточный даемон типа stream без ограничений
,
или
будет
определен просто как nowait.Тот же самый даемон с ограничением в максимум десять даемонов
будет определен так: nowait/10.Та же конфигурация с ограничением в двадцать
соединений на IP-адрес в минуту и общим ограничением в максимум
десять порожденных даемонов выглядит так:
nowait/10/20.Эти параметры, используемые все со значениями по умолчанию
даемоном &man.fingerd.8;, имеют такой
вид:finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -sНаконец, пример, описывающий ограничение на 100 даемонов
в целом, при этом не более чем по 5 на один IP-адрес,
будет выглядеть так:
nowait/100/0/5.userЭто имя пользователя, под которым должен
работать соответствующий даемон. Чаще всего даемоны работают
как пользователь 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 предоставляет
идентификационные сетевые услуги
и поддается настройке; прочие сервисы ненастраиваемы.Обратитесь к справочной странице по &man.inetd.8; для получения
более подробной информации.TomRhodesРеорганизация и улучшения BillSwingleТекст создал Network File System (NFS)NFSКроме поддержки многих прочих типов файловых систем, во FreeBSD
встроена поддержка сетевой файловой системы (Network File System),
известной как NFS. NFS позволяет
системе использовать каталоги и файлы совместно с другими машинами,
посредством сети. Посредством NFS пользователи и
программы могут получать доступ к файлам на удалённых системах точно так
же, как если бы это были файлы на собственных дисках.Вот некоторые из наиболее заметных преимуществ, которые даёт
использование NFS:Отдельно взятые рабочие станции используют меньше собственного
дискового пространства, так как совместно используемые данные могут
храниться на одной отдельной машине и быть доступными для других
машин в сети.Пользователям не нужно иметь домашние каталоги, отдельные
для каждой машины в вашей сети. Домашние каталоги могут
располагаться на сервере NFS и их можно сделать
доступными отовсюду в сети.Устройства хранения информации, такие, как дискеты, приводы
CD-ROM и устройства &iomegazip;, могут использоваться другими машинами в
сети. Это может привести к уменьшению переносимых устройств хранения
информации в сети.Как работает NFSNFS строится по крайней мере из двух основных
частей: сервера и одного или большего количества клиентов. Клиент
обращается к данным, находящимся на сервере, в режиме удалённого
доступа. Для того, чтобы это нормально функционировало, нужно
настроить и запустить несколько процессов.В &os; 4.X, вместо утилиты
rpcbind использовалась утилита
portmap.
Таким образом, при
использовании &os; 4.X пользователю необходимо заменить в
последующих примерах все команды rpcbind
на portmap.На сервере работают следующие даемоны:NFSсерверфайл серверUNIX клиентыrpcbindportmapmountdnfsdДаемонОписаниеnfsdДаемон NFS, обслуживающий запросы от
клиентов NFS.mountdДаемон монтирования NFS, который
выполняет запросы, передаваемые ему от &man.nfsd.8;.rpcbindЭтот даемон позволяет клиентам
NFS определить порт, используемый сервером
NFS.Клиент может запустить также даемон, называемый
nfsiod. nfsiod
обслуживает запросы, поступающие от сервера от сервера
NFS. Он необязателен, увеличивает
производительность, однако для нормальной и правильной работы не
требуется. Для получения дополнительной информации обратитесь к
разделу справочной системы о &man.nfsiod.8;.Настройка NFSNFSнастройкаНастройка NFS является достаточно незамысловатым
процессом. Все процессы, которые должны быть запущены, могут быть
запущены во время загрузки посредством нескольких модификаций в
вашем файле /etc/rc.conf.Проверьте, что на NFS-сервере в файле
/etc/rc.conf имеются такие строки:rpcbind_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 будет некорректен:# Invalid when /usr is one file system
/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:
+ Даемон mountd должен быть
+ проинформирован об изменении файла /etc/exports,
+ чтобы изменения вступили в силу. Это может быть достигнуто посылкой
+ сигнала HUP процессу mountd:&prompt.root; kill -HUP `cat /var/run/mountd.pid`
+ или вызовом скрипта mountd подсистемы &man.rc.8;
+ с соответстввующим параметром:
+
+ &prompt.root; /etc/rc.d/mountd reload
+
+ За подробной информацией о работе скриптов rc.d обращайтесь к
+ .
+
Как вариант, при перезагрузке FreeBSD всё настроится правильно.
Хотя выполнять перезагрузку вовсе не обязательно. Выполнение следующих
команд пользователем root запустит всё, что
нужно.На сервере NFS:&prompt.root; rpcbind
&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:rpcbindportmapТерминОписаниеИмя домена NISГлавный сервер NIS и все его клиенты (включая вторичные
серверы), имеют доменное имя NIS. Как и в случае с именем
домена &windowsnt;, имя домена NIS не имеет ничего общего с
DNS.rpcbindДля обеспечения работы RPC (Remote Procedure Call,
Удалённого Вызова Процедур, сетевого протокола, используемого
NIS), должен быть запущен даемон rpcbind.
Если даемон rpcbind не запущен, невозможно
будет запустить сервер NIS, или работать как
NIS-клиент (в &os; 4.X вместо
rpcbind используется
portmap).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 также поддерживает пакет программ
TCP Wrapper от Wietse Venema. Это позволяет
администратору для ограничения доступа вместо
/var/yp/securenets использовать конфигурационные
файлы TCP Wrapper.Хотя оба этих метода управления доступом обеспечивают некоторую
безопасность, они, как основанные на проверке привилегированного
порта, оба подвержены атакам типа IP spoofing. Весь
сетевой трафик, связанный с работой NIS, должен блокироваться вашим
брандмауэром.Серверы, использующие файл /var/yp/securenets,
могут быть не в состоянии обслуживать старых клиентов NIS с древней
реализацией протокола TCP/IP. Некоторые из этих реализаций при
рассылке широковещательных запросов устанавливают все биты машинной
части адреса в ноль и/или не в состоянии определить маску подсети при
вычислении адреса широковещательной рассылки. Хотя некоторые из этих
проблем могут быть решены изменением конфигурации клиента, другие
могут привести к отказу от использования
/var/yp/securenets.Использование /var/yp/securenets на сервере
с такой архаичной реализацией TCP/IP является весьма плохой идеей, и
приведёт к потере работоспособности NIS в большой части вашей
сети.TCP WrapperИспользование пакета TCP Wrapper увеличит
время отклика вашего сервера 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 версиях младше 6.0 используется
реализация DHCP клиента (&man.dhclient.8;) от ISC
(Internet Software Consortium). Более поздние версии используют
dhclient, импортированный из OpenBSD 3.7.
Вся информация здесь, относительно dhclient относится
либо к ISC, либо к DHCP клиентам. DHCP сервер включён в ISC
дистрибутив.Что описывается в этом разделеВ этом разделе описываются, как компоненты клиентской части ISC или OpenBSD
DHCP клиента, так и компоненты 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;.Интеграция с FreeBSDDHCP клиент от ISC или от OpenBSD, dhclient, полностью
интегрирован во &os; (относительно, используемой вами версии &os;). Поддержка клиента DHCP есть как в программе
установки, так и в самой системе, что исключает необходимость в
знании подробностей конфигурации сети в любой сети, имеющей сервер
DHCP. Утилита dhclient включена во все версии
FreeBSD, начиная с 3.2.sysinstallDHCP поддерживается утилитой sysinstall.
При настройке сетевого интерфейса из программы
sysinstall второй
вопрос, который вам задается: Do you want to try DHCP
configuration of the 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Чему посвящён этот разделЭтот раздел даёт информацию о том, как настроить систему
FreeBSD для работы в качестве сервера DHCP на основе реализации
пакета DHCP от ISC (Internet Software Consortium).Серверная часть пакета не поставляется как часть FreeBSD, так
что вам потребуется установить порт net/isc-dhcp3-relay для получения
этого сервиса. Обратитесь к для получения
более полной информации об использовании коллекции портов.Установка сервера 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, вы можете продолжить работу
- запуском сервера при помощи следующей команды:
+ Когда вы закончите составлять свой
+ dhcpd.conf, нужно разрешить запуск сервера DHCP
+ в файле /etc/rc.conf, добавив в него
+ строки
+
+ dhcpd_enable="YES"
+dhcpd_ifaces="dc0"
+
+ Замените dc0 именем инферфейса (или именами
+ интерфейсов, разделяя их пробелами), на котором(ых) сервер DHCP
+ должен принимать запросы от клиентов.
+
+ Затем вы можете стартовать сервер DHCP при помощи команды&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. Начиная с &os; 5.3, с системой
поставляется BIND9, инструкции к настройке которого
находятся далее в этой главе. Пользователи &os; 5.2 и предыдущих
релизов могут установить BIND9 из порта
net/bind9.Протокол DNS стандартизован в RFC1034 и RFC1035.На данный момент пакет BIND поддерживается Internet Software
Consortium .Используемая терминологияДля понимания этого документа нужно понимать значения некоторых
терминов, связанных с работой DNS.резолверобратный DNSкорневая зонаТерминОпределениеПрямой запрос к DNS (forward DNS)Преобразование имён хостов в адреса IPОриджин (origin)Обозначает домен, покрываемый конкретным файлом
зоныnamed, bind, сервер
имёнОбщеупотребительные названия для обозначения пакета BIND,
обеспечивающего работу сервера имён во FreeBSD.РезолверСистемный процесс, посредством которого машина обращается
к серверу имён для получения информации о зонеОбратный 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/master/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";
};
// 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
&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лог файлыnamedЕсли вы используете &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 удаляется
при загрузке, может быть полезно добавить эту команду
в &man.crontab.5; для root
с использованием параметра
.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 "." 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 SpecificationTomRhodesАвтор: DmitryMorozovskyПеревод на русский язык: BIND9 и &os;bind9установка&os; начиная с версии 5.3 содержит в базовой поставке
сервер DNS BIND9.
Среди прочих нововведений стоит отметить новые возможности, связанные
с безопасностью, новую организацию файлов конфигурации и автоматическое
использование опции &man.chroot.8;. Первая часть этой главы посвящена
обсуждению новых возможностей и их использования, вторая описывает
процесс обновления сервера DNS при переходе на &os; 5.3. Мы будем
ссылаться на сервер BIND как &man.named.8;.
Мы подразумеваем, что читатель знаком с терминологией, описываемой в
предыдущей главе.Файлы конфигурации для named в настоящее время
располагаются в каталоге
/var/named/etc/namedb/ и требуют
модификации перед началом использования сервера. Большая часть работы
по конфигурации сервера DNS происходит именно в этом каталоге.Конфигурация основной (Master) зоныДля создания основной зоны перейдите в каталог
/var/named/etc/namedb/
и выполните команду&prompt.root; sh make-localhostПри удачном стечении обстоятельств в каталоге
master появится два новых файла:
localhost.rev для локального домена и
localhost-v6.rev для локальной зоны
IPv6. В поставляемом стандартном файле
конфигурации named.conf уже есть ссылки на оба
файла зон.Конфигурация зависимой (Slave) ЗоныДополнительные домены и поддомены могут быть добавлены как
зависимые зоны. В большинстве случаев достаточно просто скопировать
файл master/localhost.rev в каталог
slave и изменить копию.
После изменения файлов зон нужно добавить ссылки на них в
основной файл конфигурации named.conf,
как в следующем примере для example.com:zone "example.com" {
type slave;
file "slave/example.com";
masters {
10.0.0.1;
};
};
zone "0.168.192.in-addr.arpa" {
type slave;
file "slave/0.168.192.in-addr.arpa";
masters {
10.0.0.1;
};
};Отметим, что использованный в этом примере IP
адрес является адресом, с которого будут копироваться файлы зон;
этот адрес не обязательно является публичным сервером
DNS.Стартовая конфигурация системыДля автоматического запуска даемона named
при загрузке системы добавьте в файл стартовой конфигурации
rc.conf строкуnamed_enable="YES"Есть и другие параметры конфигурации, но эта строка —
минимально необходима. Список параметров можно найти на странице
справочника &man.rc.conf.5;. Если запуск named
не разрешен в rc.conf, сервер можно запустить
вручную командой&prompt.root; /etc/rc.d/named startBIND9: вопросы безопасности&os; автоматически запускает named
в ограниченном пространстве &man.chroot.8;; кроме того, существует
еще несколько средств, помогающих защитить сервис
DNS от возможных атак.Списки ограничения доступаДля ограничения доступа к зонам могут применяться списки
доступа. Для этого опишите для домена список IP
адресов, которым разрешены запросы к содержимому доменной зоны, и
используйте имя этого списка в конфигурации зоны.
Вот пример описания списка ограничения доступа:acl "example.com" {
192.168.0.0/24;
};
zone "example.com" {
type slave;
file "slave/example.com";
masters {
10.0.0.1;
};
allow-query { example.com; };
};
zone "0.168.192.in-addr.arpa" {
type slave;
file "slave/0.168.192.in-addr.arpa";
masters {
10.0.0.1;
};
allow-query { example.com; };
};Версия сервераРазрешать всем запросы о версии вашего DNS
сервера может быть не самой лучшей идеей: возможный злоумышленник
может воспользоваться ей для выяснения известных ошибок и
уязвимостей и применить их вашего сервера.Подмена сообщения о версии не защитит ваш сервер от
эксплоитов. Защитить сервер может только обновление до
версии, не содержащей известных ошибок.Для предотвращения этого
в раздел options файла конфигурации
named.conf можно вписать строку, скрывающую
версию сервера:options {
directory "/etc/namedb";
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";
version "None of your business";
};MurrayStokelyПредоставил Apache HTTP сервервеб серверынастройкаApacheОбзор&os; используется в качестве платформы для многих из самых
нагруженных серверов в мире. Большинство серверов в интернет
используют Apache HTTP сервер.
Пакеты Apache должны быть включены
в поставку FreeBSD. Если вы не установили их во вместе с
системой, воспользуйтесь портами www/apache13 или www/apache20.Как только Apache был успешно
установлен, его необходимо настроить.В этом разделе рассказывается о версии 1.3.X
Apache HTTP сервера, поскольку
эта версия наиболее широко используется в &os;.
Apache 2.X
содержит много новых технологий, но здесь они не обсуждаются.
За дополнительной информацией о
Apache 2.X, обращайтесь к .НастройкаApacheфайл настройкиВ &os; основной файл настройки Apache HTTP сервера
устанавливается в
/usr/local/etc/apache/httpd.conf.
Это обычный текстовый &unix; файл настройки с строками
комментариев, начинающимися с символа #.
Исчерпывающее описание всех возможных параметров настройки
находится за пределом рассмотрения этой книги, поэтому
здесь будут описаны только наиболее часто модифицируемые
директивы.ServerRoot "/usr/local"Указывает верхний каталог установки
Apache по
умолчанию. Бинарные файлы находятся в
bin и
sbin, подкаталоги
расположены относительно корневого каталога сервера, файлы
настройки находятся в
etc/apache.ServerAdmin you@your.addressАдрес, на который должны будут отправляться
сообщения о проблемах с сервером. Этот адрес
выводится на некоторые генерируемые сервером
страницы, например с сообщениями об ошибках.ServerName www.example.comServerName позволяет вам устанавливать имя хоста,
которое отправляется обратно клиентам, если оно
отличается от того, с которым настроен хост
(например, использование www вместо реального
имени хоста).DocumentRoot "/usr/local/www/data"DocumentRoot: Каталог, внутри которого будут храниться
документы. По умолчанию, все запросы обрабатываются внутри
этого каталога, но символические ссылки и синонимы могут
использоваться для указания на другие каталоги.Хорошей идеей будет сделать резервные копии настроек
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 без
прерывания имеющихся соединений, выполните:&prompt.root; /usr/local/sbin/apachectl gracefulДополнительная информация находится на странице
справочного руководства &man.apachectl.8;.Для запуска 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,
которые добавляют функциональность к основному
серверу. Коллекция портов FreeBSD предоставляет
простой способ установки Apache
с некоторыми наиболее популярными дополнительными
модулями.mod_sslвеб серверызащитаSSLкриптографияМодуль mod_ssl использует
библиотеку OpenSSL для
сильной криптографии через протоколы Secure Sockets Layer
(SSL v2/v3) и Transport Layer Security (TLS v1).
Этот модуль содержит все необходимое для запроса
подписанного сертификата из центра сертификации
для защищенного веб сервера на &os;.Если вы еще не установили
Apache, версия
Apache 1.3.X с
mod_ssl может быть установлена
через порт www/apache13-modssl.
Поддержка SSL также доступна для
Apache 2.X
через порт www/apache20,
где она включена по умолчанию.Построение динамических сайтов при помощи Perl и PHPВ последние годы все большее число компаний обращает внимание
на Интернет как площадку для ведения и расширения бизнеса.
Среди прочего, этот процесс подчеркивает потребность в
интерактивном содержимом сайтов. Некоторые компании, такие как
µsoft;, представляют свои закрытые решения; сообщество
разработчиков открытых программ отвечает на вызов.
Два возможных пути решения проблемы динамического контента —
mod_perl и mod_php.mod_perlmod_perlPerlПроект интеграции
Apache/Perl объединяет мощь
языка программирования Perl и HTTP сервера
Apache.
С модулем mod_perl возможно
написание модулей Apache
полностью на Perl. Кроме того, постоянно
запущенный встроенный в сервер интерпретатор
позволяет не тратить ресурсы на запуск внешнего
интерпретатора и время на запуск Perl.mod_perl можно использовать
различными способами. Помните, что
mod_perl 1.0 работает только с
Apache 1.3, тогда как
mod_perl 2.0 совместим только с
Apache 2.
mod_perl 1.0 доступен как порт www/mod_perl, а также в виде статически
скомпилированной версии в www/apache13-modperl.
mod_perl 2.0 доступен как www/mod_perl2.TomRhodesНаписал mod_phpmod_phpPHPPHP, также известный как Препроцессор гипертекста
(Hypertext Preprocessor), —
это скриптовый язык общего назначения, в основном предназначенный
для веб разработки. Этот язык может быть встроен в
HTML, его синтаксис заимствован из C, &java;
и Perl, и он позволяет веб разработчикам быстро писать динамически
генерируемые страницы.Добавление поддержки PHP5 к веб серверу
Apache производится путем установки
порта www/mod_php5.Этот порт устанавливает и настраивает модули, необходимые
для поддержки динамических PHP веб страниц.
Убедитесь, что в файл
/usr/local/etc/apache/httpd.conf были
добавлены следующие секции:LoadModule php5_module libexec/apache/libphp5.soAddModule mod_php5.c
<IfModule mod_php5.c>
DirectoryIndex index.php index.html
</IfModule>
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>Для загрузки модуля PHP
после этого просто вызовите команду
apachectl с параметром graceful:&prompt.root; apachectl gracefulПоддержка PHP в &os; построена по
модульному принципу, поэтому базовая установка обладает очень
ограниченной функциональностью. Дополнительная функциональность
может быть легко добавлена при помощи порта lang/php5-extensions, управляющего набором
расширений PHP через меню, либо просто путем
установки дополнительных портов.Например, для добавления поддержки
MySQL к PHP5,
просто установите порт
databases/php5-mysql.После установки новых расширений сервер
Apache должен быть рестартован,
чтобы изменения в конфигурации вступили в силу:&prompt.root; apachectl gracefulMurrayStokelyПредоставил Файл сервер и печать для µ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; клиентами.
В пакет Samba входит программа с
веб интерфейсом, называемая swat,
которая дает простой способ редактирования файла
smb.conf.Использование Samba Web Administration Tool (SWAT)Программа веб администрирования Samba (Samba Web
Administration Tool, SWAT) запускается как даемон из
inetd. Следовательно, в
/etc/inetd.conf необходимо снять комментарий
перед тем, как использовать swat для
настройки Samba:swat stream tcp nowait/400 root /usr/local/sbin/swatКак описано в ,
после изменения настроек inetd
необходимо перечитать конфигурацию.Как только swat был включен
inetd.conf, вы можете использовать
браузер для подключения к .
Сначала необходимо зарегистрироваться с системной
учетной записью root.После успешного входа на основную страницу настройки
Samba, вы можете просмотреть
документацию или начать настройку, нажав на кнопку
Globals. Раздел Globals
соответствует переменным,
установленным в разделе [global] файла
/usr/local/etc/smb.conf.Глобальные настройкиНезависимо от того, используете ли вы
swat, или редактируете
/usr/local/etc/smb.conf непосредственно,
первые директивы, которые вы скорее всего встретите при
настройке Samba, будут
следующими:workgroupИмя домена или рабочей группы NT для компьютеров,
которые будут получать доступ к этому серверу.netbios nameNetBIOSУстанавливает имя NetBIOS, под которым будет
работать Samba сервер. По
умолчанию оно устанавливается
равным первому компоненту DNS имени хоста.server stringУстанавливает строку, которая будет показана командой
net view и некоторыми другими сетевыми
инструментами, которые отображают строку описания
сервера.Настройки безопасностиДве из наиболее важных настроек в
/usr/local/etc/smb.conf отвечают за
выбор модели безопасности и за формат паролей для
клиентов. Эти параметры контролируются следующими
директивами:securityДва наиболее часто используемых параметра это
security = share и security
= user. Если имена пользователей для клиентов
совпадают с их именами на компьютере &os;, вы возможно
захотите включить безопасность уровня пользователя (user).
Это политика безопасности по умолчанию, она требует,
чтобы клиент авторизовался перед доступом к совместно
используемым ресурсам.На уровне безопасности share клиенту не требуется
входить на сервер перед подключением к ресурсу.
Эта модель безопасности использовалась по умолчанию
в старых версиях Samba.passdb backendNIS+LDAPSQL база данныхSamba поддерживает
несколько различных подсистем аутентификации. Вы можете
аутентифицировать клиентов с помощью LDAP, NIS+,
базы данных SQL, или через модифицированный файл
паролей. Метод аутентификации по умолчанию
smbpasswd, и здесь рассматривается
только он.Предполагая, что используется подсистема по умолчанию
smbpasswd, необходимо создать файл
/usr/local/private/smbpasswd, чтобы
Samba могла аутентифицировать
клиентов. Если вы хотите разрешить всем учетным записям
&unix; доступ с &windows; клиентов, используйте следующую
команду:&prompt.root; grep -v "^#" /etc/passwd | 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
запускаются скриптом samba.sh.
Если вы включили сервис разрешения имен winbind
в smb.conf, то увидите также
запуск даемона 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анонимныйЕсли вы захотите разрешить анонимный 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Как описано в ,
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/xferlogFTPанонимныйУчитывайте потенциальные проблемы, возникающие с
анонимным 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 nomodify notrapгде 192.168.1.0 является адресом
IP вашей сети, а 255.255.255.0 её
сетевой маской./etc/ntp.conf может содержать несколько
директив restrict. Для получения подробной
информации обратитесь к подразделу Access Control
Support (Поддержка Управления Доступом) в
&man.ntp.conf.5;.Запуск сервера NTPДля того, чтобы сервер NTP запускался при загрузке, добавьте строку
ntpd_enable="YES" в файл
/etc/rc.conf. Если вы хотите передать
дополнительные опции в &man.ntpd.8;, то отредактируйте параметр
ntpd_flags в файле
/etc/rc.conf.Для запуска сервера без перезагрузки вашей машины, выполните
команду ntpd, не забыв задать дополнительные
параметры из переменной ntpd_flags в файле
/etc/rc.conf. К примеру:&prompt.root; ntpd -p /var/run/ntpd.pidВо &os; 4.X
вам необходимо заменить каждую строчку
ntpd на xntpd.Использование 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.
diff --git a/ru_RU.KOI8-R/books/handbook/preface/preface.sgml b/ru_RU.KOI8-R/books/handbook/preface/preface.sgml
index 50c81b2a37..e7fa0cd9af 100644
--- a/ru_RU.KOI8-R/books/handbook/preface/preface.sgml
+++ b/ru_RU.KOI8-R/books/handbook/preface/preface.sgml
@@ -1,684 +1,684 @@
ПредисловиеЦелевая
аудиторияЛюди, которые используют FreeBSD с недавнего времени, найдут, что
первая часть этой книги проводит читателя через процесс установки FreeBSD и кратко
освещает идеи и традиции, на которых базируется &unix;. Работа с этой частью
требует несколько большего, чем просто желание исследовать –
необходима возможность принимать к сведению новые идеи.Вторая, много большая часть Руководства, является всеобъемлющим
справочником о всех темах, которые могут интересовать администраторов
FreeBSD. Некоторые из глав этой части могут рекомендовать вам
предварительное чтение других документов, о чём упоминается в
кратком обзоре в начале каждой главы.Список рекомендуемой дополнительной литературы вы можете найти в
.Изменения по
сравнению со второй редакциейТретья редакция является кульминацией более чем двух лет работы
отдельных членов проекта документации FreeBSD. Вот основные
изменения в новой редакции:, Настройка и оптимизация,
была расширена новой информацией о ACPI управлении питанием
и ресурсами, системной утилите cron и дополнительных
параметрах оптимизации ядра., Безопасность, была расширена
новой информацией о виртуальных частных сетях (VPN),
списках контроля доступа файловой системы (ACL), и сообщениях
безопасности., Принудительный контроль доступа (MAC),
новая глава этой редакции. Она описывает, что такое
MAC и как этот механизм может быть использован для защиты
системы FreeBSD., Устройства хранения, была расширена
новой информацией о устройствах хранения USB, образах файловой
системы, квотах файловой системы, файловых системах в файлах
и в сети, зашифрованных дисковых разделах., Менеджер дискового пространства
Vinum, новая глава этой редакции.
В ней описано как использовать Vinum, менеджер логических
томов, который предоставляет независимые от устройств логические
диски и программные уровни RAID-0, RAID-1 и RAID-5.К , PPP и SLIP, был добавлен
раздел о решении проблем., Электронная почта, была
расширена новой информацией об использовании альтернативных
транспортных агентов, SMTP аутентификации, UUCP, fetchmail,
procmail, и другими разделами повышенной сложности., Сетевые серверы,
появилась в этой редакции. Эта главы включает
информацию о установке Apache HTTP Server, FTPd,
и настройке Samba сервера для клиентов Microsoft Windows.
Некоторые разделы были перемещены сюда из , Сложные вопросы работы в
сети., Сложные вопросы
работы в сети, была расширена новой информацией об использовании
устройств Bluetooth в FreeBSD, настройке беспроводных сетей,
и сетях Asynchronous Transfer Mode (ATM).Был добавлен глоссарий, объединяющий информацию о
технических терминах, используемых в книге.Множество эстетических улучшений были внесены в
таблицы и иллюстрации этой книги.Изменения во второй
редакцииВторая редакция является кульминацией более чем двухлетней
работы членов Проекта документации FreeBSD. Нижеследующий список
перечисляет все значительные изменения, внесенные в эту
редакцию:Был добавлен полный указатель тем.Все ASCII-иллюстрации были заменены на графические.Был добавлен стандартный краткий обзор к каждому разделу для
того, чтобы читатель мог получить представление о содержании
раздела и о том, что необходимо знать для его изучения.Содержимое было логически реорганизовано на три части: В
Начале, Системное администрирование и
Приложения. (Установка
FreeBSD) была полностью переписана, добавлено большое
количество снимков экрана, чтобы облегчить понимание текста
для новых пользователей. (Основы &unix;) была
расширена и содержит дополнительную информацию о процессах, даемонах и
сигналах. (Установка
приложений: порты и пакеты) была расширена и содержит
дополнительную информации об управлении бинарными пакетами. (X Window System) была
полностью переписана и обращает больше внимания на современные
технологии для рабочего стола, такие, как
KDE и GNOME на
&xfree86; 4.X. (Процесс загрузки
FreeBSD) была расширена. (Устройства хранения)
была составлена из того, что раньше было двумя различными главами:
Диски и Резервное копирование. Мы
считаем, что данные темы будут проще и более полно описаны как одна
глава. Был добавлен раздел о программном и аппаратном RAID. (Последовательные
коммуникации) была полностью реорганизована и
обновлена для FreeBSD 4.X/5.X. (PPP и SLIP)
была существенно обновлена.Было добавлено множество новых разделов в (Сложные вопросы работы в
сети). (Электронная почта)
была расширена, теперь она включает больше информации о настройке
sendmail. (Работа с приложениями,
написанными для &linux;) была дополнена включением
информации об установке &oracle; и
&sap.r3;.Следующие новые темы были рассмотрены в этой, второй,
редакции:Настройка и оптимизация ().Мультимедиа ()Структура этой
книгиЭта книга разбита на пять частей. В первой части, В
начале, рассматривается установка и основные навыки
использования FreeBSD. Предполагается, что читатель освоит эти разделы
последовательно, возможно пропуская разделы, в которых обсуждаются уже
знакомые для него темы. Вторая часть, Общие
задачи, рассказывает о некоторых наиболее часто
используемых возможностях FreeBSD. Этот раздел и все последующие
могут быть прочитаны не по порядку. Каждая
глава начинается с краткого обзора, который описывает, о чём говорится в
ней и что читатель должен будет знать для прочтения этой главы. Это
сделано для того, чтобы случайно встретивший этот материал читатель мог найти разделы, которые
его интересуют. В третьей части, Системное
администрирование, рассмотрены вопросы администрирования.
В четвертой части, Сетевые коммуникации,
охвачены темы, связанные с серверами и сетью. Пятая часть содержит
приложения и справочную информацию., ВведениеЗнакомит пользователя с FreeBSD. Рассказывает об истории проекта
FreeBSD, его задачах и модели разработки., УстановкаПроводит пользователя через весь процесс установки.
Обсуждаются также некоторые
более сложные вопросы установки, такие как установка по
последовательной консоли., Основы &unix;Рассказывает об основных командах и функциональности операционной
системы FreeBSD. Если вы знакомы с &linux; или другой &unix;-подобной
операционной системой, возможно, вы пропустите эту
главу., Установка приложений: порты и пакетыРассказывает о процессе установки программного обеспечения
сторонних производителей с использованием Коллекции Портов
FreeBSD и стандартных бинарных пакетов., X Window SystemОписывает X Window System вообще и использование
X11 под управлением FreeBSD в
частности. Также описывает популярные окружения рабочего стола,
такие как KDE и
GNOME., Приложения для настольного
компьютераПеречисляет некоторые популярные приложения для рабочей станции,
такие как веб-браузеры и офисные пакеты и описывает процесс их
установки на FreeBSD., МультимедиаПоказывает, как настроить поддержку воспроизведения звука и
видео на вашей системе. Также описывает некоторые примеры приложений
для воспроизведения звука и видео., Настройка ядра
FreeBSDОбъясняет, почему вам может понадобиться перенастроить ядро и
детально описывает процесс настройки, сборки и установки нового
ядра., ПечатьРассказывает об управлении принтерами в FreeBSD, включая
информацию об титульных страницах, учёте использования принтеров и
первоначальной настройке., Двоичная совместимость
с &linux;Описывает возможности &linux;-совместимости в FreeBSD. Также
предоставляет детальные инструкции по установке многих популярных
приложений для &linux;, таких как: &oracle;,
&sap.r3; и
&mathematica;., Настройка и оптимизацияОписывает всевозможные параметры настройки FreeBSD, которые может
использовать системный администратор для оптимальной настройки
системы. Также описывает различные конфигурационные файлы,
используемые в FreeBSD и расположение этих файлов на диске., Процесс загрузки &os;Рассказывает о процессе загрузки FreeBSD и объясняет, как
управлять этим процессом при помощи различных
настроек., Пользователи и основы управления
учётными записямиРассказывает о создании и управлении пользовательскими учётными
записями. Также обсуждает установку ограничений ресурсов для
пользователей и другие задачи управления пользователями., БезопасностьОписывает множество различных утилит, которые помогут вам
поддерживать FreeBSD в безопасном, надёжном состоянии, включая
Kerberos, IPsec и OpenSSH., Принудительный контроль доступа (MAC)Описывает что такое принудительный контроль доступа
(Mandatory Access Control, MAC) и как этот механизм может
быть использован для защиты системы FreeBSD., Устройства храненияОписывает как управлять накопителями информации и файловыми
системами в FreeBSD, включая физические диски, массивы RAID,
оптические и ленточные носители, диски в оперативной памяти и сетевые
файловые системы., GEOMРассказывает о подсистеме GEOM в FreeBSD и описывает различные
поддерживаемые уровни RAID., Менеджер дискового
пространства VinumРассказывает как использовать Vinum, менеджер логических
разделов, при помощи которого можно создавать и использовать
независимые от устройств хранения логические диски и программно
реализовывать RAID-0, RAID-1 и RAID-5., Локализация — I18N/L10N
использование и настройкаОписывает использование FreeBSD с языками, отличными от
английского. Рассказывает о локализации на уровне системы и
отдельных приложений., На переднем крае разработокОбъясняет различия между FreeBSD-STABLE, FreeBSD-CURRENT и
FreeBSD-RELEASE. Рассказывает, кому из пользователей будет полезно
отслеживать версию системы в разработке и вкратце описывает этот
процесс., Последовательные соединенияОбъясняет, как подключать терминалы и модемы к вашей
системе FreeBSD, как в
серверном, так и в клиентском режиме., PPP и SLIPОписывает использование PPP, SLIP или PPP через Ethernet для
соединения с удалёнными системами при помощи FreeBSD., Электронная почтаОписывает использование различных компонентов почтового сервера и
более углублённо рассматривает простые вопросы конфигурации для
наиболее популярного программного обеспечения почтовых
серверов: sendmail., Сетевые серверыПредоставляет детальные инструкции и примеры файлов настройки
для использования компьютера с FreeBSD в качестве файлового
сервера (NFS), сервера доменных имен (DNS), сервера сетевой
информационной системы (⋼), или сервера точного
времени (ntpd)., БрандмауэрыОписывает принципы, на которых основаны программные
брандмауэры, и содержит детали конфигурирования различных
брандмауэров, доступных в FreeBSD., Сложные вопросы работы в сетиРассматривает множество вопросов работы с сетью, включая
совместный доступ компьютеров вашей локальной сети к интернет,
расширенные вопросы маршрутизации, беспроводные соединения,
bluetooth, ATM, IPv6 и многое другое., Получение FreeBSD Перечисляет различные источники, из которых можно получить
FreeBSD на CDROM или DVD, равно как и различные сайты в интернет, с
которых можно скачать и установить FreeBSD., Библиография Эта книга касается многих различных тем, которые могут
сподвигнуть вас на более детальное изучение. Библиография
перечисляет множество отличных книг, упоминаемых в
тексте., Ресурсы в интернетОписывает множество форумов, доступных для пользователей FreeBSD,
где можно задать вопросы и поучаствовать в технических
обсуждениях FreeBSD., Ключи PGPСодержит ключи PGP некоторых разработчиков FreeBSD.Договоренности, используемые в
этой книгеДля того чтобы обеспечить целостность и простоту чтения текста в
данной книге, мы применяем некоторые договорённости.Типографические
договорённостиНаклонный шрифтНаклонный шрифт используется для имен
файлов, адресов в интернет (URL), выделенного текста и первого
применения технических терминов.Моноширинный шрифтМоноширинных шрифт используется для сообщений
об ошибках, команд, имен пользователей, названий групп, названий
устройств, переменных и фрагментов кода.Полужирный шрифтПолужирный шрифт используется для
обозначения приложений, команд и параметров.Пользовательский вводКлавиши представляются в виде полужирного текста для
того, чтобы выделяться среди остального текста. Комбинации клавиш, которые
должны вводиться одновременно, разделяются символом `+',
например:CtrlAltDelЭто будет означать, что пользователь должен нажать клавиши
Ctrl, Alt и Del
одновременно.Комбинации клавиш, которые должны вводиться последовательно,
разделяются запятыми, например:CtrlX,
CtrlSЭто будет означать, что пользователь должен нажать
Ctrl и X одновременно, после чего
одновременно нажать Ctrl и S.ПримерыПримеры, которые начинаются с E:\>
обозначают команды &ms-dos;. Если не указано обратного, эти команды могут
вводиться из окна Сеанс &ms-dos; в современных системах
µsoft.windows;.E:\>tools\fdimage floppies\kern.flp A:Примеры, которые начинаются с &prompt.root; обозначают команды, которые
должны быть запущены с правами суперпользователя в FreeBSD. Вы можете
войти в систему как пользователь root для того, чтобы
ввести эти команды или войти в систему обычным пользователем и использовать
&man.su.1; для того, чтобы получить привилегии суперпользователя.&prompt.root; dd if=kern.flp of=/dev/fd0Примеры, начинающиеся с &prompt.user;, указывают, что команда должна
быть исполнена с правами обычного пользователя. Если не указано
обратного, используется синтаксис C-shell для установки переменных
окружения и других команд.&prompt.user; topБлагодарностиКнига, которую вы держите в руках являет собой результат труда многих
сотен людей по всему миру. Не имеет значения, присылали ли они исправления
опечаток или предоставляли целые главы, их труд был полезен.Несколько компаний поддерживали разработку этого документа, оплачивая
авторам их труд, оплачивая публикацию и т.д. В частности, BSDi (в
последствии приобретённая компанией Wind River Systems) оплачивала труд
по улучшению этой книги участникам Проекта Документации FreeBSD, что в
итоге сделало возможным выпуск первой печатной версии в марте 2000 года
(ISBN 1-57176-241-8). Впоследствии компания Wind River Systems оплатила
работу нескольких авторов по улучшению генерации книги в удобном для печати
виде и добавлению нескольких глав. Кульминация этой работы являла собой
публикацию второй печатной версии в ноябре 2001 года (ISBN
1-57176-303-1). В 2003-2004 годах FreeBSD Mall, Inc заплатила
нескольким контрибьюторам за улучшение Handbook при подготовке к третьей
редакции.
diff --git a/ru_RU.KOI8-R/books/handbook/security/chapter.sgml b/ru_RU.KOI8-R/books/handbook/security/chapter.sgml
index f02c217a2f..80ea4d0e81 100644
--- a/ru_RU.KOI8-R/books/handbook/security/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/security/chapter.sgml
@@ -1,5156 +1,5154 @@
MatthewDillonБольшая часть этой главы была взята из страницы справочника
security(7) которую написал ДенисПеплинПеревод на русский язык: БезопасностьбезопасностьКраткое описаниеЭта глава представляет введение в основные концепции безопасности
системы, некоторые эмпирические правила и более подробно обращается к
отдельным темам, касающимся &os;. Большая часть затрагиваемых тем может
быть применена к безопасности системы и безопасности в интернет вообще.
Интернет больше не то дружественное место, где каждый
хочет быть вам добрым соседом. Защита системы необходима для сохранения
ваших данных, интеллектуальной собственности, времени и всего остального
от хакеров и им подобных.&os; предоставляет массу утилит и механизмов для обеспечения
целостности и безопасности системы и сети.После прочтения этой главы вы узнаете:Основные концепции безопасности системы, специфику &os;.О различных механизмах шифрования в &os;, таких как
DES и MD5.Как настроить аутентификацию с использованием одноразовых
паролей.Как настроить TCP Wrappers для
использования с inetd.Как настроить KerberosIV в релизах
&os; до 5.0.Как настроить Kerberos5 в релизах &os;
после 5.0.Как настроить IPsec и создать VPN между
компьютерами на &os;/&windows;.Как настроить и использовать OpenSSH,
реализацию SSH в &os;.Что такое ACL и как их использовать.Как использовать утилиту Portaudit для
проверки пакетов сторонних разработчиков, установленных из Коллекции
Портов.Как работать с сообщениями безопасности &os;.Что такое Process Accounting и как активировать его во
&os;.Перед чтением этой главы вам потребуется:Понимание основных концепций &os; и интернет.В этой книге рассмотрены и другие вопросы безопасности.
Например, принудительный контроль доступа (Mandatory Access
Control) рассматривается в , а брандмауэры в .ВведениеБезопасность это первая и основная функция системного
администратора. Хотя все многопользовательские системы BSD &unix;
уже снабжены некоторой защитой, работа по созданию и поддержке
дополнительных механизмов безопасности, обеспечивающих защищенную работу
пользователей, это одна из самых серьезных задач системного
администратора. Компьютеры безопасны настолько, насколько вы сделаете
их безопасными и требования безопасности всегда находятся в противоречии
с удобством работы пользователей. Системы &unix; способны одновременно
работать с огромным количеством процессов и многие из этих процессов
серверные — это означает, что с ними могут взаимодействовать
внешние программы. Сегодня десктопы заменили мини-компьютеры и
мэйнфрэймы, и поскольку компьютеры в наши дни подключены к сети
интернет, безопасность важна как никогда.Наилучшая реализация системы безопасности представима в виде
послойной системы. Вообще говоря все, что нужно сделать,
это создать столько слоев безопасности, сколько необходимо и затем
внимательно следить за вторжениями в систему. Не переусердствуйте в
настройке системы безопасности, иначе она сделает невозможной
обнаружение вторжений, являющееся одним из наиболее важных аспектов
механизма безопасности. Например, нет большого смысла в установке
флага schg (&man.chflags.1;) на каждый исполняемый
файл системы, поскольку хотя таким способом можно временно защитить
исполняемые файлы, это помешает обнаружению факта взлома
системы.Безопасность системы также относится к различным формам атак,
имеющих своей целью вызвать крах системы, или сделать систему
недоступной другим способом, но не пытающихся получить доступ к учётной
записи root (break root).
Угрозы безопасности могут быть поделены на несколько категорий:Отказ в обслуживании (Denial of service, DoS).Взлом пользовательских учётных записей.Взлом учётной записи root через доступные сервисы.Взлом учётной записи root через учётные записи
пользователей.Создание backdoor.DoS атакиотказ в обслуживании (Denial of Service, DoS)безопасностьDoS атакиотказ в обслуживании (Denial of Service, DoS)Отказ в обслуживании (Denial of Service, DoS)Атака отказ в обслуживании отбирает у машины
необходимые ресурсы. Обычно DoS атаки используют грубую силу, чтобы
попытаться обрушить систему или сделать ее недоступной другим способом,
превысив лимиты ее сервисов или сетевого стека. Некоторые DoS атаки
пытаются использовать ошибки в сетевом стеке для обрушения системы одним
пакетом. Эту проблему можно решить только исправив ядро системы. Атаки
зачастую можно предотвратить правильной установкой параметров,
ограничивающих нагрузку на систему в неблагоприятных условиях. С
атаками, использующими грубую силу, бороться сложно. Например, атака с
использованием пакетов с поддельными адресами, которую почти невозможно
остановить, может быстро отключить вашу систему от интернет. Возможно,
она не приведет к отказу системы, но сможет переполнить соединение с
интернет.безопасностьвзлом учётных записейВзлом учётной записи пользователя обычно встречается чаще, чем DoS
атаки. Многие системные администраторы все еще используют стандартные
сервисы telnetd,
rlogind и ftpd на
своих серверах. Эти сервисы по умолчанию не работают с зашифрованными
соединениям. В результате при среднем количестве пользователей пароль
одного или нескольких пользователей, входящих в систему через внешнее
соединение (это обычный и наиболее удобный способ входа в систему),
будет перехвачен. Внимательный системный администратор должен
анализировать логи удаленного доступа на предмет подозрительных адресов
пользователей даже в случае успешного входа.Кто-то может предположить, что атакующий при наличии доступа к
учётной записи пользователя может взломать учётную запись
root. Однако, реальность такова, что в хорошо
защищенной и поддерживаемой системе доступ к учётной записи пользователя
не обязательно даст атакующему доступ к root.
Разница между доступом к обычной учётной записи и к
root важна, поскольку без доступа к
root атакующий обычно не способен скрыть свои
действия, и в худшем случае сможет лишь испортить файлы пользователя или
вызвать крах системы. Взлом пользовательских учётных записей
встречается очень часто, поскольку пользователи заботятся о безопасности
так, как системные администраторы.безопасностьbackdoorsСистемные администраторы должны помнить, что существует множество
потенциальных способов взлома учётной записи root.
Атакующий может узнать пароль root, найти ошибку в
сервисе, работающем с привилегиями и взломать учётную запись
root через сетевое соединение с этим сервисом, или
узнать об ошибке в suid-root программе, позволяющей атакующему взлом
root с помощью взломанной учётной записи
пользователя. Если атакующий нашел способ взлома
root, ему может не понадобиться установка backdoor.
Многие из обнаруженных и закрытых на сегодняшний день брешей
в системе, позволяющие взлом root, требуют от
атакующего серьезной работы по заметанию следов, поэтому большинство
атакующих устанавливают backdoor. Backdoor предоставляет атакующему
простой способ восстановления доступа к системе с привилегиями
root, но также дает системному администратору
удобный способ обнаружения вторжения. Устранение возможности установки
backdoor возможно повредит безопасности системы, поскольку это
не устранит брешь, позволившую проникнуть в
систему.Меры безопасности всегда должны реализовываться на нескольких
уровнях, которые могут быть классифицированы следующим образом:Защита root и служебных учётных
записей.Защита работающих под root
сервисов и suid/sgid исполняемых файлов.Защита учётных записей пользователей.Защита файла паролей.Защита ядра, raw устройств и файловых
систем.Быстрое обнаружение несанкционированных изменений в
системе.Паранойя.В следующем разделе этой главы эти темы изложены более
подробно.Защита &os;безопасностьзащита &os;Команда и протоколВ этом документе мы будет использовать
выделенный текст, упоминая приложение,
и моноширинный шрифт, упоминая определенные
команды. Для протоколов используется обычный шрифт. Это
типографическое отличие полезно для таких случаев, как ssh, поскольку
это и команда и протокол.В последующем разделе будут рассмотрены методы защиты системы
&os;, упомянутые в предыдущем разделе этой главы.Защита учётной записи root и служебных
учётных записейsuВо-первых, не беспокойтесь о защите служебных учётных записей,
если не защищена учётная запись root. В
большинстве систем у учётной записи root есть
пароль. Использование пароля root
опасно всегда. Это не означает, что вы должны
удалить пароль. Пароль почти всегда необходим для доступа
по консоли. Но это означает, что вы должны сделать невозможным
использование пароля не из консоли или может быть даже с помощью
команды &man.su.1;. Например, убедитесь, что псевдо-терминалы
в файле /etc/ttys перечислены с параметром
insecure, что делает невозможным вход на них
под root напрямую с помощью
telnet или rlogin. При
использовании других средств входа, таких как
sshd, убедитесь что вход под
root напрямую отключен и в них. Сделайте
это, открыв файл /etc/ssh/sshd_config, и
убедившись, что параметр PermitRootLogin
установлен в NO. Проверьте каждый метод доступа
— сервис FTP и ему подобные часто подвержены взлому. Прямой
вход под root должен быть разрешен только с
системной консоли.wheelКонечно, как системный администратор вы должны иметь доступ
root, поэтому потребуется открыть несколько
лазеек. Но убедитесь, что для доступа к ним необходим
дополнительный пароль. Одним из способов доступа к
root является добавление соответствующих учётных
записей к группе wheel (в файле
/etc/group). Это позволяет использовать
su для доступа к root.
Вы никогда не должны давать таким учётным записям доступ
к wheel непосредственно, помещая их в группу
wheel в файле паролей. Служебные учётные
записи должны помещаться в группу staff,
а затем добавляться к группе wheel в файле
/etc/group. Только те члены группы staff,
которым действительно нужен доступ к root,
должны быть помещены в группу wheel.
При работе с такими методами аутентификации как Kerberos, возможно также
использование файла .k5login в каталоге
пользователя root для доступа к учётной записи
root с помощью &man.ksu.1; без помещения
кого-либо в группу wheel. Это решение возможно
лучше, поскольку механизм wheel все еще
позволяет взлом root, если злоумышленник
получил копию файла паролей и смог взломать служебную учётную запись.
Хотя использование механизма wheel лучше,
чем работа через root напрямую, это не
обязательно самый безопасный способ.Непрямой способ защиты служебных учётных записей и конечно
root это использование альтернативных методов
доступа и замена зашифрованных паролей на символ
*. Используя команду
&man.vipw.8;, замените каждый зашифрованный пароль служебных учётных
записей на этот символ для запрета входа с аутентификацией по паролю.
Эта команда обновит файл /etc/master.passwd и
базу данных пользователей/паролей.Служебная учётная запись вроде этой:foobar:R9DT/Fa1/LV9U:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcshДолжна быть заменена на такую:foobar:*:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcshЭто изменение предотвратит обычный вход, поскольку зашифрованный
пароль никогда не совпадет с *.
После этого члены группы staff должны использовать другой механизм
аутентификации, например &man.kerberos.1; или &man.ssh.1; с парой
ключей: публичным и приватным. При использовании такой системы как
Kerberos, потребуется защитить сервер Kerberos и рабочую станцию.
При использовании пары публичного/приватного ключей с ssh,
потребуется защитить компьютер, с которого
происходит вход (обычно это рабочая станция). Дополнительных слой
защиты может быть добавлен путем защиты пары ключей при создании их
с помощью &man.ssh-keygen.1;. Возможность заменить пароли служебных
учётных записей на * гарантирует
также, что вход может быть осуществлен только через защищенные методы
доступа, которые вы настроили. Это принуждает всех членов staff
использовать защищенные, шифрованные соединения для всех входов,
что закрывает большую брешь, используемую многими нарушителями:
перехват паролей с другого, слабо защищенного компьютера.Более непрямой механизм безопасности предполагает, что вы входите
с более защищенного сервера на менее защищенный. Например, если
главный сервер работает со всеми сервисами, рабочая станция не должна
работать ни с одним. Для поднятия уровня безопасности до приемлемого
уровня, число запущенных на ней сервисов необходимо сократить до
минимума, вплоть до отключения их всех, кроме того необходимо
использовать защищенный паролем хранитель экрана. Конечно, при
наличии физического доступа к рабочей станции атакующий может взломать
любую систему безопасности. Это определенно проблема, которую вы
должны учитывать, но учтите также тот факт, что большинство взломов
совершаются удаленно, через сеть, людьми, которые не имеют физического
доступа к вашим рабочим станциям или серверам.KerberosIVИспользование такой системы как Kerberos дает возможность
заблокировать или изменить пароль в одном месте, что сразу
отразиться на всех компьютерах, где существует служебная учётная
запись. Если эта учётная запись будет взломана, возможность
немедленно изменить пароль на всех компьютерах нельзя недооценивать.
Без этой возможности изменение паролей на N машинах может стать
проблемой. Вы можете также наложить ограничения на смену паролей
с помощью Kerberos: не только установить значения timeout в
Kerberos, но и добавить требование смены пароля пользователем
после определенного периода времени (скажем, раз в месяц).Защита работающих под root сервисов и suid/sgid исполняемых
файловntalkcomsatfingersandboxessshdtelnetdrshdrlogindПредусмотрительный системный администратор запускает только те
сервисы, в которых нуждается, ни больше ни меньше. Учитывайте, что
сервисы сторонних разработчиков наиболее подвержены ошибкам. К примеру,
работа со старыми версиями imapd или
popper это все равно что раздача доступа
root всему миру. Никогда не запускайте
сервисы, которые вы не проверили достаточно внимательно. Многим
сервисам не требуется работа под root.
Например, даемоны ntalk,
comsat, и
finger могут быть запущены в так
называемых песочницах
(sandboxes). Песочница это не идеальное
решение, поскольку вызывает много проблем, но она подходит под
модель послойной безопасности: если кто-то сможет взломать сервис,
работающий в песочнице, ему потребуется взломать еще и саму
песочницу. Чем больше уровней (слоев) потребуется
пройти атакующему, тем меньше вероятность его успеха. Ошибки,
позволяющие получать root доступ, находили фактически во всех
сервисах, запускаемых под root, включая
основные системные сервисы. Если вы обслуживаете машину, на которую
входят только через sshd и никогда не
входят через telnetd,
rshd или
rlogind, отключите эти сервисы!В &os; сервисы
ntalkd,
comsat и
finger теперь по умолчанию работают в
песочнице. Другая программа, которая может быть
кандидатом на запуск в песочнице это
&man.named.8;. /etc/defaults/rc.conf включает
необходимые для запуска named
в песочнице аргументы в закомментированой форме.
В зависимости от того, устанавливаете ли вы новую систему, или
обновляете старую, учётные записи пользователей, используемые
этими песочницами могут не быть созданы.
Предусмотрительный системный администратор должен узнать о
песочницах для сервисов и установить их если есть
возможность.sendmailЕсть множество других сервисов, которые обычно не работают в
песочницах: sendmail,
popper,
imapd, ftpd,
и другие. Некоторым из этих сервисов есть альтернативы,
но их установка может потребовать больше работы, чем вы готовы
выполнить (фактор удобства). Вы можете запустить эти сервисы под
root и положиться на другие механизмы обнаружения
вторжений, которые могут пройти через них.Другая большая потенциальная root брешь
в системе это suid-root и sgid исполняемые файлы. Большинство
этих исполняемых файлов, таких как rlogin,
установлены в /bin, /sbin,
/usr/bin, или /usr/sbin.
Хотя ничто не может быть безопасно на 100%, находящиеся по умолчанию
в системе suid и sgid исполняемые файлы могут быть признаны
достаточно безопасными. Но root бреши все еще
обнаруживаются в этих исполняемых файлах. root
брешь, обнаруженная в Xlib в 1998 делала
xterm (который обычно suid) подверженным
взлому. Лучше сразу принять меры предосторожности, чем сожалеть
потом. Предусмотрительный системный администратор ограничит права
запуска suid исполняемых файлов, которые должны запускаться
пользователями группы staff, только этой группой, а также запретит
доступ (chmod 000) к тем исполняемым файлам
suid, которые никем не используются. Серверу без монитора обычно
не требуется исполняемый файл xterm.
Исполняемые sgid исполняемые файлы могут быть почти так же опасны.
Если нарушитель сможет взломать sgid-kmem исполняемый файл, он
возможно сможет прочесть /dev/kmem и
таким образом получить файл зашифрованных паролей, что потенциально
делает возможным взлом любой защищённой паролем учётной записи.
Аналогично нарушитель, проникший в группу kmem,
может отслеживать последовательности клавиш, отправляемые через
псевдо-терминалы, включая те, что используют защищённые соединения.
Нарушитель, вошедший в группу
tty может сделать вывод почти на любой
пользовательский терминал. Если пользователь работает с
терминальной программой или эмулятором с возможностью эмуляции
клавиатуры, взломщик может потенциально сгенерировать поток данных,
который заставит терминал пользователя ввести команду, и она будет
запущена с правами этого пользователя.Защита учётных записей пользователейУчетные записи пользователей обычно сложнее всего защитить.
Вы можете ввести драконовские ограничения доступа к служебным учётным
записям, заменив их пароли на символ
*, но возможно не сможете сделать
то же с обычными учётными записями пользователей. Если есть
такая возможность, вы возможно сможете защитить учётные записи
пользователей соответствующим образом. Если нет, просто
более бдительно отслеживайте эти учётные записи. Использование
ssh и Kerberos для учётных записей пользователей более
проблематично, поскольку требует дополнительной административной
работы и технической поддержки, но все же это решение лучше,
чем файл с шифрованными паролями.Защита файла паролейЕдинственный абсолютно надежный способ это замена на
* максимально возможного количества паролей и
использование ssh или Kerberos для доступа к таким учётным записям.
Хотя файл с шифрованными паролями (/etc/spwd.db)
доступен для чтения только root, возможно, что
нарушитель сможет получить доступ на чтение к этому файлу, даже если
не получит права root на запись.Ваши скрипты безопасности должны всегда проверять и составлять
отчет об изменениях файла паролей (обратитесь к разделу Проверка целостности файлов
ниже по тексту).Защита ядра, raw устройств и файловых
системЕсли атакующий взломает root, он сможет
сделать практически все, но есть способы усложнить его задачу.
Например, в большинстве современных ядер встроено устройство
перехвата пакетов. В &os; оно называется
bpf. Нарушитель обычно пытается запустить
перехват пакетов на взломанной машине. Вы не должны предоставлять
ему такой возможности, на большинстве систем устройство
bpf не должно быть встроено в ядро.sysctlНо даже если вы выключите устройство bpf,
все еще остаются проблемы, связанные с устройствами
/dev/mem и
/dev/kmem.
Нарушитель все еще может писать на дисковые raw устройства.
Есть также другая возможность ядра, загрузка модулей, &man.kldload.8;.
Активный нарушитель может использовать KLD модуль для установки
собственного устройства bpf или другого
перехватывающего устройства на работающее ядро. Для решения этих
проблем запускайте ядро с большим уровнем безопасности, как минимум 1.
Уровень безопасности может быть установлен с помощью
sysctl через переменную
kern.securelevel. После установки уровня
безопасности в 1 доступ на запись в raw устройства будет запрещена и
полностью заработают специальные флаги chflags,
такие как schg. Убедитесь также, что
флаг schg установлен на критически важных
загрузочных исполняемых файлах, каталогах и файлах скриптов —
на всем, что запускается до установке уровня безопасности.
Это требует большого объема работы, и обновление системы на более
высоком уровне безопасности может стать гораздо сложнее. Вы можете
пойти на компромисс и запускать систему на высоком уровне безопасности,
но не устанавливать флаг schg для каждого
существующего системного файла и каталога. Другая возможность
состоит в монтировании / и
/usr только для чтения. Необходимо заметить,
что такие правила слишком жесткие и могут помешать обнаружению
вторжения.Проверка целостности файлов: исполняемые, конфигурационные файлы
и т.д.Вы можете защищать только ядро, файлы настройки и управления
системой только до тех пор, пока эта защита не вступит в конфликт
с удобством работы в системе. Например, использование
chflags для установки бита
schg на большинство файлов в /
вероятно может только навредить, поскольку хотя и может защитить
файлы, препятствует обнаружению. Последний слой системы безопасности,
возможно, наиболее важный — обнаружение. Остальные меры
безопасности практически бесполезны (или, что еще хуже, могут дать
вам ложное ощущение безопасности) если вы не обнаружите потенциальное
вторжение. Половина функций системы безопасности направлена на
замедление атакующего, а не на его остановку, для того, чтобы дать
системе обнаружения возможность поймать нарушителя на месте
преступления.Лучший способ обнаружения вторжения — отслеживание
измененных, отсутствующих, или неожиданно появившихся файлов.
Для наблюдения за измененными файлами лучше всего использовать
другую (зачастую централизованную) систему с ограниченным
доступом. Добавление написанных вами скриптов к этой дополнительно
защищенной системе с ограниченным доступом делает ее практически
невидимой для потенциальных взломщиков, и это важно. В целях
достижения максимального эффекта вам может потребоваться предоставить
этой системе доступ к другим машинам в сети, обычно с помощью
NFS экспорта только для чтения или сгенерировав пары ключей ssh
для доступа к другим машинам по ssh. Помимо большого объема
сетевого трафика, NFS более скрытый метод — он позволяет
контролировать файловые системы на каждом клиентском компьютере
практически незаметно. Если ваш сервер с ограниченным доступом
подключен к клиентским компьютерам через коммутатор, NFS метод
это зачастую лучший выбор. При соединении через концентратор, или
через несколько маршрутизаторов, NFS метод может стать слишком
небезопасным и использование ssh может стать лучшим выбором даже
несмотря на то, что ssh оставляет следы своей работы.Как только у вас появился сервер с ограниченным доступом,
и как минимум доступ на чтение в клиентских системах, потребуется
написать скрипты для выполнения мониторинга. При наличии доступа
по NFS вы можете написать скрипты с помощью простых системных утилит,
таких как &man.find.1; и &man.md5.1;. Лучше всего подсчитывать
md5 файлов на клиентском компьютере как минимум один раз в день,
а файлы, контролирующие запуск из /etc и
/usr/local/etc даже более часто. При
обнаружении расхождений в md5, контролирующий компьютер должен
просигналить системному администратору проверить изменившиеся
файлы. Хороший скрипт безопасности проверит также наличие
несоответствующих исполняемых suid файлов и новых или измененных
файлов в системных разделах / и
/usr.При использовании ssh вместо NFS, написать скрипты безопасности
гораздо сложнее. Вам обязательно потребуется скопировать
(scp) скрипты на клиентский компьютер,
сделать из невидимыми, и для безопасности потребуется также
скопировать исполняемые файлы (такие как find), которые будут
использоваться скриптом. Приложение ssh
на клиентском компьютере может быть уже взломано. В конечном итоге,
без ssh не обойтись при работе через небезопасные соединения,
но его гораздо сложнее использовать.Хороший скрипт безопасности проверит также изменения в файлах
настройки, работающих при подключении пользователей и служебных учётных
записей:
.rhosts, .shosts,
.ssh/authorized_keys и так далее…
файлы, которые могли не попасть в область проверки
MD5.Если для пользователей выделен большой объем дискового
пространства, проверка каждого файла на таких разделах может занять
слишком много времени. В таком случае установка флагов монтирования
для запрета suid исполняемых файлов и устройств на таких разделах
это хорошая идея. Примените параметры &man.mount.8;
nodev и nosuid. Проверяйте
эти разделы в любом случае, хотя бы раз в неделю, поскольку
необходимо обнаруживать попытки взлома, независимо от того,
эффективны они или нет.Учет процессов (&man.accton.8;) это относительно несложная
возможность операционной системы, которая может помочь
как механизм обнаружения состоявшихся вторжений. Она особенно
полезна для обнаружения пути проникновения нарушителя в систему,
если файл не был затронут проникновением.Наконец, скрипты безопасности должны обработать лог файлы,
которые необходимо создавать настолько защищенным способом, насколько
это возможно — подключение syslog удаленно может быть очень
полезным. Злоумышленник попытается уничтожить следы взлома,
и лог файлы критически важны для системного администратора,
пытающегося отследить время и метод первого проникновения.
Один из надежных способов получения лог файлов является подключение
системной консоли к последовательному порту и постоянный
сбор информации через защищенную машину, отслеживающую
консоли.ПаранойяНемного паранойи никогда не повредит. Как правило, системный
администратор может добавлять элементы безопасности в любом
количестве, пока это не влияет на удобство, а также некоторое
количество элементов безопасности, влияющих
на удобство. Что даже более важно, системный администратор должен
немного изменить их — если вы используете рекомендации, например
те, что даны в этом документе, они становятся известны атакующему,
который также имеет доступ к этому документу.
prospective attacker who also has access to this document.Атаки DoSОтказ в обслуживании (DoS)Этот раздел охватывает DoS атаки. DoS атаки это обычно
пакетные атаки. Хотя против современной атаки с подделкой пакетов,
которая перегружает сеть, мало что можно сделать, вы можете
ограничить повреждения, убедившись, что атака не может
обрушить ваши сервера.Ограничение количества порождаемых процессов.Уменьшение последствий springboard атак (ICMP ответ,
широковещательный ping и т.д.).Кэш маршрутизации ядра.Обычная DoS атака против порождающего процессы сервера пытается
исчерпать ресурсы сервера по процессам, файловым дескрипторам и
памяти до тех пор, пока машина не повиснет. У
inetd (обратитесь к &man.inetd.8;)
есть несколько параметров, позволяющих ограничить такие атаки.
Необходимо учесть, что хотя можно предотвратить падение системы, в
общем случае невозможно предотвратить прекращение работы сервиса.
Внимательно прочтите страницу справочника и обратите особое внимание
на параметры , , и
. Учтите, что параметр не
работает в случае атак с использованием поддельных IP пакетов,
поэтому как правило необходимо использование комбинации параметров.
Некоторые standalone сервисы используют собственные параметры,
ограничивающие порождение процессов.У Sendmail есть собственный параметр
, которая работает гораздо лучше,
чем параметр sendmail, ограничивающий нагрузку. Вам необходимо задать
параметр запуска sendmailMaxDaemonChildren достаточно большим, чтобы
обслуживать ожидаемую нагрузку, но так, чтобы компьютер мог обслужить
такое количество приложений sendmail без
падения системы. Хорошей мерой является запуск sendmail в режиме
очереди () и запуск даемона
(sendmail -bd) отдельно от очереди
(sendmail -q15m). Если вы все же хотите
организовать доставку в режиме реального времени, запускайте
очередь с меньшим интервалом , но убедитесь
в правильной установке параметра sendmail
MaxDaemonChildren для предотвращения
ошибок.Syslogd может быть атакован
непосредственно, настоятельно рекомендуется использовать параметр
если это возможно и параметр
в остальных случаях.Вы также должны быть очень осторожны с сервисами, совершающими
обратное подключение, например, с TCP
Wrapper и его обратным identd-запросом, который может
быть атакован напрямую. По этой причине возможность TCP
Wrapper генерировать обратный ident обычно не следует
использовать.Правильным будет запрет доступа к внутренним сервисам из внешней
сети путем соответствующей настройки брандмауэра на внешнем
маршрутизаторе. Идея в том, чтобы предотвратить перегрузку сервисов
атаками из внешней сети, а кроме того защитить
root от взлома через сеть. Всегда настраивайте
исключающий брандмауэр, т.е. закрыть все
кроме портов A, B, C, D, и M-Z.
Этим способом вы можете закрыть все порты нижнего диапазона,
кроме явно указанных, таких как named
(если вы поддерживаете интернет-зону),
ntalkd,
sendmail, и других сервисов, доступных
из интернет. Если вы попробуете настроить брандмауэр другим
способом — включающий, или разрешающий брандмауэр, есть
большой шанс забыть закрыть пару сервисов, или
добавить новый внутрисетевой сервис и забыть обновить брандмауэр.
Вы можете открыть диапазон портов с большими номерами
для обычных приложений без угрозы портам нижнего диапазона.
Учтите также, что &os; позволяет вам контролировать диапазоны
портов, используемые для динамической привязки через различные
переменные sysctlnet.inet.ip.portrange (sysctl -a | fgrep
portrange), что позволяет упростить настройку
брандмауэра. Например, вы можете использовать обычный
диапазон портов со значениями от 4000 до 5000, и диапазон портов с
большими номерами от 49152 до 65535, а затем заблокировать все до
4000 порта (конечно оставив доступ из интернет к определенным
портам.Другой распространенный тип DoS атак называется springboard
— сервер атакуется таким образом, что генерируемые ответы
перегружают его, локальную сеть или какие-то другие компьютеры.
Наиболее распространенная атака этого вида это
широковещательная ICMP ping атака.
Атакующий подделывает пакеты ping, подставляя IP адрес машины, которую
он намеревается атаковать, и отправляет их на широковещательный
адрес вашей локальной сети. Если ваш внешний маршрутизатор не
настроен на отбрасывание пакетов ping на широковещательные адреса,
ваша сеть начинает генерировать соответствующие ответы на
поддельный адрес, что приводит к перегрузке хоста-жертвы, особенно
если атакующий использует этот же трюк с множеством
широковещательных адресов в множестве сетей одновременно.
Были зарегистрированы широковещательные атаки свыше ста двадцати
мегабит. Другая распространенная springboard атака направлена на
ICMP систему сообщения об ошибках. Конструируя пакеты, вызывающие
ICMP сообщения об ошибках, атакующий может нагрузить входящее
соединение сервера и вынудить сервер нагрузить исходящее соединение
ICMP ответами. Этот тип атаки может также обрушить сервер, когда
тот исчерпает mbuf, обычно если сервер не может ограничить число
ответов ICMP, когда они генерируются слишком быстро. В ядре
&os; 4.X есть опция сборки ,
которая ограничивает эффективность этого типа атак.
Более поздние ядра используют переменную
sysctlnet.inet.icmp.icmplim. Последний
основной класс springboard атак относится к определенным
внутренним сервисам inetd, таким как
сервис udp echo. Атакующий просто подделывает адрес источника
и адрес назначения UDP пакетов, устанавливая в их качестве
соответственно echo порт сервера A и B, оба этих сервера принадлежат
вашей локальной сети. Эти два сервера начинают перебрасываться
этим пакетом друг с другом. Атакующий может вызвать перегрузку
обеих серверов и их сетей, просто отправив несколько пакетов таким
способом. Аналогичные проблемы существуют с портом
chargen. Компетентный системный
администратор должен отключить эти тестовые сервисы inetd.Атаки с поддельными пакетами могут также использоваться для
переполнения кэша маршрутизации ядра. Обратитесь к параметрам
sysctlnet.inet.ip.rtexpire,
rtminexpire, и rtmaxcache.
Атака с поддельными пакетами, использующая произвольный IP адрес
источника, заставит ядро сгенерировать временный кэшированный
маршрут в таблице маршрутизации, который можно увидеть с помощью
netstat -rna | fgrep W3. Эти маршруты обычно
удаляются через 1600 секунд или около того. Если ядро определит,
что кэшированная маршрутная таблица стала слишком большой, оно
динамически уменьшит rtexpire, но никогда не
станет делать его меньше чем rtminexpire.
С этим связаны две проблемы:Ядро не отреагирует достаточно быстро, когда легко нагруженный
сервер будет внезапно атакован.Значение rtminexpire недостаточно мало
для поддержки работоспособности в условиях продолжительной
атаки.Если ваши серверы подключены к интернет через линию T3 или
более быструю, предусмотрительно будет изменить оба значения
rtexpire и rtminexpire
с помощью &man.sysctl.8;. Никогда не устанавливайте ни один из этих
параметров в нуль (если только вы не хотите обрушить систему).
Установка обеих параметров в значение 2 секунды должна предотвратить
таблицу маршрутизации от атак.Проблемы, связанные с доступом к Kerberos и SSHsshKerberosIVПри использовании Kerberos и ssh необходимо учесть несколько
возможных проблем. Kerberos V это отличный протокол
аутентификации, но в адаптированных к нему приложениях
telnet и
rlogin есть несколько ошибок, которые
могут сделать их непригодными к работе с бинарными потоками.
К тому же, по умолчанию Kerberos не шифрует сессию, если вы не
используете параметр .
ssh шифрует все по умолчанию.
ssh работает очень хорошо во всех ситуациях, но пересылает
ключи по умолчанию. Это означает, что если вы работаете с
защищенной рабочей станции, ключи на которой дают доступ к
остальной сети, и заходите по ssh на незащищенный компьютер,
эти ключи могут быть использованы для взлома. Атакующему
не удастся получить сами ключи, но поскольку ssh открывает порт
во время входа в систему, то если на незащищенной машине
взломан root, эти ключи могут быть использованы
для доступа к другим компьютерам, на которых они действуют.Мы рекомендуем использовать ssh в комбинации с Kerberos
для служебных учётных записей если это возможно.
ssh может быть собран с поддержкой
Kerberos. Это уменьшает зависимость от потенциально подверженных
взлому ssh ключей, и в то же время защищает пароли через
Kerberos. Ключи ssh должны использоваться только для работы
скриптов на защищенных компьютерах (там, где Kerberos использовать
не получится). Мы также рекомендуем или выключить передачу ключей
в настройках ssh, или использовать параметр
from=IP/DOMAIN, поддерживаемый ssh в файле
authorized_keys, который позволяет использовать
ключи только с определенных компьютеров.BillSwingleЧастично переписал и обновил DES, MD5, и шифрованиебезопасностьшифрованиешифрованиеDESMD5У каждого пользователя &unix; системы есть пароль, связанный с его
учётной записью. Очевидно, что эти пароли должны быть известны только
пользователю и соответствующей операционной системе. Для защиты паролей
они шифруются способом, известным как односторонний хэш,
то есть их можно легко зашифровать, но нельзя расшифровать. Другими
словами, то, что мы сказали чуть раньше было очевидно, но не совсем
верно: операционной системе сам пароль
неизвестен. Ей известен только пароль в
зашифрованной форме. Единственный способ получить
обычный пароль это простой перебор всех возможных
паролей.К сожалению, единственный способ шифрования пароля при появлении
&unix; был основан на DES, Data Encryption Standard. Это не было
проблемой для пользователей, живущих в США, но поскольку исходный код
DES нельзя было экспортировать из США, &os; нашла способ одновременно
не нарушать законов США и сохранить совместимость со всеми другими
вариантами &unix;, где все еще использовался DES.Решение было в разделении библиотек шифрования, чтобы пользователи
в США могли устанавливать и использовать библиотеки DES, а у остальных
пользователей был метод шифрования, разрешенный к экспорту. Так
&os; пришла к использованию MD5 в качестве метода шифрования по
умолчанию. MD5 считается более безопасным, чем DES, поэтому установка
DES рекомендуется в основном из соображений совместимости.Определения механизма шифрованияДо &os; 4.4 libcrypt.a была
символической ссылкой на библиотеку, используемую для шифрования.
В &os; 4.4 libcrypt.a была изменена
для предоставления настраиваемой библиотеки аутентификации по хэшу
пароля. На данный момент библиотека поддерживает хэши DES, MD5 и
Blowfish. По умолчанию &os; использует для шифрования паролей
MD5.Довольно легко определить какой метод шифрования используется
в &os;. Один из способов это проверка файла
/etc/master.passwd. Пароли, зашифрованные в
хэш MD5 длиннее, чем те, что зашифрованы с помощью DES и начинаются
с символов $1$. Пароли, начинающиеся
с символов $2a$ зашифрованы с помощью
Blowfish. Пароли, зашифрованные DES не содержат каких-то определенных
идентифицирующих символов, но они короче, чем пароли MD5 и
закодированы в 64-символьном алфавите, не содержащем символа
$, поэтому относительно короткая строка,
не начинающаяся с этого символа это скорее всего DES пароль.Формат паролей, используемых для новых паролей, определяется
параметром passwd_format в
/etc/login.conf, которое может принимать значения
des, md5 или
blf. Обратитесь к странице справочника
&man.login.conf.5; за дополнительной информацией о параметрах
login.Одноразовые паролиодноразовые паролибезопасностьодноразовые паролиS/Key это схема с одноразовыми паролями, основанная на одностороннем
хэше. &os; использует хэш MD4 для совместимости, но другие системы
используют MD5 и DES-MAC. S/Key была частью базовой системы &os;
начиная с версии 1.1.5 и используется также во все большем числе
операционных систем. S/Key это зарегистрированная торговая марка
Bell Communications Research, Inc.Начиная с &os; версии 5.0, S/Key была замещена на функциональный
эквивалент — OPIE (One-time Passwords In Everything).
OPIE по умолчанию использует MD5.Есть три различных вида паролей, о которых мы поговорим ниже.
Первый вид это ваш обычный пароль &unix; или пароль Kerberos; мы
будем называть его пароль &unix;. Второй вид это
одноразовый пароль, сгенерированный программой S/Key
key или программой OPIE &man.opiekey.1; и принимаемый
командами keyinit или &man.opiepasswd.1;
и в приглашении login; мы будем называть их одноразовыми
паролями. Последний вид паролей это защищенные пароли, которые
вы передаете программам
key/opiekey (и иногда
программам keyinit/opiepasswd),
и которые эти программы используют для создания одноразовых паролей;
мы будем называть его защищенными паролями или просто
паролями.Защищенный пароль не имеет никакого отношения к вашему паролю
&unix;; они могут быть одинаковыми, но это не рекомендуется.
Защищенные пароли S/Key и OPIE не ограничены 8-ю символами, как
старые &unix; паролиВ &os; стандартный пароль
может быть до 128 символов длиной.,
они могут быть настолько длинными, насколько вы захотите. Очень часто
используются пароли длиной в шесть или семь символов. По большей части
система S/Key или OPIE работает полностью независимо от системы
паролей &unix;.Помимо паролей, есть два других вида данных, важных для S/Key и
OPIE. Первый, известный как seed или
ключ, состоит из двух букв и пяти цифр. Другой,
называемый счетчиком цикла, это номер от 1 до 100.
S/Key создает одноразовый пароль, соединяя ключ и защищенный пароль,
а затем применяя MD4/MD5 столько раз, сколько указано счетчиком цикла и
выдает результат в виде шести коротких слов на английском. Эти шесть
слов на английском и есть ваш одноразовый пароль. Система
аутентификации (как правило PAM) хранит последний использованный
одноразовый пароль, и пользователь аутентифицируется если хэш вводимого
пользователем пароля совпадает с предыдущим паролем. Поскольку
используется односторонний хэш, невозможно сгенерировать следующий
одноразовый пароль если получен предыдущий; счетчик цикла уменьшается
после каждого успешного входа для поддержки синхронизации пользователя
с программой login. Когда счетчик цикла уменьшается до 1, S/Key и OPIE
должны быть переинициализированы.В каждой из обсуждаемых ниже систем задействованы три программы.
Программы key и opiekey
получают счетчик цикла, ключ и защищенный пароль и создают одноразовый
пароль или последовательный список одноразовых паролей. Программы
keyinit и opiepasswd
используются для инициализации S/Key и OPIE соответственно,
и для смены паролей, счетчиков цикла, или ключей; они принимают
защищенный пароль или счетчик цикла, ключ и одноразовый пароль.
Программы keyinfo и opieinfo
проверяют соответствующие файлы (/etc/skeykeys
или /etc/opiekeys) и печатают текущий счетчик
цикла и ключ вызывающего пользователя.Мы рассмотрим четыре вида операций. Первая это использование
keyinit или opiepasswd через
защищенное соединение для первоначальной настройки системы одноразовых
паролей, или для изменения пароля или ключа. Вторая операция это
использование в тех же целях keyinit или
opiepasswd через незащищенное соединение, в сочетании
с key или opiekey через защищенное
соединение. Третья это использование
key/opiekey для входа через
незащищенное соединение. Четвертая это использование
key или opiekey для генерации
набора ключей, которые могут быть записаны или распечатаны для
соединения из места, где защищенное соединение недоступно.Защищенная установка соединенияДля первоначальной настройки S/Key, измените ваш пароль или
ключ при входе через защищенное соединение (например, с консоли
компьютера или через ssh), используйте
команду keyinit без параметров при входе под
своим именем:&prompt.user; keyinit
Adding unfurl:
Reminder - Only use this method if you are directly connected.
If you are using telnet or rlogin exit with no password and use keyinit -s.
Enter secret password:
Again secret password:
ID unfurl s/key is 99 to17757
DEFY CLUB PRO NASH LACE SOFTДля OPIE, вместо этого используется
opiepasswd:&prompt.user; opiepasswd -c
[grimreaper] ~ $ opiepasswd -f -c
Adding unfurl:
Only use this method from the console; NEVER from remote. If you are using
telnet, xterm, or a dial-in, type ^C now or exit with no password.
Then run opiepasswd without the -c parameter.
Using MD5 to compute responses.
Enter new secret pass phrase:
Again new secret pass phrase:
ID unfurl OTP key is 499 to4268
MOS MALL GOAT ARM AVID COED
В приглашениях Enter new secret pass phrase: или
Enter secret password:, введите пароль или фразу.
Запомните, это не тот пароль, с которым вы будете входить, он
используется для генерации одноразовых паролей. Строка
ID содержит информацию для вашего конкретного случая:
имя пользователя, счетчик цикла и ключ. При входе система запомнит
эти параметры и отправит их вам, поэтому их не надо запоминать. В
последней строке находится одноразовый пароль, соответствующий
этим параметрам и секретному паролю; если вы войдете в систему сразу,
используйте этот одноразовый пароль.Незащищенная установка соединенияДля инициализации или изменения защищенного пароля через
незащищенное соединение, вам потребуется существующее защищенное
соединение куда-то, где вы сможете запустить key
или opiekey; это может быть средство доступа
&macintosh; или shell на компьютере, которому вы доверяете.
Вам потребуется также установить значение счетчика цикла (100
возможно подойдет), и задать ключ или использовать сгенерированный.
Через незащищенное соединение (к компьютеру, на котором производится
настройка), используйте команду keyinit -s:&prompt.user; keyinit -s
Updating unfurl:
Old key: to17758
Reminder you need the 6 English words from the key command.
Enter sequence count from 1 to 9999: 100
Enter new key [default to17759]:
s/key 100 to 17759
s/key access password:
s/key access password:CURE MIKE BANE HIM RACY GOREДля OPIE, используйте opiepasswd:&prompt.user; opiepasswd
Updating unfurl:
You need the response from an OTP generator.
Old secret pass phrase:
otp-md5 498 to4268 ext
Response: GAME GAG WELT OUT DOWN CHAT
New secret pass phrase:
otp-md5 499 to4269
Response: LINE PAP MILK NELL BUOY TROY
ID mark OTP key is 499 gr4269
LINE PAP MILK NELL BUOY TROY
Чтобы принять ключ по умолчанию нажмите Enter.
Затем, перед вводом пароля доступа введите те же параметры в
вашем защищенном соединении или средстве доступа S/Key:&prompt.user; key 100 to17759
Reminder - Do not use this program while logged in via telnet or rlogin.
Enter secret password: <secret password>
CURE MIKE BANE HIM RACY GOREИли для OPIE:&prompt.user; opiekey 498 to4268
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:
GAME GAG WELT OUT DOWN CHAT
Теперь переключитесь на незащищенное соединение и скопируйте
одноразовый пароль, сгенерированный соответствующей программой.Создание одного одноразового пароляКак только вы настроите S/Key или OPIE, во время входа появится
приглашение вроде этого:&prompt.user; telnet example.com
Trying 10.0.0.1...
Connected to example.com
Escape character is '^]'.
FreeBSD/i386 (example.com) (ttypa)
login: <username>
s/key 97 fw13894
Password: Или для OPIE:&prompt.user; telnet example.com
Trying 10.0.0.1...
Connected to example.com
Escape character is '^]'.
FreeBSD/i386 (example.com) (ttypa)
login: <username>
otp-md5 498 gr4269 ext
Password: Кроме того, у S/Key и OPIE есть полезная особенность (не
показанная здесь): если вы нажмете Enter
в приглашении на ввод пароля, включится эхо, и вы сможете увидеть
то, что вводите. Это может быть очень полезно, если вы пытаетесь
ввести пароль вручную, например с распечатки.MS-DOSWindowsMacOSВ этот момент вам потребуется сгенерировать одноразовый пароль,
чтобы ввести его в приглашение. Это должно быть выполнено на
защищенной системе, в которой вы можете запустить
key или opiekey (есть версии
для DOS, &windows; и &macos;). Им требуются значения счетчика цикла
и ключ в качестве параметров командной строки. Вы можете скопировать
и вставить их прямо из приглашения login компьютера, на который
входите.В защищенной системе:&prompt.user; key 97 fw13894
Reminder - Do not use this program while logged in via telnet or rlogin.
Enter secret password:
WELD LIP ACTS ENDS ME HAAGДля OPIE:&prompt.user; opiekey 498 to4268
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:
GAME GAG WELT OUT DOWN CHATТеперь, когда у вас есть одноразовый пароль, можете продолжить
вход в систему:login: <username>
s/key 97 fw13894
Password: <return to enable echo>
s/key 97 fw13894
Password [echo on]: WELD LIP ACTS ENDS ME HAAG
Last login: Tue Mar 21 11:56:41 from 10.0.0.2 ... Создание нескольких одноразовых паролейИногда вы отправляетесь туда, где нет доступа к защищенному
компьютеру или защищенному соединению. В этом случае, можно
использовать команды key и
opiekey для создания нескольких одноразовых
паролей, которые вы сможете распечатать и забрать с собой.
Например:&prompt.user; key -n 5 30 zz99999
Reminder - Do not use this program while logged in via telnet or rlogin.
Enter secret password: <secret password>
26: SODA RUDE LEA LIND BUDD SILT
27: JILT SPY DUTY GLOW COWL ROT
28: THEM OW COLA RUNT BONG SCOT
29: COT MASH BARR BRIM NAN FLAG
30: CAN KNEE CAST NAME FOLK BILKИли для OPIE:&prompt.user; opiekey -n 5 30 zz99999
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase: <secret password>
26: JOAN BORE FOSS DES NAY QUIT
27: LATE BIAS SLAY FOLK MUCH TRIG
28: SALT TIN ANTI LOON NEAL USE
29: RIO ODIN GO BYE FURY TIC
30: GREW JIVE SAN GIRD BOIL PHIПараметр запрашивает пять паролей,
указывает значение последнего счетчика цикла.
Обратите внимание, что пароли печатаются в
обратном по сравнению с обычным использованием
порядке. Если вы действительно параноик, перепишите результат
вручную; иначе скопируйте и передайте его lpr.
Обратите внимание, что каждая линия содержит как счетчик цикла, так
и одноразовый пароль; вам может показаться удобным отрывать пароль
после использования.Ограничение использования &unix; паролейS/Key может наложить ограничения на использование &unix; паролей
на основе имени хоста, имени пользователя, порта терминала или IP
адреса сессии. Эти ограничения можно найти в файле настройки
/etc/skey.access. Страница справочника
&man.skey.access.5; содержит дополнительную информацию о полном
формате файла а также детали о некоторых предосторожностях, которые
должны быть предприняты перед тем, как положиться в вопросах
безопасности на этот файл.Если файла /etc/skey.access нет (это
ситуация по умолчанию в системах &os; 4.X), всем пользователям
будет разрешено входить с паролями &unix;. Если файл существует,
использование S/Key станет обязательно для всех, если только
параметры настройки в файле skey.access не
указывают иначе. В любом случае, пароли &unix; разрешены при входе
с консоли.Вот пример файла настройки skey.access,
иллюстрирующий три наиболее распространенных вида параметров
настройки:permit internet 192.168.0.0 255.255.0.0
permit user fnord
permit port ttyd0Первая строка (permit internet) разрешает
пользователям, чей IP адрес (который подвержен подделке)
соответствует заданному значению и маске, входить с использованием
паролей &unix;. Это должно рассматриваться не как механизм
безопасности, а как напоминание пользователям, что они работают через
небезопасное соединение и должны использовать для аутентификации
S/Key.Вторая строка (permit user) позволяет
определенным пользователям, в данном случае
fnord, всегда использовать пароли &unix;.
Вообще говоря, это должно использоваться только для тех, кто
не может использовать программу key, например
если они работают с простых терминалов или необучаемы.Третья строка (permit port) позволяет всем
пользователям, вошедшим с определенного терминала использовать
пароли &unix;; этот параметр должен использоваться для подключений
по dial-up.OPIE может ограничивать использование паролей &unix; на основе IP
адреса как и S/Key. Соответствующий файл называется
/etc/opieaccess, он существует по умолчанию в
&os; 5.0 и более современных системах. Обратитесь к
&man.opieaccess.5; за более подробной информацией об этом файле и о
предосторожностях, которые вы должны предпринять при использовании
этого файла.Вот пример файла opieaccess:permit 192.168.0.0 255.255.0.0Эта строка позволяет пользователям, чей IP адрес (который
подвержен подделке) соответствует указанному значению и маске,
входить с паролем &unix;.Если ни одно из правил в opieaccess не
сработало, поведением по умолчанию является запрет всех не-OPIE
входов.TomRhodesНаписал: TCP WrappersTCP WrappersКаждый, кто знаком с &man.inetd.8;, возможно когда-то слышал
о TCP Wrappers. Но немногие полностью
понимают их полезность в сетевой среде: большинство
используют брандмауэр. Хотя его применимость очень широка,
есть вещи, с которыми брандмауэр не может работать, такие
как отправка текста обратно вызывающей стороне. Программное
обеспечение уровня TCP может делать это
и многое другое. В следующих нескольких разделах обсуждаются
многие возможности TCP Wrappers, и, когда
это необходимо, даются примеры настроек.Программное обеспечение TCP Wrappers
расширяет возможность inetd по поддержке
каждого даемона. С ним становится возможным протоколирование,
возврат сообщений вызывающей стороне, ограничение подключений
внутренней сетью и т.п. Хотя некоторые из этих возможностей
могут быть реализованы брандмауэром, TCP
Wrappers не только предоставляют дополнительный уровень защиты,
но и дают больше контроля над системой, чем это возможно
с брандмауэром.Расширенная функциональность обработчиков TCP
не может заменить хороший сетевой экран. Тем не менее, обработчики
TCP могут использоваться совместно с сетевым экраном
и другими средствами обеспечения информационной безопасности, обеспечивая
тем самым дополнительный уровень защиты системы.Поскольку рассматривается расширение к настройкам
inetd, предполагается, что читатель ознакомился
с разделом о настройке
inetd.Хотя программы, запускаемые из &man.inetd.8;, на самом деле не
соответствуют термину даемоны, существует традиция
называть их именно так. Этот термин и используется в данном
разделе.Начальная настройкаЕдинственное требование для использования TCP
Wrappers в &os; это наличие в rc.conf
параметров запуска inetd ;
это настройки по умолчанию. Конечно, ожидается также наличие
правильной настройки /etc/hosts.allow,
но &man.syslogd.8; отправит сообщения в системный протокол если
что-то не так.В отличие от других реализаций TCP
Wrappers, использование hosts.deny не
поддерживается. Все параметры настройки должны быть помещены
в /etc/hosts.allow.В простейшей конфигурации, политика подключения сводится к
разрешению или блокированию в зависимости от параметров в
/etc/hosts.allow. Настройка в &os;
по умолчанию заключается в разрешении подключения к любому
даемону, запущенному из inetd. Изменение
этого поведения будет обсуждаться только после рассмотрения
базовой настройки.Базовая настройка обычно принимает форму
daemon : address : action, где
daemon это имя даемона, который запускается
inetd. В поле address
может находиться имя хоста, IP адрес, или
IPv6 адрес, заключенный в квадратные скобки ([ ]).
Поле action может принимать значения allow или deny,
чтобы соответственно разрешать или запрещать доступ.
Помните, что поиск правил производится до первого совпадения.
При обнаружении совпадения применяется соответствующее правило
и поиск прерывается.Существуют и другие параметры, но они будут описаны в следующих
разделах. Простая конфигурация может быть, например, такой:
для разрешения соединений по протоколу POP3
к даемону mail/qpopper,
в hosts.allow необходимо добавить следующие
строки:# This line is required for POP3 connections:
qpopper : ALL : allowПосле добавления этой строки, inetd
необходимо перезапустить. Это можно выполнить командой
&man.kill.1; или скриптом /etc/rc.d/inetd
с параметром restart.Расширенная конфигурацияУ TCP Wrappers имеются дополнительные
параметры; они дают дополнительные возможности контроля над
соединениями. Иногда бывает полезно возвращать комментарий
определенным хостам или при подключении к определенным
даемонам. В других случаях может быть необходимо добавить
запись в лог файл, или отправить письмо администратору.
В определенных ситуациях сервис должен использоваться
только для локальных соединений. Все это возможно с
использованием параметров c шаблонами, символами подстановки
и путем выполнения внешних команд. Следующие два раздела
посвящены этим типам настроек.Внешние командыПредположим ситуацию, в которой соединение должно
быть запрещено, а о причине необходимо сообщить вызывающей
стороне. Как это можно сделать? Соответствующую
возможность предоставляет параметр .
При попытке подключения выполняется команда или скрипт,
заданный этим параметром. Пример дан в файле
hosts.allow:# The rest of the daemons are protected.
ALL : ALL \
: severity auth.info \
: twist /bin/echo "You are not welcome to use %d from %h."В этом примере сообщение,
You are not allowed to use daemon
from hostname. будет возвращено
от всех даемонов, которые не были предварительно настроены
в файле доступа. Обратите внимание, что возвращаемое
сообщение должно быть заключено в
кавычки; из этого правила нет исключений.Возможна реализация DoS атаки, когда группа
атакующих производит множество запросов на подключение.Возможно также использование параметра .
Как и параметр , параметр
подразумевает запрет соединения
и может использоваться для запуска команд или скриптов.
В отличие от , не
отправляет ответ вызывающей стороне. Например, следующая
конфигурация:# We do not allow connections from example.com:
ALL : .example.com \
: spawn (/bin/echo %a from %h attempted to access %d >> \
/var/log/connections.log) \
: denyотклонит все попытки соединения из домена
*.example.com; имя хоста,
IP адрес и даемон протоколируются в файл
/var/log/connections.log.Помимо приведенных выше символов подстановки, например
%a, существует еще несколько символов. Обратитесь к странице
&man.hosts.access.5; справочной системы за полным списком.Параметры – шаблоныДо этого момента в примерах использовался шаблон
ALL. Существуют и другие параметры,
функциональность которых в дальнейшем может быть расширена.
ALL соответствует любому даемону,
домену или IP адресу. Другой доступный
шаблон это PARANOID, который соответствует
хосту, IP адрес которого может быть
подделан. Другими словами, paranoid
может быть использован для определения действия с хостами,
IP адрес которых не соответствует имени
хоста. Вот пример применения этого параметра:# Block possibly spoofed requests to sendmail:
sendmail : PARANOID : denyВ этом примере все запросы на подключения к
sendmail от хостов, IP
адрес которых не соответствует имени хоста, будут
отклонены.Использование PARANOID невозможно,
если у клиента или сервера неправильно настроен
DNS. В таких случаях необходимо
вмешательство администратора.Более подробная информация о шаблонах и их возможностях
дана на странице &man.hosts.access.5; справочной
системы.Для того, чтобы любая выбранная конфигурация заработала,
в hosts.allow необходимо закомментировать
первую строку настройки. В начале раздела об этом не
упоминалось.MarkMurrayПредоставил MarkDapozОригинальный текст предоставил KerberosIVKerberos это сетевая дополнительная система/протокол, которая
делает возможной аутентификацию пользователей через сервисы на защищенном
сервере. Такие сервисы, как удаленный вход, удаленное копирование,
защищенное копирование файлов между системами и другие задачи с
высоким риском становятся допустимо безопасными и более
контролируемыми.Последующие инструкции могут использоваться в качестве руководства
по настройке поставляемого с &os; Kerberos. Тем не менее, вам
могут потребоваться страницы справочника полного дистрибутива.Установка KerberosIVMITKerberosIVустановкаKerberos это опциональный компонент &os;. Простейший способ
установки этой программы это выбор krb4 или
krb5 из sysinstall
во время первой установки &os;. Будет установлен
eBones (KerberosIV) или Heimdal
(Kerberos5) вариант Kerberos. Включение этих реализаций объясняется
тем, что они разработаны вне США/Канады и доступны вне этих стран,
поскольку на них не влияют ограничения на экспорт криптографического
кода из США.Кроме того, реализация MIT Kerberos доступна из Коллекции Портов
в виде пакета
security/krb5.Создание базы данныхЭто необходимо сделать только на сервере Kerberos. Во-первых,
убедитесь что не осталось старой базы данных Kerberos. Войдите
в каталог /etc/kerberosIV и убедитесь, что в нем
находятся только эти файлы:&prompt.root; cd /etc/kerberosIV
&prompt.root; ls
README krb.conf krb.realmsЕсли присутствуют еще какие-то файлы (такие как
principal.* или master_key),
используйте команду kdb_destroy для удаления старой
базы данных Kerberos, или, если Kerberos не запущен, просто удалите
эти файлы.Затем отредактируйте файлы krb.conf и
krb.realms, введя ваши данные. В этом примере
уникальный идентификатор EXAMPLE.COM, сервер
grunt.example.com. Отредактируем или
создадим файл krb.conf:&prompt.root; cat krb.conf
EXAMPLE.COM
EXAMPLE.COM grunt.example.com admin server
CS.BERKELEY.EDU okeeffe.berkeley.edu
ATHENA.MIT.EDU kerberos.mit.edu
ATHENA.MIT.EDU kerberos-1.mit.edu
ATHENA.MIT.EDU kerberos-2.mit.edu
ATHENA.MIT.EDU kerberos-3.mit.edu
LCS.MIT.EDU kerberos.lcs.mit.edu
TELECOM.MIT.EDU bitsy.mit.edu
ARC.NASA.GOV trident.arc.nasa.govВ этом примере другие идентификаторы введены для иллюстрации
настройки c несколькими хостами. С целью упрощения
настройки вы можете не включать их.Первая строка содержит идентификатор, под которым работает эта
система. Остальные строки связывают идентификаторы с именами хостов.
Сначала указывается идентификатор, затем хост под этим
идентификатором, работающий как центр распространения
ключей. Слова admin server с последующим
именем хоста означают, что этот хост также является сервером
администрирования базы данных. За дальнейшей информацией об этих
терминах обратитесь к страницам справочника по Kerberos.Мы добавили grunt.example.com
к идентификатору EXAMPLE.COM и кроме того
сопоставили всем хостам в домене
.example.com идентификатор
EXAMPLE.COM. Файл
krb.realms будет выглядеть так:&prompt.root; cat krb.realms
grunt.example.com EXAMPLE.COM
.example.com EXAMPLE.COM
.berkeley.edu CS.BERKELEY.EDU
.MIT.EDU ATHENA.MIT.EDU
.mit.edu ATHENA.MIT.EDUКак и в предыдущем примере, другие идентификаторы добавлены только
для примера. С целью упрощения настройки вы можете не включать
их.В первой строке определенная система
сопоставляется с идентификатором. В остальных строках показано,
сопоставить идентификатору остальные системы определенного
поддомена.Теперь мы готовы к созданию базы данных. Потребуется всего лишь
запустить сервер Kerberos (или центр распространения ключей).
Используйте для этого kdb_init:&prompt.root; kdb_initRealm name [default ATHENA.MIT.EDU ]:EXAMPLE.COM
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Введите главный ключ Kerberos:Теперь мы должны сохранить ключ, чтобы сервера на локальных
компьютерах могли его взять. Используйте для этого команду
kstash:&prompt.root; kstashEnter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!Этой командой зашифрованный главный пароль сохранен в
/etc/kerberosIV/master_key.Запуск KerberosKerberosIVпервый запускДля каждой системы, защищаемой Kerberos, в базу данных должны
быть добавлены две записи. Это kpasswd и
rcmd. Они добавляются вместе с именем
системы.Эти даемоны, kpasswd и
rcmd позволяют другим системам изменять
пароли Kerberos и запускать такие команды как &man.rcp.1;,
&man.rlogin.1;, &man.rsh.1;.Теперь добавим эти записи:&prompt.root; kdb_edit
Opening database...
Enter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.
Principal name:passwdInstance:grunt
<Not found>, Create [y] ?y
Principal: passwd, Instance: grunt, kdc_key_ver: 1
New Password: <---- enter RANDOM here
Verifying password
New Password: <---- enter RANDOM here
Random password [y] ?y
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?Max ticket lifetime (*5 minutes) [ 255 ] ?Attributes [ 0 ] ?
Edit O.K.
Principal name:rcmdInstance:grunt
<Not found>, Create [y] ?
Principal: rcmd, Instance: grunt, kdc_key_ver: 1
New Password: <---- enter RANDOM here
Verifying password
New Password: <---- enter RANDOM here
Random password [y] ?
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?Max ticket lifetime (*5 minutes) [ 255 ] ?Attributes [ 0 ] ?
Edit O.K.
Principal name: <---- null entry here will cause an exitСоздание файла настройки сервераТеперь необходимо создать все записи сервисов, которые были
определены для каждого компьютера. Используем для этого команду
ext_srvtab. Будет создан файл, который должен
быть скопирован или перемещен безопасным способом
в каталог /etc/kerberosIV каждого Kerberos
клиента. Этот файл должен присутствовать на каждом сервере и
клиенте, он необходим для работы Kerberos.&prompt.root; ext_srvtab gruntEnter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Generating 'grunt-new-srvtab'....Эта команда создаст временный файл, который должен быть
переименован в srvtab, чтобы серверы смогли
обратиться к нему. Используйте команду &man.mv.1; для перемещения
его в исходной системе:&prompt.root; mv grunt-new-srvtab srvtabЕсли файл предназначен для клиентской системы, и сеть не
безопасна, скопируйте
client-new-srvtab
на съемный носитель и перенесите файл с его помощью. Убедитесь, что
переименовали его в srvtab в каталоге
/etc/kerberosIV клиента, и что режим доступа к
нему 600:&prompt.root; mv grumble-new-srvtab srvtab
&prompt.root; chmod 600 srvtabПополнение базы данныхТеперь необходимо добавить в базу данных пользователей.
Во-первых, создадим запись для пользователя jane.
Используйте команду kdb_edit:&prompt.root; kdb_edit
Opening database...
Enter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.
Principal name:janeInstance:
<Not found>, Create [y] ?y
Principal: jane, Instance: , kdc_key_ver: 1
New Password: <---- enter a secure password here
Verifying password
New Password: <---- re-enter the password here
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?Max ticket lifetime (*5 minutes) [ 255 ] ?Attributes [ 0 ] ?
Edit O.K.
Principal name: <---- null entry here will cause an exitТестирование всей системыВо-первых, запустите даемоны Kerberos. При правильном
редактировании файла /etc/rc.conf они запустятся
автоматически при перезагрузке. Это необходимо только на сервере
Kerberos. Клиенты Kerberos получат все необходимые данные из
каталога /etc/kerberosIV.&prompt.root; kerberos &
Kerberos server starting
Sleep forever on error
Log file is /var/log/kerberos.log
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Current Kerberos master key version is 1
Local realm: EXAMPLE.COM
&prompt.root; kadmind -n &
KADM Server KADM0.0A initializing
Please do not use 'kill -9' to kill this job, use a
regular kill instead
Current Kerberos master key version is 1.
Master key entered. BEWARE!Теперь для получения доступа через созданного пользователя
jane используйте kinit:&prompt.user; kinit jane
MIT Project Athena (grunt.example.com)
Kerberos Initialization for "jane"
Password:Попробуйте просмотреть имеющиеся данные с помощью
klist:&prompt.user; klist
Ticket file: /tmp/tkt245
Principal: jane@EXAMPLE.COM
Issued Expires Principal
Apr 30 11:23:22 Apr 30 19:23:22 krbtgt.EXAMPLE.COM@EXAMPLE.COMТеперь попробуйте изменить пароль с помощью &man.passwd.1;,
чтобы убедиться, что даемон kpasswd
может получить информацию из базы данных Kerberos:&prompt.user; passwd
realm EXAMPLE.COM
Old password for jane:New Password for jane:
Verifying password
New Password for jane:
Password changed.Включение suKerberos позволяет назначить каждому
пользователю, который нуждается в привилегиях
root, свой собственный
пароль &man.su.1;. Необходимо добавить учётную запись, которой
разрешено получать root доступ через &man.su.1;.
Это делается путем связывания учётной записи root
с пользовательской учётной записью. Создадим в базе данных Kerberos
запись jane.root с помощью
kdb_edit:&prompt.root; kdb_edit
Opening database...
Enter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.
Principal name:janeInstance:root
<Not found>, Create [y] ? y
Principal: jane, Instance: root, kdc_key_ver: 1
New Password: <---- enter a SECURE password here
Verifying password
New Password: <---- re-enter the password here
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?Max ticket lifetime (*5 minutes) [ 255 ] ?12 <--- Keep this short!
Attributes [ 0 ] ?
Edit O.K.
Principal name: <---- null entry here will cause an exitТеперь проверим работоспособность этой записи:&prompt.root; kinit jane.root
MIT Project Athena (grunt.example.com)
Kerberos Initialization for "jane.root"
Password:Необходимо добавить пользователя к root
файлу .klogin:&prompt.root; cat /root/.klogin
jane.root@EXAMPLE.COMТеперь попробуйте выполнить &man.su.1;:&prompt.user; suPassword:и посмотрите на имеющиеся данные:&prompt.root; klist
Ticket file: /tmp/tkt_root_245
Principal: jane.root@EXAMPLE.COM
Issued Expires Principal
May 2 20:43:12 May 3 04:43:12 krbtgt.EXAMPLE.COM@EXAMPLE.COMИспользование других командВ примере выше мы создали запись (principal)
jane с доступом к root
(instance). Она основана на пользователе с таким же именем, как
и идентификатор, что принято Kerberos по умолчанию;
<principal>.<instance> в форме
<username>.root
позволяет использовать &man.su.1; для доступа к
root, если соответствующие записи находятся
в файле .klogin домашнего каталога
root:
&prompt.root; cat /root/.klogin
jane.root@EXAMPLE.COMПодобно этому, если в файле .klogin
из домашнего каталога пользователя есть строки в форме:&prompt.user; cat ~/.klogin
jane@EXAMPLE.COM
jack@EXAMPLE.COMэто позволит любому с идентификатором
EXAMPLE.COM, кто аутентифицировался как
jane или jack
(с помощью команды kinit, см. выше)
получить доступ к учётной записи пользователя jane
или файлам этой системы (grunt) через
&man.rlogin.1;, &man.rsh.1; или &man.rcp.1;.Например, jane может входить в другую систему
используя Kerberos:&prompt.user; kinit
MIT Project Athena (grunt.example.com)
Password:
&prompt.user; rlogin grunt
Last login: Mon May 1 21:14:47 from grumble
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995Или jack входит в учётную запись
jane's на этом же компьютере
(файл .kloginjane
настроен как показано выше, и в Kerberos настроена учётная
запись jack):&prompt.user; kinit
&prompt.user; rlogin grunt -l jane
MIT Project Athena (grunt.example.com)
Password:
Last login: Mon May 1 21:16:55 from grumble
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995TillmanHodgsonПредоставил MarkMurrayОригинальный материал предоставил Kerberos5Все релизы &os; после &os;-5.1 включают поддержку только
Kerberos5. Таким образом,
Kerberos5 это единственная включаемая в
поставку версия и его конфигурация похожа на
KerberosIV во многих аспектах. Эта
информация применима только к Kerberos5
из релизов после &os;-5.0. Пользователи, желающие использовать
пакет KerberosIV, могут установить его из
порта security/krb4.Kerberos это дополнительная сетевая
система/протокол, позволяющая пользователям авторизоваться через
защищенные сервисы на защищенном сервере. Такие сервисы как
удаленный вход, удаленное копирование, защищенное копирование файлов
между системами и другие задачи с высоким риском становятся
допустимо безопасными и более контролируемыми.Kerberos может быть описана как
прокси система идентификации-проверки. Она также может быть описана
как защищенная внешняя система аутентификации.
Kerberos предоставляет только одну функцию
— защищенную аутентификацию пользователей сети.
Он не предоставляет функций авторизации (что разрешено делать
пользователям) или функций аудита (какой пользователь что делает).
После того, как клиент и сервер использовали
Kerberos для идентификации, они могут
зашифровать все соединения для гарантирования собственной безопасности и
целостности данных.Следовательно крайне рекомендуется использовать
Kerberos с другими методами безопасности,
предоставляющими сервисы авторизации и аудита.Последующие инструкции могут использоваться в качестве руководства
по настройке Kerberos, поставляемого с &os;.
Тем не менее, вам потребуется обратиться к соответствующим страницам
справочника за полным описанием.В целях демонстрации установки Kerberos,
будут применены следующие обозначения:DNS домен (зона)
example.org.Уникальный идентификатор Kerberos
EXAMPLE.ORG.Используйте действующие имена доменов при настройке
Kerberos даже если вы будете использовать
его во внутренней сети. Это позволит избежать проблем с
DNS и гарантирует возможность связи с
Kerberos под другими
идентификаторами.ИсторияKerberos5историяKerberos был создан
MIT в качестве решения проблем с безопасностью
сети. Протокол Kerberos использует
стойкую криптографию, так что клиент может идентифицироваться на
сервере (и обратно) через незащищенное сетевое соединение.Kerberos это и имя сетевого протокола
аутентификации и общий термин для описания программ, где он
реализован (например, Kerberos telnet).
Текущая версия протокола 5 описана в
RFC 1510.Доступно несколько свободных реализаций этого протокола,
работающих на множестве операционных систем. Massachusetts
Institute of Technology (MIT), где
Kerberos был первоначально разработан,
продолжает разрабатывать собственный пакет
Kerberos. Он обычно использовался
в США как криптографический продукт,
и в этом качестве попадал под действие ограничений на экспорт.
MIT Kerberos
доступен в виде порта (security/krb5). Heimdal
Kerberos это другая реализация версии
5, которая разрабатывалась исключительно вне США
для обхода экспортных ограничений (и поэтому часто включалась в
некоммерческие реализации &unix;). Heimdal
Kerberos доступен в виде порта
(security/heimdal),
его минимальный комплект включен в базовую установку &os;.В целях получения наибольшей аудитории, в этих инструкциях
предполагается использование Heimdal включаемого в &os;.Настройка Heimdal KDCKerberos5центр распространения ключейЦентр распространения ключей (Key Distribution Center,
KDC) это централизованный сервис аутентификации,
предоставляемый Kerberos —
это компьютер, который предоставляет доступ через
Kerberos. KDC
считается доверяемым всеми другими компьютерами с определенным
идентификатором Kerberos и поэтому
к нему предъявляются высокие требования безопасности.Имейте ввиду, что хотя работа сервера
Kerberos требует очень немного
вычислительных ресурсов, из соображений безопасности для него
рекомендуется отдельный компьютер, работающий только в качестве
KDC.Перед началом настройки KDC, убедитесь что в
файле /etc/rc.conf содержатся правильные
настройки для работы в качестве KDC (вам может
потребоваться изменить пути в соответствии с собственной
системой):kerberos5_server_enable="YES"
kadmind5_server_enable="YES"
kerberos_stash="YES"Параметр существует только в
&os; 4.X.Затем приступим к редактированию файла настройки
Kerberos,
/etc/krb5.conf:[libdefaults]
default_realm = EXAMPLE.ORG
[realms]
EXAMPLE.ORG = {
kdc = kerberos.example.org
admin_server = kerberos.example.org
}
[domain_realm]
.example.org = EXAMPLE.ORGОбратите внимание что в файле /etc/krb5.conf
подразумевается наличие у KDC полного имени
kerberos.example.org. Вам потребуется
добавить CNAME (синоним) к файлу зоны, если у
KDC другое имя.Для больших сетей с правильно настроенным сервером
BIND DNS пример выше
может быть урезан до:[libdefaults]
default_realm = EXAMPLE.ORGСо следующими строками, добавленными в файл зоны
example.org:_kerberos._udp IN SRV 01 00 88 kerberos.example.org.
_kerberos._tcp IN SRV 01 00 88 kerberos.example.org.
_kpasswd._udp IN SRV 01 00 464 kerberos.example.org.
_kerberos-adm._tcp IN SRV 01 00 749 kerberos.example.org.
_kerberos IN TXT EXAMPLE.ORGЧтобы клиенты могли найти сервисы
Kerberos,
необходимо наличие или полностью
настроенного /etc/krb5.conf или минимально
настроенного /etc/krb5.confи правильно настроенного DNS
сервера.Создадим теперь базу данных Kerberos.
Эта база данных содержит ключи всех основных хостов, зашифрованных
с помощью главного пароля. Вам не требуется помнить этот пароль,
он хранится в файле (/var/heimdal/m-key).
Для создания главного ключа запустите kstash
и введите пароль.Как только будет создан главный ключ, вы можете инициализировать
базу данных с помощью программы kadmin с ключом
-l (означающим local). Этот
ключ сообщает kadmin обращаться к файлам базы
данных непосредственно вместо использования сетевого сервиса
kadmind. Это помогает решить проблему
курицы и яйца, когда обращение идет к еще не созданной базе
данных. Как только вы увидите приглашение kadmin,
используйте команду init для создания базы
данных идентификаторов.Наконец, оставаясь в приглашении kadmin,
создайте первую запись с помощью команды add.
Оставьте неизменными параметры по умолчанию, вы всегда сможете
изменить их позже с помощью команды modify.
Обратите внимание, что вы всегда можете использовать команду
? для просмотра доступных параметров.Пример создания базы данных показан ниже:&prompt.root; kstash
Master key: xxxxxxxx
Verifying password - Master key: xxxxxxxx
&prompt.root; kadmin -l
kadmin> init EXAMPLE.ORG
Realm max ticket life [unlimited]:
kadmin> add tillman
Max ticket life [unlimited]:
Max renewable life [unlimited]:
Attributes []:
Password: xxxxxxxx
Verifying password - Password: xxxxxxxxТеперь пришло время запустить сервисы KDC.
Выполните команды /etc/rc.d/kerberos start и
/etc/rc.d/kadmind start для запуска сервисов.
Заметьте, что ни один из поддерживающих
Kerberos
даемонов на этот момент запущен не будет, но у вас должна быть
возможность убедиться в том, что KDC функционирует
путем получения списка доступа для пользователя, которого вы только
что самостоятельно создали из командной строки самого
KDC:&prompt.user; k5init tillman
tillman@EXAMPLE.ORG's Password:
&prompt.user; k5list
Credentials cache: FILE:/tmp/krb5cc_500
Principal: tillman@EXAMPLE.ORG
Issued Expires Principal
Aug 27 15:37:58 Aug 28 01:37:58 krbtgt/EXAMPLE.ORG@EXAMPLE.ORGСервер Kerberos с сервисами
HeimdalKerberos5включение сервисовДля начала нам потребуется копия файла настройки
Kerberos,
/etc/krb5.conf.
Просто скопируйте его с KDC на клиентский
компьютер безопасным способом (используя сетевые утилиты, такие
как &man.scp.1;, или физически, с помощью дискеты).Затем вам понадобится файл /etc/krb5.keytab.
Это основное различие между сервером, поддерживающим
Kerberos и рабочими станциями —
на сервере должен быть файл keytab.
В этом файле находится центральный ключ сервера, который позволяет
KDC проверять все другие идентификаторы. Он
должен быть помещен на сервер безопасным способом, поскольку
безопасность сервера может быть нарушена, если ключ станет
общедоступен. Это означает, что его передача через прозрачный
канал, такой как FTP — очень плохая
идея.Обычно перенос файла keytab на сервер
производится с помощью программы kadmin.
Это удобно, поскольку вам потребуется также создать запись хоста
(KDC часть krb5.keytab)
с помощью kadmin.Обратите внимание, что должны быть уже зарегистрированы в
системе и необходимо наличие прав на использование интерфейса
kadmin в файле kadmind.acl.
Обратитесь к разделу Remote administration в info
страницах Heimdal (info heimdal) за деталями по
составлению списка доступа. Если вы не хотите включать удаленный
доступ kadmin, можете просто подключиться к
KDC через защищенное соединение (локальную
консоль, &man.ssh.1; или Kerberos
&man.telnet.1;) и выполнять администрирование локально с помощью
kadmin -l.После добавления файла /etc/krb5.conf,
вы можете использовать kadmin с сервера
Kerberos. Команда
add --random-key позволит вам добавить запись
для сервера, а команда ext позволит перенести
эту запись в собственный keytab файл сервера. Например:&prompt.root; kadmin
kadmin> add --random-key host/myserver.example.org
Max ticket life [unlimited]:
Max renewable life [unlimited]:
Attributes []:
kadmin> ext host/myserver.example.org
kadmin> exitОбратите внимание, что команда ext
(сокращение от extract) сохраняет полученный ключ в
файле /etc/krb5.keytab по умолчанию.Если на KDC не запущен
kadmind (возможно по соображениям безопасности)
и вы не можете получить доступ к kadmin
удаленно, возможно добавление записи хоста
(host/myserver.EXAMPLE.ORG) непосредственно
на KDC с последующим извлечением ее во временный
файл (и перезаписью /etc/krb5.keytab на
KDC) примерно так:&prompt.root; kadmin
kadmin> ext --keytab=/tmp/example.keytab host/myserver.example.org
kadmin> exitЗатем вы можете скопировать keytab на сервер защищенным способом
(например, используя scp или дискету).
Убедитесь, что используемое имя keytab не совпадает с именем
по умолчанию во избежание перезаписывания keytab на
KDC.Теперь ваш сервер может связываться с KDC
(добавлен файл krb5.conf) и идентифицировать
себя (добавлен файл krb5.keytab). Теперь вы
готовы к включению некоторых сервисов
Kerberos. В этом примере мы включим
сервис telnet, поместив в
/etc/inetd.conf нижеприведенную строку и
перезапустив сервис &man.inetd.8; командой
/etc/rc.d/inetd restart:telnet stream tcp nowait root /usr/libexec/telnetd telnetd -a userОчень важно установить ключ -a (тип
аутентификации) в user. Обратитесь к странице справочника
&man.telnetd.8; за подробной информацией.Клиент Kerberos с HeimdalKerberos5настройка клиентовНастройка клиентского компьютера почти тривиально проста.
Как только настройка Kerberos закончена,
вам потребуется только файл настройки
Kerberos,
/etc/krb5.conf. Просто скопируйте его
безопасным способом на клиентский компьютер с
KDC.Протестируйте клиентский компьютер, попытавшись использовать
kinit, klist, и
kdestroy для получения, отображения и удаления
списка доступа. Соединитесь с Kerberos
севером используя клиент Kerberos, если
соединение не работает и получение доступа является проблемой,
это скорее всего проблема сервера, а не клиента или
KDC.При тестировании приложения вроде telnet,
попробуйте использовать программу перехвата пакетов (такую
как &man.tcpdump.1;), чтобы убедиться, что ваш пароль не передается
незашифрованным. Попробуйте использовать telnet
с параметром -x, чтобы зашифровать весь поток
данных (подобно ssh).Основные клиентские приложения
Kerberos (традиционно называющиеся
kinit, klist,
kdestroy, и
kpasswd) находятся в базовой установке &os;.
Обратите внимание, что в &os; версий до 5.0 они были переименованы
в k5init, k5list,
k5destroy, k5passwd, и
k5stash (хотя их обычно использовали лишь
однократно).Различные неосновные клиентские приложения
Kerberos также устанавливаются по
умолчанию. Здесь проявляется минимальность
базовой установки Heimdal: telnet это
единственное приложение, поддерживающее
Kerberos.Порт Heimdal добавляет некоторые отсутствующие клиентские
приложения: поддерживающие
Kerberos версии
ftp, rsh,
rcp, rlogin, и некоторые
другие реже используемые программы. Порт MIT
также содержит полный пакет клиентских приложений
Kerberos.Пользовательские файлы настройки: .k5login
и .k5users.k5login.k5usersУчётные записи пользователя в
Kerberos (например
tillman@EXAMPLE.ORG) обычно связаны с
локальными учётными записями (например с локальной учётной записью6
tillman). Клиентские приложения, такие как
telnet, обычно не требуют указания имени
пользователя или учётной записи.Тем не менее, время от времени вам может потребоваться дать
доступ к локальной учётной записи кому-то, у кого нет
соответствующей учётной записи Kerberos.
Например, пользователю tillman@EXAMPLE.ORG
может потребоваться доступ к локальной учётной записи
webdevelopers. Другим учётным записям
также может потребоваться доступ к этой локальной учётной
записи.Файлы .k5login и
.k5users, помещенные в домашний каталог
пользователя, могут быть использованы подобно действенной
комбинации .hosts и
.rhosts для решения этой проблемы.
Например, файл .k5login
со следующим содержанием:tillman@example.org
jdoe@example.orgпомещен в домашний каталог локального пользователя
webdevelopers, то обе упомянутые учётные
записи получат доступ к этой учётной записи без необходимости
наличия общего пароля.Рекомендуется прочитать страницу справочника по этим командам.
Обратите внимание, что страница справочника о
ksu содержит информацию по
.k5users.Подсказки, советы и решение проблем с
KerberosKerberos5решение проблемПри использовании портов как Heimdal так и
MIT Kerberos
убедитесь, что в PATH версии
Kerberos клиентов указаны перед
их версиями в базовой системе.Все ли компьютеры в пределах данного realm
синхронизированы по времени? Если нет, аутентификация может
завершиться неудачно. описывает
как синхронизировать часы с использованием
NTP.MIT и Heimdal успешно взаимодействуют.
За исключением kadmin, протокол для которого
не стандартизован.Если вы изменяете hostname, потребуется также изменить
учётную запись host/ и обновить keytab.
Это также необходимо для специальных записей в keytab, таких
как www/ запись модуля Apache
www/mod_auth_kerb.Все хосты под общим идентификатором должны разрешаться
DNS (прямое и обратное разрешение), или
как минимум через /etc/hosts. Записи
CNAME будут работать, но записи A и PTR должны быть корректны
и находиться на своем месте. Сообщение об ошибке не всегда
интуитивно понятно:
Kerberos5 refuses authentication because Read req
failed: Key table entry not found.Некоторые операционные системы, способные работать в качестве
клиентов KDC не устанавливают права
для ksu в setuid root.
Это означает, что ksu не работает, что хорошо
является хорошей идеей для безопасности, но неудобно. Это не
ошибка KDC.С MIT
Kerberos, если вы хотите продлить
действие доступа до значения большего, чем десять часов по
умолчанию, используйте команду
modify_principal в
kadmin для изменения maxlife доступа к самой
учётной записи и к учётной записи krbtgt.
Затем возможно использование kinit
с параметром -l для запроса доступа с большим
временем действия.Если вы запускаете перехватчик пакетов на
KDC для разрешения проблем, а затем
запускаете kinit с рабочей станции, то
увидите, что TGT посылается непосредственно
при запуске kinit — даже до того, как
вы введете пароль! Объяснение в том, что сервер
Kerberos свободно распространяет
TGT (Ticket Granting Ticket) на каждый
неавторизованный запрос; однако, каждый TGT
зашифрован ключом, полученным из пароля пользователя.
Следовательно, когда пользователь вводит свой пароль, он не
отправляется на KDC, а используется для
расшифровка TGT, который уже получен
kinit. Если в процессе расшифровки
получается правильный билет с правильным значением времени,
у пользователя есть действующее удостоверение.
Это удостоверение содержит ключ сессии для установления
безопасного соединения с сервером
Kerberos, как и действующий
TGT, зашифрованный ключом сервера
Kerberos. Второй уровень шифрования
недоступен пользователю, но позволяет серверу
Kerberos проверять правильность
каждого TGT.Если вы хотите установить большое время жизни доступа
(например, неделю), и используете
OpenSSH для соединения с компьютером,
где хранится билет, убедитесь, что параметр
Kerberos
установлен в
no в файле sshd_config,
или билеты будут уничтожены при выходе из сеанса.Запомните, что время жизни билетов хостов больше.
Если время жизни билета для учётной записи пользователя
составляет неделю, а время жизни учётной записи хоста, к
которому вы подсоединяетесь девять часов, учётная запись хоста
в кэше устареет и кэш билетов будет работать не так, как
ожидается.При настройке файла krb5.dict на
предотвращение использования определенных плохих паролей
(страница справочника для kadmind кратко
рассказывает об этом), запомните, что это применимо только
к учётным записям, для которых действует политика паролей.
Формат файла krb5.dict прост: одно слово
на строку. Может помочь создание символической ссылки на
/usr/share/dict/words.Отличия от порта MITОсновное различие между установками MIT и
Heimdal относится к программе kadmin,
которая имеет другой (но эквивалентный) набор команд и
использует другой протокол. Если ваш KDC
работает на MIT, вы не сможете использовать
kadmin для удаленного администрирования
KDC (и наоборот, по этой же причине).Опции командной строки клиентов также могут немного отличаться
для одинаковых задач. Рекомендуется следование инструкциям
на MIT Kerberos
Web-сайте ().
Будьте внимательны при определении PATH:
порт MIT устанавливается по умолчанию в
/usr/local/, и если в PATH
вначале указаны системные каталоги, вместо приложений
MIT могут быть запущены системные
приложения.С портом MIT
security/krb5, предоставляемым
&os;, убедитесь что файл
/usr/local/share/doc/krb5/README.FreeBSD
установлен портом, если вы хотите понять почему вход через
telnetd и klogind
иногда происходит так странно. Наиболее важно, исправление
incorrect permissions on cache file требует
использования бинарного файла login.krb5
для аутентификации, чтобы права на переданное удостоверение
передавались правильно.Преодоление ограничений, обнаруженных в
KerberosKerberos5ограничения и недостаткиKerberos это все или ничегоКаждый сервис, работающий в сети, должен быть модифицирован
для работы с Kerberos (или другим
способом защищен от атак по сети) или удостоверения пользователей
могут быть украдены или использованы повторно. В качестве примера
может быть приведено использование
Kerberos версий
оболочек для удаленной работы (например через
rsh и telnet), при
наличии POP3 сервера, получающего пароли в
незашифрованном виде.Kerberos предназначен для
однопользовательских рабочих станцийВ многопользовательской среде
Kerberos менее безопасен.
Это потому, что он хранит билеты в каталоге
/tmp, которая доступна для чтения всем.
Если пользователь работает с несколькими другими пользователями
одновременно на одном компьютере (т.е. в многопользовательской
среде), возможна кража (копирование) билета другим
пользователем.Решить проблему можно с помощью параметра командной
строки -c или (предпочтительно) с помощью
переменной окружения KRB5CCNAME, но это делается
редко. Для преодоления ограничения достаточно сохранять билет
в домашнем каталоге пользователя и использовать простые
ограничения на доступ к файлам.От KDC зависит вся системаАрхитектура системы такова, что KDC должен
быть максимально защищен, поскольку главный пароль базы данных
содержится в нем. На KDC не должно быть
запущено никаких других сервисов и он должен быть защищен
физически. Опасность велика, поскольку
Kerberos хранит все пароли
зашифрованными одним ключом (главным ключом),
который хранится в файле на KDC.Хорошей новостью является то, что кража главного ключа
не станет такой проблемой, как может показаться. Главный ключ
используется только для шифрования базы данных
Kerberos и в качестве seed для
генератора случайных чисел. Поскольку доступ к
KDC защищен, атакующий мало что сможет сделать
с главным ключом.Кроме того, если KDC станет недоступен
(возможно по причине атак DoS или проблем в сети) сетевые сервисы
будет невозможно использовать, поскольку аутентификация не
может быть выполнена.
Уменьшить последствия можно при наличии нескольких
KDC (один главный и один или несколько
резервных) и с аккуратно реализованной резервной аутентификацией
(отлично подойдет PAM).Недостатки KerberosKerberos позволяет пользователям,
хостам и сервисам производить аутентификацию друг друга.
В нем нет механизма аутентификации KDC
для пользователей, хостов или сервисов. Это означает, что
поддельный kinit (например) может записывать
все имена пользователей и паролей. Помочь решить проблему может
security/tripwire или
другой инструмент проверки целостности файловой системы.Ресурсы и информация для дальнейшего изученияKerberos5внешние ресурсыKerberos FAQРазработка
системы аутентификации: диалог в четырех сценахRFC 1510,
Kerberos Network Authentication Service
(V5)Домашняя страница
MIT
KerberosДомашняя страница
Heimdal KerberosTomRhodesНаписал: OpenSSLбезопасностьOpenSSLОдной из программ, требующих особого внимания пользователей,
является набор программ OpenSSL,
включенный в &os;. OpenSSL предоставляет
уровень шифрования поверх обычных уровней соединения; следовательно,
он может быть использован многими сетевыми приложениями и
сервисами.OpenSSL может использоваться для
шифрования соединений почтовых клиентов, транзакций через интернет,
например для кредитных карт, и многого другого. Многие порты,
такие как www/apache13-ssl и
mail/sylpheed-claws собираются
с OpenSSL.В большинстве случаев в Коллекции Портов будет сделана попытка
построения порта security/openssl,
если только переменная WITH_OPENSSL_BASE
не установлена явно в yes.Версия OpenSSL, включаемая
в &os;, поддерживает сетевые протоколы безопасности
Secure Sockets Layer v2/v3 (SSLv2/SSLv3),
Transport Layer Security v1 (TLSv1) и может быть использована
в качестве основной криптографической библиотеки.Хотя OpenSSL поддерживает алгоритм
IDEA, по умолчанию он отключен из-за патентных
ограничений Соединенных Штатов. Для его использования необходимо
ознакомиться с лицензией, и, если ограничения приемлемы,
установить в make.conf переменную
MAKE_IDEA.Наиболее часто OpenSSL
используется для создания сертификатов, используемых программными
пакетами. Эти сертификаты подтверждают, что данные компании
или частного лица верны и не подделаны. Если рассматриваемый
сертификат не был проверен одним из нескольких сертификационных центров
(Certificate Authorities - CA), обычно
выводится предупреждение. Центр сертификации представляет собой
компанию, такую, как
VeriSign, которая подписывает сертификаты для подтверждения
данных частных лиц или компаний. Эта процедура не бесплатна
и не является абсолютно необходимой для использования сертификатов;
однако может успокоить некоторых особо осторожных
пользователей.Генерирование сертификатовOpenSSLгенерирование сертификатовДля генерирования сертификатов доступна следующая
команда:&prompt.root; openssl req -new -nodes -out req.pem -keyout cert.pem
Generating a 1024 bit RSA private key
................++++++
.......................................++++++
writing new private key to 'cert.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:PA
Locality Name (eg, city) []:Pittsburgh
Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Company
Organizational Unit Name (eg, section) []:Systems Administrator
Common Name (eg, YOUR name) []:localhost.example.org
Email Address []:trhodes@FreeBSD.org
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:SOME PASSWORD
An optional company name []:Another NameВвод после приглашения Common Name
содержит имя домена. Здесь вводится имя сервера для
верификации; помещение в это поле чего-либо кроме
этого имени приведет к созданию бесполезного сертификата.
Доступны и другие параметры, например срок действия,
альтернативные алгоритмы шифрования и т.д. Полный список
находится на странице справочного руководства
&man.openssl.1;.В текущем каталоге, из которого была вызвана вышеуказанная
команда, должны появиться два файла. Файл
req.pem с запросом на сертификацию может быть
послан в центр выдачи сертификатов, который проверит введённые вами
подтверждающие данные, подпишет запрос и возвратит сертификат вам.
Второй созданный файл будет иметь название
cert.pem и содержать приватный сертификационный
ключ, который необходимо тщательно защищать; если он попадёт в руки
посторонних лиц, то может быть использован для имитации лично вас (или
вашего сервера).Когда подпись CA не требуется, может
быть создан самоподписанный сертификат. Сначала создайте ключ
RSA:&prompt.root; openssl dsaparam -rand -genkey -out myRSA.key 1024Теперь создайте ключ CA:&prompt.root; openssl gendsa -des3 -out myca.keymyRSA.keyИспользуйте этот ключ при создании сертификата:&prompt.root; openssl req -new -x509 -days 365 -key myca.key -out new.crtВ каталоге должно появиться два новых файла: подпись сертификата,
myca.key и сам сертификат,
new.crt. Они должны быть помещены в каталог,
доступный для чтения только root,
желательно внутри /etc.
Права на каталог можно изменить chmod с параметрами
0700.Использование сертификатов, примерИтак, что могут сделать эти файлы? Хорошим применением
может стать шифрование соединений для
Sendmail MTA.
Это сделает ненужным использование простой текстовой
аутентификации для тех, кто отправляет почту через
локальный MTA.Это не лучшее из возможных использований, поскольку
некоторые MUA выдадут ошибку, если
сертификат не установлен локально. Обратитесь к
поставляемой с программой документации за информацией по
установке сертификата.Следующие строки должны быть помещены в локальный файл
.mc:dnl SSL Options
define(`confCACERT_PATH',`/etc/certs')dnl
define(`confCACERT',`/etc/certs/new.crt')dnl
define(`confSERVER_CERT',`/etc/certs/new.crt')dnl
define(`confSERVER_KEY',`/etc/certs/myca.key')dnl
define(`confTLS_SRV_OPTIONS', `V')dnlГде /etc/certs/
это каталог для локального хранения сертификата и
ключей. После настройки необходимо собрать локальный
файл .cf. Это легко сделать,
набрав makeinstall
в каталоге /etc/mail.
Затем выполните команду makerestart, которая должна запустить
даемон Sendmail.Если все пройдет нормально, в файле
/var/log/maillog не появятся сообщения
об ошибках и запустится процесс
Sendmail.Для проведения простого теста подключитесь к почтовому серверу
программой &man.telnet.1;:&prompt.root; telnet example.com 25
Trying 192.0.34.166...
Connected to example.com.
Escape character is '^]'.
220 example.com ESMTP Sendmail 8.12.10/8.12.10; Tue, 31 Aug 2004 03:41:22 -0400 (EDT)
ehlo example.com
250-example.com Hello example.com [192.0.34.166], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH LOGIN PLAIN
250-STARTTLS
250-DELIVERBY
250 HELP
quit
221 2.0.0 example.com closing connection
Connection closed by foreign host.Если в выводе появилась строка STARTTLS,
все работает правильно.NikClaytonnik@FreeBSD.orgНаписал IPsecVPN через IPsecСоздание VPN между двумя сетями, соединенными через интернет,
с использованием шлюзов FreeBSD.Hiten M.Pandyahmp@FreeBSD.orgНаписал Принципы работы IPsecЭтот раздел послужит вам руководством по настройке IPsec и его
использованию в среде FreeBSD и µsoft.windows;
2000/XP, соединяемых безопасным способом.
Для настройки IPsec необходимо ознакомиться с процессом
сборки ядра ().IPsec это протокол, расположенный поверх
слоя Internet Protocol (IP). Он позволяет двум или более хостам
связываться защищенным способом (отсюда и название протокола).
Сетевой стек FreeBSD IPsec основан на
реализации KAME,
поддерживающей оба семейства протоколов, IPv4 и IPv6.FreeBSD 5.X содержит аппаратно
поддерживаемый стек IPsec, известный как Fast
IPsec, заимствованный из OpenBSD. Для оптимизации
производительности IPsec он задействует криптографическое
оборудование (когда оно доступно) через подсистему &man.crypto.4;.
Это новая подсистема и она не поддерживает всех возможностей,
доступных в KAME версии IPsec. Для включения IPsec с аппаратной
поддержкой необходимо добавить в файл настройки ядра следующий
параметр:параметры ядраFAST_IPSECoptions FAST_IPSEC # new IPsec (cannot define w/ IPSEC)Обратите внимание, что на данный момент невозможно
использовать подсистему Fast IPsec вместе
с KAME реализацией IPsec. Обратитесь к странице справочника
&man.fast.ipsec.4; за дальнейшей информацией.IPsecESPIPsecAHIPsec состоит из двух подпротоколов:Encapsulated Security Payload
(ESP), защищающей данные IP пакета от вмешательства
третьей стороны путем шифрования содержимого с помощью
симметричных криптографических алгоритмов (таких как
Blowfish,3DES).Authentication Header (AH),
защищающий заголовок IP пакета от вмешательства третьей стороны
и подделки путем вычисления криптографической контрольной суммы
и хеширования полей заголовка IP пакета защищенной функцией
хеширования. К пакету добавляется дополнительный заголовок
с хэшем, позволяющий аутентификацию информации пакета.ESP и AH могут быть
использованы вместе или по отдельности, в зависимости от
обстоятельств.VPNвиртуальная частная сетьVPNIPsec может быть использован или для непосредственного шифрования
трафика между двумя хостами (транспортный
режим); или для построения виртуальных
туннелей между двумя подсетями, которые могут быть
использованы для защиты соединений между двумя корпоративными
сетями (туннельный режим). Последний обычно
называют виртуальной частной сетью
(Virtual Private Network, VPN). За детальной информацией о
подсистеме IPsec в FreeBSD обратитесь к странице справочника
&man.ipsec.4;.Для включения поддержки IPsec в ядре, добавьте следующие
параметры к файлу настройки ядра:параметры ядраIPSECпараметры ядраIPSEC_ESPoptions IPSEC #IP security
options IPSEC_ESP #IP security (crypto; define w/ IPSEC)параметры ядраIPSEC_DEBUGЕсли желательна поддержка отладки IPsec, должна быть также
добавлена следующая строка:
options IPSEC_DEBUG #debug for IP security
ПроблемаНе существует стандарта VPN. Они могут быть реализованы
множеством различных технологий, каждая из которых имеет свои
сильные и слабые стороны. Этот раздел представляет
сценарий и стратегию реализации VPN для этого сценария.Сценарий: Две сети, подключенных к интернет, работающие как
однаVPNсозданиеИсходные условия таковы:Существует как минимум две сетиВнутри обеих сетей используется IPОбе сети соединены через интернет через шлюз,
работающий на FreeBSD.У шлюза каждой из сетей есть как минимум один публичный
IP адрес.Внутренние IP адреса двух сетей могут быть публичными или
приватными, не имеет значения. На шлюзе может работать
NAT, если это необходимо.Внутренние IP адреса двух сетей не должны
пересекаться. Хотя вероятно теоретически возможно
использование комбинации VPN технологии и NAT для настройки
такой конфигурации, эта конфигурация будет кошмарна.Если две сети, которые вы пытаетесь соединить, используют один
и тот же диапазон приватных адресов (например, обе используют
192.168.1.x), номера в одной из
сетей необходимо изменить.Топология сети может выглядеть примерно так:Сеть #1 [ Внутренние хосты ] Приватная сеть, 192.168.1.2-254
[ Win9x/NT/2K ]
[ UNIX ]
|
|
.---[fxp1]---. Приватный IP, 192.168.1.1
| FreeBSD |
`---[fxp0]---' Публичный IP, A.B.C.D
|
|
-=-=- Интернет -=-=-
|
|
.---[fxp0]---. Публичный IP, W.X.Y.Z
| FreeBSD |
`---[fxp1]---' Приватный IP, 192.168.2.1
|
|
Сеть #2 [ Внутренние хосты ]
[ Win9x/NT/2K ] Приватная сеть, 192.168.2.2-254
[ UNIX ]Заметьте, что здесь присутствуют два публичных IP-адреса. В
дальнейшем для их обозначения
будут использоваться буквы. Если вы увидите эти буквы, замените
их на свои публичные IP адреса. Также обратите внимание, что
у обеих шлюзов внутренний адрес заканчивается на .1 и диапазоны
приватных адресов двух сетей различны (192.168.1.x и 192.168.2.x соответственно). Все компьютеры
локальных сетей настроены на использование в качестве шлюза по
умолчанию компьютера с адресом, оканчивающимся на
.1.С сетевой точки зрения замысел в том, чтобы каждая сеть
видела компьютеры из другой сети так, как если бы они были
непосредственно подключены к тому же самому маршрутизатору —
хотя и немного медленному маршрутизатору, иногда теряющему
пакеты.Это означает, что (например) компьютер 192.168.1.20 может запуститьping 192.168.2.34и это будет прозрачно работать. Компьютеры с &windows;
должны видеть компьютеры в другой сети, просматривать сетевые
ресурсы, и так далее, точно так же, как и для компьютеров в
локальной сети.И все это безопасным способом. Это означает, что трафик
между сетями зашифрован.Создание VPN между этими двумя сетями это многошаговый
процесс. Этапы создания VPN таковы:Создание виртуального сетевого подключения
между двумя сетями через интернет. Тестирование подключения с
помощью таких инструментов как &man.ping.8;, чтобы убедиться, что
оно работает.Применение политики безопасности чтобы убедиться, что трафик
между двумя сетями прозрачно шифруется и расшифровывается если
необходимо. Тестирование с помощью таких инструментов как
&man.tcpdump.1;, чтобы убедиться, что трафик шифруется.Настройка дополнительных программ на шлюзах &os;,
чтобы компьютеры &windows; из одной сети видели компьютеры
в другой через VPN.Шаг 1: Создание и тестирование виртуального
сетевого подключенияПредположим, что вы работаете на шлюзе сети #1 (с публичным
адресом A.B.C.D, приватным
адресом 192.168.1.1) и запускаете
ping 192.168.2.1, т.е. на приватный адрес
машины с IP адресом W.X.Y.Z.
Что должно произойти, чтобы это сработало?Шлюз должен знать, как достичь 192.168.2.1. Другими словами, у него
должен быть маршрут к 192.168.2.1.Приватные IP адреса, такие как диапазон 192.168.x не адресуются в
интернет. Каждый пакет, отправляемый на
192.168.2.1 должен быть
завернут в другой пакет. Исходным адресом пакета
должен быть A.B.C.D,
а адресом назначения W.X.Y.Z.
Этот процесс называется
инкапсуляцией.Как только этот пакет достигнет W.X.Y.Z, необходимо будет
декапсулировать его и доставить к 192.168.2.1.Как вы можете увидеть, это требует туннеля
между двумя сетями. Два конца туннеля
это IP адреса A.B.C.D и
W.X.Y.Z. Туннель используется для
передачи трафика с приватными IP адресами через интернет.В FreeBSD этот туннель создается с помощью устройства generic
interface, или gif. Как вы можете
догадаться, интерфейс gif на каждом хосте
должен быть настроен с четырьмя IP адресами; два для публичных
IP адресов и два для приватных IP адресов.В ядро обеих компьютеров FreeBSD должна быть встроена
поддержка устройства gif. Вы можете сделать это, добавив
строку:device gifк файлу настройки ядра на обеих компьютерах, с последующей
компиляцией, установкой и перезагрузкой.Настройка туннеля это двухшаговый процесс. Во-первых,
необходимо задать сведения о внешнем (или публичном) IP адресе
с помощью &man.gifconfig.8;. Затем о приватном IP адресе
с помощью &man.ifconfig.8;.В &os; 5.X функциональность, предоставляемая утилитой
&man.gifconfig.8;, была внесена в &man.ifconfig.8;.На шлюзе сети #1 для настройки туннеля вам потребуется запустить
следующие две команды.gifconfig gif0 A.B.C.D W.X.Y.Z
ifconfig gif0 inet 192.168.1.1 192.168.2.1 netmask 0xffffffff
На другом шлюзе подобные команды, но с IP адресами в обратном
порядке.gifconfig gif0 W.X.Y.Z A.B.C.D
ifconfig gif0 inet 192.168.2.1 192.168.1.1 netmask 0xffffffff
Затем вы можете запустить:gifconfig gif0для просмотра настройки. Например, на шлюзе сети #1
вы увидите:&prompt.root; gifconfig gif0
gif0: flags=8011<UP,POINTTOPOINT,MULTICAST> mtu 1280
inet 192.168.1.1 --> 192.168.2.1 netmask 0xffffffff
physical address inet A.B.C.D --> W.X.Y.Z
Как вы можете видеть, был создан туннель между физическими
адресами A.B.C.D и
W.X.Y.Z, для туннелирования разрешен
трафик между 192.168.1.1 и 192.168.2.1.Это также добавляет запись к таблице маршрутизации на обеих
машинах, вы можете проверить запись командой netstat
-rn. Вот вывод этой команды на шлюзе сети #1.&prompt.root; netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
...
192.168.2.1 192.168.1.1 UH 0 0 gif0
...
Как показывает значение поля Flags, это маршрут
к хосту, что означает, что каждый шлюз знает, как достичь другого
шлюза, но не знает как достичь остальной части соответствующей сети.
Эта проблема будет быстро решена.Вероятно, на обеих машинах запущен брандмауэр. VPN
должен обходить его. Вы можете разрешить весь трафик между
двумя сетями, или включить правила, защищающие каждый конец
соединения от другого.Это сильно упрощает тестирование настройки брандмауэра,
если вы разрешаете весь трафик через VPN. Вы всегда можете
Вы всегда можете усилить защиту позже. Если вы используете
на шлюзах &man.ipfw.8;, команда вроде этойipfw add 1 allow ip from any to any via gif0разрешит весь трафик между двумя концами VPN без влияния на
другие правила брандмауэра. Очевидно, вам потребуется
запустить эту команду на обеих шлюзах.Этого достаточно для включения ping с одного шлюза на другой.
На 192.168.1.1, вы сможете
запуститьping 192.168.2.1и получить ответ, и аналогично на другом шлюзе.Однако, машины в другой сети пока недоступны. Это из-за
маршрутизации — хотя шлюзы знают, как связаться друг с
другом, они не знают, как связаться с сетью за другим шлюзом.Для решения этой проблемы вы должны добавить статический маршрут
на каждом шлюзе. Команда на первом шлюзе будет выглядеть так:route add 192.168.2.0 192.168.2.1 netmask 0xffffff00
Она говорит Для достижения хостов в сети
192.168.2.0, отправляйте пакеты
хосту 192.168.2.1. Вам
потребуется запустить похожую команду на другом шлюзе, но с
адресами 192.168.1.x.IP трафик с хостов в одной сети теперь может достичь хосты в
другой сети.Теперь создано две трети VPN между двумя сетями, поскольку
это виртуальная (virtual)сеть (network).
Она еще не приватная (private). Вы можете протестировать ее
с помощью &man.ping.8; и &man.tcpdump.1;. Войдите на шлюз и
запуститеtcpdump dst host 192.168.2.1В другой сессии на этом же хосте запуститеping 192.168.2.1Вы увидите примерно такие строки:
16:10:24.018080 192.168.1.1 > 192.168.2.1: icmp: echo request
16:10:24.018109 192.168.1.1 > 192.168.2.1: icmp: echo reply
16:10:25.018814 192.168.1.1 > 192.168.2.1: icmp: echo request
16:10:25.018847 192.168.1.1 > 192.168.2.1: icmp: echo reply
16:10:26.028896 192.168.1.1 > 192.168.2.1: icmp: echo request
16:10:26.029112 192.168.1.1 > 192.168.2.1: icmp: echo reply
Как вы видите, ICMP сообщения пересылаются вперед и назад
незашифрованными. Если вы использовали с &man.tcpdump.1; параметр
для получения большего объема данных пакета,
то увидите больше информации.Конечно же это неприемлемо. В следующем разделе мы обсудим
защиту соединения между двумя сетями, так что весь трафик будет
автоматически шифроваться.Резюме:Настройте оба ядра с device gif.Отредактируйте /etc/rc.conf на шлюзе
#1 и добавьте следующие строки (подставляя IP адреса где
необходимо).gifconfig_gif0="A.B.C.D W.X.Y.Z"
ifconfig_gif0="inet 192.168.1.1 192.168.2.1 netmask 0xffffffff"
static_routes="vpn"
route_vpn="192.168.2.0 192.168.2.1 netmask 0xffffff00"
Отредактируйте скрипт брандмауэра
(/etc/rc.firewall, или подобный) на обеих
хостах и добавьтеipfw add 1 allow ip from any to any via gif0Выполните соответствующие изменения в
/etc/rc.conf на шлюзе #2,
меняя порядок IP адресов.Шаг 2: Защита соединенияДля защиты соединения мы будем использовать IPsec. IPsec
предоставляет хостам механизм определения ключа для шифрования
и для последующего использования этого ключа для шифрования
данных между двумя хостами.Здесь будут рассмотрены два аспекта настройки.У хостов должен быть способ согласования используемого
алгоритма шифрования. Как только хосты договорятся об этом,
можно говорить об установленном между ними
безопасном соединении.Должен быть механизм определения, какой трафик необходимо
шифровать. Конечно, вам не требуется шифровать весь исходящий
трафик — достаточно шифровать только трафик, идущий
через VPN. Правила, определяющие то, какой трафик необходимо
шифровать, называются политикой безопасности.Безопасное соединение и политика безопасности поддерживаются
ядром, и могут быть изменены программами пользователя. Однако
перед тем, как вы сможете сделать это, необходимо настроить
поддержку протоколов IPsec и Encapsulated Security Payload (ESP) в
ядре. Это делается добавлением в настройку ядра параметров:параметры ядраIPSECoptions IPSEC
options IPSEC_ESPс последующим перекомпилированием, переустановкой и
перезагрузкой. Как и прежде вам потребуется сделать это с ядрами на
обеих шлюзах.IKEПри настройке параметров безопасности (security associations)
у вас есть два варианта. Вы можете настроить их вручную для обеих
хостов, задав алгоритм шифрования, ключи для шифрования и так далее,
или использовать даемоны, реализующие Internet Key Exchange protocol
(IKE), который сделает это за вас.Рекомендуется последнее. Помимо прочего, этот способ более
прост.IPsecполитики безопасностиsetkeyРедактирование и отображение политики безопасности выполняется
с помощью &man.setkey.8;. По аналогии, setkey
используется для настройки таблиц политики безопасности ядра так же,
как &man.route.8; используется для настройки таблиц маршрутизации
ядра. setkey также может отображать текущие
параметры безопасности, и продолжая аналогию дальше, это
соответствует netstat -r.Существует множество даемонов для управления параметрами
безопасности в FreeBSD. Здесь будет описано использование одного из
них, racoon — он доступен в составе порта security/ipsec-tools в Коллекции
Портов &os;.racoonДаемон racoon
должен работать на обеих шлюзах. На каждом из хостов
он настраивается с IP адресом другого конца VPN, и секретным
ключом (по вашему выбору, должен быть одним и тем же на обеих
шлюзах).Эти два даемона подключаются друг к другу, подтверждают, что они
именно те, за кого себя выдают (используя секретный ключ, заданный
вами). Затем даемоны генерируют новый секретный ключ и используют
его для шифрования трафика через VPN. Они периодически изменяют
этот ключ, так что даже если атакующий сломает один из ключей
(что теоретически почти невозможно) это не даст ему слишком много
— он сломал ключ, который два даемона уже сменили на
другой.Настройки racoon сохраняются в файле
${PREFIX}/etc/racoon. Этот файл не требует
слишком больших изменений. Другим компонентом настройки
racoon, который потребуется изменить, является предварительный
ключ.В настройке по умолчанию racoon ищет его в файле
${PREFIX}/etc/racoon/psk.txt. Необходимо
отметить, что предварительный ключ не
используется для шифрования трафика через VPN соединение
это просто маркер, позволяющий управляющим ключами даемонам
доверять друг другу.psk.txt содержит строку для каждого
удаленного сервера, с которым происходит соединение. В этом примере
два сервера, каждый файл psk.txt будет
содержать одну строку (каждый конец VPN общается только с другим
концом.На шлюзе #1 эта строка будет выглядеть примерно так:W.X.Y.Z secretТо есть публичный IP-адрес противоположной
стороны, пробел и текстовая строка c секретной фразой. Конечно, вам
не стоит использовать в качестве ключевой фразы слово
secret -- здесь применяются обычные правила
выбора паролей.На шлюзе #2 строка будет выглядеть примерно так:A.B.C.D secretТо есть публичный IP адрес удаленной стороны и та же
секретная фраза. Перед запуском racoon режим доступа к файлу
psk.txt должен быть установлен в
0600 (т.е. запись и чтение только для
root).Вы должны запустить racoon на обоих шлюзах. Вам также
потребуется добавить правила для включения IKE трафика,
передающегося по UDP через порт ISAKMP (Internet Security Association
Key Management Protocol). Опять же, они должны быть
расположены насколько возможно ближе к началу набора правил.ipfw add 1 allow udp from A.B.C.D to W.X.Y.Z isakmp
ipfw add 1 allow udp from W.X.Y.Z to A.B.C.D isakmp
Как только racoon будет запущен, вы можете попробовать
выполнить ping с одного шлюза на другой. Соединение все еще не
зашифровано, но racoon установит параметры безопасности между
двумя хостами — это может занять время и вы можете заметить
небольшую задержку перед началом ответа команды ping.Как только параметры безопасности установлены, вы можете
просмотреть их используя &man.setkey.8;. Запуститеsetkey -Dна любом из хостов для просмотра информации о параметрах
безопасности.Это одна сторона проблемы. Другая сторона это настройка
политики безопасности.Для создания разумной политики безопасности давайте вспомним,
что уже было настроено. Это рассмотрение относится к обеим
концам соединения.Каждый отправляемый IP пакет имеет заголовок, содержащий информацию
о пакете. Заголовок включает IP адреса источника и назначения.
Как мы уже знаем, приватные IP адреса, такие как 192.168.x.y, не могут появиться в
интернет. Они должны быть сначала включены внутрь другого
пакета. В этом пакете приватные IP адреса источника и назначения
заменяются публичными IP адресами.То есть исходящий пакет, который выглядит примерно так:
.----------------------------.
| Src: 192.168.1.1 |
| Dst: 192.168.2.1 |
| <другие данные заголовка> |
+----------------------------+
| <данные пакета> |
`----------------------------'будет инкапсулирован в другой пакет, выглядящий примерно
так:
.--------------------------------.
| Src: A.B.C.D |
| Dst: W.X.Y.Z |
| <другие данные заголовка> |
+--------------------------------+
| .----------------------------. |
| | Src: 192.168.1.1 | |
| | Dst: 192.168.2.1 | |
| | <другие данные заголовка> | |
| +----------------------------+ |
| | <данные пакета> | |
| `----------------------------' |
`--------------------------------'Этой инкапсуляцией занимается устройство
gif. Как вы можете видеть, теперь
у пакета есть реальный IP адрес, исходный пакет был включен
в этот пакет в виде данных, которые передаются через
интернет.Конечно, мы хотим зашифровать весь трафик между VPN.
Вы можете сформулировать это на словах так:Если пакет отправляется с A.B.C.D, и предназначен для W.X.Y.Z, расшифровать его, используя
необходимые параметры безопасности.Если пакет отправляется с W.X.Y.Z, и предназначен для A.B.C.D, расшифровать его, используя
необходимые параметры безопасности.Это похоже на желаемое, но не совсем то. Если вы сделаете
это, весь трафик от и к W.X.Y.Z,
даже если он не является частью VPN, будет зашифрован. Правильная
политика такова:Если пакет отправляется с A.B.C.D, в нем инкапсулирован другой пакет
и адрес назначения W.X.Y.Z,
зашифровать его, используя необходимые параметры
безопасности.Если пакет отправляется с W.X.Y.Z, в нем инкапсулирован другой пакет
и адрес назначения A.B.C.D,
зашифровать его, используя необходимые параметры
безопасности.Тонкое, но необходимое различие.Политика безопасности также устанавливается с использованием
&man.setkey.8;. В &man.setkey.8; предусмотрен язык определения
политики &man.setkey.8;. Вы можете или ввести инструкции
по настройке со стандартного ввода, или использовать параметр
для задания файла, содержащего эти
инструкции.Настройка на шлюзе #1 (где есть публичный IP адрес
A.B.C.D) для включения шифрования
всего предназначенного W.X.Y.Z
трафика:
spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require;
Поместите эти команды в файл (например,
/etc/ipsec.conf) и запустите&prompt.root; setkey -f /etc/ipsec.conf указывает &man.setkey.8; добавить
правило к базе данных политики безопасности. Остальная часть
строки указывает какие пакеты будут соответствовать политике.
A.B.C.D/32 и W.X.Y.Z/32 это IP адреса и сетевые маски,
определяющие сети или хосты, к которым будет применяться данная
политика. В данном случае мы хотим применить их к трафику между
этими двумя хостами. Параметр сообщает
ядру, что эта политика должна применяться только к пакетам,
инкапсулирующим другие пакеты. Параметр
сообщает, что эта политика применяется к исходящим пакетам, и
— то, что пакеты будут
зашифрованы.Оставшаяся часть строки определяет, как эти пакеты будут
зашифрованы. Будет использоваться протокол ,
а параметр показывает, что пакет в дальнейшем
будет инкапсулирован в IPsec пакет. Повторное использование
A.B.C.D и W.X.Y.Z предназначено для выбора
используемых параметров безопасности, и наконец параметр
разрешает шифрование пакетов, попадающих
под это правило.Это правило соответствует только исходящим пакетам. Вам
потребуется похожее правило, соответствующее входящим пакетам.spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require;Обратите внимание, что вместо используется
и IP адреса переставлены.Другому шлюзу (с публичным IP адресом
W.X.Y.Z) потребуются похожие
правила.spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P out ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require;
spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P in ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require;Наконец, вам потребуется добавить правила к брандмауэру
для включения прохождения пакетов ESP и IPENCAP в обе стороны.
На обеих хостах потребуется добавить следующие правила:ipfw add 1 allow esp from A.B.C.D to W.X.Y.Z
ipfw add 1 allow esp from W.X.Y.Z to A.B.C.D
ipfw add 1 allow ipencap from A.B.C.D to W.X.Y.Z
ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.D
Поскольку правила симметричны, можно использовать их без
изменения на обеих хостах
Исходящие пакеты теперь будут выглядеть примерно так:
.------------------------------. --------------------------.
| Src: A.B.C.D | |
| Dst: W.X.Y.Z | |
| <other header info> | | Encrypted
+------------------------------+ | packet.
| .--------------------------. | -------------. | contents
| | Src: A.B.C.D | | | | are
| | Dst: W.X.Y.Z | | | | completely
| | <other header info> | | | |- secure
| +--------------------------+ | | Encap'd | from third
| | .----------------------. | | -. | packet | party
| | | Src: 192.168.1.1 | | | | Original |- with real | snooping
| | | Dst: 192.168.2.1 | | | | packet, | IP addr |
| | | <other header info> | | | |- private | |
| | +----------------------+ | | | IP addr | |
| | | <packet data> | | | | | |
| | `----------------------' | | -' | |
| `--------------------------' | -------------' |
`------------------------------' --------------------------'
Когда эти пакеты будут получены на удаленном конце VPN
соединения, они будут расшифрованы (используя параметры
безопасности, о которых договорился racoon). Затем они будут
переданы интерфейсу gif, который
развернет второй слой, оставив пакет с внутренними
адресами, который сможет попасть во внутреннюю сеть.Вы можете проверить безопасность тем же &man.ping.8;, который
использовался ранее. Сначала войдите на шлюз A.B.C.D и запустите:tcpdump dst host 192.168.2.1В другой сессии на том же хосте запуститеping 192.168.2.1В этот момент вы должны увидеть примерно это:XXX tcpdump outputТеперь, как видите, &man.tcpdump.1; показывает ESP пакеты. Если
вы попытаетесь просмотреть их с параметром ,
то вероятно увидите нечто непонятное, поскольку применяется
шифрование.Поздравляем. Вы только что настроили VPN между двумя удаленными
сетями.РезюмеНастройте оба ядра с:options IPSEC
options IPSEC_ESP
Установите security/ipsec-tools. Отредактируйте
${PREFIX}/etc/racoon/psk.txt на обеих
шлюзах, добавив запись для каждого IP адреса удаленного хоста
и секретный ключ, который будет известен им обеим. Убедитесь,
что режим доступа к файлу 0600.Добавьте к
/etc/rc.conf на каждом хосте следующие
строки:ipsec_enable="YES"
ipsec_file="/etc/ipsec.conf"
Создайте /etc/ipsec.conf на каждом
хосте с необходимыми строками spdadd. На шлюзе #1 он будет
таким:
spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec
esp/tunnel/A.B.C.D-W.X.Y.Z/require;
spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec
esp/tunnel/W.X.Y.Z-A.B.C.D/require;
А на шлюзе #2 таким:
spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P out ipsec
esp/tunnel/W.X.Y.Z-A.B.C.D/require;
spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P in ipsec
esp/tunnel/A.B.C.D-W.X.Y.Z/require;
Добавьте правила к брандмауэрам обеих хостов для
включения IKE, ESP и IPENCAP трафика:
ipfw add 1 allow udp from A.B.C.D to W.X.Y.Z isakmp
ipfw add 1 allow udp from W.X.Y.Z to A.B.C.D isakmp
ipfw add 1 allow esp from A.B.C.D to W.X.Y.Z
ipfw add 1 allow esp from W.X.Y.Z to A.B.C.D
ipfw add 1 allow ipencap from A.B.C.D to W.X.Y.Z
ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.D
Двух приведенных шагов должно быть достаточно для настройки
и включения VPN. Машины в каждой сети смогут обращаться друг к
другу по IP адресам, и весь трафик через соединение будет
автоматически надежно зашифрован.ChernLeeПредоставил OpenSSHOpenSSHбезопасностьOpenSSHOpenSSH это набор сетевых инструментов,
используемых для защищенного доступа к удаленным компьютерам.
Он может быть использован в качестве непосредственной замены
rlogin, rsh,
rcp и telnet.
Кроме того, через SSH могут быть безопасно туннелированы и/или
перенаправлены произвольные TCP/IP соединения.
OpenSSH шифрует весь трафик, эффективно
предотвращая кражу данных, перехват соединения и другие сетевые
атаки.OpenSSH поддерживается проектом
OpenBSD, он основан на SSH v1.2.12 со всеми последними исправлениями
и обновлениями, совместим с протоколами SSH версий 1 и 2.
OpenSSH включен в базовую систему
начиная с FreeBSD 4.0.Преимущества использования OpenSSHОбычно при использовании &man.telnet.1; или &man.rlogin.1;
данные пересылаются по сети в незашифрованной форме. Перехватчик
пакетов в любой точке сети между клиентом и сервером может
похитить информацию о пользователе/пароле или данные, передаваемые
через соединение. Для предотвращения этого
OpenSSH предлагает различные методы
шифрования.Включение sshdOpenSSHвключениеВ &os; версии 4.X даемон sshd
запускается по умолчанию; начиная с версий 5.X &os; он должен
быть разрешен в процессе инсталляции. За запуск ответственна
следующая строка в файле rc.conf:sshd_enable="YES"При следующей загрузке системы будет запущен &man.sshd.8;, даемон для
OpenSSH. Вы можете также воспользоваться
скриптом /etc/rc.d/sshd системы &man.rc.8;
для запуска OpenSSH:/etc/rc.d/sshd startSSH клиентOpenSSHклиентУтилита &man.ssh.1; работает подобно &man.rlogin.1;.&prompt.root; ssh user@example.com
Host key not found from the list of known hosts.
Are you sure you want to continue connecting (yes/no)? yes
Host 'example.com' added to the list of known hosts.
user@example.com's password: *******Вход продолжится так же, как если бы сессия была инициирована
с использованием rlogin или
telnet. SSH использует систему опознавательных
ключей для проверки подлинности сервера при подключении клиента.
Пользователю предлагается yes только при первом
подключении. Дальнейшие попытки входа предваряются проверкой
сохраненного ключа сервера. SSH клиент сообщит вам, если сохраненный
ключ будет отличаться от только что полученного. Ключи серверов
сохраняются в ~/.ssh/known_hosts, или в
~/.ssh/known_hosts2 для SSH v2.По умолчанию современные серверы OpenSSH
настроены на приём только соединений SSH v2. Клиент будет
использовать версию 2 там, где это возможно, а затем версию 1.
Также, клиент можно заставить использовать конкретную версию при помощи
опций и для указания
соответствующей версии протокола. Версия 1 поддерживается ради
совместимости со старыми серверами.Безопасное копированиеOpenSSHбезопасное копированиеscpКоманда &man.scp.1; работает подобно &man.rcp.1;; она копирует
файл с удаленного компьютера, но делает это безопасным
способом.&prompt.root; scp user@example.com:/COPYRIGHT COPYRIGHT
user@example.com's password: *******
COPYRIGHT 100% |*****************************| 4735 00:00
&prompt.root;Поскольку в предыдущем примере ключ сервера уже был сохранен,
в этом примере он проверяется при использовании &man.scp.1;.Параметры, передаваемые &man.scp.1;, похожи на параметры
&man.cp.1;, с файлом или файлами в качестве первого аргумента и
приемником копирования во втором. Поскольку файлы файлы передаются
по сети через SSH, один или более аргументов принимают форму
.НастройкаOpenSSHнастройкаСистемные файлы настройки для даемона и клиента
OpenSSH расположены в каталоге
/etc/ssh.Файл ssh_config используется для настройки
клиента, а sshd_config для даемона.Кроме того, параметры
(по умолчанию /usr/sbin/sshd), и
rc.conf
дают дополнительные возможности настройки.ssh-keygenВместо использования паролей, с помощью &man.ssh-keygen.1;
можно создать ключи DSA или RSA, которыми
пользователи могут аутентифицироваться:&prompt.user; ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_dsa):
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_dsa.
Your public key has been saved in /home/user/.ssh/id_dsa.pub.
The key fingerprint is:
bb:48:db:f2:93:57:80:b6:aa:bc:f5:d5:ba:8f:79:17 user@host.example.com
&man.ssh-keygen.1; создаст пару публичного и приватного
ключей, используемых для аутентификации. Приватный ключ сохраняется
в ~/.ssh/id_dsa или
~/.ssh/id_rsa, а публичный в
~/.ssh/id_dsa.pub или
~/.ssh/id_rsa.pub (для ключей DSA и RSA
соответственно). Для включения
аутентификации по ключам публичный ключ должен
быть помещен в файл ~/.ssh/authorized_keys
на удаленном компьютере.Это позволяет соединяться с удаленным компьютером с помощью
SSH-ключей вместо паролей.Если при генерации ключей был использован пароль, каждый раз
для при использовании приватного ключа он будет запрашиваться
у пользователя. Для того, чтобы избежать непрерывного набора
кодовой фразы, можно использовать утилиту &man.ssh-agent.1;,
как описано в разделе
ниже.Параметры и имена файлов могут различаться для разных
версий OpenSSH, установленных в системе,
для решения проблем обратитесь к странице справочника
&man.ssh-keygen.1;.Утилиты ssh-agent и ssh-addУтилиты &man.ssh-agent.1; и &man.ssh-add.1; позволяют
сохранять ключи SSH в памяти, чтобы
не набирать кодовые фразы при каждом использовании ключа.Утилита &man.ssh-agent.1; обеспечивает процесс аутентификации
загруженными в нее секретными ключами; для этого утилита
&man.ssh-agent.1; должна запустить внешний процесс. В самом простом
случае это может быть шелл-процесс; в чуть более продвинутом —
оконный менеджер.Для использования &man.ssh-agent.1; совместно с шеллом,
&man.ssh-agent.1; должен быть запущен с именем этого шелла
в качестве аргумента. После этого в его память при помощи
утилиты &man.ssh-add.1; могут быть добавлены необходимые ключи;
при этом будут запрошены соответствующие кодовые фразы.
Добавленные ключи могут затем использоваться для &man.ssh.1;
на машины, на которых установлены соответствующие публичные
ключи:&prompt.user; ssh-agent csh
&prompt.user; ssh-add
Enter passphrase for /home/user/.ssh/id_dsa:
Identity added: /home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa)
&prompt.user;Для того чтобы использовать &man.ssh-agent.1; в X11,
вызов &man.ssh-agent.1;должен быть помещен в файл
~/.xinitrc. Это обеспечит поддержкой
&man.ssh-agent.1; все программы, запущенные в X11. Файл
~/.xinitrc может выглядеть, например,
так:exec ssh-agent startxfce4При этом будет запущен &man.ssh-agent.1;, который, в свою
очередь, вызовет запуск XFCE, при каждом
старте X11. После запуска X11, выполните команду &man.ssh-add.1;
для добавления ваших SSH-ключей.Туннелирование SSHOpenSSHтуннелированиеOpenSSH поддерживает возможность
создания туннеля для пропуска соединения по другому протоколу
через защищенную сессию.Следующая команда указывает &man.ssh.1; создать туннель для
telnet:&prompt.user; ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com
&prompt.user;Команда ssh используется со следующими
параметрами:Указывает ssh использовать версию
2 протокола (не используйте этот параметр, если работаете
со старыми SSH серверами).Означает использование в не-командном режиме, только для
туннелирования. Если этот параметр опущен,
ssh запустит обычную сессию.Указывает ssh запускаться в фоновом
режиме.Означает локальный туннель в стиле
localport:remotehost:remoteport.Удаленный сервер SSH.Туннель SSH создается путем создания прослушивающего сокета
на определенном порту localhost. Затем все
принятые на локальном хосту/порту соединения переправляются на
через SSH на определенный удаленный хост и порт.В этом примере, порт 5023 на
localhost перенаправляется на порт
23 на localhost
удаленного компьютера. Поскольку 23
это порт telnet, будет создано защищенное
соединение telnet через туннель
SSH.Этот метод можно использовать для любого числа небезопасных
протоколов, таких как SMTP, POP3, FTP, и так далее.Использование SSH для создания защищенного туннеля на
SMTP&prompt.user; ssh -2 -N -f -L 5025:localhost:25 user@mailserver.example.com
user@mailserver.example.com's password: *****
&prompt.user; telnet localhost 5025
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mailserver.example.com ESMTPЭтот метод можно использовать вместе с &man.ssh-keygen.1;
и дополнительными пользовательскими учётными записями для
создания более удобного автоматического SSH туннелирования.
Ключи могут быть использованы вместо паролей, и туннели
могут запускаться от отдельных пользователей.Практические примеры SSH туннелированияЗащищенный доступ к серверу POP3На работе находится SSH сервер, принимающий соединения
снаружи. В этой же офисной сети находится почтовый сервер,
поддерживающий протокол POP3. Сеть или сетевое соединение
между вашим домом и офисом могут быть или не быть полностью
доверяемыми. По этой причине вам потребуется проверять
почту через защищенное соединение. Решение состоит в создании
SSH соединения к офисному серверу SSH и туннелирование
через него к почтовому серверу.&prompt.user; ssh -2 -N -f -L 2110:mail.example.com:110 user@ssh-server.example.com
user@ssh-server.example.com's password: ******Когда туннель включен и работает, вы можете настроить
почтовый клиент для отправки запросов POP3 на
localhost, порт 2110. Соединение будет
безопасно переправлено через туннель на
mail.example.com.Прохождение через Драконовский БрандмауэрНекоторые сетевые администраторы устанавливают
на брандмауэрах драконовские правила,
фильтруя не только входящие соединения, но и исходящие.
Вам может быть разрешен доступ к удаленным компьютерам только
по портам 22 и 80, для SSH и просмотра сайтов.Вам может потребоваться доступ к другому (возможно, не
относящемуся к работе) сервису, такому как Ogg Vorbis
для прослушивания музыки. Если этот сервер Ogg Vorbis
выдает поток не с портов 22 или 80, вы не сможете получить
к нему доступ.Решение состоит в создании SSH соединения с компьютером
вне брандмауэра и использование его для туннелирования
сервера Ogg Vorbis.&prompt.user; ssh -2 -N -f -L 8888:music.example.com:8000 user@unfirewalled-system.example.org
user@unfirewalled-system.example.org's password: *******Клиентскую программу теперь можно настроить на
localhost порт 8888, который будет перенаправлен
на music.example.com порт 8000, успешно
обойдя брандмауэр.Параметр ограничения пользователей
AllowUsersЗачастую хорошие результаты даёт ограничение того, какие
именно пользователи и откуда могут регистрироваться в системе.
Задание параметра AllowUsers является хорошим
способом добиться этого. К примеру, для разрешения регистрации только
пользователю root с машины 192.168.1.32, в файле
/etc/ssh/sshd_config нужно указать нечто вроде
следующего:AllowUsers root@192.168.1.32Для разрешения регистрации пользователя admin
из любой точки, просто укажите имя пользователя:AllowUsers adminНесколько пользователей должны перечислять в одной строке, как
здесь:AllowUsers root@192.168.1.32 adminВажно, чтобы бы перечислили всех пользователей, которые должны
регистрироваться на этой машине; в противном случае они будут
заблокированы.После внесения изменений в
/etc/ssh/sshd_config вы должны указать
&man.sshd.8; на повторную загрузку конфигурационных файлов, выполнив
следующую команду:&prompt.root; /etc/rc.d/sshd reloadДополнительная литератураOpenSSH&man.ssh.1; &man.scp.1; &man.ssh-keygen.1;
&man.ssh-agent.1; &man.ssh-add.1; &man.ssh.config.5;&man.sshd.8; &man.sftp-server.8; &man.sshd.config.5;TomRhodesПредоставил ACLСписки контроля доступа файловой системы (ACL)В дополнение к другим расширениям файловой системы, таким как
снимки (snapshots), FreeBSD 5.0 и более поздние версии системы
предлагают защиту с помощью списков контроля доступа файловой системы
(File System Access Control Lists, ACLs).Списки контроля доступа расширяют стандартную модель прав &unix;
высоко совместимым (&posix;.1e) способом. Эта возможность позволяет
администратору получить преимущество от использования более
интеллектуальной модели безопасности.Для включения поддержки ACL в файловой
системе UFS, следующая строка:options UFS_ACLдолжна быть добавлена в файл настройки ядра. Если параметр не
добавлен, при попытке монтирования систем, поддерживающих
ACL, появится предупреждающее сообщение.
Этот параметр включен в ядро GENERIC.
ACL основывается на дополнительных атрибутах,
встроенных в файловую систему. Дополнительные атрибуты
поддерживаются по умолчанию следующим поколением файловых систем
&unix;, UFS2.Для включения дополнительных атрибутов в
UFS1 требуется больше усилий по сравнению с
UFS2. Производительность дополнительных
атрибутов в UFS2 также существенно выше.
По этим причинам для работы с списками контроля доступа
предпочтительно использование UFS2ACL включаются во время монтирования флагом
, который добавляется к
/etc/fstab. Этот флаг также можно сделать
постоянным с помощью &man.tunefs.8;, изменив флаг
ACL в заголовке файловой системы. Вообще говоря,
использование флага в суперблоке предпочтительно по нескольким
причинам:Постоянный ACL флаг не может быть изменен
путем перемонтирования системы (&man.mount.8; ),
а только через &man.umount.8; и &man.mount.8;. Это означает,
что ACL нельзя включить на корневой файловой
системе после загрузки. Это также означает, что вы не можете
изменить флаг на используемой файловой системе.Установка флага в суперблоке приводит к постоянному монтированию
файловой системы с включенным ACL, даже если
нет записи в fstab или при смене порядка
устройств. Это предотвращает случайное монтирование файловой
системы без ACL, которое может повлечь за
собой проблемы с безопасностью.Мы можем изменить поведение ACL для
включения флага без полного перемонтирования, но считаем, что
желательно исключить случайное монтирование без
ACL, поскольку вы можете попасть в неприятную
ситуацию, если включите ACL, затем выключите
их, затем опять включите без сброса расширенных атрибутов.
Обычно, как только вы включили ACL в файловой
системе, они не должны быть выключены, поскольку получающаяся
защита файлов может быть не совместима с той, что применяется
пользователями системы, и повторное включение ACL
может подключить предыдущие списки контроля доступа к файлам,
права на которые изменены, что приведет к непредсказуемому
поведению.Файловые системы с включенными ACLs показывают
знак + при просмотре прав на файлы.
Например:drwx------ 2 robert robert 512 Dec 27 11:54 private
drwxrwx---+ 2 robert robert 512 Dec 23 10:57 directory1
drwxrwx---+ 2 robert robert 512 Dec 22 10:20 directory2
drwxrwx---+ 2 robert robert 512 Dec 27 11:57 directory3
drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_htmlЗдесь мы видим, что каталоги directory1,
directory2, и directory3
используют преимущества ACL. Каталог
public_html их не использует.Использование ACLACL файловой системы можно просмотреть
с помощью утилиты &man.getfacl.1;. Например, для просмотра
настроек ACL файла
test, может использоваться команда:&prompt.user; getfacl test
#file:test
#owner:1001
#group:1001
user::rw-
group::r--
other::r--Для изменения ACL этого файла,
вызовите утилиту &man.setfacl.1;. Выполните:&prompt.user; setfacl -k testПараметр удалит все установленные
на данный момент ACL из файла или файловой
системы. Более предпочтительный метод это использование
параметра , который оставит необходимые
для работы ACL поля.&prompt.user; setfacl -m u:trhodes:rwx,group:web:r--,o::--- testВ вышеприведенной команде параметр
использован для изменения записей ACL
по умолчанию. Поскольку предустановленных записей не было (они были
удалены предыдущей командой), эта команда восстановит параметры
по умолчанию и задаст приведенные параметры. Имейте ввиду,
при добавлении пользователя или группы, которых нет в системе,
на stdout будет выведена ошибка
Invalid argument.ТомРодесТекст предоставил PortauditМониторинг вопросов безопасности в ПО сторонних
разработчиковВ последние годы в области информационной безопасности произошло
много улучшений, касающихся выработки оценки уязвимости. Угроза
проникновения в систему увеличивается вместе с установкой и настройкой
утилит сторонних разработчиков, какой бы современной операционной
системы это ни касалось.Оценка уязвимости является ключевым фактором обеспечения защиты, и
хотя для базового комплекта &os; выпускаются бюллетени безопасности, но
делать это для каждой сторонней утилиты выше возможностей участников
Проекта &os;. Существует способ смягчения уязвимостей программного
обеспечения сторонних разработчиков и предупреждения администраторов об
известных проблемах с безопасностью. Во &os; существует утилита под
названием Portaudit, которая служит
исключительно этой цели.Порт security/portaudit обращается
к базе данных, обновляемой и поддерживаемой Группой информационной
безопасности &os; и разработчиками портов, для получения информации об
известных проблемах с защитой.Для того, чтобы приступить к использованию
Portaudit, необходимо установить его из
Коллекции Портов:&prompt.root; cd /usr/ports/security/portaudit && make install cleanВ процессе установки будут обновлены конфигурационные файлы для
&man.periodic.8;, в которые будет добавлена выдача
Portaudit при ежедневном её запуске.
Проверьте, что ежедневные сообщения электронной почты, касающиеся
безопасности, которые посылаются на адрес root,
прочитываются. Другой дополнительной настройки больше не
понадобится.После установки администратор может обновить базу данных
и посмотреть список известных уязвимостей в установленных пакетах
при помощи команды&prompt.root; portaudit -FdaБаза данных будет автоматически обновлена при запуске
&man.periodic.8;; таким образом, предыдущая команду можно полностью
опустить. Она требуется только для следующих примеров.Для аудита утилит сторонних разработчиков, установленных как часть
Коллекции Портов, администратору достаточно запускать только следующую
команду:&prompt.root; portaudit -aУтилита portaudit выдаст примерно
следующее:Affected package: cups-base-1.1.22.0_1
Type of problem: cups-base -- HPGL buffer overflow vulnerability.
Reference: <http://www.FreeBSD.org/ports/portaudit/40a3bca2-6809-11d9-a9e7-0001020eed82.html>
1 problem(s) in your installed packages found.
You are advised to update or deinstall the affected package(s) immediately.Перейдя в Web-браузере по показанному URL,
администратор может получить более подробную информацию о показанной
уязвимости. В неё войдёт перечисление версий, затронутых
соответствующей версией порта &os;, а также другие Web-сайты, которые
могут содержать бюллетени безопасности.Если описывать вкратце, то Portaudit
является мощной и, при использовании вместе с портом
Portupgrade, чрезвычайно полезной
утилитой.TomRhodesПредоставил Сообщения безопасности FreeBSDСообщения безопасности &os;Как многие и высококачественные операционные системы, &os;
публикует Сообщения безопасности (Security
Advisories). Эти сообщения обычно отправляются по почте
в списки рассылки, посвященные безопасности и публикуются
в списке проблем только после выхода исправлений к соответствующим
релизам. В этом разделе разъясняется, что такое сообщения безопасности,
как их читать и какие меры принимать для исправления системы.Как выглядит сообщение?Сообщение безопасности &os; выглядит подобно сообщению ниже,
взятому из списка рассылки &a.security-notifications.name;.=============================================================================
&os;-SA-XX:XX.UTIL Security Advisory
The &os; Project
Topic: denial of service due to some problem
Category: core
Module: sys
Announced: 2003-09-23
Credits: Person@EMAIL-ADDRESS
Affects: All releases of &os;
&os; 4-STABLE prior to the correction date
Corrected: 2003-09-23 16:42:59 UTC (RELENG_4, 4.9-PRERELEASE)
2003-09-23 20:08:42 UTC (RELENG_5_1, 5.1-RELEASE-p6)
2003-09-23 20:07:06 UTC (RELENG_5_0, 5.0-RELEASE-p15)
2003-09-23 16:44:58 UTC (RELENG_4_8, 4.8-RELEASE-p8)
2003-09-23 16:47:34 UTC (RELENG_4_7, 4.7-RELEASE-p18)
2003-09-23 16:49:46 UTC (RELENG_4_6, 4.6-RELEASE-p21)
2003-09-23 16:51:24 UTC (RELENG_4_5, 4.5-RELEASE-p33)
2003-09-23 16:52:45 UTC (RELENG_4_4, 4.4-RELEASE-p43)
2003-09-23 16:54:39 UTC (RELENG_4_3, 4.3-RELEASE-p39)
-&os; only: NO
+CVE Name: CVE-XXXX-XXXX
For general information regarding FreeBSD Security Advisories,
including descriptions of the fields above, security branches, and the
following sections, please visit
http://www.FreeBSD.org/security/.
I. Background
II. Problem Description
III. Impact
IV. Workaround
V. Solution
VI. Correction details
VII. ReferencesПоле Topic показывает в чем именно
заключается проблема. Это обычно введение в сообщение
безопасности, упоминающее утилиту, в которой возникла
ошибка.Поле Category относится к затронутой части
системы и может быть выбрана из core,
contrib, или ports.
Категория core означает, что
уязвимость затрагивает основной компонент операционной системы
&os;. Категория contrib означает, что
уязвимость затрагивает программы, предоставленные проекту
&os;, например sendmail. Наконец,
категория ports означает, что уязвимость
затрагивает программное обеспечение, доступное из Коллекции
Портов.Поле Module указывает на местоположение
компонента, например sys. В этом примере
мы видим, что затронут модуль sys,
следовательно, эта уязвимость относится к компоненту,
используемому в ядре.Поле Announced отражает дату публикации
сообщения безопасности, или его анонсирования. Это означает,
что команда обеспечения безопасности убедилась, что проблема
существует и что патч помещён в хранилище исходных текстов
&os;.Поле Credits упоминает частное лицо или
организацию, обнаружившую уязвимость и сообщившую о ней.Поле Affects дает информацию о релизах
&os;, к которым относится данная уязвимость. Для базовой
системы, просмотр вывода команды ident
для файлов, затронутых уязвимостью, поможет определить
ревизию. Номер версии портов приведен после имени порта
в каталоге /var/db/pkg. Если система
не синхронизируется с CVS-хранилищем
&os; и не пересобирается ежедневно, высок шанс, что
она затронута уязвимостью.Поле Corrected показывает дату, время,
смещение во времени и релиз, в котором исправлена ошибка.
-
- Поле &os; only показывает, существует
- ли эта уязвимость только в &os;, или затрагивает и другие
- системы.
-
+
+ Зарезервировано для идентификации уязвимости в общей базе
+ данных CVD (Common Vulnerabilities Database).Поле Background дает информацию именно
о той утилите, для которой выпущено сообщение. Как правило
информация о том, зачем утилита присутствует в &os;, для
чего она используется, и немного информации о том, как
появилась эта утилита.Поле Problem Description дает более
глубокие разъяснения возникшей проблемы. Оно может включать
информацию об ошибочном коде, или даже о том, как утилита
может быть использована для создания бреши в системе
безопасности.Поле Impact описывает тип воздействия,
который проблема может оказать на систему. Это может быть
все, что угодно, от атаки на отказ в обслуживании до
получения пользователями дополнительных привилегий, или
даже получения атакующим прав суперпользователя.Поле Workaround предлагает тем,
системным администраторам, которые не могут обновить систему,
обходной путь решения проблемы. Он может пригодиться при
недостатке времени, отсутствии подключения к сети или по
массе других причин. В любом случае, к безопасности нельзя
относиться несерьезно, и необходимо либо применить указанный
обходной путь, либо исправить систему.Поле Solution предлагает инструкции по
исправлению затронутой системы. Это пошаговое руководство,
протестированный метод восстановления безопасности системы.Поле Correction Details показывает
ветвь CVS (имя релиза с точками, замененными
на символы подчеркивания). Здесь также показан номер ревизии
каждого файла из каждой ветви.Поле References обычно упоминает
другие источники информации. Это могут быть Web-страницы,
книги, списки рассылки и группы новостей.ТомРодесТекст предоставил Учёт используемых ресурсовУчёт используемых ресурсовУчёт используемых процессами ресурсов представляет собой метод
защиты, при котором администратор может отслеживать использование
системных ресурсов и их распределение между пользователями для нужд
системного мониторинга и минимального отслеживания команд
пользователей.На самом деле здесь есть свои положительный и отрицательные моменты.
Положительной стороной является то, что проникновение может быть
отслежено до первоначальной точки входа. Отрицательной стороной
является объём протоколов, который генерируется при мониторинге, и
соответствующие требования к дисковому пространству. В этом разделе
администратору даются основы учёта ресурсов процессов.Активация и использование учёта ресурсовПрежде чем использовать систему учёта ресурсов, её необходимо
активировать. Для этого выполните следующие команды:&prompt.root; touch /var/account/acct
&prompt.root; accton /var/account/acct
&prompt.root; echo 'accounting_enable="YES"' >> /etc/rc.confПосле активации система учёта ресурсов начнёт отслеживать
статистику CPU, команд и так далее. Все протоколы
учёта ведутся в формате, недоступном для чтения человеком, и могут
просматриваться при помощи утилиты &man.sa.8;. Запущенная без
параметров, sa выдаст информацию, относящуюся к
количеству вызовов в расчёте на каждого пользователя, общее
затраченное время в минутах, общее время CPU и
пользователя в минутах, среднее количество операций ввода/вывода и
так далее.Для просмотра информации о запущенных командах, необходимо
воспользоваться утилитой &man.lastcomm.1;. Команду
lastcomm можно использовать, например, для выдачи
списка директив, выданных пользователями определённого терминала
&man.ttys.5;:&prompt.root; lastcomm ls trhodes ttyp1Эта команда выдаст все зафиксированные использования команды
ls пользователем trhodes на
терминале ttyp1.Существует многие другие полезные параметры, которые описаны на
соответствующих справочных страницах &man.lastcomm.1;, &man.acct.5; и
&man.sa.8;.