Multiple WLAN — гостевой wi-fi доступ на прошивке dd-wrt

После того, как я заменил стандартную прошивку WAP54G rev3.1 на альтернативную dd-wrt прошло немало времени.Однажды меня спросили, можно ли, чтобы охрана, которая сидит на первом этаже нашего здания, могла пользоваться интернетом через нашу wi-fi точку доступа? Конечно дать доступ к нашей сети, как обычным офисным ноутбукам и смартфонам было бы безумием. Но к тому времени прошивку dd-wrt я немножко изучил,  и в настройках wireless видел, что можно добавить некий Virtual Interface.

Более того, такая опция необходима если в офис приходят гости со своими ноутбуками и хотят проверить почту и т.п. Каждый раз добавлять их mac адреса в MAC filter, чтобы они могли подключиться, накладно,  а также вводить пароль на подключение к точке доступа. Да и гостям нет необходимости видеть другие компьютеры в локальной сети.

Итак задача была сформирована — создать возможность простого гостевого доступа wi-fi только к интернету без привлечения дополнительного оборудования.

В Интернете на wiki страницах прошивки ddwrt я нашел описание как настроить multiple wlans, а также страница с настройкой виртуальной точки доступа с помощью командной строки хотя  она немного нам не подходит. Изложенные там настройки firewall’а подходят для роутеров, а не точек доступа. Настроить с первого раза не получилось. DNS запросы обрабатывались нормально, а ping пакеты никуда не доходили. Понятно, что причина была в неправильных правилах брандмауэра. На WAP54G была установлена последняя рекомендуемая прошивка build 14896.

Со второй ссылки я зашел страницу где выложены последние сборки прошивок dd-wrt. Скачал и установил последнюю сборку dd-wrt.v24-17084_NEWD_micro, на которую wap54g не ругалась.

Также на страницах wiki было описано как проверить поддерживает ли точка доступа multi-BSSID. Эта функция позволяет создавать на виртуальном wi-fi интерфейсе свой MAC адрес тем самым избегая недоразумений с wi-fi клиентами, которые бы видели две разные SSID с одним MAC адресом.При вводе команды nvram get wl0_corerev на моей WAP54G v3.1 был получен ответ 9 — точка доступа поддерживает multi-BSSID. Думаю у других владельцев этой AP будет аналогичный результат.

Итак после перепрошивки точка доступа имеет ip 192.168.1.1. При первом заходе будет предложено ввести желаемое имя администратора и пароль.

Дальше необходимо установить на странице Setup, вкладке Basic Setup параметр WAN Connection Type в позицию «Disabled». В поле Rotuer Setup ввести IP параметры сети указав новый ip точки доступа, адрес шлюза и ДНС сервера. Отключить DHCP (если у вас в сети есть другой dhcp сервер). Теперь можно нажать кнопку «Apply Settings». Кроме этого я еще отключил доступ к админстраничке из wi-fi (Wireless -> Adwanced settings), а также запретил показывать информационную страницу без ввода пароля (Administration -> Management).

Теперь можно приступить к настройке основного wi-fi интерфейса и виртуального для гостей. На странице Wireless и вкладке Basic Setup настраиваем основной интерфейс, а затем нажав кнопку add в поле Virtual interfaces создаем настройки для гостевого wi-fi.

Параметр Network Configuration должен быть обязательно в состоянии bridged. Параметр AP Isolation можно включить по желанию, если вы не хотите, чтобы клиенты этой виртуальной точки доступа видели друг друга. Сохраняем введенные настройки нажатием кнопки Save.

Переходим на той же странице на вкладку Wireless Security. Для офисной сети создаем стойкое шифрование WPA2 Personal. Кроме этого в офисной сети применяется фильтрация по MAC адресам клиентов. К сети подключатся лишь те устройства MAC адреса которых прописаны  на вкладке MAC Filter и включен параметр Permit only clients listed to access the wireless network. Для гостевой сети был выбран самый низкий уровень безопасности для простоты подключения и, чтобы к сети не подключались все желающие халявы. Сохраняемся с помощью Apply Settings.

На wiki странице dd-wrt рекомендуют на этом этапе попробовать подключиться к обоим сетям и проверить работу интернет. Пока обе точки доступа должны работать одинаково и находится в одной сети.

Возвращаемся на страницу Setup вкладку Networking. На этой странице видно, что уже существует «мост» br0 который соединяет физическую LAN и Wireless сети. Нам необходимо создать второй «мост» br1 с которым будет связан виртуальный интерфейс wl0.1. Для этого в поле Create Bridge нажимаем add в появившемся поле пишем имя br1, STP я выключил. Все остальное по умолчанию, и нажимаем Save. Должно появиться дополнительное окно для ввода ip адреса нового виртуального моста. Я создал сеть с ограничением по количеству возможных клиентов до 5 используя маску подсети. После того, как введен ip/netmask можно нажимать Apply Settings, для того, чтобы точка доступа приняла все изменения.

Через некоторое время в поле Current Bridge Table после br0 появится созданный br1. Теперь необходимо сасоциировать наш виртуальный интерфейс wl0.1 с br1. Для этого в поле Assing to Bridge нажимаем кнопку add  в первой из появившихся ячеек выбираем br1 а во второй ячейке — wl0.1. После этого сохраняемся нажатием «Apply Settings» точка доступа начнет перечитывать конфигурацию.

 

В самом низу на картинке видно, что я не включил Multiple DHCP Server. На wiki страницах прошивки написано, что если у Вас выключен DHCP сервер на главной странице настроек (Basi Setup), то все настройки необходимо вводить через специальное командное поле DNSMasq на странице Services и ее одноименной вкладке.

Вот как выглядит это в моем случае:

 

Текстовый вариант для копирования:

interface=br1
dhcp-option=br1,3,192.168.2.1
dhcp-range=br1,192.168.2.2,192.168.2.6,255.255.255.248,24h

После внесенных изменений нажимаем кнопку Save и переходим на страницу Administration вкладку Commands. Здесь мы будем вводить правила для Firewall’а, чтобы разрешить доступ из гостевой виртуальной wi-fi сети в интернет, но запретить доступ из этой сети в офисную и наоборот. На wiki странице с инструкцией было написано много команд и сказано, что их можно использовать в любом количестве (либо все, либо лишь несколько) но в строгом порядке, так как они представлены на сайте.

В моем случае пригодились лишь 4 из них (копируйте внимательно, проверяйте, чтобы символы не подменились):

iptables -I FORWARD -i br0 -o br1 -m state --state NEW -j DROP
iptables -I FORWARD -i br1 -d `nvram get wan_ipaddr`/`nvram get wan_netmask` -m state --state NEW -j DROP
iptables -I FORWARD -i br1 -d `nvram get lan_ipaddr`/`nvram get lan_netmask` -m state --state NEW -j DROP
iptables -t nat -I POSTROUTING -o br0 -j SNAT --to `nvram get lan_ipaddr`

 

Первая строка запрещает доступ из офисной сети в гостевую — нечего там делать. Вторая запрещает доступ из гостевой сети в офисную. 4-ая включает NAT, собственно, чтобы работал интернет в гостевой виртуальной wi-fi сети.

После добавления этих строк нажимаем кнопку Save Firewall. Затем на вкладке Management этой же страницы нажимаем Reboot Router и «смотрим магию». У меня все заработало. Чего и вам желаю.

Вот таким вот способом, благодаря альтернативной прошивке dd-wrt, из обычной точки доступа мы сделали функциональный роутер-точку доступа. Это лишь малая часть того, что можно творить на этих прошивках. За что создателям огромное спасибо.

спасибо viberua.blogspot.ru/2011/07/multiple-wlan-wi-fi-linksys-wap-54g-dd.html