Всем привет. Хочу поделиться своим опытом создания программной точки доступа на базе Ubuntu Server 10.10 и TP-LINK TL-WN821N v.2.
И задать вопросы почему кое что не работает, вопросы внизу.
Вообще это первый мой опыт работы на серверной OS, до этого я пользовался только как юзер Ubuntu Desktop, да и вообще с никсами мало сталкивался.
Зачем мне это надо было: дома интернет от провайдера, стоит роутер dir-300 но скорость очень сильно режет, а интернет на 4 бука и один медиацентр. И собрав из того что было в ящиках распихано ещё один комп я решил сделать аля сервер-шлюз-программную точку доступа wi-fi.
Выбор пал на Ubuntu Server 10.10 потому что там при обновление стоит ядро 2.6.35.9 а оно поддерживает TP-LINK TL-WN821N v.2. но с драйверами ar9170usb. Они не поддерживают режим точки доступа (AP) на данном устройстве. Режим ТД поддерживает драйвер carl9170, но его надо устанавливать...
Надо установить:
sudo apt-get install wireless-tools
Надо скачать:
wget http://www.kernel.org/pub/linux/kernel/people/chr/carl9170/fw/1.9.2/carl9170-1.fw
sudo cp carl9170-1.fw /lib/firmware/
Дальше качаем compat-wireless.
wget http://www.orbit-lab.org/kernel/compat-wireless-2.6/2011/03/compat-wireless-2011-03-29.tar.bz2
Разархивируем
tar -xjvf compat-wireless-2011-03-29.tar.bz2
переходим
cd compat-wireless-2011-03-29
собираем (для сборки потребуется gcc
sudo apt-get install gcc
):
./scripts/driver-select carl9170
sudo make
sudo make install
На этом моменте я лёг спать, так как у меня "сервер" это селерон 2Ггц на 478 сокете.
Утро, включаю комп, и смотрю
ls -l /sys/class/net/wlanХ/device/driver
А он мне пишет
lrwxrwxrwx 1 root root 0 2011-03-29 00:32 /sys/class/net/wlan0/device/driver -> ../../../../../../bus/usb/drivers/ar9170usb
Вот я расстроился...
Но стал читать в интернете дальше и нашёл, вносим ar9170usb в блэклист
sudo nano /etc/modprobe.d/blacklist.conf
добавляем
blacklist ar9170usb
Ребут.
Повторяем
ls -l /sys/class/net/wlanX/device/driver
И видим что у нас заработал carl9170
Ура!
Теперь наш свисток может быть ТД.
Проверяем:
iwconfig wlan0 mode Master
этим я был послан на RTFM
для проверки я поставил iw (что такое не знаю, но написано надо)
sudo apt-get install iw
Далее:
sudo iw dev wlan0 del
sudo iw phy phy0 interface add wlan0 type __ap
И
iwconfig
У свистка стоял режим Master!!!
Закрепляем:
sudo nano /etc/network/interfaces
вносим
# WIFI
iface wlan0 inet manual
pre-up iw dev wlan0 del
pre-up iw phy phy0 interface add wlan0 type __ap
Материалы собраны с разных сайтов:
(
http://www.linux.org.ru/forum/linux-hardware/5340797http://habrahabr.ru/blogs/sysadm/116297/https://help.ubuntu.ru/wiki/wifi_ap)
Пока я тестирую свой "сервер" он стоит у меня за роутером и пока получает ip по dhcp.
sudo nano /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback
# WAN
auto eth0
iface eth0 inet dhcp
# WIFI
iface wlan0 inet manual
pre-up iw dev wlan0 del
pre-up iw phy phy0 interface add wlan0 type __ap
Ставим
sudo apt-get install dnsmasq bridge-utils
Копируем файл настроек dnsmasq
cp /etc/dnsmasq.conf ~/configs/default
sudo rm -f /etc/dnsmasq.conf
sudo nano /etc/dnsmasq.conf
Добавляйте следующие строки:
#global
listen-address=192.168.10.1 #ip на котором будет работать dnsmasq.
cache-size=300 #количество запоминаемых имён (по умолчанию 150)
#dhcp
dhcp-range=192.168.10.10,192.168.10.30,24h #задаёт диапазон выдаваемых ip. Обратите внимание на то,
что в этот диапозон не должны входить статические ip (dhcp-host).
#static
dhcp-host=00:1F:D0:22:82:ED,192.168.10.5 #привязывает ip по MAC (hwaddr) или имени компьютера (тут указан не мой MAC).
sudo /etc/init.d/dnsmasq restart
Всё, dhcp работает.
Нам надо настроить мост между eth1 и теперь рабочей wlan0 для этого поставили bridge-utils.
Возвращаемся к
sudo nano /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback
# WAN
auto eth0
iface eth0 inet dhcp
auto wlan0 br0
# WIFI
iface wlan0 inet manual
pre-up iw dev wlan0 del
pre-up iw phy phy0 interface add wlan0 type __ap
# BR
iface br0 inet static
address 192.168.10.1
network 192.168.10.0
netmask 255.255.255.0
broadcast 192.168.10.255
bridge_ports eth1 wlan0
Это можно и нужно было сделать бы и раньше, но что то я стормозил. И это окончательный вариант /etc/network/interfaces
Далее:
sudo /etc/init.d/networking restart
Смотрим
ifconfig
и
brctl show
Мост должен работать.
Навеяно и вычитано тут (
http://dobroservers.ru/ubuntu-router и
https://help.ubuntu.ru/wiki/wifi_ap)
Далее про hostapd.
sudo apt-get install hostapd
Во всех статьях было написано что конфиг лежит тут: /etc/hostapd/hostapd.conf
Это то ли к Ubuntu Server 10.10 то ли к hostapd-0.6 не применимо , у меня там его не было.
Нашёлся в /usr/share/doc/hostapd/examples/hostapd.conf.gz
далее
cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /home/user/
gzip -d /home/user/hostapd.conf.gz
sudo cp /home/user/hostapd.conf /etc/hostapd/
sudo nano /etc/hostapd/hostapd.conf
Далее ищем, раскомментируем, приписываем, лишнее не трогал:
interface=wlan0
bridge=br0
driver=nl80211
country_code=RU
hw_mode=g
channel=11
ssid=ubuntu
wpa=3
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
Автозапуск hostapd
sudo nano/etc/default/hostapd
Добавляем
RUN_DAEMON="yes"
DAEMON_CONF="/etc/hostapd/hostapd.conf"
Запускаем с логом
hostapd -dd /etc/hostapd.conf
если стартанул и всё побежало значит хорошо, а я поначалу свои ошибки выискивал ввиде лишних пробелов... в hostapd.conf
IptablesНе запаривался, поставил arno-iptables-firewall
sudo apt-get install arno-iptables-firewall
При установке задаёт вопросы, всё интуитивно понятно.
Вот и всё.
Послесловие. Когда установил Ubuntu Server 10.10 она не понимала русский, решение
sudo apt-get install console-cyrillic
дальше поставил удобный редактор
sudo apt-get install nano
и самое главное, интернет браузер!!!
sudo apt-get install links2
что бы его запустить пишем links2
что бы вызвать его меню жмём Esc.
Радость была не долгой, сеть видна, но буки подцепиться не могут, подцепляются на долю секунды и отваливаются. В чём проблема? Перед тем как вписал в rc.local и после того как вписал всё я ни какие правила iptables не сбрасывал. Надо?
PS Товарищи гуру, скажите ещё как например вот сижу я в первой консоли, у меня открыт nano как в нём выделить текст? Типа как в форточках Ctrl+ стрелочки в право, влево? скопировать и во второй консоли в пустой nano файл вставить?
а то задолбался всё в ручную набирать.