Linux настройка точки доступа

Обновлено: 07.07.2024

Программная точка доступа используется, если вы хотите чтобы Ваш компьютер выступал в качестве точки доступа для беспроводной локальной сети. Это решит проблему выбора отдельного беспроводного маршрутизатора(WI-FI).

Contents

Требования

Поддержка режима AP устройством Wi-Fi

Вам понадобится nl80211 совместимое беспроводное устройство, поддерживающее рабочий режим AP. Это можно проверить, выполнив команду iw list , которая должна вывести AP в секции Supported interface modes :

Беспроводной клиент и программная точка доступа на одном Wi-Fi устройстве

Создание программной AP не зависит от конкретного типа устройства (Ethernet, Wi-Fi, . ). Многие беспроводные устройства даже могут быть одновременно использованы как точки доступа и как беспроводные "клиенты". Используя эту возможность вы можете создавать программые AP действующие как "беспроводной ретранслятор" для существующей сети, используя единственное Wi-Fi устройство. Эта возможность указана в следующей секции вывода iw list :

Если вы собираетесь использовать этот способ, возможно потому что Ethernet-соединение недоступно, вам необходимо создать два отдельных виртуальных интерфейса. Виртуальные интерфейсы для физического устройства wlan0 могут быть созданы так: сначала, "виртуальные интерфейсы" создаются непосредственно для самого сетевого соединения ( wlan0_sta ) и для программной AP/hostapd "беспроводного ретранслятора":

Случайные MAC адреса могут быть сгенерированы при использовании macchanger.

Конфигурация

Настройка точки доступа включает в себя два основных пункта:

  • Настройка канального уровня Wi-Fi, так что беспроводные клиенты могут использовать вашу "программную точку доступа" и принимать/отправлять IP пакеты от/до вашей машины; это то, что пакет hostapd должен сделать за вас.
  • Настройка сетевой конфигурации на вашем компьютере, так что ваша машина будет правильно передавать IP пакеты от/до вашего собственного интернет соединения от/до беспроводных клиентов.

Канальный уровень Wi-Fi

Точку доступа Wi-Fi можно поднять с помощью пакета hostapd , который также поддерживает WPA2.

Скорректируйте настройки hostapd конфигурационного файла, если необходимо. В первую очередь измените ssid и wpa_passphrase . Больше информации на hostapd Linux documentation page.

Совет: Вы можете установить SSID с символами UTF-8, международные символы будут отображаться правильно. Это возможно при включении опции utf8_ssid=1 . Некоторые клиенты могут распознать кодировку некорректно (например wpa_supplicant или Windows 7).

Для автозапуска hostapd в качестве службы запустите hostapd.service .

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

Примечание: Если ваша сетевая карта имеет чипсет RTL8192CU, установите hostapd-rtl871xdrv AUR и в hostapd.conf замените driver=nl80211 на driver=rtl871xdrv .

Конфигурация сети

Есть два основных способа реализации:

  1. bridge: создав сеть типа мост на своём компьютере (беспроводные клиенты будут подключаться для доступа к тому же сетевому интерфейсу и к той же подсети, которые используются на вашем компьютере)
  2. NAT: используя IP перенаправление/маскарадинг и DHCP сервис (беспроводные клиенты будут использовать выделенные подсети, данные от/до этих подсетей будут обработаны NAT -- подобно тому как это используется в обычном Wi-Fi роутере, который подключён по DSL или проводному модему)

Обращаться с мостом проще, но он требует, чтобы любой сервис который нужен вашим беспроводным клиентам (вроде DHCP) был доступен на внешнем интерфейсе вашего компьютера. Это означает, что он не будет работать если у вас dial-up соединение (например, через PPPoE или 3G modem), или если вы используете проводной модем, который поддерживает всего один IP адрес до вас посредством DHCP.

NAT более универсален, так как он явно разделяет Wi-Fi клиентов вашего компьютера и полностью проницаем наружу. Он будет работать с любым видом сетевого соединения, и (если необходимо) вы можете ввести политики использования трафика используя обычные методы iptables.

Конечно, возможно скомбинировать оба способа. Для этого изучение обеих статей будет необходимым. Например, имея мост, связанный с ethernet-устройством и беспроводным устройством, имеющим статический ip и раздающий адреса при помощи DHCP, можно создать NAT настроенный на клонирование трафика на дополнительное сетевое устройство - это может быть ppp или ethernet.

Настройка моста

Вам необходимо создать сетевой "мост" и присоединить к нему свой интерфейс (например, eth0 ). Вам не следует добавлять к мосту беспроводной интерфейс (например, wlan0 ); hostapd добавит его самостоятельно.

Совет: Вы можете захотеть переиспользовать существующий мост, если у вас есть таковой (например, использованный виртуальной машиной).

Настройка NAT

Смотрите Раздача интернета для получения дополнительной информации.

Учтите, что в той статье используется устройство net0 для подключения к локальной сети. В нашем случае в качестве его будет выступать беспроводное устройство (напр. wlan0 ).

Инструменты

linux-wifi-hotspot

Пакет linux-wifi-hotspot AUR включает в себя скрипт, который может создать точку доступа для раздачи интернета посредством моста/NAT. Он сочитает в себе hostapd, dnsmasq и iptables для создания точки доступа. Поддерживает интерфейс командной строки и графический интерфейс. Базовый синтаксис для создания виртуальной сети посредством NAT следующий:

Другой подход с использованием шаблона конфигурации, который предложен в /etc/create_ap.conf , может быть адаптирован под ваши нужды и запущен со скриптом:

Чтобы использовать графический интерфейс, запустите в терминале:

Включите/запустите службу create_ap.service для запуска скрипта в момент загрузки системы с конфигурацией, описанной в /etc/create_ap.conf .

Примечание: В режиме моста create_ap может конфликтовать во время загрузки системы с текущей настройкой сети. В таком случае, для лучшего связывания с мостом, не конфигурируйте IP адрес езернет интерфейса ни статический, ни посредством DHCP.

RADIUS

Смотрите [1] инструкции для запуска сервера FreeRADIUS для WPA2 Enterprise.

This article or section needs expansion.

Reason: Предположительно, проще создать точку доступа можно через Network Manager. (Discuss in Talk:Software access point (Русский))

Решение проблем

WLAN очень медленно работает

Частые причины более низкой, чем ожидалось, пропускной способности включают:

  • Неправильный режим работы с hw_mode ниже поддерживаемого может искусственно ограничивать маршрутизатор. Убедитесь, что выбран современный режим работы.
  • Переполненный или нагруженный другими шумами канал channel может сильно ухудшить производительность, особенно в густонаселенных областях. Попробуйте изменить канал или даже переключать частоты.
  • Это может быть вызвано наличием слабой энтропией. Попробуйте установить haveged.

Вмешательство NetworkManager

hostapd может не работать, если устройство управляется NetworkManager. Вы можете замаскировать устройство используя MAC:

Либо имя интерфейса:

Не удаётся запустить режим AP в диапазоне 5Ghz

По-видимому, со специальным кодом страны 00 (глобальный), все доступные частоты в диапазоне 5Ghz будут с установленным флагом no-ir (no-initiating-radiation), тем самым предотвратив hostapd использовать их. Вам понадобится установить crda и выставить код вашей страны, чтобы hostapd стали доступны разрешённые в вашей стране частоты.

В бюджетных ноутбуках часто используются беспроводные сетевые адаптеры от компании Broadcom. Если в Windows не возникает никаких проблем при создании точки доступа на карте практически любого производителя, то в Linux про точку доступа мы уже не говорим, просто подключиться к сети через WiFi может вызвать очень серьезные затруднения. Правда, в последнее время ситуация немного улучшилась.

В этой инструкции мы рассмотрим как создать точку доступа Wifi Ubuntu, на примере карты на карте Broadcom. В других дистрибутивах действия и настройки будут похожие, только файлы и команды установки могут немного отличаться. Мы разберемся как сделать точку доступа wifi через графический интерфейс и в терминале.

Подготовка к созданию точки доступа

Для карт Broadcom есть четыре драйвера: стандартный и по умолчанию включенный b43, входящие в состав ядра brcmsmac и brcmfmac, а также проприетарный драйвер broadcom linux под названием wl. Сразу скажу что проприетарный драйвер совсем никудышный, так как не поддерживает не только режим точки доступа, но и неразборчивый режим тоже.

Стандартный b43 и brcmfmac для карты B4313 не подходят потому что не работают в режиме точки доступа, хотя эти уже поддерживают режим монитора. Посмотреть поддерживает ли ваш драйвер режим точки доступа (Master Mode) можно на этой странице. Остается только brcmsmac, который можно заставить раздать wfi linux. Сначала разберемся с драйверами ядра. Теперь, когда мы определились что будем использовать, перейдем к настройке broadcom linux. Смотрим какой драйвер загружен:

Если есть вот такие строчки, то все хорошо и драйвер загружен правильно:

brcmsmac 497481 0
cordic 1024 1 brcmsmac
brcmutil 4596 1 brcmsmac

Но если загружен b43 или broadcom-wl их нужно удалить. Например, для b43:

И запустить brcmsmac:

sudo modprobe brcmsmac

Лучше полностью удалить проприетарный драйвер broadcom linux из системы если он установлен и добавить в черный список ненужные драйверы, оставив только brcmsmac. Чтобы при перезагрузке грузился только он, для этого добавляем такие строчки в файл /etc/modprobe.d/50-blacklist.conf:

sudo vi /etc/modprobe.d/50-blacklist.conf

blacklist b43
blacklist b43-legacy

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

Настройка точки доступа Wifi в Ubuntu

Чтобы создать точку доступа Ubuntu сначала нужно кликнуть по значку сети в правом верхнем углу и выбрать Параметры Wifi:


В открывшемся меню кликните по кнопке бутерброда и выберите Включить точку доступа:


Перед активацией компьютер предупредит вас, что вы не сможете подключится к интернету по Wifi если включёна точка доступа:


Затем покажет имя сети и пароль от неё, который создаётся автоматически:


Используя эти данные вы можете подключится к только что созданной точке доступа. Всё должно работать. Отключить её можно здесь же, надо только кликнуть по соответствующему переключателю.

Настройка точки доступа вручную

Для того чтобы раздать Wifi вручную нам понадобится пакет hostapd. Установите его командой:

sudo apt install hostapd

Стандартная конфигурация программы нам не подойдет, поэтому оригинальный конфигурационный файл переименовываем и создаем вот такой:

sudo vi /etc/hostapd/hostapd.conf

interface=wlp3s0
driver=nl80211
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
macaddr_acl=1
ssid=LosstAccessPoint
hw_mode=g
channel=7
macaddr_acl=0
auth_algs=3
ieee80211n=1
wmm_enabled=1
eap_server=0
eap_message=hello
eapol_key_index_workaround=0
own_ip_addr=127.0.0.1
wpa=2
wpa_passphrase=your_password
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP TKIP
rsn_pairwise=CCMP

Здесь и далее wlp3s0 - ваш сетевой интерфейс wifi адаптера. В поле ssid укажите желаемое имя точки доступа, в wpa_passphrase - пароль.

Сервис файл hostapd по умолчанию замаскирован, его нужно розмаскировать, для этого выполните:

sudo systemctl unmask hostapd

Затем в конфигурационном файле /etc/default/hostapd в строчке DAEMON_CONF добавьте путь к конфигурационному файлу:

sudo vi /etc/default/hostapd

С настройкой hostapd все, но запускать точку доступа еще рано, я бы даже сказал очень рано. Перейдем к конфигурации сетевого интерфейса. Нам нужно задать статический ip, DNS, режим и еще несколько настроек. Для этого идем в /etc/network/interfaces и добавляем следующие строки:

auto wlp3s0
iface wlp3s0 inet static
address 10.10.0.1
netmask 255.255.255.0

Это нужно в том числе для того, чтобы NetworkManager не трогал сетевой интерфейс Wifi. После сохранения настроек перезапустите компьютер. Осталось настроить DHCP сервер для раздачи IP пользователям, которые будут подключаться к нашей сети. Для этого используем dnsmasq:

sudo apt install dnsmasq

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

sudo vi /etc/dnsmasq/dnsmasq.conf

dhcp-range=10.10.0.2,10.10.0.255,255.255.255.0,12h
interface=wlp3s0
listen-address=127.0.0.1
dhcp-host=00:0f:00:5a:b6:42,10.10.0.1
cache-size=300
dhcp-authoritative
server=8.8.8.8
no-resolv
address=/backbone/10.10.0.1
dhcp-option=3,10.10.0.1
dhcp-option=1,255.255.255.0
log-queries
log-dhcp

ip addr list | grep wlp3s0

В выводе команды ищите параметр link:

Осталось настроить iptables для пропускания трафика и настроить автозагрузку всего этого, но предлагаю пойти другим путем. Мы напишем скрипт, которым можно будет в любой момент раздать Wifi в Linux, а также остановить раздачу. Вот сам скрипт:

sudo vi /usr/local/bin/wifi_access_point.sh

После сохранения скрипта дайте ему права на выполнение:

sudo chmod ugo+x /usr/local/bin/wifi_access_point.sh

И вот только теперь можно тестировать. Для чтобы раздать Wifi Ubuntu используйте:

sudo /usr/local/bin/wifi_access_point.sh start

А для остановки:

sudo /usr/local/bin/wifi_access_point.sh stop

Вы можете добавить этот скрипт в автозагрузку, чтобы настройка точки доступа wifi linux выполнялась автоматически.

Выводы

Вот и все. Теперь вы знаете как выполняется настройка точки доступа Ubuntu и сможете раздать Wifi на своем компьютере или ноутбуке. Это довольно сложный процесс, но если разобраться, то вполне можно выполнить. Если у вас остались вопросы, спрашивайте в комментариях!

Отредактировать файл /etc/default/hostapd.conf. В нём раскомментировать строку вида Это путь к файлу конфигурации демона hostapd.
Затем идем дальше — редактировать /etc/hostapd/hostapd.conf. Предоставлю содержимое моего файла конфигурации. Предупреждаю, парсер конфигурационных опций у этого демона очень чувствителен и ругается даже на пустые строки с пробелом. На комментарии не ругается.

Сетевой интерфейс беспроводной карты
Драйвер сетевой карты — обычно для hostapd отлично работает nl80211, не вижу смысла менять, да и говорят, что он работает в большинстве случаев.
Название точки доступа, т.н. SSID
Режим работы сетевой карты — 801.11b/g/n. На самом деле — там всегда должно оставаться g, даже если карта способна на n, для настройки режима n придётся кое-что поменять, смотрите дальше:

Беспроводной канал — от 1 до 13. Для лучшей производительности рекомендуются 1, 6 или 11 канал.
Версия WPA
Пароль беспроводной точки
Дополнительные настройки WPA2:
Следующая опция устанавливает блокировку MAC-адресов. Пока не знаю, как это настроить, да и штука довольно бесполезная, но все говорят, что без блокировки эту опцию нужно выставить в ноль — что я и сделал:

Полный конфиг одним блоком для копипаста в файл:

Конфиг автоматически проверяется перед запуском, так что — смело пробуйте запустить hostapd. Команды управления:
Напомню — также в Debian можно использовать команды вида service hostapd start, что легче в написании.

Пару шагов для устойчивости:
  • Нельзя забывать, что для шифрования WPA/WPA2 пароль должен быть не короче 8 символов. Если поменять пароль на лету, используя SSH сессию через беспроводной канал, можно внезапно отрезать себя от сервера — hostapd не захочет запускаться и единственное средство связи с сервером будет потеряно. Работает — не трогай, ну а если трогаешь — трогай осторожно.
  • В случае многопользовательской системы советую поставить права чтения файлов вида 700, чтобы простые пользователи не могли узнать пароль для точки доступа — если вас это волнует, конечно.

Пока всё. К точке можно попробовать подключиться, но… Для успешного подключения к точке доступа нужен DHCP сервер, без него к точке полноценно не подключишься — те же операционные системы не дадут этого сделать, поскольку без получения адреса само подключение не имеет особого смысла. Вот его и настроим!


Когда я только начинал учиться настраивать сервера под свои нужды, первое, на что я тогда я наткнулся — это пакет isc-dhcp-server, его я и планировал предложить, и статья уже была готова, но… Я нашёл dnsmasq, и моя жизнь изменилась в лучшую сторону. Dnsmasq — это и кэширующий DNS, и DHCP сервер со своим набором различных фич. Как только я заглянул в его конфиг, мое зрение улучшилось, все мысли в мозгу внезапно стали упорядоченными и я достиг просветления. Реально, конфиг очень простой и понятный. Но пока подготавливаем площадку для работы dnsmasq. Что же делать?

1) Придумать, как будут выглядеть адреса в нашей локальной сети. Я выбрал адреса типа 192.168.51.x.

2) Настроить сетевой интерфейс, на котором будет работать dnsmasq. На самом деле — очень важный шаг, который пропускают многие в своих мануалах по настройке DHCP-серверов. Дело в том, что компьютеру, на котором работает DHCP-сервер, необходимо прописать статический адрес — кто выдаст адрес DHCP-серверу, если он сам не может запуститься без адреса, а адрес себе он выдать не может, потому что не запущен?
Итак, открываем для редактирования файл /etc/network/interfaces и добавляем туда абзац вида:
Сохраняем и перезапускаем наш сетевой интерфейс, на котором настроен DHCP:
Проверяем состояние, сверяем настройки с теми, что должны быть:

3) Нужно удалить любые DNS и DHCP серверы, чтобы dnsmasq мог спокойно запуститься — иначе выдаёт ошибку. У меня были установлены bind9 и isc-dhcp-server, пришлось избавиться от них. Если работаем по SSH из сети, в которой раньше адреса раздавал покойный DHCP-сервер, не перезагружаемся — выдавать адреса уже некому.

4) Нужно создать условия для работы сервера — создать пользователя для того, чтобы под ним запускать dnsmasq, прописать в системных настройках DNS-сервера, к которым dnsmasq будет обращаться и ещё пару мелочей.
Прописываем DNS сервера Гугла. Правда, первой строчкой у нас будет localhost. Это сделано для того, чтобы остальные системные приложения на нашем же сервере, когда им надо получить адрес от DNS-сервера, обращались сначала к dnsmasq, а не к Гуглу. Ну а dnsmasq достаточно умён, чтобы игнорировать эту строчку:


Нужно защитить это файл от перезаписи при каждом запуске системы. Перезаписывает его dhclient, если что. Честно говоря, блокировка от записи — лишь один из способов того, как не допустить перезапись =) Есть и другие, но этот самый простой:

Что же, если вы по каким-либо причинам считаете блокирование файла неверным путём или также хотите использовать DNS, которые столь настойчиво предлагает dhclient? Тогда, как советует merlin-vrn, нужно использовать программу resolvconf.

Если пакет resolvconf ещё не установлен, устанавливаем. Единственное, что нужно для того, чтобы прописать статический адрес DNS для системы — отредактировать /etc/resolvconf/resolv.conf.d/base, вписав туда всё, что мы бы вписали в /etc/resolv.conf:

service resolvconf reload — готово!

Добавляем группу и пользователя:

5) Ставим Dnsmasq, он запускается и готов к работе, но мы его отключаем — ещё не настроен, нечего ему тут делать:

6) Чистим оригинальный файл от стандартного конфига:
Ну а теперь мы готовы настраивать. Скажу сразу — у dnsmasq много разных опций, которые я при написании статьи подробно описывал в комментариях… Пока не понял, что топик раздулся до неприличных и нечитаемых размеров, как будто недостаточно того, что статья и так переполнена текстом и отформатирована, как кусок незнамо чего. Поэтому — я оставлю конфиг с самыми важными без длинных комментариев и всяких дополнительных опций, а конфиг с дополнительными опциями будет под спойлером.

[WiFi Hostapd AP] Программа для создания точки доступа WiFi

Эта программа создана с целью облегчить создание точки доступа WiFi на основе Hostapd и DNSMASQ.

Возможности программы

В данный момент актуальна версия 1.1

Установка программы

Настройка программы

У меня заработало с такими параметрами:


Проблемы с Network Manager

Обнаружилось, что довольно часто Network Manager мешает нормальному запуску программной точки доступа. Есть два варианта решения данной проблемы: 1) отключить Network Manager, как это сделать описано ниже в этой статье 2) запретить ему управлять WI-FI модулем. Дя этого потребуется добавить в конфигурационный файл /etc/NetworkManager/NetworkManager.conf следующие строки:

После этого выполняем

Теперь NetworkManager не управляет wi-fi модулем и не мешает нормально работать hostapd

Старый способ

Работоспособность руководства проверена на Ubuntu Server 9.10 i386 и Ubuntu Desktop 9.10 i386. При условии поддержки оборудования более старыми ядрами должно работать и на более ранних версиях.

Краткое описание руководства

В данном руководстве объясняется, как организовать программный Wi-Fi-роутер на основе Wi-Fi адаптера и компьютера под управлением Ubuntu. Все действия описаны для CLI интерфейса и подходят к воспроизведению на серверной версии дистрибутива. Если вы используете desktop версию с GUI - просто выполняйте все в терминале. Подразумевается, что вы имеете уже настроенное интернет-соединение, доступ к которому вы хотите предоставить некой локальной сети, в которую входят клиенты подключенные как через ethernet (проводная сеть), так и через Wi-Fi .

Прежде чем начать

Внимательно прочитайте этот раздел, прежде чем начнете настраивать ваш роутер.

Совместимость оборудования

В качестве точки доступа 1) в данном примере выступает обыкновенная Wi-Fi плата, которая может быть встроенной в вашу материнскую плату, или быть подключена через PCI или USB. За программную часть ТД отвечает специальный демон hostapd и драйвер самого Wi-Fi адаптера. Несмотря на достаточно хорошую поддержку беспроводного оборудования в linux, некоторые свободные реализации драйверов не обеспечивают стопроцентной поддержки своих устройств. И если в случае, когда Wi-Fi адаптер выступает в качестве клиента, большинство устройств работают хорошо, то в случае с AP-режимом 2) некоторые устройства вообще невозможно использовать в режиме точки доступа. Поэтому прежде чем начать - убедитесь, что вы настраиваете устройство, поддерживающее AP-Mode. Для этого нужно сначала узнать что это за устройство. Сделать это можно так:

Вывод должен быть примерно таким:

В моем случае это Atheros Communications Inc. AR5001 Wireless Network Adapter [168c:001c] (rev 01) . Теперь зная название устройства, можно посмотреть на используемый драйвер:

Ответ должен быть примерно таким:

Network Manager

Другие интерфейсы

Перед началом настройки, убедитесь, что все остальные сетевые интерфейсы подключены и работают нормально. Если вы еще не настроили интерфейс, отвечающий за интернет соединение - самое время сделать это сейчас. Более подробно про настройку сетевых интерфейсов можно почитать тут.

Скорость передачи данных

Реальная скорость передачи данных по каналу WiFi значительно отличается от заявленных производителем, кроме того- чем больше устройств работает на одной точке доступа- тем меньше пропускная способность (канал делится на количество клиентов). Ниже приведена таблица, отображающая технические характеристики различных протоколов передачи данных интерфейса WiFi, для одного устройства.

Протокол Используемая
частота
Максимальная
теоретическая
скорость
Типичная
скорость на
практике
Дальность
связи в
помещении
Дальность
связи на
открытой
местности
802.11b 2.4ГГц 11Мбит/сек 0.4Мбайт/сек 38 140
802.11a 5ГГц 54Мбит/сек 2.3Мбайт/сек 35 120
802.11g 2.4ГГц 54Мбит/сек 1.9Мбайт/сек 38 140
802.11n 2.4ГГц,5ГГц 600Мбит/сек 7.4Мбайт/сек 70 250

Установка необходимых пакетов и обновление

И ставим необходимые пакеты:

Настройка интерфейсов

Все инструкции в интернете, к которым я обращался в процессе написания этой статьи требуют сначала настроить сетевые интерфейсы - т.е. перевести Wi-Fi адаптер в режим точки доступа, соединить его со свободным Ethernet адаптером в мост и поднять эти интерфейсы до того, как запустится hostapd, т.е. прописать все необходимое в /etc/network/interfaces, однако, из комментариев в hostapd.conf следует, что он сам переводит беспроводной адаптер в режим ТД, и сам поднимает соединение-мост. Как правильно делать - я не знаю, однако описанный ниже способ проверен на работоспособность на двух различных конфигурациях и все хорошо работает. Мне к сожалению, не довелось настраивать ТД на основе драйверов madwifi , которые несколько специфичны в настройке. В любом случае - эта статья в wiki разделе, если вы обладаете бОльшей информацией на эту тему - пожалуйста, не проходите мимо… [MadKox]

Настройка беспроводного интерфейса

Прежде всего вам нужно перевести беспроводной адаптер в режим точки доступа. В зависимости от драйвера вам нужно попробовать несколько способов. В принципе - адаптер переводится в режим ТД командой:

Где wlan0 - имя вашего беспроводного интерфейса.
Однако, в некоторых случаях, этот способ не сработает, тогда вам нужно сначала «удалить» старый интерфейс и «создать» новый, с режимом ТД. Для этого вам понадобится утилита iw установить которую можно например так:

Где wlan0 - имя вашего интерфейса. Обратите внимание на конец второй строчки приведенной команды - _ _ a p - перед символами ap два символа подчеркивания.
Если у вас madwifi перевод адаптера в режим ТД выглядит так:

В любом случае, после этих действий, команда iwconfig , запущенная без параметров, должна выдать примерно следующее:

Обратите внимание на значение Mode:Master - это значит, что адаптер работает в режиме точки доступа.
Для закрепления результата необходимо внести изменения в файл /etc/network/interfaces 5) и добавить настройки вашего беспроводного интерфейса:

Настройка моста

Для того, чтобы объединить вашу проводную локальную сеть с беспроводной 6) в одну - вам нужно создать сетевой мост между ними. Таким образом вы сможете подключать компьютеры-клиенты к общей сети как через Wi-Fi, так и через обычный Ethernet 7) .
Для этого вам нужно отредактировать файл /etc/network/interfaces и внести в него следующие настройки:

Где: br0 - имя интерфейса-моста, eth1 - интерфейс, «смотрящий» в локальную сеть, wlan0 - беспроводной интерфейс, а самой локальной сети назначается адресация 192.168.0.0/24.
Стоит заметить, что интерфейс eth1 не нужно дополнительно описывать в файле interfaces , т.к. ifupdown разберется с ним автоматически, при включении интерфейса br0.

Итоговый interfaces

В итоге, после всех приведенных выше манипуляций вы должны были получить файл /etc/network/interfaces примерно такого содержания:

Теперь вы можете перезапустить сеть командой:

И посмотреть, что из этого получилось при помощи ifconfig . Если вы нигде не ошиблись - вы увидите все свои интерфейсы, в том числе не описанный в interfaces eth1 и br0. Для просмотра информации о сетевом мосте можно использовать:

Настройка hostapd

Теперь, когда все подготовительные действия выполнены нужно настроить собственно точку доступа - hostapd . Основной файл настроек hostapd - /etc/hostapd/hostapd.conf . Лучше сразу создать его резервную копию, т.к. сам файл содержит большое количество подробных комментариев о настройке, и в случае, если вы что-то удалите - вы всегда сможете обратиться к оригиналу:

Файл hostapd.conf содержит в себе список опций, которые принимают то или иное значения и все вместе влияют на конфигурацию hostapd . Каждая опция снабжена достаточно подробным комментарием 8) . Вот некоторые основные опции:

Пример конфигурационных файлов для точки доступа со скрытым SSID и авторизацией WPA2 на основе MAC адресов клиентских станций:
hostapd.conf

/etc/hostapd/wpa_psk

Теперь, когда мы настроили hostapd самое время установить его на автоматический запуск при загрузке системы. Для этого нужно отредактировать файл /etc/default/hostapd 9) и изменить закомментированные строки на:

Настройка общего доступа

После перезагрузки компьютера мы сможем «увидеть» свою точку доступа, однако вряд ли сможем подключиться к ней, т.к. нам пока никто не может раздать сетевые параметры и доступ к интернету. Поэтому необходимо выпонить ряд общих действий, не связанных в принципе с Wi-Fi, но необходимых для разделения одного интернет-канала на несколько компьютеров.

Настройка iptables и ip форвардинга

Далее нужно сделать этот скрипт исполняемым:

И установить его на автоматический запуск при инициализации сетевых служб:

Настройка dnsmasq

Теперь можно перезагрузить шлюз и попытаться соединиться с ним по Wi-Fi или через Ethernet. Если по какой-то причине что-то не работает - внимательно перечитайте руководство и поищите ошибки в ваших конфигурационных файлах. Не забудьте, что если вы используете скрытый SSID вашей точки доступа - она не будет отображаться в списке доступных беспроводных сетей на машинах клиентов - в этом случае вам необходимо вручную указать SSID при подключении.

Как улучшить эту статью

Было бы просто замечательно, если бы кто-то попробовал прогнать это руководство на madwifi устройствах и описал возможные различия в необходимых настройках.
И см. заметку в главе про настройку оборудования.
UPD: А еще было бы неплохо описать различные утилиты внешнего управления hostapd и их настройку.

Прокомментируйте настройку eth0 в /etc/network/interfaces. Какой тип подключения подразумевается под этим интерфейсом? Что делать, если для связи с Интернетом требуется авторизация по VPN?

В этой инструкции я покажу очень простой способ создания своей собственной Wi-Fi сети. После установки необходимой программы и её зависимостей, вы сможете создавать беспроводные точки доступа одной командой — никакой правки конфигурационных файлов и прописывания маршрутов. Благодаря большому количеству опций достижима практически такая же гибкость как и при «ручном» поднятии Wi-Fi сети.

Для этого мы будем использовать программу create_ap. Она представляет собой скрипт, который автоматизирует и значительно упрощает настройку всех необходимых программ и настройку маршрутизации трафика. Установим её следующими командами.

Ubuntu, Linux Mint, Debian, Kali Linux

ArchLinux

Gentoo

Для запуска беспроводной точки доступа с create_ap достаточно знать только имена интерфейсов. Вы можете посмотреть их командой:

Имена моих интерфейсов wlan0 и eth0.

Теперь просто запустите create_ap:

Если вы не знаете, какой из ваших интерфейсов является беспроводным, то запустите команду

Эта команда выведет названия только беспроводных интерфейсов.

Если вы уже подключены к беспроводной сети, то вам нужно отключить от неё Wi-Fi адаптер, который вы хотите превратить в точку доступа.

Примеры настройки беспроводной точки доступа (Wi-Fi)

В следующих примерах я создаю точку доступа с названием MyAccessPoint.

Создание открытой Wi-Fi сети (без пароля):

sudo create_ap wlan0 eth0 MyAccessPoint

WPA + WPA2 пароль, где MyPassPhrase для подключения к беспроводной точке доступа:

Точка доступа без предоставления Интернет-доступа:

Предоставление Интернет с подключением по мосту:

Интернет с подключением по мосту (мостовой интерфейс заранее настроен):

Раздача интернета с этого же WiFi интерфейса:

Выбор другого драйвера WiFi адаптера:

Без пароля (открытая сеть) с передачей параметров по трубе:

WPA + WPA2 пароль с передачей данных по трубе:

Включение IEEE 802.11n

Изоляция клиентов:

Запуск как системной службы

Использование постоянной системной службы systemd.

Немедленный запуск службы:

Запуск при загрузке системы:

С другими опциями вы сможете ознакомиться на этой страничке.

Выбор беспроводной карты для Wi-Fi точки доступа

Я проводил свои тесты и самый лучший результат показала двухдиапазонная карта Alfa AWUS052NH. Она поддерживает протокол n, имеет две антенны и работает на длинные дистанции — дальше и с более надёжной связью чем многие роутеры.

Читайте также: