Thứ hai, 22/09/2014 | 00:00 GMT+7

Cách cấu hình quyền truy cập WebDAV với Apache trên Ubuntu 14.04

WebDAV là một phần mở rộng của giao thức HTTP cho phép user quản lý file trên server . Có nhiều cách để sử dụng server WebDAV. Ví dụ: bạn có thể chia sẻ tài liệu Word hoặc Excel với đồng nghiệp của bạn bằng cách tải chúng lên server WebDAV của bạn. Bạn thậm chí có thể chia sẻ bộ sưu tập nhạc của bạn với gia đình và bạn bè bằng cách chỉ cần cung cấp cho họ một URL. Tất cả điều này có thể đạt được mà không cần họ cài đặt bất cứ thứ gì.

Có nhiều cách để quản lý file trên server từ xa. WebDAV có một số lợi ích so với các giải pháp khác như FTP hoặc Samba . Trong bài viết này, ta sẽ giới thiệu cho các bạn cách cấu hình server Apache của bạn để cho phép truy cập WebDAV root từ Windows, Mac và Linux với xác thực.

Tại sao sử dụng WebDAV?

WebDAV cung cấp một số lợi thế:

  • Tích hợp bản địa trên tất cả các hệ điều hành chính (Windows, Mac, Linux); Không cần cài đặt phần mềm của bên thứ ba để sử dụng WebDAV.
  • Hỗ trợ chuyển khoản từng phần.
  • Nhiều lựa chọn hơn để xác thực. Ở trên HTTP nghĩa là NTLM , Kerberos , LDAP , v.v. đều có thể.

Tùy thuộc vào tình huống của bạn, WebDAV có thể là giải pháp tốt nhất cho nhu cầu của bạn.

Tại sao Apache?

Có nhiều web server hỗ trợ WebDAV trên Linux. Tuy nhiên, Apache có cách triển khai giao thức WebDAV tuân theo nhất hiện có. Tại thời điểm viết bài, WebDAV trên NginxLighttpd hoạt động, nhưng chỉ một phần.

Yêu cầu

Bạn cần một server Ubuntu 14.04 .

Trước khi bắt đầu, trước tiên ta hãy tạo một user có quyền truy cập sudo . Bạn có thể chạy lệnh dưới quyền root , nhưng nó không được khuyến khích do lo ngại về bảo mật. Có một bài viết tuyệt vời về cách thêm user trên Ubuntu 14.04 nếu bạn muốn tìm hiểu thêm.

Tạo user

Khi bạn lần đầu tiên tạo ra một trường hợp Digital Dương, bạn sẽ được cung cấp thông tin cho phép bạn đăng nhập bằng root. Như là user root , ta hãy đầu tiên thêm một user gọi alex.

adduser alex 

Bạn sẽ được yêu cầu tạo password cho user alex như hình dưới đây. Sẽ có thêm dấu nhắc về thông tin về user alex . Bạn có thể nhập chúng nếu bạn muốn.

Adding user `alex' ... Adding new group `alex' (1000) ... Adding new user `alex' (1000) with group `alex' ... Creating home directory `/home/alex' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for alex Enter the new value, or press ENTER for the default         Full Name []:         Room Number []:         Work Phone []:         Home Phone []:         Other []: Is the information correct? [Y/n] y 

Cấp các quyền sudo cho user

Sau khi tạo user mới, bước tiếp theo là cấp quyền cho user alex sudo. Giả sử bạn vẫn đăng nhập bằng quyền root , hãy thêm user alex vào group sudo bằng lệnh lệnh sau.

usermod -aG sudo alex 

User trong group sudo được cấp quyền sudo . Đến đây bạn có thể đăng xuất và đăng nhập với quyền user alex .

Bước một - Cài đặt Apache

Hãy để ta cài đặt Apache .

sudo apt-get update sudo apt-get install apache2 

Web server Apache sẽ được cài đặt và chạy.

Bước hai - Cài đặt WebDAV

Có ba bước để cài đặt WebDAV. Ta chỉ định một vị trí, kích hoạt các module cần thiết và cấu hình nó.

Chuẩn bị Thư mục

Ta cần chỉ định một folder để phục vụ WebDAV. Ta sẽ tạo folder mới /var/www/webdav cho việc này. Bạn cũng cần thay đổi chủ sở hữu thành www-data ( user Apache của bạn) để cho phép Apache ghi vào nó.

sudo mkdir /var/www/webdav sudo chown -R www-data:www-data /var/www/ 

Bật module

Tiếp theo, ta kích hoạt các module WebDAV bằng a2enmod

sudo a2enmod dav sudo a2enmod dav_fs 

Các module Apache được tìm thấy trong /etc/apache2/mods-available . Điều này tạo ra một softlink từ /etc/apache2/mods-available đến /etc/apache2/mods-enabled .

Cấu hình

Mở hoặc tạo file cấu hình tại /etc/apache2/sites-available/000-default.conf bằng editor yêu thích của bạn.

nano /etc/apache2/sites-available/000-default.conf 

Trên dòng đầu tiên, thêm cấu hình chỉ thị DavLockDB :

DavLockDB /var/www/DavLock 

Và các chỉ thị Bí danhThư mục bên trong phần VirtualHost:

Alias /webdav /var/www/webdav  <Directory /var/www/webdav>     DAV On </Directory> 

Tệp sẽ trông như thế này sau khi chỉnh sửa.

DavLockDB /var/www/DavLock <VirtualHost *:80>         # The ServerName directive sets the request scheme, hostname and port that         # the server uses to identify itself. This is used when creating         # redirection URLs. In the context of virtual hosts, the ServerName         # specifies what hostname must appear in the request's Host: header to         # match this virtual host. For the default virtual host (this file) this         # value is not decisive as it is used as a last resort host regardless.         # However, you must set it for any further virtual host explicitly.         #ServerName www.example.com          ServerAdmin webmaster@localhost         DocumentRoot /var/www/html          # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,         # error, crit, alert, emerg.         # It is also possible to configure the loglevel for particular         # modules, e.g.         #LogLevel info ssl:warn          ErrorLog ${APACHE_LOG_DIR}/error.log         CustomLog ${APACHE_LOG_DIR}/access.log combined          # For most configuration files from conf-available/, which are         # enabled or disabled at a global level, it is possible to         # include a line for only one particular virtual host. For example the         # following line enables the CGI configuration for this host only         # after it has been globally disabled with "a2disconf".         #Include conf-available/serve-cgi-bin.conf          Alias /webdav /var/www/webdav          <Directory /var/www/webdav>             DAV On         </Directory> </VirtualHost>  # vim: syntax=apache ts=4 sw=4 sts=4 sr noet 

Chỉ thị DavLockDB chỉ định tên của database DAV Lock. Nó phải là một đường dẫn đến một file . Tệp không cần phải được tạo. Thư mục phải được server Apache ghi.

Chỉ thị Bí danh ánh xạ các yêu cầu tới http://your.server/webdav tới folder /var/www/webdav .

Chỉ thị Thư mục yêu cầu Apache bật WebDAV cho folder /var/www/webdav . Bạn có thể tìm hiểu thêm về mod_dav từ tài liệu Apache.

Nếu bạn khởi động lại server Apache, bạn sẽ có một server WebDAV đang hoạt động mà không cần xác thực.

Khởi động lại server Apache như sau:

sudo service apache2 restart 

Thử nghiệm

WebDAV không có xác thực chỉ cho phép user truy cập đọc. Để thử nghiệm, hãy để ta tạo một file mẫu.

echo "this is a sample text file" | sudo tee -a /var/www/webdav/sample.txt 

Một file văn bản có tên là sample.txt phải được tạo trong / var / www / webdav . Nó phải chứa văn bản, đây là một file văn bản mẫu .

Bây giờ ta có thể thử đăng nhập từ một máy tính bên ngoài. Server WebDAV phải được tìm thấy tại http: // <your.server.com> / webdav . Để ngắn gọn, ta chỉ hướng dẫn cách đăng nhập mà không cần thông tin đăng nhập trên máy Mac.

Trên Mac, mở Finder . Trên thanh menu, tìm Go và chọn tùy chọn Connect to Server .

WebDAV Mac Bước 1

Chọn tùy chọn Kết nối với quyền khách . Sau đó, nhấp vào Kết nối .

WebDAV Mac Bước 2

Bạn phải đăng nhập. Nếu bạn kết nối với hệ thống file được chia sẻ đó và nhập folder webdav , bạn có thể xem file sample.txt đã được tạo trước đó. Tệp phải có thể download .

WebDAV Mac Bước 3

Bước 3 - Thêm xác thực

Server WebDAV không có xác thực sẽ không an toàn. Trong phần này, ta sẽ thêm xác thực vào server WebDAV của bạn bằng cách sử dụng schemas xác thực Thông báo.

Xác thực Cơ bản hay Thông báo?

Có nhiều chương trình xác thực có sẵn. Bảng này minh họa khả năng tương thích của các sơ đồ xác thực khác nhau trên các hệ điều hành khác nhau. Lưu ý nếu bạn đang cung cấp HTTPS, ta giả định certificate SSL của bạn là hợp lệ (không phải certificate tự ký).

Khả năng tương thích WebDAV

Nếu bạn đang sử dụng HTTP , hãy sử dụng xác thực Digest vì nó sẽ hoạt động trên tất cả các hệ điều hành. Nếu bạn đang sử dụng HTTPS , bạn có tùy chọn sử dụng Xác thực cơ bản .

Ta sẽ đề cập đến schemas xác thực Digest vì nó hoạt động trên tất cả các hệ điều hành mà không cần certificate SSL.

Xác thực thông báo

Hãy để ta tạo file (được gọi là users.password ) lưu trữ password cho user . Trong xác thực Thông báo, có trường cảnh giới hoạt động như một không gian tên cho user . Ta sẽ sử dụng webdav làm lĩnh vực của ta . User đầu tiên của ta sẽ được gọi là alex .

Để tạo file thông báo, ta phải cài đặt các phần phụ thuộc.

sudo apt-get install apache2-utils 

Ta sẽ thêm user tiếp theo. Hãy để ta tạo file password user bằng lệnh dưới đây.

sudo htdigest -c /etc/apache2/users.password webdav alex 

Điều này sẽ thêm user alex vào file password . Cần có dấu nhắc password để tạo password cho alex .

Để có thêm user tiếp theo, bạn nên xóa cờ c . Đây là một ví dụ khác về việc thêm user có tên là chris . Tạo password khi được yêu cầu .

sudo htdigest /etc/apache2/users.password webdav chris 

Ta cũng cần cho phép Apache đọc file password , vì vậy ta thay đổi chủ sở hữu.

sudo chown www-data:www-data /etc/apache2/users.password 

Sau khi file password được tạo, ta nên thực hiện thay đổi cấu hình tại /etc/apache2/sites-available/000-default.conf .

Thêm các dòng sau vào chỉ thị Thư mục

AuthType Digest AuthName "webdav" AuthUserFile /etc/apache2/users.password Require valid-user 

Phiên bản cuối cùng sẽ trông như thế này (với các comment đã bị xóa).

DavLockDB /var/www/DavLock  <VirtualHost *:80>     ServerAdmin webmaster@localhost     DocumentRoot /var/www/html      ErrorLog ${APACHE_LOG_DIR}/error.log     CustomLog ${APACHE_LOG_DIR}/access.log combined      Alias /webdav /var/www/webdav      <Directory /var/www/webdav>         DAV On         AuthType Digest         AuthName "webdav"         AuthUserFile /etc/apache2/users.password         Require valid-user     </Directory> </VirtualHost> 

Mô-đun mod_authn chứa các định nghĩa cho các chỉ thị xác thực.

Chỉ thị AuthType chỉ thị Apache rằng đối với /var/www/webdav folder , cần có xác thực bằng cách sử dụng chương trình Digest.

Xác thực thông báo yêu cầu một giá trị cho lĩnh vực mà ta đặt là webdav . Realm hoạt động giống như một không gian tên. Khi bạn có những user trùng tên, bạn có thể tách họ bằng các giá trị khác nhau cho cảnh giới . Ta sử dụng chỉ thị AuthName để đặt giá trị cho cảnh giới .

Chỉ thị AuthUserFile được sử dụng để chỉ ra vị trí của file password .

Chỉ thị Yêu cầu tuyên bố rằng chỉ những user hợp lệ tự xác thực mới có thể truy cập folder đó.

Cuối cùng, kích hoạt module Digest và khởi động lại server để cài đặt có hiệu lực.

sudo a2enmod auth_digest sudo service apache2 restart 

Bước bốn - Truy cập file

Ta sẽ trình bày cách truy cập server WebDAV của bạn từ các trình duyệt file root của Mac, Windows và Linux (Ubuntu). Ta sẽ trình bày các hoạt động file và folder chỉ trên Mac vì mục đích ngắn gọn, mặc dù bạn có thể thêm, chỉnh sửa và xóa file trên server khỏi tất cả các hệ điều hành.

Bạn cũng có thể truy cập các file qua Internet bằng trình duyệt web.

Bạn có thể cần phải tháo ổ đĩa và kết nối lại với nó nếu bạn đã kiểm tra nó trước đó trước khi ta thêm xác thực.

Mac

Trên máy Mac, hãy mở Finder . Trên thanh menu, tìm Go và chọn tùy chọn Connect to Server .

WebDAV Mac Bước 1

Nhập địa chỉ server . Nó phải là http: // <your.server> / webdav . Nhấn Kết nối .

WebDAV Mac Bước 2

Bạn sẽ được yêu cầu nhập tên user và password . Nhập một trong những user ta đã tạo trên server và nhấn Kết nối .

WebDAV Mac Bước 3

Khi bạn đã kết nối, folder sẽ xuất hiện trong Finder .

WebDAV Mac Bước 4

Bạn có thể sao chép và lưu các file vào folder webdav và tạo các folder con. Đây là trạng thái ban đầu của folder trên server :

WebDAV Mac Bước 5

Bạn có thể thêm hoặc đổi tên file và tạo folder mới chính xác như bình thường với Finder. Dưới đây là kết quả cuối cùng.

WebDAV Mac Bước 6

các cửa sổ

Trên Windows, mở File Explorer . Trên thanh bên trái, bạn sẽ tìm thấy biểu tượng Mạng .

WebDAV Windows Bước 1

Nhấp chuột phải vào biểu tượng Mạng . Nó sẽ hiển thị menu ngữ cảnh với tùy chọn Bản đồ ổ đĩa mạng . Bấm vào đó.

WebDAV Windows Bước 2

Nhập địa chỉ server vào trường folder . Nó phải là http: // <your.server> / webdav . Chọn Kết nối bằng thông tin đăng nhập khác nhau nếu thông tin đăng nhập của bạn khác. Nhấn Kết thúc .

WebDAV Windows Bước 3

Bạn sẽ được yêu cầu nhập tên user và password . Nhập chúng và nhấn OK .

WebDAV Windows Bước 4

Sau khi bạn đã kết nối, nó sẽ xuất hiện dưới dạng một ổ đĩa mạng ở thanh bên trái của File Explorer .

WebDAV Windows Bước 5

Linux (Ubuntu)

Ta đang sử dụng Ubuntu 14.04 làm hệ điều hành máy tính để bàn Linux của bạn . Trên Ubuntu, mở Tệp . Đây là một tùy chọn Kết nối với Server trên thanh bên trái. Bấm vào đó.

WebDAV Linux Bước 1

Nhập địa chỉ server . Nó phải là dav: // <your.server> / webdav . Nhấn Kết nối .

WebDAV Linux Bước 2

Bạn sẽ được yêu cầu nhập tên user và password . Nhập chúng và nhấn Connect .

WebDAV Linux Bước 3

Khi bạn đã kết nối, folder sẽ xuất hiện trong danh sách Mạng .

WebDAV Linux Bước 4

Kết luận

Trong bài viết này, ta đã giới thiệu cho các bạn cách cài đặt server WebDAV bằng Apache trên Ubuntu 14.04. Ta cũng đã thảo luận về cách cấu hình xác thực Digest để bảo mật server . Cuối cùng, ta đã hướng dẫn bạn cách kết nối với server WebDAV từ cả ba hệ điều hành chính bằng trình duyệt file root của chúng.


Tags:

Các tin liên quan

Cách cài đặt và bảo mật phpMyAdmin với Apache trên server CentOS 7
2014-08-07
Cách sử dụng Apache JMeter để thực hiện kiểm tra tải trên web server
2014-06-24
Cách cấu hình OCSP Stapling trên Apache và Nginx
2014-06-12
Cách tạo chứng chỉ SSL trên Apache cho Ubuntu 14.04
2014-04-23
Cách thiết lập server ảo Apache trên Ubuntu 14.04 LTS
2014-04-22
Cách cài đặt Apache Tomcat 7 trên Ubuntu 14.04 qua Apt-Get
2014-04-18
Cách thiết lập server ảo Apache trên Ubuntu 13.10
2014-04-16
Cách chạy Django với mod_wsgi và Apache với môi trường Python virtualenv trên VPS Debian
2014-04-10
Cách di chuyển cấu hình Apache của bạn từ cú pháp 2.2 sang 2.4.
2014-03-31
Cách sử dụng server Apache HTTP dưới dạng Reverse-Proxy bằng cách sử dụng extension mod_proxy
2014-02-14