PlayOn!HD. Подключаем аутентификацию lighttpd - Инструкции - Инструкции, руководства - Каталог статей - playon!hd альтернативные прошивки
Вторник, 28.03.2017, 22:38
Вы вошли как
Приветствую Вас ГостьRSS
Меню
Категории раздела
Инструкции [11]
Тестовый раздел [0]
Пишем сюда предварительно, потом переносим.
Прочее [3]
Облако тегов
HDD playon!hd playonhd btpd 100 peers video 200 peers optware прошивка Realtek mipsel wifi rtorrent Firmware web Woxter i-Cube 750 ruTorrent Mede8er lighttpd digest Samba workgroup peers Port podware Compilation gcc Native hostname bmp bmp2rt felics rt2bmp ipkg ipkg-cl libexif libsigc++ Screen vsftpd transmission htop MC Nano rdate datasheet RTD1073
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа

Главная » Статьи » Инструкции, руководства » Инструкции

PlayOn!HD. Подключаем аутентификацию lighttpd
Эта статья является продолжением предыдущей, посвященной установке Web-интерфейса для rtorrent клиента:
Установка Web-интерфейса для rtorrent клиента

Команды, которые нужно набирать на клавиатуре в сессии telnet, выделены зеленым цветом.

Итак, у нас есть работающий Web-сервер lighttpd и сайт rtorrent, размещенный в каталоге "/opt/share/www".
Доступ к управлению rtorrent через Web-интерфейс осуществляется без пароля, что при открытии соответствующих портов на домашнем роутере для доступа к сайту через Интернет, создает угрозу несанкционированного доступа к медиаплееру через Web-сервер lighttpd.
Устраним эту проблему путем включения аутентификации на lighttpd.
Проще говоря, теперь при доступе к конфиденциальным разделам Web-сервера, которые мы хотим защитить, сервер будет запрашивать логин и пароль.

Есть два способа сделать это:
Метод basic передает имя пользователя и пароль по сети в открытом виде (закодированными в base64), что способствует возникновению проблемы безопастности в случае если соединение между клиентом и сервером не шифруется.
Метод digest передает только хешированную информацию, что значительно повышает конфидециальность аутентификационных данных в незащищённых сетях.

Включить basic метод аутентификации с простым, открытым (plain) способом хранения паролей очень легко.
Все необходимое уже есть в пакете инсталляции lighttpd. Ничего дополнительно инсталлировать не требуется. Нужно только слегка подправить файл конфигурации lighttpd (/opt/etc/lighttpd/lighttpd.conf).
К этой статье прилагается рабочий (проверенный на PlayOn!HD) файл конфигурации Web-сервера с включенной basic авторизаций. Но мы пройдемся по ключевым параметрам файла конфигурации lighttpd для понимания его настроек. С целью возможного их дальнейшего осознанного изменения.

Отрываем файл комфигурации нашего Web-сервера lighttpd.conf и убираем комментарии напротив нужных нам модулей:

server.modules   = (
                                "mod_access",
                                "mod_auth",
                                "mod_fastcgi",
                                "mod_cgi",
                                "mod_scgi",
                                "mod_accesslog" )

Здесь мы подключаем модули "mod_access" и "mod_auth" для включения аутентификации.

server.document-root    = "/opt/share/www/"

Это корневой каталог нашего Web-сервера.
Если вы создадите здесь, например, каталог "/opt/share/www/download", он станет доступен таким образом:
http://<IP_PlayonHD>:<port>/download
Сайт по-умолчанию находится в каталоге: /opt/share/www/lighttpd
Мы попадем на сайт по-умолчанию, если зайдем на медиаплеер просто по IP без паарметров: http://<IP_PlayonHD> или http://<IP_PlayonHD>:<port>.

server.errorlog              = "/opt/var/log/lighttpd/error.log"

В файл error.log сервер записывает сообщения обо всех своих проблемах. Если что-то не работает или работает не так как должно, загляните в этот файл. Возможно, найдете решение проблемы.

index-file.names            = (     "index.php", "index.html",
                                    "index.htm", "default.htm",
                                    "lighttpd/index.html" )

А это - список файлов, которые сервер ищет в каждом подкаталоге "/opt/share/www/" с целью автоматического отображения в окне интернет-броузера. Если мы поместим в наш каталог "/opt/share/www/download/" файл "index.htm" (например), то при заходе на
http://<IP_PlayonHD>:<port>/download
мы увидим отображение странички index.htm в окне интернет-броузера. Это, так называемая, страница по-умолчанию.
А что будет, если в каталоге "download" не будет ни одного из перечисленных в параметре "index-file.names" файлов ?
Мы увидим список всех файлов и подкаталогов в "download" с возможностью навигации по дереву подкаталогов, а также возможностью загрузки любого из файлов.
Это удобное средство для того, чтобы выложить файлы для свободного просмотра и скачивания.

accesslog.filename        = "/opt/share/www/log/access.log"

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

server.port                   = 443

Порт на который настроен lighttpd. Типичные значения также: "80", "8080", но может быть произвольным. Можно менять. Главное, чтобы этот порт не использовали другие процессы и приложения медиаплеера.

auth.backend               = "plain"
auth.backend.plain.userfile = "/opt/etc/lighttpd/lighttpd-pwd.txt"
auth.require               = ( "/rtorrent" =>
                               (
                                 "method"  => "basic",
                                 "realm"   => "PlayOn!HD rtorrent",
                                 "require" => "user=oleg|user=taras|user=rtorrent"
                               ),
                               "/download" =>
                               (
                                 "method"  => "basic",
                                 "realm"   => "PlayOn!HD Download",
                                 "require" => "valid-user"
                               )
                             )

Этот раздел очень важен. Именно здесь описан метод аутентификации и какие разделы будут защищены на Web-сервере.
Как видно, мы используем простой (plain) способ хранения информации о логинах/паролях Web-сервера. Они лежат в открытом виде в текстовом файле "/opt/etc/lighttpd/lighttpd-pwd.txt".

Файл "lighttpd-pwd.txt" можно создать любым текстовым редактором и "зарегистрировать" пользователя lighttpd внесением в него строчек вида "логин:пароль". Например, содержимое файла lighttpd-pwd.txt может
выглядеть так:

oleg:qwerty
taras:password2
rtorrent:super-mega-parol
user1:pwd1
user2:pwd2

Параметр "auth.require" описывает - какие разделы сервера требуют защиты паролем и кто из описанных в файле "lighttpd-pwd.txt" пользователей может подключаться к каким из разделов.

В нашем примере мы разрешаем пользователям: oleg, taras и rtorrent подключаться к разделу:
http://<IP_PlayonHD>:<port>/rtorrent
Всем остальным - не разрешаем.

А к сайту
http://<IP_PlayonHD>:<port>/download
мы разрешаем подключаться всем пользователям, которые описаны в файле "lighttpd-pwd.txt".

Поскольку, корневой сайт "/" не описан в параметре "auth.require", доступ к нему получают все желающие.
Это же относится к разделу "/log", который желательно закрыть паролем. Сделайте это самостоятельно, добавив три строчки описания в раздел "auth.require".

Достоинство метода аутентификации "basic" - его простота и нетребовательность к аппаратным ресурсам.
Его недостатком является передача всей информации (включая, логин и пароль доступа к web-серверу) через интернет в открытом (незашифрованном) виде. Существует риск перехвата и использования этой информации для несанкционированного доступа к вашим данным.


Другой метод аутентификации - "digest", практически, исключает такую возможность.
Ура, lighttpd поддерживает и его !
Особенность метода аутентификации "digest" заключается в том, что при подключении к Web-серверу (по протоколу https), сервер и клиент (интернет броузер) первым делом устанавливают безопасное шифрованное соединение.
Запрос и отправка конфиденциальной информации впоследствии (а также вообще всей(!) информации) происходит только в шифрованном виде. Именно в таком режиме работают все платежные системы в Интернете и все
серьезные организации.
На нашем Web-сервере lighttpd можно эту технологию активировать и использовать.
Сейчас посмотрим как это сделать.

В сети есть много хороших ресурсов с рекомендациями по настройке SSL на lighttpd. И все они рабочие.
Но я бы выделил небольшую страничку из форума Asus, которая содержит максимум полезной информации на эту тему и содержащую, к тому же, прикрепленную программу "htdigest" (ее выкусили из пакета установки apache) для MIPS процессоров (как раз у нас такой), который понадобится для заведения пользователей lighttpd с автоматической шифрацией пароля.
Я также приложил к статье этот исполняемый файл "htdigest" в оригинальном виде (на всякий случай).
Запишите его в каталог "/opt/sbin/" и дайте права на выполнение.
Ссылка на первоисточник:
http://wl500g.info/showpost.php?p=90459&postcount=343

Приведенный ниже фрагмент настройки подсистемы аутентификации lighttpd активирует метод аутентификации digest (обмен шифрованными данными) и способ хранения паролей в зашифрованном виде (htdigest)
при доступе к Web-интерфейсу rtorrent:
http://<IP_PlayonHD>:<port>/rtorrent

ssl.engine                    = "enable"
ssl.pemfile                   = "/opt/var/run/lighttpd.pem"
auth.backend               = "htdigest"
auth.backend.htdigest.userfile = "/opt/etc/lighttpd/lighttpd-crypt-pwd.txt"
auth.require               = ( "/rtorrent" =>
                               (
                                 "method"  => "digest",
                                 "realm"   => "rtorrent",
                                 "require" => "valid-user"
                               )
                     )

Для активации SSL шифрования, потребуется установка дополнительных пакетов. Ставим их:

ipkg install openssl
ipkg install apr-util

Генерируем сертификат сервера "lighttpd.pem" на 10 лет. Для этого запускаем утилиту openssl в каталоге "/opt/var/run":

cd /opt/var/run
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 3650 -nodes




Имя и путь к сертификату сервера указан в конфигурационном файле lighttpd в параметре "ssl.pemfile". При желании их можно изменить.

Регистрируем пользователя oleg (например). При первом запуске нам нужно создать сам файл с паролями. Для создания файла (первый раз) ставим ключ -c:
htdigest -c /opt/etc/lighttpd/lighttpd-crypt-pwd.txt rtorrent oleg

Для смены пароля у пользователя oleg или заведения нового пользователя oleg в уже существующем файле lighttpd-crypt-pwd.txt:
htdigest /opt/etc/lighttpd/lighttpd-crypt-pwd.txt rtorrent oleg

Смотрим файл "/opt/etc/lighttpd/lighttpd-crypt-pwd.txt". В нем хранится информация о логинах и паролях в том же формате, что и в способе plain, но пароль уже зашифрован:

user1:site1:47131d45451cad2ecb71d1818baf9e7d
user2:site1:7ae5dfd6d3b963f023d83f4e3c9b4c8f
oleg:rtorrent:ec07dec5cfe391c347a7ca88b874d1d3


Перезапускаем Web-сервер:

S80lighttpd stор
S80lighttpd start

Проверяем доступ к rtorrent-у с помощью шифрованного подключения:

https://<IP_PlayonHD>:<port>/rtorrent

Убедимся, что все работает и идем пить кофе.

Теперь выскажу пару сомнений относительно необходимости активации SSL на Web-сервере нашего медиаплеера.
Просто мои раздумья вслух....
Обратная сторона этой технологии - повышенная нагрузка на процессор медиаплеера в процессе обмена данными (шифрования).
Но это не главная проблема для нас. Более критичен второй момент - повышенный расход оперативной памяти вследствие загрузки дополнительных динамических библиотек. Нужно учесть, что у PlayOn!HD всего 128 МБайт ОЗУ, которое уже почти полностью заполнено модулями операционной системы, процессов-медиапроигрывателей, rtorrent и lighttpd в базовой конфигурации и его контента.
Поэтому можно легко уйти в свопинг (вытеснение части задач из оперативной памяти на винчестер), что способно на длительное время сильно ухудшить производительность медиаплеера, при любой активации "спящего" процесса или выполнении ресурсоемких операций активным процессом. Я неоднократно наблюдал это на своем плеере, что я связываю с перегруженностью оперативной памяти плеера. Увеличить объем памяти на плеере мы не можем. Значит, не стоит загружать в нее то, без чего можно обойтись.

Поэтому, если ваши файлы не особо секретные (фильмы, фото, софт, т.д.), возможно, стоит ограничиться аутентификацией basic, если работает rtorrent.

Удачи !

Прикрепленные файлы: исполняемый файл "htdigest" и файл конфигурации lighttpd с включенной basic аутентификацией "lighttpd.conf".
Категория: Инструкции | Добавил: BOBKA (21.01.2010)
Просмотров: 6268 | Комментарии: 1 | Теги: playon!hd, lighttpd, digest | Рейтинг: 3.0/2
Всего комментариев: 1
1  
Товарищи, сделал всё по инструкции, использовал метод "basic". Окно воода логина/пароля появляется, но аутентфикация не проходит. Где может быть подвох?

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]