Автор работы: Пользователь скрыл имя, 26 Февраля 2014 в 19:10, доклад
Компонент операционной системы.
Сетевые компоненты.
Операционная система:
Solaris
http://hub.opensolaris.org/
Компонент операционной системы:
Сетевые компоненты
http://www.sunhelp.ru/
Network Information Service
NIS (Network Information Service, информационная служба
сети) — клиент-серверный протокол, созданный
Sun Microsystems и обеспечивающий доступ к системной
конфигурации по всей сети. В домене NIS
(группе компьютеров со своими пользователями
и группами) существуют один главный и
несколько подчиненных серверов, но клиенты
не различают главный и подчиненный серверы.
Протокол используется для того, чтобы
сделать конфигурационную информацию
доступной для определенной группы компьютеров.
Если в сети присутствуют разные ОС, в
каждом ее сегменте должен быть хотя
бы один сервер NIS, чтобы клиенты могли
отправить ему широковещательный запрос.
Если же вся сеть построена на Solaris, такое
условие не является необходимым.
В пределах домена NIS могут быть выделены
сетевые группы, логически объединяющие
определенные компьютеры и пользователей
и описываемые файлом /etc/netgroup. Этот файл
является общедоступным в сети NIS, как
/etc/passwd и /etc/group.
Но передача таких данных открытым текстом
являлась бы существенной уязвимостью
(так было в первых версиях NIS), поэтому
информация о компьютерах, пользователях,
группах, сетевых группах и т.п. преобразуется
из соответствующих файлов в карты NIS.
Карта NIS – это хэшированная база данных,
используемая сервером NIS для ответа на
запросы клиентов.
Такое преобразование осуществляется
программой ypmake при наличии Makefile в каталоге
/var/yp, поскольку программа вызывает этот
файл (в момент создания NIS носила название
Sun Yellow Pages, потом название пришлось изменить
из-за судебных преследований владельцев
торговой марки, но на именовании программ
это не отразилось). Программа ypmake не изменяет
исходный файл, а генерирует на его основе
новую карту NIS.
Если поиск в карте нужно будет производить
по нескольким ключам, потребуется создать
несколько карт, потому что хэширование
базы данных можно осуществить только
по одному ключу (например, passwd.byname и passwd.byuid).
Запуск сервисов NIS осуществляется командой
/usr/lib/netsvc/yp/ypstart, а остановка – командой
/usr/lib/netsvc/yp/ypstop.
Если команда domainname сообщает, что компьютер
не входит в домен NIS, ввести компьютер
в домен можно командой "domainname имя домена
NIS" (если настраивается сервер, потребуется
выполнить команду ypinit –m для инициализации
домена NIS и создания всех необходимых
карт), затем проверить его наличие в домене
и создать при необходимости файл /etc/defaultdomain
и каталог /var/yp/binding/имя домена NIS.
Для запрещения загрузки служб NIS при загрузке
системы достаточно удалить файл /etc/defaultdomain.
Если для поиска адресов в сети будет использоваться
DNS, а не NIS, нужно исправить строку, определяющую
порядок использования служб имен для
поиска адресов, в /etc/nsswitch.conf, чтобы dns предшествовало
nis:
hosts: dns nis files
Формат записей в файле /etc/netgroup:
имя группы список участников
В качестве списка участников принимаются
имена членов группы, разделенные пробелами.
Член группы – имя другой сетевой группы
или запись вида
(имя компьютера, имя пользователя, имя домена NIS)
Отсутствие одного или нескольких компонентов
означает, что в соответствующей
позиции подразумевается любой компонент.
Один компьютер может входить в несколько
доменов NIS.
Информация о доменах NIS хранится на сервере
в подкаталогах каталога /var/yp. На главном
сервере NIS должны быть запущены процессы
ypserv (он отвечает на запросы клиентов),
ypxfrd (обслуживает запросы от подчиненных
серверов NIS для копирования информации),
yppasswdd (демон изменения пароля пользователя).
В Solaris компьютер автоматически настроится
на работу с NIS, если будет найден файл
/etc/defaultdomain. Программа ypstart при запуске
системы проверяет, установлено ли имя
домена в этом файле.
Демон ypserv запускается автоматически,
если указано имя домена, существует каталог
/var/yp/имя домена, переменная YPDIR и в каталоге
$YPDIR есть доступный для выполнения файл
ypserv. Аналогичные условия требуются и
для запуска ypbind (он нужен, потому что серверы
NIS одновременно являются и клиентами
NIS), только каталог называется /var/yp/binding/имя
домена, а исполняемым файлом должен быть
ypbind.
Для использования определенного сервера
NIS или в случае невозможности отправки
широковещательного запроса следует запускать
ypbind без ключа broadcast. Для настройки клиента
для работы с определенным сервером NIS
следует использовать команду ypset, а для
настройки клиента NIS в целом применяется
ypinit с ключом с:
ypinit –c имя сервера
ypset имя сервера
На клиенте NIS должен быть файл /etc/hosts, если
нужно обратиться к серверу NIS по имени.
Настройка подчиненного сервера NIS выполняется
только после настройки
главного. Отличие состоит в том, что программе
ypinit передается ключ –s (slave) вместо –m.
Передача карт NIS с главного сервера на
подчиненные инициируется с помощью запуска
процесса ypxfr.
Yppush требует обновления карт NIS от подчиненных
серверов, makedbm создает хэшированную базу
данных из текстового файла, yppoll выводит
версию карты сервера, yppasswd меняет пароль
пользователя, ypcat ypservers выводит список
имен NIS-серверов домена, а ypcat –x и ypwhich
–x выводят карты NIS. Определить, какой
сервер NIS каждый из компьютеров считает
главным, возможно с помощью команды ypwhich.
http://www.sunhelp.ru/
Point-to-Point Protocol
Протокол PPP является
протоколом канального уровня (data link) модели
OSI и разработан для связи по последовательным
каналам (например, по нуль-модемному кабелю,
поверх Ethernet, по коммутируемым
телефонным линиям, посредством GPRS или
EDGE). Если с помощью протокола PPP установить
канал связи, можно передавать по нему
пакеты любых протоколов – TCP/IP, IPX/SPX, NetBIOS.
Связь по протоколу РРР состоит из четырех
этапов:
- установление связи посредством LCP (Link
Control Protocol) - осуществляется выбор протоколов
аутентификации, шифрования, сжатия и
устанавливаются параметры соединения,
- установление подлинности пользователя
- реализуются алгоритмы аутентификации
поп протоколам РАР, СНАР или MS-CHAP,
- контроль повторного вызова РРР (необязательный
этап, подтверждающий подлинность удаленного
клиента),
- вызов протокола сетевого уровня (реализация
протоколов, установленных на первом этапе).
Настройка
работы TCP/IP поверх PPP с использованием
pppd
Программа pppd может быть сервером удаленного
доступа, принимая входящие звонки, а может
выполнять роль клиента, дозваниваясь
до сервера. При соединении по протоколу
PPP каждый из компьютеров считается равноправным
участником соединения, который может
предъявить свои требования: запросить
определенный IP-адрес, потребовать аутентификацию
и т.д. Если требования участников не совпадают
- соединение не устанавливается.
Синтаксис вызова pppd:
pppd параметры
Параметры включают имя устройства и скорость
соединения.
Настройки pppd находятся в каталоге /etc/ppp,
основные файлы настроек – options и ppp.conf.
В Solaris имеются разные файлы устройств
для приема соединения через последовательный
порт и создания исходящего соединения.
Входящие соединения принимаются устройствами
/dev/ttyd*, а исходящие создаются через /dev/cua*
(ttyd0/cua0 – COM1, ttyd1/cua1 – COM2 и т.д.).
Для обращения к модему можно использовать
терминальную программу cu:
#cu –l /dev/cua1
Она подключится к порту
COM2, если он в данный момент не занят. Теперь
все, что будет набрано (команды модема),
попадет в последовательный порт. Для
выхода из cu нужно набрать “~.”.
Если изменить права доступа к файлам
устройств /dev/cua* и /dev/ttyd*, обращаться к
устройствам напрямую с помощью cu сможет
не только root.
Некоторые параметры /etc/ppp/options:
/dev/cuaN# устройство
115200 # скорость
crtscts # управление
сигналами RTS/CTS
modem # модем, использовать
DTR - pppd ждет сигнала CD (carrier detect)
от модема, если не
указан connect-script,
и выключает-включает
сигнал DTR (dara terminal ready),
как только соединение
завершается
и перед тем, как запустить
connect-script
debug # протоколирование
сессии, запись происходит
от имени источника daemon с уровнем debug
passive # устанавливать
соединение и ждать
dns1 x.x.x.x # установить
DNS
-detach # не уходить
в background
lock # блокировка порта по типу UUCP
Для установления индивидуальных настроек
pppd для пользователя, в его домашний каталог нужно добавить
файл .ppprc, который будет прочитан демоном
pppd после /etc/ppp/options.
Выдача динамических адресов клиентам
PPP происходит путем создания файлов с
именами типа /etc/ppp/options.ttydN. В каждом файле
можно указать конкретный адрес удаленного
клиента, который будет получать разные
адреса при соединении с разными портами
сервера, но каждому порту сервера и его
удаленному клиенту на этом порте всегда
будет соответствовать определенная пара
адресов.
Если ничего не указывать в /etc/ppp/options про
назначение адресов, всем позвонившим
на сервер удаленного доступа pppd выдаст
адрес Ethernet-интерфейса этого сервера.
Клиенты будут отличаться по имени создавшегося
при соединении через PPP интерфейса –
ppp0, ppp1 и т.д.
Если нужно настроить аутентификацию
с применением PAP (password authentication protocol) и
при этом использовать для аутентификации
файл /etc/passwd, нужно записать в файл /etc/ppp/options
параметр login. При этом пользователь, соединяющийся
с сервером удаленного доступа с использованием
PAP, должен иметь учетную запись и в /etc/passwd,
и в /etc/ppp/pap-secrets. Формат записей в последнем
файле:
имя клиента имя сервера пароль IP-адрес
В каждом из полей может стоять *, обозначающая
допустимость любого значения.
Локальный IP-адрес определять не нужно,
если не требуется принудительно выставить
локальный, статический адрес (к тому же
большинство PPP-серверов не позволяют
удаленной системе устанавливать свой
IP-адрес).
В некоторых версиях pppd при установленном
параметре login пароль, записанный в /etc/ppp/pap-secrets,
считается незашифрованным, т.е. для успешной
аутентификации достаточно ввести в строку
пароля то, что записано в этом файле.
Варианты организации
сервера удаленного доступа
1. Пользователь дозванивается на модем
сервера, где запущена программа getty. Она
запрашивает login и password, которые пользователь
сообщает вручную или с использованием
скрипта. Уже после входа в систему запускается
pppd, указанный в качестве командного процессора
для этого пользователя в /etc/passwd.
2. При запуске системы вместо ttymon (getty –
символическая ссылка на
/usr/lib/saf/ttymon в новых версиях Solaris) на последовательном
порте, где находится модем, работает pppd,
ждущий входящего звонка. Когда кто-то
дозванивается, pppd проводит аутентификацию
с использованием
/etc/ppp/pap-secrets.
Запуск ttymon для определенных терминалов
контролируется в /etc/inittab. Файл /etc/ppp/pap-secrets
может содержать как строки для аутентификации
удаленных клиентов, так и строки, которые
соответствуют аутентификации самого
pppd на сервере провайдера. Имя пользователя,
которое pppd будет использовать для идентификации
себя, задается параметром user.
Пример настройки
PPPoE-соединения
Создание файла /etc/ppp/peers/provider:
sppptun # what device to use
plugin pppoe.so
connect "/usr/lib/inet/pppoec
interface" # initialize the INTERFACE (сетевая карта)
persist # if the connection dies,
bring it back up
user "user" # login
noauth # Do not make the other side
authenticate itself
noipdefault # Let them give you what
IP they want to give you
noccp # No compression
novj # No compression
noaccomp # No compression
nopcomp # No compression
defaultroute #add an appropriate defaultroute
Теперь нужно записать
пароль на подключение в файлы /etc/ppp/chap-secrets
и
/etc/ppp/pap-secrets:
user * pass
Поля “user” и “pass” разделены между собой
знаком табуляции (Tab).
Перед подключением нужно привязать PPPoE
к интерфейсам:
sppptun plumb pppoed interface
sppptun plumb pppoe interface
Все остальные настройки сети должны быть
указаны в соответствующих файлах.
Подключение выполняется командой
/usr/bin/pppd call provider
Можно настроить автоматическое подключение.
Для этого создается файл
/etc/init.d/ppplink, содержащий следующий скрипт:
#!/sbin/sh
case "$1" in
'start')
if
[ ! -x /usr/bin/pppd -o ! -c /dev/sppp ] ; then
exit 1
fi
if
[ -s /usr/sbin/sppptun -a -f /etc/ppp/pppoe.if] ; then
/usr/bin/pppd call provider
fi
;;
'stop')
echo
"Taking down PPPoE connection"
/usr/bin/pkill
-x pppd
echo
"Done"
;;
*)
echo
"Usage: $0 { start | stop }"
exit 1
;;
esac
exit 0
Теперь нужно сделать его автоматически
запускаемым:
chmod 744 ppplink //изменение
прав доступа
chown root:sys ppplink //изменение
владельца файла
на root, группы на sys
cd /etc/rc2.d
ln -s ../init.d/ppplink S48ppplink
//создание символической
в одном из каталогов стартовых скриптов