Dial in server linux

Linux.yaroslavl.ru

Шаг 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

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

Источник

Dial in server linux

Допустим, у вас есть подключенная к сети по скоростному каналу машина под управлением Linux, модем и телефонная линия (или несколько линий и модемов). В такой ситуации возникает соблазн сделать из всего этого dial-in сервер, чтобы иметь dial-up доступ к этой машине и к сети из любого места.

Необходимо заметить, что модемы при этом должны быть настроены на автоответ на входящий звонок (как именно это сделать — смотрите в документации к вашему модему). Кстати, если вам понадобится программа-терминал для конфигурирования модема — можете воспользоваться minicom (входит в комплект пакетов Slackware).

Конфигурация ядра

Собираем ядро с поддержкой PPP (Point to Point Protocol), поддержкой асинхронных последовательных линий и поддержкой алгоритмов компрессии для PPP соединений (секция Network device support):

Так как скорее всего вам не захочется тратить реальные адреса на модемные соединения (или у вас просто нет лишних адресов), вполне логично использовать IP-адреса из серого диапазона и воспользоваться механизмом MASQUERADE. Секция Networking options:

в подменю IP: Netfilter Configuration:

После этого соответственно нужно пересобрать ядро и перезагруться с ним.

Установка и настройка mgetty

Нам понадобится mgetty+sendfax (домашняя страница проекта). На текущий момент последняя beta версия mgetty — 1.1.30, однако опытным путем выяснилось, что лучше использовать версию 1.1.28, ибо 1.1.30 у меня как-то странно глючила.

копируем дефаултный policy.h, на базе него будем составлять свою конфигурацию:

Редактируем policy.h, переназначая консоль для вывода сообщений, чтобы всякая ерунда не сыпалась на экран (если нужно — в логах все можно посмотреть):

Компилируем и устанавливаем mgetty:

Редактируем /etc/mgetty+sendfax/login.config, добавляя туда строчку:

В /etc/mgetty+sendfax/mgetty.config для каждого порта прописываем (соответственно указывая ttyS0, ttyS1. ):

Добавляем в /etc/inittab запуск mgetty init’ом (по строчке на каждый порт):

Перезапускаем init (необходимо делать после каждого изменения inittab):

Настройка pppd

За PPP соединения отвечает демон pppd, настроим его так. чтобы при установлении соединения интерфейсу выдавался серый IP-адрес.

В /etc/ppp/options прописываем (информацию по этим опциям можно найти, почитав man pppd):

значение ms-dns — адрес вашего DNS-сервера, netmask — сетевая маска, выставляемая для всех поднимаемых интерфейсов.

Создаем для кажого порта файлик /etc/ppp/options.ttySX (options.ttyS0, options.ttyS1. ) и прописываем в нем комбинацию шлюз:адрес (адрес, естественно, для каждой линии свой):

Заводим в системе модемного пользователя, указывая в качестве шелла /usr/sbin/pppd. Будем пользоваться системной базой паролей, в файлик /etc/ppp/pap-secrets для каждого модемного пользователя добавляем запись:

Если вам необходимо как-то производить учет и ограничение доступа (accounting/billing) пользователей к пулу (например, установить им временной лимит использования пула), можно для этих целей воспользоваться скриптами /etc/ppp/auth-up, /etc/ppp/ip-up и /etc/ppp/ip-down, /etc/ppp/auth-down, которые исполняются при установлении и окончании соединения соответственно.

Настройка masquerade

Если проделать вышеописанные действия, уже будет работать доступ до нашего dial-in сервера, но мы хотели пускать дозвонившихся дальше в сеть, для этого-то и воспользуемся MASQUERADE для всей задействованной серой подсети:

Для создания более сложных конфигураций почитайте документацию к iptables и netfilter вообще.

Как все это работает

Теперь окинем взором всю связку:

  • удаленный пользователель звонит в наш пул, модемы устанавливают соединение
  • процесс mgetty, обслуживающий эту линию, после установления соединения и определения его типа, запускает процесс pppd и сам тихо умирает
  • pppd, в свою очередь, авторизует пользователя по системной базе и если все в порядке, поднимает IP-интерфейс в соответствии с конфигом этого порта
  • IP-пакеты за счет masquerade бегают от пользователя в сеть и обратно, пользователь наслаждается интернетом
  • по какой-либо причине модемное соединение разрывается (обрыв связи, преднамеренное окончание сеанса со стороны клиента или сервера), процесс pppd, обслуживавший его, запускает финальные скрипты и умирает
  • init вновь порождает процесс mgetty, призванный обслуживать освободившуюся линию, система готова к следующему звонку

Источник

Настройка Dial-In Server на Slackware linux

Здравствуй всезнающий All .

Заранее извиняюсь за длинность вопроса

Необходимо сделать следующее — На Linux Slackware 8.0 kernel 2.4.5 (1 модем USRobotics V.Everything на /dev/ttyS0) поднять Dial-In Server и с Win2k Prof туды позвонить — и насладиться прелестями TCP/IP Connection.

Для достижения цели сделано следующее: На Win2k Prof просто Dial-Up соединение.

На Linux имеем: 1. kernel 2.4.5, ppp-2.4.1, mgetty-1.1.28 (компилено с флагом -DAUTO_PPP) 2. root@lin:/#lsmod даёт ppp_deflate 39008 0 (unused) bsd_comp 4096 0 (unused) ppp_async 6640 0 ppp_generic 13952 0 [ppp_deflate bsd_comp ppp_async] slhc 4832 0 [ppp_generic] slip 5664 0 (unused) 3. Файл /etc/ppp/options -detach lock login auth netmask 255.255.255.0 modem crtscts +pap -chap mtu 576 mru 576 proxyarp ms-dns 10.0.0.40 4. Файл /etc/ppp/options.ttyS0 10.0.0.40:10.0.0.251 5. Файл /etc/ppp/pap-secrets # Username Server Password IP addresses * * «» 10.0.0.251 6. Файл /etc/mgetty+sendfax/dialin.config Пустой (всё закоментировано) 7. Файл /etc/mgetty+sendfax/mgetty.config ################################################################### # For USRobotics V.Everything port ttyS0 speed 57600 data-only y debug 9 init-chat «» AT OK ATS7=50S0=1+S62=3+S64=2S39=10 OK (остальное закоментировано) 8. Файл /etc/mgetty+sendfax/login.config /AutoPPP/ — a_ppp /etc/ppp/ppplogin (остальное закоментировано) 9. Файл /etc/ppp/ppplogin #!/bin/bash mesg n stty -echo /usr/sbin/pppd silent auth refuse-chap require-pap login

Модем с Win2k дозванивается, но потом винда пишет «Указанный порт не подключен» На линухе в лог пишет: Mar 25 16:52:01 lin pppd[412]: pppd 2.4.1 started by a_ppp, uid 0 Mar 25 16:52:01 lin pppd[412]: using channel 2 Mar 25 16:52:01 lin pppd[412]: Couldn’t attach to channel 2: No such device or address Mar 25 16:52:01 lin pppd[412]: Exit.

Если Win2k в настройках DialUp соединения указать выводить окно терминала то появляется логин на линух — и можно войти как юзер и работать. НО нужно обычное PPP соединение как с провайдером.

Кто поможет мне вправить руки.

Re: Настройка Dial-In Server на Slackware linux

Прочти доку для pppd-2.4.x. Проверь, есть ли девайс /dev/ppp.
Пропиши опции в modules.conf:
alias ppp ppp_generic
alias /dev/ppp ppp_generic
alias char-major-108 ppp_generic
alias tty-ldisc-3 ppp_async

В /etc/ppp/options.ttyS0 добавь
proxyarp

Re: Настройка Dial-In Server на Slackware linux

много написал и все без переводов строки, читать плохо пишу как сделал я поставил pppd и mgetty сделал юзера и в пассвд написал вместо запуска баш запускать скрипт в котором вот такая строчка /usr/sbin/pppd /dev/ttyS1 38400 connect » crtscts modem 192.168.13.1:192.168.13.2 вот и все

Re: Настройка Dial-In Server на Slackware linux

Источник

Читайте также:  Как поставить 144гц windows 10
Оцените статью