Сегодня, как впрочем и ранее из моего опубликованного я хочу для себя разобрать как поднять WebDAV доступ к системе Ubuntu 18.04 Server amd64.

Работает!!!

Шаг №1:

hg clone --insecure https://ekzorchik@172.35.35.8/hg/dproject

sudo ./dproject/default

ekzorchik@srv-bionic:~$ sudo apt-get install -y apache2

ekzorchik@srv-bionic:~$ sudo unlink /etc/apache2/sites-available/000-default.conf

ekzorchik@srv-bionic:~$ sudo unlink /etc/apache2/sites-available/default-ssl.conf

ekzorchik@srv-bionic:~$ sudo unlink /etc/apache2/sites-enabled/000-default.conf

ekzorchik@srv-bionic:~$ sudo rm -f /var/www/html/index.html

ekzorchik@srv-bionic:~$ sudo rm -rf /var/www/html/

ekzorchik@srv-bionic:~$ sudo mkdir /var/www/webdav

ekzorchik@srv-bionic:~$ sudo chown -R www-data:www-data /var/www

ekzorchik@srv-bionic:~$ sudo a2enmod dav

ekzorchik@srv-bionic:~$ sudo a2enmod dav_fs

ekzorchik@srv-bionic:~$ sudo htpasswd -c /etc/apache2/.webdav webdav

New password: Aa1234567

Re-type new password: Aa1234567

Adding password for user webdav

ekzorchik@srv-bionic:~$

ekzorchik@srv-bionic:~$ sudo nano /etc/apache2/sites-available/webdav.conf

DavLockDB /var/www/DavLock

<VirtualHost *:80>

ServerAdmin webmaster@localhost

DocumentRoot /var/www/

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

Alias /webdav /var/www/webdav

<Location /webdav>

DAV On

AuthType Basic

AuthName webdav

AuthUserFile /etc/apache2/.webdav

Require valid-user

</Location>

</VirtualHost>

ekzorchik@srv-bionic:~$ sudo apache2ctl configtest

ekzorchik@srv-bionic:~$ sudo a2ensite webdav.conf

ekzorchik@srv-bionic:~$ sudo a2dissite

Your choices are: webdav

Which site(s) do you want to disable (wildcards ok)?

ekzorchik@srv-bionic:~$ sudo systemctl restart apache2 && sudo systemctl status apache2 | head -n5

Проверяю работоспособность Webdav соединения:

ekzorchik@srv-bionic:~$ apt-cache search litmus

litmus - WebDAV server test suite

php-sabre-dav - WebDAV Framework for PHP

ekzorchik@srv-bionic:~$ sudo apt-get install -y litmus

ekzorchik@srv-bionic:~$ echo "this is a sample text file" | sudo tee -a /var/www/webdav/sample.txt

this is a sample text file

ekzorchik@srv-bionic:~$ litmus http://172.33.33.14/webdav webdav Aa1234567

-> running `basic':

0. init.................. pass

1. begin................. pass

2. options............... pass

3. put_get............... pass

4. put_get_utf8_segment.. pass

Через Web-браузер по URL вида http://IP&DNS/webdav, указываю логин (webdav) и пароль (Aa1234567) и я успешно вижу файлы внутри каталога webdav:

Шаг №2: Чтобы добавить защищенности в передаваемые файлы следует настроить работу Webсервиса Apache2 на работу через https, т. е. Через сертификат, т. к. сервис будет в моей локальной сети, то мне подойдет самоподписанный сертификат:

ekzorchik@srv-bionic:~$ sudo a2enmod ssl

ekzorchik@srv-bionic:~$ openssl req -new -x509 -days 3650 -keyout srv-bionic.key -out srv-bionic.pem -passout 'pass:712mbddr@' -subj '/CN=172.33.33.14'

ekzorchik@srv-bionic:~$ cp srv-bionic.key{,.orig}

ekzorchik@srv-bionic:~$ openssl rsa -in srv-bionic.key.orig -out srv-bionic.key -passin 'pass:712mbddr@'

ekzorchik@srv-bionic:~$ rm srv-bionic.key.orig

ekzorchik@srv-bionic:~$ sudo cp srv-bionic.pem /etc/ssl/certs/

ekzorchik@srv-bionic:~$ sudo cp srv-bionic.key /etc/ssl/private/

ekzorchik@srv-bionic:~$ rm srv-bionic.*

ekzorchik@srv-bionic:~$ sudo chmod 0600 /etc/ssl/private/srv-bionic.key

ekzorchik@srv-bionic:~$ sudo nano /etc/apache2/sites-available/webdav.conf

DavLockDB /var/www/DavLock

<VirtualHost 172.33.33.14:80>

ServerName srv-bionic.polygon.local

Redirect / https://172.33.33.14

</VirtualHost>

<VirtualHost 172.33.33.14:443>

ServerAdmin webmaster@localhost

DocumentRoot /var/www/

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

SSLEngine on

SSLProtocol all -SSLv2

SSLCertificateFile /etc/ssl/certs/srv-bionic.pem

SSLCertificateKeyFile /etc/ssl/private/srv-bionic.key

Alias /webdav /var/www/webdav

<Location /webdav>

DAV On

SSLRequireSSL

AuthType Basic

AuthName webdav

AuthUserFile /etc/apache2/.webdav

Require valid-user

</Location>

</VirtualHost>

ekzorchik@srv-bionic:~$ sudo apache2ctl configtest

ekzorchik@srv-bionic:~$ sudo systemctl restart apache2 && sudo systemctl status apache2 | head -n5

Проверяю:

ekzorchik@srv-bionic:~$ sudo apt-get install cadaver -y

ekzorchik@srv-bionic:~$ cadaver https://172.33.33.14/webdav

WARNING: Untrusted server certificate presented for `172.33.33.14':

Issued to: 172.33.33.14

Issued by: 172.33.33.14

Certificate is valid from Sat, 25 May 2019 21:17:43 GMT to Tue, 22 May 2029 21:17:43 GMT

Do you wish to accept the certificate? (y/n) y

Authentication required for webdav on server `172.33.33.14':

Username: webdav

Password:

dav:/webdav/> ls

Listing collection `/webdav/': succeeded.

sample.txt 27 May 26 00:48

dav:/webdav/>

Работает. Итого я составил свою инструкцию, как быстро поднять связку образующую доступ через WebDAV к системе Ubuntu 18.04 Server amd64. На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.