- Linux.yaroslavl.ru
- Шаг 1. Установка программного обеспечения
- Шаг 2. Настройка mgetty
- Шаг 3. Настройка ppp
- Шаг 4.
- Шаг 5.
- Второй вариант настройки ppp
- Если что-то не работает.
- Dial in server linux
- Конфигурация ядра
- Установка и настройка mgetty
- Настройка pppd
- Настройка masquerade
- Как все это работает
- Настройка Dial-In Server на Slackware linux
- Re: Настройка Dial-In Server на Slackware linux
- Re: Настройка Dial-In Server на Slackware linux
- Re: Настройка Dial-In Server на Slackware 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*
Некоторые замечания:
- 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: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
Источник