|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> Мелочи
—> pppd
Настраиваем ppp сервер для раздачи дайлапа клиентам
Автор: lissyara.
Телеком, в котором я щас работаю (не совсем в нём - у нас группа компаний, но серваки ихние админю я), по слухам дошедшим из давних времён, когда-то начинался с модемного пула на 16 внешних модемов, типа Hayes Accura 336 EXT и второго пня с WinNT4. Модемы были подключены через какие-то мультипортовые платы висевшие на шине ISA - размеру огроменного, сами COM-порты подключались отдельной платой и шлейфом типа IDE-шного на 40 жил.... Дожить-то до наших дней это всё дожило, винда обновилась до 2000, мултипортовые платы стали PCI, но к текущему моменту это было практически неработоспособно - в среднем модемный пул работал по часу, после чего намертво вис - что и не странно - столько лет винда в инете торчала.
Было принято волевое решение - пора менять на никсы. Для этого был найден старый стоечный корпус, под маму AT. Маму же подобрали ATX - с одим горелым встроенным COM-портом, одним горелым каналом IDE-контроллера, горелым AGP-слотом и никак не влезающую в этот корпус :))) Проц - третий пень на 500MHz - других не было. Корпус пришлось доводить молотком и кусачками до нужной кондиции, как итог - взади дыра 10 на 10 сантиметров - оставлена для лучшего обдува :) В него были воткнуты видяха S3 в PCI, какая-то PCI сетевуха на неизвестном чипе, две мультипортовые платы (про них есть отдельная история) и ещё одна сетевуха - ISA 3com509b (две - потому что он одним интерфейсом (100Mb) смотрит в локалку, другим (10Mb) в инет). Блок питания оставили родной, от корпуса - просто более древнего было не найти. Хард - MAXTOR на 40гиг. Ну, и попробовали о всем этим взлететь. :)))
Разумеется, фряха нормально встала, нормально подцепила все железки. Пришлось попрыгать с мультипортовой платой - но это нестрашно. Дальше было интересней - согласно хандбуку всё просто, вот тока не описывалось главное - что делать, если у модема нет перемычек отвечающих за автоответ и самостоятельную инициализацию... Если я руками инициализировал модем, то фря прекрасно снимала трубку и чё-то там в неё свистела. А вот если нет - не снимала... Помучавшись, и даже начав писать стартовый мегаскрипт для инициализации всех модемов, вспомнил про яндекс. Он и дал ключевое слово:
/usr/home/lissyara/>cd /usr/ports/
/usr/ports/>make search name='mgetty'
Port: mgetty-1.1.35_1
Path: /usr/ports/comms/mgetty+sendfax
Info: Handle external logins, send and receive faxes
Maint: jmz@FreeBSD.org
B-deps: perl-5.8.8
R-deps: perl-5.8.8
WWW: http://www.webforum.de/mgetty-faq.html
/usr/ports/>
| Ставим:
/usr/home/lissyara/>cd /usr/ports/comms/mgetty+sendfax
/usr/ports/comms/mgetty+sendfax/>make && make install && make clean
| В конце установки будет несколько вопросов о настройке модема - можно везде соглашаться на дефолт - всё равно конфиги будут свои. После установки рисуем конфиги - для начала правим файл /etc/ttys - добавляем в его конец такие строки:
ttyd4 "/usr/local/sbin/mgetty" unknown on insecure
ttyd5 "/usr/local/sbin/mgetty" unknown on insecure
ttyd6 "/usr/local/sbin/mgetty" unknown on insecure
ttyd7 "/usr/local/sbin/mgetty" unknown on insecure
ttyd8 "/usr/local/sbin/mgetty" unknown on insecure
ttyd9 "/usr/local/sbin/mgetty" unknown on insecure
ttyda "/usr/local/sbin/mgetty" unknown on insecure
ttydb "/usr/local/sbin/mgetty" unknown on insecure
ttydc "/usr/local/sbin/mgetty" unknown on insecure
ttydd "/usr/local/sbin/mgetty" unknown on insecure
ttyde "/usr/local/sbin/mgetty" unknown on insecure
ttydf "/usr/local/sbin/mgetty" unknown on insecure
| Чтобы было понятно, откуда это, привожу листинг своих портов:
/usr/home/lissyara/>dmesg | grep sio
sio6: type 16550A
sio7: <NetMos NM9845/MSC9845CV Quad/Hexa UART> on puc0
sio7: type 16550A
sio8: <NetMos NM9845/MSC9845CV Quad/Hexa UART> on puc0
sio8: type 16550A
sio9: <NetMos NM9845/MSC9845CV Quad/Hexa UART> on puc0
sio9: type 16550A
sio10: <NetMos NM9845/MSC9845CV Quad/Hexa UART> on puc1
sio10: type 16550A
sio11: <NetMos NM9845/MSC9845CV Quad/Hexa UART> on puc1
sio11: type 16550A
sio12: <NetMos NM9845/MSC9845CV Quad/Hexa UART> on puc1
sio12: type 16550A
sio13: <NetMos NM9845/MSC9845CV Quad/Hexa UART> on puc1
sio13: type 16550A
sio14: <NetMos NM9845/MSC9845CV Quad/Hexa UART> on puc1
sio14: type 16550A
sio15: <NetMos NM9845/MSC9845CV Quad/Hexa UART> on puc1
sio15: type 16550A
sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
sio0: type 16550A
sio1: configured irq 3 not in bitmap of probed irqs 0
sio1: port may not be enabled
sio13: 1 more silo overflow (total 1)
sio13: 1 more silo overflow (total 2)
| Думаю, понятно, что устройства для работы с портами считаются иначе - после ttyd9 идёт ttyda и по алфавиту :)
Затем конфиги mgetty
/usr/local/etc/mgetty+sendfax/mgetty.config
# Конфиг mgetty
# Большинство опций ампутировано как ненужные.
# Уровень отладки
debug 4
# Скорость порта для работы с момедом (на 115200 у меня были глюки,
# даже фря зависла намертво - видать модемы или мультипортовеы
# платы шибко глючные)
#speed 115200
speed 57600
# Принимаем только данные (факсы не нужны)
data-only YES
# Тип модема - автоопределение
modem-type auto
# Строка инициализации модема - у меня стандартная подошла
init-chat "" ATS0=0Q0&D3&C1 OK
# Периодичность проверки модема
modem-check-time 600
# С какого звонка снимать трубку
rings 1
# Строка ответа на звонок
answer-chat "" ATA CONNECT \c \r
# сколько вреемни ждать ответа
answer-chat-timeout 80
| /usr/local/etc/mgetty+sendfax/login.config
/AutoPPP/ - - /usr/sbin/pppd file /etc/ppp/options.ppp.pool debug
| Также надо подготовить конфиги pppd:
/etc/ppp/options.ppp.pool
# Файл опция для pppd
# Дефолтовая опция. С ней, pppd ждёт от модема сигнал CD (Carrier Detect)
# после чего открывает порт (если не задан скрипт соединения).
modem
# Отключить дефолтовое поведение, когда не задан локальный IP-адрес.
# C этой опцией предоставляется локальный IP-адрес.
noipdefault
# Не отключаться от контрольного терминала. Без этой опции, если устройство
# на последовательном порту не терминал, pppd работает в фоновом режиме.
nodetach
# Включение средств отладки соединения. Если эта опция задана, pppd
# логгирует содержимое всех контрольных пакетов в "читабельной" форме.
debug
# Отключаем протокол CCP (Compression Control Protocol) - из за
# кривых клиентов
noccp
# Добавлять поключившийся хост в таблицу ARP [Address Resolution Protocol]
# c выданным ему IP адресом. Нужно для работы в локальной сети.
proxyarp
# Использовать аппаратный контроль несущей (т.е. RTS/CTS)
crtscts
# Сервера DNS для виндовых клиентов
ms-dns 100.100.63.5
# Имя домена добавляемое при аутентифкации клиентов
domain lissyara.su
# Задаёт разрыв соединения после заданного времени простоя соединения,
# время задаётся в секундах
idle 1000
# Протокол аутентификации
require-pap
# Отклонять попытки аутентификации по протоколу CHAP
refuse-chap
| /etc/ppp/pap-secrets
# 100.100.62.48-100.100.62.57
# Локальный адрес, всегда - 100.100.62.46
# Использована статическая адресация по причине, что клиентов у нас меньше чем
# адресов - дополнительная выгода - по одному логину не подконнектятся двое.
# имя_пользователя имя_сервера пароль локальный_адрес:удалённый_адрес
lissyara * 12345678 100.100.62.46:100.100.62.48
client_name * 87654321 100.100.62.46:100.100.62.49
| Также, неплохо бы настроить логгирование pppd. Для этого, ближе к концу файла /etc/syslog.conf добавляем такие строки:
!pppd
*.* /var/log/pppd.log
| Не забываем создать сам файл:
/usr/home/lissyara/>touch /var/log/pppd.log
/usr/home/lissyara/>
| После чего, для надёжности перезагружаемся. После загрузки смотрим процессы:
/usr/home/lissyara/>ps -axjwww | grep mgetty
root 634 1 1 1 0 I ?? 0:00,02 /usr/local/sbin/mgetty ttyd4
root 635 1 1 1 0 I ?? 0:00,02 /usr/local/sbin/mgetty ttyd5
root 638 1 1 1 0 I ?? 0:00,02 /usr/local/sbin/mgetty ttyd8
root 639 1 1 1 0 I ?? 0:00,02 /usr/local/sbin/mgetty ttyd9
root 640 1 1 1 0 I ?? 0:00,02 /usr/local/sbin/mgetty ttyda
root 641 1 1 1 0 I ?? 0:00,02 /usr/local/sbin/mgetty ttydb
root 642 1 1 1 0 I ?? 0:00,02 /usr/local/sbin/mgetty ttydc
root 644 1 1 1 0 I ?? 0:00,02 /usr/local/sbin/mgetty ttyde
root 645 1 1 1 0 I ?? 0:00,02 /usr/local/sbin/mgetty ttydf
root 10678 1 1 1 0 I ?? 0:00,02 /usr/local/sbin/mgetty ttydd
root 31213 1 1 1 0 S ?? 0:00,01 /usr/local/sbin/mgetty ttyd6
root 31214 1 1 1 0 S ?? 0:00,01 /usr/local/sbin/mgetty ttyd7
root 31236 11479 31235 11246 2 R+ p4 0:00,00 grep mgetty
/usr/home/lissyara/>
| Звоним, и смотрим логи mgetty:
/usr/home/lissyara/>tail -f /var/log/mgetty.ttydd
--
11/29 14:42:26 ydd mgetty: interim release 1.1.35-Feb22
11/29 14:42:26 ydd check for lockfiles
11/29 14:42:26 ydd locking the line
11/29 14:42:26 ydd lowering DTR to reset Modem
11/29 14:42:27 ydd send: ATS0=0Q0&D3&C1[0d]
11/29 14:42:27 ydd waiting for ``OK'' ** found **
11/29 14:42:27 ydd waiting...
11/29 14:43:02 ydd wfr: waiting for ``RING''
11/29 14:43:02 ydd send: ATA[0d]
11/29 14:43:02 ydd waiting for ``CONNECT'' ** found **
11/29 14:43:21 ydd send:
11/29 14:43:21 ydd waiting for ``_'' ** found **
11/29 14:43:24 ##### data dev=ttydd, pid=3985, caller='none', conn='57600', name='', cmd='/usr/sbin/pppd', user='/AutoPPP/'
|
и логи pppd
Nov 29 14:43:24 ppp pppd[3985]: pppd 2.3.5 started by root, uid 0
Nov 29 14:43:24 ppp pppd[3985]: Using interface ppp1
Nov 29 14:43:24 ppp pppd[3985]: Connect: ppp1 <--> /dev/ttydd
Nov 29 14:43:24 ppp pppd[3985]: sent [LCP ConfReq id=0x1 <auth pap> <magic 0x833a459> <pcomp> <accomp>]
Nov 29 14:43:24 ppp pppd[3985]: rcvd [LCP ConfAck id=0x1 <auth pap> <magic 0x833a459> <pcomp> <accomp>]
Nov 29 14:43:26 ppp pppd[3985]: rcvd [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0x29df3909> <pcomp> <accomp> <callback 0x600>]
Nov 29 14:43:26 ppp pppd[3985]: sent [LCP ConfRej id=0x2 <callback 0x623>]
Nov 29 14:43:27 ppp pppd[3985]: sent [LCP ConfReq id=0x1 <auth pap> <magic 0x833a459> <pcomp> <accomp>]
Nov 29 14:43:27 ppp pppd[3985]: rcvd [LCP ConfReq id=0x3 <asyncmap 0x0> <magic 0x29df3909> <pcomp> <accomp>]
Nov 29 14:43:27 ppp pppd[3985]: sent [LCP ConfAck id=0x3 <asyncmap 0x0> <magic 0x29df3909> <pcomp> <accomp>]
Nov 29 14:43:27 ppp pppd[3985]: rcvd [LCP ConfAck id=0x1 <auth pap> <magic 0x833a459> <pcomp> <accomp>]
Nov 29 14:43:27 ppp pppd[3985]: rcvd [LCP code=0xc id=0x4 29 df 39 09 4d 53 52 41 53 56 35 2e 31 30]
Nov 29 14:43:27 ppp pppd[3985]: sent [LCP CodeRej id=0x2 0c 04 00 12 29 df 39 09 4d 53 52 41 53 56 35 2e 31 30]
Nov 29 14:43:27 ppp pppd[3985]: rcvd [LCP code=0xc id=0x5 29 df 39 09 4d 53 52 41 53 2d 30 2d 45 34 34 33 35 32 35 45 45 41 34 42 34 45 44]
Nov 29 14:43:27 ppp pppd[3985]: sent [LCP CodeRej id=0x3 0c 05 00 1f 29 df 39 09 4d 53 52 41 53 2d 30 2d 45 34 34 33 35 32 35 45 45 41 34 42 34 45 44]
Nov 29 14:43:27 ppp pppd[3985]: rcvd [PAP AuthReq id=0x1 user="lissyara" password="55555555555"]
Nov 29 14:43:27 ppp pppd[3985]: sent [PAP AuthNak id=0x1 "Login incorrect"]
Nov 29 14:43:27 ppp pppd[3985]: sent [LCP TermReq id=0x4 "Authentication failed"]
Nov 29 14:43:27 ppp pppd[3985]: rcvd [LCP ProtRej id=0x6 70 70 70 64 3a 20]
Nov 29 14:43:27 ppp pppd[3985]: rcvd [LCP ProtRej id=0x7 50 41 50 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 66 61 69 6c 75 72 65 20 66 6f 72 20 41 47 41 54 33]
Nov 29 14:43:27 ppp pppd[3985]: rcvd [LCP TermReq id=0x8 ")\377777777379\t\000<\37777777715t\000\000\002\37777777663"]
Nov 29 14:43:27 ppp pppd[3985]: sent [LCP TermAck id=0x8]
Nov 29 14:43:27 ppp pppd[3985]: rcvd [LCP TermAck id=0x4 "Authentication failed"]
Nov 29 14:43:27 ppp pppd[3985]: Connection terminated, connected for 1 minutes
Nov 29 14:43:28 ppp pppd[3985]: Hangup (SIGHUP)
Nov 29 14:43:28 ppp pppd[3985]: Exit.
|
в данном примере я не авторизовался, но тем не менее - пример показателен :))) Собтвенно, на этом настройка закончена - всё должно работать. Если нет - смотрим логи.
P.S. Когда сервер собрали, настроили, то надо было его ставить в стойку и подключать вместо одного модема, все 10 (заметим, когда-то пул был из 16 модемов - но время, и китайские детали убили несколько модемов), его воткнули не до конца, и когда я подключал первый, это чудо упало. С двух метров на пол - ладно хоть никого не задел... Блок питания, что лежал на полу, расплющило всмятку. Ничё, подняли, вставили в стойку - пашет :)))
P.S.2 Учёт траффика идёт централизовано - по IP (Клиентов, как я писал мало, да и анлим у нас давно уже).
Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=4381.
размещено: 2006-11-29,
последнее обновление: 2006-11-30,
автор: lissyara
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN
На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm
Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth"a
Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli
Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master
MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-09, terminus
DNS zones
Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)
Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4
Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3
Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2
Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
2010-03-01, BlackCat
Шлюз: Часть 1
Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
2010-02-23, Morty
darkstat
Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
2010-01-23, gonzo111
squid+sams+sqstat
Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
2009-12-19, schizoid
mpd5 + radius + ng_car + Abills
Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
2009-11-16, lissyara
UFS->ZFS
Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
2009-11-13, gx_ua
fusefs-ntfs
Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
2009-11-12, Morty
LiveCD
Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД.
2009-09-27, lissyara
Samba как PDC
Контроллер домена - аналог M$ NT4 домена под самбой, без использования LDAP и прочей хиромантии. Просто и быстро =)
2009-08-30, terminus
ipfw nat
Подробное руководство по ipfw nat, сложные случаи конфигурации.
2009-08-24, levantuev
HotSpot
Установка Hotspot системы в общественное заведение.
|
Комментарии пользователей [11 шт.]