Ссылка на оригинал: http://ru.gentoo-wiki.com/
C версии: 1.0
Изменено: 1.3
Это работает для ядер >=2.6.15
Если ваш провайдер использует mppe-mppc проверьте следующее:
Linux Kernel Configuration: Параметры ядра |
Device Drivers ---> Network support ---> <M> PPP (point-to-point protocol) support <M> PPP MPPE compression (encryption) (EXPERIMENTAL) Cryptographic options ---> <M> SHA1 and RC4 algorithms |
Теперь необходимо собрать наше ядро. Без разницы, как вы скомпилировали эти части. Вы можете вкомпилировать все в ядро или собрать модулями. В конце вы должны подгрузить модули:
libcrc32c
ip_gre
crc_ccitt
ppp_async
и конечно ppp_mppe_mppc.
А затем запустите modules-config.
Это работает для ядер >=2.6.15
Установка очень проста:
Code: Установка |
emerge sys-kernel/gentoo-dev-sources |
Если все удалось, то теперь вам необходимо сконфигурировать клиента. Вот пример конфигурации /etc/ppp/peers/myvpn:
pty "/usr/sbin/pptp xxx.xxx.xxx.xxx --nolaunchpppd" #xxx...это адрес сервера name myname remotename myvpn lock dump noipx #debug #включите эту опцию,если хотите видеть отладочные сообщения(пригодиться если ничего не работает) ipcp-accept-local ipcp-accept-remote lcp-echo-failure 4 lcp-echo-interval 30 asyncmap 0 crtscts require-mppe refuse-eap nobsdcomp nodeflate proxyarp ipparam myvpn
Осталось только дозвониться до
провайдера: pon myvpn Для вывода отладочных
сообщений на этой же консоли введите:
pon myvpn debug dump logfd 2
Теперь необходимо настроить таблицы маршрутизации. Обычно это делается так: route add default dev ppp0
Для графической (GTK+) настройки PPTP используйте
net-dialup/pptpconfig
он пока под маской "~x86"
Code: установка pptpconfig |
ACCEPT_KEYWORDS="~x86" emerge pptpconfig |
Или более правильно в файл /etc/portage/package.keywords добавить следующие строки:
net-dialup/pptpconfig ~x86 dev-php4/php-gtk ~x86
А затем
Code: установка pptpconfig |
emerge pptpconfig |
Примечание: Для нормальной сборки необходимы флаги USE=cli pcntl pcre posix session |
Наберите от рута, например в xterm: pptpconfig &
Создайте новое соединение и настройте в соответствии с параметрами указаннымы выше, плюс поправка на рекомендации провайдера.
Для настройки маршрутизации по
умолчанию используется вкладка Routing
, на ней используйте значение All to
tunnel.
Выберите созданное соединение
и нажмите Start. Все :)
Примечание: если возникнут проблемы с соединением на вкладке "Miscellanyous" в опциях для pppd напишите noipdefault 50 |
Теперь все готово. Можно навестить Gentoo-Wiki ;)
Проверить соединение можно командой:
# ifconfig ppp0 ppp0 Link encap:Point-to-Point Protocol inet addr:xxx.xxx.xxx.xxx P-t-P:xxx.xxx.xxx.xxx Mask:xxx.xxx.xxx.xxx.xxx UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:6 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:72 (72.0 b) TX bytes:78 (78.0 b)
Настройка VPN-соединения для Gentoo
Настройка маршрутизации для VPN-соединений
Примечание (JohnBat26): Я использую perl скрипт: pptp-command для работы с VPN. Также можно воспользоваться Webmin. Взято с сайта провайдера 2Com:
/usr/sbin/pptp-command (появится после установки pptp-client)
Надо запустить этот скрипт из под пользователя root.
Затем выбрать:
Setup -> Manage CHAP secrets -> Add a New CHAP secret
Local Name: ВАШ_ЛОГИН
Remote Name [PPTP]: 2Com
Password: ВАШ_ПАРОЛЬ
Затем выбрать Quit
Затем выбрать:
Add a NEW PPTP Tunnel -> Other
Tunnel Name: 2Com
Server IP: 192.168.X.2 (здесь Х - номер вашей сети)
route: add default ppp0
route:
Local Name: ВАШ_ЛОГИН
Remote Name [PPTP]: 2Com
Затем выбрать Quit
ВНИМАНИЕ!!!!
проверьте наличие файла /etc/ppp/options.pptp
Файл /etc/ppp/options.pptp должен выглядеть след. образом:
lock
noauth
nobsdcomp
nodeflate
novj
novjccomp
nopcomp
noaccomp
Для установки VPN соединения надо запустить скрипт /usr/sbin/pptp-command
Затем выбрать:
start -> 2Com
Для разрыва VPN соединения надо запустить скрипт /usr/sbin/pptp-command
Затем выбрать:
stop
Code: Устанавливаем pppoe |
emerge pppoe |
В /etc/conf.d/net прописываем modules=( "ifconfig" ) config_eth0=( "null" ) config_ppp0=( "ppp" ) link_ppp0="eth0" plugins_ppp0=("pppoe") username_ppp0='login' password_ppp0='passwd' pppd_ppp0=( "defaultroute" # Make this PPP interface the default route "usepeerdns" # Use the DNS settings provided by PPP "lcp-echo-interval 15" # Send a LCP echo every 15 seconds "lcp-echo-failure 3" # Make peer dead after 3 consective ) #Если собираемся раздавать интернет в локалку с помощью маскарадинга то нужно добавить такую строчку в IPTABLES: #iptables -I FORWARD 1 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Code: Делаем симлинк |
ln -s /etc/init.d/net.lo /etc/init.d/net.ppp0 |
Code: Запускаем |
/etc/inet.d/net.ppp0 start |
Подключение данного типа
модема заключается в физическом
"втыкании" в один из COM портов дата
кабеля модема, включении модема в розетку
и подсоединения к нему телефонной лини.
Все это можно прочитать в руководстве
к модему. Как извесно последовательные
порты в Линукс именуются /dev/ttySx
(где x - номер порта, /dev/ttyS0 = COM1 и т.д.) Вам
нужно будет знать имя порта на который
Вы "повесили свой модем"...скорее
всего у вас их два или даже один, поэтому
ошибиться здесь довольно сложно. Либо
/dev/ttyS0, либо /dev/ttyS1.
На этом подключение
модема к последовательному порту можно
считаль законченым.
Linux Kernel Configuration: Установка пакетов |
"USB support" >> <*>"USB Modem (CDC ADCM)support" |
устройство будет называться /dev/ttyACM0
Для работы Win-модема нужно установить драйвер. Не все win-модемы поддерживаються поэтому Вам остается надеяться на лучшее. За драйверами идем на http://www.linmodems.org/ Там можно взять отличную софтину под названием scanModem которая опросит Ваш модем и выдаст (или не выдаст) URL откуда взять драйвер. Тянем. Распаковываем. Читаем INSTALL. Ставим. Еще можно почитать эту статью: linmodems
Для удобства можно создать симлинк вида /dev/modem на соответствующее модему устройство:
ln -s /dev/ttyS0 /dev/modem
и в дальшейшем в настройках использовать устройство ( /dev/modem )...хотя никто и не запрещает использовать устройство модема без симлинка /dev/tyySx
После подключения модема и установки всех необходимых драйверов необходимо проверить его работоспособность. Я делаю это так: запускаю утилиту minicom и даю команду AT. Если все в порядке, я в ответ получаю ОК, и не получаю если что-то не так. Если ОК не получен, то самое первое, что нужно сделать - это проверить настройки minicom. Если модем ответил "ОК", можно попробовать позвонить провайдеру:
ATDP 554554 - для пульсового
набора
или
ATDT 554554 - для тонового
набора
если модемы соединились и на
экране появилось приглашение ввести
логин или посыпался мусор в виде фигурных
скобок ({{{{{{), можете себя поздравить и
переходить к настройке програмного
обеспечения, модем у вас работает.
в ядре должны быть включены опции отвечающие за ppp:
Linux Kernel Configuration: Установка пакетов |
Device Drivers---------> Networking support---------> <*>PPP (point-to-point protocol) support <*>PPP support for async serial ports <*>PPP Deflate compression <*>PPP BSD compression |
во-первых нужно установить пакет который реализует поддержку протокола точка-точка (point-to-point protocol)
emerge ppp
во-вторых нужна звонилка или скрипт для автоматизирования процеса установления соединения.
Обзор звонилок и примеры скриптов смотри ниже...
Прежде чем писать скрипт,
необходимо настроить pppd:
в
/etc/ppp/pap-secrets пропишем
свои Логин/Пароль
Code: /etc/ppp/pap-secrets |
login * password * |
где login и password выданые Вашим провайдером Вам логин и пароль соответственно...
в /etc/ppp/options пропишем:
Code: /etc/ppp/options |
nodetach |
в /etc/resolv.conf прописываем один или несколько ip-адресов DNS серверов (спросить у провайдера адрес его сервера)
Code: /etc/resolv.conf |
nameserver xx.xx.xx.xx |
xx.xx.xx.xx - заменить на ip-адресс DNS сервера
В каталоге /usr/share/doc/ppp-*/scripts лежат примеры скриптов, нам нужны:
ppp-on ppp-off ppp-on-dialer
подправляем в них логин, номер телефона, пароль...и вуаля...ppp-on поднимает соединение, ppp-off разрывает его, а ppp-on-dialer -воспомогательный скрипт для осуществления дозвона.
замечу только что для тонового набора используется AT-команда ATDT, а для пульсового - ATDP.
Хорошая звонилка избавит Вас от процеса написания скриптов, вникания в опции pppd, и сделает настройку соединения довольно тривиальной
Замечательная звонилка которая к сожалению не поставляется в стандартных портах gentoo. ebuild можна взять здесь
Из плюсов
Настройка тривиальна
Умеет работать в консоли
Умеет работать в GUI (имеет GTK+ и Qt интерфейсы)
Умеет call back
Нетребовательна к ресурсам
"Местного разлива" - можно пообщаться с автором на родном языке, что для многих немаловажно.
Из минусов
Не входит в официальное дерево портов
pppd должен быть собран с поддержкой CALLBACK. В gentoo это делается по умолчанию, так что вам нужно просто собрать pppd штатными средствами.
Самый простой скрипт для CALLBACK был обнаружен в /usr/doc/ppp-2.4.2/README.cbcp:
#!/bin/sh pppd debug nodetach /dev/modem 115200 crtscts modem \ callback СВОЙ_НОМЕР name ЛОГИН \ connect 'chat -v "" atz OK atdtНОМЕР_ПРОВАЙДЕРА CONNECT "~--"' sleep 1 pppd debug nodetach /dev/modem 115200 crtscts modem \ name ЛОГИН defaultroute \ connect 'chat -v RING ATA CONNECT "\c"'
ЛОГИН должен соответствовать записи в /etc/ppp/chap-secrets (/etc/ppp/pap-secrets). В /etc/resolv.conf нужно прописать адрес DNS-сервера (можно добавить опцию usepeerdns в /etc/ppp/options для получения списка DNS серверов от провайдера).
Также можно использовать kppp или chestnut-dialer для установки callback соединения. Настройки их достаточно тривиальны.
Самым сложным может оказаться правильно подобрать строку инициализации для модема. Рекомендуют отключить CallerID. Приведу несколько строк инициализации для примера, но лучше берите документацию от модема (часто идет только на сидироме хотя иногда бывает и в бумажном виде), смотрите что каждая из AT комманд означает и экспериментируйте.
Для модемов Lucent:
ats0=1s38=0s37=17-v90=0 ats0=1s38=0s37=17-v90=0+vcid=0
значение регистра s37 можна понижать до 14
Для модемов GVC Vector K2D:
ATS0=1+VCID=0&U1
Я лично подобрав подходящую строку инициализации, сохранил ее прямо в профиле модема...
Если вы подключаетесь через GPRS с помощью звонилки (kppp, chestnut-dialer), может быть важным использование опции pppd - noipdefault !!!
Для соединения по GPRS потребуется следующее:
Мобильный телефон, поддерживающий технологию GPRS
Кабель COM или USB для подключения к компьютеру ("data-кабель") либо IrDA-интерфейс.
Убедитесь, что в конфигурационном файле Вашего ядра присутствуют следующие опции:
"Device Drivers" >> [*]"Networking support" >> [*] "Network device support" <M> "PPP (point-to-point protocol) support" <M> "PPP support for async serial ports" <M> "PPP support for sync tty ports" <M> "PPP Deflate compression" <M> "PPP BSD-Compress compression"
Для data-кабелей на основе микросхем Profilic 2303 (используются для подключения большинства телефонов, в том числе Siemens, Motorola, Nokia и др.) проверьте наличие:
"USB support" >> "USB Serial Converter support" >> <M> "USB Prolific 2303 Single Port Serial Driver"
После компиляции ядра проверьте модуль:
modprobe pl2303
Теперь кабель представлен в системе как устройство /dev/usb/tts/0 (возможно /dev/ttyUSB0), которое может быть использовано в качестве обычного модема.
Для телефонов Motorola, которые подключаются кабелем mini-USB (например С380,С390) достаточно включить
"USB support" >> <*>"USB Modem (CDC ADCM)support"
устройство будет называться /dev/ttyACM0
Тут все просто, "втыкаем" и используем...как любой модем на последовательном порту.
Предполагается что вы уже настроили соединение телефона с компьютером через bluetooth, например по этой статье :Работа с мобильными телефонами через bluetooth. Итак устройства сопряжены. Теперь нам необходимо подключить телефон как модем. Для этого мы выполним привязку bluetooth-сервиса 1(то есть Dial-Up) к устройству /dev/rfcomm0.Начнем по порядку.
Поищем телефон
#hcitool scan Scanning ... 00:60:57:D5:3B:BE Gtbear
Подключим его к rfcomm0
#rfcomm bind 0 00:60:57:D5:3B:BE 1
Этой командой мы подключили в rfcomm0 канал 1. Теперь телефон готов к работе. Осталось настроить соединения в конфигах pppd.
Создадим файл /etc/ppp/peers/gprs.В него запишем следующее:
lcp-echo-failure 0 lcp-echo-interval 0 /dev/rfcomm0 connect /etc/ppp/peers/suct-connect # Это скрипт соединения,такое имя выбрано в честь моего оператора: 115200 #Южно-Уральский Сотовый Телефон :) crtscts local ipcp-accept-local noauth usepeerdns user suct defaultroute noipdefault
Теперь сделаем скрипт соединения:
#!/bin/bash exec chat -vS \ '' \rAT \ TIMEOUT 12 \ OK ATH \ OK ATE1 \ OK 'AT+CGDCONT=1,"IP","internet.usi.ru"' \ OK ATD*99***1# \ TIMEOUT 22 \ SAY "\nWaiting for connect...\n" \ CONNECT "" \ SAY "\nGPRS connected.Enjoy.."
В принципе все готово. Для запуска соединения можно использовать команду pppd call gprs nodetach
Пакеты:
emerge irda-utils
Linux Kernel Configuration: Ядро 2.6 |
Device Drivers ---> [*] Networking support <*> IrDA (infrared) subsystem support ---> <*> IrCOMM protocol Infrared-port device drivers ---> <*> IrDA USB dongles <*> SigmaTel STIr4200 bridge (EXPERIMENTAL) |
Когда ядро будет готово можно запускать команду:
irattach irda0 -s
Теперь если поднести телефон к инфракрасному порту он должен определиться... Дальше можно поднимать ppp как для обычного модема
Устанавливаем пакет который реализует поддержку протокола точка-точка (point-to-point protocol)
# emerge ppp
Редактируем файл /etc/ppp/chap-secrets
Code: /etc/ppp/chap-secrets |
# Secrets for authentication using CHAP |
Создаем файл /etc/ppp/peers/cdma
Code: /etc/ppp/peers/cdma |
debug |
Создаем файл /etc/ppp/cdma.chat
Code: /etc/ppp/cdma.chat |
'' '' # "Это не кавычки, а два
знака, который на клавиатуре слева от
единички |
Пробуем
# pon cdma