Установка клиента SLIP была трудной. Выполнение противоположной задачи, а
именно конфигурирование хоста для того, чтобы он действовал как SLIP-сервер,
намного проще.
Есть два способа работы в серверном режиме SLIP. Оба они требуют создания
специального пользователя для клиента SLIP. Допустим, нужно предоставить
SLIP-сервис пользователю Arthur Dent с машины
dent.beta.com. Создайте логин
dent добавлением в файл
passwd такой строки:
dent:*:501:60:Arthur Dent's SLIP account:/tmp:/usr/sbin/diplogin
|
Затем установите пароль для dent
командой passwd.
Команда dip может работать в серверном режиме под
именем diplogin. Обычно
diplogin является ссылкой на
dip. Его главный файл конфигурации
/etc/diphosts, который присоединяет имена
пользователей к IP адресу. В качестве альтернативы Вы можете также
использовать sliplogin, BSD-производное средство,
которое описывает более гибкую схему конфигурации, которая позволяет Вам
выполнить скрипт всякий раз, когда хост устанавливает и разрывает связь с
Вашей машиной.
Когда SLIP-пользователь dent
зарегистрируется в системе, dip перейдет в режим
сервера. Чтобы определить, действительно, ли ему разрешено использовать SLIP,
нужно найти имя пользователя в /etc/diphosts. Этот
файл подробно описывает права доступа и параметры соединения для каждого
SLIP-пользователя. Типовая запись в /etc/diphosts:
# /etc/diphosts
user:password:rem-addr:loc-addr:netmask:comments:protocol,MTU
|
Поля описаны в
таблице
7-2.
Таблица 7-2. Поля записей файла /etc/diphosts
| Поле |
Описание |
| user
|
Имя пользователя, по которому
dip ищет запись для вошедшего в систему пользователя.
|
| password |
Дополнительный пароль для защиты
соединения. Здесь пароль хранится в зашифрованном виде (как в файле
/etc/passwd). Если он указан,
diplogin спросит у пользователя второй пароль после
его входа в систему, но до предоставления ему сервиса SLIP. Этот пароль
используется в дополнение к паролю для входа в систему. |
| rem-addr
|
Адрес, назначаемый удаленной
машине. Можно вместо адреса задать имя, если оно есть у сервера имен, или
IP-адрес. |
| loc-addr
|
IP-адрес для этого конца
SLIP-связи. Тоже можно задать как имя, так и адрес. |
| netmask
|
Маска подсети для маршрутизации.
Маска не применяется непосредственно для SLIP-связи, но используется в
комбинации с rem-addr для построения маршрута к
удаленному сайту. |
| comments
|
Просто текст для пояснения записи
в /etc/diphosts. Программно не обрабатывается.
|
| protocol
|
Задает протокол или line
discipline для этой конкретной связи. Значения совпадают со значениями для
параметра -p в команде
slattach. |
| MTU |
Задает максимальную длину пакетов
при передаче по этой связи. Любой пакет, размером больше этого значения,
будет фрагментирован (поделен на пакеты с длиной в пределах MTU). |
Пример записи для dent:
dent::dent.beta.com:vbrew.com:255.255.255.0:Arthur Dent:CSLIP,296
|
Итак, пользователю dent будет предоставлен
SLIP-сервис без запроса дополнительного пароля. Он получит IP-адрес,
связанный с именем dent.beta.com с маской
сети 255.255.255.0. Его маршрут по умолчанию
должен быть нацелен на IP-адрес имени
vbrew.com, и он должен использовать протокол
CSLIP с длиной MTU в 296 байт.
Когда dent входит в систему,
diplogin получает сведения о нем из файла
diphosts. Если второе поле содержит некое значение,
diplogin спросит внешний пароль соединения
("external security password"). Строка, введеная пользователем, будет
зашифрована, а результат сверен с паролем в
diphosts. Если не совпало, соединение будет
запрещено. Если поле пароля хранит строку
s/key, и dip
откомпилирован с поддержкой S/Key, выполняется авторизация по этому
алгоритму. S/Key описан в документации на dip.
После успешного входа diplogin настроит протокол
линии, а также интерфейс и маршрутизацию. Когда пользователь отсоединится, и
модем положит трубку, diplogin вернет линию в
нормальное состояние.
diplogin требует привилегий администратора. Есои
dip не объявлен как setuid к пользователю
root, следует сделать
diplogin отдельной копией
dip вместо простой ссылки. Безопасней объявить
diplogin как setuid без изменения статуса
dip.