Денис Колисниченко - Linux-сервер своими руками
# chmod +x /etc/ppp/ppplogin
В приведенном примере используется РАР-аутентификация с использованием пароля из файла /etc/passwd (см. ниже). Файл /etc/mgetty+sendfax/mgetty.config должен быть примерно такой, как в листинге 17.7.
Листинг 17.7. Файл mgetty.config# For US Robotics Sportster 28.8 with speaker off
port ttyS0
speed 28800
data-only у debug 3
init-chat "" ATZ OK AT&F1M0E1Q0S0=0 OK
answer-chat "" ATA CONNECT c r
# For Practical Peripheral 14.4 with fax disabled and prolonged
# carrier wait time (90 sec)
port ttyS1
speed 14400
data-only у
debug 3
init-chat "" ATZ OK AT&F1M0E1Q0S0=0S7=90+FCLASS=0 OK
answer-chat "" ATA CONNECT c r
# For USRobotics V.Everything
port ttyS2
speed 57600
data-only у
debug 3
init-chat "" AT OK ATS7=50S0=1+S62=3+S64=2S39=10 OK
В нем определены параметры для трех модемов: US Robotics Sportster 28.8, Practical Peripheral 14.4, USRobotics V.Everything. Для ZyXEL U336E можно использовать такие параметры:
init-chat "" ATZ OK AT&F1M0E1Q0S0=0S OK
answer-chat "" ATA CONNECT c r
Данные параметры вы можете узнать из документации по вашему модему. Очень рекомендую прочитать ее перед установкой сервера входящих звонков. Теперь нужно изменить файл /etc/inittab, как это показано в листинге 17.8.
Листинг 17.8. Фрагмент файла inittab# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
# эти строки нужно добавить
S0:2345:respawn:/sbin/mgetty –x 3 ttyS0
S1:2345:respawn:/sbin/mgetty –x 3 ttyS1
S2:2345:respawn:/sbin/mgetty /dev/ttyS2
S0, S1, S2 — это просто идентификаторы. Вы можете использовать вместо них любое имя. Нужно только назначить отдельное имя для каждого порта. Имена S0…S2 я использовал для наглядности.
Теперь запустите mgetty (перед выполнением этой команды следует включить модемы):
# init q
Если при выполнении этой команды модемы не подключены или выключены, в файле /var/log/mesages вы получите сообщение об этом. Если на модеме загорелась лампочка TR, то все настройки выполнены правильно и mgetty «подхватил» модем.
17.2.3. Настройка ррр
Обычно для каждого порта в каталоге /etc/ррр создается файл options.ttySx, где х — номер порта (см. листинг 17.9).
Листинг 17.9. Файл optionslock login
auth
netmask 255.255.255.0
modem
crtscts
refuse-chap
require-pap
mtu 576
mru 576
proxyarp
myhost:ppp01
ms-dns CCC.CCC.CCC.CCC
Общие настройки для всех портов можно вынести в файл /etc/ppp/options. Имя myhost замените на реальное имя вашего сервера входящих звонков.
ppp01 — это произвольно выбранное имя виртуального узла абонента. Вы можете использовать другие имена, например, igor, denis и тому подобное.
Имена узлов должны быть уникальными, т.е. если вы используете ррр0 в options.ttyS0, то в options.ttyS1 нужно использовать ррр01 и так далее.
Опция ms-dns определяет сервер DNS для клиентов Microsoft. Укажите здесь IP-адрес сервера DNS вашей сети.
Используйте опцию proxyarp, так как IP-адреса будут назначаться внутри broadcast ваших сетевых карт локальной сети. При этом демон pppd будет делать вид, что виртуальный хост находится внутри вашего сегмента ethernet. Небольшая деталь: вместо опции refuse-chap можно писать –chap, а вместо require-pap писать +рар.
Теперь отредактируйте файл /etc/ppp/pap-secrets (см. листинг 17.10).
Листинг 17.10. Файл /etc/ppp/pap-secrets# Secrets for authentication using PAP
# client server secret IP addresses
* * "" 192.168.0.11
* * "" 192.168.0.12
* * "" 192.168.0.13
В приведенном примере используются три модема для входящих звонков, поэтому нужно сделать три записи. Пароли пользователей находятся в файле/etc/passed(или /etc/shadow). Соответственно внесите изменения в свой /etc/hosts (см. листинг 17.11).
Листинг 17.11. Файл /etc/hosts192.168.0.11 ppp01 ppp01.mydomain.com
192.168.0.12 ррр02 ppp02.mydomain.com
192.168.0.13 ррр03 ppp03.mydomain.com
Имя mydomain.com замените на реальное имя домена. По большому счету эти записи не мешало бы также внести и в локальную зону DNS. Теперь осталось установить нужные права доступа для /usr/sbin/pppd:
# chmod u+s /usr/sbin/pppd
17.2.4. Включение IP Forwarding
Разрешение пересылки IP устанавливается в файле /etc/sysconfig/network примерно так: FORWARD_IPV4=yes. При этом ваше ядро должно быть скомпилировано для поддержки IP_FORWARD.
Для включения IP Forwarding введите команду:
# echo "1" > /proc/net/ip_forward
В некоторых дистрибутивах IP Forwarding включается несколько иначе. Если в вашем дистрибутиве есть программа netconf, используйте ее для включения IP Forwarding, если ее нет, изучите документацию по вашему дистрибутиву.
Теперь вы готовы к работе!
17.2.5. Второй вариант настройки
Этот вариант может оказаться даже более простым, чем первый. Настройки файлов /etc/options и /etc/options.ttySx остаются прежними, но строку myhost:pp01 нужно заменить на строку вида:
Server_IP:Client_IP
например,
192.168.0.1:192.168.0.11
Теперь нужно изменить содержание файла /etc/ppp/pap-secrets (листинг 17.12).
Листинг 17.12. Фрагмент файла /etc/ppp/pap-secrets#
user1 сервер.домен "" *
user2 сервер.домен "" *
#
где: user1 — это имя пользователя, зарегистрированного в системе;
сервер.домен — это имя сервера входящих звонков;
"" — пароли брать из /etc/passwd (/etc/shadow);
* – абонент может аутентифицироваться с любого IP.
При желании можно назначить другой пароль. В этом случае, если данный сервер используется также и в качестве почтовика, то для входящих звонков и сервиса POP будут использоваться различные пароли.
Внимание!
Пароли в /etc/ppp/pap-secrets содержатся в открытом виде и не кодируются с помощью алгоритма MD5 (или DES), как в файле /etc/shadow (/etc/passwd). Файл /etc/hosts править не нужно.
Вот, собственно, и все.
17.2.6. Если что-то не работает…
Лучший совет в этом случае — смотрите файл /var/log/messages. В нем много всего интересного. Если у вас появляются сообщения вида:
modprobe: can't locate module char-major-24
то надо прописать в файле /etc/conf.modules следующие строки:
alias ppp-compress-21 bsd_comp
alias ppp-compress-24 ppp_deflate
alias ppp-compress-26 ppp_deflate
17.2.7. Настройка Windows-клиентов
Рассмотрим наиболее распространенную ситуацию, когда для подключения к нашему серверу используется обыкновенное удаленное соединение. IP-адрес клиента и адрес сервера DNS назначается провайдером, то есть нашим сервером. При этом в свойствах соединения нужно указать следующие данные (см. рис. 17.1):
• Тип сервера удаленного доступа: РРР.
• Дополнительные параметры: только «Программное сжатие данных».
• Допустимые протоколы: только «TCP/IP».
Рис. 17.1. Параметры РРР
17.2.8. Дополнительная литература
Из дополнительной литературы рекомендую эту книгу, если вы ее еще не прочитали, а также руководства по протоколу РРР, системе доменных имен DNS, и руководство NET3-HOWTO. Все эти руководства доступны на моей домашней страничке — http://dkws.narod.ru, а также на прилагаемом компакт-диске.
17.3. Обратный звонок
17.3.1. Что такое callback?
Первоначально обратный звонок был предназначен для снижения стоимости международных телефонных переговоров. Стоимость разговора определяется так: отсчет начинается с момента, когда вызываемый абонент поднял трубку или после пятого гудка, если абонент не отвечает, интервал тарификации – 1 минута, то есть каждая неполная минута будет оплачиваться как полная. Стоимость самого разговора зависит от страны, из которой мы звоним. Например, в Украине 1 минута связи с США вам обойдется в 2,5…3,3 доллара США в зависимости от типа линии, которую вы используете: обыкновенную или Utel. Звонок из США в Украину вам обойдется 1…2 доллара. На этом и основана идея callback (callback — обратный звонок).
Рассмотрим небольшой пример: звонок из Украины в США:
1. Украинский абонент набирает выделенный ему номер в США и после первого вызова кладет трубку. Этим звонком он активирует специальное оборудование системы callback. Естественно, этот звонок не оплачивается, потому что оплата начинается с момента поднятия трубки вызываемым абонентом или после пятого вызова. Украинский абонент должен быть подключен к линии с тональным набором.
2. Через 5…20 секунд система callback перезванивает абоненту Украины и приглашает его набрать номер, по которому он хочет позвонить. Система callback набирает этот номер. При этом соединение устанавливается из США, а не из Украины, что в конечном итоге ведет к снижению стоимости всего звонка. При этом интервал тарификации не одна минута, как при звонке из Украины, а всего 6 секунд.