Настройка WebDAV с lighttpd на Debian Squeeze
- Установите lighttpd, модуль WebDAV и apache2-utils. Создайте vhost, включите модуль webdav и модуль аутентификации, создайте файл паролей htpasswd и задайте права. Проверьте работу cadaver или клиентом ОС.
- В статье приведён полный пошаговый набор команд, рекомендации по безопасности, чек-лист для администратора и раздел по устранению неполадок.
Что такое WebDAV и зачем он нужен
WebDAV (Web-based Distributed Authoring and Versioning) — расширение протокола HTTP, которое позволяет редактировать файлы на сервере напрямую, без необходимости скачивать/загружать их по FTP. Подходит для совместной работы, синхронизации и удалённого хранения.
Кратко: WebDAV — это удалённый файловый интерфейс поверх HTTP.
Предварительная заметка
В примерах используется сервер Debian Squeeze с IP 192.168.0.100. Адаптируйте пути, хосты и привилегии под вашу среду.
Установка WebDAV и зависимостей
Установите lighttpd (если ещё не установлен), модуль WebDAV для lighttpd и пакет apache2-utils (в нём есть утилита htpasswd):
apt-get install lighttpd lighttpd-mod-webdav apache2-utilsДальше убедитесь, что каталог /var/run/lighttpd принадлежит пользователю и группе www-data. В этом каталоге будет храниться SQLite-база блокировок WebDAV:
chown www-data:www-data /var/run/lighttpd/Включите модули mod_auth и mod_webdav:
lighty-enable-mod auth
lighty-enable-mod webdavПерезагрузите lighttpd:
/ etc/init.d/lighttpd force-reloadImportant: если в вашей системе иная служба управления сервисами (systemd), используйте systemctl reload lighttpd.
Создание виртуального хоста
В этом примере создадим vhost для www.example.com с документ-рутом /var/www/web1/web. Если у вас уже есть vhost, внесите соответствующие изменения.
Создаём директорию и назначаем владельца:
mkdir -p /var/www/web1/web
chown www-data:www-data /var/www/web1/webОткройте конфигурацию lighttpd и добавьте vhost в конец файла:
vi /etc/lighttpd/lighttpd.conf[...]
$HTTP["host"] == "www.example.com" {
server.document-root = "/var/www/web1/web"
}Перезапустите lighttpd:
/ etc/init.d/lighttpd restartНастройка виртуального хоста для WebDAV
Создайте файл паролей WebDAV и добавьте пользователя test (ключ -c создаёт файл, если его нет):
htpasswd -c /var/www/web1/passwd.dav testВас попросят ввести пароль для пользователя test.
Важно: не используйте -c, если файл /var/www/web1/passwd.dav уже существует — это перезапишет файл и удалит других пользователей.
Ограничьте доступ к файлу паролей так, чтобы имел доступ только root и члены группы www-data:
chown root:www-data /var/www/web1/passwd.dav
chmod 640 /var/www/web1/passwd.davТеперь измените vhost в /etc/lighttpd/lighttpd.conf, добавив блок WebDAV и аутентификации:
vi /etc/lighttpd/lighttpd.conf$HTTP["host"] == "www.example.com" {
server.document-root = "/var/www/web1/web"
alias.url = ( "/webdav" => "/var/www/web1/web" )
$HTTP["url"] =~ "^/webdav($|/)" {
webdav.activate = "enable"
webdav.is-readonly = "disable"
webdav.sqlite-db-name = "/var/run/lighttpd/lighttpd.webdav_lock.db"
auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/var/www/web1/passwd.dav"
auth.require = ( "" => ( "method" => "basic",
"realm" => "webdav",
"require" => "valid-user" ) )
}
}Пояснение: alias.url вместе с условием $HTTP[“url”] =~ “^/webdav($|/)” подключает WebDAV только для URL, начинающихся с /webdav, а остальные адреса остаются обычным HTTP-доступом к документ-руту.
Перезапустите сервис:
/ etc/init.d/lighttpd restartТестирование WebDAV
Установите cadaver — консольный WebDAV-клиент:
apt-get install cadaverПодключитесь к шару:
cadaver http://www.example.com/webdav/Вас попросят ввести имя пользователя и пароль. Пример успешной сессии:
root@server1:~# cadaver http://www.example.com/webdav/
Authentication required for webdav on server `www.example.com':
Username: test
Password:
dav:/webdav/> quit
Connection to `www.example.com' closed.
root@server1:~#Если sессия открывается и вы видите dav:/webdav/>, WebDAV работает.
Подключение клиента Windows XP
Инструкцию можно найти по ссылке в разделе «Ссылки». Важный момент: укажите порт в URL, например:
http://www.example.com:80/webdav
Это зачастую заставляет Windows XP использовать обычное имя пользователя (например, test). Без указания порта XP может ожидать NTLM-формат имени (пример: www.example.com\test).
Подключение клиента Linux (GNOME)
Детали описаны по ссылке в разделе «Ссылки». GNOME умеет подключать WebDAV как сетевое расположение (GNOME VFS/GVfs).
Чек-лист администратора перед запуском
- Установлены пакеты lighttpd, lighttpd-mod-webdav, apache2-utils.
- /var/run/lighttpd принадлежит www-data:www-data.
- vhost настроен и server.document-root корректен.
- Создан файл паролей /var/www/web1/passwd.dav; проверены права доступа.
- Включены модули auth и webdav.
- Тестовое подключение cadaver проходит успешно.
- Бэкап конфигурации lighttpd перед изменениями.
Устранение неполадок (когда не работает)
- Ошибка аутентификации: проверьте права на /var/www/web1/passwd.dav и формат файла. Убедитесь, что htpasswd создавал запись.
- Отсутствует файл блокировок: проверьте права /var/run/lighttpd и наличие файлов lighttpd.webdav_lock.db.
- Ошибка доступа к файлам: проверьте права и владельца в /var/www/web1/web (должен быть www-data для записи при работе от имени сервера).
- Клиент Windows не принимает логин: попробуйте явно указать порт в URL (например, :80) или используйте другой WebDAV-клиент.
- Конфликт с другими модулями lighttpd: временно отключите сторонние модули и проверьте логи /var/log/lighttpd/error.log.
Рекомендации по безопасности и права доступа
- Используйте HTTPS (SSL/TLS) для WebDAV в продуктивной среде. Настройте сертификаты и слушайте 443 порт.
- Ограничьте доступ по IP, если это возможно (firewall, настройки сервера).
- Храните файл паролей вне документ-рута и выставляйте права 640, владелец root, группа www-data.
- Регулярно проверяйте логи на предмет неудачных попыток входа.
Примечание: WebDAV по HTTP передаёт пароли в открытом виде; поэтому HTTP не подходит для передачи учётных данных в проде.
Критерии приёмки
- Успешная авторизация тестового пользователя через cadaver.
- Возможность создать, изменить и удалить файл в /var/www/web1/web через WebDAV.
- Отсутствие ошибок в /var/log/lighttpd/error.log при выполнении операций.
- Права на файл passwd.dav корректны (root:www-data, 640).
Фактбокс
- Порты: HTTP 80, HTTPS 443 (рекомендуется).
- Основные файлы: /etc/lighttpd/lighttpd.conf, /var/www/web1/passwd.dav, /var/run/lighttpd/lighttpd.webdav_lock.db
- Утилиты: htpasswd (apache2-utils), cadaver (клиент)
Короткий глоссарий
- WebDAV — удалённый файловый интерфейс поверх HTTP.
- lighttpd — лёгкий веб-сервер с поддержкой модулей.
- htpasswd — утилита для создания файла паролей htpasswd формата.
- cadaver — консольный WebDAV-клиент.
Мини-методология внедрения (шаги)
- Подготовка окружения: бэкап конфигов, проверка свободного места и прав.
- Установка пакетов и включение модулей.
- Создание каталога vhost и файла паролей, выставление прав.
- Настройка vhost и проверка конфигурации.
- Перезагрузка сервера и тестирование подключений.
- Перенос в HTTPS и последующее тестирование.
Полезные ссылки
- WebDAV: http://www.webdav.org/
- Lighttpd: http://www.lighttpd.net/
- Debian: http://www.debian.org/
- Windows XP и WebDAV: https://www.howtoforge.com/setting-up-webdav-with-apache2-on-debian-etch-p2
- GNOME и WebDAV: https://www.howtoforge.com/setting-up-webdav-with-apache2-on-debian-etch-p3
Итог
Эта инструкция покрывает установку и базовую настройку WebDAV на lighttpd в Debian Squeeze, включая создание vhost, настройку аутентификации htpasswd и тестирование через cadaver. Для продакшена обязательно используйте HTTPS и проверьте права доступа и журналы.
Важно: адаптируйте имена хостов, пути и права под вашу инфраструктуру.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента