HOWTO CallBack Server
Взято: http://ru.gentoo-wiki.com/wiki/HOWTO_CallBack_Server
Содержание
- 1 Введение
- 2 Настройка mgetty
- 3 Настройка inittab
- 4 Настройка ppp
- 5 Настройка iptables
- 6 Настройка клиента MSWindows
- 7 Тестируем
- 8 Автор
Введение
В этой статье описана настройка сервиса обратного дозвона, когда модем пользователя будет дозваниватся до удаленного сервера, пользователь введет логин и отключится, после чего сервер будет перезванивать по ранее указанному номеру для соединения.
Настройка mgetty
- Установите пакеты net-dialup/ppp и net-dialup/mgetty
2) разбираемся с каталогом /etc/mgetty+sendfax
- callback.config имеет такие строки:
# перезвонить клиенту через 2 секунды (по умолчанию 20)
delay 2
# сервер перезвонит клиенту только один раз
# (это если коннект не устанавливается по какой-либо причине,
# например если клиент не указал у себя в строке инициализации модема строку $c0s0=1)
retry-time 65
max-time 60
- dialin.config - пустой
- login.config имеет следующее содержимое:
/AutoPPP/ - a_ppp /usr/sbin/pppd auth -chap +pap
# callback-users
rinus - - /usr/sbin/callback -S T55555555
kolya - - /usr/sbin/callback -S T55552222
vasya - - /usr/sbin/callback -S T55344455
каждому пользователю соответствует один номер, на который сервер будет перезванивать.
/etc/mgetty+sendfax/mgetty.config имеет следующее содержимое:
port ttyS2
speed 115200
data-only y
port ttyS3
speed 115200
data-only y
#init-chat "" ATZ OK ATS43=8 OK \c
У меня 2 модема, сидят на /dev/ttyS2 и /dev/ttyS3
Еще нужно убедиться, что модем выдает сигналы RING при поступлении входящих звонков, или корректно работает встроенная функция автоматического поднятия трубки. Выдаваемые модемом строки "RING" должна перехватывать mgetty, чтобы, отсчитав заданное кол-во звонков, послать модему команду ATA для поднятия трубки и установления модемного соединения. Модемы не всегда сразу правильно настроены, и для некоторых необходима строка инициализации (читайте документацию по модему, чтобы правильно его настроить). Например, строку "#init-chat "" ATZ OK ATS43=8 OK \c" стоит раскомментировать, если вы используете модем Zyxel U-336E, и хотите, чтобы он корректно поднимал трубку. (U-336E Plus не отвечает на входящий звонок)
Остальные файлы в данном каталоге нам не интересны.
Настройка inittab
- Редактируем /etc/inittab. Добавим в конец следующее:
S2:12345:respawn:/usr/sbin/mgetty -n 1 -D /dev/tts/2 ttyS2
S3:12345:respawn:/usr/sbin/mgetty -n 1 -D /dev/tts/3 ttyS3
Что здесь что, я думаю понятно. -n 1 брать трубку после одной посылки вызова. -D - не принимать факсы.
- перезапустим init командой
kill 1 -1 или init q
Всё, модемы поднялись и слушают линию. На данном этапе можно на них позвонить, они должны снять трубку.
Настройка ppp
Далее конфигурируем ppp. Переходим в каталог /etc/ppp В файле /etc/ppp/options оставляем это:
lock
modem
crtscts
asyncmap 0
После этого создаем файлы, описывающие наши модемы. Для моего случая их имена должны быть такие: options.tts.2 и options.tts.3 со следующим содержимым: В options.tts.2
lock
auth
mtu 576
mru 576
192.168.10.2:192.168.10.10
netmask 255.255.255.240
ms-dns 193.232.248.2
ms-dns 193.232.248.45
idle 300
В options.tts.3
lock
auth
mtu 576
mru 576
192.168.10.2:192.168.10.11
netmask 255.255.255.240
ms-dns 193.232.248.2
ms-dns 193.232.248.45
idle 300
В файл pap-secrets впишем логины и пароли пользователей:
"rinus" * "jkdlsj" *
"kolya" * "hjfeiu" *
"vasya" * "jiefjf" *
Настройка iptables
В iptables разрешаем этим ip всё, что нужно. Ну ещё мона разрешить там выход в локалку и прочее.
Настройка клиента MSWindows
С сервером пожалуй всё. Что касается виндового клиента.
Логин: rinus
Пароль: jkdlsj
- В диспетчере устройств на вкладке дополнительно есть окошко для ввода команд инициализации модема. Пишем в неё:
&C0S0=1
Это чтобы модем ждал входящего звонка а не прекращал работу после получения команды
NO CARRIER.
- И последнее - в свойствах соединения в закладке безопасность ставим галочку напротив вывести окно терминала.
Итак, звоним на сервер. Модем снимает трубку. В винде вываливается окно терминала с приглашением login: Пишем свой логин, который мы прописали в /etc/mgetty+sendfax/login.config Сервер разрывает соединение. Окошко терминала не закрываем. Через какое-то время сервер должен позвонить, в окошке терминала появится строчка RING. После установления соединения опять появляется приглашение. На этот раз ничего не пишем, и нажимаем кнопочку done (готово). Далее происходит проверка логина и пароля пользователя (по файлу /etc/ppp/pap-secrets) и устанавливаетя соединение.
И теперь кратенько опишем создание соединения в Linux на примере kppp. Создаём как обычно соединение, метод авторизации PAP. Теперь переходим на закладку Скрипт подключения, и добавляем примерно такие строки:
Expect ogin:
Send rinus #ваш логин
Expect RING
Expect CONNECT
на вкладке Модемы в настройках KPPP добавте в опцию Строка инициализации 2: AT&C0S0=1. Ok. Теперь осталось указать имя пользователя и пароль в самом первом окошке.