Такие производители, как Asus, D-Link, Tp-link и прочие выпускают прошивки на свою продукцию ограниченное количество времени. Это значит, что уязвимости и баги остаются на своем месте годами. Более того, родная прошивка вашего устройства может плохо работать.
Автор не несет никакой ответственности за порчу вашего оборудования. Вы должны понимать, что Вы делаете.
У меня в распоряжении имеется 5 точек доступа Tp-link модели tl-wa901nd v2. Последняя прошивка для неё вышла 23.03.2012 . Эта прошивка работает нестабильно. На английской версии сайта имеется бета-прошивка датируемая 1.11.2013 , в changelog указано «Fixed the wireless instability and hang issue» — это не правда, с этой прошивкой точка всё так же нестабильно работает.
Но точки закуплены и они должны работать. Что же делать? Сдать обратно и купить UniFi Cтавить OpenWrt и надеется что с ней они будут стабильно обслуживать клиентов.
У проекта DD-WRT тоже есть прошивка на данную точку, но ставить её не рекомендую. Там имеется проблема с работой ethernet порта.
И так, проект OpenWrt примерно раз в год выпускает стабильные выпуски прошивок. На данный момент последний выпуск Barrier Breaker 14.07 вышел в октябре 2014.
Для того, что бы прошить нашу точку на сайте https://openwrt.org в каталоге https://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/ находим модель точки и скачиваем файл с постфиксом factory
Заходим на точку через веб-интерфейс. System tools\Firmware upgrade выбираем скачанный файл с расширением .bin и нажимаем upgrade
Через какое то время точка перезагрузится и OpenWrt будет готова к работе. Что бы нам получить доступ к командной строке ТД, нужно соединить интерфейс точки и компьютера. На интерфейсе компьютера должен быть статически задан адрес из подсети 192.168.1.0/24 и маска /24, например 192.168.1.2/24
Теперь подключаемся к точке с помощью telnet: telnet 192.168.1.1
Мы в командной строке точки доступа.
Чтобы иметь возможность управлять точкой доступа, нужно задать пароль суперпользователю. Командуем passwd, вводим пароль и подтверждаем его.
Теперь нужно изменить конфиг сети: vi /etc/network. У нас в сети используется DHCP-сервер и network обретет следующий вид:
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config interface 'lan'
option ifname 'eth0'
option proto 'dhcp'
option type 'bridge'
Интерфейс loopback — кольцевой интерфейс. Оставим без изменений
От интерфейса lan нам нужно, что бы он получал настройки сети от DHCP сервера и работал в режиме моста .
Теперь следует перезапустить lan интерфейс и выйти из telnet сессии. Проще всего это сделать послав точку в перезагрузку командой reboot.
Теперь нужно подключить точку доступа к рабочей сети и зайти на неё по ssh. На DHCP сервере привяжите mac адресс ТД к определенному ip адресу, для удобства дальнейшей работы. Например, мы выделим гостевой сети wi-fi отдельный vlan и повешаем на него сеть 192.168.5.0/24. И расположим точки доступа в конце адресного пула. Нашей точке на DHCP сервере зададим адрес 192.168.5.250
Заходим на нашу точку по ssh: на unix-подобных ОС команда в терминале: ssh root@192.168.5.250 . На Windows для этого потребуется putty . Логин root, пароль заданный ранее.
В стандартной прошивке версии 14.07 для tl-wa901nd v2 в прошивку уже включен веб-интерфейс luci. Настройки можно проводить через него: http://192.168.5.250
Для русификации веб-интерфейса нужно установить пакет luci-i18n-russian:
opkg update — обновим список пакетов в репозитории OpenWrt. Если обновление не сработало, проверьте имеет ли устройство доступ в глобальную сеть.
opkg instal luci-i18n-russian — установка русификатора
Так же это можно сделать через веб-интерфейс.
Далее описан способ настройки через командную строку c исправлением конфигов вручную. Веб-интерфейс отключен.
Мы хотим получить от нашей точки совсем немного: Чтоб wi-fi работал и был открытый, что бы время ТД синхронизировалось с ntp сервером и что бы наши гости из 192.168.5.0/24 подсети не имели доступа к командной строке нашей точки.
Продолжим. Настройки беспроводной сети хранятся в /etc/config/wireless и обретают следующий вид:
config wifi-device radio0
option type mac80211
option channel 11
option hwmode 11ng
option path 'platform/ath9k'
option htmode HT20
# REMOVE THIS LINE TO ENABLE WIFI:
#option disabled 1
option country RU
config wifi-iface
option device radio0
option network lan
option mode ap
option ssid OpenWrt
option encryption none
Здесь нас интересуют:
option channel — номер канала на котором будет работать ТД
option hwmode — режим работы ТД. Для общественной точки лучше оставить режим 11ng.
country — страна в которой находится ТД.
option disabled 1 — запрет работы wi-fi прямо в конфиге. Для разрешения работы wi-fi нужно удалить\закомментировать эту строку.
option ssid — ssid нашей сети
option encryption — выбор метода шифрования ТД. В нашем примере точка доступа открытая
Системные настройки хранятся в /etc/config/system
config system
option hostname 'OpenWrt'
option zonename 'Asia/novosibirsk'
option timezone 'NOVT-6'
config timeserver 'ntp'
list server 'time.nstu.ru'
list server '1.openwrt.pool.ntp.org'
list server '2.openwrt.pool.ntp.org'
list server '3.openwrt.pool.ntp.org'
option enabled '1'
option enable_server '0'
config led 'led_wlan'
option name 'WLAN'
option sysfs 'tp-link:green:wlan'
option trigger 'phy0tpt'
option hostname — зададим сетевое имя нашего устройства
option zonename — зададим часовой пояс
option timezone — Новосибирск нынче GMT +6
в config timeserver ‘ntp’ прописаны серверы времени, с которыми будет происходить синхронизация времени
option enabled — включить(1)\выключить(0) ntp клиент
option enable_server — включить(1)\выключить(0) ntp сервер. т.е. при включении этого параметра ТД становится ntp сервером
Настройка фаервола. Ничего особенного нам от него не нужно, потому что все ограничения для 192.168.5.0/24 заданы на маршрутизаторе. Мы лишь добавим в конфиг /etc/config/firewall одно правило, блокирующее доступ к порту 22 нашей ТД:
config rule
option enabled '1'
option proto 'tcp'
option name 'shh block'
option family 'ipv4'
option src '*'
option src_ip '192.168.5.0/24'
option dest_ip '192.168.5.250'
option dest_port '22'
option target 'REJECT'
option name — имя правила
option proto — протокол с которым оно работает
option src — источник. Здесь можно поставить зону, интерфейс. Звездочка означает «любой»
option src_ip — ip адрес источника. У нас это вся подсеть гостевого wi-fi.
option dest_ip — ip адрес назначения. Адрес нашей точки
option dest_port — порт назначения. Нам требуется закрыть доступ по ssh, порт по умолчанию 22.
option target — действие «что сделать?». Значение REJECT — четко дает понять нашему гостю, что здесь доступа нет. Можно поставить DROP и получить атмосферу загадочности.
Таким образом у нас получается такой /etc/config/firewall:
config defaults
option syn_flood 1
option input ACCEPT
option output ACCEPT
option forward REJECT
# Uncomment this line to disable ipv6 rules
# option disable_ipv6 1
config zone
option name lan
list network 'lan'
option input ACCEPT
option output ACCEPT
option forward ACCEPT
config zone
option name wan
list network 'wan'
list network 'wan6'
option input REJECT
option output ACCEPT
option forward REJECT
option masq 1
option mtu_fix 1
config forwarding
option src lan
option dest wan
# We need to accept udp packets on port 68,
# see https://dev.openwrt.org/ticket/4108
config rule
option name Allow-DHCP-Renew
option src wan
option proto udp
option dest_port 68
option target ACCEPT
option family ipv4
# Allow IPv4 ping
config rule
option name Allow-Ping
option src wan
option proto icmp
option icmp_type echo-request
option family ipv4
option target ACCEPT
# Allow DHCPv6 replies
# see https://dev.openwrt.org/ticket/10381
config rule
option name Allow-DHCPv6
option src wan
option proto udp
option src_ip fe80::/10
option src_port 547
option dest_ip fe80::/10
option dest_port 546
option family ipv6
option target ACCEPT
config rule
option enabled '1'
option proto 'tcp'
option name 'shh block'
option family 'ipv4'
option src '*'
option src_ip '192.168.5.0/24'
option dest_ip '192.168.5.250'
option dest_port '22'
option target 'REJECT'
# include a file with users custom iptables rules
config include
option path /etc/firewall.user
В итоге у нас есть точка доступа с OpenWrt, которой мы можем управлять через командную строку и веб-интерфейс (если вы его не отключили).
Полезные ссылки:
Мой телеграм-канал .