Прошивка роутера D’link DIR-320 «под хотспот»

Данная инструкция описывает процесс подготовки роутера D’link DIR-320 для работы в составе хотспота c ВНЕШНИМ сервером авторизации и учета (например, лично я настраивал роутер для подключения к системе использующей сервер FreeRADIUS и биллинговую программу Easyhotspot).  Причем, использование нескольких таких роутеров, настроенных на взаимодействие с одним сервером биллинга (например, с той же самой программой Easyhotsot), позволит организовать целую сеть хотспотов и «накрыть» ей весьма обширную площадь, или же обслуживать целый комплекс помещений. Для работы в составе хотспота в роутере должна быть установлена, настроена и запущена служба (сервер) контроллера доступа — Chillispot. В оригинальной прошивке от D’link такой службы нет. По этому, первым делом в роутер необходимо прошить альтернативное ПО, содержащее данную службу. Одним из вариантов такого альтернативного ПО, представленного в интернете, является прошивка от dd-wrt. Вся процедура состоит из следующих этапов:

  1. Выбор и загрузка прошивки
  2. Перепрошивка роутера
  3. Настройка роутера

Итак, приступим.

1. Выбор и загрузка прошивки

Для начала нужно скачать прошивку. Для этого нужно перейти на сайт dd-wrt. К каждой модели роутера, включенной в базу поддерживаемого оборудования, можно скачать несколько разных версий прошивок. Их отличие – в составе включенных в них служб и сервисов. По этому, первым делом нужно определиться с ответом на вопрос – какая из версий прошивки нам необходима. Главным условием в данном случае (для работы роутера в составе хотспота) является наличие в прошивке службы Chillispot. По этому, сначала открываем страницу http://www.dd-wrt.com/wiki/index.php/What_is_DD-WRT%3F#File_Versions На этой странице приведена таблица, показывающая, какие службы включены в каждую из версий прошивки. Ниже приведен фрагмент этой таблицы.

Рис. 1 — Версии файлов

В этой таблице смотрим, напротив каких версий прошивок, перечисленных вверху, в строке Chillispot проставлена «точка». Как видно, в приведенном фрагменте таблицы в прошивке Std присутствует Chillispot, вот ее и будем использовать. Теперь перейдем непосредственно к загрузке. Прошивки на сайте dd-wrt отличаются не только версиями, но также и оборудованием на которое они рассчитаны. То есть, нам нужно загрузить прошивку именно для роутера D’link DIR-320. Для этого переходим на страницу: http://www.dd-wrt.com/site/support/router-database На этой странице нам предлагается в строке поиска ввести первые три буквы или цифры из названия или номера модели роутера.

Рис. 2 — Стартовая страница базы моделей роутеров

Вводим «dir». Получаем вот такой список моделей, в названиях которых присутствует «dir».

Рис. 3 Список моделей, в названии которых присутствует «dir»

В нем нам нужно выбрать именно наш роутер. Щелкаем по ссылке нашей модели. Откроется страница со ссылками на файлы прошивок для нашей модели.

Рис.4 — Список различных версий прошивок для выбранной модели

На данной странице нужно обратить внимание на три вещи. Во первых, вверху приводится ссылка на инструкцию по перепрошивке роутера. Для рассматриваемого в данной заметке роутера D’link DIR-320 процедура смены прошивки описана ниже, и указанная ссылка ценности не представляет. Но если кто-то будет перешивать другой роутер, ему приведенная ниже инструкция не поможет, и тогда придется читать ту, которую предлагает сайт dd-wrt. Во вторых,  на странице присутствует выпадающий список с различными по дате версиями (релизами) ядра прошивки. В этом списке по умолчанию указан пункт, подписанный как «recommended». Раз рекомендуют, значит рекомендуют, его и будем использовать (а точнее — просто не будем трогать данный список). И последнее — это расположенный в нижней части список тех самых версий функционального наполнения прошивки. Как уже было сказано ранее, нам подходит версия прошивки Standard, а точнее даже сказать — Standard Generic. Вот по ссылке именно этой версии и щелкнем мышью.

Рис. 5 — Сохранение файла прошивки

Браузер предложит сохранить файл прошивки на диск вашего компьютера. Соглашаемся и сохраняем файл в произвольно выбранную папку. Лично я для этого например, создал у себя на компьютере папку dd-wrt и сохранил файл прошивки именно в нее. В результате всех вышеописанных манипуляций, у меня на компьютере на диске C:\ появилась папка dd-wrt, а в ней файл с именем dd-wrt.v24_std_generic.bin. На этом первая часть процедуры, а именно, «выбор и загрузка прошивки» завершена. Переходим ко второй.

2. Перепрошивка роутера

ВАЖНО! Приведенная ниже инструкция по перепрошивке была написана (по меркам IT-индустрии) очень давно! Описанный ниже механизм перепрошивки применительно к прошивкам от DD-WRT — устарел! Для большинства моделей роутеров на сайте DD-WRT предлагаются уже файлы, называющиеся factory-to-ddwrt.bin, которые могут быть прошиты «стандартным» способом — через вебинтерфейс роутера! В результате, сама процедура перепрошивки теперь ничем не отличается от той, которую изготовитель описал в инструкции к роутеру, за исключением небольшого нюанса. А сам нюанс заключается в том, что вместо заводской прошивки вы должны будете выбрать файл factory-to-ddwrt.bin, который скачали с сайта DD-WRT после того, как указали вашу модель роутера. 

Данная инструкция по перепрошивке предполагает, что на вашем компьютере установлена операционная система Windows XP. Также, в компьютере присутствует сетевая плата, и в системе установлены драйвера для нее. В основе процедуры перепрошивки лежит использование встроенного бутлоадера роутера, который в первую секунду после включения запускает ftp-сервер и слушает подключений на адресе 192.168.0.1. При этом прошивающий должен «угадать» тот момент, когда инициировать обмен с роутером и  начать «вкидывание» прошивки в него. В принципе такой «ручной» метод со временем, при определенном навыке позволяет получать положительные результаты со сравнительно небольшого числа попыток. Однако, на то ж мы и люди, чтобы «возложить труд на плечи машин»!  Поэтому, был написан (не мной) небольшой командный файл, который просто по кругу повторяет одно и то же — пытается найти этот самый ftp-сервер по адресу 192.168.0.1, и если тот найден, то инициирует загрузку в него файла прошивки с определенным именем (об этом далее). С теорией покончено и теперь перейдем непосредственно к процедуре перепрошивки. Первым делом нужно скачать тот самый командный файл. Взять его можно, например, у меня на ftp. Вот ссылка:  ftp://wifi-hotspot.zp.ua/For%20PC/drivers/router/dlink-dir320/flashing.zip После того, как архив получен, находящийся в нем единственный файл (flashing.cmd) нужно распаковать в ту же самую папку, в которую мы ранее сохранили файл с прошивкой — C:\dd-wrt\. Далее, скачанный нами ранее и хранящийся в этой папке файл прошивки — dd-wrt.v24_std_generic.bin НЕОБХОДИМО переименовать в firmware.bin. Это требование связано с тем, что используемый нами командный файл при запуске будет пытаться загрузить в роутер файл прошивки именно с таким именем — firmware.bin — и никаким другим! Обязательно переименуйте файл! Следующий шаг — сетевой плате компьютера, к которой будем подключать роутер, НУЖНО присвоить фиксированный IP-адрес — 192.168.0.2. Если быть более точным, то даже не именно 192.168.0.2, а любой в диапазоне от 192.168.0.2 до 192.168.0.254 (важно, чтобы он был в одной подсети с адресом ftp-сервера роутера в момент его включения). Также, нужно указать маску подсети 255.255.255.0 и кроме того, в ряде источников пишут, что необходимо еще и указывать адрес шлюза как 192.168.0.1. Однако, как показывает практика, указание шлюза в данном случае не является обязательным, и может быть опущено. Итак, открываем папку «Сетевые подключения«, в ней щелкаем правой кнопкой мыши на значке своей сетевой платы (по умолчанию он обычно подписан как «Подключение по локальной сети«), в контекстном меню выбираем пункт «Свойства«, в открывшемся окне находим в списке параметров настройку протокола TCP-IP и выставляем там рекомендованные значения, как показано на рисунке:

Рис. 6 — Настройка параметров протокола TCP-IP сетевой платы

После того, как файл переименован, и свойства сетевой платы настроены, прилагающимся Ethernet-кабелем подключаем роутер к сетевой плате компьютера. Обращаю ваше внимание на два момента. Во первых, кабель от компьютера ДОЛЖЕН быть подключен в одно из гнезд LAN на задней панели роутера (любой из LAN1-LAN4) и ни в коем случае не в гнездо INTERNET (WAN)! А во вторых, на данном этапе (пока что) питание роутера ДОЛЖНО быть отключено — блок питания ДОЛЖЕН быть либо отключен из сетевой розетки, либо отключен от гнезда питания роутера! Его мы включим потом, «когда попросят»… А пока что запускаем консоль. Для этого щелкнем кнопку «Пуск» и выберем пункт меню «Выполнить»:

Рис.7 — Пункт «Выполнить» главного меню Windows

Откроется окно «Запуск программы». В поле «Открыть» введем команду cmd и нажмем Enter (или щелкнем мышью кнопку «ОК»).

Рис. 8 — Окно ввода команды

Откроется консоль командного интерпретатора. Первым делом перейдем в папку с прошивкой и «прошивальщиком». Для этого введем команду (если вы сохраняли файлы в папку с другим именем, укажите в данной команде именно его):

cd c:\dd-wrt

Оказавшись в требуемой папке вводим команду на запуск командного файла «прошивальщика»:

flashing.cmd

Запустится командный файл. При этом он выведет следующее сообщение:

Рис. 9 — Чтобы запустить»прошивальщик», нажмите любую клавишу…

Как и рекомендует запущенная программа, нажмем «любую» клавишу. Единственное примечание: с точки зрения Windows «любой» может быть далеко не каждая клавиша. По большому счету в данном случае в качестве «любой» хорошо подойдет клавиша Enter. Вот ее и нажмем…

Рис. 10 — «Прошивальщик» готов и ждет роутера…

И вот только теперь пришло время наконец-то включить наш роутер! Включаем то, что было отключено (либо блок питания в розетку, либо кабель от блока питания в соответствующее гнездо роутера). Начнется загрузка прошивки в роутер:

Рис. 11 — Загрузка файла прошивки в роутер

Через некоторое время, после того, как файл прошивки будет загружен в роутер, появится следующее сообщение:

Рис. 12 — Перепрошивка пошла

Оно во первых, гласит, что файл прошивки успешно загружен в роутер, и начался непосредственно сам процесс перепрошивки. Кроме того, вам предлагается

  • обождать пару минут, пока перепрошивка завершится и роутер перезагрузится,
  • в свойствах сетевой платы, которой вы подключены к роутеру, снова включить DHCP-клиент (см. рис. 6 выше — там нужно выбрать вариант «Получить адрес автоматически»),
  • к веб-интерфейсу роутера после перепрошивки вы сможете обратиться в браузере по адресу http://192.168.1.1/

Измените настройки сетевого адаптера и обождите рекомендованное время.  Косвенной индикацией того, что все еще идет перепрошивка, и обращаться к роутеру бессмыслено, является сообщение Windows о том, что сетевая плата получает адрес:

Рис. 13 — Получение сетевой платой IP-адреса

После того, как указанное сообщение пропадет, и сетевая плата получит адрес, можно приступать к настройке. Перепрошивка роутера на этом закончена…

3. Настройка роутера

Небольшое примечание — здесь не планируется рассмотрение всех всевозможных настроек прошивки dd-wrt (поверьте, их очень много). Также практически не рассматривается настройка подключения роутера к интернету. Основной упор делается только на настройку тех параметров, которые непосредственно или косвенно относятся к работе роутера в составе хотспота.

Итак, приступаем к настройке. Предполагается, что ваш компьютер по прежнему подключен кабелем в одно из гнезд LAN1-LAN4 роутера, а в свойствах протокола TCP-IP выставлено, как и рекомендовано выше, «все в автомате» (включен DHCP-клиент). Запускаем браузер (любой, который вам нравится) и в нем вводим следующий адрес: http://192.168.1.1/ Откроется веб-интерфейс роутера.  При самом первом запуске, выполняемом сразу же после перепрошивки роутера програмным обеспечением от dd-wrt, вам будет предложено указать свои собственные логин и пароль пользователя, которые вы в дальнейшем будете использовать для входа в настройки роутера (защита от «чужих», однако).

Рис. 14 — Задание логина и пароля для доступа к администрированию роутера

Введите свои собственные значения.  В верхней строке — логин, в двух последующих — пароль (один и тот же!). Единственное замечание — при вводе используйте только буквы латинского алфавита и цифры, и ни в коем случае не используйте кириллицу! Да, и еще одно — не ленитесь, придумайте что-то пооригинальнее, чем банальные «admin/admin»…

После того, как вы зададите свои логин и пароль для доступа к настройкам роутера, откроется его информационная страница. Выглядит она таким образом:

Рис. 15 — Страница информации о текущем состоянии роутера

На этой странице представлена краткая сводка о текущем состоянии роутера.  Полюбовавшись на информацию, идем настраивать.

Так как роутер — это устройство доступа в интернет, первым делом нужно настроить подключение самого интернета к роутеру. Для этого в верхнем меню выбираем пункт Setup, а во второй строке меню нас интересует пункт Basic Setup. Внешний вид открывшегося меню представлен на рис. 16.

Рис. 16 — Страница настройки WAN и LAN интерфейсов

Как я уже говорил ранее, описывать настройку подключения к интернету я тут не планировал. Она в первую очередь зависит от вашего метода подключения к интернету и определяется его настройками. Информацию о подключении вам нужно получить от вашего провайдера. После этого настроить параметры WAN-интерфейса роутера. Единственное, что я порекомендовал бы — по возможности использовать все-таки статический IP-адрес, но это не догма.

Мы же перейдем к тем параметрам, настройка которых необходима для работы роутера в составе хотспота.

Первым делом настроим Wi-Fi. Собственно, наша задача в данном случае предоставить возможность подключиться к хотспоту как можно большему числу клиентов. Для этого мы

  • дадим беспроводной сети какое-нибудь соответствующее имя (SSID),
  • включим его (имени) открытое вещание,
  • включим поддержку всех поддерживаемых режимов (и B и G),
  • выключим шифрование данных в Wi-Fi,
  • поднимем мощность передатчика.

Итак, в верхнем меню выбираем пункт Wireless а во второй строке — Basic Settings. Внешний вид его показан на рис. 17 ниже:

Рис. 17 — Страница основных настроек Wi-Fi

В этом меню реально изменить стоит только само имя беспроводной сети. На указанном рисунке как раз это и показано — имя сети изменено на hotspot. В выборе имени вы абсолютно свободны, можете, например, использовать имя вашего заведения, единственное ограничение — не использовать в имени буквы кириллицы. Остальные параметры не нуждаются в корректировке по сравнению со значениями, установленными в прошивке по умолчанию. Режим Wi-Fi (Mode) выбран как AP (точка доступа), что собственно нам и нужно. Поддержка стандартов Wi-Fi сетей (Network Mode) установлена как Mixed, что подразумевает поддержку сетей обоих стандартов — и B, и G. Режим открытого вещания имени сети (Broadcast) — включен (установлен как Enable), что тоже нам подходит.  Единственное, что может быть еще стоит изменить в случае, если точка устанавливается в месте с высокой плотностью Wi-Fi сетей (много соседей с беспроводным интернетом), так это сменить канал (Channel) с фиксированного значения на Auto — в этом случае роутер попытается сам найти такой канал, на котором меньше всего помех от «соседей».

После того, как в настройки внесены необходимые изменения, щелкните кнопку Save внизу страницы.

Теперь проверим, что отключено шифрование Wi-Fi. Для этого в верхней строке меню выберем пункт Wireless, а в нижней — Wireless Security. Откроется следующее окно:

Рис. 18 — Настройка шифрования

В нем сразу после прошивки (по умолчанию) шифрование (Security Mode) выключено (Disabled). Убеждаемся в этом и переходи к следующим настройкам. Если же в указанном поле выбрано иное значение, поменяйте его на Disabled и потом щелкните кнопку Save внизу страницы.

И теперь перейдем к меню, в котором мы сможем изменить мощность передатчика. Для этого в верхней строке меню выберите Wireless, а в нижней — Advanced Settings.  Вид меню показан на рисунке ниже:

Рис. 19 — Расширенные настройки Wi-Fi (поднимаем мощность)

В данном меню нас интересует единственный пункт TX Power (на рис. 19 он практически в самом низу). По умолчанию в нем после перепрошивки указано значение 71 (мВт). Максимально возможное — 250 мВт. Выставьте, как говорится, «по вкусу». При этом следует учесть пару обстоятельств. Во первых, естественно, чем выше мощность, тем шире зона, в которой виден ваш хотспот (но выше и нагрев устройства). А с другой стороны, например, в Украине, законодательно разрешена эксплуатация Wi-Fi оборудования без дополнительной регистрации только в случае, если его выходная мощность не превышает 100 мВт. Сколько выставить в конечном итоге — решать вам. После того, ка установите выбранное значение, щелкните сначала кнопку Save а затем — кнопку Apply Settings внизу страницы.

С настройками параметров именно Wi-fi  покончено. Теперь я предлагаю настроить возможность доступа к администрированию роутера извне (с WAN стороны). Данное предложение нуждается в пояснении.

Дело в том, что после того, как вы включите в роутере контроллер доступа Chillispot, то при попытке попасть в настройки роутера хотспот будет требовать от вас сначала авторизации именно в хотспоте, а уже потом в самом роутере.  Как один из вариантов решения, можно конечно создать в хотспоте для себя учетную запись. Но с другой стороны, можно просто разрешить доступ извне и управлять настройками роутера практически с любой точки интернета.

Для того, чтобы открыть доступ извне, выполните следующее. В меню выберите Administration, а во второй строке — Management. Откроется следующее меню:

Рис. 20 — Настройка доступа к управлению извне

Обращаю ваше внимание на то, что в данном меню в первую очередь вы сможете в случае необходимости изменить ваши логин и пароль для доступа к администрированию роутера. Эти настройки расположены в самой верхней части экрана в разделе Router Password.

Но для выполнения моей рекомендации по включению доступа извне нас сейчас интересует третий раздел настроек, представленный на данной странице — Remote Access. В этом разделе есть следующие пункты:

  • Web GUI Management — разрешает (Enaled) или запрещает (Disabled) доступ извне к веб интерфейсу конфигурирования роутера. По умолчанию доступ запрещен (Disabled), чтобы включить, нужно установить «птичку» в поле Enaled.
  • Use HTTPS — При установке галочки в данном чекбоксе, доступ к веб интерфейсу будет осуществляться с помощью протокола https, что включит шифрование и повысит безопасность соединения.
  • Web GUI Port — номер порта (в диапазоне от 0 до 65535) на котором будет открыт доступ и запущен веб интерфейс для доступа к настройкам. По умолчанию в поле указано значение 8080. Если он не мешает никаким другим службам, оставьте как есть.
  • SSH Management — разрешает (Enaled) или запрещает (Disabled) доступ извне к SSH консоли роутера. По умолчанию доступ запрещен (Disabled), чтобы включить, нужно установить «птичку» в поле Enaled. Дополнительное примечание по SSH-доступу — по умолчанию данная настройка не активна совсем, так как сразу после установки встроенный в роутер сервер SSH остановлен. Если же вы хотите управлять роутером именно по SSH, то сначала нужно включить (запустить) сам сервер SSH (для этого в меню Services, вторая строка меню — Services, параметр Secure Shell нужно установить как Enaled), а уже потом в этом меню разрешать доступ по SSH извне.
  • Telnet Management — разрешает (Enaled) или запрещает (Disabled) доступ извне к консоли роутера по протоколу telnet. По умолчанию доступ запрещен (Disabled), чтобы включить, нужно установить «птичку» в поле Enaled.
  • Allow Any Remote IP — разрешает (Enaled) или запрещает (Disabled) доступ извне с любого IP-адреса. По умолчанию параметр включен — войти можно с любого адреса. С целью повышения безопасности вы можете ограничить возможность доступа и указать только определенный адрес или диапазон адресов, доступ с которых будет разрешен, а остальным в доступе будет сразу же отказано, даже без проверки логина и пароля. Для этого установите параметр как Disabled, после чего в меню появится следующий параметр:
  • Allowed Remote IP Range — в данном поле вам нужно указать диапазон адресов, с которых разрешен доступ к администрированию роутера (учтите, что эта настройка ограничивает доступ по любому из рассмотренных выше протоколов). В первых четырех полях указывается стартовый адрес диапазона, а в поле to — последний октет  последнего адреса диапазона. Если вы хотите разрешить доступ только с одного единственного адреса, укажите в поле to такое же значение, как и в последнем октете стартового адреса. То есть, для доступа только с адреса 192.168.1.10 укажите значения параметра как 192 / 168 / 1 / 10 to 10.

После того, ка установите выбранные значения для требуемых параметров, щелкните сначала кнопку Save а затем — кнопку Apply Settings внизу страницы.

И вот наконец мы добрались непосредственно до Chillispot.

Первым делом его нужно включить. Для этого в верхней строке меню выбираем пункт Services, а во второй — Hotspot.  Откроется следущее меню:

Рис. 21 — Включение службы Chillispot

В первую очередь в нем  нужно включить Chillispot. Для этого напротив параметра, который именно так и называется (Chillispot), нужно поставить птичку в поле Enaled. Обращаю ваше внимание, что службы Sputnik и Wifidog включать не нужно ни в коем случае (оставьте им значение Disabled). После того, как поставлена «птичка», включающая Chillispot, появляется окно с полями для ввода его параметров.

Рис. 22 — Настройки контроллера доступа Chillispot

Они располагаются на той же странице, но ниже.  Теперь о самих параметрах по порядку.

  • Separate Wifi From LAN Bridge — Позволяет отключить интерфейс Wi-Fi от интерфейса LAN роутера. После этого Wi-Fi-подсеть будет отделена от подсети LAN, что позволит например, офисные компьютеры подключить в гнезда LAN1-LAN4, а на Wi-Fi организовать публичный хотспот и эти подсети будут разделены. Клиенты хотспота не смогут подключиться к компьютерам вашей офисной сети. Единственный нюанс — по сравнению с инструкцией, приведенной в Wiki dd-wrt, мне пришлось изменить значение параметра DHCP Interface, расположенного среди прочих параметров настройки Chillispot. В инструкции предлагают оставить его в значении LAN. Но в таком случае мой роутер поднимал службу Chillispot на гнездах LAN1-LAN4, а при подключении к Wi-Fi ноутбук наотрез оказывался получать какой-бы-то-ни-было  IP-адрес и ходить в интернет. Пришлось зайти в консоль роутера и командой ifconfig посмотреть, у которого из интерфейсов роутера MAC-адрес тот, который в настройках  указан для Wi-Fi интерфейса. Оказалось, что в моем случае это eth1. И вот именно после того, как параметру DHCP Interface был указан именно eth1, роутер наконец-то заработал именно так как и требовалось — на гнездах LAN1-LAN4 осталась сеть офиса, а Wi-Fi начал корректно обслуживать хотспот.
  • Primary Radius Server IP/DNS — IP-адрес (1-го) сервера RADIUS, у которого Chillispot запрашивает данные при авторизации клиентов.  В это поле нужно вписать именно IP-адрес,все мои попытки вписать туде доменное имя сервера RADIUS успехом не увенчались.
  • Backup Radius Server IP/DNS — IP-адрес (2-го) сервера RADIUS. То же самое замечание — никаких доменных имен, только IP-адрес.
  • DNS IP IP-адрес сервера DNS. Укажите IP-адрес сервера DNS той сети, к которой роутер подключен WAN-интерфейсом.
  • Remote Network (192.168.182.0/24) — данный параметр на самом деле определяет параметры подсети для клиентов хотспота (которая вроде как по «нормальной» логике должна была бы называться local, но оставим это на совести авторов прошивки).  При указанном значении, выделенном красным цветом, (а оно является значением по умолчанию) сам Chillispot будет виден клиентам хотспота как шлюз с адресом 192.168.182.1, а самим клиентам при подключении будут предоставляться адреса в диапазоне от 192.168.182.2 до 192.168.182.254. Параметр этот рекомендуется не менять без особой нужды.
  • Redirect URL — полный адрес страницы авторизации UAM (Universal Authorisation Metod). В адресе должен быть указан IP сервера, где располагается страница, а не его доменное имя. В адресе также ОБЯЗАТЕЛЬНО должнен быть указан протокол, по которому происходит бращение к данной странице (http или https). Пример правильной записи адреса страницы авторизации — https://192.168.1.1/cgi-bin/hotspotlogin.cgi. (В данном примере как раз используется https-протокол, что означает использование шифрования во время обмена данными со страницей авторизации и дополнительную защиту от «подслушивания» логина и пароля).
  • Shared Key — пароль, который Chillispot использует при обмене с RADIUS-сервером. Данный параметр определяется настройкой сервера RADIUS. В структуре взаимсвязей хотспота служба Chillispot выступает для сервера RADIUS клиентом, запрашивающим информацию об авторизации. По этому настройки позволяющие различным контроллерам доступа взаимодействовать с RADIUS-ом он хранит у себя в файле  clients.conf. В приведенном далее примере записи файла clients.conf параметр, обозначающий пароль, которым Chillispot будет авторизоваться у сервера RADIUS называется как secret.
  • Radius NAS ID — идентификатор данного контоллера доступа у сервера RADIUS. В приведенном ниже примере записи файла clients.conf аналогичный параметр у сервера RADIUS называется как shortname.
  • UAM secret — пароль, который Chillispot использует в своем обмене данными со страницей авторизаци (hotspotlogin.cgi). В этом поле необхдимо указать такой же самый пароль, как тот, который указан у страницы авторизации. В противном случае при авторизации клиентов хотспота всегда будет происходить отказ в допуске их в интернет. Будьте внимательны при вводе данного пароля.
  • UAM Any DNS — разрешение клиентам хотспота использовать любые сервера DNS, а не те, которые предлагаются самим хотспотом. В некоторых случаях включение этого параметра позволит клиентам избежать некоторых проблем, связанных с необходимостью изменения адресов серверов DNS, настроенных в их компьютерах.
  • UAM allowed — адреса (отдельные или целые подсети), доступ к которым клиентам хотспота разрешен без авторизации.
  • MACauth — разрешает (Enaled) или запрещает (Disabled) автоизацию клиентов по MAC-адресам. Если вы хотите каким-то клиентам разрешить авторизоваться по MAC-адресу, нужно указать их. Однако, ввиду того что MAC-адрес может быть легко подменен (подделан), в целях безопасности не рекомендуется использовать такой метод в публичных хотспотах. Подробнее о механизме авторизации по mac-у в chillispot читайте в заметке «Танцы с перцем!.. Ой, простите, с бубном!..«.

После того, как установите необходимые значения для всех параметров, щелкните сначала кнопку Save а затем — кнопку Apply Settings внизу страницы. На этом настройка роутера D’Link DIR-320 для работы в составе хотспота в режиме контроллера доступа, использующего внешний сервер RADIUS, завершена. После этого роутер рекомендуется перезагрузить аппаратно (выключить из питающей сети, а потом включить снова).

И напоследок, пример записи о контроллере доступа (клиенте) в файле настроек сервера RADIUS (в файле clients.conf):

client 192.168.1.30 {
        secret      = test_pass
        shortname   = hotspot
        nastype     = other
}

….

Дополнительные настройки для возможности приема команды принудительного отключения

Chillispot, как и положено NAS, позволяет принимать от сервера RADIUS команду принудительного отключения клиентов от интернета. Для того,  во первых, нужно указать программе Chillispot слушать команду принудительного отключения на порту 3799, и при этом не проверять IP-адрес приславшего ее сервера.  Для этого нужно добавить дополнительные параметры в настройках Chillispot, как это показано на рисунке ниже:

Рис. 23 — Дополнительные параметры Chillispot для приема команды принудительного отключения

Второе обязательное действие, которое нужно сделать, это добавить правило в файерволе роутера, открывающее этот порт (3799/udp). Для этого сделайте следующее:

Рис. 24 — Открытие 3799/udp порта в файерволе.

 

  1. Откройте в меню Administration вкладку Commands.
  2. В поле Commands введите следующую команду
/usr/sbin/iptables -I INPUT 1 -p udp --dport 3799 -j logaccept
  1. Нажмите кнопку Save Firewall
  2. Перезагрузите роутер

После этого роутер (точнее, программа Chillispot) будет принимать извне команду принудительного отключения клиентов.

Ну, и еще совсем маленькое дополнение. Оно правда нужно чаще тем, кто пытается связать несколько перепрошитых роутеров по WDS и упирается в тот факт, что после перепрошивки у них оказываются одинаковые MAC-адреса.

Смена  MAC-адреса

Если вы хотите сменить MAC-адреса  у вашего роутера, нужно выполнить следующее. Примечание — на мой взгляд, лучше конечно «вернуть» роутеру тот адрес, который у него был с завода, но в принципе, вы можете использовать любой.

  1. Прочитать на днище роутера его заводской MAC-адрес. Например, там указан адрес 00:24:01:B1:51:D2. (В вашем случае, естественно, он будет другим, по этому, в приведенной ниже команде подставьте ваше значение).
  2. Войти в консоль роутера (по ssh, по telnet, без разницы — как вам больше нравится) .
  3. Ввести в консоли одну за другой следующие команды:
nvram set et0macaddr=00:24:01:b1:51:d2
nvram commit
reboot

Роутер перезагрузится. После перезагрузки у него сменятся все три его MAC-адреса — для интерфейсов LAN, WAN и Wi-Fi (о том, по какому принципу — см. ниже).

Как вариант, прошивка dd-wrt позволяет ввести консольные команды не подключаясь к консоли, а непосредственно в веб-интерфейсе. Для этого, вместо того, чтобы подключаться по ssh или telnet, просто откройте в меню выберите Administration, а во второй строке — Commands. Откроется следующее меню:

Рис. 25 — Окно ввода команд

И уже в этом окне в поле «Commands Shell — Commands» введите приведенные выше команды по смене MAC-адреса. Как показано на рис. 25 их можно ввести сразу все три, роутер сам выполнит их последовательно одну за другой. После того, как команды вставлены, нажмите кнопку «Run commands«, расположенную внизу. Опять же, роутер перезагрузится. После перезагрузки у него сменятся все три его MAC-адреса — для интерфейсов LAN, WAN и Wi-Fi как показано на рис. 26 ниже:

Рис. 26 — Окно информации о системе

Как видите, MAC-адрес, указанный нами в команде, достался именно LAN интерфейсу. MAC-адрес на единицу больше (в данном случае 00:24:01:B1:51:D3) был присвоен WAN интерфейсу, и еще на единицу больше (00:24:01:B1:51:D4) — Wi-Fi интерфейсу.

Дополнительные ссылки:

  1. Страница wiki на сайте dd-wrt по поводу настройки Chillispot
  2. Моя статья о настройке контроллера доступа Chillispot на компьютере под управлением ОС Linux
  3. Все мои заметки о хотспотах

Хотспот и с чем его едят…

Данная заметка вряд ли претендует на роль какого бы то ни было how-to. Скорее всего, это еще одна попытка «донести светочь знания» до тех, кто, как говорится в старом анекдоте, «угадал все буквы, но не смог угадать слово». Ну и параллельно, она является описанием тех базовых принципов, на которых построена система предлагаемого мной готового решения для хотспотов.

Итак, вы решили создать хотспот. Как это сделать? На первый взгляд – вариантов море! Но, опустим совсем «ламерский», типа просто повесить открытую точку доступа. Почему «ламерский»? Да потому что, «кормить бесплатным интернетом соседей и шаровиков», действительно неблагодарное занятие! Хотя, конечно – это ваше личное дело. (Но, просто погуглите немного на тему «где есть открытый wi-fi на шару», и смею вас заверить, через время на этих же форумах напишут и о вашей точке доступа!)

Какие еще могут быть варианты организации хотспота? В общем случае, чтобы управлять процессом так сказать «глобально» – есть только один единственный способ – вы включаете между интернетом и клиентами (точкой доступа) некое оборудование, которое впускает в интернет только ваших клиентов, а всевозможных «шаровиков» отсекает. Что это может быть за оборудование? В простейшем случае – это может быть компьютер с двумя сетевыми адаптерами, включенный между клиентами и интернетом (как показано на рис. 1 ниже) и установленным специализированным программным обеспечением (далее – ПО).

Рис. 1 — Компьютер в роли контроллера хотспота

С другой стороны, существуют и специализированные аппаратные решения, например, сервисный Hot spot шлюз DSA-3110 hotspot edition от D-Link. Это далеко не единственный вариант, но сути дела это не меняет – подобные устройства в первую очередь не обладают достаточной гибкостью, а во вторых, цена их, по крайней мере, не ниже, чем цена упоминавшегося ранее компьютера (без ПО). Что же в таком случае может склонить чашу весов в сторону специализированного оборудования? Лишь одно – возможная цена того ПО, которое нужно будет установить на компьютер для выполнения поставленной задачи. Действительно, зачастую суммарная цена ПО, реализующего все необходимые для хотспота функции, и разработанного для установки на компьютер, работающий под управлением ОС Windows, намного превышает стоимость и самого компьютера, и даже стоимость тех специализированных аппаратных решений, которые существуют на рынке. А ведь еще нужно и за сам Windows заплатить! Нет, оно конечно, на просторах «бывшего союза» «бесплатный» Windows найти совсем не проблема. Но только вот, его использование значительно повышает шанс вплотную познакомиться с законодательством о защите авторских прав и его (законодательства) воплощением…

А с другой стороны, ведь существует еще и «мир иной» – так называемые open-source решения. Они не настолько популярны при использовании их в качестве настольных систем, но попробуйте поинтересоваться миром серверов, и окажется, что там они чувствуют себя намного увереннее. И в то же время, очень многие из этих решений абсолютно бесплатны для использования. Так, одно только использование в качестве ОС вместо Windows какого-нибудь дистрибутива Linux позволяет сходу сэкономить уже полторы сотни долларов. Теперь перейдем к специализированному ПО. Пока что я лишь перечислю службы (серверы), используемые хотспотом, а схему их взаимодействия рассмотрим ниже.

Контроллер доступа. Это аппаратное или программное решение, которое либо выпускает пользователя из локальной сети в интернет, либо нет. От аппаратных средств мы уже отказались, а из программных – взор остановился на Chillispot. Бесплатное ПО с открытым исходным кодом, которое может быть установлено практически на любую *nix операционную систему. Выполняет три функции – во первых, для организации локальной сети запускает свой собственный DHCP-сервер, во вторых, служит шлюзом, который выпускает авторизованных клиентов в интернет, а неавторизованных отсылает на страницу авторизации, и в третьих, предоставляет эту самую страницу авторизации. DHCP сервер используется для того, чтобы максимально упростить клиенту задачу подключения к хотспоту. Страница авторизации позволяет клиенту ввести логин и пароль. При этом страница авторизации — это обычная веб-страница, а следовательно, любой клиент хотспота сможет ввести логин и пароль легко и просто, не зависимо от того, какая ОС установлена на его компьютере, и какой он использует браузер!  Ну а шлюз сверяет предоставленные клиентом данные с базой учетных записей хотспота, и, если все верно, выпускает клиента в интернет. Что нужно для работы Chillispot? Во первых, так как страница авторизации – это обычная веб страница, требуется работающий веб сервер. С другой стороны, нужен сервер авторизации и учета, или говоря иными словами, та самая «база учетных записей хотспота».  Тут нам Chillispot, увы, выбора не оставляет – он может работать только с серверами RADIUS. По этому, использование сервера RADIUS нам, как говорится, «предопределено свыше»…

Разновидностей серверов авторизации, аутентификации и учета (RADIUS) существует множество. Но, «так уж сложилось», что из числа бесплатных и с открытым исходным кодом наиболее популярным и распространенным стал FreeRADIUS.  Присутствует в репозиториях (а следовательно – и легко устанавливается) у превеликого множества дистрибутивов ОС Linux. Настройка на корректную работу с конкретными контроллерами доступа осуществляется простым подключением соответствующих файлов т. н. «словарей» (dictionary). Также, сервер легко настраивается на работу с практически любой базой данных SQL, что во первых, рекомендуется сделать для ускорения работы сервера, а во вторых, позволяет легко организовать взаимодействие с практически любым биллингом, который может писать и читать данные в базах данных SQL.

Биллинг. Это и есть как раз та «надводная часть айсберга», которую единственную видит тот, кто управляет хотспотом. И как следствие, считает ее не просто самым главным компонентом хотспота, а непосредственно самим хотспотом… Не буду спорить – биллинг во многом определяет возможности хотспота. Но без правильно настроенной связки «сервер авторизации и учета» – «контроллер доступа» – сам по себе биллинг не решает ничего. О чем это я? Например, для того, чтобы хотспот предоставил клиенту доступ в интернет только на 10 минут, контроллер доступа должен получить соответствующее указание (атрибут). Такое указание ему должен дать сервер авторизации и учета.  Сервер авторизации и учета должен прочитать этот параметр (10-минутный лимит) в базе учетных записей клиентов. А в базу учетных записей этот самый лимит для данного клиента должен прописать биллинг. В итоге, как видим, даже в том случае, когда биллинг все сделает правильно, остаётся еще два компонента, которые могут «не понять» или «не правильно понять» параметр, и в итоге лимит будет проигнорирован. Таким образом, корректная работа хотспота возможна лишь в случае, если все три выше перечисленные системы правильно настроены на взаимную работу.

Вспомогательными службами в данном случае выступают веб-сервер и сервер баз данных. Из числа широко и бесплатно доступных, а также, легко устанавливаемых в любом дистрибутиве Linux были выбраны Apache и MySQL.

Итоговая схема взаимодействия всей системы выглядит следующим образом (щелкните для увеличения):

Рис. 2 — Схема взаимодействия модулей хотспота

Рассмотрим процесс взаимодействия всей системы. Клиент подключается к хотспоту и пытается попасть на какой-то сайт в интернете. Chillispot перехватывает DNS-запрос клиента и проверяет — авторизован ли он. Если клиент не авторизован (не вводил логин и пароль ранее), то он перенаправляется на страницу авторизации (сиреневая стрелка на рис. 2). На странице авторизации клиент вводит выданные ему логин и пароль. Страница авторизации отдает полученные от клиента логин и пароль Chillispot-у (сиреневая стрелка). Chillispot полученные логин и пароль отсылает на проверку серверу авторизации и учета RADIUS (зеленая стрелка). Сервер RADIUS полученные данные (логин и пароль) сверяет с данными, хранящимися в базе учетных записей в сервере MySQL (синяя стрелка). По результатам проверки возможны два варианта. Первый — логин и/или пароль не верны. В этом случае сервер RADIUS отвечает Chillispot-у отказом и последний не пускает клиента в интернет, а снова выводит ему страницу авторизации.

Нас же интересует как раз второй вариант — когда пароль и логин совпадают с данными, присутствующими в базе учетных записей. В таком случае сервер RADIUS не спешит подтверждать авторизацию клиента, а первым делом считывает из базы учетных записей ВСЕ атрибуты, которые там найдет для указанного клиента (поиск идет по логину). Атрибуты эти можно разделить на две группы. К первой относятся атрибуты для проверки — *check. Вторая группа атрибутов — это *reply. Атрибуты первой группы сервер RADIUS хранит в своей базе данных в таблице radcheck, атрибуты второй — в таблице radreply. Если же сервер RADIUS настроен на использование групп, и клиент (логин) принадлежит к какой-либо группе, то тогда сервер RADIUS считает еще и групповые атрибуты для данной группы, которые располагаются соответственно в таблицах radgroupchek и radgroupreply. В итоге, если логин и пароль клиента верны, сервер RADIUS сначала выполняет соответствующие проверки для всех тех атрибутов, которые относятся к группе *check. И только когда эти проверки завершены успешно, клиент имеет право получить доступ в интернет. В этом случае сервер RADIUS отсылает контроллеру доступа Chillispot положительный ответ. И в этот же положительный ответ RADIUS добавляет еще и все те атрибуты, которые были считаны для данного клиента и относятся к группе *reply. Что это за атрибуты такие?

К атрибутам группы *check относятся (для случая работы с контроллером доступа Chillispot) например такие как Max-All-Session или Simultaneous-Use.  Первый из них определяет максимальную суммарную длительность всех сессий клиента в интернете. Или, попросту говоря, это тот лимит времени, по истечении которого клиент будет отключен от интернета. При авторизации клиента сервером RADIUS из таблицы учета radacct извлекаются все записи о предыдущих сессиях клиента, их длительность суммируется и затем проверяется, что полученная сумма не превышает указанный лимит. Если лимит превышен, клиенту будет отказано в доступе в интернет. Второй приведенный для примера параметр определяет число клиентов, подключенных к интернету одновременно с указанными логином и паролем. То есть, допустим, указано для клиента, что аттрибут Simultaneous-Use равен 1. Тогда при авторизации клиента сервер RADIUS проверит — сколько на данный момент уже есть открытых сессий с данным логином. И если одна сессия уже открыта (то есть с указанными логином и паролем уже кто-то вошел в интернет), то второму «претенденту» в доступе будет отказано.

Теперь пару слов об атрибутах группы *reply. Это атрибуты, указывающие контроллеру доступа с какими параметрами подключать клиента к интернету. Типичным примером могут служить аттрибуты WISPr-Bandwidth-Max-Down и  WISPr-Bandwidth-Max-Up. Эти атрибуты ограничивают максимальную скорость передачи данных к и от клиента соответственно (лимит скорости). То есть, если если при авторизации клиента в ответе от сервера RADIUS контроллер доступа Chillispot получил в том числе и указанные атрибуты, то скорость подключения клиента к интернету будет органичена присланными значениями.

Приведенные примеры — это лишь малая часть того, что может быть использовано. С полным списком атрибутов, используемых контроллером доступа Chillispot можно ознакомится по данной ссылке.

Таким образом, как мы видим, от системы требуется следующее:

  • Chillispot корректно настроен на взаимодействие с сервером RADIUS, получает от него атрибуты и управляет подключением клиентов.
  • Сервер RADIUS настроен на использование атрибутов контроллера доступа Chillispot, а также на использование базы учетных записей, хранящихся в сервере MySQL.
  • Биллинг настроен на использование  базы учетных записей, хранящихся в сервере MySQL, и, при создании клиентов корректно вписывает в нее все необходимые атрибуты, используемые контроллером доступа Chillispot и сервером авторизации и учета RADIUS.

К преимуществам такого построения системы можно отнести еще и следующее: данная система может быть легко разделена (разнесена) на несколько узлов. Наиболее логичным выглядит вариант, когда Radius, базы и биллинг расположены на одном сервере (учета), а контроллеры доступа (Chillispot) установлены непосредственно на Wi-Fi роутерах и настроены на использование учетных записей, хранящихся на этом сервере. Такой метод позволит построить систему из нескольких хотспотов (зон), использующих единый биллинг (то есть, много точек, расположенных в самых разных местах, управляемых от одного сервер учета).

Ну и напоследок пару слов про биллинговую программу. Лично для себя я выбрал биллинг Easyhotspot. (Дополнительно почитать о возможностях программы, самостоятельно попробовать поработать в ее демонстрационной версии и т.д. возможно, если перейти по указанной ссылке).

Мои заметки по данной теме еще:

  1. Настойка сервера авторизации и учетаRADIUS на совместную работу с MySQL.
  2. Настройка контроллера доступа Chillispot.
  3. Все мои заметки о хотспотах