Хотите получить wi-fi точку доступа из барахла которое завалялось в гараже? Тогда вам под кат т.к., сегодня мы будем собирать программную точку доступа (AP) на основе wi-fi карточки D-link DWA-520 на чипсете Atheros AR5001X+ (ath5k) и Ubuntu Server 9.04.
Сперва удостоверяемся в том, что карточка определяется:
Вывод должен быть примерно таковым:
Как видно, для нашей карты используется драйвер ath5k.
Для нормальной работы необходимо обновить ядро до более нового (в стандартной поставке ядро 2.6.28). Штатными средствами это сделать не удаётся — поэтому будем качать и ставить пакеты с новым ядром. Ядра лежат вот тут: http://kernel.ubuntu.com/~kernel-ppa/mainline/.
Качаем пакеты с ядром:
Последнее качать не обязательно, это исходники ядра.
Устанавливаем:
Перезагружаемся.
Теперь нам необходимы свежие версии драйверов на wi-fi. Для этого идём на сайт http://linuxwireless.org. Как гласит вот эта страничка: http://linuxwireless.org/en/users/Drivers — ath5k драйвер не поддерживает работу в режиме AP в стандартной комплектации. Но это поправимо накладыванием патча на исходники ath5k.Для этого сначала скачаем исходные коды драйверов отсюда http://linuxwireless.org/en/users/Download. Нас интересует сборка под 2.6.30 ядро поэтому:
Далее распаковываем всё это хозяйство:
Теперь редактируем исходники (не нужно пугаться — тут всё очень просто). В файлике
И приводим его вот к такому виду, добавив стоку "
Далее собираем и устанавливаем:
Для точности эксперимента ребутаемся, хотя это и не критично вроде =).
Далее нам необходимо установить hostapd. Я рекомендую ставить самую последнюю версию:
Теперь приступим к его настройке. Копируем старый конфиг:
И пишем в новый:
вот это:
Далее:
Теперь приступаем к общим настройкам сети.
Разрешаем форвардинг трафика:
и расскоментируем строку:
Редактируем интерфейсы:
Создаём файлик правил iptables:
пишем в него правило для маскарадинга:
Ставим и настраиваем dhcp сервер:
Примерно так должен выглядеть конфиг:
Далее в файле:
Указываем наш интерфейс для раздачислонов айпишников:
Теперь с чистой совестью и распирающей гордостью можем перезагружать наш роутер и наслаждаться wi-fi интернетом и сэкономленными деньгами на покупке железного роутера.
З.Ы. Для отлова неполадок hostapd логи смотрим вот тут:
1. Всё о драйвере ath5k: http://madwifi-project.org/wiki/About/ath5k;
2. Подробнее про hostapd читаем тут: http://hostap.epitest.fi/hostapd/ либо оригинальный конфиг;
3. Сайт посвящённый wi-fi драйверам: http://linuxwireless.org;
4. Два howto, которые помогли в написании этого творения: http://forum.ubuntu.ru/index.php?topic=61834 и http://forum.ubuntu.ru/index.php?topic=62844.
_________
Сперва удостоверяемся в том, что карточка определяется:
lspci -v
Вывод должен быть примерно таковым:
...
01:0b.0 Ethernet controller: Atheros Communications Inc. Atheros AR5001X+ Wireless Network Adapter (rev 01)
Subsystem: D-Link System Inc Device 3a73
Flags: bus master, medium devsel, latency 168, IRQ 10
Memory at fc9f0000 (32-bit, non-prefetchable) [size=64K]
Capabilities: <access denied>
Kernel driver in use: ath5k
Kernel modules: ath5k
...
Как видно, для нашей карты используется драйвер ath5k.
Для нормальной работы необходимо обновить ядро до более нового (в стандартной поставке ядро 2.6.28). Штатными средствами это сделать не удаётся — поэтому будем качать и ставить пакеты с новым ядром. Ядра лежат вот тут: http://kernel.ubuntu.com/~kernel-ppa/mainline/.
Качаем пакеты с ядром:
wget -c http://kernel.ubuntu.com/%7Ekernel-ppa/mainline/v2.6.30.5/linux-headers-2.6.30-02063005-generic_2.6.30-02063005_i386.deb wget -c http://kernel.ubuntu.com/%7Ekernel-ppa/mainline/v2.6.30.5/linux-headers-2.6.30-02063005_2.6.30-02063005_all.deb wget -c http://kernel.ubuntu.com/%7Ekernel-ppa/mainline/v2.6.30.5/linux-image-2.6.30-02063005-generic_2.6.30-02063005_i386.deb wget -c http://kernel.ubuntu.com/%7Ekernel-ppa/mainline/v2.6.30.5/linux-source-2.6.30_2.6.30-02063005_all.deb
Последнее качать не обязательно, это исходники ядра.
Устанавливаем:
sudo dpkg -i *.deb
Перезагружаемся.
Теперь нам необходимы свежие версии драйверов на wi-fi. Для этого идём на сайт http://linuxwireless.org. Как гласит вот эта страничка: http://linuxwireless.org/en/users/Drivers — ath5k драйвер не поддерживает работу в режиме AP в стандартной комплектации. Но это поправимо накладыванием патча на исходники ath5k.Для этого сначала скачаем исходные коды драйверов отсюда http://linuxwireless.org/en/users/Download. Нас интересует сборка под 2.6.30 ядро поэтому:
wget http://www.orbit-lab.org/kernel/compat-wireless-2.6-stable/v2.6.30/compat-wireless-2.6.30.tar.bz2
Далее распаковываем всё это хозяйство:
tar jxvf compat-wireless-2.6.30.tar.bz2
Теперь редактируем исходники (не нужно пугаться — тут всё очень просто). В файлике
compat-wireless-2.6.30/drivers/net/wireless/ath5/base.c ищем вот такое место: hw->wiphy->interface_modes =
BIT(NL80211_IFTYPE_STATION) |
BIT(NL80211_IFTYPE_ADHOC) |
BIT(NL80211_IFTYPE_MESH_POINT);И приводим его вот к такому виду, добавив стоку "
BIT(NL80211_IFTYPE_AP) |": hw->wiphy->interface_modes =
BIT(NL80211_IFTYPE_STATION) |
BIT(NL80211_IFTYPE_ADHOC) |
BIT(NL80211_IFTYPE_AP) |
BIT(NL80211_IFTYPE_MESH_POINT);Далее собираем и устанавливаем:
make
sudo make install
sudo make unloadДля точности эксперимента ребутаемся, хотя это и не критично вроде =).
Далее нам необходимо установить hostapd. Я рекомендую ставить самую последнюю версию:
wget -c http://mirror.yandex.ru/ubuntu/pool/universe/h/hostapd/hostapd_0.6.9-3_i386.deb
Теперь приступим к его настройке. Копируем старый конфиг:
sudo mv /etc/hostapd/hostapd.conf /etc/hostapd/original-hostapd.conf
И пишем в новый:
sudoedit /etc/hostapd/hostapd.conf
вот это:
interface=wlan0
driver=nl80211
#Ваше названи точки доступа
ssid=MySuperAP
country_code=RU
hw_mode=g
channel=1
macaddr_acl=0
wpa=3
wpa_key_mgmt=WPA-PSK
#Ваш пароль
wpa_passphrase=MySuperPass123
wpa_pairwise=TKIP CCMPДалее:
sudoedit /etc/default/hostapd
RUN_DAEMON="yes"
DAEMON_CONF="/etc/hostapd/hostapd.conf"Теперь приступаем к общим настройкам сети.
Разрешаем форвардинг трафика:
sudoedit /etc/sysctl.conf
и расскоментируем строку:
net.ipv4.ip_forward=1
Редактируем интерфейсы:
sudoedit /etc/network/interfaces
#Обратная петл��
auto lo
iface lo inet loopback
#Интерфейс на который приходит интернет к примеру от модема
auto eth0
iface eth1 inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1
#Наш wi-fi интерфейс
auto wlan0
iface wlan0 inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.1
pre-up iptables-restore /etc/iptables.rulesСоздаём файлик правил iptables:
sudoedit /etc/iptables.rules
пишем в него правило для маскарадинга:
# Generated by iptables-save
*nat
:PREROUTING ACCEPT [4430:389020]
:POSTROUTING ACCEPT [24:2723]
:OUTPUT ACCEPT [28:3602]
-A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
COMMITСтавим и настраиваем dhcp сервер:
sudo aptitude install dhcp3-server
sudoedit /etc/dhcp3/dhcpd.confПримерно так должен выглядеть конфиг:
ddns-update-style none;
option domain-name "MySuperNet";
option domain-name-servers IPS_OF_DNS_SERVERS;
default-lease-time 42300;
max-lease-time 84600;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.200;
option routers 192.168.0.1;
}Далее в файле:
sudoedit /etc/default/dhcp3-server
Указываем наш интерфейс для раздачи
INTERFACES="wlan0"
Теперь с чистой совестью и распирающей гордостью можем перезагружать наш роутер и наслаждаться wi-fi интернетом и сэкономленными деньгами на покупке железного роутера.
З.Ы. Для отлова неполадок hostapd логи смотрим вот тут:
tail -f /var/log/daemon.log
Полезные ссылки
1. Всё о драйвере ath5k: http://madwifi-project.org/wiki/About/ath5k;
2. Подробнее про hostapd читаем тут: http://hostap.epitest.fi/hostapd/ либо оригинальный конфиг;
3. Сайт посвящённый wi-fi драйверам: http://linuxwireless.org;
4. Два howto, которые помогли в написании этого творения: http://forum.ubuntu.ru/index.php?topic=61834 и http://forum.ubuntu.ru/index.php?topic=62844.
_________
