Plain аутентификация в lighttpd | Lighttpd

Задача – закрыть некоторые директории на веб сервере под управлением lighttpd паролями.
Поскольку на сайте проекта нужно покопаться в документации – пишу себе на память.


Первое – раскомментируем в конфиге modules.conf строку "mod_auth":

server.modules = (
  "mod_access",
  "mod_alias",
  "mod_auth",
#  "mod_evasive",
#  "mod_redirect",
#  "mod_rewrite",
#  "mod_setenv",
#  "mod_usertrack",
)

А в основной конфиг добавляем строки:

$HTTP["url"] =~ "^/administrator" {
  auth.backend = "plain"
    auth.backend.plain.userfile = "/usr/local/etc/lighttpd/.htpasswd"
#        auth.backend.htpasswd.userfile = "/usr/local/etc/lighttpd/.htpasswd"
      auth.require = ("/administrator" => (
   "method"  => "basic",
    "realm"   => "Valid users only",
     "require" => "valid-user"
       ))
       }

Обращаем внимание: тип авторизации plain, следовательно в строках auth.backend = "plain" и в auth.backend.plain.userfile – везде указываем тип авторизации – plain (может быть ещё htpasswd и т.д.). Файл паролей лучше хранить за пределами дерева директорий каталога веб – лайти по дефолту файлы начинающиеся с точки не прячет. Так что если перешли с апача а в папках валяются файлы .htpasswd или подобные – уберите.

Если мы хотим закрыть паролем файл, или определённый тип файлов – пишем в инструкциях $HTTP["url"] =~ "^/administrator" и auth.require = ("/administrator" => имена файлов или используем регулярные выражения:

$HTTP["url"] =~ "^/admin.php" {
...
auth.require = ("/admin.php" => (
...

Пароли при plain аутентификации пишем в файл паролей простым текстом.
Пример:

user:MyPass0rd

Если мы хотим использовать криптованные пароли как при basic аутентификации в апаче вместо метода plain указываем htpasswd.

$HTTP["url"] =~ "^/administrator" {
  auth.backend = "htpasswd"
    auth.backend.htpasswd.userfile = "/usr/local/etc/lighttpd/.htpasswd"
#        auth.backend.htpasswd.userfile = "/usr/local/etc/lighttpd/.htpasswd"
      auth.require = ("/administrator" => (
   "method"  => "basic",
    "realm"   => "Valid users only",
     "require" => "valid-user"
       ))
       }

Файл паролей создаем с помощью утилиты из состава апача:

#htpasswd -c /usr/local/etc/lighttpd/.htpasswd user

Хотите большей секьюрности – подымаем https и шифруем пароли (используем методы htpasswd, htdigest и т.д.).