Настройка PAN соединения без помощи GUI

On: 30 сентября 2010 г.

Почему собственно Bluetooth?
Настройка соединения машины клиента к уже существующему и настроенному PAN серверу (без шифрования, с ручным подключением и без авторизации).

Лирическое вступление

Во время когда локальные сети уже не роскошь, а не необходимость. Когда некоторые могут себе позволить не только один компьютер. Сетевые кабели которые тянуться по квартирам и домам уже мешают их обитателям. Взять к примеру мой домашний стол на котором теснятся старенький стационарный компьютер и ноутбук. Часть стола заполонили провода. И пусть всех их заменить на беспроводные соединения вряд ли удастся но некоторые из них все же можно реализовать вне витой пары. Почему бы и нет. Сеть без проводов не приковывает к определенному месту. В моем случае интернет подключен к стационарной машине и раздается по средствам прокси-сервера на ноутбук. Так вот если первый от недостатка подвижности не страдает то зачем приковывать к столу ноутбук. И так на этом вступление заканчивается.


Почему собственно Bluetooth?

Все очень просто. У него есть ряд преимуществ по сравнению с тем же wi-fi. А именно: меньшее потребление электроэнергии; отсутствие точки доступа для создания сети; скорость передачи данных по bluetooth соединению под стать одним из лучших интернет соединений в следствии чего он более рационален в поставленной задаче. Но и присутствует характерное отличие это радиус действия. У bluetooth в диапазоне 10 метров (с учетом отсутствия преград), хоть и встречаются экземпляры с дальностью в 100 метров. Ну что же если под итожить то не каждый ноутбук оборудован bluetooth-ом , но и цена на bluetooth оборудование порядком ниже чем на другие аппараты обеспечивающие беспроводное соединение. Так что это уже по ситуации.

Проверка оборудования

На основе bluetooth можно использовать сервис PAN, обеспечивающий работу с беспроводными IP-сетями. Далее пойдет его настройка и описание.

В моем примере будет использоваться программы bluez. Для работы с сервисом PAN на основе bluez в операционной системе Debian необходимы следующие пакеты: bluez-utils.
Сперва надо определиться с bluetooth устройством которое у вас имеется. В случае если Вы только планируете покупку то рекомендую по шерстить интернет на предмет совместимости с вашим дистрибутивом выбранной аппаратуры. В моем случае на компьютере подключен usb адаптер ХХХ, а на ноутбуке присутствует встроенный ХХХХ. На моем Debian lenny 5.05 оба устройства определенность сразу и работают без упреков. Что бы определить работают ли ваши «дивайс» и дистрибутив вместе правильно прочтите логи при подключении. Например так:

sudo tail /var/log/syslog

В случае если при подключении возникнут ошибки остается запастись терпением и обратиться коллективным знаниям в мировой паутине. Но это уже оффтоп (моя статья не о подключении аппаратуры, а о настройке под сервис PAN). Следующая команда поможет узнать по больше о возможностях и параметрах устройства

sudo hciconfig -a

Таким образом мы убедились в том что «подножек» с аппаратной стороны нет (или по крайней мере нет их признаков).

Настройка bluetooth устройства

Настройка вашего адаптера выполняется в файле /etc/bluetooth/hcid.conf. Его содержимое изменяется в зависимости от целей преследуемых вами. Моего файла для примера №1:

options {
autoinit yes; # автоматически включать подсоединенное устройство
security auto; # использовать локальный pin код для входящих соединений
pairing multi;# сопряженные устройства
passkey "1"; # Установка PIN кода по умолчанию
}

device {
name "%h"; # Имя bluetooth устройства
class 0x030201; # класс устройства от него зависит какие функции устройство может выполнять
iscan enable; # разрешите inquiry сканирование
pscan enable; # разрешите сканирование страницы
lm accept; # разрешать входящие соединения
lp rswitch,hold,sniff,park; #
}
Для экономии места я убрал исходные за комментированные строки (рекомендую вам не удалять их, а если вам придет в голову поменять настройки они с играют свою роль как базовая помощь)

Этого достаточно для соединения без шифрования и без авторизации, которое подключается с помощью запроса (ниже будут рассмотрены и другие примере но этого для простенького соединения вполне достаточно). Строка passkey "1"; определяет PIN код который будет вводиться при соединении. У меня он как ведите равен единице. После изменений в файла /etc/bluetooth/hcid.conf необходимо перезапустить демон bluetooth. У меня это выглядит так:

sudo /etc/init.d/bluetooth stop
sudo /etc/init.d/bluetooth start

Пример № 1. Соединения машины клиента к уже существующему и настроенному PAN серверу.


Приступим к поиску доступных bluetooth устройств в зоне досягаемости вашего оборудования

sudo hcitool scan

Результатом работы этой команды будет (если он найдет в своем диапазоне работающее устройство, которое дает себя обнаружить) таблица из двух столбцов. В первом столбце приведен MAC-адрес найденного устройства во втором имя заданное ему пользователем (либо присвоенное автоматически). Именно ориентируюсь в этом списке (имен конечно) вам предстоит определить к какому компьютеру вы хотите подключиться. Определились? Тогда скопируйте MAC-адрес этого устройства. Нам необходимо узнать какие функции для него доступны:

sdptool browse 00:A0:96:0A:D1:80

Где 00:A0:96:0A:D1:80 в вашем случае тот самый скопированный MAC-адрес.

Получим примерно следующее:

Service Name: Network Access Point Service
Service RecHandle: 0x10000
Service Class ID List:
"Network access point" (0x1116)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 15
"BNEP" (0x000f)
Version: 0x0100
SEQ16: 10 20 30 40
Profile Descriptor List:
"PAN access point" (0x1116)
Version: 0x0100

Service Name: Dial-Up Networking
Service RecHandle: 0x10001
Service Class ID List:
"Dialup Networking" (0x1103)
"Generic Networking" (0x1201)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100

Service Name: OBEX Object Push
Service RecHandle: 0x10002
Service Class ID List:
"OBEX Object Push" (0x1105)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 4
"OBEX" (0x0008)
Profile Descriptor List:
"OBEX Object Push" (0x1105)
Version: 0x0100

Service Name: Serial Port
Service Description: COM Port
Service RecHandle: 0x10003
Service Class ID List:
"Serial Port" (0x1101)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Serial Port" (0x1101)
Version: 0x0100

Для нас в этом примере ценность имеет вот этот фрагмент:

Service Name: Network Access Point Service
Service RecHandle: 0x10000
Service Class ID List:
"Network access point" (0x1116)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 15
"BNEP" (0x000f)
Version: 0x0100
SEQ16: 10 20 30 40
Profile Descriptor List:
"PAN access point" (0x1116)
Version: 0x0100

Он сообщает о том что на компьютере MAC-адрес которого вы использовали при сканировании сервисов есть возможность подключиться к PAN сети. Далее остается только создать для упрощения работы простенький скрипт в который поместить такие строки:

ХХХ

Все. Готово. Теперь необходимо добавить права на исполнение этого скрипта и можно создать на него ярлык. Но так как в нем используются команды доступные только для администратора (root) в ярлыке указываем запуск скрипта через программу gksudo. Теперь при каждом запуске ярлыка от вас будет требоваться пароль (свой если вы включены в правила sudo либо вместо gksudo используйте gksu, которое будет опрашивать пароль root-а).

Напоминаю что это самый простой метод настройки клиентской машины для подключения к уже существующему PAN серверу без аутентификации и шифрования (такая себе Home версия настроек). PAN сервер в моем случае стоит на Windows XP (не у каждого в семье все поголовно используют Linux). Потому там все запускается с помощью предоставленного с адаптером ПО. У такой схемы есть свои преимущества. Для новичков в среде Linux не всегда удается с первых попыток подключиться к интернету по средствам предлагаемым провайдерами. Зато прокси-сервер одно из многих вариантов в которых серверная часть на стороне хорошо знакомого Windows не вызывает проблем, а настройки на Linux машине сводятся к минимуму. Это самое простое что можно реализовать с PAN сервисом. Но ведь есть еще варианты

После описанного: Не забудь те что так как в примере приведенном выше отсутствует авторизация и шифрование такие же параметры должны быть установлены на серверной машине.

Пример № 2. Настройка сервера PAN
В случае если настраиваемый PAN сервер с нуля и до этого на машине его никто не настраивал либо команда sdptool browse выдала ответ где сервис точки доступа для PAN сетей отсутствует нужно добавить этот сервис:
# sdptool add NAP
Команда sdptool отвечает за добавление сервисов на данной машине. Запускам сетевой демон в серверном режиме:
# pand --listen --master --role NAP

0 коммент. on "Настройка PAN соединения без помощи GUI"