webdav Ubuntu 11.04

В этой заметке я предлагаю познакомиться с модулем apache, который называется mod_dav. Он реализует протокол WebDAV (Web-based Distributed Authoring and Versioning). Протокол высокого уровня, работающий поверх протокола HTTP для доступа к объектам и коллекциям. Для защиты передаваемых данных может использовать шифрование данных — SSL.

 

Проще говоря, это означает, что протокол WebDAV выполняет следующие функции

    • выполнение разнообразных операций над файлами (создание, удаление, блокировки, поддержка версий)

    • работа с любым типом объектов (не только файлы)

    • поддержка метаданных (свойств) объектов

На практике эти полезные функции применяются для выполнения таких задач как

    • создание сетевой файловой системы

    • распределенная разработка программного обеспечения

    • совместная работа с веб-документами

Вот проекты, использующие протокол WebDAV:

Apache. Реализует поддержку WebDAV модулем mod_dav.

Adobe GoLive. Протокол используется для совместной работы с веб-документами.

Subversion. Использует WebDAV для совместной работы при разработке программного обеспечения.

Далее предлагаю инструкцию по установке и настройке web-сервера apache c модулем mod_dav для Ubuntu 11.04.

Устанавливаем apache2

apt-get install apache2 libapache2-mod-encoding

Создаем SSL сертификат и  SSL ключ во временной папке /tmp/ssl_conf

mkdir /tmp/ssl_conf

cd /tmp/ssl_conf

Следующая команда сгенерирует файл ключа. Будут задаваться вопросы по поводу вашего СА. В процессе заполнения полей, в поле “Common Name (eg, YOUR name)” пишем доменное имя нашего сервера (в нашем случае — host.example.com).

Длина паролей не мение 4-х символов.

openssl req -config /etc/ssl/openssl.cnf -new -out server.csr

Создаем сертификат и ключ

openssl rsa -in privkey.pem -out server.key

openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650

openssl x509 -in server.crt -out server.der.crt -outform DER

Копируем файлы в папку apache

cp server.crt /etc/apache2/

cp server.key /etc/apache2/

Создаем папку WebDav

mkdir -p /var/www/webdav

chown www-data /var/www/webdav

Создаем пользователя для подключения к серверу

htpasswd -c /etc/apache2/apachepwd user

chown root:www-data /etc/apache2/apachepwd

chmod 640 /etc/apache2/apachepwd

Загружаем необходимые модули apache

a2enmod dav_fs

a2enmod dav

a2enmod ssl

Редактируем афйл apache2.conf

nano /etc/apache2/apache2.conf

в конце файла редактируем секцию виртуальных хостов

# Include the virtual host configurations:

#Include sites-enabled/

Include vhost.conf

Создаем конфигурационный файл для виртуального хоста

nano /etc/apache2/vhost.conf

В него пишем следующее

<VirtualHost *:80>

       ServerAdmin webmaster@localhost

       DocumentRoot /var/www/webdav

<Directory /var/www/webdav>

               AllowOverride All

               Order allow,deny

               allow from all

       </Directory>

</VirtualHost>

<VirtualHost *:443>

       ServerAdmin webmaster@localhost

       DocumentRoot /var/www/webdav

       CustomLog /var/log/apache2/ssl_access.log combined

       SSLCertificateFile /etc/apache2/server.crt

       SSLCertificateKeyFile /etc/apache2/server.key

       <IfModule mod_ssl.c>

               SSLEngine on

               SetEnvIf User-Agent «.*MSIE.*» nokeepalive ssl-unclean-shutdown

       </IfModule>

       <Directory />

               Options FollowSymLinks

               Options Indexes FollowSymLinks MultiViews

               Options FollowSymLinks

               AllowOverride All

               Order allow,deny

               allow from all

       </Directory>

       <Directory /var/www/webdav>

               Dav On

               AuthType Basic

               AuthName «Hello, world!»

               AuthUserFile /etc/apache2/apachepwd

               Require valid-user

               <Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>

               </Limit>

Options Indexes FollowSymLinks MultiViews

               Options FollowSymLinks

               AllowOverride All

               Order allow,deny

               allow from all

       </Directory>

       ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

       <Directory «/usr/lib/cgi-bin»>

               AllowOverride None

               Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch

               Order allow,deny

               Allow from all

       </Directory>

       ErrorLog ${APACHE_LOG_DIR}/error.log

       # Possible values include: debug, info, notice, warn, error, crit,

       # alert, emerg.

       LogLevel warn

       CustomLog ${APACHE_LOG_DIR}/access.log combined

Alias /doc/ «/usr/share/doc/»

   <Directory «/usr/share/doc/»>

       Options Indexes MultiViews FollowSymLinks

       AllowOverride None

       Order deny,allow

       Deny from all

       Allow from 127.0.0.0/255.0.0.0 ::1/128

   </Directory>

</VirtualHost>

Для автоматического перенаправления всех запросов на https создаем файл .htaccess

nano /var/www/webdav/.htaccess

Options All +Indexes

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

<Files .htaccess>

order allow,deny

deny from all

</Files>

Перезапускаем apache

/etc/init.d/apache2 reload

Далее мы увидим  как можно подключиться к созданному ресурсу из ОС Windows XP

Заходим «Пуск» -> «Сетевое окружение»

Делаем двойной щелчек на  «Новое место в сетевом окружении», появится мастер добавления. На первом шаге жмем «Далее», на втором шаге выделяем сетевое размещение и тоже жмем «Далее». На следующем шаге вводим адрес нашего сервера (например — https://192.168.0.1) и нажимаем «Далее».  При возникновении предупреждения системы безопасности, принимаем сертификат.  При запросе имени пользователя и пароля вводим эти данные (в примере login — user, pass — 1234).  При запросе имени для сетевого размещения вводим имя (например webdavsvr).  Жмем «Далее» и «Готово». Теперь мы можем пользоваться ресурсом как обычной расшаренной папкой.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *