Операционная система HP-UX заслуживает золотую медаль за простоту сетевого конфигурирования. Все конфигурационные параметры хранятся в файле /etc/rc.config.d/netconf. Значения параметров из этого файла (а также всех других файлов в каталоге rc.config.d) записываются в переменные среды на этапе начальной загрузки; они используются сценарием /sbin/rс. Файл netconf снабжен комментариями, в которых поясняется, что должно быть записано в ту или иную переменную и для чего она нужна.
Базовое конфигурирование
Чтобы назначить компьютеру имя и сконфигурировать его первый сетевой интерфейс, отредактируйте файл netconf, присвоив значения следующие переменным:
HOSTNAME
INTERFACE_NAME[0)
IP_ADDRESS[0]
SUBNET_MASK[0]
Например:
HOSTNAME=disaster
INTERFACE_NAME[0]=lan0
IP_ADDRESS[0]=192.108.21. 99
SUBNET_MASK[0]=255.255.255.0
Второй интерфейс будет иметь индекс 1. О его присутствии говорит значение переменной NET_CARDS, равное 2.
Файл netconf содержит также переменные, предназначенные для конфигурирования статических маршрутов и запуска демона маршрутизации. Чтобы задать стандартный маршрут, нужно выполнить следующие присваивания:
ROUTE_DESTINATION[0]=default
ROUTE_MASK[0]=""
ROUTE_GATEWAY[0)=192.108.21.254
ROUTE_COUNT[0]=1
Переменная ROUTE_MASK нужна для сета, в которой маска подсети отличается от стандартной маски, используемой в данном классе адресов. Переменная ROUTE_COUNT должна содержать 0, если в качестве шлюза выступает локальный компьютер, и 1, если шлюз расположен на удаленной машине. Параметры остальных статических маршрутов задаются в переменных ROUTE_* с индексами [1], [2] и т.д. Эти значения передаются непосредственно команде route. Например, переменная ROUTE_DESTINATTON может содержать ключевое слово default, как показано выше, либо предложение net адрес, либо предложение host имя.
В HP-UX используется демон gated, a не routed. Необходимо задать переменную GATED равной 1, а в массив GATED_ARGS записать список аргументов, передаваемых демону. Подробнее о конфигурировании этого демона рассказывается в главе 14. Много полезной информации содержится на man-странице, посвященной маршрутизации (man routing).
Многие переменные в файле netconf могут содержать либо сетевое имя, либо IP-адрес. Если указано имя, оно обязательно должно присутствовать в файле /etc/hosts. На этапе начальной загрузки система просматривает только файл /etc/hosts и не использует никаких других механизмов поиска имен. В этом файле сначала должны идти полностью определенные доменные имена, затем короткие имена и псевдонимы.
В системе имеется команда lanscan, которая отображает информацию об имеющихся сетевых интерфейсах. Команда ifconfig -а не работает, зато работает команда ifconfig интерфейс. Имена сетевых интерфейсов начинаются с префикса "lan" или "snap". Префикс "lan" обозначает канальный уровень Ethernet, а префикс "snap" — спецификацию IEEE 802.3. Первый интерфейс обозначается 1аn0, второй — lanl и т.д.
В HP-UX, как и в Solaris, имеется концепция подключения интерфейсов. Но все интерфейсы подключаются автоматически, когда команда ifconfig назначает им IP-адреса.
SAM — это системная административная утилита, оснащенная меню и позволяющая конфигурировать сетевые интерфейсы, а также выполнять многие другие административные задачи.
Примеры конфигураций
Чтобы вручную подключить сетевой интерфейс и задать стандартный маршрут, нужно выполнить команды следующего вида:
# ifconfig lan0 192.108.21.99 netmask 0xffffff00
# route add default 192.108.21.254 1
Команда lanscan выводит список сетевых интерфейсов, имеющихся в системе, и параметры связанных с ними драйверов. Команда lanscan -v отображает чуть больше информации. Ниже показан ряд примеров. Поле MAC со значением ETHER подразумевает, что именем устройства будет lan0, а не snap0. Команда ifconfig подтверждает, что это правда.
% lanscan
Hardware Station Crd Hdw Net-Int NM MAC HP-DLPI DLPI
Path Address In# State NamePPA ID Type Support Mjr#
8/0/20/0 0x001 0 UP lan0 snap0 1 ETHER Yes 130
% ifconfig lan0
lan0: flags=843<UP,BROADCAST,RUNNING,MULTICAST> inet 192.108.21.99
netmask ffffff00 broadcast 192.108.21.255
% ifconfig snap0
ifconfig: no such interface
Команда netstat -i отображает имена сетевых интерфейсов, а команда netstat -nr выводит содержимое таблицы маршрутизации:
% netstat -i
Name Mtu Network Address Ipkts Opkts
lan0 1500 192.108.21.0 disaster.xor.com 6047 3648
lo0 4136 127.0.0.0 localhost.xor.com 231 231
% netstat -nr
Routing tables
Dest/Netmask Gateway Flags Refs Use Int Pmtu
127.0.0.1 127.0.0 UH 0 231 lo0 4136
192.108.21.99 192.108.21.99 UH 8 lan0 4136
192.108.21.0 192.108.21.99 U 2 0 lan0 1500
127.0.0.0 127.0.0.1 U 0 0 lo0 4136
default 192.108.21.254 UG 0 0 lan0 1500
Программа lanadmin отображает статистику сетевого трафика для каждого обнаруженного интерфейса. С ее помощью можно управлять работой интерфейсов. Эта программа оснащена текстовым меню, упрощающим доступ к нужной информации. Ниже показан пример сбора данных по интерфейс. lаn0:
% lanadmin
LOCAL AREA NETWORK ONLINE ADMINISTRATION, Version 1.0
Copyright 1994 Hewlett Packard Company.
All rights are reserved.
Test Selection mode.
lan = LAN Interface Administration
menu = Display this menu
quit = Terminate the Administration
terse = Do not display command menu
verbose = Display command menu
Enter command: lan
LAN Interface test mode. LAN Interface PPA Number = 0
clear = Clear statistics registers
display = Display LAN Interface status/statistics
end = End LAN Interface Admin., go up 1 level
menu = Display this menu
ppa = PPA Number of the LAN Interface
quit = Terminate the Admin, return to shell
reset = Reset LAN Interface, execute selftest
specific = Go to Driver specific menu
Enter command: display
LAN INTERFACE STATUS DISPLAY
Thu, Mar 2,2000 00:41:24
PPA Number = 0
Description = lan0 HP 10/100 TX Half-Duplex Hw
Rev 0.
Type (value) = ethernet-csmacd(6)
MTU Size = 1500
Speed = 10
Station Address = 0xl08303e9e6
Administration Status (value) = up(l)
Operation Status (value) = up(l)
Inbound Unicast Packets = 4204
Inbound Non-Unicast Packets = 5594
...
Inbound Unknown Protocols = 501
Outbound Octets = 454903
Outbound Unicast Packets = 3603
...
Deferred Transmissions = 2
Late Collisions = 0
Excessive Collisions = 2
...
К тому времени, когда была запущена эта программа, система работала всего 3 часа глубокой ночью (мы добавляли диск, поэтому часто перезагружались). В результате трафик оказался очень низким. Помимо команд lan и display, результаты работы которых показаны выше, мы также попытались выполнить команды clear (обнуляет счетчики) и reset (сбрасывает конфигурационные параметры интерфейса), но поскольку у нас не было прав суперпользователя, нам было отказано в этом.
Конфигурирование DHCP
Как и в случае других сетевых параметров, включить использование протокола DHCP на этапе загрузки можно путем задания переменных в файле /etc/rc.config.d/netconf. В данном случае переменные хранятся в массиве DHCP_ENABLE: индекс [0] означает первый интерфейс, индекс [1] — второй и т.д. Например, запись
DHCP_ENABLE[C]=1
переводит первый интерфейс в режим DHCP. Сетевая плата получит свой IP-адрес, маску подсети и другие параметры от DHCP-сервера, расположенного в локальной сети. Если задать переменную равной 0, поддержка протокола DHCP будет отключена; придется назначать плате статический адрес в файле netconf. Если запись DHCP_ENABLE отсутствует, считается, что соответствующая переменная по умолчанию равна 1.
Сценарий /sbin/auto_parms берет на себя задачу взаимодействия с DHCP-сервером. Программа dhcpdb2conf записывает параметры DHCP, полученные сценарием auto_parms, в файл netconf, из которого на этапе начальной загрузки извлекается конфигурационная информация.
На стороне сервера система HP-UX реализует DHCP-сервер в виде демона bootpd, который также обрабатывает запросы ВООТР. Программа dhcptools записывает параметры DHCP в базу данных демона, проверяет конфигурационные файлы на предмет наличия ошибок, возвращает неиспользуемые адреса и выполняет множество других задач. Если возникнут проблемы, диагностическая информация программы dhcptools окажется очень кстати. Создаваемые ею файлы помещаются в каталог /tmp, и в их именах присутствует компонент "dhcp".
Конфигурировать протокол DHCP можно также с помощью утилиты SAM. Могут возникать проблемы совместимости, если клиенты HP-UX работают с посторонними DHCP-серверами или, наоборот, серверы HP-UX взаимодействуют со сторонними DHCP-клиентами.
Динамическое переконфигурирование и настройка
Как и в Solaris, можно применять команду ndd для настройки различных сетевых параметров (более 100). Будучи вызванной в интерактивном режиме, команда ndd меняет значения "на лету". Чтобы изменения стали постоянными, нужно добавить их в файл /etc/rc.config.d/nddconf, который читается на этапе начальной загрузки.
Опция -h (вызов справки) очень удобна. При отсутствии дополнительных аргументов команда ndd -h выводит список всех настраиваемых параметров. Если указано имя переменной, отображается информация о том, для чего нужна переменная, каковы ее минимальное, максимальное и стандартное значения. Например:
% ndd -h | grep source
ip_forward_src_routed - Controls forwarding of source routed packets
% ndd -h ip_forward_src_routed
ip_forward_src_routed:
Set to 1 to forward source-routed packets; set to 0 to disable forwarding. If disabled, an ICMP Destination Unreachable message is sent to the sender of source-routed packets needing to be forwarded. [0,1] Default: 1
Как показывает команда ndd, в данной версии HP-UX (11.00) по умолчанию поддерживается направленная маршрутизация. (Надеемся, что, когда значение по умолчанию меняется, документация к команде ndd тоже обновляется.) Чтобы просмотреть и модифицировать значение переменной ip_forward_src_routed, воспользуемся опциями -get и -set:
% ndd -get /dev/ip ip_forward_src_routed
1
% sudo ndd -set /dev/ip ip_forward_src_routed 0
% ndd -get /dev/ip ip_forward_src_routed
0
Чтобы навсегда отключить направленную маршрутизацию, добавьте приведенные ниже строки в файл nddconf:
# отключаем направленную маршрутизацию
TRANSPORT_NAME[0]=ip
NDD_NAME[0]=ip_forward_src_routed
NDD_VALUE[0]=0
Для следующей модифицируемой переменной нужно добавить в файл nddconf те же три строки, указав имя переменной и ее значение, а также индекс 1, а не 0. К сожалению, в этом файле можно задать всего 10 параметров.
Безопасность, брандмауэры, фильтрация и система NAT
В табл. 13.19 описано, как в HP-UX реализован ряд технологий, касающихся безопасной работы в сети. О них кратко рассказывалось в параграфе 13.9. Большинство настроек можно изменить с помощью команды ndd.
Таблица 13.19. Поддержка технологий, связанных с сетевой безопасностью, в HP-UX
|
Технология
|
По умолчанию
|
Переменная, изменяемая командой ndd
|
|
Перенаправление IP-пакетов
|
динамическое1
|
ip_forwarding: 0 — отключено, 1 — включено, 2 — динамически
|
|
Пере адресующие ICMP-пакеты
|
принимаются
|
Отменить это поведение нельзя
|
|
Направленная маршрутизация
|
разрешена
|
ip_forward_src routed: 0
|
|
Широковещатель-ные ping-пакеты
|
разрешены
|
ip_forward_directed_broadcasts: 0
|
1 Разрешено для всех интерфейсов, номер которых больше 1.
В HP-UX нет встроенных пакетов межсетевой защиты и IР-фильтрации, за исключением РРР-соединений (см. далее). Система NAT также не поддерживается. Правда, Даррен Рид (Darren Reed) уже перенес свой бесплатный пакет IPFilter в HP-UX.
Версия демона inetd в HP-UX содержит встроенные функции работы с протоколом TCP, которые можно конфигурировать посредством файла /var/adm/inetd.sec Подробности даны в параграфе 21.7.
Мы рекомендуем использовать специализированное оборудование, например систему Cisco PIX, в качестве брандмауэра. UNIX-системы для этой роли слишком небезопасны. Если вас интересует, как именно ОС HP-UX оказывается незащищенной, обратитесь по адресу
http://people.hp.se/stevesk/bastion11.html
В этом документе описано, какие шаги следует предпринять, чтобы превратить компьютер, работающий под управлением HP-UX 11.00, в "бастион" на пути в незащищенную сеть. В нем перечислены все "ловушки", которые необходимо отключить в HP-UX, чтобы машина могла безопасно работать в Internet. Нам бы хотелось узнать, есть ли аналогичные Web-узлы, посвященные другим рассматриваемым в книге системам?
Конфигурирование РРР
В HP-UX входит РРР-пакет компании Morning Star, использующий tun — драйвер IP-туннелей. Конфигурирование протокола РРР в HP-UX осуществляется почти так же, как в Solaris. В обеих системах используется конфигурация HoneyDanBer UUCP, но в Solaris она оставлена без изменений, а в HP-UX файлы перемещены в другие каталоги и улучшена интерактивная документация.
В табл. 13.20 перечислены файлы, связанные с протоколом РРР. О некоторых из них рассказывалось в параграфе, посвященном конфигурированию РРР в Solaris.
Таблица 13.20. Файлы, связанные с протоколом РРР в HP-UX
|
Файл
|
Назначение
|
|
/etc/ppp/Auth
|
Содержит имена одноранговых компьютеров и параметры аутентификации
|
|
/etc/ppp/Devices
|
Описывает физические устройства (модемы)
|
|
/etc/ppp/Dialers
|
Содержит описание телефонных номеров для каждого системного модема
|
|
/etc/ppp/Filter /etc/ppp/Keys
|
Определяет параметры автоматического набора номера, фильтрации и регистрации пакетов
Содержит ключи для шифрования соединений
|
|
/etc/ppp/Systems
|
Включает информацию о соседних системах
|
|
/etc/ppp/Autostart
|
Содержит команду запуска демона pppd с соответствующими аргументами
|
|
/usr/bin/pppd
|
Демон РРР
|
Все man-страницы, связанные с этими файлами, написаны качественно, но у них странные имена: имя каждой страницы начинается с префикса "ррр", за которым следует имя файла. Например, команда man Systems не работает, зато команда man ppp.Systems отображает детальное описание формата файла Systems, включая несколько примеров.
В каталоге /etc/ррр содержится также ряд образцов для каждого конфигурационного файла. Ниже показан фрагмент файла Systems.ex; этим строкам предшествовали сотни строк комментариев, почти целиком повторяющих man-страницу ppp.Systems:
# Examples of entries that we use at Morning Star Technologies
#
#roughy Any ACU 19200-PEP 5551212 ogin:—ogin: Premora ssword: qkjLJHIuD
#manatee Any ACU 38400 5552468 ogin:—ogin: Premora ssword: qd7DW3KlZ
В каталоге /etc/ppp/examples находятся более специфичные примеры, посвященные терминальным серверам различных производителей.
Чтобы протокол РРР работал в HP-UX, нужно заполнить UUCP-файлы информацией о модеме и системе, с которой устанавливается соединение, включая регистрационное имя и пароль, передаваемые терминальному серверу на противоположном конце соединения. Необходимо создать и отредактировать сценарий /etc/ppp/Autostart, для того чтобы при установлении соединения запускался демон pppd с нужными параметрами. Имеется образец такого сценария — Autostart.ex, снабженный хорошими комментариями. На этапе начальной загрузки один из сценариев в каталоге /sbin/rc2.d вызовет сценарий Autostart автоматически.
Особенности сетевого конфигурирования
Операционная система HP-UX не любит, когда длина имени компьютера превышает 8 символов. Длинные имена можно использовать, но предварительно следует задать имя узла в формате LUCP в файле /etc/rc.config.d/NODENAME, причем длина имени должна быть 8 символов или меньше.