Пошаговая настройка Dial-In
сервера
Подробная статья о настройке
dial-in сервера. Конфигурирование mgetty и ppp.
Решение проблем.
Денис Колесниченко
- Установка
программного обеспечения
- Настройка mgetty
- Настройка ppp
- Включение IP Forwarding
- Второй вариант
настройки
- Если что-то не
работает...
- Настройка Windows-клиентов
Шаг 1. Установка
программного обеспечения
Операционная система: 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
#added by me
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
вы получите много ругательств от 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
* *
""
192.168.0.11
* *
""
192.168.0.12
* *
""
192.168.0.13
В нашем примере используется три модема
для входящих звонков, поэтому нужно
сделать три записи.
Пароли мы будем брать из /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"
Линки по теме:
PPP-HOWTO
DNS-HOWTO
NET3-HOWTO
Источник - SoftТерра, http://www.softerra.ru
|