Как настроить WebDAV с Apache2 на OpenSUSE 12.2
TL;DR
Настройте WebDAV на OpenSUSE 12.2, установив apache2, включив модули DAV, создав виртуальный хост и файл паролей. Проверьте работу через cadaver или клиент ОС; добавьте DAVLockDB и настройте права доступа для безопасности.
Введение
Версия 1.0
Автор: Falko Timme
Это руководство объясняет, как настроить WebDAV с Apache2 на сервере OpenSUSE 12.2. WebDAV (Web-based Distributed Authoring and Versioning) — набор расширений HTTP, который позволяет редактировать файлы напрямую на сервере Apache без необходимости скачивания/загрузки через FTP. WebDAV также подходит для загрузки и скачивания файлов.
Важно: автор не даёт гарантии, что инструкция сработает в вашей среде — адаптируйте шаги под вашу конфигурацию.
Краткие термины
- WebDAV: расширение HTTP для удалённого редактирования файлов.
- vhost: виртуальный хост Apache.
- DAVLockDB: файл базы блокировок WebDAV.
1 Предварительная заметка
В примере используется сервер OpenSUSE 12.2 с IP-адресом 192.168.0.100.
2 Установка WebDAV
Если Apache ещё не установлен, выполните:
zypper install apache2Затем включите модули WebDAV:
a2enmod dav
a2enmod dav_fs
a2enmod dav_lockСоздайте системные автозапуски для Apache и запустите сервис:
systemctl enable apache2.servicesystemctl start apache2.serviceВажно: команды требуют root-права или sudo.
3 Создание виртуального хоста
В примере мы создаём vhost для www.example1.com в каталоге /srv/www/web1/web. Если у вас уже есть vhost, адаптируйте пути и имя хоста.
Создайте каталог и назначьте владельца Apache-пользователю (wwwrun) и группе (www):
mkdir -p /srv/www/web1/web
chown wwwrun:www /srv/www/web1/webСоздайте файл vhost:
vi /etc/apache2/vhosts.d/www.example1.com.confИ добавьте конфигурацию виртуального хоста:
ServerAdmin webmaster@localhost
ServerName www.example1.com
ServerAlias example1.com
DocumentRoot /srv/www/web1/web/
Options Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
Откройте /etc/apache2/httpd.conf и перед строкой Include /etc/apache2/vhosts.d/.conf добавьте NameVirtualHost :80:
vi /etc/apache2/httpd.confПример части файла:
[...]
### Virtual server configuration ############################################
...
NameVirtualHost *:80
Include /etc/apache2/vhosts.d/*.conf
[...]Затем перезапустите Apache:
systemctl restart apache2.service4 Настройка виртуального хоста для WebDAV
Создайте файл паролей WebDAV и добавьте пользователя test (ключ -c создаёт файл):
htpasswd2 -c /srv/www/web1/passwd.dav testВведите пароль для test по запросу. Если файл уже существует — НЕ используйте -c, иначе вы перепишете файл и потеряете других пользователей.
Измените права доступа к файлу паролей, чтобы только root и члены группы www могли читать его:
chown root:www /srv/www/web1/passwd.dav
chmod 640 /srv/www/web1/passwd.davОткройте vhost /etc/apache2/vhosts.d/www.example1.com.conf и добавьте Alias и секцию Location:
Alias /webdav /srv/www/web1/web
DAV On
AuthType Basic
AuthName "webdav"
AuthUserFile /srv/www/web1/passwd.dav
Require valid-user
Полный vhost должен выглядеть так:
ServerAdmin webmaster@localhost
ServerName www.example1.com
ServerAlias example1.com
DocumentRoot /srv/www/web1/web/
Options Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
Alias /webdav /srv/www/web1/web
DAV On
AuthType Basic
AuthName "webdav"
AuthUserFile /srv/www/web1/passwd.dav
Require valid-user
Далее указываем место хранения базы блокировок WebDAV. В примере это /var/lib/dav/:
mkdir /var/lib/dav/
chown wwwrun:www /var/lib/dav/Добавьте в /etc/apache2/httpd.conf директиву DAVLockDB выше NameVirtualHost *:80:
vi /etc/apache2/httpd.confПример фрагмента:
# Location of the WebDAV lock database.
DAVLockDB /var/lib/dav/lockdb
NameVirtualHost *:80
Include /etc/apache2/vhosts.d/*.confПерезапустите Apache:
systemctl restart apache2.service5 Тестирование WebDAV
Установите cadaver — командный клиент WebDAV:
zypper install cadaverЗапустите тест:
cadaver http://www.example1.com/webdav/Вас попросят ввести имя пользователя. Введите test и соответствующий пароль. При успешной аутентификации вы попадёте в WebDAV-оболочку. Введите quit чтобы выйти:
server1:~ # cadaver http://www.example1.com/webdav/
Authentication required for webdav on server `www.example1.com':
Username: test
Password:
dav:/webdav/> quit
Connection to `www.example1.com' closed.
server1:~ #URL WebDAV: http://www.example1.com/webdav/ для Linux-клиентов. Для некоторых Windows-клиентов может понадобиться указать порт явно: http://www.example1.com:80/webdav/.
Безопасность и твики (Security hardening)
- Используйте HTTPS (SSL/TLS) для защиты учётных данных Basic Auth. Установите сертификат и переведите vhost на порт 443.
- Рассмотрите использование Digest или механизма аутентификации на базе Kerberos/LDAP вместо Basic, если нужна более строгая безопасность.
- Держите файл паролей вне публичного дерева документов и с правами 640.
- Ограничьте доступ к /webdav по IP или VPN для снижения атаки поверхности.
Важно: Basic Auth передаёт пароль в закодированном, но не шифрованном виде — без HTTPS это небезопасно.
Альтернативные подходы
- Использовать Nginx с модулем dav (ограниченная функциональность).
- Использовать WebDAV-реализацию через специализированный файловый сервер (Nextcloud/ownCloud) для продвинутых возможностей и управления пользователями.
- Для простого обмена файлами можно настроить SFTP вместо WebDAV.
Где это может не сработать (Counterexamples / Troubleshooting)
- Если модуль dav_fs не загружен — DAV не включится. Убедитесь, что a2enmod выполнился успешно.
- Неправильные права на DocumentRoot или DAVLockDB приведут к ошибкам записи и проблемам с блокировками.
- Брандмауэр или SELinux/AppArmor могут блокировать доступ — проверьте логи и разрешения.
- На старых клиентах Windows поддержка WebDAV может быть ограничена; проверьте совместимость и используйте альтернативные клиенты.
Роль-ориентированные чеклисты
- Администратор сервера: установить apache2, включить модули, создать vhost, задать DAVLockDB, перезапустить сервис.
- Администратор безопасности: настроить HTTPS, проверить права на файлы, внедрить аудит доступа.
- Оператор приложений: создать пользователей htpasswd, тестировать доступ cadaver/клиентами, документировать URL и инструкции для пользователей.
Критерии приёмки
- Пользователь test может подключиться и просматривать/загружать/загружать файлы через cadaver.
- DAVLockDB доступна для записи процессу Apache (права и владелец верны).
- Apache успешно перезапускается без ошибок конфигурации.
Короткий глоссарий
- vhost — виртуальный хост Apache.
- DAVLockDB — база блокировок WebDAV.
- htpasswd2 — утилита для управления файлами паролей Apache.
6 Ссылки
- WebDAV: http://www.webdav.org/
- Apache: http://httpd.apache.org/
- OpenSUSE: http://www.opensuse.org/
Краткое резюме
WebDAV даёт удобный способ редактирования файлов прямо на сервере. Основные шаги: установить Apache, включить модули dav, создать vhost и файл паролей, указать DAVLockDB и протестировать доступ. Обязательно используйте HTTPS и настройте права доступа для безопасности.
Примечание: для продакшена рассмотрите использование более современных решений для совместной работы с файлами (Nextcloud, SFTP с PAM/LDAP и т. п.).
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента