17.2.1. Установка программного обеспечения
В качестве операционной системы, естественно, будем использовать ОС Linux. Метод настройки, рассмотренный в этой главе, подойдет для любого дистрибутива. Также вам потребуются пакет ррр версии 2.3.x (желательно самая новая версия) и пакет mgetty-1.1.x. Пакет mgetty должен быть собран с опцией –DAUTO_PPP. Если это не так, то его нужно пересобрать.
Я использую ppp-2.4.0-3mdk.i586.rpm и mgetty-1.1.22-2mdk.i586.rpm, ОС Linux Mandrake 7.2. Если вы используете RedHat/Mandrake, установить ррр и mgetty можно с помощью команд:
# mount –t iso9660 /dev/hdd /mnt/cdrom
# cd /mnt/cdrom/Mandrake/RPMS
# rpm –Uvh mgetty*
# rpm –Uvh ppp*
Некоторые замечания:
1. CD-ROM является устройством /dev/hdd (или Secondary Slave).
2. Используется Linux Mandrake. При использовании Red Hat пакеты находятся в /mnt/cdrom/RedHat/RPMS.
3. He используется supermount. Если у вас supermount активен, первую команду вводить не нужно.
4. Третья и четвертая команды устанавливают все семейство mgetty и ррр. При использовании такого подхода устанавливаются все файлы — и никакой заботы! Но при этом вы можете установить и только то, что вам нужно.
17.2.2. Настройка mgetty
При корректной сборке или установке пакетов mgetty и ррр у вас должны быть следующие файлы:
Каталог /etc/mgetty+sendfax:
dialin.config
login.config
mgetty.config
Каталог /etc/ppp:
auth-up
auth-down
chap-secrets
ip-up
ip-down
options
pap-secrets
Если их нет, вам нужно самостоятельно найти, где они находятся. При самосборке смотрите, что и куда проинсталлировалось. В крайнем случае, необходимые файлы придется создать вручную.
Файл /etc/mgetty+sendfax/dialin.config обычно пустой — в нем все закомментировано. Файл /etc/mgetty+sendfax/login.config должен содержать строчку:
/AutoPPP/– a_ppp /etc/ppp/ppplogin
Убедитесь, что эта строчка не закомментирована. Если вы хотите, чтобы имена пользователей записывались в журналы (log-файлы), отредактируйте
эту строку следующим образом:
/AutoPPP/– /etc/ppp/ppplogin
Затем создайте файл /etc/ppp/ppplogin (см. листинг 17.6).
Листинг 17.6. Файл/etc/ppp/ppploginmesg n
tty –echo
/usr/sbin/pppd silent auth –chap +pap login
В некоторых версиях ррр вместо –chap нужно писать refuse-chap, а вместо +рар писать require-pap. Продолжая настройку, сделайте /etc/ppp/ppplogin исполняемым:
# 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. Обратный звонок