Пинг точки доступа, подключенной к Chillispot

В данном случае речь не только и не столько о пинге. Мне нужно было попасть в веб-интерфейс точки доступа, подключенной к серверу хотспота, на котором запущен и настроен Chillispot. Решение оказалось сравнительно простым.

Часть первая — настройка локальной адресации

Согласно документации на Chillispot, сетевая плата, используемая для подключения точки доступа, в настройке не нуждается. То есть, нужно лишь чтобы система опознала плату и присвоила ей номер (например, eth1). После чего сам Chillispot выполняет все необходимые настройки самостоятельно.

Чтобы добраться к точке доступа понадобилось сделать совсем немного.

Во первых, нужно выбрать подсеть, не используемую ни одним из интерфейсов компьютера. Например, у компьютера два интерфейса (сетевых платы). Допустим, плата eth0 используется для подключения к интернету и имеет адрес 192.168.1.2. А второй сетевой адаптер (eth1) используется для организации хотспота — им управляет Chillispot. По умолчанию, Chillispot присвоит этому интерфейсу адрес 192.168.182.1 (если вы не указали иное значение параметра net в его настройках). Выберем адрес, не относящийся ни к одной из двух указанных подсетей (но из диапазона, используемого для локальных сетей), например, 192.168.123.1. Этот адрес я и присвоил сетевой плате eth1 (той, к которой подключена точка доступа). Для этого в консоли от имени root-а я ввел команду:

ifconfig eth1 inet 192.168.123.1 netmask 255.255.255.0

Вторым делом в подготовке нуждается сама точка доступа. Нужно зайти в ее сетевые настройки (LAN) и присвоить ей статическй сетевой адрес, попадающий в диапазон подсети одной с тем адресом, который мы только что присвоили плате eth1. С учетом адреса eth1, выбранного мной выше, точке доступа нужно присвоить адрес в диапазоне от 192.168.123.2 до 192.168.123.254, и лично я, например, установил 192.168.123.5.

На этом подготовка завершена.

Теперь на компьютере, к которому подключена точка доступа, открываете браузер и вводите адрес точки доступа — 192.168.123.5. Откроется веб-интерфейс управления точкой доступа. Все.

Часть вторая — а снаружи?

Собственно, компьютер выступающий в роли сервера хотспота постоянно подключен к интернету. И  далеко не всегда человек, управляющий этим сервером, находится непосредственно перед ним. Он может находиться в другом месте за сотни или тысячи километров, лишь-бы был доступ к интернету. И в этом случае, для того, чтобы попасть в настройки точки доступа, человек этот вынужден сначала дистанционно подключиться к консоли сервера (по ssh), потом в консоли запустить браузер, и если в ssh настроен форвардинг «иксов», то браузер этот «всплывет» на его компьютере (иначе и не скажешь с поправкой на скорость), и уж потом он сможет подключаться к точке доступа. Главное неудобство — очень медленная скорость, вызванная тем, что «иксы» шифруются и заворачиваются в ssh-туннель.

Но что нам мешает настроить систему так, чтобы в веб-интерфейс настройки точки доступа попадать непосредственно из браузера удаленного компьютера, минуя ssh-подключение? Да ничего! Единственный нюанс, обратиться извне мы можем только к адресу самого сервера хотспота. А на нем уже работает apache, и как следствие, 80-й порт занят. Но и веб интерфейс настройки точки доступа также по умолчанию настроен на работу на 80-м порту. По этому, первым делом, нужно перенастроить точку доступа так, чтобы ее веб-интерфейс работал на порту с другим номером. Я у себя установил значение 8080, и именно такое значение и рассматривается в приведенных ниже командах. IP-адреса оставлены те же, что и в первой половине заметки. Если вы захотите использовать иные значения, откорректируйте приведенные команды самостоятельно.

Итак, в файл правил файервола (имеется ввиду файл «стандартных» правил, поставляемых вместе с программой chillispot) потребовалось добавить всего лишь три строки:

$IPTABLES -A FORWARD -i $EXTIF -d 192.168.123.0/24 -p tcp -j ACCEPT 
$IPTABLES -A FORWARD -i $INTIF -p tcp --source 192.168.123.0/24 -j ACCEPT 
$IPTABLES -t nat -I PREROUTING -p tcp -i $EXTIF --dport 8080 -j DNAT --to-destination 192.168.123.5:8080

Первый нюанс — месторасположение добавленных правил в файле. Я их добавил сразу же после команд установки «умолчательных» значений для всех правил, выполняемых в самом начале скрипта. То есть, СРАЗУ ЖЕ ПОСЛЕ СЛЕДУЮЩИХ СТРОК:

$IPTABLES -P INPUT DROP $IPTABLES -P FORWARD ACCEPT $IPTABLES -P OUTPUT ACCEPT

А теперь чуток поподробней о добавленных строках.

  • Первая строка разрешает принимать на внешнем (подключенном к интернету) интерфейсе все пакеты, которые подлежат переадресации в подсеть 192.168.123.0/24. В данном случае, в правиле указана вся подсеть. При  желании, вы можете ограничить правило, указав один-единственный адрес (адрес самой точки доступа), например, 192.168.123.5, или же уменьшить диапазон адресов, изменив маску (точек доступа ведь может быть больше чем одна), например, вот так — 192.168.123.0/29 (кроме адреса самой сети и широковещательного, эта маска дает всего 6 адресов устройств). В принципе, правило может быть ужесточено, например, добавлением ограничения допуска параметром номера(ов) портов, то есть, допустим, принимать только пакеты поступающие на порт 8080, и т.д. Документация по iptables в таком случае — именно то, что вам нужно сесть и прочитать…
  • Вторая строка разрешает отдавать назад во внешний интерфейс пакеты, поступающие из указанной подсети. Все вышесказанное про диапазоны адресов может быть так же применено и здесь с таким же успехом.
  • Ну и третья строка непосредственно включает переадресацию пакетов, поступающих на порт 8080 внешнего интерфейса по следующему адресу — 192.168.123.5:8080 (то есть, на порт 8080 устройства с адресом 192.168.123.5).

Результат таких действий (естественно, после того, как правила будут задействованы) — при обращении в браузере к адресу сервера с указанием выбранного номера порта (то есть, http://your.server.adres:8080/) вы будете попадать непосредственно на веб-интерфейс точки доступа.

А как же быть, если точек больше одной, спросите вы. С учетом того, что внешний интерфейс у сервера хотспота один, придется использовать следующий (другой) номер порта для переадресации. При этом, порт на котором слушает сама точка доступа, можно использовать все тот же 8080. А вот снаружи мы к ней будем добираться уже через порт 8081. В таком случае нужно будет продублировать всего лишь третью строку из числа добавленных и модифицировать ее таким образом (с учетом того, что, допустим, у второй точки доступа ip-адрес будет 192.168.123.7):

$IPTABLES -t nat -I PREROUTING -p tcp -i $EXTIF --dport 8081 -j DNAT --to-destination 192.168.123.7:8080

Вот и все…

«Лето солнечного цвета»…

Таки это было жаркое лето…

По мере усиления жары прошедшим летом, я все отчетливее слышал свой «домашний сервер».  А точнее — его вентилятор, установленный на процессоре. В bios-е комппьютера была включена функции Smart Fan Control, и по мере роста температуры процессора система разгоняла вентилятор все сильнее. И если при скорости вращения ниже 2000 об/мин. его шум был больше похож на низкочастотный гул, то при превышении значения в 2500 об/мин этот шум переходил в весьма занудный вой.

Решено было помочь вентилятору процессора. В корпус (старый ATX) добавилось два 8-сантиметровых вентилятора на заднюю стенку, и еще один 8-сантиметровый вентилятор был установлен на переднюю стенку перед винчестерами, чтобы охлаждать их. Таким образом сквозь корпус был организован дополнительный «сквозняк», и вентилятор процессора подуспокоился. Но три 12-Вольтовых вентилятора, работающие на полных оборотах, тоже шумят прилично. Решил немного подсбросить им обороты. Можно, конечно, было просто подать на вентиляторы 7 Вольт, включив их между шинами 5 и 12 Вольт.  Или же можно было в цепь питания каждого вентилятора поставить ограничительный резистор, чтобы снизить поступающее на него напряжение. Но мне, во первых, захотелось оставить вентиляторы в «нетронутом» состоянии, а во вторых, иметь возможность хоть как-то регулировать их скорость вращения! По этому, за пять минут, как говорится, «на коленке» был спаян простенький регулятор. Схема регулятора приведена на рис. 1 ниже.

Рис. 1 — Принципиальная схема регулятора.

Напряжение 12 Вольт поступает от блока питания компьютера на вход XS1 регулятора. Сам регулирующий элемент выполнен на широко распространенной «трехкопеечной» ИМС LM7805 (КР142ЕН5Б). Отрегулированное напряжение подается на выходной разъем XP1, к которому подключаются вентиляторы. Разъемы XS1 и XP1 использованы типа MOLEX, соответственно «мама» и «папа». Вы спросите: «А как же регулировка, ведь использованная ИМС LM7805 является стабилизатором с фиксированным выходным напряжением 5 Вольт?». Не буду спорить, при использовании, например, микросхемы регулятора LM317 и пары резисторов, один из которых переменный, получился бы плавный регулятор. Но во первых, на момент создания сего «чуда» у меня просто не оказалось ее под рукой, а бежать на радиобазар мне было лень. А во вторых, получившееся у меня в итоге устройство сочетает в себе одновременно и регулировку и индикацию, что на мой взгляд, даже более «интересно».

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

Выбор выходного напряжения из ряда 7, 9 и 11 Вольт осуществляется  переключателем SW1. Например, переключатель установлен в положение «7 Volt». В таком случае вывод GND ИМС LM7805 подключен к «земле» через один светодиод D3 зеленого цвета. К выходному напряжению LM7805 добавляется 2 вольта, и на выход схемы поступает 7 Вольт.  Светодиод D3 горит, индицируя выходное напряжение в 7 Вольт. Теперь установим перелючатель в положение «9 Volt».  При этом микросхема LM7805 будет подключена к «земле» уже через два светодиода — D3 (зеленого цвета) и D2 (желтого цвета). Выходное напряжение LM7805 повышается уже на 4 Вольта, и на выходе схемы будет уже 9 Вольт. Горят уже два светодиода — D3 и D2, индицируя, что выходное напряжение равно 9 Вольт. И наконец рассмотрим, что будет, если перелючатель установить в положение «11 Volt».  Между «землей» и выводом  микросхемы LM7805 теперь уже подключены три светодиода — D3 (зеленого цвета), D2 (желтого цвета) и D1 (красного цвета). Естественно, горят сразу все три светодиода, что означает, что включен режим «11 Вольт». В таком случае выходное напряжение LM7805 должно было бы повыситься уже на 6 Вольт, и составить 11 Вольт. Однако, в том виде как есть, эта схема дает напряжение менее 11 Вольт. Это связано с тем, что на вход схемы от блока питания поступает 12 Вольт, а минимальное падение напряжения на регуляторе LM7805, согласно datasheet-а, составляет 2 Вольта. Таким образом, реально напряжение на выходе регулятора равно не 11, а 10 Вольт. Чтобы избежать этого, в качестве регулятора нужно использовать т.н. «Low Dropout» ИМС.

Ну и напоследок, если у вас есть переключатель на 4 положения, то его  четвертый «неподвижный» контакт можно подключить непосредственно к выводу GND микросхемы LM7805. Тогда в этом положении переключателя напряжение, подаваемое на вентиляторы, составит 5 Вольт, а все светодиоды будут погашены.

Плата для устройства не разрабатывалась, все было выполнено навесным монтажом…