Linux wifi ad hoc

Соединение точка-точка (ad-hoc) по WiFi между Ubuntu Linux и Windows XP

June 18, 2013

Рассмотрим случай, когда на одной машине (desktop) стоит все та же Ubuntu, а на другой машине (notebook) стоит Windows XP.

Необходимо соединить оба компьютера по ad-hoc wifi. Требуется создать локальную домашнюю сеть, которая называется одноранговой. Другими словами, у нас нет в наличии таких сетевых устройств, как концентратор, коммутатор или маршрутизатор. Соединение между двумя (в нашем случае) компьютерами будет установлено напрямую, точка-точка . В первом шаге настроим сеть на десктопе в Ubuntu. Затем повторим настройку на ноутбуке в Windows XP.

И в заключение, протестируем созданную нами сеть.

Шаг Первый — настройка ad-hoc wifi в Ubuntu Karmic

Открываем NetworkManager правым щелчком мыши на значке в Панели Gnome и выбираем “Edit connections”. Появляется окно “Network Connections”.

Переходим на вкладку “Wireless” (Беспроводные):

Нажимаем Add (Добавить). Появляется окно из четырех вкладок (tabs) для создания нового соединения. В первой вкладке вводим общую информацию о создаваемой нами сети:

  • Connection name (имя сети) — это имя сети, которое будет отображаться на компьютере и в списке сетей NetworkManager;
  • SSID — реальное имя сети. Каждая сеть Wi-Fi имеет свое имя, по которому сетевые устройства распознают их и подключаются к ним;
  • Mode — режим сети. В выпадающем списке выбираем режим сети Ad-hoc;
  • остальные три поля — BSSID , MAC address и MTU оставляем пустыми.

Переходим на вкладку “Wireless Security”. Оставляем поле “Security” пустым (None):

Далее, переходим на вкладку “IPv4 Settings”. Здесь мы выбираем метод получения IP-адреса компьютером в сети. В нашем случае мы задаем его вручную.

Для этого в выпадающем списке “Method” выбираем “Manual” (Ручной). Затем, в поле “Addresses” (Адреса) нажимаем кнопку Add (Добавить) и последовательно задаем IP-адрес 192.168.0.30 , маску сети “Netmask” 255.255.255.0 и шлюз сети “Gateway” 1.1.1.1 . Поля “DNS servers” и “Search domains” оставляем пустыми:

Вкладку “IPv6 Settings” оставляем как есть, ничего не конфигурируя (Method — Ignore):

Нажимаем кнопочку Apply (Применить) и видим конечный результат работы — список сетей в “NetworkManager” и нашу Windows_XP среди них:

Закрываем окно. Вновь нажимаем, теперь уже левой кнопкой мыши, на значке “NetworkManager” в Панели Gnome. Выбираем в выпавшем списке “Connect to hidden wireless network” (Подключиться к скрытой беспроводной сети).

В списке “Connection” выбираем нашу Windows XP и нажимаем Connect (Соединить):

В эмуляторе терминала набираем команду:

и видим, что сетевой интерфейс поднят и сеть запущена:

Шаг Второй — Настройка ad-hoc wifi в Windows XP

Открываем в “Панели управления” — “Сетевые подключения”:

Кликаем правой кнопкой мыши на значке “Беспроводное сетевое соединение” и в контекстном меню — “Properties” (Свойства). В окне “Свойств” находим в самом низу строку “Протокол Интернета (TCP/IP)”:

Нажимаем “Свойства”. Открывается окно настроек TCP/IP. Здесь мы задаем IP-адрес, маску сети и шлюз сети так же, как и в NetworkManager, за исключением того, что IP-адрес у нас будет несколько иной — 192.168.0.31 :

Нажимаем OK . Далее кликаем левой кнопкой мыши на значке “Беспроводное сетевое соединение” в “Сетевые подключения” “Панели управления”. Открывается окно со списком беспроводных сетей, находящихся в зоне доступа компьютера:

Выбираем “Установить беспроводную сеть” для создания сети ad-hoc . Запускается “Мастер беспроводной сети”, пошагово проведущий по несложной настройке новой сети windows:

Нажимаем “Готово”. Вновь открывается окно со списков доступных беспроводных сетей. В этом списке появилась и наша windows:

Выбираем сеть windows и нажимаем “Подключить”:

В итоге получаем подключение к сети windows:

Шаг Третий — тестирование сети из Ubuntu

Ping самих себя:

Ping Windows XP:

Трассировка Windows XP:

Сканирование портов Windows XP:

TypeScript — размеченные объединения

> Пользовательское объединение типов — что это и как можно использоватьПомимо объединения **примитивных** типов данных (например):<% high. … Continue reading

Источник

  • WiFi
  • AdHoc

This page describes how to establish a decentralized WiFi network.

A wireless ad-hoc network — also known as Independent Basic Service Set (IBSS) — consists of local wireless devices (nodes) discovering each other and forming a network, each able to forward data for other nodes. An access point is not required for managing this communication.

Читайте также:  Что меняется при обновлении windows

In the following examples, two wireless LAN clients will be configured as ad-hoc network nodes with static IP addressing. Before continuing, install the wireless-tools package.

Debian Method

On each node, open /etc/network/interfaces in a text editor:
Define stanzas for each node’s wireless interface, setting the network SSID and the device’s operating mode to ad-hoc:

Node B
Save the file and exit the editor.

Raise the interface on each node:

Scan for ad-hoc cells in range (necessary for some drivers to trigger IBSS scanning):

To test, ping node A from node B:

For general /etc/network/interfaces information, see the interfaces(5) man page.

Manual Method

On each node, bring the wireless interface down, change the device’s operating mode and SSID, then raise the interface:

Scan for ad-hoc cells in range (necessary for some drivers to trigger IBSS scanning):
On each node, assign an IP address to the wireless interface:

To test, ping node A from node B:

Источник

Настройка Wifi в Linux при помощи Adhoc на примере Ubuntu

Эта тема уже не раз поднималась, но хорошей и легкой инструкции я так и не нашел.
Данная статья расчитана на новичков в мире Linux поэтому тут используются наиболее легкие методы настройки.
Для начала ставим пакеты:
sudo apt-get install wireless-tools dhcp3-server
Далее создаем сеть через апплет например название «My Wifi»
И настроим интерфейс(для определения интерфейса воспользуйтесь командой iwconfig)
Пишем в консоли из под root
ifconfig wlan0 down
iwconfig wlan0 mode ad-hoc
iwconfig wlan0 channel 1
iwconfig wlan0 Bit 54Mb/s
iwconfig wlan0 essid ‘My Wifi’
ifconfig wlan0 10.42.43.1 netmask 255.255.255.0 up
iwconfig wlan0
ifconfig wlan0 up
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Разберем шаги:

  • ifconfig wlan0 down — отключаем интерфейс.
  • iwconfig wlan0 mode ad-hoc — устанавливаем режим Ad-hoc
  • iwconfig wlan0 channel 1 — ставим ad-hoc канал
  • iwconfig wlan0 Bit 54Mb/s — скорость(по стандарту 11Mb/s)
  • iwconfig wlan0 essid ‘My Wifi’ — название нашей созданной сети
  • ifconfig wlan0 10.42.43.1 netmask 255.255.255.0 up — IP адрес компьютера и маска подсети
  • iwconfig wlan0 — проверяем настройки
    Вот мои:
    wlan0 IEEE 802.11bg ESSID:»Bupyc»
    Mode:Ad-Hoc Frequency:2.412 GHz Cell: 8A:BF:88:4B:4E:60
    Tx-Power=11 dBm
    Retry long limit:7 RTS thr:off Fragment thr:off
    Power Management:off
    Link Quality:0 Signal level:0 Noise level:0
    Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
    Tx excessive retries:0 Invalid misc:0 Missed beacon:0
  • ifconfig wlan0 up — запускаем интерфейс
  • echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    Настраиваем раздачу интернета через NAT

Не забываем подставить свой интерфейс и IP адреса.
Данные команды можно добавить в автозагрузку, ибо эти настройки иногда сбрасываются
Настроим dhcp для раздачи ip адресов.
sudo gedit /etc/dhcp3/dhcpd.conf
Cтираем там все(если не нужно) и пишем

ddns-update-style ad-hoc;
default-lease-time 3600;
max-lease-time 9000;
authoritative;
log-facility local7;
subnet 10.42.43.0 netmask 255.255.255.0 <
interface wlan0;
range 10.42.43.2 10.42.43.255;
option domain-name-servers 195.34.32.116; # пишем либо свой dns сервер, либо dns провайдера
option routers 10.42.43.1;
option broadcast-address 10.42.43.0;
>

sudo gedit /etc/default/dhcp3-server
Там пишем интерфейс откуда идет интернет.
INTERFACES=»eth0″
Перезапускаем dhcp
sudo /etc/init.d/dhcp3-server restart
Также для автоматической настройки можно прописать в файле /etc/network/interfaces все параметры. sudo gedit /etc/network/interfaces

auto wlan0
iface wlan0 inet static
address 10.42.43.1
netmask 255.255.255.0
broadcast 10.42.43.255
network 10.42.43.0
wireless-essid Bupyc
wireless-mode ad-hoc
wireless-channel 11
wireless-rate 54Mb/s
Теперь достаточно соединиться с любого устройства к данной сети и интернет будет работать.
Это первая моя статья на хабре, так что строго не судите.

Источник

Linux WiFi из командной строки с wpa_supplicant

В этой статье я расскажу, как можно настроить WiFi с помощью wpa_supplicant, без всяких Xorg/X11 утилит. Это необходимо для того, чтобы базовые службы ОС исправно работали с минимальным набором технических средств удаленного доступа. Программа будет исполняться как служба, настройки сделаны правкой конфиг файлов.

По-быстрому, установить соединение с открытой точкой доступа можно таким образом.

Если же надо всерьез и надолго, то прошу внутрь.

Общие сведения о wpa_supplicant

Что из себя представляет wpa_supplicant?

  • Кросс-платформенная открытая реализация стандарта IEEE 802.11 для Linux, *BSD, Windows, Mac OS X и прочих систем.
  • Полная поддержка WPA2, WPA и более старых протоколов безопасности беспроводной LAN сети.
  • Приложение пользовательского пространства, выполняющее функции саппликанта и SME оператора, исполняющего MLME инструкции.

  • WPA и полностью IEEE 802.11i/RSN/WPA2.
  • WPA-PSK и WPA2-PSK (pre-shared key) («WPA-Personal»).
  • WPA вместе с EAP (т.е., сервером аутентификации RADIUS) («WPA-Enterprise») управление ключами CCMP, TKIP, WEP (104/128 и 40/64 бит).
  • Кэширование RSN, PMKSA: предварительную аутентификацию.
Читайте также:  Звуковой синтезатор gs microsoft windows 10

Как wpa_supplicant устанавливает связь с точкой доступа?

  • Cетевой интерфейс должен исправно функционировать с установленным драйвером, прежде чем wpa_supplicant запустится.
  • Wpa_supplicant запрашивает драйвер ядра сканировать доступные Basic Service Set (BSS).
  • Wpa_supplicant производит выбор BSS в соответствии с настройками.
  • Wpa_supplicant запрашивает драйвер ядра установить соединение с выбранной BSS.
  • Для WPA-EAP: аутентификацию EAP производит встроенный IEEE 802.1X Supplicant, либо же внешний Xsupplicant с сервером аутентификации.
  • Для WPA-EAP: получен мастер-ключ от IEEE 802.1X Supplicant.
  • Для WPA-PSK wpa_supplicant использует пароль PSK в качестве мастер-ключа сессии.
  • Wpa_supplicant производит с аутентификатором точки доступа 4-х этапное согласование [1] и групповое согласование ключей.
  • Wpa_supplicant производит шифрование однонаправленных и широковещательных пакетов [2] , после чего начинается обычный обмен данными.

Главный и большой плюс wpa_supplicant — его юниксвейность, то есть соответствие принципу Unix Way, когда программа делает что-то одно, но делает это хорошо. В каком-то смысле wpa_supplicant также Gentoo Way. Она требует некоторого внимания и терпения вначале, но затем о ней можно напрочь забыть. После того как программа настроена и пущена в дело, она полностью выпадает из потока событий, превращаясь в пару строк из ps -ef . Она не сверкает и не мигает в системном трее, не оповещает о разведанных, подключенных и отключенных беспроводных сетях. Ее просто нет, пока вы сами ее не поищите.

Из минусов — сложность настройки и конфигурации. Много возни по сравнению с тырк-тырк-тырк в окне Network Manager , не говоря уже о WiFi подключении с любого Андроид устройства. Если вы собираетесь в поездку с Linux ноутбуком, то наверняка предпочтете более дружественный фронтенд настройки беспроводной сети, чтобы быстро подключаться к бесплатным точкам доступа WiFi в аэропорту, гостинице или в рабочей обстановке. Для домашнего же беспроводного интернета — самое то.

Установка

Если не выбирать графический фронтенд, то программа почти не тянет за собой никаких зависимостей. Для Gentoo Linux сгодится установка с выставленными флагами как показано.

  • emerge -av wpa_supplicant #Gentoo
  • aptitude install wpasupplicant #Debian
  • yum install wpa_supplicant #Redhat
  • pacman -S wpa_supplicant #Arch

Подключение без конфиг файла

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

Пример для открытой сети был показан в самом начале. Для закрытой WPA сети быстрое подключение выгладит так:

В начале надо запустить саму программу wpa_supplicant и сопутствующую wpa_cli .

Затем настройка из интерактивного интерфейса wpa_cli .

Для закрытой WPA2 сети:

В конце необходимо вручную запустить демон DHCP.

Подключение к Ad-Hoc сети

Никогда с такой не сталкивался, но готовым нужно быть ко всему. Подключение к открытой ad-hoc.

То же самое с помощью iw .

Настройка для домашней сети

Теперь самое интересное — настройка. Этот процесс задокументирован для Arch Wiki, Debian Wiki и Gentoo Wiki, но всех деталей там естественно нет.

Программа обычно ставится в директорию /etc/wpa_supplicant/ , и наша задача — правильно настроить конфигурационный файл wpa_supplicant.conf , и привязать его к автозапуску беспроводного сетевого интерфейса.

Начнем с wpa_supplicant.conf . Если вы подключаетесь из дома к WPA/WPA2, то скорее всего используете пароль для WiFi соединения, что соответствует режиму WPA-PSK («WPA-Personal») . Мы не будет рассматривать варианты с WEP шифрованием, так как оно ненамного лучше открытой сети.

Возьмем типовой конфиг из документации. Например такой.

Первая строка необходима, без ctrl_interface программа даже не запустится. GROUP=wheel нужно для того, чтобы запускать из под обычного пользователя в графическом интерфейсе wpa_gui, но это не наш путь. Поэтому меняем на рутовый GROUP=0 .

Каждой сети в файле настроек должен соответствовать блок network <> . Покопавшись в исходниках, обнаружил нашел годное писание переменной ap_scan в файле config.h , а в мануале и руководстве пользователя ее описание очень скудное.

ap_scan — AP scanning/selection

By default, wpa_supplicant requests driver to perform AP scanning and then uses the scan results to select a suitable AP. Another alternative is to allow the driver to take care of AP scanning and selection and use wpa_supplicant just to process EAPOL frames based on IEEE 802.11 association information from the driver.

1: wpa_supplicant initiates scanning and AP selection (default).
0: Driver takes care of scanning, AP selection, and IEEE 802.11 association parameters (e.g., WPA IE generation); this mode can also be used with non-WPA drivers when using IEEE 802.1X mode;
do not try to associate with APs (i.e., external program needs to control association). This mode must also be used when using wired Ethernet drivers.

Читайте также:  Putty key generator linux

2: like 0, but associate with APs using security policy and SSID (but not BSSID); this can be used, e.g., with ndiswrapper and NDIS drivers to enable operation with hidden SSIDs and optimized roaming;
in this mode, the network blocks in the configuration are tried one by one until the driver reports successful association; each network block should have explicit security policy (i.e., only one
option in the lists) for key_mgmt, pairwise, group, proto variables.

Note: ap_scan=2 should not be used with the nl80211 driver interface (the current Linux interface). ap_scan=1 is optimized work working with nl80211. For finding networks using hidden SSID, scan_ssid=1 in the network block can be used with nl80211.

  • bssid — The Basic Service Set Identifier (BSSID), физический адрес точки доступа.
  • key_mgmt — Протоколы аутентификации.
  • pairwise — Для WPA2 укажите CCMP, а для WPA — TKIP.
  • proto — WPA/WPA2.
  • psk — Хэш пароля PreShared Key.

group: list of accepted group (broadcast/multicast) ciphers for WPA
CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0]
TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]
WEP104 = WEP (Wired Equivalent Privacy) with 104-bit key
WEP40 = WEP (Wired Equivalent Privacy) with 40-bit key [IEEE 802.11]
If not set, this defaults to: CCMP TKIP WEP104 WEP40

pairwise: list of accepted pairwise (unicast) ciphers for WPA
CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0]
TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]
NONE = Use only Group Keys (deprecated, should not be included if APs support pairwise keys)

proto: list of accepted protocols
WPA = WPA/IEEE 802.11i/D3.0
RSN = WPA2/IEEE 802.11i (also WPA2 can be used as an alias for RSN)
If not set, this defaults to: WPA RSN

key_mgmt: list of accepted authenticated key management protocols
WPA-PSK = WPA pre-shared key (this requires ‘psk’ field)
WPA-EAP = WPA using EAP authentication (this can use an external program, e.g., Xsupplicant, for IEEE 802.1X EAP Authentication
IEEE8021X = IEEE 802.1X using EAP authentication and (optionally) dynamically generated WEP keys
NONE = WPA is not used; plaintext or static WEP could be used
If not set, this defaults to: WPA-PSK WPA-EAP

Создаем хэш пароля для psk :

Все готово, чтобы создать конфиг сети. Итоговый файл должен выглядеть как-то так.

Верные значения для bssid , group , proto и pairwise можно определить, сканируя беспроводную сеть.

Команда iwlist из набора Wireless Tools устарела, вместо нее сейчас iw .

Настройка 802.1X для офиса

Стандарт IEEE 802.1X определяет более строгую модель подключения к WiFi сети. Вместо psk пароля необходимо предъявить серверный сертификат.

  • ca_cert — Абсолютный путь к CA-сертификату в формате PEM или DER, необходим для возможности подтверждения сертификата сервера.
  • ca_path — Абсолютный путь к директории, где хранятся файлы CA-сертификатов (в формате PEM), которые вы хотите добавить в список доверенных.
  • client_cert — Абсолютный путь к клиентскому сертификату в формате PEM или DER.
  • eap — Разделенный пробелами список поддерживаемых методов EAP: MD5, MSCHAPV2, OTP, GTC, TLS, PEAP, или TTLS.
  • identity — Идентификации EAP, например имя пользователя.
  • password — Пароль EAP.

Так может выглядеть блок, настроенный для подключения к сети в режиме WPA-Enterprise с аутентификацией 802.1X PEAP, в котором требуется ввод данных учетной записи пользователя:

А это пример блока, настроенного для подключения к сети в режиме WPA-Enterprise с аутентификацией 802.1X EAP-TLS, в котором требуются серверный и клиентский сертификаты:

Привязка wpa_supplicant к сетевой карте

Для Gentoo Linux надо добавить 2 строки в /etc/conf.d/net .

Список поддерживаемых -D драйверов. Для современных чипов и версий ядра подойдет nl80211 . На старом железе может взлететь wext .

  • nl80211 — New driver.
  • wext — Linux wireless extensions (generic).
  • wired — wpa_supplicant wired Ethernet driver.
  • roboswitch — wpa_supplicant Broadcom switch driver.
  • bsd — BSD 802.11 support (Atheros, etc.).
  • ndis — Windows NDIS driver.

Сетевая карта wlan0 должна быть залинкована с lo0 .

Следует также добавить wpa_supplicant в автозапуск.

Пользователи Debian добавляют запись в файл /etc/network/interfaces .

Пользователи RedHat добавляют в /etc/sysconfig/wpa_supplicant

а в файл /etc/sysconfig/network-scripts/ifcfg-wlan0

Отладка

После того как wpa_supplicant успешно подключилась к точке доступа, в dmesg можно увидеть протокол установки соединения.

Если же вместо этого вы увидите ошибку:

то скорее всего, надо использовать драйвер wext вместо nl80211 . А с ошибкой:

наоборот, вместо wext надо подставить nl80211 .
В ситуации, когда вы не можете определить ошибку, запустите wpa_supllicant напрямую с ключем -dd .

Источник

Оцените статью