Введение

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

hotspot

Какое программное обеспечение используется в предлагаемом сервере хотспота? В качестве операционной системы сервер хотспота использует ОС Linux (дистрибутивы Ubuntu или Debian на ваш выбор). Данные операционные системы вы можете скачать с официальных сайтов (Ubuntu или Debian) и использовать абсолютно бесплатно. Благодаря этому вы уже начинаете экономить ваши деньги.

А теперь рассмотрим блок-схему взаимодействия всех модулей (служб) системы, участвующих в работе хотспота, представленную ниже:

 hotspot-schema

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

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

Биллинг – это и есть именно та единственная «надводная часть айсберга», которую видит человек, управляющий хотспотом. И как следствие, он считает ее не просто самым главным компонентом хотспота, а непосредственно самим хотспотом. Именно биллинг и определяет возможности хотспота. Его задача – формирование в базе данных сервера RADIUS учетных записей о клиентах. При этом биллинг должен записать в базу RADIUS все необходимые атрибуты клиента, начиная от его логина и пароля, и заканчивая теми, которые определяют те условия и лимиты, на которых клиену будет предоставлен доступ в интернет. Например, можно указать, что хотспот предоставит клиенту доступ в интернет только на 10 минут, либо позволит клиенту получить только 100 Мегабайт информации, либо указать, что скорость, с которой клиент будет получать данные из интернета не должна превышать 512 килобит, либо и то и другое и третье вместе... Эти (равно как и многие другие возможные и/или необходимые) атрибут(ы) сервер авторизации и учета (RADIUS) хранит в учетной записи каждого клиента хотспота, прописывает их туда (в базу) именно биллинг! И эти же самые атрибуты от сервера RADIUS получает контроллер доступа Chillispot в тот момент, когда клиент авторизуется в хотсппоте. Благодаря этому, клиент получает доступ в интернет именно с теми параметрами, которые были ему назначены биллингом. В итоге, как видим, корректная работа хотспота возможна лишь в том случае, если все три вышеперечисленные службы (программы) правильно настроены на взаимную работу друг с другом. В сервере хотспота, который описывается на данном сайте, в качестве биллинга используется модифицированная и переведенная на русский язык версия программы Easyhotspot. Фактически, Easyhotspot является одним из наиболее простых и интуитивно понятных программных продуктов, который позволит управлять не только именно беспроводным хотспотом, но и любой системой доступа в интернет, рассчитанной на работу с сервером RADIUS. Используемая в качестве биллинга предлагаемого хотспота модифицированная и переведенная на русский язык версия программы Easyhotspot в первую очередь отличается повышенной стабильностью работы, и отсутствием проблем (например, с авторизацией), присущих ее исходному англоязычному оригиналу.

Кроме того, как уже было сказано выше, для работы сервера хотспота используются парочка "вспомогательных" серверов (служб) - веб-сервер и сервер баз данных. Первый обслуживает как саму биллинговую программу (ведь Easyhotspot – это веб-приложение), так и страницу авторизации клиентов. Второй хранит все используемые в работе базы данных. Из числа широко известных и доступных бесплатно, а также, легко устанавливаемых практически в любом дистрибутиве Linux, были выбраны веб-сервер Apache и сервер баз данных MySQL.

И напоследок – пару слов о дополнительных преимуществах такого построения системы хотспота. Данная схема, благодаря своей «модульности» может быть легко разделена (разнесена) на несколько узлов (компьютеров). Наиболее логичным выглядит такой вариант «раздела», когда сервер RADIUS, базы и биллинг расположены на одном едином сервере (т.н. «сервере биллинга»), а программные контроллеры доступа Chillispot установлены (да, да, именно так – их может быть не один, а любое необходимое вам количество!!!), например, непосредственно на самих Wi-Fi роутерах и настроены на использование учетных записей, хранящихся на таком вот едином «сервере биллинга». Такой метод позволит построить систему из неограниченного числа хотспотов (территориально разнесенных зон), использующих единый биллинг.