«Деньги, карты, два ствола» (linux, kodi, tv-box)

— Мамо! Купіть мені плєєр!
— Який тобі плєєр, доцю? Ти ще коньків не сточила!..

Прогресс шёл себе, шёл, и дошёл до того, что наиболее универсальный плейер нынче представляет собой … компьютер в том или ином его обличии. А современный медийный контент — это различные файлы (видео/аудио/изображение/прочие), хранящиеся либо на каких-нибудь носителях, либо на серверах, как локальных, так и размещенных где-то в интернете. Миру явили даже такой симбиоз, как Smart-TV — (фактически, обычный) компьютер, который запхнули внутрь телика. Он тебе и в интернет сходит, и музычку проиграет, и киношку покажет, и еще целую кучу других разных дел сделает!

Но так уж вышло, что телик я себе купил … обычный (хорошо, хоть с HDMI-входами!). И это — лишь одна из причин всего того «перфоманса», который описан в этой заметке. Телевизор мой стоит себе на стенке в зале. Рядом разместился AV-ресивер (музыку тоже люблю послушать иногда), колонки, саб, одним словом — «всё пучком». И лишь компьютера там нет! Ну и последний «гвоздь в крышку» — моя домашняя «файлопомойка» (сервер, на котором хранятся все те самые файлы медиа-контента) живет на антресоли, образно говоря, «на другом краю мира» (квартиры). И никаких кабелей между этими локациями не было проложено по определению (ну кто мог себе такое даже представить в конце прошлого века, когда делался ремонт квартиры?!). Ну и последнее — музыку  я люблю «пускать» на ресивер «по цифре», но при этом, из цифровых входов у моего «старичка» имеются лишь S/PDIF и его оптическая разновидность — TOSLINK. А фильмы жена любит смотреть со звуком из телевизора («А чего оно так громко гупает с твоих колонок?»). Ну вот вроде как и закончили с «вводными»…

Итак, первый плейер, на который были возложены обязанности развлекать нас, представлял собой мини-ПК Raspberry-PI, с установленной на нем дополнительной платой PiFi-Digi (цифровые выходы звука S/PDIF и TOSLINK). Вот такая себе «сладкая парочка»:

Ах да, кроме «вышеперечисленных товарищей» в процессе также участвовали:

  • USB-адаптер беспроводной сети Tp-Link TL-WN725N (надо ж было как-то к «файлопомойке» подключаться)
  • Беспроводная «аэро-мышь» i7 Rii mini (в качестве пульта ДУ)

Установленное на «малину» ПО представляло собой (в разное время) различные дистрибутивы Linux, с установленной на них программой медиа-плейера Kodi («в девичестве» называвшейся XBMC, и к которой я за эти годы, можно сказать, «прикипел душой»). И все было бы хорошо, если бы не те самые «НО», которые по определению есть всегда и везде:

  • Компьютер сей особой производительностью не блистал. Это была модель из «более ранних» версий (model B): одно ядро частотой 700 МГц, памяти 512 Мб. Возможно, текущие версии «малины» (например, Raspberry-PI model 3B+) работали бы пошустрей, но тратить деньги на «эксперименты по проверке теорий» абсолютно не хотелось. Кроме того, и плату S/PDIF тоже пришлось бы покупать новую…
  • Дизайн изделия (именно такой, как и показан на фото выше, без корпуса) тоже особо глаз не радовал (не столько мой глаз, сколько жены).
  • Были еще какие-то мелочи, но, видимо, настолько незначительные, что уже и из памяти выветрились.

Железо

Вдруг как-то неожиданно освободился мини-пк, работавший моей домашней «файлопомойкой» (мини-сервером, выполнявшим разные задачи, в том числе и хранения медиа-контента). Вот такой, как показан на картинках ниже (разве что, wi-fi адаптера в моем не было, и как следствие, антенки — тоже):

А главный «сюрприз» ждал меня внутри этого компьютера — при тщательном осмотре его материнской платы на ней было обнаружено место для установки передатчика TOSLINK (оптического варианта S/PDIF). Использованный в компьютере чип аудио-кодека ALC662 от ф. Realtek имеет соответсвующий выход. Последующая проверка цепей показала, что все необходимые подключения и элементы на плате присутствовали, и не хватало лишь самого передатчика! На следующей картинке место для установки TOSLINK видно (в левом нижнем углу платы, пониже светло-зеленого гнезда аналогового аудио-выхода):

Отлично! Передатчик TOTX179 был куплен и распаян на плате, в корпусе мини-пк было «прогрызено» отверстие под него, и новый медиа-плейер был практически готов! Оставалось лишь поставить на него ОС и программу-проигрыватель.

«Муки выбора» (софт)

Глобально «что устанавливать» — вопрос не стоял абсолютно! Все тот же Kodi поверх все того же Linux-а. Ответ на вопрос о том, «какой Linux устанавливать», мне тоже известен уже давно — тот, который знаешь, иначе «танцы с бубном» затянутся надолго! А «знакомы» мне два дистрибутива — Ubuntu и Debian. Вопрос был лишь в том, «что где доступно и почем?». Речь о том, что версии плейера Kodi, включенные в различные дистрибутивы их авторами, во первых, отличаются, а во вторых, не дают «гибкости выбора» (как вы можете увидеть в приведенной ниже таблице, в официальных репозиториях присутствует лишь по одной версии Kodi для каждого из релизов). Но тут мною для Ubuntu были найдены так называемые PPA на сервере launchpad.net, «и всё сразу-же стало на свои места»! 🙂

Ниже приведена таблица, в которой указано, какие версии Kodi доступны в разных версиях Linux-ов (для Ubuntu рассматривались только LTS-релизы). На всякий случай уточню — приведенная в таблице информация была актуальна на момент написания данной заметки.

Дистрибутив Релиз Доступность Kodi в репозиториях
Официальный PPA
Ubuntu 16.04 LTS (Xenial) 15.2 16.1 (kodi-old)
17.6 (stable)
18.0 (unstable)
Ubuntu 18.04 LTS (Bionic) 17.6 17.6 (stable)
18.0 (unstable)
Debian 8 (jessie) 16.1 (backports)
Debian 9 (stretch) 17.1

По итогам «исследований» мною был выбран дистрибутив Ubuntu, и вот почему: использование PPA предоставляло возможность установить 2 или 3 разных версии проигрывателя Kodi, не меняя при этом саму ОС. Причем, в плане самого проигрывателя Kodi мои личные предпочтения склонялись к версиям 16 и 18. Поводом для такого моего выбора послужила опция в настройках звука, которая в 16-й версии Kodi присутствовала, в 17-й версии её убрали, а в 18-й — снова вернули! Речь идет о возможности «задрать» уровень громкости центрального канала, когда плейер выполняет т.н. downmix из многоканального (5.1) звука в двухканальное стерео. Эта штука очень сильно помогает при просмотре на телевизоре (имеющем лишь стерео-динамики) фильмов с такими «качественными» переводами, при которых голоса актеров «озвучки» выведены лишь в центральный канал да еще и со слабым уровнем, в результате чего их очень плохо слышно на фоне «громогласных» звуковых эффектов. А с учетом того, что иногда «задирать центр» приходится аж до уровня в +10…+16 дБ, то лично для себя эту опцию я считаю весьма и весьма полезной! Настройка параметра в 16-й версии Kodi показана на скриншоте:

Релиз Ubuntu мною был выбран такой: 16.04 LTS, и вот почему. Во первых, в нём возможно установить любую из ТРЁХ различных версий проигрывателя Kodi (естественно, речь про установку именно с помощью PPA). А во вторых — настройка сетевых адаптеров в нём осуществляется ещё «по-старому». Не скажу, что я не нашел для 18.04 LTS информацию о том, как в ней вернуться к «старому» ifupdown вместо «нового» netplan, или не нашел, что и как нужно прописать в настройках netplan для запуска моего адаптера TL-WN725N. НО, под управлением netplan он все равно стартовать не захотел, а менять в «новом» дистрибутиве «новый» netplan на «старый» ifupdown я посчитал просто «не красивым». Кстати, в случае использования Network Manager-а всё настраивалось, подключалось и работало на ура, но в том-то и дело, что в мои планы его использование не входило, о причинах чего будет сказано в следующем абзаце…

Дело в том, что для работы Kodi не нужны никакие «графические рабочие столы» (такие как Gnome, KDE, и т.п.). У него есть возможность работать в т.н. «standalone» режиме, для которого — да, нужен X-сервер, но вот desktop-ы всякие там — совсем не обязательны! А за то время, что пользуюсь линуксами разными, я уже успел убедиться, что «графический десктоп» — это самая «прожорливая» часть ПО в данных системах! Поэтому, ставить на свой плейер я режил серверную версию Ubuntu — ту самую, которая совсем без графики! Расчитывая при этом впоследствии «досыпать» поверх «голой консоли» лишь самый необходимый минимум. И вот именно по причине отсутсвия графического десктопа никакой Network Manager моему плейеру просто «не светил»!

Установка ОС

Установка ОС Ubuntu в интернете описана столько раз, что останавливаться на этом не вижу смысла. Пошли на сайт, скачали образ диска (iso-файл), записали его на «болванку» или флешку, загрузились с нее и установили. Единственное, на всякий случай повторюсь — лично себе я устанавливал 64-битную версию server-а Ubuntu 16.04.5 LTS. И еще одна настоятельная рекомендация — устанавливая ОС, не используйте слово «kodi» в качестве логина (юзер с таким именем будет создан позже, при установке программы Kodi).

Настройка беспроводной сети

Считаю нужным уточнить — всю установку и настройку плейера я проводил, подключив его к сети (роутеру) ETHERNET-КАБЕЛЕМ. Связано это с тем, что так БАНАЛЬНО ПРОЩЕ! Не могу сказать, что современные версии Ubuntu «проблемны» в плане поддержки большинства популярных (наиболее массово производимых) Wi-Fi-адаптеров, но сам я никогда не возился с их настройкой именно во время установки ОС. Проще всё проделать, подключившись кабелем. И лишь потом настраивать Wi-Fi (естественно, продолжая «висеть на кабеле», чтоб не отвечать на вопросы типа «А как я могу скачать пакеты, если к интернету не подключен?» 🙂 )…

Должен сделать еще одно краткое отступление. Естественно, описываемые в этой заметке действия проделывались не раз, не два, и не двадцать два. И лишь по итогам всех этих (за)нудных «экспериментов» была написана статья, которая теперь выглядит как «просто раз, два, три…». В ходе этих «экспериментов» действия предпринимались самые разные, и далеко не всегда действительно необходимые. А главное, потом было сложно понять, лучше стало после них, или хуже. Потому что «всё продолжало работать также, как и до того как…».

И вот сейчас речь пойдет именно о таком «сомнительной необходимости» действии — установке «из исходников» драйвера для моего Wi-Fi-адаптера. На всякий случай напомню, мною использовался USB адаптер Tp-Link TL-WN725N с чипом RTL8188EUS от Realtek внутри. Должен сразу же добавить — Ubuntu сама распознает указанный адаптер и сама устанавливает драйвер для него. Но я в эти «дебри» с установкой драйвера «из исходников» полез на том этапе, когда у меня в Ubuntu 18.04 LTS никак не получалось настроить подключение к беспроводной сети в программе netplan (подумал, «А вдруг поможет?»). По факту — не помогло, но инфа осталась, вот и выкладываю ее тут. Итак, чтобы установить драйвер на RTL8188EUS выполните следующее (приведены команды, которые необходимо выполнить в консоли):

  1. Установите необходимые дополнительные пакеты:
sudo apt-get update
sudo apt-get install -y linux-headers-$(uname -r) build-essential git
  1. Скопируйте исходники драйвера:
git clone https://github.com/lwfinger/rtl8188eu
  1. Перейдите в папку с исходниками:
cd rtl8188eu
  1. Выполните сборку и установку драйверов:
make all
sudo make install
  1. Включите использование системой модуля установленного вами драйвера:
sudo insmod 8188eu.ko

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

Непосредственную настройку беспроводного подключения нужно начать с установки необходимых пакетов.

  1. Для этого в консоли введите команды:
sudo apt-get update
sudo apt-get install -y wireless-tools wpasupplicant
  1. Настройте параметры подключения к беспроводной сети (предполагается, что ваша сеть использует WPA-PSK или WPA-PSK2 шифрование). Для этого запустите редактор, указав для редактирования соответсвующий файл настроек:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
  1. Редактор должен сообщить вам, что он открыл [Новый файл]. В файл впишите такие строки:
country=GB
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
   ssid="тут_впишите_SSID_вашей_сети"
   psk="тут_впишите_ключ_шифрования_вашей_сети"
}

Естественно, что SSID и пароль (выделенные выше красным цветом) вы должны указать СВОИ собственные! Двухбуквенный код страны, при желании, также можете указать свой (список кодов можно тут просмотреть в таблице). Правда, я не заметил особой разницы от его смены. Выполнив это, сохраните файл (нажмите F3 и затем подтвердите имя файла для сохранения, нажав Enter) и выйдите из редактора (нажав F2).

  1. И завершающий шаг — настройка сетевых параметров адаптера в файле /etc/network/interfaces. Правда, перед этим вам нужно уточнить какое «имя» система присвоила вашему беспроводному адаптеру. Это можно сделать следующей командой:
iwconfig

В ответ вы должны получить список всех сетевых адаптеров, которые ОС обнаружила в вашем компьютере. Напротив тех  из них, которые не являются беспроводными, будет указано «no wireless extensions». По поводу же того адаптера, который программа опознает как беспроводной, будет указано нечто наподобие такого:

wlx30b5c216a241  unassociated  ESSID:""  Nickname:"<WIFI@REALTEK>"
          Mode:Auto  Frequency=2.412 GHz  Access Point: Not-Associated   
          Sensitivity:0/0  
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

В показанном примере видно, что имя беспроводного сетевого адаптера — wlx30b5c216a241 (выделено мной). Вот именно для него и нужно прописать настройки в файл /etc/network/interfaces. Откройте данный файл в редакторе:

sudo nano /etc/network/interfaces

Впишите в конце файла (не удаляя и не меняя остальные, уже имеющиеся там строки) следующее:

allow-hotplug wlx30b5c216a241
auto wlx30b5c216a241
iface wlx30b5c216a241 inet dhcp
#wireless-power off
	wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Естетсвенно, редактируя файл, «имя» адаптера указывайте то, которое будет использовано в вашей системе.

Вписанные вами в файл команды означают следующее: адаптер допускает «горячее подключение» (1-я строка), должен запускаться «автоматом» при старте системы (2-я строка), получать все настройки (IP-адрес, шлюз, DNS) автоматически, по DHCP-протоколу (3-я строка) и для подключения к беспроводной сети использовать настройки из соответсвующего файла (5-я строка). 4-я строка запрещает управление питанием для данного адаптера (в том смысле, что драйверу адаптера запрещено снижать мощность передатчика Wi-Fi-радиомодуля с целью экономии энергии), но чтобы данная директива начала работать, ее нужно «раскомментировать» (удалить «#» в начале строки).

  1. Сохраните изменения и выйдите из редактора.

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

Установка Kodi

Для установки Kodi на Ubuntu-server нужно выполнить несколько действий, а именно:

  • Добавить PPA репозитория Kodi на сервере launchpad.net;
  • Установить X-server;
  • Установить Kodi;
  • Создать новый Unit для Sysytemd, который будет запускать Kodi как standalone-демон при запуске ОС;
  • Создать новое правило для polkit, которое позволяет неавторизованному пользователю управлять перезагрузкой/выключением системы (это добавит соответсвующие кнопки в меню Kodi);

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

Чтобы воспользоваться данным скриптом и установить Kodi с его помощью, выполните следующее:

  1. Установите необходимый пакет:
sudo apt-get update
sudo apt install git -y
  1. Клонируйте скрипт автора с сайта GitHub на свой компьютер:
git clone https://github.com/abacao/Boot2Kodi.git
  1. Перейдите в папку со скриптом:
cd Boot2Kodi
  1. ВНИМАНИЕ — ЭТО НЕ ОБЯЗАТЕЛЬНЫЙ ШАГ! Так как по умолчанию этот скрипт подключает т.н. «stable»-ветку репозитория Kodi, то в результате его выполнения на компьютер будет установлена текущая «стабильная» версия программы, а именно — 17.6 (учтите, что данная информация была актуальна на момент написания заметки, при выходе новых версий проигрывателя наверняка всё изменится, поэтому, уточните свежую раскладку по версиям на странице проекта на сервере launchpad.net или тут). Если вы хотите установить именно текущую стабильную версию программы Kodi (17-ю), просто пропустите этот шаг и сразу переходите к 5-му пункту! Если же вы хотите установить Kodi версий 16.х (предыдущую) или 18.х («нестабильный» релиз-кандидат), то тогда вам нужно будет выполнить следующее:

Откройте файл скрипта в редакторе:

nano install.sh

Найдите в нем такую строку (где-то в начале файла):

add-apt-repository ppa:team-xbmc/ppa -y

И отредактируйте её. Если вы хотите установить Kodi версии 16.х, измените ее так, чтобы строка стала выглядеть следующим образом:

add-apt-repository ppa:team-xbmc/kodi-old -y

Если же вы хотите установить Kodi версии 18.х, то строку нужно привести к такому виду:

add-apt-repository ppa:team-xbmc/unstable -y

Сохраните изменения и выйдите из редактора.

  1. Запустите скрипт на выполнение:
sudo sh ./install.sh

По окончании работы скрипта программа Kodi будет установлена и запущена.

Звук — донастройка и метод переключения

Как уже было сказано в начале заметки, в моем случае звук проигрывателя должен был выводиться «наружу» двумя различными способами. При просмотре фильмов — по HDMI на телевизор. А при прослушивании музыки — по S/PDIF (TOSLINK) на AV-ресивер. Но тут меня поджидала «засада» — Kodi видела только лишь два выхода (а главное — ни одного из тех, что были нужны мне!):

Причина «фокуса» крылась в программе pulseaudio — это она предоставляла проигрывателю информацию о всего двух возможных способах вывода звука. В случае, если бы на компьютере был установлен какой-нибудь «графический десктоп», в нем присутствовали бы средства для настройки предпочтений из числа ВСЕХ имеющихся в компьютере аудио-устройств. Но увы, в моём распоряжении были сервер и «голая консоль» на нём! Решением оказалось «грохнуть» pulseaudio (и в таком случае Kodi использзовал бы сведения, предоставляемые другой программой аудио — alsa). И как показала дальнейшая проверка — в таком случае список для выбора оказывается гораздо шире:

Естественно, этот вариант устраивал меня намного лучше — в нем были доступны к  выбору нужные мне и HDMI, и S/PDIF!

Интернет предлагал мне вообще полностью удалить программу pulseaudio с компьютера. Но я воспользовался другими найдным советом — просто запретить pulseaudio сканирование аудио-устройств. И этого оказалось достаточно! Чтобы настроить систему таким образом, нужно выполнить следующее:

  1. Откройте в редакторе файл настроек программы pulseaudio:
sudo nano /etc/pulse/client.conf
  1. Найдите в файле такую строку:
; autospawn = yes
  1. Отредактируйте ее так, чтобы она стала выглядеть следующим образом:
 autospawn = no
  1. Сохраните изменения и выйдите из редактора.
  2. Перезагрузите компьютер.

Всё! После перезагрузки в настройках Kodi вы увидите максимально полный перечень устройств для вывода звука, имеющихся в вашем компьютере!

Для переключения вывода звука с одного интерфейса (в моем случае, с HDMI) на другой (S/PDIF) интернет настойчиво предлагал мне установить в программу Kodi дополнительный плагин. И я даже установил его! И даже выполнил весь тот «кордебалет», который нужен был для его настройки! Но скажу честно — это была не совсем тривиальная задача! Нужно было найти специальный xml-файл с настройками интерфейса, найти в нем конкретную запись, отредактировать её, дополнительно добавить туда еще какой-то код, скопировать файлы иконок, и т.д. и т.п… Короче говоря — не понравилось мне все это! И поэтому я свою задачу решил совсем иначе — просто создал в программе Kodi еще один (новый) профиль (пользователя)! В каждом из профилей я настроил свой собственный способ вывода звука (а также, и дополнительные параметры): в одном используется HDMI, в другом — S/PDIF! И теперь в случае необходимости я просто переключаюсь из одного профиля в другой (штатными средствами программы Kodi)! В итоге — никакой мороки с правкой xml-файлов…

Кеширование

100500 раз в интернете читал высказывания о том, что «мультимедиа по Wi-Fi — это плохое решение!». Но кабеля у меня как не было (между «файлопомойкой» и плейером), так и нет по сей день! А «киношку» посмотреть какую-никакую охота все-равно.

Еще во времена, когда плейером трудился старенький Raspberry, я нашел описание и настроил по нему кеширование в программе Kodi. И считаю эту возможность большим плюсом — благодаря ей Kodi старается скачать себе в буфер какой-то объем данных наперед. И благодаря буферизации вопроизведение намного меньше подвержено влиянию качества канала передачи данных, чем в случае, когда кеширование не используется. Например, «среднестатистическую» песню Kodi за пару-тройку секунд скачивает в свой буфер целиком и потом воспроизводит её непосредственно из памяти. Есть ли ему при этом какое-либо дело до нестабильности Wi-Fi, думаю, вы догадаетесь сами…

Чтобы настроить кеширование в программе Kodi нужно создать специальный файл настроек и вписать в него ряд параметров. Учтите, что названия параметров в файле для версии 16.х отличаются от таковых для версий 17.х и 18.х! Поэтому, будьте внимательны, выполняя приведенные ниже инструкции.

Чтобы настроить кеширование, выполните следующее:

  1. Запустите редактор, указав для редактирования соответсвующий файл настроек:
sudo nano /home/kodi/.kodi/userdata/advancedsettings.xml
  1. Редактор должен сообщить вам, что он открыл [Новый файл]. В файл нужно вписать настройки, которые будут определять параметры кеширования. Как уже было сказано выше, для разных версий программы Kodi эти строки должны отличаться:

ЕСЛИ ВЫ НАСТРАИВАЕТЕ ПРОГРАММУ KODI ВЕРСИИ 16.Х, то впишите в файл такие строки:

<advancedsettings>
    <network>
	<cachemembuffersize>268435456</cachemembuffersize>
	<buffermode>1</buffermode>
	<readbufferfactor>6</readbufferfactor>
    </network>
</advancedsettings>

ЕСЛИ ЖЕ ВЫ НАСТРАИВАЕТЕ ПРОГРАММУ KODI ВЕРСИЙ 17.Х или 18.Х, то строки должны быть такие:

<advancedsettings>
    <cache>
	<memorysize>268435456</memorysize>
	<buffermode>1</buffermode>
	<readfactor>6</readfactor>
    </cache>
</advancedsettings>
  1. Сохраните файл и выйдите из редактора.

Изменения вступят в силу после перезапуска Kodi (думаю, проще будет перезагрузить сам компьютер).

Параметров три (их значения выделены красным цветом), и не смотря на отличие имен параметров, определяют они одно и то же: первый указывает размер буфера в байтах (в моём мини-пк установлен модуль памяти объемом 2Гб, так что размер буфера я указал равным 256 Мб, но можно было указать и побольше), второй — опредеяет в каких случаях используется кеширование (вариант 1 означает — для любых протоколов и сетей, как локальных, так и «глобальных»), и третий параметр указывает, во сколько раз быстрее программа должна пытаться считывать данные из источника по сравнению с битрейтом самого медиа-файла. Подробнее прочесть о том, что и как можно настраивать в файле advancedsettings.xml, вы можете в Wiki на сайте Kodi.

И вот теперь действительно ВСЁ!…

Ах да,

…вишенка на торте

Чтобы сделать скриншот, можно обратиться к программе Kodi из браузера с «соседнего» в сети компьютера. Для этого вы дожны выполнить запрос на адрес:

http://адрес_компьютера_с_kodi:8080/jsonrpc?request={"jsonrpc":"2.0","id":1,"method":"Input.ExecuteAction","params":{"action":"screenshot"}}

Пару важных замечаний. Во первых, для того, чтобы это работало, в настройках Kodi нужно «Разрешить удаленное управление по HTTP». Во вторых, при выполнении самого первого скриншота программа попросит вас указать папку, в которую их сохранять. И третье — самое грустное: это работает лишь в версиях 16.х и 17.х…

Настройка PPPoE в Ubuntu, когда ADSL-модем настроен как bridge

Оставим в стороне вопросы типа «А не проще ли было настроить модем роутером и не мучиться?». Так было нужно. Цель — средствами консоли (ну не нравится мне network-manager!!!) настроить PPPoE соединение, автоматически стартующее при загрузке компьютера.

Настройка производилась по статье с сайта официальной документации Ubuntu. Стаья расположена по адресу:

https://help.ubuntu.com/community/ADSLPPPoE

Вводная — модем, как и сказано в заголовке статьи, настроен в режиме bridge, в него вписаны значения VPI и VCI, выданные провайдером. Модем подключен кабелем в сетевую плату eth0 компьютера, на котором установлен дистрибутив Ubuntu desktop 12.04.

Итак, запускаем терминал, и в нем вводим команду:

sudo pppoeconf

Вариантов дальнейшего развития может быть два. Первый — неудовлетворительный: пакет pppoeconf не установлен. В таком случае его можно например, поискать и скачать с сайта пакетов Ubuntu  и установить «руками». Также, пакет может присутствовать на том диске, с которого вы устанавливали Ubuntu. Добавьте его в число источников ПО и затем выполните установку.

Второй вариант — благоприятный, пакет pppoeconf  установлен. В таком случае запустится программа настройки PPPoE подключения. Самый первый скрин работы программы в данной заметке не приведен — в нем программа проводит сканирование сетевых адаптеров на предмет наличия модемов. ВАЖНО: на момент запуска программы модем должен быть (а) включен, (б) подключен к линии и (в) подключен к компьютеру! Иначе, программа сообщит, что модемов не найдено и завершит свою работу.

После того, как модем найден, программа выдаст предупредительное сообщение:

С учетом того, что мы все-таки пришли сюда, чтобы настроить новое (а может быть и перенастроить старое) подключение, СОГЛАШАЕМСЯ — щелкаем «ДА».

Следующее сообщение программы поинтересуется, хотим ли мы использовать некие предлагаемые ей дополнительные опции подключения:

В моем случае (равно как и в 99% остальных), эти дополнительные опции будут вовсе не лишними. Желающие подробнее узнать о сути этих параметров могут (как и предлагается системой) почитать man (8) pppd, ну или ознакомиться с его переводом на русский язык в интернете. Соглашаемся, щелкаем «ДА» и перходим к следующему шагу.

Программа предложит вам ввести имя пользователя:

В этом поле вам нужно ввести тот логин (имя пользователя), который вам выдал провайдер. Будьте внимательны, не допускайте ошибок. Также, дополнительно обращаю внимание ваше внимание на регистр букв, «User» и «user» — это РАЗНЫЕ логины!

Следующий пункт — ввод пароля:

Введите пароль вашей учетной записи, который вам выдал провайдер. Опять же, снова напоминаю и о внимательности, и о регистре букв!

Следующий вопрос — об автоматическом добавлении адресов  DNS-серверов провайдера в список к «уже имеющимся в системе», после того, как устанавливается подключение:

СОГЛАШАЕМСЯ! Без этого мы рискуем получить неработающую систему. (Или вы наизусть помните все IP-адреса интересующих вас серверов? 🙂 )…

Следующее диалоговое окно программы предложит установить для ADSL-подключения  размер MTU равным 1452 байтам:

Тоже соглашаемся. Программа сообщит, что все параметры, необходимые для подключения настроены, и поинтересуется, хотите ли вы, чтобы ADSL-подключение устанавливалось автоматически при загрузке компьютера:

Отвечаем «ДА», но при этом пусть вам «на ум пойдет», что на самом деле этого БЕЗ ДОПОЛНИТЕЛЬНЫХ «телодвижений», увы происходить не будет! Об этом также сказано и в той статье с сайта Ubuntu, ссылку на которую я приводил выше. Переживать не стоит, ниже мы еще «поколдуем», чтобы впоследствии все было ОК.

В следующем окне программа предложит установить соединение прямо сейчас:

Выбираем «ДА»,программа выполнит процедуру подключения. Данное меню также предлагает вам запомнить две команды: pon dsl-provider и poff. Первая из них позволит вам вручную в консоли подключаться к провайдеру. Вторая — отключаться.

Должен дополнительно заметить, что если ранее вы ошиблись при вводе логина и/или пароля, то подключение произойдет как и положено (все будет выглядеть отлично!), но при этом доступ в интернет будет отсутствовать. По крайней мере, у меня именно так и было (я не доглядел в пароле, что одна из букв была введена мной не в том регистре, и в итоге лишние полчаса был вынужден угадывать — «как так, подключение ОК, а интернета нету?!»)…

Последний скрин — сообщение об успешном подключении:

На этом работа программы pppoeconf завершена. С данного скрина вам стоит запомнить команду plog, выводящую лог последнего подключения (надеюсь, команда ifconfig вам итак уже была известна)…

Проверить, что мы успешно подключились, в консоли проще всего такой командой:

ping -c5 google.com

Она позволяет нам сразу увидеть, что все прекрасно — служба DNS определит IP-адрес  для указанного сервера, и начнет пинговать его. Если все Ok, то пинг достигнет цели, и ваш компьютер получит ответы в том же самом количестве.

Автозапуск при загрузке

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

Не «рассусоливая» понапрасну много текста, предлагаю просто выполнить следующее. Отредактируйте файл /etc/network/interfaces. Для этого введите команду:

sudo nano /etc/network/interfaces

И приведите файл к следующему содержанию:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet ppp
pre-up iptables-restore < /etc/network/firewall.rules
pre-up /sbin/ip link set dev eth0 up
post-down /sbin/ip link set dev eth0 down

auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf
provider dsl-provider

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

Обращаю внимание на строку выделенную цветом — это необязательная команда. Она дословно означает следующее: перед тем как запустить интерфейс eth0 программа iptables-restore должна загрузить правила файервола из файла /etc/network/firewall.rules. В вашем случае она может быть и излишней, поэтому можете ее и не вписывать в файл /etc/network/interfaces.

Чтобы выйти из редактора, нажмите Ctrl + X, и в ответ на запрос согласитесь с сохранением изменений.

Перезагрузите ваш компьютер.  Время загрузки увеличится. Сначала система выведет такой скрин:

Потом такой:

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

Ну и напоследок…

Chillispot и PPPoE

Собственно, все эти манипуляции я проделывал на компьютере, который выступал в роли хотспота. И доступ в интернет предоставлял «тот самый» Chillispot.

Нюансов в настройке в таком случае совсем не много. Во первых, в правилах файервола в качестве WAN-интерфейса нужно указать ppp0, вот так (выделено красным):

EXTIF="ppp0"
INTIF="eth1"

А во вторых, на всякий случай, стоит указать в настройках Chillispot-а (файл /etc/chilli.conf) адрес второго сервера DNS таким образом:

dns2 8.8.8.8

Суть данной перестраховки в том, что «может так статься», что на момент запуска Chillispot-а ADSL-соединение еще не будет установлено, и у компьютера еще не будет адреса(ов) сервера(ов) DNS. В итоге, в работе Chillispot могут наблюдаться проблемы. А так, мы принудительно подставляем вторым адрес одного из публичных  DNS серверов Google, который подстрахует, если вдруг будет недоступен DNS сервер провайдера…

Линух, «мускул», Дебет Плюс v12

Действительно, и что тут писать? Там же на сайте «море документации»! Только вот прочтение ее мало приближает к пониманию. Может в этом и есть весь сакральный смысл open-source?…

Итак, прочтение  всего того вороха, что размещен непосредственно на сайте Дебет Плюс, особого «прозрения» не принесло. Какие-то сбивчивые пояснения, обильно перемешанные картинками из виндовса, «дисками C:\ и D:\», обязательными разрешениями открытого беспарольного доступа рута к мускулу с любого компьютера сети, и т.д.

Короче говоря, отстреляться в моем любимом режиме «побороть за 5 минут и забыть» у меня не вышло…

Посему, решил расписать тут процесс этот, может кто потом спасибо скажет…

1.  Вводные

Есть у меня одна организация, активно переходящая на использование линукса. Причина банальна, платить за честный майкрософт они не хотят, а проверки по городу регулярно выискивают — «кто тут снова авторские права злостно нарушает?!». Посему, стоит у них на всех компьютерах Ubuntu, Open Office и т.д. и т.п… И почти все хорошо, но вот понадобилась им программа даже не для бухгалтерии в полном понимании этого слова, а всего лишь для ведения склада. Но такая, чтобы работало в ней несколько человек, на нескольких компьютерах, по сети, из-под под Ubuntu, ну и, естественно, даром…

Первой «подопытной» для демонстрации заказчику мной была выбрана Open ERP. Установка и настройка её — еще та песня, окончательная настройка стабильно работающей системы «сожрала» у меня несколько дней (основная проблема была с установкой и настройкой ее веб-сервера и веб-клиентов), если будет как-нибудь не лень, тоже распишу тут. Но, не понравился заказчику показанный продукт — «очень монстровская программа», «все слишком правильно», «нам бы попроще и подоходчивей», «мы не сможем наших бабушек обучить ей», и т.д. и т.п. И тут «пало око» на Дебет Плюс. Первые ознакомительные потыкивания в установленной на виндовсе версии закончились резолюцией заказчика: «Нормально, чем-то похоже на 1С, если вы утверждаете, что на линуксе оно точно такое же, то нам пойдет».  И вот теперь заказчиком было озвучено желание — «поставьте нам ее такую же, но на линукс и сетевую»…

Я тоже лентяй, разбираться с «клиентами» и «серверами» самого Дебет Плюса не захотел и решил, что «серверность» будем делать банально — через единую базу в MySQL. Вот на этом, собственно, моя вводная и заканчивается…

2. Сервер, подготовка

В данном случае, под «сервером»  я подразумеваю тот компьютер, на котором будет установлен сам сервер MySQL и размещена база «Дебета». Во всем остальном — он мало чем отличается от остальных «соседних» компьютеров. И более того, по «вводной от заказчика» на этом компьютере также будет работать один человек. На всякий случай напоминаю — это компьютер с установленной на нем ОС Ubuntu-desktop (кстати, оказывается в Украине на бубунту какой-то шустрый киевский предприниматель продает предприятиям сертификаты, я выпал!!!). Сама версия дистрибутива выбиралась мной, и я установил 10.04 LTS только потому, что  LTS  — это дистрибутив «с длительной поддержкой» (лениво мне каждые полгода с новыми багами разбираться)…

Для начала нужен сам сервер MySQL. Способов установить его — в интернете описано превеликое множество. Единственная моя «отсебятина», заключается в том, что я иногда люблю заглядывать в базы с помощью PhpMyAdmin (хотя стартовые действия — создание баз, импорт дампов, назначение привилегий — предпочитаю делать в консоли мускульного клиента — как-то и быстрей и понятней получается). Поэтому, (с поправкой на желание PhpMyAdmin-а) я сходу установил на «сервер» LAMP. Как я обычно это делаю, уже описано мной ранее в заметке Зажигаем «LAMP-очку». Дублировать тут ее смысла не вижу абсолютно — просто кликните по ссылке и прочтите…

3. Импорт дампа базы данных

После того, как сервер MySQL установлен и работает, наступило время вкинуть в него базу для Дебет Плюс. Для этого в первую очередь понадобится сам  Дебет Плюс. Идем на сайт программы в раздел «Скачать» и качаем версию для линукса.

http://www.debet.kiev.ua/download-program

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

Итак, после того как архив был распакован, в домашней папке пользователя появилась папка DebetPlusV12. Переходим в папку, в которой расположен дамп базы данных (в консоли (терминале) вводим команду):

cd ~/DebetPlusV12/base/org2

(В данном случае «~» обозначает как раз домашнюю папку пользователя, вместо нее можно еще указать $HOME. )

В обозначенной папке убеждаемся в том, что в ней присутствует файл dpbase.arh (это и есть искомый дамп базы данных программы Дебет Плюс!). Если файл присутсвует, идем в консоль сервера MySQL, для этого вводим команду:

mysql -uroot -p

..и в ответ на запрос вводим пароль root-а (для сервера MySQL). После того, как попали в консоль MySQL, вводим команду для импорта дампа:

source dpbase.arh;

(данная команда приведена с учетом того, что мы перед входом в консоль мускула находились ИМЕННО в той самой папке, где располагался сам файл дампа dpbase.arh, иначе — в команде нужно прописать полный путь к файлу dpbase.arh, например, /home/dmitry/DebetPlusV12/base/org2/dpbase.arh). Дополнительно обращаю внимание, что предварительно саму базу мы не создаем — команда на ее создание уже присутсвует в дампе. Там же, в дампе, указано и то имя, с которым новая база будет создана — dpbase.

В результате процедуры импорта на сервере MySQL будет создана новая база — dpbase и в ней — (примерно) 1000 таблиц. Однако, программе Дебет Плюс для работы нужна ЕЩЕ ОДНА база (уж зачем она ей нужна — я не разбирался, но без нее, увы никак!). Имя этой базы dpadmin. Поэтому, создаем сразу же и ее:

CREATE DATABASE `dpadmin` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 

Импортировать в эту базу ничего не нужно, программе достаточен сам факт ее существования. После того, как в сервере MySQL будут присутствовать обе требующиеся для работы программы базы, им нужно назначить владельцев, и предоставить им права. Для этого вводим две  комманды (баз-то две):

GRANT ALL PRIVILEGES ON dpadmin.* TO "DPADMIN"@"%" IDENTIFIED BY "password" WITH GRANT OPTION; 
GRANT ALL PRIVILEGES ON dpbase.* TO "DPADMIN"@"%" IDENTIFIED BY "password" WITH GRANT OPTION; 

Как видите, в данных командах мы для двух баз (dpadmin и dpbase) назначаем владельцем пользователя (DPADMIN), который будет подключаться с помощью пароля password (причем в данном случае указанное в примере слово «password» — это ИМЕННО ЗНАЧЕНИЕ пароля, поставьте свое собственное, выполняя данные инструкции), и получать при этом полный доступ. Имя пользователя — DPADMIN, причем, именно так — БОЛЬШИМИ буквами, это имя, прописанное по умолчанию в программе Дебет плюс.  И именно с этим именем по умолчанию программа будет пытаться подключаться. Вместо адреса сервера, с которого пользователь DPADMIN будет подключаться к серверу баз данных в команде указано «%» — то есть, с любого адреса. Желающие повысить безопасность могут прописать конкретные адреса, или диапазоны адресов…

Все, базы готовы, консоль мускула нам больше ни к чему, выходим из нее командой quit или exit — кому как больше нравится…

4. Непосредственно сама программа

Тут действительно, практически все уже готово (с учетом того, что ранее программу мы уже разархивировали), и ее нужно просто запустить. Для этого вводим в консоли команду

~/DebetPlusV12/DebetPlus

Программа стартует, причем, полностью готовая к работе, как говорится «из коробки»! Спрашивается, а зачем тогда весь этот талмуд, если ее надо было просто запустить?… Отвечаю — ведь мы ж хотели «сетевую», а если «вот так просто стартануть» — то программа работает с локальной Derby-базой. То есть — пока еще не спешим пользоваться программой — сначала ее нужно перенастроить на использование базы, лежащей в сервере MySQL, и уж тогда будет нам «счастье сетевое»!…

По этому, последний шаг:

5. Настройка на использование базы MySQL

В этой части инструкции я покажу скриншоты, сделанные уже на «внешнем» рабочем месте — стоящем по соседству в сети компьютере. Причем, так уж вышло, что скриншоты делались на компьютере с ОС Windows, но в случае использования ОС Linux все настройки будут происходить точно также.

После того, как программа запустилась, выполняем следующее:

Рис. 1 — Выбираем добавление базы данных

То есть, в Правой части в меню выбираем закладку «Дебет Плюс»,  правой кнопкой мыши щелкаем на пункте «База DERBY» и в контекстном меню выбираем пункт «Добавить новую».

В открывшемся меню:

Рис. 2 — Выбираем добавление уже существующей базы данных

 

…выбираем пункт «Добавить в список существующую».

Откроется вот такое меню настройки параметров базы:

Рис. 3 — Настройки параметров базы данных

В этом меню нам предстоит выполнить ряд действий.

  1. Введите произвольное имя для данного подключения к базе. То есть, это просто то имя, под которым данное подключение к базе будет фигурировать в настройках программы Дебет Плюс. Причем, как показывают и используемое по умолчанию в программе имя «База DERBY», и официальная дока с сайта программы, здесь вы вольны использовать в том числе и кирилицу (правда, лично я не люблю этого, и посему назвал подключение не мудрствуя лукаво — mysql).
  2. Щелкните на стрелку и в выпадающем вписке выберите пункт «MySQL» (надеюсь, вы еще помните в каком сервера баз данных мы создавали нашу базу 🙂 )..
  3. Адрес (сетевой) того компьютера, на котором расположен сервер баз данных MySQL, в котором размещена интересующая нас база программы Дебет Плюс.  В данном случае на скриншоте показан IP-адрес сервера.  Если у вас в сети есть и используется локальный сервер DNS, который для локальных компьютеров хранит имена, можете указать вместо IP-адреса сетевое имя. Ну и напоследок, для случая, когда Дебет плюс запускается на том же компьютере, где расположена и сама база, вполне логичным будет указать в этом поле значение localhost (естественно, что «таких» компьютеров в «сетевой» инсталяции м.б. всего один 🙂 ).
  4. Номер порта. По умолчанию MySQL слушает подключения на порту 3306. Если вы не меняли это значение в настройках сервера MySQL (или даже не знаете, о чем идет речь), остатвьте как есть — 3306. Если меняли — смените и тут… Имя базы. При импорте дампа базы (как было описано выше) мы «автоматом» получаем, что создаваемая для «Дебет Плюс» база будет иметь имя dpbase (оно жестко прописано в файле дампа dpbase.arh, и его смена предполагает ручное редактирование файла dpbase.arh перед импортом). Если вы «ничего такого не делали», оставьте как есть — dpbase.
  5. В поле «Использовать авторизацию Дебет Плюс» мы птичку ставим для того, чтобы избежать необходимости при каждом запуске программы вручную вводить пароль, с которым Дебет Плюс подключается к базе данных. (Заказчик очень просил — «Не мучайте наших бабушек! Не надо, чтобы они еще и пароли запоминали!»).  Если же вы приверженец того, чтобы в целях безопасности пользователь все-таки вводил пароль вручную — не ставьте эту «птичку»!
  6. В поле «Настройки в базе данных» ОБЯЗАТЕЛЬНО ставьте «птичку»! Для сетевой работы — это необходимо. Иначе, при работе с сетевой базой данных Дебет Плюс будет постояннно пытаться искать «какие-то» настройки в своих локальных папках, находить их там естественно не будет, и вместо нормальной работы вы будете просто читать кучи сообщений об ошибках…
  7. Когда все выполнено, нажмите кнопку «Готово». Новое подключение (база данных) появится в списке рядом с пунктом «База DERBY».

Теперь нам нужно задействовать (активировать) эту самую новую (сетевую) базу данных, хранящуюся в сервере MySQL. Для этого выполните следующее:

Рис. 4 — Активация нового подключения к базе

То есть, просто щелкните на ней правой кнопкой мыши, и в меню выберите пункт «Сделать активной».  В ответ на это вы получите два сообщения.

Первое — это сообщение об ошибке:

Рис. 5 — Сообщение о невозможности подключиться к базе данных

… которое гласит о том, что программа не смогла подключиться к базе данных. Не пугайтесь. Причина его в том, что, во-первых, ранее вы поставили птичку в поле «Использовать авторизацию Дебет Плюс» (см. рис. 3 выше), во вторых, назначая права пользователей базы (см раздел «3. Импорт дампа базы данных» выше), вы указали использовать пароль (password), и в третьих, самой программе «Дебет Плюс» об этом пока что ничего не известно — ни о факте использования пароля, ни его (пароля) значение. По этому, программа и пытается подключиться к базе с пустым паролем. На что сервер MySQL ей вполне естественно и отвечает, что мол, «низзя сюды без паролю-то!»… Не огорчайтесь, все будет хорошо, нас же просили «не мучать бабушек»…

Второе сообщение — это как раз приглашение ввести пароль:

Рис. 6 — Ввод пароля для подключения к базе

Вводим тот самый пароль, который указали во время процедуры назначения прав на базы данных — «password» (надеюсь, вы ж его сменили на какой-то другой, свой собственный? 😉 ).

После того, как пароль принят, вы можете приступать к работе непосрадственно в программе Дебет Плюс! (И кстати, на этом этапе, при желании, можно уже и удалить не используемую теперь «Базу DERBY»).

Однако, условие «не мучать бабушек» все еще не выполнено: если на данном этапе оставить все как есть, окно с предложением ввести пароль, показанное на рис. 6 выше, будет выпрыгивать при каждом запуске программы. По этому, будем настраивать дальше…

Выполните следующее:

Рис. 7 — Вход в меню «Администрирование»

То есть,  щелкните сначала «Администрирование» в списке на закладке «Дебет плюс», а потом просто на самой вкладке «Администрирование» вверху.

В открывшейся вкладке нас интересует пункт Пользователи.

Рис. 8 — Выбираем меню «Пользователи»

Вот его и щелкнем. Откроется меню настройки пользователей программы:

Рис. 9 — Меню настроек пользователя

В нем выполните следующее:

  1. «Щелкните плюсик», чтобы открыть список пользователей.
  2. В списке будет всего один пользователь — DPADMIN. Вот его и выберите. Кстати, вот мы добрались до того, и с каким именем программа «ходит» в базу данных,  и почему оно набрано большими буквами… Кстати, желающие могут сменить, но учтите, что менять придется и в сервере MySQL (см. выше про назначение прав).
  3. Но мы сюда пришли с единственной целью — сменить пароль, с которым программа пытается подключаться к базе.  Поэтому, ставим «птичку» в поле «Сменить пароль».
  4. После этого у вас появится возможность ввода в поле «Пароль для пподключения к БД». Вводим туда то самое «password» (или какое там вы указали у себя) значение пароля.
  5. Щедлкаем кнопку «Сохранить». При этом пропадут и «звезды» в поле пароля, и «птица» в поле «Сменить пароль». Не переживайте — дело уже сделано, программа запомнила новый пароль.
  6. Щелкаем кнопку Закрыть» и выходи из меню.

ВСЁ!

Для проверки — выйдите из программы Дебет Плюс. А потом запустите ее снова. Вы должны попасть в программу без ввода каких бы то ни было дополнительных паролей, по умолчанию должна быть выбрана база MySQL, и все должно прекрасно работать.

Вот теперь, на мой взгляд, наконец-то это похоже на иструкцию по запуску программы за пять минут!!! 😉

Ах, да! Чуть не забыл…

6. Важное замечание по серверу MySQL

По умолчанию, обычно, сразу после установки сервера MySQL, доступ извне (из сети) к нему ограничен! За это отвечает обычно специальная настройка в файле my.ini. Зачастую (раньше) использовался специальный параметр — skip-networking. Если он активирован в файле настроек, право подключения к серверу дается лишь запросам, поступающим с адреса localhost. В таком случае, наши сетевые клиенты не смогут работать.  Чтобы все было хорошо, указанную строку нужно закомментировать.

Однако, в Ubuntu последнее время вместо параметра skip-networking используется другой — bind-address =127.0.0.1. Он также не позволяет подключаться к серверу никому, кроме localhost-а. По этому, его как и рассматривавшийся выше параметр skip-networking тоже нужно закомментировать.

После того, как данное ограничение в настройках сервера будет исправлено, сервер MySQL нужно перезапустить.

И вот теперь ваша сетевая версия Дебет Плюс будет прекрасно работать…

Успехов!

Ubuntu — запускаем 3G модем в консоли

Цель данной записи — показать, как в консоли найти, настроить и запустить USB модем для сетей 3G.

В качестве подопытных кроликов выступали модем ZTE MF-170 и дистрибутив Ubuntu 9.04:

dmitry@hotspot-server:/etc$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=9.04
DISTRIB_CODENAME=jaunty
DISTRIB_DESCRIPTION="Ubuntu 9.04"

(о причинах выбора столь «несвежей» версии дистрибутива я скажу ниже…)

Что крайне полезно знать про модем — какие значения vid (Vendor ID — код изготовителя) и pid (Product ID — код устройства) он принимает, когда работает в качестве модема (посмотреть их можно как на «соседнем» компьютере с Windows, так и просто нагуглить за пару минут). Для использованного мной модема значения были такие vid равен 19d2 и pid равен 0031.

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

Итак, поехали…

Часть первая — ищем сам модем!

Много современных USB-модемов для 3G сетей являются «составным USB-устройством». То есть, в таком многофункциональном «USB-свистке» присутствует как сам модем, так и виртуальный компакт-диск с драйверами и ПО, плюс, у ряда моделей — картридер, а также служебный интерфейс, который нас в данном случае не интересует вовсе. При подключении такого модема к компьютеру с Linux-ом, система изначально видит устройство, но увы, совсем не то, которое нас интересует, а именно — тот самый виртуальный CDROM. То есть, подключаем модем к компьютеру и вводим команду:

dmitry@hotspot-server:~$ lsusb
Bus 001 Device 002: ID 19d2:2000
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Как показано выше, в ответ на наш запрос система выдала список обнаруженных ей USB устройств с их идентификаторами. В ответе я выделил идентификатор только что подключенного мной модема. Красным он выделен потому, что это идентификатор не модемной части, а виртуального CDROM-а. То есть, нам нужно что-то сделать с этим устройством, чтобы оно переключилось из CDROM-а в модем.

Програмное решение для этой цели уже давно существует. Оно называется usb-modeswitch, и на сегодняшний день включено в большинство современных дистрибутивов Linux. И вот теперь, я вернусь к тому, почему был выбран такой старый дистрибутив — в дистрибутиве Ubuntu 9.04 пакет usb-modeswitch отсутствует (причем не только в числе пакетов, устанавливаемых по умолчанию, но и в репозитории). Не верите? Смотрие:

dmitry@hotspot-server:/usr/src/usb$ sudo apt-get install usb-modeswitch
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
E: Не удалось найти пакет usb-modeswitch

Очень жаль, ибо без него нам никак!

ВНИМАНИЕ: Еще раз повторюсь — речь идет именно про дистрибутив Ubuntu 9.04 (и возможно, более старые версии, но я не проверял)! Если же у вас дистрибутив Ubuntu 9.10 и новее, то описанные ниже действия по ручному скачиванию пакетов и ручной же их установке вам не нужны. Достаточно установить пакет usb-modeswitch (если он не был установлен ранее) командой, приведенной выше!

Чтож, пойдем «в обход». Поищем пакет на сервере Ubuntu — http://packages.ubuntu.com/search?keywords=usb-modeswitch. Результаты поиска показывают, что он там присутствует для версий, начиная с 9.10. Я решил взять тот, что предназначался для релиза maverick (просто версию мне захотелось посвежей — 1.1.4).

Ну, решил, так решил. Приступаем. Для начала создаем временный каталог, в который скачаем deb-пакеты для установки. Потом назначаем себя владельцем данного каталоги, и наконец переходим в него. Все это выполняют три приведенные ниже команды (с учетом того, что я в системе — пользователь dmitry):

dmitry@hotspot-server:~$ sudo mkdir /usr/src/usb
dmitry@hotspot-server:~$ sudo chown dmitry:dmitry /usr/src/usb
dmitry@hotspot-server:~$ cd /usr/src/usb

«Сакральный» смысл этого процесса заключается в том, что нам нужно скачать и установить ДВА пакета — сам usb-modeswitch (это именно программа) и usb-modeswitch-data (в этом пакете находится «база устройств» которые знает и умеет переключать программа). Проще всего установить их одновременно, одной командой, когда они расположены в одной отдельной (можно временной) папке…

После того, как каталог создан, права назначены и мы в него перешли, начинаем качать требующиеся пакеты. Первым — usb-modeswitch (хотя, ничто не мешает поменять порядко на обратный):

dmitry@hotspot-server:/usr/src/usb$ wget http://ie.archive.ubuntu.com/ubuntu/pool/main/u/usb-modeswitch/usb-modeswitch_1.1.4-1_i386.deb
--2011-01-12 14:18:54--  http://ie.archive.ubuntu.com/ubuntu/pool/main/u/usb-modeswitch/usb-modeswitch_1.1.4-1_i386.deb
Преобразование адреса ie.archive.ubuntu.com... 193.1.193.69
Устанавливается соединение с ie.archive.ubuntu.com|193.1.193.69|:80... соединились.
Запрос HTTP послан, ожидание ответа... 200 OK
Длина: 45668 (45K) [application/x-debian-package]
Сохраняется в каталог: `usb-modeswitch_1.1.4-1_i386.deb'.

100%[==============================================================================================================================>] 45.668      63,1K/s   в 0,7s

2011-01-12 14:18:55 (63,1 KB/s) - `usb-modeswitch_1.1.4-1_i386.deb' сохранён [45668/45668]

И сразу же вдогонку — второй пакет:

dmitry@hotspot-server:/usr/src/usb$ wget http://ie.archive.ubuntu.com/ubuntu/pool/main/u/usb-modeswitch-data/usb-modeswitch-data_20100826-1_all.deb
--2011-01-12 14:19:58--  http://ie.archive.ubuntu.com/ubuntu/pool/main/u/usb-modeswitch-data/usb-modeswitch-data_20100826-1_all.deb
Преобразование адреса ie.archive.ubuntu.com... 193.1.193.69
Устанавливается соединение с ie.archive.ubuntu.com|193.1.193.69|:80... соединились.
Запрос HTTP послан, ожидание ответа... 200 OK
Длина: 17214 (17K) [application/x-debian-package]
Сохраняется в каталог: `usb-modeswitch-data_20100826-1_all.deb'.

100%[==============================================================================================================================>] 17.214      20,7K/s   в 0,8s

2011-01-12 14:20:00 (20,7 KB/s) - `usb-modeswitch-data_20100826-1_all.deb' сохранён [17214/17214]

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

dmitry@hotspot-server:/usr/src/usb$ sudo apt-get install tcl8.3 tcl8.4 tcl8.5
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Предлагаемые пакеты:
  tclreadline
НОВЫЕ пакеты, которые будут установлены:
  tcl8.3 tcl8.4 tcl8.5
обновлено 0, установлено 3 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 3618kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 10,6MB.
Получено:1 http://archive.ubuntu.com jaunty/main tcl8.5 8.5.6-3 [1544kB]
Получено:2 http://archive.ubuntu.com jaunty/main tcl8.4 8.4.19-2 [1178kB]
Получено:3 http://archive.ubuntu.com jaunty/main tcl8.3 8.3.5-13 [896kB]
Получено 3618kБ за 35с (103kБ/c)
Выбор ранее не выбранного пакета tcl8.5.
(Чтение базы данных... на данный момент установлено 26376 файлов и каталогов.)
Распаковывается пакет tcl8.5 (из файла .../tcl8.5_8.5.6-3_i386.deb)...
Выбор ранее не выбранного пакета tcl8.4.
Распаковывается пакет tcl8.4 (из файла .../tcl8.4_8.4.19-2_i386.deb)...
Выбор ранее не выбранного пакета tcl8.3.
Распаковывается пакет tcl8.3 (из файла .../tcl8.3_8.3.5-13_i386.deb)...
Обрабатываются триггеры для man-db ...
Настраивается пакет tcl8.5 (8.5.6-3) ...

Настраивается пакет tcl8.4 (8.4.19-2) ...

Настраивается пакет tcl8.3 (8.3.5-13) ...
Обрабатываются триггеры для libc6 ...

После того, как скачали, на всякий случай проверяем, что в той папке, в которой мы находимся в текущий момент, присутствуют два deb-пакета, которые мы собрались устанавливать:

dmitry@hotspot-server:/usr/src/usb$ ls
usb-modeswitch_1.1.4-1_i386.deb  usb-modeswitch-data_20100826-1_all.deb

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

dmitry@hotspot-server:/usr/src/usb$ sudo dpkg -i *
Выбор ранее не выбранного пакета usb-modeswitch.
(Чтение базы данных... на данный момент установлено 26845 файлов и каталогов.)
Распаковывается пакет usb-modeswitch (из файла usb-modeswitch_1.1.4-1_i386.deb)...
Выбор ранее не выбранного пакета usb-modeswitch-data.
Распаковывается пакет usb-modeswitch-data (из файла usb-modeswitch-data_20100826-1_all.deb)...
Настраивается пакет usb-modeswitch-data (20100826-1) ...
Настраивается пакет usb-modeswitch (1.1.4-1) ...
Обрабатываются триггеры для man-db ...

Всё, теперь пакеты usb-modeswitch и usb-modeswitch-data установлены! Можем их использовать.

Пару слов о программе usb-modeswitch, и том, что она выполняет. Работу программы определяет ее файл конфигурации. Точнее сказать, у программы usb-modeswitch есть «глобальный» файл конфигурации /etc/usb_modeswitch.conf (который НЕ НУЖНО ТРОГАТЬ) и файл конфигурации под конкретное устройство. Файл конфигурации УСТРОЙСТВА обычно содержит всего несколько параметров — «стартовый» идентификатор (vid:pid) устройства, «целевой» идентификатор, и сообщение или сообщения, посылаемые устройству, чтобы оно переключалось из одного состояния в другое. То есть, вернемся к тому, с чего начали. Мы подключили модем к компьютеру. Система увидела его как CDROM с идентификатором 19d2:2000. Это и есть «стартовый» идентификатор. Нам же нужно, чтобы устройство переключилось в модем с идентификатором 19d2:0031 («целевой» идентификатор). Для этого программа usb-modeswitch сначала находит (убеждается, что в системе есть) устройство со «стартовым» идентификатором, а затем посылает нашему «USB-свистку» сообщения (Message), приведенные в файле конфигурации, до тех пор, пока тот не ответит «целевым» идентификатором.

Тепрерь пару слов о том, как выбрать этот самый файл конфигурации устройства. Точнее — из чего выбрать. Фактически, некоторое количество файлов (база известных программе устройств) лежит в папке /etc/usb_modeswitch.d. Для простоты выбора файлы поименованы… «стартовыми идентификаторами». То есть, применительно к моему случаю — «стартовый идентификатор» использованного мной модема — 19d2:2000, и именно с таким именем файл мне и нужно найти в указанной папке. Проверка показала — есть такой файл.

Чтож, запускаем программу и указываем ей в командной строке какой файл конфигурации устройства использовать:

dmitry@hotspot-server:/usr/src/usb$ sudo usb_modeswitch -c /etc/usb_modeswitch.d/19d2:2000
Warning: TargetProductList overrides TargetProduct!

Looking for target devices ...
 No devices in target mode or class found
Looking for default devices ...
 Found devices in default mode or class (1)
Accessing device 002 on bus 001 ...
Using endpoints 0x01 (out) and 0x81 (in)
Using endpoints 0x01 (out) and 0x81 (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
 No driver found. Either detached before or never attached

SCSI inquiry data (for identification)
-------------------------
  Vendor String: ZTE
   Model String: USB SCSI CD-ROM
Revision String: 2.31
-------------------------

USB description data (for identification)
-------------------------
Manufacturer: ZTE,Incorporated
     Product: ZTE WCDMA Technologies MSM
  Serial No.: P679M1KVSD010000
-------------------------
Setting up communication with interface 0 ...
Using endpoint 0x01 for message sending ...
Trying to send message 1 to endpoint 0x01 ...
 OK, message successfully sent
Reading the response to the message (CSW) ...
 OK, response successfully read (13 bytes).
Trying to send message 2 to endpoint 0x01 ...
 OK, message successfully sent
Reading the response to message 2 ...
 OK, response successfully read (13 bytes).
Trying to send message 3 to endpoint 0x01 ...
 OK, message successfully sent
Reading the response to message 3 ...
 OK, response successfully read (0 bytes).
Resetting response endpoint 0x81
Resetting message endpoint 0x01

Checking for mode switch (max. 20 times, once per second) ...
 Waiting for original device to vanish ...
 Waiting for original device to vanish ...
 Waiting for original device to vanish ...
 Original device can't be accessed anymore. Good.
 Searching for target devices ...
 Searching for target devices ...
 Searching for target devices ...
 Searching for target devices ...
 Searching for target devices ...
 Searching for target devices ...
 Searching for target devices ...
 Searching for target devices ...
 Found correct target device

Mode switch succeeded. Bye.

Как видим, переключение прошло успешно. Посмотрим теперь, какие USB-устройства есть в системе:

dmitry@hotspot-server:/usr/src/usb$ lsusb
Bus 001 Device 003: ID 19d2:0031
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Как видим, устройство с требовавшимся нам идентификатором (19d2:0031) в системе появилось! А теперь посмотрим — есть ли в системе USB-модемы:

dmitry@hotspot-server:/usr/src/usb$ ls /dev/ttyUSB*
/dev/ttyUSB0  /dev/ttyUSB1  /dev/ttyUSB2

Отлично! В системе наблюдается USB-модем(ы). Пора его (их) использовать по назначению.

Часть вторая — подключаемся

Собственно, программ, которые позволяют заставить модем набрать номер и подключиться к провайдеру — предостаточно. Тот же Network Manager, например. Кстати, те, у кого до этого в Network Managere-е модем не находился, уже могут попробовать поискать его снова 😉 . Ну а мы, в данном случае, решили воевать в консоли. Потому, в консоли и продолжим…

Программу я для этого решил использовать следующую — wvdial. По умолчанию она не установлена, поэтому, устанавливаем:

dmitry@hotspot-server:/usr/src/usb$ sudo apt-get install wvdial
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Будут установлены следующие дополнительные пакеты:
  libuniconf4.4 libwvstreams4.4-base libwvstreams4.4-extras libxplc0.3.13
НОВЫЕ пакеты, которые будут установлены:
  libuniconf4.4 libwvstreams4.4-base libwvstreams4.4-extras libxplc0.3.13 wvdial
обновлено 0, установлено 5 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 1099kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 2814kB.
Хотите продолжить [Д/н]? y
Получено:1 http://archive.ubuntu.com jaunty/main libxplc0.3.13 0.3.13-1build1 [39,0kB]
Получено:2 http://archive.ubuntu.com jaunty/main libwvstreams4.4-base 4.4.1-0.2ubuntu2 [412kB]
Получено:3 http://archive.ubuntu.com jaunty/main libwvstreams4.4-extras 4.4.1-0.2ubuntu2 [406kB]
Получено:4 http://archive.ubuntu.com jaunty/main libuniconf4.4 4.4.1-0.2ubuntu2 [137kB]
Получено:5 http://archive.ubuntu.com jaunty/main wvdial 1.60.1+nmu2 [106kB]
Получено 1099kБ за 19с (55,4kБ/c)
Предварительная настройка пакетов ...
Выбор ранее не выбранного пакета libxplc0.3.13.
(Чтение базы данных... на данный момент установлено 26865 файлов и каталогов.)
Распаковывается пакет libxplc0.3.13 (из файла .../libxplc0.3.13_0.3.13-1build1_i386.deb)...
Выбор ранее не выбранного пакета libwvstreams4.4-base.
Распаковывается пакет libwvstreams4.4-base (из файла .../libwvstreams4.4-base_4.4.1-0.2ubuntu2_i386.deb)...
Выбор ранее не выбранного пакета libwvstreams4.4-extras.
Распаковывается пакет libwvstreams4.4-extras (из файла .../libwvstreams4.4-extras_4.4.1-0.2ubuntu2_i386.deb)...
Выбор ранее не выбранного пакета libuniconf4.4.
Распаковывается пакет libuniconf4.4 (из файла .../libuniconf4.4_4.4.1-0.2ubuntu2_i386.deb)...
Выбор ранее не выбранного пакета wvdial.
Распаковывается пакет wvdial (из файла .../wvdial_1.60.1+nmu2_i386.deb)...
Обрабатываются триггеры для man-db ...
Настраивается пакет libxplc0.3.13 (0.3.13-1build1) ...

Настраивается пакет libwvstreams4.4-base (4.4.1-0.2ubuntu2) ...

Настраивается пакет libwvstreams4.4-extras (4.4.1-0.2ubuntu2) ...

Настраивается пакет libuniconf4.4 (4.4.1-0.2ubuntu2) ...

Настраивается пакет wvdial (1.60.1+nmu2) ...

Success!  You can run "wvdial" to connect to the internet.
  (You can also change your configuration by editing /etc/wvdial.conf)

Обрабатываются триггеры для libc6 ...
ldconfig deferred processing now taking place

Установили! Теперь ее нужно сконфигурировать. Первым делом, нужно предоставить программе возможность попытаться автоматически выполнить предварительную настройку. Для этого вводим команду:

dmitry@hotspot-server:/usr/src/usb$ sudo wvdialconf
Editing `/etc/wvdial.conf'.

Scanning your serial ports for a modem.

ttyS0<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyS0<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 115200 baud
ttyS0<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.
ttyS1<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyS1<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 115200 baud
ttyS1<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.
Modem Port Scan<*1>: S2   S3
WvModem<*1>: Cannot get information for serial port.
ttyUSB0<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyUSB0<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 9600 baud
ttyUSB0<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.
WvModem<*1>: Cannot get information for serial port.
ttyUSB1<*1>: ATQ0 V1 E1 -- OK
ttyUSB1<*1>: ATQ0 V1 E1 Z -- OK
ttyUSB1<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyUSB1<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyUSB1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyUSB1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyUSB1<*1>: Modem Identifier: ATI -- Manufacturer: ZTE CORPORATION
ttyUSB1<*1>: Speed 9600: AT -- OK
ttyUSB1<*1>: Max speed is 9600; that should be safe.
ttyUSB1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
WvModem<*1>: Cannot get information for serial port.
ttyUSB2<*1>: ATQ0 V1 E1 -- OK
ttyUSB2<*1>: ATQ0 V1 E1 Z -- OK
ttyUSB2<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyUSB2<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyUSB2<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyUSB2<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyUSB2<*1>: Modem Identifier: ATI -- Manufacturer: ZTE CORPORATION
ttyUSB2<*1>: Speed 9600: AT -- OK
ttyUSB2<*1>: Max speed is 9600; that should be safe.
ttyUSB2<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK

Found a modem on /dev/ttyUSB1.
Modem configuration written to /etc/wvdial.conf.
ttyUSB1: Speed 9600; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
ttyUSB2: Speed 9600; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"

Итого — НАШЛА! Посмотрим, какие настройки программа вписала в файл конфигурации:

dmitry@hotspot-server:/usr/src/usb$ sudo nano /etc/wvdial.conf

Вот что было в моем файле по умолчанию (после выполнения предварительной самонастройки):

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = Analog Modem
; Phone =
ISDN = 0
; Password =
New PPPD = yes
; Username =
Modem = /dev/ttyUSB1
Baud = 9600

Как видите, самый минимум. Плюс ко всему, еще и ключевые параметры подключения — номер дозвона (Phone), имя пользователя (Username) и пароль (Password) — закомментированы (в начале строки стоит точка с запятой — «;» ).

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

[Dialer Defaults]
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = Analog Modem
 Phone = *99#
ISDN = 0
 Username = 1
Init1 = ATZ
 Password = 1
Modem = /dev/ttyUSB2
Baud = 9600
Init3 = AT+CGDCONT=1,"IP","3g.utel.ua"
Stupid Mode = 1
Auto Reconnect = on

То есть, во первых, я указал номер дозвона, а также имя пользователя и пароль (для моего случая подключения к Utel — в принципе, логины/пароли безразличны, но как говорится, «чтобы не было проблем»). Кроме того, я указал третью строку инициализации — Init3 = AT+CGDCONT=1,»IP»,»3g.utel.ua». Она указывает модему, какую точку доступа использовать. Как должна выглядеть эта строка в вашем случае — ищите на сайте вашего провайдера (оператора мобильной связи). Также я включил автоматическое переподключение — Auto Reconnect, и режим «тупого» модема — Stupid Mode.  После этого сохранил изменения и вышел из редактора.

И вот, торжественный момент — подключаемся:

dmitry@hotspot-server:/usr/src/usb$ sudo wvdial
--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: AT+CGDCONT=1,"IP","3g.utel.ua"
AT+CGDCONT=1,"IP","3g.utel.ua"
OK
--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
ATDT*99#
CONNECT 3600000
--> Carrier detected.  Starting PPP immediately.
--> Starting pppd at Wed Jan 12 14:57:51 2011
--> Pid of pppd: 4131
--> Using interface ppp0
--> pppd: ▒'2 `%2 ▒'2
--> pppd: ▒'2 `%2 ▒'2
--> pppd: ▒'2 `%2 ▒'2
--> pppd: ▒'2 `%2 ▒'2
--> pppd: ▒'2 `%2 ▒'2
--> pppd: ▒'2 `%2 ▒'2
--> pppd: ▒'2 `%2 ▒'2
--> local  IP address 178.92.69.72
--> pppd: ▒'2 `%2 ▒'2
--> remote IP address 10.64.64.64
--> pppd: ▒'2 `%2 ▒'2
--> primary   DNS address 213.179.249.151
--> pppd: ▒'2 `%2 ▒'2
--> secondary DNS address 213.179.249.152
--> pppd: ▒'2 `%2 ▒'2

Признаком того, что вы подключились к интернету, является факт получения вашим модемом локального адреса, адреса шлюза, и двух адресов серверов DNS (все это выделено зеленым цветом выше). На всякий случай можно проверить, какие адреса серверов DNS использует система после того, как произошло подключение:

dmitry@hotspot-server:~$ sudo cat /etc/resolv.conf
nameserver 213.179.249.151
nameserver 213.179.249.152

Итог — вы в интернете.

Ну и напоследок — как его выключать. Вводите команду:

dmitry@hotspot-server:/usr/src/usb$ sudo pkill wvdial
Caught signal 15:  Attempting to exit gracefully...
dmitry@hotspot-server:/usr/src/usb$ --> Terminating on signal 15
--> pppd: ▒7▒[08]`5▒[08]▒7▒[08]
--> Connect time 0.8 minutes.
--> pppd: ▒7▒[08]`5▒[08]▒7▒[08]
--> pppd: ▒7▒[08]`5▒[08]▒7▒[08]
--> pppd: ▒7▒[08]`5▒[08]▒7▒[08]
--> Disconnecting at Wed Jan 12 15:04:14 2011

… и дожидаетесь, когда соединение будет разорвано.

Успехов!

Настройка Dlink DSL-2500U в режиме роутера

Не думал, что придется написать это, но, «никогда не говори никогда»…

Итак, у вас в доме завелось более одного компьютера, и всем им хочется в интернет.  И вот появляется на очередном «любимом форуме» очередной вопрос примерно такого содержания  — «Как подключить теперь к интернту все мои компьютеры». В общем случае, ответ звучит примерно так: «Включить модем роутером, подключить в него хаб (свич) и в него же (хаб или свич) — все компьютеры».  Но, обычно на этом дело не заканчивается (начинаются вопросы — «что такое роутер?», «как его включить?» и т.д. и т.п.). По этому, сейчас мы будем настраивать модем Dlink DSL-2500U именно в режиме роутера.

1. Вводные данные.

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

  1. VPI и VCI (идентификаторы) сети провайдера.
  2. Логин (имя пользователя), с которым вы подключаетесь к серверу провайдера
  3. Пароль, с которым вы подключаетесь к серверу провайдера

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

В приведенной ниже инструкции для примера будут использованы значения VPI — 1, VCI — 32, имя пользователя — login_to_internet, пароль — password. При реальной настройке модема подставьте вместо них свои значения.

2. Подготовка модема.

Если вы только что приобрели модем, то настройки в нем и так заводские. Если же он уже эксплуатировался, например в режиме моста, а теперь вы решили изменить его режим на роутер, то лучше выполнить сброс настроек модема к заводским значениям.  Что нужно для этого?

Рис. 1 - Расположение кнопки аппаратного сброса (RESET) на модеме DSL-2500U
  1. Найти кнопку сброса RESET (располагается  на задней стенке модема, как показано на рис. 1 выше)
  2. Найти тонкий предмет, например, спичку.
  3. Включить питание роутера.
  4. В то время, когда роутер включен (горят индикаторы на лицевой панели), тонким предметом (спичкой) нажать и удерживать кнопку RESET. Кнопку нужно удерживать до тех пор, пока индикаторы на лицевой панели модема не погаснут, а потом загорятся снова. Это время составляет примерно 10 — 20 секунд. После этого кнопку можно отпустить. Сброс выполнен.

После того, как модем сброшен к заводским значениям, пришло время подключить его к компьютеру. Для этого используется Ethernet-кабель, один из двух, прилагающихся к модему в комплекте. Второй комплектный кабель служит для подключения к телефонной линии. Определить, который из них Ethernet, просто — его разъемы шире, в них по 8 контактов, и любой разъем этого кабеля плотно заходит и защелкивается в гнезде ETHERNET (оно еще м.б. подписано как LAN), располагающемся на задней стенке модема. Второй конец этого кабеля нужно подключить в сетевую плату вашего компьютера. На время настройки модем лучше подключить в компьютер напрямую, а не через хаб или свич, чтобы исключить возможные проблемы, в случае неполадок данного оборудования. Питание модема нужно включить, индикаторы на его лицевой панели должны гореть (как минимум, должна гореть лампочка Power, а при подключении кабеля в сетевую плату компьютера и лампочка LAN).

3. Подготовка компьютера.

Приведенная далее инструкция предназначена для настройки компьютера, работающего под управлением ОС Windows XP.

Первым делом учтите, что отныне управлять вашей сетью будет именно Dlink DSL-2500U. Применительно к компьютерам это значает лишь одно — все параметры настройки протокола TCP-IP отныне они будут получать от модема. И для этого их нужно соответствующим образом настроить.  Настройка заключается в том, чтобы указать компьютеру, что отныне свой собстенный адрес, а также адрес сервера DNS он будет получать автоматически (по протоколу DHCP). Как это сделать, показано на рисунке ниже.

Рис. 2 - Настройка протокола TCP-IP на компьютере

Первым делом открываете папку «Сетевые подключения» (см. рис. 2 выше).

  1. Находите в ней подключение, соответствующее вашей сетевой плате, к которой вы подключили модем. Обычно по умолчанию оно называется «Подключение по локальной сети». На его значке нужно щелкнуть правой кнопкой мыши, и в появившемся контекстном меню выбрать пункт «Свойства».
  2. Откроется окно свойств. В этом окне, в списке нужно выбрать пункт «Протокол Интернета (TCP/IP)», подсветить его (один раз щелкнув мышью), и затем нажать кнопку «Свойства».
  3. В открывшемся окне свойств протокола TCP-IP необходимо установить «птички» напротив пунктов «Получить IP-адрес автоматически» и «Получить адрес DNS-сервера автоматически» (кстати, обращаю ваше внимание, что на приведенном рис. 1 «птичка» про DNS-сервер установлена не правильно!!!)

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

После этого есть смысл лишний раз проверить, что все у нас, как говорится, «идет по плану».

Рис. 3 - Просмотр сведений о подключении

Для этого:

  1. Всё в той же папке Сетевых подключений на подключении, обозначающем сетевую плату, которой компьютер подключен к модему, нужно просто дважды щелкнуть мышью (см. рис. 3 выше). Откроется окно Состояния подключения.
  2. В открывшемся окне вы увидите текущий IP-адрес компьютера и IP-адрес шлюза, к которому он подключен. Запомните адрес шлюза. Хотя, у модема сброшенного в заводские параметры, адрес обычно один и тот же — 192.168.1.1.
  3. Также, щелкните мышью кнопку «Подробности..»
  4. Откроется окно «Деталей подключения», в котором среди прочего вы можете увидеть IP-адреса DNS-серверов, используемых вашим компьютером в текущем подключении.

Все. Мы увидели то, что нам было нужно — адрес шлюза. Запомним его.

Возможно, что после смены настроек возникнут проблемы с подключением, или появится сообщение, что «Подключение ограничено…» и т.п. Тогда имеет смысл «обновить подключение». Для этого выполните следующее:

  1. Щелкните мышью кнопку «Пуск».
  2. В списке щелкните пункт «Выполнить». Откроется окно «Запуск программы».
  3. В поле «Открыть» введите cmd, после чего щелкните мышью кнопку «ОК».
  4. Откроется консоль.
  5. В консоли введите последовательно две команды — сначала ipconfig/release, а затем ipconfig/renew. После выполнения первой команды подключение будет остановлено, а после второй — создано по новой. При этом модему будет отправлен запрос обновить все данные соединения по протоколу DHCP (см. рис. 4 ниже).
Рис. 4 - "Переподключение" к модему

ПРИМЕЧАНИЕ (для пользователей с компьютерами, на которых установлена ОС, отличающаяся от Windows XP). Подготовка компьютера выполняется с одной единственной целью — указать компьютеру, что для сетевой платы, к которой подключен модем, должен использоваться протокол DHCP, благодаря чему компьютер будет автоматически получать от модема и собственный IP-адрес, и адрес сервера DNS. В документации к вашей ОС найдите соответствующие инструкции («Как включить DHCP-клиент»), и выполните их на вашем компьютере. После этого найдите в компьютере информацию о текущих параметрах подключения и прочтите IP-адрес шлюза, к которому подключен компьютер.

4. Подготовка Internet Explorer-а.

Точнее сказать, благодаря непосильным стараниям корпорации Microsoft, направленным на дальнейшую и плотнейшую интеграцию IE в ОС-ь, настройки браузера стали настройками подключения к интернету ВСЕЙ операционной системы Windows. Другие программы, если ИНОЕ в них не указано принудительно (а такое возможно далеко не во всякой программе), при доступе к интернету пользуются теми самыми параметрами, которые указаны для браузера Internet Explorer. Именно поэтому, мы говорим «настраиваем подключение IE», а подразумеваем -«настраиваем подключение компьютера».

Итак, перейдем непосредственно к настройке. Откроем панель управления, и в ней щелкнем пункт «Сеть и подключения к интернету»

Рис. 5 - Панель управления

Панель с заданиями и ярлыками сменится на ту, что показана на рис. 6 ниже:

Рис. 6 - Открытие окна свойств "обозревателя" Internet Explorer

В этом окне есть ярлыки для выполнения самых различных действий по управлению свойствами сетевых подключений вашего компьютера. Нас же в данном случае интересуют свойства «обозревателя» (в свете маркетинговой политики компании, наверное, это слово стоило бы написать как «оборзевателя», ну да ладно 😉 ). По этому, щелкнем мышью именно по указанному ярлыку, и тогда появится окно свойств Internet Explorer-а, показанное на рис. 6 справа.

ПРИМЕЧАНИЕ: Если же у вас в Панели управления используется «классический» режим отображения, то интересующий вас пункт так и называется — «Свойства обозревателя«, а комментарий к нему — «Изменение параметров отображения и подключения к Интернету» (ну не умрут они от скромности, 😉 )…

Рис. 7 - Редактирование "Подключений" в свойствах обозревателя IE

В открывшемся окне выполним следующее:

  1. Вверху выберете закладку «Подключения» и щелкаете по ней. Появится окно, показанное на рис. 7 справа. В этом окне отображаются ярлыки имеющихся в вашей системе способов подключения к сети (Интернету). Если вы в первый раз подключаетесь к интернету, то этот список будет девственно чист.  На рис. 7 для примера показано подключение, названное «По модему», которое до текущего момента якобы использовалось в системе по умолчанию. Как вариант, если вы раньше уже использовали подключение по модему, но работавшему в  режиме моста, то оно (подключение) также будет отображаться в этом списке. Чтож, пришло время избавиться от него!
  2. Просто поставьте «птичку» в поле «Никогда не использовать коммутируемые соединения». Таким образом вы указываете своему компьютеру, что отныне «интернет он должен искать в сетевой плате».
  3. По большому счету, старые коммутируемые соединения можно удалить вовсе. То есть, щелкните мышью по ярлыку подключения, чтобы выделить его, а затем нажмите кнопку «Удалить» (если у вас подключений несколько, то это придется проделать с каждым из них). Но если вы «опасаетесь», «перестраховываетесь» и т.п. , то их на данном этапе можно и оставить (потом убьете), главное — перепроверьте еще раз, что выполнили пункт 2 — поставили «птицу» напротив «Никогда не использовать коммутируемые соединения»!
  4. И напоследок осталось убедиться что в настройках вашего браузера не используется прокси. Для этого щелкните кнопку «Настройка сети». Откроется окно настройки параметров локальной сети, показанное на рис. 8 ниже.
Рис. 8 - Настройка параметров локальной сети

В этом окне нас интересует всего один факт — в поле «Использовать прокси-сервер….» НЕ ДОЛЖНО стоять «птички». Если она там есть, убирайте. Все, нажимайте «ОК» (во всех окнах), на этом настройка «обозревателя» завершена.

Ну вот, не прошло и пол года, как наконец-то ваш компьютер готов к работе с модемом в режиме роутера. Время пришло, и нас ждет наконец-то…

5. Настройка модема.

Лично я предпочитаю настраивать модем через браузер. А особенно, после того, как неоднократно сталкивался с жалобами тех, кто пытался сделать это с помощью прилагающегося к модему компакт-диска. Скажу сразу — вина в этом диска, или вина в этом тех, кто настраивал, мне неведомо. Но я … по прежнему предпочитаю настраивать модем через браузер 😉 …

Итак, запустите на компьютере браузер. Любой, который вам нравится. В этот момент также весьма полезно выполнить еще одно действие — почистить кеш браузера. Как это сделать — посмотрите в документации к используемому вами браузеру. Где найти документацию — нажмите F1…

В адресной строке браузера нужно ввести адрес шлюза. Тот самый адрес, что мы определяли в пункте 3 данной инструкции. По большому счету, если вы, как и было рекомендовано ранее, выполнили сброс модема к заводским настройкам, то адрес модема будет такой — http://192.168.1.1. Именно его и введите в адресной строке браузера. В результате вы попадете в веб-интерфейс настройки модема. Вход в настройки защищен паролем. Вас попросят ввести имя пользователя и пароль:

Рис. 9 - Авторизация для входа в настройки модема

Если вы, как и было рекомендовано ранее, сбросили модем к заводским настройкам (или же вы настраиваете только что купленный модем), то имя пользователя и пароль будут одинаковыми — admin | admin. Введите их в поля запроса. Учтите, что в модеме используется Linux, который чувствителен к регистру вводимых букв. После того, как имя и пароль будут приняты модемом вы попадете в следующее меню:

Рис. 10 - Первый пункт Мастера настройки модема.

На самом деле, при первом вхождении в модем, у которого настроек либо еще не было совсем (он новый), либо они были сброшены (кнопкой RESET, как было описано выше) автоматически запускается Мастер быстрой настройки модема. По его завершении настройка модема будет завершена.

На этой самой первой странице по умолчанию установлена «птичка» в поле «DSL Auto-connect». Честно говоря, к чему и с какими параметрами предполагается это «автоматическое подключение», лично  не знаю. По этому, чтобы настроить модем со своими параметрами, ЭТУ «ПТИЧКУ» НЕОБХОДИМО УБРАТЬ! Как только вы уберете «птичку» , откроются новые поля для ввода данных:

Рис. 11 - Ввод значений VPI, VCI и QoS

Первым делом, и это обязательно, необходимо ввести значения VPI и VCI. Учтите, что при неправильно указанных значениях данных параметров ваш модем НЕ СМОЖЕТ подключиться к провайдеру. По этому, будьте внимательны. Как было сказано ранее во «Вводных…», в данном примере используются значения VPI — 1 и VCI — 32, и именно эти значения я и указал, что видно на скриншоте на рис. 11.  (Кстати, использованные в данном примере значения VPI и VCI — реальные, это параметры сети моего провайдера «Укртелеком»). В вашем случае введите значения VPI и VCI, выданные вам вашим провайдером.

Также, на странице присутствует поле, в котором необходимо проставить «птичку», если вы хотите включить QoS (Quality of Service — резервирование части пропускной способности канала для нужд некоторых сетевых приложений, например, потокового видео и т.п.). Подробнее можно прочесть по ссылке. Если вам необходимо использовать данную службу (например для просмотра IP-TV), то проставьте «птичку» в поле «Enable Quality of Service».

После этого нажмите кнопку «Next » и вы перейдете к следующей странице.

Рис. 12 - Выбор типа поключения

В этом окне вам нужно выбрать тип подключения (метод использования / режим работы) модема при связи с провайдером. Так как мы решили, что будем настраивать модем в режиме роутера, то необходимо выбрать вариант PPPoE. Именно напротив него и установите  «птичку» (см. рис. 12).

После этого нажмите кнопку «Next «, чтобы перейти к следующей странице.

Рис. 13 - Ввод имени пользователя и пароля, использующихся при подключении к провайдеру

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

  1. В поле PPP Username введите имя пользователя, выданное вам провайдером.
  2. В поле PPP Password введите пароль, выданный вам провайдером.
  3. В поле PPP Service Name введите какое-нибудь имя для данного подключения. Это имя вы придумываете сами, единственное ограничение, не используйте в этом поле кириллицу, а используйте только буквы латинского алфавита. В качестве имени подключения можете, например, использовать имя провайдера (как это сделал я в примере, показанном на рис. 13).
  4. Обязательно (!!!) убрать «птичку» в поле PPP IP extension (обращаю внимание на то, что на рис. 13 нет стрелки по этому поводу), иначе на следующей странице настроек (см. рис. 14 ниже) не будет возможности включить NAT и Firewall.
  5. Нажмите нопку «Next «, чтобы перейти к следующей странице.
Рис. 14 - Включение NAT, файервола и доступа к веб интерфейсу модема из интернета

На этой странице нужно выполнить следующее:

  1. Включить (проверить что включен) NAT. Именно эта служба (Network Address Translation) позволяет нескольким компьютерам, когда они работают в локальной подсети модема и получают от него локальные IP-адреса, использовать одно подключение к интернету. Еще раз повторюсь — для правильной работы модема в режиме роутера (маршрутизатора) служба NAT должна быть включена («птичка»должна быть установлена).
  2. Включить (проверить что включен) файервол. Он защищает ваши компьютеры, находящиеся в локальной подсети, от попыток попасть в них извне (из интернета).
  3. Если вы хотите иметь возможность подключиться к интерфейсу управлением модема извне (из интернета), проставьте птичку в поле «Enable WAN Service». Единствнное замечание в таком случае — придумайте свои собственные значения (причем «позаковыристей», чем банальные admin / admin) для пользователя, который имеет доступ к веб интерфейсу настройки модема.
  4. Нажмите кнопку «Next » и вы перейдете к следующей странице.
Рис. 15 - Настройка параметров локальной подсети (LAN)

Эта страница (рис. 15) отвечает за настройки локальной сети, создаваемой вашим модемом.

  1. В поле «IP-address» указывается адрес самого модема, под которым он будет виден в локальной сети. По умолчанию в этом поле указано значение 192.168.1.1.  Без особой нужны менять этот адрес не стоит. Но если вы все-таки решите его изменить, то учтите, что после того, как настройки будут сохранены, и модем перезагрузится (а это выполняется на последней странице Мастера быстрой настройки), то в последствии для доступа к настройкам модема в браузере вам нужно будет  вводить уже новый адрес. Значение сетевой маски (255.255.255.0), указанное в поле Subnet Mask, подразумевает свободную работу в адресном поле 254 устройств. Если в вашей домашней сети еще нет такого количества компьютеров, то оставьте как есть.
  2. В модеме присутствует сервер DHCP. Протокол DHCP предназначен для упрощения процедуры подключения новых устройств к сети. То есть, каждое устройство (компьютер), подключаясь в такую сеть, (если, конечно, в нем включен DHCP-клиент, как это было описано выше) ищет DHCP сервер, и найдя его, посылает ему запрос. В ответ на этот запрос DHCP сервер выделяет новому устройству IP-адрес (из числа свободных), сообщает его устройству (компьютеру), а также сообщает адрес используемых в сети шлюза и сервера DNS. Компьютер, получив эти данные, настраивает работу своей сетевой платы именно с учетом полученных параметров, и тут же автоматически получает доступ в интернет. Этот протокол — DHCP придуман именно для того, чтобы простить вам жизнь. Чтобы включить в вашем модеме сервер DHCP, поставьте птичку в поле «Enable DHCP Server» (если вы сбрасывали модем к заводским настройкам, то «птичка» итак будет проставлена в этом поле, и вам нужно лишь убедиться в этом). Если же вы не желаете использовать эту возможность, то тогда установите «птичку» в поле «Disable DHCP Server». В таком случае, в дальнейшем, при подключении новых устройств (компьютеров) к вашему модему вам нужно будет настраивать их параметры сетевых подключений вручную.
  3. В полях «Start IP Address» и  «End IP Address» указаны соответственно первый и последний адреса диапазона, из которого встроенный сервер DHCP модема будет «выдавать» их (IP-адреса) вашим устройствам (компьютерам). Обращаю ваше внимание на три следующих адреса: адрес ххх.ххх.ххх.0 — это адрес сети, адрес ххх.ххх.ххх.1 — адрес модема, и адрес ххх.ххх.ххх.255 — т.н. «щироковещательный», используемый для нужд сети. Они не включены в этот диапазон, и не могу быть «выданы» вашим компьютерам. Все остальные — доступны, а это, ни много ни мало — 253 адреса. Думаю, вашей домашней сети такого количества будет достаточно. Но никто не запрещает вам установить собственные значения, естественно, если вы понимаете, что делаете. Если вы захотите указать свои собственные значения, то для вычисления стартовых, стоповых адресов диапазона, адреса сети, а также сетевых масок можете воспользоваться каким-нибудь IP-калькулятором, нагуглить коих можно превеликое множество.
  4. После этого нажмите кнопку «Next » и вы перейдете к следующей странице.
Рис. 16 - Сводка параметров модема

Данная страница — это сводка с теми параметрами, которые вы указали. Она позволяет проверить, все ли так, как вы хотели. Если вы заметили ошибку, нажмите кнопку Back, чтобы попасть на требуемую страницу из числа предыдущих, и исправьте ее. Если все правильно, нажимайте кнопку «Save/Reboot«. Модем сохранит в своей памяти все те настройки, что вы вводили на предыдущих страницах и перезагрузится.

После перезагрузки модем будет пытаться установить соединение с провайдером (подключиться к интернету). В это время он уже должен быть подключен и к телефонной линии тоже. То есть, вы подключаете кабель от телефонной линии к сплиттеру, а комплектный телефонный кабель модема — из гнезд MODEM сплиттера, в гнездо LINE модема. По этому поводу в инструкции к модему присутствует красивая картинка…

Если вы не меняли IP-адрес самого модема (пункт 1 на рис. 15), то после того, как модем перезагрузится, страница в окне вашего браузера обновится автоматически. Вам будет выведена вот такая страница с информацией о подключении:

Рис. 17 - Информация о текущем состоянии модема

ПРИМЕЧАНИЕ: В верхней таблице присутствуют данные о текущей версии прошивки модема. Эта информация, на мой взгляд, не представляют интереса до тех пор, пока модем нормально работает. Разве что, если вы энтузиаст и фанатик обновления прошивок. Если же модем отказывается работать так как надо, то я бы посоветовал первым делом сбросить его и по новой выполнить всю описанную выше процедуру настройки. Если же это не помогает, то тогда есть шанс исправить ситуацию, перепрошив модем (возможно какая-то ошибка встроенного ПО мешает работе в вашем случае).  Чтобы перепрошить модем Dlink DSL-2500U, воспользуйтесь информацией, приведенной на этой странице.

Нас же интересует вторая таблица. В ней приведены данные о текущем подключении модема к провайдеру:

  • Первые два пункта показывают какие максимально возможные скорости обмена данными дает ваша линия (не стоит путать со значениями максимальной скорости, предоставляемой провайдером). Эти данные показывают тот (измеренный модемом) максимум, который теоретически может быть достигнут, и он зависит лишь от одного — от качества вашей телефонной линии (см. Примечание ниже).
  • Следующая строка — локальный адрес модема (в вашей домашней сети).
  • Default Gateway — это адрес шлюза провайдера, к которому подключен ваш модем.
  • И последние две строчки — это адреса серверов DNS, предоставленные вашему модему вашим провайдером.

ПРИМЕЧАНИЕ: Кроме того, техническую информацию о текущем подключении (состоянии линии) можно посмотреть, если в модеме открыть страницу, расположенную по адресу «Device Info» — «Statistics» — «ADSL» (выбирать закладки в меню слева). Вид открывающейся при этом страницы показан на рис. 18 ниже, а разъяснения по некоторым параметрам можно прочесть, например, тут. Эта информация может пригодиться, если вдруг у вас возникнут прения с провайдером по поводу качества предоставляемых услуг.

Рис. 18 - Сводные данные о текущем состоянии ADSL подключения

6. Port Forwarding.

Ну и напоследок еще один вопрос, который периодически возникает у тех, кто хочет предоставить доступ извне (из интернета) к своеу компьютеру, который подключен к модему настроенному роутером. В этом случае, тот кто пытается подключиться на ваш внешний IP-адрес, попадает в модем. Модем, благодаря включенному с нем файерволу, никого никуда не пускает. Да и куда пускать-то? Компьютеров у вас несколько, и к которому из них «стучались», модему неведомо. По этому, вам нужно будет выполнить определенные настройки, которые «в миру» чаще всего называют как «Port Forwarding», а в модеме Dlink DSL-2500U назвали иначе — «Virtual Servers». Кроме того, настройки нужно будет выполнить и в компьютере, к которому планируется подключение. В компьютере нужно сделать два дела:

  1. Присвоить ему статический IP-адрес из того диапазона, который использует DHCP сервер модема (см. пункт 3 на рис. 15 выше).
  2. Открыт в его файерволе те порты, к которым планируется подключение.

Ну а теперь настроим модем. Откройте страницу настойки «виртуальных серверов». Для этого в меню слева сначала щелкните «Advanced Setup», затем «NAT» и там уже пункт «Virtual Servers». Откроется окно, показанное на рис. 19 ниже:

Рис. 19 - Страница со списком настроенных "виртуальных серверов"

На этой странице отображается список уже настроенных в модеме «виртуальных серверов». Так как вы еще ничего не настраивали, то и список пуст. Чтобы создать новый «виртуальный сервер» (а фактически — новое правило для файервола модема), нажмите кнопку «Add» (пункт 2 на рис. 19).

Откроется следующее окно:

Рис. 20 - Создание "Виртуального сервера".

ПРИМЕЧАНИЕ: По умолчанию в только что открывшемся окне «птичка» стоит напротив пункта «Select a Service». Рядом с этим пунктом присутствует выпадающий список с различными службами (серверами, приложениями, играми и пр.), для которых настройки уже подготовлены и их нужно просто лишь разрешить. По большому счету, просмотрите список, и может быть вы найдете в нем нужное вам. Если же нет, то тогда настройте в «ручном» режиме, как это описано ниже.

  1. Поставьте «птичку» в поле «Custom Server» и в поле рядом впишите свое собственное самостоятельно придуманное имя данному правилу (службе). В приведенном мной примере, я открываю порт для того, чтобы люди из интернета имели доступ к моему веб-серверу Apahce, который установлен на компьютере с локальным адресом 192.168.1.10). По этому, свое имя «сервиса» я так и указал — apache.
  2. В поле «Server IP Address» я вписал (Внимание!!!) ЛОКАЛЬНЫЙ адрес моего компьютера на котором установлен и и запущен веб-сервер Apache. Как было сказано выше адрес компьютера 192.168.1.10, и именно такое значение я и вписал в указанном поле.
  3. Следующим шагом я указал какие порты и по каким протоколам хочу переадресовывать на мой сервер. Для этого на странице представлена целая таблица. В ней каждая строка — это отдельное правило переадресации («портфорвардинга»). В строке самым первым указывается стартовый (начальный / первый) номер порта (External Port Start). Дело в том, что иногда требуется переадресация не одного порта, а целого диапазона (например, для протокола BitTorrent нужно пробросить порты с 6881 по 6889). В таком случае в это поле пишется начальный номер порта диапазона. Если же «пробросить» нужно только один порт, то тогда в это поле пишется номер этого порта. В следующем поле (External Port End) указывается последний номер порта, если вы настраиваете переадресацию целого диапазона портов, или же тот же самый номер порта, что и в первом поле, если вы переадресуете всего только один порт. В следующем поле (Protocol) вы указываете — пакеты какого протокола будут переадресовываться. Варианты: TCP, UDP или оба сразу. Этот параметр вы должны узнать в документации на то приложение, для которого создается ваше правило. Ну и последние два параметра в строке — это соответственно первый (Internal Port Start) и последний (Internal Port End) номера портов на вашем локальном компьютере, на которые будет осуществляться переадресация. В моем случае, для веб-сервера apache,нужно было всего-лишь обеспечить прохождение TCP-пакетов на 80-й порт. Именно поэтому, как и видно на рисунке 20, в полях первого и последнего номеров внешних портов, а также в поле стартового порта внутренней сети вписан 80-й номер порта, а в поле Protocol указан протокол TCP.
  4. После того, как правило создано, нажмите кнопку «Save/Apply«. Ваше правило будет записано в память модема и тут же запущено (начнет работать переадресация).

Мой пример с 80-м портом выбран еще и потому, что попытка настроить его переадресацию приводит к появлению дополнительного вопроса (для случая других номеров портов у вас есть шанс и не увидеть подобного вопроса). Дело в том, что при настройке самого подключения я оставил включенным т.н. «WAN Service» (доступ к веб-интерфейсу настроек модема извне) (см. пункт 3 на рис. 14 выше). И благодаря этому внешний 80-й порт модема был «занят» — на нем он сам отвечал при обращении извне. Теперь же я ему указываю, что запросы по 80-у порту нужно переадресовывать на компьютер в локальной сети. По этому, модем, чтобы у меня осталась возможность входа в настройки извне, предлагает мне сменить номер порта, на котором будет работать его встроенная веб-сервер настроек с 80-го на 8080 (см. рис. 21 ниже).

Рис. 21 - Запрос подтверждения на смену номера порта WAN интерфейса модема.

Соглашаемся. А что нам еще делать? Единственное, нужо запомнить, что отныне при попытке попасть в настройки модема звне (из интернета), к адресу нужно будет дописывать номер порта 8080, например, вот так: http://123.123.123.123:8080/.

После того, как правило создано, мы снова взвращаемся на страницу со списком уже настроенных в модеме «виртуальных серверов». Но теперь в нем уже появился один пункт — строка про созданный только что «виртуальный сервер» apache (см. рис. 22 ниже). При желании создать следующий «виртуальный сервер», снова нажмите кнопку «Add» и повторите приведенную выше инструкцию, указав новые параметры. Учтите, что «портфорвардинг» возможен не только на разные номера портов, но и на разные компьютеры вашей локальной домашней сети. Единственное ограничение — один и тот же порт  нельзя пробросить на насколько компьютеров.

Рис. 22 - Снова страница со списком "виртуальных серверов", но уже не пустая

Ну вот вроде и все пока…

Просмотр *.iso файлов в Midnight Commander

«Была-была и куда-то делась» возможность просматривать содержимое *.iso файлов (образов CD и DVD дисков) непосредствено в оболочке Midnight Commander. А как же было удобно — жмешь Enter на имени файла и ты уже внутри него — просматриваешь содержимое…

Что уж я намудрил, не знаю, но стало вместо просмотра вываливаться сообщение об ошибке — не найден isoinfo. Чтож, поищем, «какой-такой» пакет нужно установить? Ввел я команду:

urpmf isoinfo

... и получил ответ:
cdrkit-isotools:/usr/bin/isoinfo
cdrkit-isotools:/usr/share/man/man1/isoinfo.1.lzma

Как видим, искомая команда (isoinfo) нашлась в пакете cdrkit-isotools. Прекрасно, вот его-то и устанавливаем:

urpmi cdrkit-isotools

Всё! Просмотр образов дисков непосредственно в Midnight Commander снова работает…

4-е «кеды» — и снова индикатор клавиатуры в Mandriva

Первая моя заметка по поводу переключения раскладок клавиатуры и способа их индкации в Mandriva-Linux была написана мной около года назад (а сама проблема решалась примерно еще на год раньше)…

Позже я «раскрыл глаза» и заметил другую возможность индикации выбранной раскладки клавиатуры. Данный вариант (программа KKBSwitch) был интересен тем, что значительно меньше нагружал процессор. Что и не удивительно — он просто показывал флажок с буковками, а не проверял в отличие от X Neural Switcher — а то ли Вы пишите?.. Хотя, тут уж как кому нравится…

Снова вернуться к вопросу о переключении клавиатуры меня вынудила установка новой версии дистрибутива Mandriva – 2009.1. Точнее, не к вопросу переключения раскладок. Его решение осталось тем же самым, что было описано мной в самой первой заметке. А именно — редактирование файла /etc/X11/xorg.conf. Но за эти годы случилось в этом вопросе одно большое отличие — файл этот в новых версиях Mandriva управляет только связкой «монитор — видеоадаптер». А вот настройки клавиатуры (раскладки, кнопки переключения и т.п.) вынесли в другой файл — /etc/sysconfig/keyboard. И указанные в той («самой первой») заметке корректировки нужно вносить теперь в этот (новый) файл. И вдобавок к смене места расположения настройки раскладок, снова встал вопрос про индикатор, чтоб ему икнулось!… А причина в том, что по умолчанию в Mandriva 2009.1 использован KDE новой (4-й) версии. Ну и что, скажете Вы. И я сказал точно так же и побрел в «Центр Управления Mandriva» устанавливать программу KKBSwitch. «Без проблем!» — ответил Центр управления — «Есть такая программа». Я в очередной раз порадовался, поставил «птичку» и щелкнул «Применить». И тут меня ожидал такой сюрприз! «Для соблюдения зависимостей» мне предлагалось поставить ни много ни мало — добрую половину KDE 3.5!!! Вот и я подумал то же самое — не надо нам счастья такого! А флажка хотелось — ну просто жуть! Пошел искать…

И нашел-таки! Заодно в очередной раз убедившись в том, что совет «Разуй глаза!» — это очень полезный совет…

Итак приступим. Нам нужно запустить «Настройку рабочего стола». Для этого мы можем воспользоваться главным меню. В предыдущих версиях Mandriva (с 2007.1 по 2009.0) кнопка главного меню так и называлась — «Пуск». В версии 2009.1 вместо кнопки «Пуск» присутствует кнопка со «звездой» (логотип KDE). Так же, по умолчанию использовано меню в стиле Kickoff, которое лично мне не понравилось. По этому, я его сменил на «традиционное». Если Вам оно тоже не нравится, то его очень просто можно изменить. Для этого щелкаем правой кнопкой мыши на «звезде» и в появившемся меню выбираем пункт «Переключиться к классическому стилю меню» (см. рис. 1 ниже).

swich_menu_mode
Рис. 1 - Смена режима отображения главного меню

Все, в видом меню разобрались. Теперь жмем на «звезду» уже «обычной» левой кнопкой и выбираем «Утилиты» -> «Системные» -> «Настройка рабочего стола». Именно так, как это показано на рис. 2 ниже:

start_desktop_settings
Рис. 2 - Запуск программы "Настройка рабочего стола"

Кстати, был и более простой способ запустить ту же программу. Ярлык для запуска «Настройки рабочего стола» присутствует в трее возле кнопки пуск в поле Быстрого запуска (см. рис.3).

quick_start_desktop_settings
Рис. 3 - Ярлык для быстрого запуска "Настройки рабочего стола"

Не важно, каким способом мы запустим «Настройку рабочего тола». Так или иначе, но увидим мы следующее:

choose_locale_sуtup
Рис.4 - Интерфейс "Настройки рабочего стола"

В данном меню нас интересует пункт «Язык и стандарты». На рис. 4 этот пункт мной уже выделен. Дважды щелкаем на нем. И попадаем в соответствующее меню (которое так и называется «Язык и стандарты).

В данном меню необходимо в левой половине щелкнуть на закладке «Раскладка клавиатуры». Откроется окно настройки, показанное на рис. 5 ниже:

setup_for_indicator_only
Рис. 5 - Окно настройки раскладки клавиатуры

На всякий случай напоминаю, что нас интересует только индикатор, т. к. само переключение раскладок уже настроено в файле /etc/X11/xorg.conf. Поэтому, все что нам требуется — это поставить «птичку» в поле «Indicator only» (на него указывает верхняя стрелка на рис. 5), и нажать кнопку «Применить» внизу страва. После этих действий мы имеем счастье наблюдать в трее возле часов индикатор раскладки клавиатуры.

Вот и все…

Управление разделами HDD программой Gparted с диска Live-CD Ubuntu

Берем Live-CD Ubuntu. Как берем? Скачиваем. Где берем? На сайте Ubuntu. Пишем на болванку. Вставляем диск в привод компьютера и загружаемся с него.

У тех, кто хочет отредактировать разделы HDD у компьютера, на котором уже установлена Ubuntu (или другой дистрибутив Linux, использующий десктоп Gnome), может возникнуть вопрос — а почему именно Live-CD? Почему просто не загрузить Linux с жесткого диска, а потом запустить программу Gparted и поредактировать разделы? Ответ прост — Gparted не сможет работать со смонтированными разделами.  А раздел жесткого диска с которого компьютер только что загрузил Linux, размонтировать не получится (равно как и другие разделы, используемые Linux-ом в работе, если таковые имеются). Вот потому-то и нужно загрузиться с Live-CD — при этом все разделы жеского диска компьютера не смонтированы и доступны к редактированию.

Есть еще один «подводный камень», который может вас подстерегать при работе с разделами на жестком диске. Суть его в том, что если один из имеющихся на винчестере разделов — swap (подкачка), то Ubuntu, загружаясь даже с Live-CD его использует! В итоге, если допустим, swap находится на логическом диске в расширенном разделе, у вас не получится изменить что-либо в этом (расширенном) разделе до тех пор пока вы не прекратите использование подкачки Ubuntu-ой (swap-off)…

Вернемся к загрузке. У дистрибутивов версий 8.04 и выше первым делом автоматически появляется список, предлагающий Вам выбрать один из возможных языков интерфейса. Выбираем кнопками управления курсором («стрелками») и подтверждаем ENTER-ом. У более старых дистрибутивов этот список «автоматом» не выпрыгивает. Чтобы заполучить русский интерфейс в этом случае, нужно нажать кнопку «F2» и уже потом выбрать язык. В итоге мы видим вот такое меню:

ubuntu_boot_menu1
Рис. 1. Стартовое меню диска Live-CD Ubuntu

Выбираем пункт «Запустить Ubuntu без установки на компьютер«. Начнется загрузка Ubuntu. После того, как загрузка завершена, запускаем программу Gparted. Расположение ярлыка программы Gparted в стандартном меню Ubuntu показано на рисунке ниже:

Рис. 2 Запуск программы Gparted
Рис. 2. Запуск программы Gparted

При запуске программа Gparted автоматически определяет все дисковые накопители (жесткие диски), установленные в компьютере. Если винчестеров в системе несколько, то выбрать тот, с которым предполагается работать (менять/создавать/удалять разделы) позволяет кнопка в правой верхней части окна программы (см. рис. 3 ниже):

Рис. 3. Выбор жесткого диска
Рис. 3. Выбор жесткого диска

При выборе жесткого диска, думаю, полезной будет информация о правилах их нумерации в Linux-е. Диск, подключенный «мастером» на 1-м IDE контроллере, будет именоваться как /dev/hda. Второй IDE-винчестер (slave-устройство на 1-м контроллере) будет именоваться как /dev/hdb, третий (master-устройство на 2-м контроллере) — /dev/hdc, четвертый (slave-устройство на 2-м контроллере) — /dev/hdd. Первый винчестер, подключенный к SATA контроллеру будет иметь имя /dev/sda, второй — /dev/sdb, третий — /dev/sdc, и т.д. Также, cледует учесть, что флешки и карточки памяти также попадают в один ряд к устройствам SATA (то есть, тоже будут видны как /dev/sdx). Также, хорошей подсказкой при выборе жесткого диска будет информация о его физическом размере, отображаемая на кнопке рядом с номером устройства.

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

gparted_select_partition
Рис. 4. Выбор раздела жесткого диска

Изменение размера раздела

Выбираем раздел, который хотим изменить, и щелкаем на нем правой кнопкой мыши. Тот же самый результат достигается, если правой кнопкой мыши щелкать не на графическом поле, а на строке в списке, соответствующей выбранному разделу. Появляется контекстное меню со списком предлагаемых действий. Еще одно — если до запуска программы gparted Вы пользовались разделом диска, структуру которого теперь хотите изменить (например, копировали файлы и т.п.), то он будет смонтирован в файловую систему. В этом случае, чтобы иметь возможность менять параметры раздела, его нужно будет сначала отмонтировать. Для этого служит пункт «Unmount» контекстного меню. Жмем сначала его. После этого станут доступны остальные пункты контекстного меню.

Итак, раздел отмонтирован, приступаем к изменению его размера. Для этого в контекстном меню выбираем пункт «Resize/Move«. Появится следующий экран:

gparted_resize_partition
Рис. 5. Окно изменения размера раздела жесткого диска

В появившемся окне мы видим наш раздел, так сказать, графически, а также, цифры «про него» — под рисунком. Что нам дает это меню. Во первых, в графической половине мы видим какая часть раздела занята (выделено цветом) и какая свободна (белая). Также, по краям слева и справа присутствуют стрелки, которые можно тягать мышью. Сразу под рисунком присутствуют два параметра — Minimum size и Maximum size. Как нетрудно догадаться, это те значения, меньше и больше которых мы не сможем выставить новый размер данного раздела. Минимум определяется объемом уже записанной на данном разделе диска информации (кому нужна была бы программа, стирающая данные с диска?!). Максимум определяется либо текущим размером (как в приведенном примере), либо может быть и больше в случае, если на жестком диске есть еще неразмеченное пространство, примыкающее к данному разделу. В таком случае оно также будет присутствовать в графическом представлении раздела в виде серых полей слева или справа. Благодаря этому раздел можно сделать даже больше, чем он был до этого…

Теперь вернемся к цифрам (тем которые в нижней половине окна). Суть их такова. «Free space preceding» —  свободное место перед разделом. «New size» — новый размер диска. «Free space following» — сваободное место после раздела. Как видим, на моем рисунке в момент, когда это меню только открыли, свободного места нет ни до ни после раздела, а его новый размер равен старому. В случае, если же на жестком диске присутствуют неразмеченные области, примыкающие к данному разделы, то в полях «Free space preceding» и/или «Free space following» будут присутствовать соответствующие цифры, отличные от нуля.  Когда Вы начнете мышью тягать стрелки, изображенные по краям рисунка раздела, все эти цифры (место до и после, а также размер) начнут меняться. С другой стороны, Вы можете самостоятельно (вручную) в каждом из цифровых полей ввести новые значения (если Вы сторонник точных чисел)…

Теперь немножко «лирики». Если Вы читаете данную инструкцию с целью освободить немного места на диске с Windows, для того, чтобы установить Linux, то достаточно будет потянуть мышью стрелку справа так, чтобы свободного места после раздела (значение «Free space following«) стало больше той цифры, которую авторы выбранного Вами дистрибутива указывают как минимально необходимую для установки. Для Mandriva, например, рекомендуют не менее 4 Гб. Обратите внимание, что значения в указанных цифровых полях приведены в Мегабайтах…

gparted_new_partition_parameters_set
Рис. 6. Подтверждение нового размера раздела жесткого диска

После того, как новый размер раздела задан, жмем кнопку «Resize/Move«, как показано на рис. 6. Учтите, что:

  • Не стоит (по крайней мере в случае «откусывания от Windows чуток места под попробовать Linux«) освобождать место «до раздела» (слева).
  • Не бойтесь — что-либо потерять на этом этапе не получится! Все описанные выше действия — это пока только «план действий», и никаких реальных изменений с Вашим жестким диском еще не происходило!
  • Если Вы только освобождали место для Linux, и создавать новые разделы Вам не нужно, то можете сразу перходить к заголовку «А вот теперь приступим!!!» ниже.

Создание нового раздела

Теперь у нас появилось свободное место, чтобы создать новый раздел. Для этого жмем правой кнопкой либо на сером поле в графическом представлении структуры диска, либо на пункте «unallocated» в списке под рисунком. В контекстном меню выбираем пункт «New«.

gparted_new_partition
Рис. 7. Создание нового раздела

Откроется следующее меню:

gparted_new_partition_parameters
Рис. 8. Выбор параметров нового раздела жесткого диска

В нем мы создаем новый раздел и задаем все его параметры. Часть параметров нам уже знакома — они присутствовали в меню изменения раздела, описанном выше. Но добавились еще два параметра. Пункт «Create as» позволяет выбрать тип создаваемого раздела из следующих двух: «Primary partition» (основной раздел) и «Extended partition» (дополнительный раздел). Второй из «новых» пунтов «Filesystem» позволяет задать тип файловой системы, в которую будет отформатирован вновь созданный раздел. Список выбора достаточно широк, описывать его тут я не планировал. Почитать можно тут (по английски, правда). Определившись с параметрами нового раздела, жмем кнопку «+Add«. Если Вам нужно создать несколько разделов, то возвращаемся к заголовку «Создание нового раздела» выше…

А вот теперь приступим!!!

Обращаю внимание на то, что все описаные выше процедуры изменения старого раздела, создания нового раздела, НА САМОМ ДЕЛЕ ПОКА ЧТО НИЧЕГО НЕ СДЕЛАЛИ СО СТАРОЙ СТРУКТУРОЙ ЖЕСТКОГО ДИСКА, а всего лишь запланировали указанные действия. По мере того, как мы будем писать наш «план действий», его список будет расти в самом нижней части окна программы.  С другой стороны, в верхней части окна программы становится активной кнопка «Undo» (отмена). Она позволяет отменить действие (назначенное задание).

После того, как весь «план работы» создан, внимательно просматриваем его еще разок. Если находим ошибку — жмем кнопку «Undo» и создаем новое (в этот раз уже правильное) задание.

После того, как мы на 100% убедились, что все правильно, пришло время нажать кнопку «Apply» (применить). Вот именно после ее нажатия и начнется процесс изменения структуры Вашего жесткого диска…

gparted_apply_changes
Рис. 9. «Apply» — настройка завешена, пора менять разделы!!!

В зависимости от объема «запланированной работы», а также от объема информации на диске, Вам может потребоваться некоторое терпение, чтобы дождаться окончания…

fail2ban охраняет apache (часть «следующая»)…

В прошлой заметке, посвященной fail2ban, я описал пару фильтров, используемых мной для предотвращения «вражеских» происков, направленных против моего apache. Работало все это отлично, и вопросов не возникало. И дальше бы работало, если бы меня не потянуло на разборки с Chillispot. Дело в том, что в описанных мной конфигурациях fail2ban блокирование нежелательного доступа осуществляется при помощи shorewall. А его-то я как раз и поломал, ковыряясь с Chillispot. Точнее, не поломал, а отключил, так как для работы Chillispot требуется загрузка своего собственного скрипта с правилами для iptables, который «множит на ноль» всю работу shorewall

Чтож, iptables, так iptables. Нам-то какая разница!? Нужно всего-лишь заставить fail2ban тоже использовать iptables при блокировании доступа. Для этого залез я в файл /etc/fail2ban/jail.conf и настройки «тюрем» своих поисправлял следующим образом:

[apache-shorewall]

enabled  = true
filter   = apache-noscript
action   = iptables[name=httpd, port=http, protocol=tcp]
logpath  = /var/log/httpd/error_log
maxretry = 2

И второй «тюрьме» тоже:

[apache-overflow]
enabled	= true
filter	= apache-overflows
action   = iptables[name=httpd, port=http, protocol=tcp]
logpath	= /var/log/httpd/error_log
maxretry = 1

Изменения по сравнению с предыдущим вариантом, описанным мной ранее, для наглядности я выделил красным цветом. Также, если сравнить с предыдущими вариантами, я не стал писать строку со вторым «действием» (action) — отправку письма администратору (mail-whois или sendmail). Ему (мне) и так писем достаточно… Названия самих «тюрем» (те, что в указанных примерах написаны в квадратных скобках) я менять не стал. Они все равно ни на что не влияют, только лишь в лог пишутся.

После внесения указанных изменений перезапустил fail2ban командой:

fail2ban-client reload

И все! Кстати, есть еще одно отличие у данного варианта блокирования по сравнению с shorewall, описанным ранее: iptables блокирует только порт apache

RADIUS, MySQL и парочка “веб-морд” ко всему этому …

Приспичило на днях мне RADIUS установить. На вопрос о том, «Зачем?», отвечу — именно с этого я начал, когда захотел создать себе хотспот. Но пока что рассмотрим вопрос «Как я это делал, и с какими трудностями при установке боролся»…

1. Ставим FreeRADIUS.

Итак, начнем с «вводных». На «сервере» моем установлена Mandriva (на данном этапе — версии 2008.1), репозитории её давным-давно настроены, а RADIUS мне приспичило настроить именно с использованием базы данных MySQL. Кстати, Apache, PHP5 и MySQL у меня тоже уже давным-давно были и установлены и настроены. Чтож, начинаем ставить RADIUS. Ставить будем не из исходников, которые при желании можно скачать с сайта FreeRADIUS, а из репозитория. Запускаем консоль от имени администратора (root) и вводим следующую команду:

urpmi freeradius freeradius-mysql libfreeradius1

Дожидаемся окончания успешной установки. Этим самым мы устанавливаем три пакета: сам сервер FreeRADIUS, модуль поддержки MySQL для FreeRADIUS, а также «базовый» набор библиотек. Просматривая список пакетов, которые можно установить из официальных репозиториев Mandriva, в имени которых присутствует слово «RADIUS», я выбрал еще парочку кандидатов для установки. Все в той же консоли от имени root вводим следующую команду:

urpmi freeradius-web libfreeradius-devel

Что это было такое? Пакет «libfreeradius-devel» — это набор дополнительных библиотек для разработчиков. Не уверен, что мне он так уж сильно будет нужен, но как говорится возьмем «на всякий случай». А вот «freeradius-web» — это уже один из тех двух веб-интерфейсов для управления RADIUS-сервером, установку которых я и планирую описать тут. На самом деле программа называется Dialup Admin, при желании, почитать о ней можно тут, а скачать (если кому-то не нравится ставить из репозитория) — тут.

Итак, пять пакетов мы скачали и установили. Не стоит даже и надеяться, что все это уже работает! Пока что мы только готовим ту «глыбу», из которой потом высечем нашу «статую». И для этого нам понадобится еще кое что.

2. Ставим daloRADIUS.

Вопросов собственно, возникает два:

  1. Почему, не доделав одно, мы перескакиваем на другое?
  2. И что это вообще такое и зачем оно нам нужно?

Отвечу сначала на второй вопрос. daloRADIUS — это второй веб-интерфейс для управления все тем же RADIUS-сервером. Зачем второй, если один уже есть? Честно говоря, поначалу у меня Dialup Admin попросту не запустился, и я быстренько «нагуглил» другой. А потом, когда запустил их оба, то решил тут описать все это сразу. А уж кому что больше нравится — решайте сами. Кстати, daloRADIUS по сравнению с Dialup Admin — более новый и более функционально насыщенный. Ну и справедливости ради должен отметить — в конечном итоге, установив и попробовав оба эти веб-интерфейса, я не нашел их достаточно удобными инструментами для управления хотспотом. Но об этом ниже в «Выводах»…

А теперь о том, зачем нам понадобилось устанавливать daloRADIUS до того, как завершено конфигурирование «связки» FreeRADIUS и MySQL. Дело в том, что установка FreeRADIUS с модулем поддержки MySQL еще не означает автоматического создания требуемой базы данных. Как я и говорил, это только «глыба», над которой нам еще предстоит поработать ручками! Но возвращаясь к базе — после установки 5 пакетов, описанных в первой части, у нас на компьютере только того и появляется, что всего-лишь … скрипт для создания в MySQL той самой требующейся для работы FreeRADIUS базы данных. В принципе, ничто не мешает сразу же взять этот скрипт и создать необходимую базу. И так и стоит поступить, только если Вы не планируете … установить daloRADIUS. Дело в том, что с ним также поставляется скрипт создания базы данных MySQL для FreeRADIUS. Но, в отличие от скрипта, поставляемого с самим FreeRADIUS-сервером, скрипт, идущий в комплекте с daloRADIUS, создает более объемную базу, добавляя в нее кроме базовых еще дополнительные таблицы и поля, требующиеся для его собственной работы. А с другой стороны, если изначально создать базу при помощи скрипта «от FreeRADIUS», то впоследствии, при выполнении скрипта «от daloRADIUS», первую базу придется снести. Так зачем дважды делать одно и то же? Уговорил?

Так как в репозиториях Mandriva данной программы нет, идем на сайт daloRADIUS или же на страницу проекта на SourceForge.net. В любом случае — качаем архив с программой. Собственно, сама установка сводится к нескольким простым действиям:

  • Распаковать содержимое архива.

Переходим в ту папку, куда сохранили скачанный архив с программой и выполняем команду:

tar -zxvf имя_архива.tar.gz

  • Полученный результат нужно скопировать в папку веб-сервера Apache.

Примечания по копированию. Во первых, результатом распаковки реального архива будет папка с именем наподобие такого — daloradius-0.9-8. Лично я для удобства папку эту сразу же переименовал в просто daloradius. А во вторых, папка, в которой находятся документы веб-сервера Apache в моем случае (так настроено), называется /var/www/html, и именно это и показано в приведенной ниже команде. А теперь вернемся к тому факту, что мы только что (командой приведенной выше) распаковали архив с программой. Находясь там же, выполняем следующую команду:

cp daloradius/ /var/www/html -R

  • Теперь нужно назначить владельцем папки с программой того пользователя, от имени которого работает веб-сервер.

В моем случае, это пользователь apache из группы apache. Чтобы сменить владельца, выполняем команду:

chown apache:apache /var/www/html/daloradius -R

  • Ну и напоследок, нужно изменить права доступа на файл конфигурации daloRADIUS.

Для этого выполняем команду:

chmod 644 /var/www/html/daloradius/library/daloradius.conf.php

На этом предварительную установку daloRADIUS можно считать законченой.

3. Подготавливаем MySQL (создаем базы).

Ну вот и добрались мы до «высечения» нашей «статуи»!.. Собственно, до настройки взаимодействия FreeRADIUS с базой данных MySQL нужно эту самую базу создать. Как я писал уже выше, на данном этапе у нас есть только скрипты для ее создания. И из двух возможных «претендентов» лично я выбрал скрипт, поставлявшийся в комплекте с daloRADIUS. Вот его и будем сейчас «юзать». В приведенном ниже примере я использую имя базы «radius_db«, имя пользователя для данной базы — «radius_user» и пароль «radius_passwd» для доступа данного пользователя к данной базе. Вам же я рекомендую выбрать свои значения и подставлять их в соответствующие команды. Предполагается, что мы по-прежнему находимся в консоли от имени root-а. Запускаем команду:

mysql -uroot -p

Если попросит, вводим пароль root-а для MySQL. (Если же не попросит, то совет на будущее — установить этот самый пароль в целях повышения безопасности). После успешного ввода пароля мы попадаем в консоль MySQL. На всякий случай напомню, что все команды в ней должны заканчиваться точкой с запятой (;). Создаем базу даных:

CREATE DATABASE radius_db;

Переходим в только что созданную базу данных:

use radius_db;

Запускаем тот самый скрипт, который и создаст в этой базе данных всё необходимое:

source /var/www/html/daloradius/contrib/db/fr2-mysql-daloradius-and-freeradius.sql;

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

После того, как база создана (мы получили ответ наподобие «Query OK, ХХХ rows affected…»), создаем пользователя и назначаем ему права на данную базу данных:

GRANT ALL PRIVILEGES ON radius_db.* TO 'radius_user'@'localhost' IDENTIFIED BY 'radius_passwd';

В данном случае следует обратить внимание на слово «localhost», означающее, что и база данных MySQL и сервер FreeRADIUS установлены на одном компьютере. В противном случае имя компьютера в приведенной команде нужно будет изменить.

Теперь наша база готова, но … только для случая использования веб-интерфейса daloRADIUS. Если же планируется использовать Dialup Admin, то нам необходимо добавить в базу еще несколько таблиц. Необходимое примечание — после установки пакета freeradius-web файлы программы Dialup Admin на моем «сервере» расположились в папке /var/www/freeradius-web, а документация к ней — в папке /usr/share/doc/freeradius-web/sql. В папке с документацией, в подпапке /sql/mysql находятся четыре скрипта для создания недостающих для работы Dialup Admin дополнительных таблиц. Если Вы еще не вышли из консоли MySQL, то просто вводим приведенные ниже четыре команды. Если же вышли, то сначала возвращаемся в консоль MySQL командой «mysql -uroot -p» и выбираем базу командой «use radius_db;«. А уже потом создаем 4 новые таблицы — «badusers»

source /usr/share/doc/freeradius-web/sql/mysql/badusers.sql;

«userinfo»:

source /usr/share/doc/freeradius-web/sql/mysql/userinfo.sql;

«mtotacct:»

source /usr/share/doc/freeradius-web/sql/mysql/mtotacct.sql;

«totacct»:

source /usr/share/doc/freeradius-web/sql/mysql/totacct.sql;

После того, как успешно созданы и эти 4 таблицы, можно выйти из консоли MySQL командой «exit«. Но, в моем случае попытка создания данных 4 таблиц привела лишь к сообщениям об ошибках. «Удачным» примером может служить скрипт для создания таблицы badusers (badusers.sql). При попытке его запуска MySQL выдал два сообщения об ошибках — «ERROR 1067 (42000): Invalid default value for ‘id’» и «ERROR 1072 (42000): Key column ‘Date’ doesn’t exist in table«. Пришлось редактировать вручную.

Вот так скрипт выглядел изначально:

#
# Table structure for table 'badusers'
#
CREATE TABLE badusers (
  id int(10) DEFAULT '0' NOT NULL auto_increment,
  UserName varchar(30),
  IncidentDate	datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
  Reason varchar(200),
  Admin varchar(30) DEFAULT '-',
  PRIMARY KEY (id),
  KEY UserName (UserName),
  KEY Date (Date)
);

А вот так — после правки:

#
# Table structure for table 'badusers'
#
CREATE TABLE badusers (
  id int(10) DEFAULT NULL NOT NULL auto_increment,
  UserName varchar(30),
  IncidentDate	datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
  Reason varchar(200),
  Admin varchar(30) DEFAULT '-',
  PRIMARY KEY (id),
  KEY UserName (UserName),
  KEY IncidentDate (IncidentDate)
);

Для наглядности различия выделены красным. Как мы видим, для исправления первой ошибки (1067) я просто заменил числовой ноль (0) на значение «NULL». После этого сообщение о неверном «умолчательном» значении дл колонки «id» ушло. Второе сообщение об ошибке (1072) говорит нам, что мы пытаемся сделать ключевым невуществующий в таблице (!!!) столбец «Date». И это действительно так! Взглянувши на структуру таблицы, мы видим, что там из дат есть только столбец «IncidentDate». Вот именно его я и сделал ключевым…  Подобная правка может потребоваться и для трех остальных скриптов. После правки повторно запускаем создание 4 дополнительных таблиц. Получив ответ вида «Query OK, ХХХ rows affected…» на все четыре команды по созданию доп. таблиц, выходим из консоли MySQL командой «exit«.

4. Настраиваем FreeRADIUS на использование базы MySQL.

В самом начале мы установили FreeRADIUS. Помните? И все это время он тихонько работал! Не верите? Введите команду:

ps -e|grep radiusd

Нюанс в том, что пока что наш FreeRADIUS не использует базу MySQL. Чтож, будем «принуждать». Для этого необходимо выполнить несколько действий. Во первых, нужно отредактировать файл /etc/raddb/sql.conf. В нем нужно найти указанные строки (они не будут идти подряд, как в примере ниже) и присвоить им следующие значения:

	database = "mysql"
	server = "localhost"
	login = "radius_user"
	password = "radius_passwd"
	radius_db = "radius_db"
	usergroup_table = "radusergroup"
	readclients = yes

Это были параметры, используемые FreeRADIUS при подключении к базе MySQL. Важно, чтобы имя базы, пользователя и пароль, вписанные нами в файл /etc/raddb/sql.conf, совпадали с теми, которые мы ранее использовали при создании базы в MySQL. Следующим шагом мы редактируем файл /etc/raddb/radiusd.conf. В нем нам нужно найти и раскомментировать (убрать символ #) строку:

	$INCLUDE sql.conf

Этим самым мы «глобально» разрешаем FreeRADIUS использовать в своей работе sql-базу данных (параметры которой мы только что описали в файле /etc/raddb/sql.conf). И напоследок нужно отредактировать файл /etc/raddb/sites-available/default. Файл сам по себе не маленький, но придется постараться. В нем нужно найти секцию authorize{} и в ней раскомментировать строку, содержащую директиву «sql». Это позволяет FreeRADIUS искать записи о пользователях в sql-базе данных при их авторизации. Также, нужно найти секцию accounting{} и в ней также раскомментировать строку «sql». Это вынуждвет FreeRADIUS свои записи о подсчете трафика также хранить в sql-базе данных.

Все. Настройка взаимодействия FreeRADIUS с базой данных MySQL завершена. Чтобы внесенные нами изменения вступили в силу, сервер FreeRADIUS нужно перезапустить. Мы же все еще в консоли с правами root-а? Тогда просто вводим команду:

/etc/init.d/radiusd restart

Если все хорошо, то сначала мы прочтем «ОК» по поводу остановки сервера freeradius, а потом — «ОК» по поводу его запуска. С этого момента «связка» FreeRADIUS с базой данных MySQL работает, и нам пора это проверить…

5. Проверка «связки» FreeRADIUS + MySQL

Чтобы убедиться, что наш сервер работает и «общается» с базой данных, выполним следующее. Сначала войдем в консоль MySQL:

mysql -uroot -p

Выберем базу данных :

use radius_db;

Вставим в нее новую запись (в таблицу «radcheck» про пользователя «sqltest» и его пароль «testpwd»):

INSERT INTO radcheck (UserName, Attribute, Value) VALUES ('sqltest', 'Password', 'testpwd');

(По сути, мы только что «по быстрому» завели в нашем RADIUS-сервере тестового пользователя). На всякий случай проверим, что запись таки была добавлена:

select * from radcheck where UserName='sqltest';

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

+----+----------+-----------+----+---------+
| id | username | attribute | op | value   |
+----+----------+-----------+----+---------+
|  1 | sqltest  | Password  | == | testpwd |
+----+----------+-----------+----+---------+
1 row in set (0.00 sec)

Если все хорошо, выходим из консоли MySQL:

exit

А теперь пошлем запрос нашему RADIUS-серверу:

radtest sqltest testpwd localhost 1812 testing123

В данном случае служебная программа radtest (предназначенная для проверки сервера RADIUS) посылает запрос на порт 1812 локального (localhost) RADIUS-сервера с просьбой подтвердить авторизацию пользователя с именем “sqltest” и паролем “testpwd“. Ответ сервера выглядит примерно так:

Sending Access-Request of id 136 to 127.0.0.1 port 1812
        User-Name = "sqltest"
        User-Password = "testpwd"
        NAS-IP-Address = 127.0.0.1
        NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=136, length=20

И нам в нем важна выделенная красным цветом строка “Access-Accept”, которая подтверждает, что клиент “sqltest” принят сервером RADIUS, а значит наша “связка” FreeRADIUS + MySQL работает нормально! Следовательно, пора прикручивать веб-интерфейсы…

6. Настраиваем Dialup Admin

Настройка программы проста и сводится к редактированию всего лишь одного файла конфигурации — /etc/freeradius-web/admin.conf. В нем нужно найти указанные строки (они не обязательно будут идти подряд, как в примере ниже) и присвоить им следующие значения:

sql_type: mysql
sql_server: localhost
sql_port: 3306
sql_username: radius_user
sql_password: radius_passwd
sql_database: radius_db
sql_usergroup_table: radusergroup
sql_debug: false

Важно, чтобы имя базы, имя пользователя и пароль, вписанные нами в файл /etc/freeradius-web/admin.conf, совпадали с теми, которые мы ранее использовали при создании базы в MySQL. Все. Даже перезапускать ничего не нужно. Просто запускаем браузер (любой) и набираем в поле адреса:

http://localhost/freeradius-web/

  • Подразумевается, что браузер запущен на том самом компьютере, где установлен Dialup Admin. Если Вы пытаетесь войти в программу с другого — укажите в браузере имя или ip-адрес компьютера, на котором установлен Dialup Admin.
  • Программа сразу же открывает интерфейс для управления сервером RADIUS, не спрашивая никакого имени и пароля. То есть, никакой собственной защиты она не использует. Поэтому доступ к странице программы настоятельно рекомендуется защитить, например с помощью файла .htaccess, настроив его по собственному разумению.

7. Настраиваем daloRADIUS.

Подразумевается, что Вы уже установили программу и настроили ее владельца и права доступа, как описано выше в пункте 2 «Ставим daloRADIUS». Для настройки программы необходимо отредактировать всего лишь один файл конфигурации — /var/www/html/daloradius/library/daloradius.conf.php. В нем нужно найти указанные строки (они не обязательно будут идти подряд, как в примере ниже) и присвоить им следующие значения:

$configValues['CONFIG_DB_ENGINE'] = 'mysql';
$configValues['CONFIG_DB_HOST'] = 'localhost';
$configValues['CONFIG_DB_USER'] = 'radius_user';
$configValues['CONFIG_DB_PASS'] = 'radius_passwd';
$configValues['CONFIG_DB_NAME'] = 'radius_db';
$configValues['CONFIG_DB_TBL_RADUSERGROUP'] = 'radusergroup';
$configValues['CONFIG_PATH_DALO_VARIABLE_DATA'] = '/var/www/html/daloradius/var';
$configValues['CONFIG_LANG'] = 'ru';

Важно, чтобы имя базы, имя пользователя и пароль, вписанные нами в файл /var/www/html/daloradius/library/daloradius.conf.php, совпадали с теми, которые мы ранее использовали при создании базы в MySQL. Программа готова к запуску. Просто запускаем браузер (любой) и набираем в поле адреса:

http://localhost/daloradius/

  • Подразумевается, что браузер запущен на том самом компьютере, где установлен daloRADIUS. Если Вы пытаетесь войти в программу с другого — укажите в браузере имя или ip-адрес компьютера, на котором установлен daloRADIUS.
  • Программа при запуске открывает окно входа (login) в котором нужно ввести имя пользователя и пароль. При первом запуске (то есть, Вы ничего не меняли еще) вводим пользователя «administrator» и пароль «radius«. В дальнейшем настоятельно рекомендуется сменить хотя-бы пароль, а то будет как с левым Windows — пользователей миллионы, а пароль один. Более того, я бы порекомендовал дополнительно защитить доступ к странице программы с помощью файла .htaccess, настроив его по собственному разумению.

Ну вот и все… Ах, ну да —

Выводы

Установив и настроив оба этих интерфейса, я попробовал с их помощью поуправлять своим хотспотом. Но увы, ни один из них не показался мне достаточно функциональным и удобным решением моих нужд. И я был вынужден продолжить поиск веб-интерфейса к хотспоту. В итоге, мой личный выбор пал на программу Easyhotspot. Вот ее возможности меня на тот момент полностью устраивали. В итоге, сначала я перевел ее на русский язык, потом начал процесс постепенной модернизации…

В итоге — предлагаю всем желающим приобрести русифицированный и модернизированный вариант программы Easyhotspot плюс подробнейшее руководство по установке хотспота. Подробности здесь.

Почитать еще:

  1. http://daloradius.wiki.sourceforge.net/
  2. http://wiki.freeradius.org/ и в том числе http://wiki.freeradius.org/SQL_HOWTO
  3. http://www.howtoforge.com/authentication-authorization-and-accounting-with-freeradius-and-mysql-backend-and-webbased-management-with-daloradius

Почитать все мои заметки о хотспотах:

  1. https://wifi-hotspot.zp.ua/wp/category/xotspot/

Упрощаем скрипт автоматического обновления

Пока выполнял обновление дистрибутива из интернета, пришлось почитать подсказку по urpmi более, как говорил известный юморист, «щетильнее». И нашел в ней ключик «- -auto-update». А ключик этот заставляет программу urpmi сначала обновить источники, а уже потом искать обновленные пакеты. По этому, описанный ранее скрипт я упростил на одну команду (urpmi.update updates), и теперь он выглядит так:

#!/bin/bash
urpmi --auto-update --auto --update --auto-select &> /var/log/auto_update.log

Результат то же самый…

И снова о переключении клавиатуры в Mandriva — другой индикатор

Когда-то ранее я уже писал, как решал для себя вопрос переключения и индикации раскладки клавиатуры в Mandriva Linux. Но вот недавно попала мне в руки флешка c Mandriva Flash. Просматривая ее, я увидел, что там используется индикатор раскладок клавиатуры KKBSwitch. Быстренько нашел сайт автора программы — http://kkbswitch.sourceforge.net/. Посмотрел. И решил поставить вместо использовавшейся мной программы X Neural Switcher. А буквально на днях я проапгрейтил систему на своем сервере с Mandriva 2008.0 на Mandriva 2008.1. Это отдельная «целая история», но после этого я запустил у себя “Центр управления Mandriva Linux”, в нем выбрал “Управление программами” и ввел имя программы KKBSwitch в поле “Поиск”. Программа нашлась в репозиториях Mandriva. Поставил «птичку», нажал кнопку «Применить», перезапустил KDE. Все! В системном лотке появился индикатор (см. рис. ниже). Если щелкнуть на индикаторе правой кнопкой, то появится контекстное меню, один из пунктов которого позволяет настроить вид индикатора — буквы, флаги или же и то и другое одновременно.

Таким образом, достаточно всего лишь установить программу KKBSwitch и настроить переключение раскладок средствами X-Window, как ранее я уже писал тут. Программу X Neural Switcher в этом случае устанавливать не нужно. И не забываем полностью отключить управление и индикацию раскладок клавиатуры средствами KDE в “Центре управления KDE”.

На приведенном ниже рисунке показаны как индикатор KKBSwitch (слева), так и X Neural Switcher (справа). Кто из них Вам больше нравится — решайте сами.

kbswitch_vs_xneur

От себя лишь могу добавить, что KKBSwitch потребляет системных ресурсов меньше, чем X Neural Switcher (что и не удивительно)…

26.06.2009 …Как говорят — «Не прошло и пол года». И при установке очередной версии Mandriva я в качестве десктопа выбрал KDE-4. Пришлось вернуться к данному вопросу. Читать дальше