- Как настроить Wifi-соединение на любом Linux-десктопе
- Вступление
- Командная строка
- Рассмотрим пример подключения к wifi-точке с шифрованием WEP
- Рассмотрим более сложный случай — соединение с точкой доступа по WPA-шифрованию
- Заключение
- Настройка точки доступа в Ubuntu
- Подготовка к созданию точки доступа
- Настройка точки доступа Wifi в Ubuntu
- Настройка точки доступа вручную
- Выводы
Как настроить Wifi-соединение на любом Linux-десктопе
Если вы владелец какого-либо мобильного устройства под управлением OS Linux, то вам в первую очередь придется задуматься над выполнением задачи номер один — настройка соединения с беспроводной точкой доступа Wifi. По умолчанию, стандартные инструменты для Linux-десктопов надежны и удобны в использовании. Например, Wifi Radar , Network Manager , Wicd и многие другие программы этого класса. Конечно, подразумевается, что вы используете окружения типа Gnome или KDE, обладающих очень богатым функционалом и выбором.
Но как быть, если у вас нечто другое и более редкое — E17, Fluxbox, ION или вообще «голая» консоль? В этом случае вам стоит применить классический способ настройки — командная строка.
Давайте рассмотрим два случая настройки соединения с беспроводной точкой доступа:
— графическое приложение Wicd ( для примера );
— консольные утилиты.
Вступление
Предполагается, что у вас имеется беспроводное сетевое устройство (адаптер), который работает под Linux. Если вы вдруг обнаружили, что ваше устройство не работает, можно предложить, как один из вариантов для новичков, поставить последнюю версию дистрибутива Ubuntu и установить проприетарные драйвера для своей беспроводной карточки. Предложенный случай является наиболее простым и действенным, по сравнению с попытками заставить работать адаптер через драйвер ndiswrapper.
Также предполагается, что у вас имеются в наличии два параметра для подключения к беспроводной точке: SSID и идентификационный ключ. Без них (особенно — без второго, так как первый еще можно легко узнать) вы не сможете установить соединение.
Wicd — графическое приложение, написанное на Python. Гибкая и удобная в использовании программа, предлагающая большой функционал. Wicd легко устанавливается и им также легко пользоваться. Достаточно всего нескольких минут для ознакомления с программой. Стоит также заметить, что Wicd, помимо графического интерфейса, имеет и консольный вариант «исполнения», не уступающий по функциональности.
Командная строка
Давайте теперь посмотрим, как настроить wifi-соединение через командную строку. К слову сказать, такой способ является универсальным, так как используются утилиты, являющиеся стандартными для всех дистрибутивов Linux. Более того, все приложения с графическим интерфейсом (GUI) основаны на работе именно этих утилит. Образно говоря, если мы «снимем» «крышу» GUI у любого графического приложения, то под ней мы увидим скромных и незаметных тружеников консоли: ifconfig, wireless-tools, wpa_supplicant, ping, nmap и многих других.
Для выполнения нашей задачи понадобятся следующие утилиты:
- — ifconfig : полностью управляет работой любого сетевого адаптера вашего компьютера (будь то проводной или беспроводной интерфейс);
- — iwlist : выдает список доступных для подключения (находящихся в радиусе досягаемости) беспроводных дочек доступа;
- — iwconfig : утилита управления и конфигурирования беспроводных сетевых устройств (адаптеров);
- — dhclient (или его налоги): автоматически получает IP-адрес от dhcp-сервера беспроводной точки;
- — wpa_supplicant : утилита для настройки шифрованных соединений.
Перед началом настройки wifi-соединения логичным было бы проверить наличие всех этих утилит в системе (хотя, почти все они входят в стандартный набор Linux-дистрибутивов). Давайте, все же, убедимся в том, что они есть у нас, выполнив совсем несложные команды (см. man which):
- — which ifconfig
- — which iwlist
- — which iwconfig
- — which dhclient
- — which wpa_supplicant
При выполнении каждой из этих команд вы увидите путь, по которому они располагаются в файловой системе. Если вдруг не увидите — вам придется установить отсутствующие. Наиболее простой и рекомендуемый — это менеджером пакетов того дистрибутива Linux, которым вы пользуетесь. Как альтернатива — можно предложить установку из исходников, но такой путь требует достаточного опыта от пользователя.
Рассмотрим пример подключения к wifi-точке с шифрованием WEP
1 . Первое, что мы сделаем — посмотрим, какие сетевые адаптеры имеются у нас на компьютере:
Вывод будет содержать имена и подробное описание всех сетевых интерфейсов, которые удалось обнаружить утилите ifconfig. Если не был обнаружен желаемый, то причина заключается только в одном — нет драйверов для него и не включена поддержка этого интерфейса в ядре Linux.
2 . Запускаем беспроводной сетевой адаптер:
здесь :
— wlan0 — стандартное в большинстве Linux-систем имя wifi-карточки;
— up — опция говорит команде ifconfig запустить для работы («поднять») сетевое устройство.
3 . Теперь нам надо сканировать эфир вокруг себя на наличие доступных hot-spot’ов:
— wlan0 — имя беспроводного адаптера;
— scan — команда iwlist запускается в режиме сканирования.
Результатом работы iwlist будет детальный отчет, из которого на данном этапе нас интересует только одна строчка: ESSID:»Some_Name». Значение параметра ESSID («Some_Name») — это имя беспроводной точки доступа. Теперь мы знаем, к какой конкретно wifi-точке мы будем подключаться.
4 . Выполняем подключение:
— wlan0 — сетевой адаптер, на котором настраивается соединение;
— essid — задаем имя точки доступа, к которой подключаемся;
— key — указываем ключ шифрования, использующийся этой точкой доступа для передачи данных.
Команда iwconfig по умолчанию использует для ключа шифрования данные в шестнадцатеричном виде HEX. Если вы хотите указать ключ в виде простого текста (ASCII), вам необходимо использовать опцию s .
5 . Последний шаг — получаем от dhcp-сервера wifi-точки IP-адрес:
Естественно, вышеуказанные шаги выполнять каждый раз утомительно. Можно упростить процесс установки соединения, написав скрипт подключения, в котором мы объединим все эти команды в одно целое:
Здесь мы добавили еще одну команду sleep с параметром 10 секунд. Это рекомендуется делать перед получением IP-адреса для надежности установки соединения.
Сохраняем этот файл под каким-либо именем (например, wireless_up) и делаем его исполняемым командой:
Переносим wireless_up по пути /usr/local/bin, чтобы сделать его глобально видимым всей системой.
Теперь вам достаточно набрать в командной строке:
. и соединение будет установлено.
Рассмотрим более сложный случай — соединение с точкой доступа по WPA-шифрованию
Соединение с таким шифрованием поддерживает только утилита wpa_supplicant, поэтому она нам понадобиться. Также, опять таки, предполагаем, что мы знаем ключ (пароль) шифрования этой точки доступа.
1 . Генерируем пароль на основе этого ключа с помощью утилиты wpa_passphrase, которая входит в состав пакета wpa_supplicant. Дело в том, что пароль, который мы будем использовать далее, должен быть в виде шестнадцатиричного числа:
Утилита выдаст сгенерированную строку psk, которую мы вставим в конфигурационный файл wpa_supplicant.conf:
Это очень упрощенный файл конфигурации, но он будет работать. Возможно, вам потребуется добавить в шапку этого файла еще одну строку:
для предоставления необходимых прав доступа.
2 . «Поднимаем» интерфейс wlan0:
3. Указываем, к какой точке мы хотим подключиться:
4 . Запускаем утилиту wpa_supplicant на установку соединения:
здесь :
— B — запускать команду wpa_supplicant в фоновом режиме;
— Dwext — говорим утилите wpa_supplicant использовать драйвер wext для интерфейса wlan0;
— i — задаем настраиваемый сетевой интерфейс (wlan0 в нашем случае);
— с — указываем путь к конфигурационному файлу wpa_supplicant.conf.
5 . Проверяем, что соединение установлено:
На выводе увидим подробную информацию по указанному интерфейсу wlan0.
6 . Получаем локальный IP-адрес:
7 .Упрощаем процесс, создав по пути /etc/network/interfaces запись следующего вида:
Заключение
В зависимости от дистрибутива Linux, существует множество способов настройки wifi-соединений. Именно благодаря такому разнообразию настроить соединение можно практически в любой Linux-системе.
Главное, чтобы сам беспроводной адаптер поддерживался в Linux на уровне драйверов. Но это уже зависит главным образом от разработчиков операционных систем.
Источник
Настройка точки доступа в Ubuntu
В бюджетных ноутбуках часто используются беспроводные сетевые адаптеры от компании 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
В этом конфигурационном файле вам надо кое-что поправить, а именно MAC адрес в поле dhcp_host замените значение 00:0f:00:5a:b6:42 на своё для интерфейса wlp3s0. Его можно узнать командой:
ip addr list | grep wlp3s0
В выводе команды ищите параметр link:
Осталось настроить iptables для пропускания трафика и настроить автозагрузку всего этого, но предлагаю пойти другим путем. Мы напишем скрипт, которым можно будет в любой момент раздать Wifi в Linux, а также остановить раздачу. Вот сам скрипт:
sudo vi /usr/local/bin/wifi_access_point.sh
#!/bin/bash
case $1 in
start )
# на случай если интерфейс программно отключен
rfkill unblock all
# запускаем сервисы
systemctl stop systemd-resolved
systemctl start hostapd
systemctl start dnsmasq
# включаем форвардинг пакетов
sysctl net.ipv4.ip_forward=1
# правила для iptables
iptables -t nat -A POSTROUTING -o enp2s0f0 -j MASQUERADE
iptables -A FORWARD -i enp2s0f0 -o wlp3s0 -m state —state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlp3s0 -o enp2s0f0 -j ACCEPT
;;
stop )
systemctl stop hostapd
systemctl stop dnsmasq
systemctl start systemd-resolved
sysctl net.ipv4.ip_forward=0
;;
esac
После сохранения скрипта дайте ему права на выполнение:
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 на своем компьютере или ноутбуке. Это довольно сложный процесс, но если разобраться, то вполне можно выполнить. Если у вас остались вопросы, спрашивайте в комментариях!
Источник