Операционная система: Linux Нам потребуются ppp-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, установить ppp и mgetty можно с помощью команд: # mount -t iso9660 /dev/hdd /mnty/cdrom #cd /mnt/cdrom/Mandrake/RPMS #rpm -Uvh mgetty* #rpm -Uvh ppp*
Некоторые замечания:
CDROM является устройством /dev/hdd (Secondary Slave)
Используется Linux Mandrake (при использовании RedHat пакеты находятся в /mnt/cdrom/RedHat/RPMS)
Не используется supermount (если у вас supermount активен, первую команду вводить не нужно)
Третья и четвертая команды устанавливают все семейство mgetty и ppp. При использовании такого подхода устанавливаются все файлы - и никакой заботы! Вы же можете установить только то, что вам нужно.
Шаг 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 mesg n tty -echo /usr/sbin/pppd silent auth -chap +pap login
В некоторых версиях ppp вместо -chap нужно писать refuse-chap, а вместо +pap - require-pap Сделайте /etc/ppp/ppplogin исполняемым # chmod +x /etc/ppp/ppplogin
В нашем примере мы используем PAP аутентификацию с использованием пароля из /etc/passwd файла (см. ниже)
/etc/mgetty+sendfax/mgetty.config - должен такой: # For US Robotics Sportster 28.8 with speaker off port ttyS0 speed 28800 data-only y 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 y 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 y debug 3 init-chat "" AT OK ATS7=50S0=1+S62=3+S64=2S39=10 OK
Для ZyXEL U336E можно использовать такие параметры: init-chat "" ATZ OK AT&F1M0E1Q0S0=0S OK answer-chat "" ATA CONNECT \c \r
Теперь нужно изменить /etc/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,S1,S2 - просто идентификаторы - вы можете использовать любое имя. Нужно назначить отдельное имя для каждого порта. S0-S2 я использовал для наглядности.
Теперь нужно запустить mgetty (перед выполнением этой команды включите модемы) # init q Если при выполнении этой команды модем(ы) не подключены или выключены, в /var/log/mesages вы получите много ругательств от mgetty по этому поводу. Если на модеме загорелась лампочка TR, то все настройки выполнены правильно и mgetty подхватил модем.
Шаг 3. Настройка ppp
Обычно для каждого порта в каталоге /etc/ppp создается файл options.ttySx, где x - номер порта. lock 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 следует заменить на реальное имя вашего Dial-In сервера. ppp01- произвольно выбранное имя виртуального узла абонента (вы можете использовать другие имена, например, igor, denis и т.д.). Имена узлов должны быть уникальными, т.е. если вы используете ppp0 в options.ttyS0, то в options.ttyS1 нужно использовать ppp01 и т.д. ms-dns определяет DNS-сервер для клиентов Microsoft. Укажите IP DNS-сервера вашей сети. Нам нужно использовать опцию proxyarp, т.к. мы будем назначать IP-адреса внутри broadcast наших сетевых карт локальной сети. При этом pppd будет делать вид будто бы виртуальный хост находится внутри нашего сегмента ethernet. Вместо "refuse-chap" можно писать "-chap", а вместо "require-pap" - "+pap"
Теперь отредактируем файл /etc/ppp/pap-secrets # Secrets for authentication using PAP # client server secret IP addresses
В нашем примере используется три модема для входящих звонков, поэтому нужно сделать три записи. Пароли мы будем брать из /etc/passwd (или /etc/shadow)
Вносим изменения в наш /etc/hosts 192.168.0.11 ppp01 ppp01.mydomain.com 192.168.0.12 ppp02 ppp02.mydomain.com 192.168.0.13 ppp03 ppp03.mydomain.com
mydomain.com нужно заменить на реальное имя домена. При желании эти записи можно внести также и в локальную зону DNS.
Шаг 4.
Делаем /usr/sbin/pppd программу setuid "rood" # chmod u+s /usr/sbin/pppd
Шаг 5.
Включаем IP Forwarding Разрешение пересылки IP устанавливается в /etc/sysconfig/network файле, примерно так: FORWARD_IPV4=yes Ваше ядро должно быть скомпилировано для поддержки IP_FORWARD Введите команду # echo "1" > /proc/net/ip_forward
Теперь вы готовы к работе!
Второй вариант настройки ppp
Этот вариант может оказаться даже более простым, чем первый. Настройки файлов /etc/options и /etc/options.ttySx остаются прежними, кроме myhost:pp01 нужно заменить на Server_IP:Client_IP Например, 192.168.0.1:192.168.0.11 Нужно изменить содержание файла /etc/ppp/pap-secrets # user1 сервер.домен "" * user2 сервер.домен "" * #
user1 - имя пользователя, зарегистрированного в системе сервер.домен - замените на реальное имя сервера входящих звонков "" - пароли брать из /etc/passwd (/etc/shadow) * - абонент может аутентифицироваться с любого IP. При желании можно назначить другой пароль. В этом случае (если этот сервер используется также и в качестве почтовика) для dial-up'a и POP-сервиса будут использоваться различные пароли. Внимание! Пароли в /etc/ppp/pap-secrets содержатся в открытом виде, а не кодируются с помощью MD5 (или DES) как в файле /etc/shadow (/etc/passwd)
Файл /etc/hosts править не нужно. Вот и все.
Если что-то не работает...
Лучший совет - смотрите /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
Настройка Windows-клиентов
Обыкновенное удаленное соединение, информацию об IP и DNS брать у провайдера. Тип сервера: PPP Дополнительные параметры: только "Программное сжатие данных" Допустимые протоколы: только "TCP/IP"