Настройка callback-сервера на базе Linux
Автор: (C) Sunil Thomas Thonikuzhiyil
([email protected])
Перевод: (C) Александр Куприн
Смысл организации dialin-сервера PPP в том, что пользователи устанавливают PPP-соединение с удаленным сервером, дозваниваясь по телефонным линиям с помощью модема. Кроме этого, можно сделать так, чтобы Linux-машина делала обратный звонок пользователю, дозвонившемуся к ней. Этот документ объясняет, как шаг-за-шагом настроить callback-сервер (сервер с функцией обратного дозвона) на базе Linux.
Для того, чтобы всё вышеизложенное заработало, необходимо сконфигурировать сервер так, чтобы он мог принимать входящее PPP-соединение.
Вот что надо сделать:
1) Создайте нового пользователя pppuser
Измените запись в /etc/passwd относящуюся к pppuser на:
pppuser:x:1001:1001:,,,:/home/pppuser:/usr/sbin/pppd
2) Чтобы последовательный порт мог принимать входящие сообщения, добавьте в /etc/inittab следующую строку:
T0:23:respawn:/sbin/mgetty ttyS0 -D /dev/ttyS0
Перезапустите init, выполнив команду 'init q'.
Это разрешит
принимать входящие сообщения через ttyS0.
3) Перейдите в подкаталог /etc/mgetty (Там расположен конфигурационный файл
mgetty. В дистрибутиве Redhat всё это располагается в /etc/mgetty+sendfax)
Отредактируйте login.config, добавив строку:
/AutoPPP/ - a_ppp /usr/sbin/pppd file /etc/ppp/options
Закомментируйте все остальные строки
4) В конфигурационном файле /etc/ppp/options пропишите следующее:
-detach asyncmap 0 modem crtscts proxyarp lock require-pap refuse-chap ms-dns 192.168.50.100 #укажите ip-адрес вашего dns-сервера usepeerdns5) Создайте файл options.ttyS0 в /etc/ppp со следующим содержимым:
192.168.0.100:192.168.0.2 noauthДва ip-адреса, указанные выше -- это адрес вашего сервера и адрес клиента, который он должен получить от сервера. Измените их согласно вашим сетевым настройкам. Если ваш модем подключён к ttyS1, то имя редактируемого файла -- options.ttyS1.
6) Измените права доступа к pppd (в некоторых дистрибутивах у pppd уже есть suid-атрибут)
chmod u+s /usr/sbin/pppd
7) Создайте алиас для ppp, добавив в /etc/profile такую строку
alias ppp=/usr/sbin/pppd -detach'Теперь попытайтесь дозвониться к серверу со стороны клиента. Для этого, если вы используете MS Windows, выберите "Мой компьютер", затем "Удалённый доступ к сети", "Новое соединение" и заполните необходимые данные. Войдите как pppuser и проверьте, работает ли корректно dialin-сервер. Проверьте "пингуется" ли сервер. После этого, вы можете проверить ip-адрес, присвоенный клиенту, воспользовавшись программой winipcfg.
Вот, что нужно сделать.
1) Создать нового пользователя back. (Если кто-то запутался, то речь идёт о настройках на сервере. Прим.перев.)
2) Создать пустой файл с именем callback.conf в /etc/mgetty/. (Если нужно, можете добавить в этот файл строки инициализации для вашего модема. Но обычно его оставляют пустым.)
3) В /etc/mgetty/login.config добавляется следующая строка:
back - - /usr/sbin/callback -S 2561
После ключа -S нужно указать номер, по которому сервер должен сделать обратный звонок клиенту.
&c0s0=1
Затем в свойствах модема на закладке "Параметры" включите элемент (checkbox) "Открыть окно терминала до набора номера". (Названия пунктов взяты из Windows 98 Russian SE. Прим. перев.)
Вы можете оставить поля с именем пользователя и паролем пустыми.
Начните дозваниваться к серверу. После дозвона в открывшемся окне терминала вы увидите приглашения для аутентификации.
Войдите в систему как 'back' (специальный пользователь для обратного дозвона).
Теперь модем со стороны сервера оборвёт связь, подождёт несколько секунд и позвонит вам. После установки callback-соединения вам предложат пройти повторно авторизацию. Введите логин pppuser и пароль. Нажмите "продолжить" на окне терминала. Теперь вы в системе. Проверьте снова "пингуется" ли сервер.
Возможно, для регистрации надо написать скрипт, но я ещё не пробовал это сделать. Процедура регистрации может отличаться в разных версиях Wiindows. И помните, очень важно установить строку инициализации для модема (&c0s0=1).
1) Создать файл /etc/ppp/options с таким содержимым (В оригинале стояло /etc/options, но это, скорее всего, опечатка. Должно быть /etc/ppp/options. Хотя, не имея Debian под рукой -- гарантировать не могу. Прим.перев.):
lock defaultroute noipdefault modem 115200 crtscts debug passive asyncmap 02) Создать файл ppp-callback в /etc/ppp/peers/ и прописать в нём следующее:
ttyS1 19200 crtscts connect '/usr/sbin/chat -v -f /etc/ppp/chat-callback' noauth3) Создать файл /etc/ppp/chat-callback, где указать
ABORT BUSY ABORT VOICE ABORT "NO DIALTONE" ABORT "NO ANSWER" "" ATZ OK ATDT2562 # Телефонный номер сервера CONNECT \d\d ogin: \q\dback TIMEOUT 90 RING AT&C0S0=1 ogin: \q\dpppuser assword: \q\dpasswordforppuserВ скрипте измените значения номера телефона, логина и пароля на те, которые вы будете реально использовать. (Просмотрите документацию на ваш модем, возможно, для него понадобятся дополнительно параметры инициализации. Не исключено, что нужно будет заменить ATZ на что-то типа AT&FX2.)
4) Создайте скрипт /usr/bin/pppcall и напишите в нём следующее
#!/bin/bash
/usr/sbin/pppd -detach call
ppp-callback &
Сделайте его исполняемым
Теперь вы можете позвонить на сервер, используя
скрипт pppcall
(Обращаю ваше внимание на то, что автор статьи напутал с именами файлов. В оригинале статьи в пункте 2) имя файла -- pppcalback. В пункте 4) с ключом call было указано имя pppcall. Более подробно смотрите man по pppd(8), ключ call. Прим.перев.)
Если вы обнаружили проблемы при настройке callback-сервера, обязательно сообщите мне об этом. Комментарии и предложения приветствуются.
Я работаю консультантом по информационным технологиям в Kerala Legislative Assembly Trivandrum, Индия. "Запал" на Linux в 1996. Имею степень магистра по информатике (Masters in Computer Science) в Cochin University. Интересуюсь всеми видами операционных систем. В свободное время люблю послушать индийскую классическую музыку.
Команда переводчиков:
Владимир Меренков, Александр Михайлов, Иван
Песин, Сергей Скороходов, Александр Саввин, Роман Шумихин, Александр
Куприн
Со всеми предложениями, идеями и комментариями обращайтесь к Сергею Скороходову ([email protected]). Убедительная просьба: указывайте сразу, не возражаете ли Вы против публикации Ваших отзывов в рассылке.