Gentoo – WebDav

Celem tego Howto jest pokazanie w jaki sposób skonfigurować na dystrybucji Gentoo serwer WebDav, który posłuży nam np. do wymiany
plików pomiędzy telefonem (Nokia e55) a komputerami. Komunikacja będzie szyfrowana z użyciem certyfikatów SSL .Serwer taki będzie dodatkowo ochroniony loginem i hasłem.

Konfiguracja serwera WebDAV

Aby zainstalować na Gentoo serwer WebDav posłużymy się dodatkowymi modułami w programie Apache
o nazwie mod_dav. Apache zainstalowany z flagami:

www-servers/apache-2.2.21-r1 ([ www-servers/apache-2.2.21-r1 USE=”ldap ssl -debug” APACHE2_MODULES=”actions alias
auth_basic authn_alias authn_anon authn_dbm authn_defaultauthn_file authz_dbm authz_default authz_groupfile authz_host
authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache
filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id
userdir usertrack vhost_alias ” APACHE2_MPMS=”peruser ” 0 kB )

Najważniejsze z nich to:
APACHE2_MODULES=”dav dav_fs dav_lock”

Po zainstalowaniu/przeinstalowaniu Apache z dodatkowymi flagami w /etc/conf.d/apache2 dodajemy dodatkowy parametr startujący -D DAV

Plik /etc/conf.d/apache2
APACHE2_OPTS=”-D PERUSER -D SSL -D LANGUAGE -D PHP5 -D DAV”

Nie ma potrzeby dodawać -D DAV_FS -D DAV_LOCK jak to opisują inne artykuły bo to już się ładuje razem z -D DAV.
Następnym krokiem jest założenie sobie katalogu na pliki www i nadanie mu odpowiednich praw z jakimi działa nasz serwer Apache:
User/Grupa z jakimi działa nasz serwer możemy spr. wydając komendę:
grep -v ^’#’ /etc/apache2/httpd.conf |grep -E ‚User|Group

Tworzymy katalog i ustawiamy uprawnienia dla niego:
mkdir -p /home/www/webdav ; chown -R twoj_user:twoja_grupa /home/www/webdav

ps. ja korzystam z modułu peruser w Apachu więc usera/grupa definiuje sobie w virtual hoście.

Tworzę plik .htpasswd z loginami i hasłami dostępu do strony:
htpasswd -c /home/www/.htpasswd user

Za user podstawiamy nazwę użytkownika który ma mieć dostęp do plików przez protokół webdav.
ps. Drugiego usera dodajemy bez opcji -c.

Modyfikujemy plik /etc/apache2/modules.d/45_mod_dav.conf:

<IfDefine DAV>
#DavLockDB „/var/lib/dav/lockdb”
<IfModule setenvif_module>
BrowserMatch „Microsoft Data Access Internet Publishing Provider” redirect-carefully
BrowserMatch „MS FrontPage” redirect-carefully
BrowserMatch „^WebDrive” redirect-carefully
BrowserMatch „^WebDAVFS/1.[012345678]” redirect-carefully
BrowserMatch „^gnome-vfs/1.0” redirect-carefully
BrowserMatch „^XML Spy” redirect-carefully
BrowserMatch „^Dreamweaver-WebDAV-SCM1” redirect-carefully
</IfModule>
</IfDefine>

DavLockDB -jest zaheszowany ponieważ definiuje mu inną ścieżkę w moim VirtualHości(VH)

Potem tworzymy plik VirtualHosta np: /etc/apache2/vhosts.d/1000.conf :

Plik 1000.conf:
#Jeśli używacie modułu peruser zdefiniujcie dyrektywę Processor + ServerEnvironment.
<Processor webdav>
User user #Wasz user systemy z którym ma działać proces apacha dla tego VH.
Group grupa #To co wyżej tyle ze grupa
</Processor>
Listen *:443 #nie używam domyślnych configów więc deklaruje nasłuchiwanie tu apacha.
<VirtualHost *:443>
<IfModule mod_ssl.c>
SSLEngine on #włączenie silnika ssl
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL #minimalne wymagania naszych certów
SSLCertificateFile /etc/ssl/domena.crt #nasz cert
SSLCertificateKeyFile /etc/ssl/domena.key #nasz klucz
ErrorLog /var/log/apache2/ssl_error_log
ServerName nasza_domena #wpisujemy tu naszą domenę dla tego VH
ServerEnvironment webdav # nazwa srodowska (jeśli korzystasz z modułu peruser)
CustomLog /var/log/apache2/ssl_request_log „%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x „%r” %b”
DocumentRoot „/home/www/webdav” #scieżka do katalogu którą wcześniej stworzyliśmy
Alias / /home/www/webdav/ #musi być alias bo bez tego mi nie działo (kod 405)
</IfModule>
<Directory /home/www/webdav>
AllowOverride All
Options Indexes FollowSymLinks #widzę katalogi przez www
AuthName „WebDAV”
AuthType Basic
AuthUserFile /home/www/.htpasswd #sciezka do pliku z loginem i hasłem userów
AuthGroupFile /dev/null
require valid-user
Order deny,allow
</Directory>
<IfModule mod_dav.c>
DavLockDB „/home/www/.htlock” #nasz plik do blokady
<Location />
#Options None #jeżeli chcemy przez Firefoxa widzieć pliki heszujemy to
DAV On #włączamy WebDav
#<Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK> #możemy tworzyć limity dla userów -ale po co teraz :)
#</Limit>
</Location>
</IfModule>
</VirtualHost>

info: Nie będę opisał jak generować dla siebie certyfikatów ponieważ możecie znaleźć to na tej stronie.

Startowanie apacha (jeśli nie był używany wcześniej):
# /etc/init.d/apache2 start

Do testowania jako klienta WebDava możemy użyć telefonu albo linuxa:
a) aby w Nokii E55 dodać dysk należy wejść w Menu -> Biuro -> Mndź.plik potem wybrać Opcje -> Napędy zdalne -> Mapuj Nowy napęd.
Podajemy tam: Nazwę, Adres, Nazwę usera i hasło do strony.
b) oczywiście możemy przeglądać pliki na serwerze przez przeglądarkę WWW ale musimy w VirtualHoscie zadeklarować Options Indexes
FollowSymLinks
c) W KDE mamy możliwość skorzystania z aplikacji kde-base/knetattach (asystenta tworzenia folderów sieciowych -otwórz Dolphin i w
lewym menu wybierz Sieć). d) do połączenia z serwerem (po konsoli w linuxie) możemy użyć programu net-misc/cadaver
Po zdefiniowaniu nowego zdalnego dysku/folderu możemy pomiędzy telefonem a komputerem synchronizować pliki (programy, zdjęcia itp).
Jakie błędy w logach ( polecam przeglądać logi z apacha ;P )
a) A lock database was not specified with the DAVLockDB directive. One must be specified to use the locking functionality. [500, #401]
-sprawdż plik z blokadą ,prawa do niego itp.

Wszystkie treści w tym wiki, którym nie przyporządkowano licencji, podlegają licencji:
CC Attribution-Noncommercial-Share Alike 3.0 Unported [http://creativecommons.org/licenses/by-nc-sa/3.0/]

Autor: Kamil M.

Share Button

Przemek

Twórca portalu techfreak, elektronik, pasjonat wszystkiego co fajnie, co można przerobić. W wolnym czasie grzebie przy nettemp. A sport jaki uprawia to mini drony klasy 250.