Читаем Linux-сервер своими руками полностью

Работает callback примерно так: клиент сети как обычно устанавливает соединение с сервером и проходит аутентификацию. Если аутентификация прошла успешно, сервер обрывает соединение (кладет трубку). Естественно, если аутентификация не прошла, сервер кладет трубку и не предпринимает никаких дальнейших действий. Кроме логина пароля, клиент также передает некоторое «волшебное» слово. Если сервер получил это слово, то через определенное время (обычно 25…30 секунд) сервер обратного звонка перезвонит по заранее запрограммированному номеру клиента и установит соединение. После этого можно работать в сети как обычно. Как видите, если раньше для доступа в сеть достаточно было знать имя пользователя и пароль, то сейчас нужно, чтобы компьютер, который пытается войти в сеть, был подключен к телефонной линии с заранее запрограммированным номером.

Например, ваш сосед купил пакет неограниченного доступа к Интернет, а вы каким-то образом узнали его имя пользователя и пароль. При обычном соединении (не callback) вы можете работать в Интернет так же, как и сосед, но, естественно, в разное время. При использовании технологии callback подобное уже не пройдет, потому что система callback перезвонит не к вам домой, а к вашему соседу. Таким образом, система callback является дополнительным барьером для нежелательных гостей нашей сети.

В этой главе будут рассмотрены два варианта настройки системы callback. Второй вариант более простой и удобный для клиентов: для установления соединения не нужно никаких скриптов, но этот способ почему-то не всегда корректно работает. Первый требует специальной настройки клиентов, но работает в большинстве случаев. Я рекомендую вам поступить следующим образом: ознакомиться с обоими способами, а начать настройку сначала со второго способа и, если он у вас не будет работать, перейти к настройке первого.

<p>17.3.2. Настройка сервера. Способ1</p>

Приступим к настройке по первому способу. Как я уже отмечал, этот способ предполагает дополнительную настройку клиентов, что не очень удобно. Например, если вы являетесь администратором компании-провайдера Интернет, и у вас несколько сотен пользователей, настраивать все машины, даже если эта работа оплачивается, не очень хочется. Можно, конечно, распечатать подробные инструкции для клиентов, но ведь существуют и такие пользователи, которые и обычный доступ настроить не в состоянии.

Я предполагаю, что программы mgetty и pppd у вас уже настроены и сам сервер удаленного доступа нормально функционирует. Напомню, что установка и настройка программы mgetty была подробно рассмотрена в предыдущем п. 17.2.

При сборке программы mgetty нужно включить опцию автоматического распознания pap-авторизации. Если вы этого не сделали, сейчас самое время это сделать. Если вы установили mgetty из пакетов RPM, то можете пропустить инструкции по включению этой функции. Хотя если у вас все-таки функция DAUTO_PPP работать не будет, даже при установке из пакетов RPM, вам придется пересобрать программу самостоятельно. Исходные тексты программы mgetty доступны по адресу http://alpha.greenie.net/mgetty/. После распаковки копируем файл policy.h-Dist в файл policy.h. В этом файле нужно сделать определенные изменения, которые подходят для вашей системы. В большинстве случаев нужно изменить расположение каталогов или же вообще ничего не изменять.

Теперь нужно включить автоматическое распознавание pap-авторизации. Для этого в файле Makefile найдите строку:

CFLAGS=-02 -Wall -pipe

и измените ее на:

CFLAGS=-02 –Wall –pipe –DOFIDO –DOAUTO_PPP

В этом же файле можно изменить установочные каталоги, но я не рекомендую этого делать. Оставьте все как есть: SBINDIR=/sbin, BINDIR=/bin

После этого выполните две команды, которые откомпилируют и установят mgetty:

make all

make install

Теперь перейдите в каталог callback каталога, который содержит исходные тексты mgetty. Скопируйте программу callback в каталог /usr/sbin, а файл callback, config — в каталог /etc/mgetty+sendfax. Отредактируем файл /etc/mgetty+sendfax/login.conf. Раньше (при условии, что вы настраивали сервер удаленного доступа) он у вас содержал примерно такую строку:

/AutoPPP/– a_ppp /etc/ppp/ppplogin

Сейчас эту строку нужно изменить на следующую:

/AutoPPP/ – а_ррр /usr/sbin/pppd noauth –chap +pap –detach

При обнаружении входящего звонка mgetty передаст управление демону pppd. Добавим в файл mgetty.config описание порта, к которому подключен модем (см. листинг 17.13).

Листинг 17.13. Файл mgetty.config

port ttyS0

# режим для приема только данных

# (отключает факсимильные возможности)

dataonly у

# Строка инициализации модема

init-chat "" AT OK

# Здесь можно задать строку инициализации модема

Перейти на страницу:

Все книги серии Секреты мастерства

Похожие книги