Команда ifconfig
Команда может использоваться для установки многих из тех параметров, что задаёт wicontrol(8), однако работа с некоторыми параметрами в ней отсутствует. Обратитесь к ifconfig(8) для выяснения параметров и опций командной строки.
Конфигурация FreeBSD как клиента беспроводной сети
Перед тем, как подключиться к беспроводной сети, вам нужно будет узнать о ней несколько вещей. В этом примере мы подключаемся к сети, которая называется my_net, и шифрование в ней отключено.
Замечание: В этом примере мы не используем шифрование, но это небезопасно. В следующем разделе вы узнаете, как её включить, почему это так важно, и почему некоторые технологии шифрования всё же не могут полностью обеспечить вашу информационную безопасность.
Удостоверьтесь, что ваш адаптер распознаётся во FreeBSD:
# ifconfig -a
wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7 inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255 ether 00:09:2d:2d:c9:50 media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps) status: no carrier ssid "" stationname "FreeBSD Wireless node" channel 10 authmode OPEN powersavemode OFF powersavesleep 100 wepmode OFF weptxkey 1
Теперь мы можем изменить настройки адаптера на те, что соответствуют нашей сети:
# ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_net
Замените 192.168.0.20 и 255.255.255.0
на правильные IP-адрес и сетевую маску в вашей проводной сети. Запомните, что наша точка доступа выступает в роли моста для данных между беспроводной и проводной сетями, так что они будут доступны для других устройств, находящихся в сети, как будто они тоже находятся в проводной сети.
Как только вы это выполнили, то сможете получить ping от хостов в проводной сети, как будто вы подключены посредством обычных проводов.
Если вы столкнулись с проблемами при работе в беспроводной сети, удостоверьтесь, что вы ассоциированы (подключены) с точкой доступа:
# ifconfig wi0
должна выдать некоторую информацию, и вы должны увидеть:
status: associated
Если статус не будет соответствовать associated, это может значить, что вы оказались вне зоны досягаемости точки доступа, включили шифрование или, возможно, имеются проблемы с конфигурацией.
Конфигурация с использованием ISC DHCP
Сервер ISC DHCP может обрабатывать как запросы BOOTP, так и запросы DHCP.
Начиная с релиза 4.9, ISC DHCP 3.0 не включается в поставку системы. Сначала вам нужно будет установить порт net/isc-dhcp3-server или соответствующий пакет.
После установки ISC DHCP ему для работы требуется конфигурационный файл (обычно называемый /usr/local/etc/dhcpd.conf). Вот прокомментированный пример, где хост margaux использует Etherboot, а хост corbieres использует PXE:
default-lease-time 600; max-lease-time 7200; authoritative;
option domain-name "example.com"; option domain-name-servers 192.168.4.1; option routers 192.168.4.1;
subnet 192.168.4.0 netmask 255.255.255.0 { use-host-decl-names on;
option subnet-mask 255.255.255.0; option broadcast-address 192.168.4.255;
host margaux { hardware ethernet 01:23:45:67:89:ab; fixed-address margaux.example.com; next-server 192.168.4.4;
filename "/data/misc/kernel.diskless";
option root-path "192.168.4.4:/data/misc/diskless";
} host corbieres { hardware ethernet 00:02:b3:27:62:df; fixed-address corbieres.example.com; next-server 192.168.4.4; filename "pxeboot"; option root-path "192.168.4.4:/data/misc/diskless"; } }
Этот параметр указывает dhcpd посылать значения деклараций host как имя хоста для бездисковой машины. Альтернативным способом было бы добавление option host-name margaux внутри объявлений host.
Директива next-server определяет сервер TFTP или NFS, используемый для получения загрузчика или файла ядра (по умолчанию используется тот же самый хост, на котором расположен сервер DHCP).
Директива filename определяет файл, который Etherboot или PXE будут загружать для следующего шага выполнения. Он должен быть указан в соответствии с используемым методом передачи. Etherboot может быть скомпилирован для использования NFS или TFTP. FreeBSD порт по умолчанию использует NFS. PXE использует TFTP, поэтому здесь применяются относительные пути файлов (это может зависеть от настроек TFTP сервера, но обычно довольно типично). Кроме того, PXE загружает pxeboot, а не ядро. Существуют другие интересные возможности, такие как загрузка pxeboot из каталога /boot FreeBSD CD-ROM (поскольку pxeboot(8) может загружать GENERIC ядро, это делает возможной загрузку с удаленного CD-ROM).
Параметр root-path определяет путь к корневой файловой системе, в обычной нотации NFS. При использовании PXE, можно оставить IP хоста отключенным, если параметр ядра BOOTP не используется. Затем NFS сервер может использоваться так же, как и TFTP.
Краткий обзор
Эта глава посвящена некоторым наиболее часто используемым сетевым службам систем UNIX®. Мы опишем, как установить, настроить, протестировать и поддерживать многие различные типы сетевых сервисов. Для облегчения вашей работы в главу включены примеры конфигурационных файлов.
После чтения этой главы вы будете знать:
Как управлять даемоном inetd.
Как настроить сетевую файловую систему.
Как настроить сетевой сервер информации для совместного использования учётных записей пользователей.
Как настроить автоматическое конфигурирование сетевых параметров при помощи DHCP.
Как настроить сервер имён.
Как настроить Apache HTTP сервер.
Как настроить файловый и принт сервер для Windows® клиентов с использованием Samba.
Как синхронизировать дату и время, а также настроить сервер времени с протоколом NTP.
Перед чтением этой главы вы должны:
Понимать основы работы скриптов /etc/rc.
Свободно владеть основными сетевыми терминами.
Знать как устанавливать дополнительные программы сторонних разработчиков (Гл. 4).
Кто использует FreeBSD?
FreeBSD используется в качестве платформы на некоторых крупнейших сайтах в интернет, включая:
и на многих других.
Logical Link Control and Adaptation Protocol (L2CAP)
Протокол L2CAP (Logical Link Control and Adaptation Protocol) предоставляет услуги по работе с данными, как ориентированные на соединения, так и без ориентации на них, протоколам более высокого уровня с возможностями мультиплексирования и обеспечением операций по сегментации и обратной сборке. L2CAP позволяет протоколам более высокого уровня и приложениям передавать и получать пакеты данных L2CAP длиной до 64 Кбайт.
L2CAP основан на концепции каналов. Каналом является логическое соединение поверх соединения по радиоканалу. Каждый канал привязан к некоторому протоколу по принципу многие-к-одному. Несколько каналов могут быть привязаны к одному и тому же протоколу, но канал не может быть привязан к нескольким протоколам. Каждый пакет L2CAP, получаемый каналом, перенаправляется к соответствующему протоколу более высокого уровня. Несколько каналов могут совместно использовать одно и то же радиосоединение.
Для одного Bluetooth-устройства создается один узел Netgraph типа l2cap. Узел L2CAP обычно подключается к узлу Bluetooth HCI (нижестоящий) и узлам Bluetooth-сокетов (вышестоящие). По умолчанию для узла L2CAP используется имя ``devicel2cap''. Для получения дополнительной информации обратитесь к справочной странице по ng_l2cap(4).
Полезной является программа l2ping(8), которая может использоваться для проверки связи с другими устройствами. Некоторые реализации Bluetooth могут не возвращать все данные, посылаемые им, так что 0 bytes в следующем примере - это нормально.
# l2ping -a 00:80:37:29:19:a4
0 bytes from 0:80:37:29:19:a4 seq_no=0 time=48.633 ms result=0 0 bytes from 0:80:37:29:19:a4 seq_no=1 time=37.551 ms result=0 0 bytes from 0:80:37:29:19:a4 seq_no=2 time=28.324 ms result=0 0 bytes from 0:80:37:29:19:a4 seq_no=3 time=46.150 ms result=0
Утилита используется для выполнения различных операций с узлами L2CAP. В этом примере показано, как получить список логических соединений (каналов) и перечень радиосоединений локального устройства:
% l2control -a 00:02:72:00:d4:1a read_channel_list
L2CAP channels: Remote BD_ADDR SCID/ DCID PSM IMTU/ OMTU State 00:07:e0:00:0b:ca 66/ 64 3 132/ 672 OPEN % l2control -a 00:02:72:00:d4:1a read_connection_list
L2CAP connections: Remote BD_ADDR Handle Flags Pending State 00:07:e0:00:0b:ca 41 O 0 OPEN
Ещё одним диагностическим инструментом является btsockstat(1). Она выполняет действия, подобные тем, что обычно выполняет netstat(1), но со структурами данных, связанных с работой в сети Bluetooth. В примере ниже описывается то же самое логическое соединение, что и с l2control(8) выше.
% btsockstat
Active L2CAP sockets PCB Recv-Q Send-Q Local address/PSM Foreign address CID State c2afe900 0 0 00:02:72:00:d4:1a/3 00:07:e0:00:0b:ca 66 OPEN Active RFCOMM sessions L2PCB PCB Flag MTU Out-Q DLCs State c2afe900 c2b53380 1 127 0 Yes OPEN Active RFCOMM sockets PCB Recv-Q Send-Q Local address Foreign address Chan DLCI State c2e8bc80 0 250 00:02:72:00:d4:1a 00:07:e0:00:0b:ca 3 6 OPEN
Маршрутизация многоадресного трафика
FreeBSD изначально поддерживает как приложения, работающие с многоадресным трафиком, так и его маршрутизацию. Такие приложения не требуют особой настройки FreeBSD; обычно они работают сразу. Для маршрутизации многоадресного трафика требуется, чтобы поддержка этого была включена в ядро:
options MROUTING
Кроме того, даемон многоадресной маршрутизации, mrouted(8), должен быть настроен посредством файла /etc/mrouted.conf на использование туннелей и DVMRP. Дополнительную информацию о настройки многоадресного трафика можно найти на страницах справочной системы, посвящённых даемону mrouted(8).
Маршруты по умолчанию
Когда локальной системе нужно установить соединение с удаленным хостом, она обращается к таблице маршрутов для того, чтобы определить, существует ли такой маршрут. Если удаленный хост попадает в подсеть, для которой известен способ ее достижения (маршруты типа Cloned), то система определяет возможность подключиться к ней по этому интерфейсу.
Если все известные маршруты не подходят, у системы имеется последняя возможность: маршрут ``default''. Это маршрут с особым типом сетевого шлюза (обычно единственным, присутствующим в системе), и в поле флагов он всегда помечен как c. Для хостов в локальной сети этот сетевой шлюз указывает на машину, имеющую прямое подключение к внешнему миру (неважно, используется ли связь по протоколу PPP, канал DSL, кабельный модем, T1 или какой-то другой сетевой интерфейс).
Если вы настраиваете маршрут по умолчанию на машине, которая сама является сетевым шлюзом во внешний мир, то маршрутом по умолчанию будет являться сетевой шлюз у Вашего провайдера Интернет (ISP).
Давайте взглянем на примеры маршрутов по умолчанию. Вот типичная конфигурация:
Хосты Local1 и Local2 находятся в нашей сети. Local1 подключён к ISP через коммутируемое соединение по протоколу PPP. Этот компьютер с сервером PPP подключён посредством локальной сети к другому шлюзовому компьютеру через внешний интерфейс самого ISP к Интернет.
Маршруты по умолчанию для каждой из ваших машин будут следующими:
Local2 | Local1 | Ethernet |
Local1 | T1-GW | PPP |
Часто задаётся вопрос ``Почему (или каким образом) в качестве шлюза по умолчанию для машины Local1 мы указываем T1-GW, а не сервер провайдера, к которому подключаемся?''.
Запомните, что из-за использования PPP-интерфейсом адреса в сети провайдера Интернет с вашей стороны соединения, маршруты для всех других машин в локальной сети провайдера будут сгенерированы автоматически. Таким образом, вы уже будете знать, как достичь машины T1-GW, так что нет нужды в промежуточной точке при посылке трафика к серверу ISP.
В локальных сетях адрес X.X.X.1 часто используется в качестве адреса сетевого шлюза. Тогда (при использовании того же самого примера) если пространство адресов класса C вашей локальной сети было задано как 10.20.30, а ваш провайдер использует 10.9.9, то маршруты по умолчанию будут такие:
Local2 (10.20.30.2) | Local1 (10.20.30.1) |
Local1 (10.20.30.1, 10.9.9.30) | T1-GW (10.9.9.1) |
defaultrouter="10.20.30.1"
Это также возможно сделать и непосредственно из командной строки при помощи команды route(8):
# route add default 10.20.30.1
Для получения дополнительной информации об управлении таблицами маршрутизации, обратитесь к справочной странице по команде route(8).
Межсетевой экран с возможностями фильтрации/ограничения пропускной способности трафика
Второй распространенной ситуацией является необходимость в обеспечении функций межсетевого экрана без трансляции сетевых адресов (NAT).
Для примера можно взять маленькую компанию, которая подключена к своему провайдеру по каналу DSL или ISDN. Для неё провайдер выделил 13 глобально доступных IP-адресов для имеющихся в сети 10 персональных компьютеров. В такой ситуации использование межсетевого экрана на основе маршрутизатора затруднено из-за проблем с разделением на подсети.
Межсетевой экран на основе моста может быть настроен и включен между маршрутизаторами DSL/ISDN без каких-либо проблем с IP-адресацией.
Mod_perl
Проект интеграции Apache/Perl объединяет мощь языка программирования Perl и HTTP сервера Apache. С модулем mod_perl возможно написание модулей Apache полностью на Perl. Кроме того, постоянно запущенный встроенный в сервер интерпретатор позволяет не тратить ресурсы на запуск внешнего интерпретатора и время на запуск Perl.
Если вы еще не установили Apache, его версия с модулем mod_perl может быть установлена через порт www/apache13-modperl.
Mod_ssl
Модуль mod_ssl использует библиотеку OpenSSL для сильной криптографии через протоколы Secure Sockets Layer (SSL v2/v3) и Transport Layer Security (TLS v1). Этот модуль содержит все необходимое для запроса подписанного сертификата из центра сертификации для защищенного веб сервера на FreeBSD.
Если вы еще не установили Apache, версия Apache с mod_ssl может быть установлена через порт www/apache13-modssl.
Модули Apache
Существуют множество различных модулей Apache, которые добавляют функциональность к основному серверу. Коллекция портов FreeBSD предоставляет простой способ установки Apache с некоторыми наиболее популярными дополнительными модулями.
Настройка
В FreeBSD основной файл настройки Apache HTTP сервера
устанавливается в /usr/local/etc/apache/httpd.conf. Это обычный текстовый UNIX® файл настройки с строками комментариев, начинающимися с символа #. Исчерпывающее описание всех возможных параметров настройки находится за пределом рассмотрения этой книги, поэтому здесь будут описаны только наиболее часто модифицируемые директивы.
ServerRoot "/usr/local"
Указывает верхний каталог установки Apache по умолчанию. Бинарные файлы находятся в bin и sbin, подкаталоги расположены относительно корневого каталога сервера, файлы настройки находятся в etc/apache.
ServerAdmin you@your.address
Адрес, на который должны будут отправляться сообщения о проблемах с сервером. Этот адрес выводится на некоторые генерируемые сервером страницы, например с сообщениями об ошибках.
ServerName www.example.com
ServerName позволяет вам устанавливать имя хоста, которое отправляется обратно клиентам, если оно отличается от того, с которым настроен хост (например, использование www вместо реального имени хоста).
DocumentRoot "/usr/local/www/data"
DocumentRoot: Каталог, внутри которого будут храниться документы. По умолчанию, все запросы обрабатываются внутри этого каталога, но символические ссылки и синонимы могут использоваться для указания на другие каталоги.
Хорошей идеей будет сделать резервные копии настроек Apache
перед внесением изменений. Как только вы будете удовлетворены первоначальной настройкой, можно запускать Apache.
Наиболее важный шаг заключается в определении того, каким учетным записям будет позволено получать доступ к FTP серверу. В обычной системе FreeBSD есть множество системных учетных записей, используемых различными даемонами, но пользователям должно быть запрещен вход с использованием этих учетных записей. В файле /etc/ftpusers находится список пользователей, которым запрещен доступ по FTP. По умолчанию он включает упомянутые системные учетные записи, но в него можно добавить и определенных пользователей, которым будет запрещен доступ по FTP.
Вам может понадобиться ограничить доступ определенных пользователей без полного запрета использования FTP. Это можно сделать через файл /etc/ftpchroot. В нем находится список пользователей и групп, к которым применяется ограничение доступа. На странице справочника ftpchroot(5) дана подробная информация, и она не будет дублироваться здесь.
Если вы захотите разрешить анонимный FTP доступ на сервер, в системе FreeBSD необходимо создать пользователя ftp. Этот пользователь сможет входить на FTP сервер с именем пользователя ftp или anonymous, с любым паролем (существует соглашение об использовании почтового адреса пользователя в качестве пароля). FTP сервер выполнит chroot(2) при входе пользователя anonymous для ограничения доступа только домашним каталогом пользователя ftp.
Существуют два текстовых файла, определяющих сообщение, отправляемое FTP клиентам. Содержимое файла /etc/ftpwelcome будет выведено пользователям перед приглашением на вход. После успешного входа будет выведено содержимое файла /etc/ftpmotd. Обратите внимание, что путь к этому файлу задается относительно домашнего каталога пользователя, так что анонимным пользователям будет отправляться ~ftp/etc/ftpmotd.
Как только FTP сервер был правильно настроен, он должен быть включен в /etc/inetd.conf. Все, что необходимо, это удалить символ комментария ``#'' из начала существующей строки ftpd:
ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l
Как описано в , сигнал HangUP должен быть отправлен inetd после того, как этот файл настройки был изменен.
Теперь вы можете войти на FTP сервер, введя:
% ftp localhost
Из-за исчерпания пространства адресов в IPv4 и увеличения количества пользователей высокоскоростных каналов связи, таких, как кабельное подключение или DSL, необходимость в решении по Совместному Использованию Интернет растёт. Возможность подключить несколько компьютеров через единственное соединение и IP-адрес делает natd(8) подходящим решением.
Чаще всего у пользователя имеется машина, подключенная к кабельному каналу или каналу DSL с одним IP-адресом и есть желание использовать этот единственный подключенный компьютер для организации доступа в Интернет другим компьютерам в локальной сети.
Для этого машина FreeBSD, находящаяся в Интернет, должна выступать в роли шлюза. Эта шлюзовая машина должна иметь два сетевых адаптера--один для подключения к маршрутизатору Интернет, а другой для подключения к ЛВС. Все машины в локальной сети подключаются через сетевой концентратор или коммутатор.
Подобная конфигурация часто используется для совместного использования доступа в Интернет. Одна из подключенных к локальной сети машин подключается к Интернет. Остальные машины работают с Интернет посредством этой ``шлюзовой'' машины.
В файле конфигурации ядра должны присутствовать следующие параметры:
options IPFIREWALL options IPDIVERT
Дополнительно, если это нужно, можно добавить следующее:
options IPFIREWALL_DEFAULT_TO_ACCEPT options IPFIREWALL_VERBOSE
В файле /etc/rc.conf должны быть такие строки:
natd_enable="YES" natd_interface="fxp0"
Указывает машине выступать в качестве шлюза. Выполнение команды sysctl net.inet.ip.forwarding=1 приведёт к тому же самому результату.
При загрузке включает использование правил межсетевого экрана из файла /etc/rc.firewall.
Здесь задается предопределенный набор правил межсетевого экрана, который разрешает все. Посмотрите файл /etc/rc.firewall для нахождения дополнительных типов.
Указывает, через какой интерфейс передавать пакеты (интерфейс, подключенный к Интернет).
Любые дополнительный параметры, передаваемые при запуске даемону natd(8).
При использовании вышеуказанных параметров в файле /etc/rc.conf при загрузке будет запущена команда natd -interface fxp0. Эту команду можно запустить и вручную.
Замечание: Если для передачи natd(8) набирается слишком много параметров, возможно также использовать конфигурационный файл. В этом случае имя настроечного файла должно быть задано добавлением следующей строки в /etc/rc.conf:
natd_flags="-f /etc/natd.conf"
Файл /etc/natd.conf будет содержать перечень конфигурационных параметров, по одному в строке. К примеру, для примера из следующего раздела будет использоваться такой файл:
redirect_port tcp 192.168.0.2:6667 6667 redirect_port tcp 192.168.0.3:80 80
Для получения более полной информации о конфигурационном файле прочтите страницу справки по относительно параметра -f.
Каждой машине и интерфейсу в ЛВС должен быть назначен IP-адрес из адресного пространства частных сетей, как это определено в RFC 1918, а в качестве маршрутизатора по умолчанию должен быть задан IP-адрес машины с natd из внутренней сети.
Например, клиенты A и B в ЛВС имеют IP-адреса 192.168.0.2 и 192.168.0.3, а интерфейс машины с natd в локальной сети имеет IP-адрес 192.168.0.1. Маршрутизатором по умолчанию для клиентов A и B должна быть назначена машина с natd, то есть 192.168.0.1. Внешний, или Интернет-интерфейс машины с natd не требует особых настроек для работы .
Файл настройки Samba по умолчанию устанавливается в /usr/local/etc/smb.conf.default. Этот файл необходимо скопировать в /usr/local/etc/smb.conf и отредактировать перед использованием Samba.
В файле smb.conf находится информация, необходимая для работы Samba, например определение принтеров и ``общих каталогов'', которые будут использоваться совместно с Windows клиентами. В пакет Samba
входит программа с веб интерфейсом, называемая swat, которая дает простой способ редактирования файла smb.conf.
Первым делом убедитесь, что ваша система распознаёт адаптер беспроводной связи:
# ifconfig -a
wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7 inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255 ether 00:09:2d:2d:c9:50 media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps) status: no carrier ssid "" stationname "FreeBSD Wireless node" channel 10 authmode OPEN powersavemode OFF powersavesleep 100 wepmode OFF weptxkey 1
На данном этапе не беспокойтесь о деталях, просто убедитесь, что выдаётся нечто, указывающее на установленный адаптер беспроводной связи. Если при этом у вас есть проблемы с недоступностью интерфейса беспроводной связи, и вы используете PC Card, то обратитесь к страницам справочной системы, описывающим pccardc(8) и pccardd(8) для получения более полной информации.
Теперь вам нужно загрузить модуль для подготовки той части FreeBSD, что отвечает за организацию сетевых мостов, для работы с точкой доступа. Для загрузки модуля bridge(4) просто выполните следующую команду:
# kldload bridge
При загрузке модуля никаких сообщений об ошибках быть не должно. Если это всё же произошло, вам может потребоваться вкомпилировать код для модуля bridge(4) в ядро. В этом вам должен помочь раздел этого Руководства об организации сетевых мостов.
Теперь, когда вы завершили с той частью, что касается организации сетевого моста, нам нужно указать ядру FreeBSD, какие интерфейсы должны объединяться в сетевом мосте. Это мы делаем при помощи sysctl(8):
# sysctl net.link.ether.bridge=1
# sysctl net.link.ether.bridge_cfg="wi0,xl0"
# sysctl net.inet.ip.forwarding=1
Во FreeBSD5.2-RELEASE и последующих версиях нужно использовать вместо указанных следующие параметры:
# sysctl net.link.ether.bridge.enable=1
# sysctl net.link.ether.bridge.config="wi0,xl0"
# sysctl net.inet.ip.forwarding=1
Теперь необходимо настроить адаптер беспроводной сети. Следующая команда заставит адаптер работать в режиме точки доступа:
# ifconfig wi0 ssid my_net channel 11 media DS/11Mbps mediaopt hostap up stationname "FreeBSD AP"
Строчка активизирует интерфейс wi0, конфигурирует его SSID как my_net, а имя станции как FreeBSD AP. media DS/11Mbps переводит адаптер в режим 11Mbps и нужен только для того, чтобы сработал параметр mediaopt. Параметр mediaopt hostap переводит интерфейс в режим точки доступа. Параметр channel 11 задаёт использование канала 802.11b. Страница справки по команде wicontrol(8)
перечисляет корректные значения каналов для ваших нужд.
Теперь у вас должна получиться полнофункциональная работающая точка доступа. Настоятельно советуем прочесть страницы справочной по wicontrol(8), ifconfig(8), и wi(4) для получения дополнительной информации.
Также полагаем, что вы прочтёте следующий раздел о шифровании.
Настройка клиента NIS
Настройка машины с 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.
Настройка NFS
Настройка NFS является достаточно незамысловатым процессом. Все процессы, которые должны быть запущены, могут быть запущены во время загрузки посредством нескольких модификаций в вашем файле /etc/rc.conf.
Проверьте, что на NFS-сервере в файле /etc/rc.conf имеются такие строки:
portmap_enable="YES" nfs_server_enable="YES" nfs_server_flags="-u -t -n 4" mountd_flags="-r"
mountd запускается автоматически, если включена функция сервера NFS.
На клиенте убедитесь, что в файле /etc/rc.conf присутствует такой параметр:
nfs_client_enable="YES"
Файл /etc/exports определяет, какие файловые системы на вашем сервере NFS будут экспортироваться (иногда их называют ``совместно используемыми''). Каждая строка в /etc/exports задаёт файловую систему, которая будет экспортироваться и какие машины будут иметь к ней доступ. Кроме машин, имеющих доступ, могут задаваться другие параметры, влияющие на характеристики доступа. Имеется полный набор параметров, которые можно использовать, но здесь пойдёт речь лишь о некоторых из них. Описания остальных параметров можно найти на страницах справочной системы по exports(5).
Вот несколько примерных строк из файла /etc/exports:
В следующих примерах даётся общая идея того, как экспортировать файловые системы, хотя конкретные параметры могут отличаться в зависимости от ваших условий и конфигурации сети. К примеру, чтобы экспортировать каталог /cdrom для трёх машин, находящихся в том же самом домене, что и сервер (поэтому отсутствует доменное имя для каждой машины) или для которых имеются записи в файле /etc/hosts. Флаг -ro указывает на использование экспортируемой файловой системы в режиме только чтения. С этим флагом удалённая система не сможет никоим образом изменить экспортируемую файловую систему.
/cdrom -ro host1 host2 host3
В следующей строке экспортируется файловая система /home, которая становится доступной трем хостам, указанным по их IP-адресам. Это полезно, если у вас есть собственная сеть без настроенного сервера DNS.
Как вариант, файл /etc/hosts
может содержать внутренние имена хостов; пожалуйста, обратитесь к справочную систему по для получения дополнительной информации. Флаг -alldirs позволяет рассматривать подкаталоги в качестве точек монтирования. Другими словами, это не монтирование подкаталогов, но разрешение клиентам монтировать только каталоги, которые им требуются или нужны.
/home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4
В строке, приведённой ниже, файловая система /a
экспортируется таким образом, что она доступна двум клиентам из других доменов. Параметр -maproot=root позволяет пользователю root удалённой системы осуществлять запись на экспортируемую файловую систему как пользователь root. Если параметр -maproot=root не задан, то даже если пользователь имеет права доступа root на удалённой системе, он не сможет модифицировать файлы на экспортированной файловой системе.
/a -maproot=root host.example.com box.example.org
Для того, чтобы клиент смог обратиться к экспортированной файловой системе, он должен иметь права сделать это. Проверьте, что клиент указан в вашем файле /etc/exports.
В файле /etc/exports каждая строка содержит информацию об экспортировании для отдельной файловой системы для отдельно взятого хоста. Удалённый хост может быть задан только один раз для каждой файловой системы, и может иметь только одну запись, используемую по умолчанию, для каждой локальной файловой системы. К примеру, предположим, что /usr является отдельной файловой системой. Следующий /etc/exports будет некорректен:
/usr/src client /usr/ports client
Одна файловая система, /usr, имеет две строки, задающие экспортирование для одного и того же хоста, client. Правильный формат в этом случае таков:
/usr/src /usr/ports client
Свойства отдельной файловой системы, экспортируемой некоторому хосту, должны задаваться в одной строке. Строки без указания клиента воспринимаются как отдельный хост. Это ограничивает то, как вы можете экспортировать файловые системы, но для большинства это не проблема.
Ниже приведён пример правильного списка экспортирования, где /usr и /exports являются локальными файловыми системами:
# Экспортируем src и ports для client01 и client02, но # только client01 имеет права пользователя root на них /usr/src /usr/ports -maproot=root client01 /usr/src /usr/ports client02 # Клиентские машины имеют пользователя # root и могут монтировать всё в # каталоге /exports. Кто угодно может # монтировать /exports/obj в режиме чтения /exports -alldirs -maproot=root client01 client02 /exports/obj -ro
Вы должны перезапустить mountd после того, как изменили /etc/exports, чтобы изменения вступили в силу. Это может быть достигнуто посылкой сигнала HUP процессу mountd:
# kill -HUP `cat /var/run/mountd.pid`
Как вариант, при перезагрузке FreeBSD всё настроится правильно. Хотя выполнять перезагрузку вовсе не обязательно. Выполнение следующих команд пользователем root запустит всё, что нужно.
На сервере NFS:
# portmap
# nfsd -u -t -n 4
# mountd -r
На клиенте NFS:
# nfsiod -n 4
Теперь всё должно быть готово к реальному монтированию удалённой файловой системы. В приводимых примерах сервер будет носить имя server, а клиент будет носить имя client. Если вы только хотите временно смонтировать удалённую файловую систему, или всего лишь протестировать ваши настройки, то просто запустите команды, подобные приводимым здесь, работая как пользователь root на клиентской машине:
# mount server:/home /mnt
По этой команде файловая система /home на сервере будет смонтирована в каталог /mnt на клиенте. Если всё настроено правильно, вы сможете войти в каталог /mnt на клиенте и увидеть файлы, находящиеся на сервере.
Если вы хотите автоматически монтировать удалённую файловую систему при каждой загрузке компьютера, добавьте файловую систему в /etc/fstab. Вот пример:
server:/home /mnt nfs rw 0 0
На страницах справочной системы по fstab(5) перечислены все доступные параметры.
Настройка области подкачки
Если это нужно, то файл подкачки, расположенный на сервере, можно использовать посредством NFS. Один из методов, используемых для этого, не поддерживается в релизах 5.X.
Настройка основного сервера NIS
Настройка основного сервера 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.
Настройка PLIP
Прежде всего вы должны найти laplink-кабель. Затем удостоверьтесь, что на обоих компьютерах в ядро включена поддержка драйвера lpt(4):
# grep lp /var/run/dmesg.boot
lpt0: <Printer> on ppbus0 lpt0: Interrupt-driven port
Управление параллельным портом должно выполняться по прерываниям. Во FreeBSD 4.X в файле конфигурации ядра должна присутствовать строка, подобная следующей:
device ppc0 at isa? irq 7
Во FreeBSD 5.X файл /boot/device.hints должен содержать следующие строки:
hint.ppc.0.at="isa" hint.ppc.0.irq="7"
Затем проверьте, что файл конфигурации ядра имеет строку device plip, или загружен ли модуль ядра plip.ko. В обоих случаях интерфейс работы с сетью по параллельному порту должен присутствовать на момент прямого использования команды ifconfig(8). Во FreeBSD 4.X это должно быть примерно так:
# ifconfig lp0
lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
а для FreeBSD 5.X:
# ifconfig plip0
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
Замечание: Имя устройства, используемого для параллельного интерфейса, во FreeBSD 4.X (lpX) и FreeBSD 5.X (plipX).
Подключите кабель laplink к параллельным интерфейсам на обоих компьютерах.
Настройте параметры сетевого интерфейса с обеих сторон, работая как пользователь root. К примеру, если вы хотите соединить хост host1, на котором работает FreeBSD 4.X, с хостом host2 под управлением FreeBSD 5.X:
host1 <-----> host2 IP Address 10.0.0.1 10.0.0.2
Настройте интерфейс на машине host1, выполнив:
# ifconfig plip0 10.0.0.1 10.0.0.2
Настройте интерфейс на машине host2, выполнив:
# ifconfig lp0 10.0.0.2 10.0.0.1
Теперь вы должны получить работающее соединение. Пожалуйста, прочтите страницы руководства по и lpt(4) для выяснения деталей.
Вы должны также добавить оба хоста в /etc/hosts:
127.0.0.1 localhost.my.domain localhost 10.0.0.1 host1.my.domain host1 10.0.0.2 host2.my.domain
Чтобы проверить работу соединения, перейдите к каждому хосту и выполните тестирование соединения с другой машиной посредством команды ping. К примеру, на машине host1:
# ifconfig lp0
lp0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000 # netstat -r
Routing tables
Internet: Destination Gateway Flags Refs Use Netif Expire host2 host1 UH 0 0 lp0 # ping -c 4 host2
PING host2 (10.0.0.2): 56 data bytes 64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms 64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms 64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms 64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms
--- host2 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms
Настройка подключения
На данный момент существуют четыре способа подключиться к другим хостам и сетям IPv6:
Подключиться к экспериментальному 6bone
Получить сеть IPv6 от вышестоящего провайдера. Для получения рекомендаций обратитесь к вашему провайдеру Интернет.
Туннелировать посредством 6-в-4 ()
Использовать порт net/freenet6, если вы используете коммутируемое соединение.
Здесь мы будем рассматривать подключение к 6bone, так как на данный момент это является самым популярным способом.
Сначала взгляните на сайт и найдите ближайшую к вам точку подключения к 6bone. Напишите ответственному и при некоторой удаче вам дадут инструкции по настройке соединения. Обычно это касается настройки туннеля GRE (gif).
Вот типичный пример настройки туннеля gif(4):
# ifconfig gif0 create
# ifconfig gif0
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280 # ifconfig gif0 tunnel MY_IPv4_ADDR HIS_IPv4_ADDR
# ifconfig gif0 inet6 alias MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR
Замените слова, написанные заглавными буквами, информацией, которую вам дал вышестоящий узел 6bone.
При этом установится туннель. Проверьте работу туннеля утилитой ping6(8) с адресом ff02::1%gif0. Вы должны получить два положительных ответа.
Замечание: Если вы заинтригованы адресом ff02:1%gif0, скажем, что это адрес многоадресного вещания. %gif0 указывает на использование такого адреса с сетевым интерфейсом gif0. Так как мы выполняем ping над адресом многоадресного вещания, то другая сторона туннеля также должна ответить.
Теперь настройка маршрута к вашей вышестоящей точке подключения 6bone должна быть весьма проста:
# route add -inet6 default -interface gif0
# ping6 -n MY_UPLINK
# traceroute6 www.jp.FreeBSD.org
(3ffe:505:2008:1:2a0:24ff:fe57:e561) from 3ffe:8060:100::40:2, 30 hops max, 12 byte packets 1 atnet-meta6 14.147 ms 15.499 ms 24.319 ms 2 6bone-gw2-ATNET-NT.ipv6.tilab.com 103.408 ms 95.072 ms * 3 3ffe:1831:0:ffff::4 138.645 ms 134.437 ms 144.257 ms 4 3ffe:1810:0:6:290:27ff:fe79:7677 282.975 ms 278.666 ms 292.811 ms 5 3ffe:1800:0:ff00::4 400.131 ms 396.324 ms 394.769 ms 6 3ffe:1800:0:3:290:27ff:fe14:cdee 394.712 ms 397.19 ms 394.102 ms
Эта выдача будет отличаться от машины к машине. Теперь вы должны суметь достигнуть сайта IPv6 и увидеть танцующую черепаху -- в случае, если ваш браузер поддерживает IPv6, как, например, www/mozilla или Konqueror, который входит в , или www/epiphany.
Настройка с использованием BOOTP
Далее описана эквивалентная конфигурация с использованием bootpd (для одного клиента). Она будет располагаться в /etc/bootptab.
Пожалуйста, отметьте, что Etherboot должен быть откомпилирован с нестандартной опцией NO_DHCP_SUPPORT для того, чтобы можно было использовать BOOTP, и что для работы PXE необходим DHCP. Единственным очевидным преимуществом bootpd является его наличие в поставке системы.
.def100:\ :hn:ht=1:sa=192.168.4.4:vm=rfc1048:\ :sm=255.255.255.0:\ :ds=192.168.4.1:\ :gw=192.168.4.1:\ :hd="/tftpboot":\ :bf="/kernel.diskless":\ :rp="192.168.4.4:/data/misc/diskless":
margaux:ha=0123456789ab:tc=.def100
Настройка сервера DHCP
dhcpd.conf состоит из деклараций относительно подсетей и хостов, и проще всего описывается на примере:
option domain-name "example.com";
option domain-name-servers 192.168.4.100;
option subnet-mask 255.255.255.0;
subnet 192.168.4.0 netmask 255.255.255.0 { range 192.168.4.129 192.168.4.254;
}
host mailhost { hardware ethernet 02:03:04:05:06:07;
fixed-address mailhost.example.com;
}
Этот параметр задаёт домен, который будет выдаваться клиентам в качестве домена, используемого по умолчанию при поиске. Обратитесь к страницам справочной системы по resolv.conf(5) для получения дополнительной информации о том, что это значит.
Этот параметр задаёт список разделённых запятыми серверов DNS, которые должен использовать клиент.
Маска сети, которая будет выдаваться клиентам.
Клиент может запросить определённое время, которое будет действовать выданная информация. В противном случае сервер выдаст настройки с этим сроком (в секундах).
Это максимальное время, на которое сервер будет выдавать конфигурацию. Если клиент запросит больший срок, он будет подтверждён, но будет действовать только max-lease-time секунд.
Этот параметр задаёт, будет ли сервер DHCP пытаться обновить DNS при выдаче или освобождении конфигурационной информации. В реализации ISC этот параметр является обязательным.
Это определение того, какие IP-адреса должны использоваться в качестве резерва для выдачи клиентам. IP-адреса между и включая границы, будут выдаваться клиентам.
Объявление маршрутизатора, используемого по умолчанию, который будет выдаваться клиентам.
Аппаратный MAC-адрес хоста (чтобы сервер DHCP мог распознать хост, когда тот делает запрос).
Определение того, что хосту всегда будет выдаваться один и тот же IP-адрес. Заметьте, что указание здесь имени хоста корректно, так как сервер DHCP будет разрешать имя хоста самостоятельно до того, как выдать конфигурационную информацию.
Как только вы закончите составлять свой dhcpd.conf, вы можете продолжить работу запуском сервера при помощи следующей команды:
# /usr/local/etc/rc.d/isc-dhcpd.sh start
Если в будущем вам понадобится сделать изменения в настройке вашего сервера, то важно заметить, что посылка сигнала SIGHUP приложению dhcpd не приведёт к перезагрузке настроек, как это бывает для большинства даемонов. Вам нужно послать сигнал SIGTERM для остановки процесса, а затем перезапустить его при помощи вышеприведённой команды.
Настройка серверов TFTP и NFS
Если вы используете PXE или Etherboot, настроенные для использования TFTP, вам нужно включить tftpd на файловом сервере:
Создайте каталог, файлы которого будет обслуживать tftpd, например, /tftpboot.
Добавьте в ваш /etc/inetd.conf такую строчку:
tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot
Замечание: Бывает, что некоторым версиям PXE
требуется TCP-вариант TFTP. В таком случае добавьте вторую строчку, заменяющую dgram udp на stream tcp.
Укажите inetd на повторное чтение своего конфигурационного файла:
# kill -HUP `cat /var/run/inetd.pid`
Вы можете поместить каталог tftpboot в любом месте на сервере. Проверьте, что это местоположение указано как в inetd.conf, так и в dhcpd.conf.
Во всех случаях, вам также нужно включить NFS и экспортировать соответствующую файловую систему на сервере NFS.
Добавьте следующее в /etc/rc.conf:
nfs_server_enable="YES"
Экспортируйте файловую систему, в которой расположен корневой каталог для бездисковой рабочей станции, добавив следующую строку в /etc/exports
(подправьте точку монтирования и замените margaux corbieres именами бездисковых рабочих станций):
/data/misc -alldirs -ro margaux corbieres
Укажите mountd на повторное чтение настроечного файла. На самом деле если вам потребовалось на первом шаге включить NFS в /etc/rc.conf, то вам нужно будет выполнить перезагрузку.
# kill -HUP `cat /var/run/mountd.pid`
Настройка вторичного сервера NIS
Настройка вторичного сервера NIS осуществляется ещё проще, чем настройка главного сервера. Войдите на вторичный сервер и отредактируйте файл /etc/rc.conf точно также, как вы делали это ранее. Единственным отличием является то, что при запуске программы ypinit мы теперь должны использовать опцию -s. Применение опции -s требует также указание имени главного сервера NIS, так что наша команда должна выглядеть так:
coltrane# 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.
Настройки
inetd инициализируется посредством системы /etc/rc.conf. Параметр inetd_enable по умолчанию установлен в NO, однако часто включается утилитой sysinstall при выборе профиля среднего уровня безопасности. Указание
inetd_enable="YES"
или
inetd_enable="NO"
в файле /etc/rc.conf может задать или запретить запуск inetd во время загрузки.
Кроме того, через inetd_flags даемону inetd могут быть переданы различные параметры командной строки.
Настройки безопасности
Две из наиболее важных настроек в /usr/local/etc/smb.conf
отвечают за выбор модели безопасности и за формат паролей для клиентов. Эти параметры контролируются следующими директивами:
security
Два наиболее часто используемых параметра это security = share и security = user. Если имена пользователей для клиентов совпадают с их именами на компьютере FreeBSD, вы возможно захотите включить безопасность уровня пользователя (user). Это политика безопасности по умолчанию, она требует, чтобы клиент авторизовался перед доступом к совместно используемым ресурсам.
На уровне безопасности share клиенту не требуется входить на сервер перед подключением к ресурсу. Эта модель безопасности использовалась по умолчанию в старых версиях Samba.
passdb backend
Samba поддерживает несколько различных подсистем аутентификации. Вы можете аутентифицировать клиентов с помощью LDAP, NIS+, базы данных SQL, или через модифицированный файл паролей. Метод аутентификации по умолчанию smbpasswd, и здесь рассматривается только он.
Предполагая, что используется подсистема по умолчанию smbpasswd, необходимо создать файл /usr/local/private/smbpasswd, чтобы Samba могла аутентифицировать клиентов. Если вы хотите разрешить всем учетным записям UNIX® доступ с Windows клиентов, используйте следующую команду:
# cat /etc/passwd | grep -v "^#" | make_smbpasswd > /usr/local/private/smbpasswd
# chmod 600 /usr/local/private/smbpasswd
Обратитесь к документации на Samba за дополнительной информацией о параметрах настройки. Основные настройки, рассмотренные здесь, достаточны для первого запуска Samba.
Эти установки помогут вам настроить
Эти установки помогут вам настроить компьютер, который будет работать в сети как клиент, а не как маршрутизатор. Для включения настройки интерфейсов через rtsol(8) при загрузке, все, что вам потребуется, это добавить следующую строку:
ipv6_enable="YES"
Для статического присвоения IP адреса, такого как 2001:471:1f11:251:290:27ff:fee0:2093, интерфейсу fxp0, добавьте:
ipv6_ifconfig_fxp0="2001:471:1f11:251:290:27ff:fee0:2093"
Для назначения маршрутизатором по умолчанию 2001:471:1f11:251::1, добавьте следующую строку к /etc/rc.conf:
ipv6_defaultrouter="2001:471:1f11:251::1"
Этот раздел поможет вам использовать инструкции, которые выдал провайдер туннеля, например, , и сделать эти настройки постоянными. Для восстановления туннеля при загрузке системы используйте в /etc/rc.conf нижеприведенные настройки.
Задайте список туннельных интерфейсов (Generic Tunneling interfaces), которые необходимо настроить, например gif0:
gif_interfaces="gif0"
Для настройки интерфейса с локальным подключением на MY_IPv4_ADDR к удаленной точке REMOTE_IPv4_ADDR:
gifconfig_gif0="MY_IPv4_ADDR REMOTE_IPv4_ADDR"
Для включения IPv6 адреса, который был вам присвоен для использования в подключении к туннелю IPv6, добавьте:
ipv6_ifconfig_gif0="MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR"
Затем все, что вам потребуется сделать, это добавить маршрут по умолчанию для IPv6. Это другая сторона туннеля IPv6:
ipv6_defaultrouter="MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR"
Network File System (NFS)
Реорганизация и улучшения Tom Rhodes. Текст создал Bill Swingle.
Кроме поддержки многих прочих типов файловых систем, во FreeBSD встроена поддержка сетевой файловой системы (Network File System), известной как NFS. NFS позволяет системе использовать каталоги и файлы совместно с другими машинами, посредством сети. Посредством NFS пользователи и программы могут получать доступ к файлам на удалённых системах точно так же, как если бы это были файлы на собственных дисках.
Вот некоторые из наиболее заметных преимуществ, которые даёт использование NFS:
Отдельно взятые рабочие станции используют меньше собственного дискового пространства, так как совместно используемые данные могут храниться на одной отдельной машине и быть доступными для других машин в сети.
Пользователям не нужно иметь домашние каталоги, отдельные для каждой машины в вашей сети. Домашние каталоги могут располагаться на сервере NFS и их можно сделать доступными отовсюду в сети.
Устройства хранения информации, такие, как дискеты, приводы CD-ROM и устройства Zip®, могут использоваться другими машинами в сети. Это может привести к уменьшению переносимых устройств хранения информации в сети.
Network Information System (NIS/YP)
Текст создал Bill Swingle. Внёс добавления Eric Ogren, Udo Erdelhoff.
OBEX Object Push (OPUSH) Profile
OBEX является широко используемым протоколом для простой передачи файлов между мобильными устройствами. В основном он используется в коммуникациях через инфракрасный порт для передачи файлов между ноутбуками или КПК, а также для пересылки визитных карточек или календарных планов между сотовыми телефонами и другими устройствами с персональными информационными менеджерами.
Сервер и клиент OBEX реализованы в виде пакета стороннего разработчика obexapp, который доступен в виде порта comms/obexapp.
Клиент OBEX используется для посылки или приёма объектов с сервера OBEX. Объектом, к примеру, может быть визитная карточка или указание. Клиент OBEX может получить номер RFCOMM-канала, указав вместо него имя сервиса. Поддерживаются следующие имена сервиса: IrMC, FTRN и OPUSH. Канал RFCOMM можно задать его номером. Ниже даётся пример сеанса OBEX, где с сотового телефона забирается объект с информацией об устройстве, а новый объект (визитная карточка) передаётся в каталог сотового телефона.
% obexapp -a 00:80:37:29:19:a4 -C IrMC
obex> get get: remote file> telecom/devinfo.txt get: local file> devinfo-t39.txt Success, response: OK, Success (0x20) obex> put put: local file> new.vcf put: remote file> new.vcf Success, response: OK, Success (0x20) obex> di Success, response: OK, Success (0x20)
Для того, чтобы предоставить сервис OBEX Push, должен быть запущен сервер sdpd(8). Должен быть создан корневой каталог, в котором будут сохраняться все поступающие объекты. По умолчанию корневым каталогом является /var/spool/obex. Наконец, запустите OBEX сервер на существующем номере канала RFCOMM. OBEX сервер автоматически зарегистрирует сервис OBEX Object Push через локального даемона SDP. В примере ниже показано, как запустить OBEX-сервер.
# obexapp -s -C 10
Общая информация
Настройка бездисковых рабочих станций относительно проста, но в то же время легко сделать ошибку. Иногда сложно диагностировать эти ошибки по нескольким причинам. Например:
Параметры компиляции могут по-разному проявлять себя во время работы.
Сообщения об ошибках бывают загадочны или вовсе отсутствуют.
В данной ситуации некоторые знания, касающиеся используемых внутренних механизмов, очень полезны при разрешении проблем, которые могут возникнуть.
Для выполнения успешной загрузки необходимо произвести несколько операций:
Компьютеру необходимо получить начальные параметры, такие как собственный IP адрес, имя исполняемого файла, корневой каталог. Для этого используются протоколы DHCP или BOOTP. DHCP это совместимое расширение BOOTP, используются те же номера портов и основной формат пакетов.
Возможна настройка системы для использования только BOOTP. Серверная программа bootpd(8) включена в основную систему FreeBSD.
Тем не менее, у DHCP есть множество преимуществ над BOOTP (лучше файлы настройки, возможность использования PXE, плюс многие другие преимущества, не относящиеся непосредственно к бездисковым операциям), и мы в основном будем описывать настройку DHCP, с эквивалентными примерами для bootpd(8), когда это возможно. Пример конфигурации будет использовать пакет ISC DHCP (релиз 3.0.1.r12 был установлен на тестовом сервере).
Компьютеру требуется загрузить в локальную память одну или несколько программ. Используются TFTP или NFS. Выбор между TFTP или NFS производится во время компилирования в нескольких местах. Часто встречающаяся ошибка это указание имен файлов для другого протокола: TFTP обычно загружает все файлы с одного каталога сервера, и принимает имена файлов относительно этого каталога. NFS нужны абсолютные пути к файлам.
Необходимо инициализировать и выполнить возможные промежуточные программы загрузки и ядро. В этой области существует несколько важных вариаций:
PXE загрузит pxeboot(8), являющийся модифицированной версией загрузчика третьей стадии FreeBSD. loader(8) получит большинство параметров, необходимых для старта системы, и оставит их в окружении ядра до контроля передачи. В этом случае возможно использование ядра GENERIC.
Etherboot, непосредственно загрузит ядро, с меньшей подготовкой. Вам потребуется собрать ядро со специальными параметрами.
PXE и Etherboot работают одинаково хорошо с системами 4.X. Поскольку ядро 5.X обычно позволяет loader(8) выполнить больше предварительной работы, метод PXE на системах 5.X предпочтителен.
Если ваш BIOS и сетевые карты поддерживают PXE, используйте его. Однако, все же возможен запуск системы 5.X с Etherboot.
Наконец, компьютеру требуется доступ к файловым системам. NFS используется во всех случаях.
Обратитесь также к странице справочника diskless(8).
Общие настройки
NTP настраивается в файле /etc/ntp.conf, формат которого описан в . Вот простой пример:
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 задает файл, который используется для хранения смещения частоты системных часов. Программа ntpd(8) использует его для автоматической компенсации естественного смещения часов, позволяя ему поддерживать достаточно правильную настройку, даже если он на некоторый период отключается от внешнего источника информации о времени.
Параметр driftfile задает, какой файл используется для сохранения информации о предыдущих ответах от серверов NTP, которые вы используете. Этот файл содержит внутреннюю информацию для NTP. Он не должен изменяться никакими другими процессами.
Обзор
FreeBSD используется в качестве платформы для многих из самых нагруженных серверов в мире. Большинство серверов в интернет используют Apache HTTP сервер. Пакеты Apache должны быть включены в поставку FreeBSD. Если вы не установили их во вместе с системой, воспользуйтесь портами www/apache13 или www/apache2.
Как только Apache был успешно установлен, его необходимо настроить.
Замечание: В этом разделе рассказывается о версии 1.3.X Apache HTTP сервера, поскольку эта версия наиболее широко используется в FreeBSD. Apache2.X содержит много новых технологий, но здесь они не обсуждаются. За дополнительной информацией о Apache 2.X, обращайтесь к .
По умолчанию во FreeBSD используется одна из версий программы BIND (Berkeley Internet Name Domain), являющейся самой распространенной реализацией протокола DNS. DNS - это протокол, при помощи которого имена преобразуются в IP-адреса и наоборот. Например, в ответ на запрос о www.FreeBSD.org будет получен IP-адрес веб-сервера Проекта FreeBSD, а запрос о ftp.FreeBSD.org возвратит IP-адрес соответствующей машины с FTP-сервером. Точно также происходит и обратный процесс. Запрос, содержащий IP-адрес машины, возвратит имя хоста. Для выполнения запросов к DNS вовсе не обязательно иметь в системе работающий сервер имён.
В сети Интернет DNS управляется через достаточно сложную систему авторизированных корневых серверов имён, и других менее крупных серверов имён, которые содержат и кэшируют информацию о конкретных доменах.
В этом документа рассматривается BIND 8.x, так как это стабильная версия, используемая во FreeBSD. BIND 9.x может быть установлен как порт net/bind9.
Протокол DNS стандартизован в RFC1034 и RFC1035.
На данный момент пакет BIND поддерживается Internet Software Consortium http://www.isc.org/.
Протокол передачи файлов (File Transfer Protocol, FTP) дает пользователям простой путь передачи файлов на и с FTP сервера. В FreeBSD серверная программа FTP, ftpd, включена в базовую систему. Это упрощает настройку и администрирование FTP
сервера в FreeBSD.
называют также ``супер-сервером Интернет'', потому что он управляет соединениями к нескольким даемонам. Программы, которые предоставляют сетевые услуги, называют даемонами. inetd выступает в качестве управляющего сервера для других даемонов. Когда inetd принимает соединение, он определяет, для какого даемона предназначено соединение, вызывает соответствующий даемон и предоставляет ему сокет. Запуск одного экземпляра inetd уменьшает общую нагрузку на систему по сравнению с запуском каждого даемона индивидуально в выделенном режиме.
В первую очередь inetd используется для вызова других даемонов, но несколько простых протоколов, таких, как chargen, auth и daytime, обслуживаются непосредственно.
Этот раздел посвящен основам настройки inetd посредством его параметров командной строки и его конфигурационного файла, /etc/inetd.conf.
Даемон преобразования сетевых адресов (Network Address Translation) во FreeBSD, широко известный как , является даемоном, который принимает входящие IP-пакеты, изменяет адрес отправителя на адрес локальной машины и повторно отправляет эти пакеты в потоке исходящих пакетов. natd(8) делает это, меняя IP-адрес отправителя и порт таким образом, что когда данные принимаются обратно, он может определить расположение источника начальных данных и переслать их машине, которая запрашивала данные изначально.
Чаще всего NAT используется для организации так называемого Совместного Использования Интернет.
С течением времени часы компьютера имеют тенденцию отставать. Network Time Protocol - Сетевой Протокол Времени (NTP) является одним из способов вести точное время.
Многие сервисы Интернет опираются или сильно зависят от точности часов компьютеров. К примеру, веб-сервер может получать запрос на посылку файла, который был недавно модифицирован. В локальной сети необходимо, чтобы часы компьютеров, совместно использующих файлы, были синхронизированы, чтобы время модификации файлов устанавливалось правильно. Такие службы, как cron(8), также зависят от правильности установки системных часов, поскольку запускают команды в определенное время.
FreeBSD поставляется с сервером NTP ntpd(8), который можно использовать для опроса других серверов NTP для установки часов на вашей машине или предоставления услуг точного времени.
Samba это популярный пакет программ с открытыми исходными текстами, которая предоставляет файловые и принт-сервисы Microsoft®Windows® клиентам. Эти клиенты могут подключаться и использовать файловое пространство FreeBSD, как если бы это был локальный диск, или принтеры FreeBSD, как если бы это были локальные принтеры.
Пакет Samba должен быть включен в поставку FreeBSD. Если вы не установили Samba при первой установке системы, ее можно установить из порта или пакета net/samba3.
Существуют различные типы адресов IPv6: одноадресные (Unicast), групповые (Anycast) и многоадресные (Multicast).
Адреса типа Unicast хорошо всем известны. Пакет, посланный на такой адрес, достигает в точности интерфейса, который этому адресу соответствует.
Адреса типа Anycast синтаксически неотличимы от адресов Unicast, но они адресуют группу интерфейсов. Пакет, направленный такому адресу, попадёт в ближайший (согласно метрике маршрутизатора) интерфейс. Адреса Anycast могут использоваться только маршрутизаторами.
Адреса типа Multicast идентифицируют группу интерфейсов. Пакет, посланный на такой адрес, достигнет всех интерфейсов, привязанных к группе многоадресного вещания.
Замечание: Широковещательные адреса IPv4 (обычно xxx.xxx.xxx.255) выражаются адресами многоадресного вещания IPv6.
Таблица 24-2. Зарезервированные адреса IPv6
:: | 128 бит | нет описания | cf. 0.0.0.0 в IPv4 |
::1 | 128 бит | loopback адрес | cf. 127.0.0.1 в IPv4 |
::00:xx:xx:xx:xx | 96 бит | встроенный IPv4 | Нижние 32 бита это адрес IPv4. Также называется ``IPv4 совместимым IPv6 адресом'' |
::ff:xx:xx:xx:xx | 96 бит | Адрес IPv6, отображенный на IPv4 | Нижние 32 бита это адрес IPv4. Для хостов, не поддерживающих IPv6. |
fe80:: - feb:: | 10 бит | link-local | cf. loopback адрес в IPv4 |
fec0:: - fef:: | 10 бит | site-local | |
ff:: | 8 бит | широковещательный | |
001 (основание 2) | 3 бит | global unicast | Все global unicast адреса присваиваются из этого пула. Первые три бита ``001''. |
Отдельные мосты/маршрутизаторы ISDN
Мосты или маршрутизаторы ISDN не так уж специфичны для FreeBSD или для любой другой операционной системы. Для более подробного описания технологий маршрутизации и работы мостов, пожалуйста, обратитесь к справочникам по сетевым технологиям.
В контексте этого раздела термины маршрутизатор и сетевой мост будут использоваться как взаимозаменяемые.
Вместе с падением цен на простые мосты/маршрутизаторы ISDN, они становятся все более популярными. Маршрутизатор ISDN представляет собой маленькую коробочку, которая подключается непосредственно в вашу сеть Ethernet, и поддерживает связь с другим мостом/маршрутизатором. Всё программное обеспечение для работы по PPP и другим протоколам встроено в маршрутизатор.
Маршрутизатор обладает гораздо большей пропускной способностью, чем стандартный TA, так как он использует полное синхронное соединение ISDN.
Основной проблемой с маршрутизаторами и мостами ISDN является то, что их совместная работа с оборудованием других производителей может оказаться под вопросом. Если вы собираетесь подключаться к провайдеру, то вы должны обсудить с ним то, что вам нужно.
Если вы планируете объединить два сегмента локальной сети, например, домашнюю сеть с сетью офиса, это самое простое решение с минимальными издержками на обслуживание. Так как вы покупаете оборудование для обоих сторон соединения, то можете быть уверены, что связь будет работать нормально.
Например, для соединения домашнего компьютера или сети подразделения к сети центрального офиса, может использоваться такая настройка:
Пример 24-1. Офис подразделения или домашняя сеть
Сеть построена в топологии общей шины на основе 10 base 2 Ethernet (``thinnet'' - ``тонкий Ethernet''). Подключите маршрутизатор к сетевому кабелю с помощью трансивера AUI/10BT, если это нужно.
Если ваш домашний или удаленный офис представляет собой один компьютер, то для непосредственного подключения к маршрутизатору вы вы можете использовать витую пару с перекрестным соединениям.
Пример 24-2. Центральный офис или другая локальная сеть
Сеть построена в топологии звезды на основе 10 Base T Ethernet (``витая пара'').
Одним большим преимуществом большинства маршрутизаторов/мостов является то, что они позволяют иметь 2 отдельных независимых соединения PPP к 2 различным сайтам одновременно. Это не поддерживается в большинстве TA, кроме специальных (обычно дорогих) моделей, имеющих по два последовательных порта. Не путайте это с балансировкой нагрузки, MPP и так далее.
Это может оказаться весьма полезной особенностью, например, если у вас имеется постоянное ISDN-соединение в вашем офисе, и вы хотите им воспользоваться, но не хотите задействовать дополнительный канал ISDN на работе. Маршрутизатор, расположенный в офисе, может использовать выделенное соединение по каналу B (64 Кбит/с) для Интернет, и одновременно другой канал B для отдельного соединения для передачи данных. Второй канал B может использоваться для входящих, исходящих и динамически распределяемых соединений (MPP и так далее) совместно с первым каналом B для повышения пропускной способности.
Мост Ethernet также позволяет вам передавать больше, чем просто трафик IP. Вы сможете передавать IPX/SPX и любые другие протоколы, которые вы используете.
Pairing of Devices
По умолчанию связь Bluetooth не аутентифицируется, поэтому любое устройство может общаться с любым другим. Устройство Bluetooth (например, сотовый телефон) может задать обязательность аутентификации для предоставления определённого сервиса (в частности, услугу доступа по коммутируемой линии). Bluetooth-аутентификация обычно выполняется через PIN-коды. PIN-код представляет из себя ASCII-строку длиной до 16 символов. Пользователь обязан ввести один и тот же PIN-код на обоих устройствах. Как только он введёт PIN-код, оба устройства сгенерируют ключ связи. После этого ключ может быть сохранён либо в самом устройстве, либо на постоянном носителе. В следующий раз оба устройства будут использовать ранее сгенерированный ключ соединения. Процедура, описанная выше, носит название подгонки пары
(pairing). Заметьте, что если ключ связи потерян любой из сторон, то подбор пары должен быть повторен.
За обработку всех запросов на Bluetooth-аутентификацию отвечает даемон hcsecd(8). По умолчанию файл конфигурации называется /etc/bluetooth/hcsecd.conf. Пример раздела, содержащего информацию о сотовом телефоне с явно заданным PIN-кодом ``1234'' приведен ниже:
device { bdaddr 00:80:37:29:19:a4; name "Pav's T39"; key nokey; pin "1234"; }
Кроме длины, на PIN-коды не накладывается никаких ограничений. Некоторые устройства (например, Bluetooth-гарнитуры) могут иметь фиксированный встроенный PIN-код. Параметр -d позволяет запустить hcsecd(8) как нефоновый процесс, что облегчает просмотр происходящих событий. Задайте получение парного ключа на удалённом устройстве и инициируйте Bluetooth-соединение с этим устройством. Удалённое устройство должно подтвердить получение пары и запросить PIN-код. Введите тот же самый код, что находится в hcsecd.conf. Теперь ваш ПК и удалённое устройство спарены. Альтернативным способом является инициация процесса создания пары на удалённом устройстве. Ниже даётся пример выдачи протокола команды hcsecd:
hcsecd[16484]: Got Link_Key_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4 hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', link key doesn't exist hcsecd[16484]: Sending Link_Key_Negative_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4 hcsecd[16484]: Got PIN_Code_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4 hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', PIN code exists hcsecd[16484]: Sending PIN_Code_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4
Пакет bsd-airtools
Пакет bsd-airtools представляет собой полный набор инструментов, включая инструменты для проверки беспроводной сети на предмет взлома WEP-ключа, обнаружения точки доступа и тому подобное.
Утилиты bsd-airtools можно установить из порта net/bsd-airtools. Информацию об установке портов можно найти в Главе этого Руководства.
Программа dstumbler является инструментом, предназначенным для обнаружения точки доступа и выдачи отношения уровня сигнала к шуму. Если у вас с трудом получается запустить точку доступа, dstumbler может помочь вам начать.
Для тестирования информационной безопасности вашей беспроводной сети, вы можете воспользоваться набором ``dweputils'' (dwepcrack, dwepdump и dwepkeygen), который может помочь понять, является ли WEP подходящим решением для обеспечения ваших потребностей в информационной безопасности.
Параметры командной строки
Формат вызова inetd:
inetd [-d] [-l] [-w] [-W] [-c maximum] [-C rate] [-a address | hostname] [-p filename] [-R rate] [configuration file]
-d
Включение отладочной информации.
-l
Включение регистрации успешных соединений.
-w
Включение механизма TCP Wrapping для внешних служб (по умолчанию включено).
-W
Включение механизма TCP Wrapping для внутренних служб, которые встроены в inetd (по умолчанию включено).
-c maximum
Определение максимального числа одновременных запусков каждой службы; по умолчание не ограничено. Может быть переопределено индивидуально для каждой службы при помощи параметра max-child.
-C rate
Определение по умолчанию максимального количества раз, которое служба может быть вызвана с одного IP-адреса в минуту; по умолчанию не ограничено. Может быть переопределено для каждой службы параметром max-connections-per-ip-per-minute.
-R rate
Определяет максимальное количество раз, которое служба может быть вызвана в минуту; по умолчанию 256. Частота, равная 0, не ограничивает число вызовов.
-a
Задает один IP-адрес, к которому делается привязка. Альтернативно может быть указано имя хоста, и в этом случае используется соответствующий этому имени хоста адрес IPv4 или IPv6. Обычно имя хоста задается, когда inetd запускается в окружении , и в этом случае имя хоста соответствует этому jail(8)-окружению.
Если используется формат с именем хоста и требуется привязка как для IPv4, так и для IPv6, то для каждой привязки требуется запись с соответствующим типом протокола для каждой службы в файле /etc/inetd.conf. К примеру, службе на основе TCP потребуется две записи, в одной для протокола используется tcp4, а в другой используется tcp6.
-p
Задает альтернативный файл для хранения ID процесса.
Эти параметры могут быть переданы в inetd при помощи inetd_flags в файле /etc/rc.conf. По умолчанию значение inetd_flags установлено в -wW, что включает механизм TCP wrapping для внутренних и внешних служб inetd. Новичкам эти параметры изменять и даже задавать их в файле /etc/rc.conf не нужно.
Замечание: Внешняя служба является даемоном вне inetd, который запускается при получении соединения к нему. С другой стороны, внутренней службой является услуга, которую inetd предоставляет сам.
Перенаправление адреса
Перенаправление адреса полезно, если имеется несколько адресов IP, и они должны быть на одной машине. В этой ситуации natd(8) может назначить каждому клиенту ЛВС свой собственный внешний IP-адрес. Затем natd(8) преобразует исходящие от клиентов локальной сети пакеты, заменяя IP-адреса на соответствующие внешние, и перенаправляет весь трафик, входящий на некоторый IP-адрес, обратно конкретному клиенту локальной сети. Это также называют статическим NAT. К примеру, пусть IP-адреса 128.1.1.1, 128.1.1.2 и 128.1.1.3 принадлежат шлюзовой машине natd. 128.1.1.1 может использоваться в качестве внешнего IP-адреса шлюзовой машины natd, тогда как 128.1.1.2 и 128.1.1.3 будут перенаправляться обратно к клиентам ЛВС A и B.
Синтаксис для -redirect_address таков:
-redirect_address localIP publicIP
localIP | Внутренний IP-адрес клиента локальной сети. |
publicIP | Внешний IP, соответствующий клиенту локальной сети. |
В примере этот аргумент будет выглядеть так:
-redirect_address 192.168.0.2 128.1.1.2 -redirect_address 192.168.0.3 128.1.1.3
Как и для -redirect_port, эти аргументы также помещаются в строку natd_flags="" файла /etc/rc.conf или передаются через конфигурационный файл. При перенаправлении адресов нет нужды в перенаправлении портов, потому что перенаправляются все данные, принимаемые для конкретного IP-адреса.
Внешние IP-адреса машины с natd должны быть активизированы и являться синонимами для внешнего интерфейса. Обратитесь к rc.conf(5), чтобы это сделать.
Перенаправление портов
Минусом использования natd(8) является то, что машины в локальной сети недоступны из Интернет. Клиенты в ЛВС могут выполнять исходящие соединения во внешний мир, но не могут обслуживать входящие. Это является проблемой при запуске служб Интернет на клиентских машинах в локальной сети. Простым решением является перенаправление некоторых портов Интернет машины с natd на клиента локальной сети.
Пусть, к примеру, сервер IRC запущен на клиенте A, а веб-сервер работает на клиенте B. Чтобы это работало, соединения, принимаемые на портах 6667 (IRC) и 80 (веб), должны перенаправляться на соответствующие машины.
Программе должна быть передана команда -redirect_port с соответствующими параметрами. Синтаксис следующий:
-redirect_port proto targetIP:targetPORT[-targetPORT] [aliasIP:]aliasPORT[-aliasPORT] [remoteIP[:remotePORT[-remotePORT]]]
В примере выше аргументы должен быть такими:
-redirect_port tcp 192.168.0.2:6667 6667 -redirect_port tcp 192.168.0.3:80 80
При этом будут перенаправлены соответствующие порты tcp на клиентские машины в локальной сети.
Аргумент -redirect_port может использоваться для указания диапазонов портов, а не конкретного порта. Например, tcp 192.168.0.2:2000-3000 2000-3000 будет перенаправлять все соединения, принимаемые на портах от 2000 до 3000, на порты от 2000 до 3000 клиента A.
Эти параметры можно указать при непосредственном запуске natd(8), поместить их в параметр natd_flags="" файла /etc/rc.conf, либо передать через конфигурационный файл.
Для получение информации о других параметрах настройки обратитесь к справочной странице по
PHP
PHP, сокращение от ``PHP: Hypertext Preprocessor'' это широко используемый Open Source скриптовый язык общего назначения, который в основном предназначен для веб разработки и может быть встроен в HTML. Его синтаксис был взят от C, Java™, и Perl и язык легок в изучении. Основное преимущество языка в том, что он позволяет веб разработчикам создавать веб страницы быстро, но есть и множество других возможностей.
PHP может быть установлен из порта lang/php5.
Планирование
Давайте предположим, что вы являетесь администратором в маленькой университетской лаборатории. В настоящий момент в этой лаборатории с 15 машинами отсутствует единая точка администрирования; на каждой машине имеются собственные файлы /etc/passwd и /etc/master.passwd. Эти файлы синхронизируются друг с другом только вручную; сейчас, когда вы добавляете пользователя в лаборатории, вы должны выполнить команду adduser
на всех 15 машинах. Понятно, что такое положение вещей нужно исправлять, так что вы решили перевести сеть на использование NIS, используя две машины в качестве серверов.
Итак, конфигурация лаборатории сейчас выглядит примерно так:
ellington | 10.0.0.2 | Основной сервер NIS |
coltrane | 10.0.0.3 | Вторичный сервер NIS |
basie | 10.0.0.4 | Факультетская рабочая станция |
bird | 10.0.0.5 | Клиентская машина |
cli[1-11] | 10.0.0.[6-17] | Другие клиентские машины |
Если вы определяете схему NIS первый раз, ее нужно хорошо обдумать. Вне зависимости от размеров вашей сети, есть несколько ключевых моментов, которые требуют принятия решений.
Поддержка
Для протоколирования даемон ftpd использует сообщения syslog(3). По умолчанию, поместит сообщения, относящиеся к FTP, в файл /var/log/xferlog. Местоположение лог файла FTP может быть изменено путем изменения следующей строки в файле /etc/syslog.conf:
ftp.info /var/log/xferlog
Учитывайте потенциальные проблемы, возникающие с анонимным FTP сервером. В частности, вы должны дважды подумать, прежде чем позволить анонимным пользователям загружать файлы на сервер. Вы можете обнаружить, что FTP сайт стал форумом, на котором происходит обмен нелицензионным коммерческим программным обеспечением или чем-то еще хуже. Если вам необходимо разрешить анонимную выгрузку файлов на FTP, права должны быть настроены таким образом, чтобы эти файлы не могли прочитать другие анонимные пользователи до их рассмотрения администратором.
Поддержка функций межсетевого экрана
Если вы планируете использовать мост в качестве межсетевого экрана, вам нужно также добавить опцию IPFIREWALL. Прочтите Разд. 14.8, содержащий общую информацию о настройке моста в качестве межсетевого экрана.
Если вам необходимо обеспечить прохождение не-IP пакетов (таких, как ARP) через мост, то имеется опция межсетевого экрана, которую можно задать. Это опция IPFIREWALL_DEFAULT_TO_ACCEPT. Заметьте, что при этом правило, используемое межсетевым экраном по умолчанию, меняется на разрешительное для всех пакетов. Перед тем, как задавать эту опцию, убедитесь, что вы понимаете работу вашего набора правил.
Поддержка функций ограничения пропускной способности
Если вы хотите использовать мост в качестве машины, ограничивающей пропускную способность, то добавьте в файл конфигурации ядра опцию DUMMYNET. Дополнительную информацию можно почерпнуть из страницы Справочника по dummynet(4).
Подготовка корневой файловой системы
Вам нужно создать корневую файловую систему для бездисковых рабочих станций, в местоположении, заданном как root-path в dhcpd.conf. В следующем разделе описаны два способа, чтобы сделать это.
Подготовка программы загрузки при помощи Etherboot
содержит , в основном предназначенную для систем Linux, но несомненно, она полезна. Далее будет просто кратко описано, как вы должны использовать Etherboot в системе FreeBSD.
Сначала вы должны установить пакет или порт net/etherboot.
Вы можете изменить настройку Etherboot (например, для использования TFTP вместо NFS) путем редактирования файла Config в каталоге исходных текстов Etherboot.
В нашей ситуации мы будем использовать загрузочную дискету. Для других методов (PROM или программа MS-DOS) пожалуйста, обратитесь к документации по Etherboot.
Для создания загрузочной дискеты, вставьте дискету в дисковод на машине, где установлен Etherboot, затем перейдите в каталог src в дереве Etherboot и наберите:
# gmake bin32/devicetype.fd0
devicetype зависит от типа адаптера Ethernet на бездисковой рабочей станции. Обратитесь к файлу NIC в том же самом каталоге для определения правильного значения для devicetype.
Подкачка по NFS в FreeBSD4.X
Местоположение и размер файла подкачки могут быть указаны FreeBSD-специфичными параметрами BOOTP/DHCP 128 и 129. Примеры файлов настройки для ISC DHCP 3.0 или bootpd приведены ниже:
Добавьте следующие строки в dhcpd.conf:
# Global section option swap-path code 128 = string; option swap-size code 129 = integer 32;
host margaux { ... # Standard lines, see above option swap-path "192.168.4.4:/netswapvolume/netswap"; option swap-size 64000; }
swap-path это путь к каталогу, где находятся файлы подкачки. Название каждого файла имеет вид swap.client-ip.
Старые версии dhcpd использовали синтаксис option option-128 "..., который больше не поддерживается.
Во /etc/bootptab будет использоваться такой синтаксис:
T128="192.168.4.4:/netswapvolume/netswap":T129=0000fa00
Замечание: В файле /etc/bootptab размер файла подкачки должен быть записан в шестнадцатеричном формате.
На файловом сервере NFS создайте файл (или файлы) подкачки:
# mkdir /netswapvolume/netswap
# cd /netswapvolume/netswap
# dd if=/dev/zero bs=1024 count=64000 of=swap.192.168.4.6
# chmod 0600 swap.192.168.4.6
192.168.4.6 является IP-адресом бездискового клиента.
На файловом сервере NFS, в /etc/exports добавьте такую строку:
/netswapvolume -maproot=0:10 -alldirs margaux corbieres
Затем укажите mountd на повторное чтение файла exports, как описано ранее.
Положение и размер файла подкачки могут быть указаны в FreeBSD-специфичных параметрах BOOTP/DHCP с номерами 128 и 129. Ниже приведены примеры файлов настройки для ISC DHCP 3.0 или bootpd:
Добавьте следующие строки к dhcpd.conf:
# Global section option swap-path code 128 = string; option swap-size code 129 = integer 32;
host margaux { ... # Standard lines, see above option swap-path "192.168.4.4:/netswapvolume/netswap"; option swap-size 64000; }
swap-path это путь к каталогу, где расположены файлы подкачки. Файлы называются swap.client-ip.
Старые версии dhcpd используют синтаксис option option-128 "..., которые более не поддерживаются.
/etc/bootptab вместо этого использует следующий синтаксис:
T128="192.168.4.4:/netswapvolume/netswap":T129=0000fa00
Замечание: В /etc/bootptab, размер подкачки должен вычисляться в шестнадцатеричном формате.
Создайте на NFS сервере с файлами подкачки файлы:
# mkdir /netswapvolume/netswap
# cd /netswapvolume/netswap
# dd if=/dev/zero bs=1024 count=64000 of=swap.192.168.4.6
# chmod 0600 swap.192.168.4.6
192.168.4.6 это IP адрес бездискового клиента.
На файловом сервере NFS с файлами подкачки добавьте следующую строку к /etc/exports:
/netswapvolume -maproot=0:10 -alldirs margaux corbieres
Затем заставьте mountd перечитать конфигурационные файлы как было показано выше.
Подключение устройства
По умолчанию драйверы устройств Bluetooth поставляются в виде модулей ядра. Перед подключением устройства вам необходимо подгрузить драйвер в ядро:
# kldload ng_ubt
Если Bluetooth-устройство в момент запуска системы подключено, то загружайте модуль из файла /boot/loader.conf:
ng_ubt_load="YES"
Подключите ваше USB-устройство. На консоли (или в журнале syslog) появится примерно такое сообщение:
ubt0: vendor 0x0a12 product 0x0001, rev 1.10/5.25, addr 2 ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2 ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3, wMaxPacketSize=49, nframes=6, buffer size=294
Скопируйте файл /usr/share/examples/netgraph/bluetooth/rc.bluetooth в какое-нибудь подходящее место, например, в файл /etc/rc.bluetooth. Этот скрипт используется для запуска и остановки работы Bluetooth-стека. Перед отключением устройства рекомендуется остановить его работы, хотя (обычно) это не фатально. При запуске стека вы получите сообщения, подобные следующим:
# /etc/rc.bluetooth start ubt0
BD_ADDR: 00:02:72:00:d4:1a Features: 0xff 0xff 0xf 00 00 00 00 00 <3-Slot> <5-Slot> <Encryption> <Slot offset> <Timing accuracy> <Switch> <Hold mode> <Sniff mode> <Park mode> <RSSI> <Channel quality> <SCO link> <HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD> <Paging scheme> <Power control> <Transparent SCO data> Max. ACL packet size: 192 bytes Number of ACL packets: 8 Max. SCO packet size: 64 bytes Number of SCO packets: 8