Гид по технологиям

Настройка WebDAV с lighttpd на Debian Squeeze

• 5 min read • Серверы • Обновлено 20 Nov 2025
Настройка WebDAV с lighttpd на Debian Squeeze
Настройка 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-reload

Important: если в вашей системе иная служба управления сервисами (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-клиент.

Мини-методология внедрения (шаги)

  1. Подготовка окружения: бэкап конфигов, проверка свободного места и прав.
  2. Установка пакетов и включение модулей.
  3. Создание каталога vhost и файла паролей, выставление прав.
  4. Настройка vhost и проверка конфигурации.
  5. Перезагрузка сервера и тестирование подключений.
  6. Перенос в HTTPS и последующее тестирование.

Полезные ссылки

Итог

Эта инструкция покрывает установку и базовую настройку WebDAV на lighttpd в Debian Squeeze, включая создание vhost, настройку аутентификации htpasswd и тестирование через cadaver. Для продакшена обязательно используйте HTTPS и проверьте права доступа и журналы.

Важно: адаптируйте имена хостов, пути и права под вашу инфраструктуру.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро