Pull to refresh

Точка доступа wifi из ноутбука

Как то достался мне ASUS F5R с разбитой матрицей и нерабочей клавиатурой. Так как замена матрицы дорогостоющее дело, то было решено сделать домашний сервер-файлопомойку-торентокачалку + ко всему раздающий интернет на стационарный компьютер (по ethernet) и на ноутбук с телефоном (по wifi). В качестве ОС я выбрал ubuntu-server 11.04, так как мне нужна только консоль (матрица разбита) и в ubuntu я более менее разбираюсь, это было наиболее подходящим для меня решением. В данной статье я постараюсь описать действия по настройке программной точки доступа.


Установку и настройку самой системы я описывать не буду, а перейду сразу к делу.
В качестве точки доступа будет выступать встроенная в ноутбук wifi-карта. Стоит заметить, что не все устройства можно использовать в качестве точки доступа. Это в основном зависит от драйвера wifi-платы. К счастью драйвер моей карточки поддерживает режим точки доступа(AP-Mode).

Для начала нам нужно узнать с каким устройством мы имеем дело. Для этого выполним следующие команды:
lspci | grep Ethernet
или
lspci | grep Wireless
или
lsusb | grep Wireless

вывод будет примерно таким:
02:00.0 Ethernet controller: Atheros Communications Inc. AR5001 Wireless Network Adapter (rev 01)
06:00.0 Ethernet controller: Atheros Communications L2 Fast Ethernet (rev a0)


Как не трудно заметить моя карта на чипе Atheros. Смотрим какой драйвер используется:
dmesg | grep Atheros
Получаем:
[ 12.461222] ath5k phy0: Atheros AR5414 chip found (MAC: 0xa0, PHY: 0x61)
В моём случае используется ath5k драйвер.
Идём Сюда и ищем в таблице наш драйвер. В моём случае драйвер ath5k поддерживает AP. Список устройств и используемых для них драйверов можно посмотреть здесь.

Устанавливаем необходимые пакеты (перед этим нужно обновиться apt-get update && apt-get upgrade):
sudo apt-get install wireless-tools bridge-utils hostapd dnsmasq iw
wireless-tools — уже был установлен.
bridge-utils — нужен для создание моста между wlan и eth интерфейсами (если вам не нужно раздавать интернет по eth то этот пакет можно не ставить).
hostapd — демон програмной точки доступа, без него ни как.
dnsmasq — будем использовать в качестве dhcp (вопрос вкуса, можете пользоваться другими dhcp-серверами).
iw — позволяет удалять старый интерфейс и создавать новый в режиме ТД.

Переводим карту в режим ТД:
sudo iw dev wlan0 del
sudo iw phy phy0 interface add wlan0 type __ap

в конце второй строки перед ap 2 символа подчеркивания.

Смотрим iwconfig, значение Mode:Master, значит карта работает в режиме ТД.

Настройка моста и автоматического перевода карты в режим ТД:
sudo nano /etc/network/interfaces

Приводим к следующемы виду:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

auto eth1
iface eth1 inet static
address 10.113.119.68
netmask 255.255.255.0
gateway 10.113.119.254

auto br0 wlan0

#Brige
iface br0 inet static
address 192.168.0.1
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
bridge_ports eth0 wlan0

#Wlan
iface wlan0 inet manual
pre-up iw dev wlan0 del
pre-up iw phy phy0 interface add wlan0 type __ap


Настраиваем hostapd:

sudo nano /etc/hostapd/hostapd.conf
Приводим к виду:
interface=wlan0
bridge=br0
driver=nl80211
hw_mode=g
channel=3
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
debug=0
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ssid=habrahabr
ignore_broadcast_ssid=0
auth_algs=3
eapol_key_index_workaround=0
eap_server=0
wpa=3
wpa_psk_file=/etc/hostapd/wpa_psk
wpa_key_mgmt=WPA-PSK
rsn_pairwise=TKIP CCMP


В основном по названию понятно для чего какой пункт.
Опишу несколько:
interface — и так понятно.
bridge — тоже понятно (если не использовали мост, то параметр не нужен вообще).
hw_mode — режим работы.
channel — канал на котором будет работать ТД.
ssid — название ТД.

Создаём файл /etc/hostapd/wpa_psk и пишем в нем следующее:
00:00:00:00:00:00 password
Можно задать определенный пароль для определенного мак адреса.

Настроим автоматический запуск hostapd. В файле /etc/default/hostapd изменим закомментированные строки на:
RUN_DAEMON="yes"
DAEMON_CONF="/etc/hostapd/hostapd.conf"


Настроим dnsmasq:
sudo nano /etc/dnsmasq.conf
Пишем туда:
# Не обрабатывать адреса не содержашие доменной части.
domain-needed

# Не перенаправлять адреса, ведущие в немаршрутизируемое адресное пространство.
bogus-priv

# Ограничить работу dnsmasq определенным интерфейсом
interface=br0

# Включить DHCP сервер и задать диапазон назначаемых адресов.
dhcp-range=192.168.0.10,192.168.0.255,12h


Перезагружаемся и радуемся.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.