Команды, которые нужно набирать на клавиатуре в сессии 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 и убираем комментарии напротив нужных нам модулей:
Здесь мы подключаем модули "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>.
В файл error.log сервер записывает сообщения обо всех своих проблемах.
Если что-то не работает или работает не так как должно, загляните в
этот файл. Возможно, найдете решение проблемы.
А это - список файлов, которые сервер ищет в каждом подкаталоге "/opt/share/www/" с целью автоматического отображения в окне интернет-броузера. Если мы поместим в наш каталог "/opt/share/www/download/" файл "index.htm" (например), то при заходе на http://<IP_PlayonHD>:<port>/download мы увидим отображение странички index.htm в окне интернет-броузера. Это, так называемая, страница по-умолчанию. А что будет, если в каталоге "download" не будет ни одного из перечисленных в параметре "index-file.names" файлов ? Мы
увидим список всех файлов и подкаталогов в "download" с возможностью
навигации по дереву подкаталогов, а также возможностью загрузки любого
из файлов. Это удобное средство для того, чтобы выложить файлы для свободного просмотра и скачивания.
В файле access.log мы найдем протокол сервера обо всех подключениях к нему. Можно всегда узнать о том, кто заходил к нам в гости, в какой раздел и когда (по IP-адресу).
server.port = 443
Порт на который настроен lighttpd. Типичные значения также:
"80", "8080", но может быть произвольным. Можно менять. Главное, чтобы
этот порт не использовали другие процессы и приложения медиаплеера.
Этот раздел очень важен. Именно здесь описан метод аутентификации и какие разделы будут защищены на Web-сервере. Как
видно, мы используем простой (plain) способ хранения информации о
логинах/паролях Web-сервера. Они лежат в открытом виде в текстовом
файле "/opt/etc/lighttpd/lighttpd-pwd.txt".
Файл "lighttpd-pwd.txt"
можно создать любым текстовым редактором и "зарегистрировать"
пользователя lighttpd внесением в него строчек вида "логин:пароль".
Например, содержимое файла lighttpd-pwd.txt может выглядеть так:
Параметр "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
Имя и путь к сертификату сервера указан в конфигурационном файле
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, но пароль уже зашифрован:
Проверяем доступ к rtorrent-у с помощью шифрованного подключения:
https://<IP_PlayonHD>:<port>/rtorrent
Убедимся, что все работает и идем пить кофе.
Теперь выскажу пару сомнений относительно необходимости активации SSL на Web-сервере нашего медиаплеера. Просто мои раздумья вслух.... Обратная сторона этой технологии - повышенная нагрузка на процессор медиаплеера в процессе обмена данными (шифрования). Но
это не главная проблема для нас. Более критичен второй момент -
повышенный расход оперативной памяти вследствие загрузки дополнительных
динамических библиотек. Нужно учесть, что у PlayOn!HD всего 128 МБайт ОЗУ,
которое уже почти полностью заполнено модулями операционной системы,
процессов-медиапроигрывателей, rtorrent и lighttpd в базовой
конфигурации и его контента. Поэтому можно легко уйти в свопинг
(вытеснение части задач из оперативной памяти на винчестер), что
способно на длительное время сильно ухудшить производительность
медиаплеера, при любой активации "спящего" процесса или выполнении
ресурсоемких операций активным процессом. Я неоднократно наблюдал это
на своем плеере, что я связываю с перегруженностью оперативной памяти
плеера. Увеличить объем памяти на плеере мы не можем. Значит, не стоит загружать в нее то, без чего можно обойтись.
Поэтому,
если ваши файлы не особо секретные (фильмы, фото, софт, т.д.),
возможно, стоит ограничиться аутентификацией basic, если работает
rtorrent.
Удачи !
Прикрепленные файлы: исполняемый файл "htdigest" и файл конфигурации lighttpd с включенной basic аутентификацией "lighttpd.conf".
Товарищи, сделал всё по инструкции, использовал метод "basic". Окно воода логина/пароля появляется, но аутентфикация не проходит. Где может быть подвох?
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]