Закрываем доступ для нежелательных пользователей
Появилась задача ограничить доступ на сервере где используется lighttpd. До этого был редирект и доступ запрещен для определенных IP адресов. В lighttpd для этих целей используется mod-auth
, который необходимо добавить в секции модулей в lighttpd.conf
или в modules.conf
Создадим директорию для хранения хэшей:
# mkdir /etc/lighttpd/htpasswd/ -p
Создадим файл с хэшом, для этого установим утилиту htpasswd
:
$ sudo apt-get install apache2-utils
Воспользуемся утилитой:
$ htpasswd -m -n username
New password:
Re-type new password:
username:$apr1$E/Qs7CJs$Rs13I7etTZBf0oRIJPDpf1
Скопируме строчку c хэшом в файл:
# nano /etc/lighttpd/htpasswd/hostname
Добавим модуль аутентификации в секцию модулей:
# nano /etc/lighttpd/lighttpd.conf
server.modules = (
"mod_access",
"mod_alias",
"mod_compress",
"mod_redirect",
"mod_rewrite",
"mod_accesslog",
"mod_fastcgi",
"mod_proxy",
"mod_auth"
)
Отредактируем конфигурационный файл виртуального хоста:
# nano /etc/lighttpd/conf-enabled/hostname.conf
Для ip адресов начинающихся с 176.97.37.
доступ по паролю:
$HTTP["host"] == "www.hostname.ru" {
$HTTP["remoteip"] =~ "176.97.37." {
# url.redirect = ("" => "http://www.google.com/")
# url.access-deny = ( "" )
auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/etc/lighttpd/htpasswd/hostname"
auth.require = ( "/" =>
(
"method" => "basic",
"realm" => "ISPGen",
"require" => "valid-user"
),
)
}
...
}
Очень надеюсь, что эта заметка пригодится.
comments powered by Disqus