Где проводится профессиональная переподготовка "Системное администрирование Windows"? Что-то я не совсем понял как проводится обучение. |
Сетевые соединения: наблюдение и исправление неполадок
Удаленный доступ по коммутируемым каналам связи
Протокол PPP
Протокол PPP (Point-to-Point Protocol) был разработан для связи по последовательным каналам, таким, как коммутируемые телефонные каналы, соединения через последовательные порты и т.д. С помощью протокола PPP можно установить канал связи и передавать по нему пакеты любых протоколов – TCP/IP, IPX/SPX, NetBIOS. Нас в приложении к UNIX интересует настройка работы с TCP/IP поверх PPP.
Протокол PPP предполагет возможность выполнения следующих операций:
- установление связи;
- согласование параметров передачи (скорость, четность и т.п.);
- согласование параметров сетевого интерфейса (IP-адрес, маска, адрес сервера имен и пр.);
- передача пакетов между интерфейсами;
- разрыв связи.
Для установления связи может потребоваться аутентификация, поэтому программы, работающие с PPP, должны уметь запрашивать и передавать аутентификационную информацию (имя и пароль, в некоторых случаях – зашифрованные).
Подробная документация по настройке PPP в Solaris 9 содержится, в частности, в документе "Solaris 9 System Administrator Collection >> System Administration Guide: Resource Management and Network Services" по адресу http://docs. sun.com/db/doc/806-4076?q=ppp, а обзор PPP в Solaris 9 имеется по адресу http://docs.sun.com/db/doc/806-4076/6jd6amr63?q=ppp&a=view
Программа aspppd
В системах Solaris начиная с Solaris 2.4 и до Solaris 8 включительно для обеспечения связи по протоколу PPP использовалась утилита aspppd, вызывавшая нарекания из-за сложности настройки и использования. В Solaris 9 она заменена на более стандартную и удобную программу pppd, которая может служить как сервером, так и клиентом PPP. Для настройки aspppd в более старых системах Solaris следует обратиться к FAQ на эту тему. Например, можно найти одно из них по адресу http://solaris.opennet. ru/docs/RUS/solaris_x86/index.html.
Программа pppd
Сейчас для установления соединений через PPP в UNIX-системах используют сервер pppd, причем он есть в поставке как новых коммерческих, так и некоммерческих UNIX-ов.
Программа pppd может работать сервером удаленного доступа, т.е. принимать входящие звонки, а может выполнять роль клиента, дозваниваясь до сервера удаленного доступа.
При соединении двух компьютеров по протоколу PPP каждый из них рассматривается как равноправный участник соединения. Любой участник может предъявить к соединению свои требования: запросить определенный IP-адрес для себя или другого участника, потребовать аутентификацию и т.д. Если второй участник соглашается с требованием или его собственные требования не противоречат запрошенным, соединение устанавливается. Если требования участников противоречивы, то соединение не устанавливается.
Настройки программы pppd находятся в каталоге /etc/ppp. Основные файлы настроек pppd – это options и ppp.conf.
pppd параметры
Параметры должны включать имя_устройства и скорость.
Имя устройства последовательного порта
В Solaris, как и в некоторых других системах UNIX, файл устройства, используемый для приема соединения через последовательный порт, и файл устройства, используемый для инициироваиня такого соединения, – это два разных файла. Входящие соединения принимаются устройствами /dev/ttyd*, а исходящие создаются через /dev/cua*. Имя устройства, например, для входящих соединений через COM2, будет /dev/ttyd1 ( ttyd0 – COM1, ttyd1 – COM2), а для исходящих через COM2 – /dev/cua1.
Если Вы настраиваете сервер удаленного доступа, надо заранее записать в конфигурацию модема (т.е. в NVRAM самого модема) значения S0=1 и S1=1 для того, чтобы модем снимал трубку с первого звонка.
Для непосредственного общения с модемом удобно использовать простейшую терминальную программу cu:
cu –l /dev/cua1.
Если никакая программа не общается с /dev/cua1 в данный момент, то cu подключится к порту COM2. Теперь можно набирать команды модема: все, что будет набрано, попадет в последовательный порт. Для выхода из cu надо набрать ~. (тильда, затем точка) и подождать немного. Программа cu не умеет мгновенно отсоединяться.
Обращаться к устройствам напрямую с помощью cu может только root. Это умолчание можно изменить, установив нестандартные права доступа к файлам устройств /dev/cua* и /dev/ttyd*.
Параметры pppd удобно записать в файл /etc/ppp/options. Если все ppp-сессии на сервере будут однотипными (одна скорость, соединение через один и тот же модем, звонки всегда только входящие), в этот файл можно записать все параметры pppd. Саму программу pppd можно прописать в качестве командного процессора по умолчанию в /etc/passwd всем пользователям, которые используют этот сервер как сервер удаленного доступа.
cat /etc/ppp/options /dev/cuaa0 # устройство 57600 # скорость crtscts # управл. сигн. RTS/CTS modem # модем, использовать DTR debug # протоколирование сессии passive # устанавливать соед. и ждать* dns1 193.114.38.65 # установить DNS 193.114.38.5:193.114.38.4 #назначить адреса local:dialup** -detach # не уходить в background lock # блокировка порта по типу UUCP
Параметр debug включает протоколирование сессии. Программа pppd расценит этот параметр как требование записывать с использованием механизма syslog() все управляющие входящие и исходящие пакеты в удобочитаемой форме. Запись происходит от имени источника daemon с уровнем debug. Подробнее об источниках и уровнях записей в syslogd см. syslog.conf(4).
Параметр modem указывает, что нужно использовать сигналы управления модемом. Программа pppd ждет сигнала CD (carrier detect) от модема, если только не указан connect-script, и "передергивает" (коротко выключает, затем включает) сигнал DTR (dara terminal ready), как только соединение завершается и перед тем, как запустить connect-script.
Если нужно установить индивидуальные настройки pppd для каждого пользователя, то в домашние каталоги пользователей нужно положить файлы .ppprc, которые будут прочитаны демоном pppd после /etc/ppp/ options и могут содержать дополнительные сведения для него.
Выдача динамических адресов клиентам PPP ("динамических" в том смысле, что клиент не знает заранее, какой адрес он получит) выполняется путем создания файлов с именами типа /etc/ppp/options.ttyd1. В каждом таком файле можно указать конкретный адрес удаленного клиента, и тот будет получать разные адреса при соединении с разными последовательными портами сервера. В то же время, каждому порту сервера и его удаленному клиенту на этом порте при такой настройке всегда будет соответствовать фиксированная пара адресов, жестко определенная для каждого последовательного порта сервера.
Кроме этого, можно вообще ничего не писать в /etc/ppp/options про назначение адресов. По умолчанию всем позвонившим на сервер удаленного доступа pppd выдаст адрес ethernet-интерфейса этого сервера. Отличать разных клиентов он будет не по IP-адресу, а по имени создающегося при соединении через PPP интерфейса – ppp0, ppp1 и т.д.
Приведенный пример предполагает, что пользователи при дозвонке на сервер удаленного доступа не применяют стандартный протокол аутентификации в Windows-системах, так называемый PAP (password authentication protocol). В данном примере предполагалось, что пользователи работают с конфигурацией generic login из Winows XP или вводят имя и пароль руками, открытым текстом.
Если требуется настроить аутентификацию с применением PAP и при этом использовать для аутентификации файл /etc/passwd, нужно записать в файл /etc/ppp/options параметр login. При этом пользователь, который соединяется с сервером удаленного доступа с использованием PAP, должен иметь учетную запись и в /etc/passwd, и в /etc/ppp/pap-secrets. Формат записей в последнем таков:
имя_клиента имя_сервера пароль IP-адрес
В каждом из полей может стоять *, обозначающая допустимость любого значения. Как правило, строка аутентификации в pap-secrets выглядит так:
ivan * KqZXV5-u *
Эта строка определяет имя и пароль пользователя ivan, которому разрешено соединяться с этим сервером.
В некоторых версиях pppd при установленном параметре login пароль, записанный в /etc/ppp/pap-secrets, сначала считается незашифрованным. Поэтому любой, прочтя этот файл, может ввести в строку пароля именно то, что записано в этом файле, и будет аутентифицирован.
Только во вторую очередь предполагается, что пароль там зашифрован. В таких pppd нужно выяснить, как указывать в /etc/ppp/options, что нужно считать пароль, записанный в pap-secrets, зашифрованным.
Есть, таким образом, две схемы организации сервера удаленного доступа.
- Пользователь дозванивается на модем сервера, где его встречает программа getty (стандартная программа, обслуживающая вход на любой терминал, кроме псевдотерминала). Она его спрашивает login и password, которые пользователь сообщает вручную или с использованием скрипта на своей машине. Затем, уже после входа в систему, для пользователя запускается pppd, указанный в качестве командного процессора для этого пользователя в /etc/passwd.
- При запуске системы вместо ttymon на тот последовательный порт, где находится модем, напускается pppd, который ждет входящего звонка. Когда кто-то дозванивается, pppd сам проводит аутентификацию с использованием /etc/ppp/pap-secrets.
Запуск ttymon для определенных терминалов контролируется в /etc/inittab в системах System V, включая Solaris. Старые версии Solaris и большинство других операционных систем используют программу getty вместо ttymon, в новых версиях Solaris программа getty может быть вызвана так же, поскольку файл getty здесь представляет собой символическую ссылку на ttymon.
Файл /etc/ppp/pap-secrets может содержать как строки для аутентификации удаленных клиентов, так и строки, которые соответсвуют аутентификации самого pppd на сервере удаленного провайдера. Имя пользователя, которое pppd будет использовать для того, чтобы идентифицировать самого себя, задается параметром user.