Пошаговая настройка Dial-In сервера

Денис Колисниченко

  1. Установка программного обеспечения
  2. Настройка mgetty
  3. Настройка ppp
  4. Включение IP Forwarding
  5. Второй вариант настройки
  6. Если что-то не работает...
  7. Настройка Windows-клиентов
  8. Литература

Шаг 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*
Некоторые замечания:
  1. CDROM является устройством /dev/hdd (Secondary Slave)
  2. Используется Linux Mandrake (при использовании RedHat пакеты находятся в /mnt/cdrom/RedHat/RPMS)
  3. Не используется supermount (если у вас supermount активен, первую команду вводить не нужно)
  4. Третья и четвертая команды устанавливают все семейство 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
Учет времени работы пользователя с помощью tacacs
Cчетчик Linux coutner
Hosted by uCoz