Thứ sáu, 16/05/2014 | 00:00 GMT+7

Cách cung cấp tệp mật khẩu KeePass2 với Nginx trên server Ubuntu 14.04

KeePass2 là ứng dụng cho phép bạn lưu trữ, quản lý và tạo password mạnh cho các trang web và ứng dụng của bạn một cách an toàn và dễ dàng.

Trong hướng dẫn trước, ta đã thảo luận về cách sử dụng kpcli để tương tác với các file database KeePass trên server từ xa . Trong hướng dẫn này, ta sẽ cài đặt server để cung cấp quyền truy cập an toàn vào file database của ta bằng nginx.

Sau đó, ta sẽ hướng dẫn bạn cách kết nối và sử dụng file database từ xa này với cài đặt local của KeePass2. Điều này sẽ cho phép bạn giữ password của bạn ở một vị trí an toàn trong khi vẫn cho phép bạn truy cập database từ bất kỳ thiết bị nào của bạn.

Cài đặt Nginx

Như một yêu cầu đối với hướng dẫn này, ta giả định bạn đã hoàn thành hướng dẫn trước đó và có file database KeePass2 trên server từ xa của bạn.

Bây giờ, ta cần cấu hình một web server để cung cấp quyền truy cập an toàn vào file của ta . Ta sẽ sử dụng nginx trong hướng dẫn này.

Cài đặt web server bằng lệnh :

sudo apt-get update sudo apt-get install nginx 

Thao tác này sẽ download và cài đặt web server .

Tạo certificate SSL

Ta sẽ bảo mật thông tin liên lạc của bạn với server bằng cách sử dụng SSL. Điều này sẽ mã hóa dữ liệu của ta trong quá trình chuyển để các bên bên ngoài không thể đọc thông tin password của ta .

Để bắt đầu, hãy tạo một folder theo phân cấp cấu hình nginx được dùng để lưu trữ các file SSL của ta :

sudo mkdir /etc/nginx/ssl 

Bây giờ, ta có thể tạo certificate SSL tự ký bằng lệnh :

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt 

Điều này sẽ hỏi bạn một loạt câu hỏi về trang web . Trả lời chúng tốt nhất có thể. Câu hỏi quan trọng nhất là câu hỏi đọc Common Name (eg server FQDN or YOUR name) . Đây là yêu cầu domain hoặc địa chỉ IP của server của bạn.

Khi bạn hoàn tất, bạn sẽ có hai file có tên nginx.keynginx.crt trong folder /etc/nginx/ssl .

Tạo file password

Bây giờ ta có certificate SSL để mã hóa thông tin liên lạc của ta với server của ta .

Tuy nhiên, ta cũng cần triển khai cơ chế tự xác thực với server . Ta không muốn cho phép bất kỳ ai truy cập vào database password của ta .

Cách dễ nhất để làm điều này thực sự là cài đặt một bộ công cụ có tên là apache2-utils . Ta có thể lấy gói từ kho:

sudo apt-get install apache2-utils 

Thao tác này sẽ cài đặt công cụ htpasswd , được dùng để tạo các file password an toàn mà web server của ta có thể đọc và hiểu.

Ta có thể tạo file password bằng cách chỉ định vị trí file và account user để tạo:

<pre>
sudo htpasswd -c / etc / nginx / htpasswd <span class = “highlight”> user demo </span>
</pre>
<pre>
Mật khẩu mới:
Gõ lại password mới:
Thêm password cho <span class = “highlight”>
user demo </span>
</pre>

Thao tác này sẽ tạo một file có tên htpasswd trong folder /etc/nginx , với một mục nhập cho user được gọi là demo_user . Tài khoản user có thể là bất kỳ thứ gì bạn muốn. Nó không cần phải là user tồn tại dưới dạng account hệ thống.

Tạo một folder web

Ta sẽ cung cấp một file có tên là password_database.kdbx . Ta sẽ giả định file này nằm trong folder chính của bạn.

Để web server của ta truy cập chính xác vào file và có thể đọc và ghi nội dung, ta cần tạo một folder web thích hợp để lưu trữ file . Trong folder chính của ta ( với quyền là regular user ), hãy tạo một folder mới cho database password của bạn:

mkdir ~/secure_html 

Bây giờ, hãy di chuyển file database vào folder đó:

mv ~/password_database.kdbx ~/secure_html 

Bây giờ, ta cần cung cấp cho user và group mà nginx hoạt động dưới quyền sở hữu của folder :

sudo chown www-data:www-data ~/secure_html 

Ta cũng muốn làm cho tất cả các file bổ sung sẽ được tạo trong folder này cho user web có thể truy cập được. Ta có thể làm điều này bằng cách đặt bit setgiud trên folder của ta :

sudo chmod 2770 ~/secure_html 

Bây giờ, ta cần thêm user hệ thống của bạn vào group www-data để ta có thể truy cập vào folder mà ta vừa bảo mật:

<pre>
sudo usermod -aG www-data <span class = “highlight”> demo_user </span>
</pre>

Lưu ý : Lúc này, bạn nên đăng xuất và đăng nhập lại để hệ thống ghi nhận thành viên group mới của bạn.

Ta cũng nên cấp quyền sở hữu group cho web server của ta đối với mọi thứ đã có trong folder này:

sudo chown :www-data ~/secure_html/* 

Các folder và file của ta bây giờ phải được cấu hình chính xác.

  • Web server là user và chủ sở hữu group của folder .
  • Web server là chủ sở hữu group của tất cả các file .
  • Web server sẽ được cấp quyền sở hữu group đối với các file mới được tạo trong folder .

Bây giờ ta có thể cài đặt cấu hình nginx của bạn để phục vụ folder này.

Cấu hình khối server Nginx

Bây giờ, ta đã sẵn sàng tạo cấu hình Nginx của bạn .

Ta sẽ sửa đổi file khối server mặc định. Mở nó trong editor của bạn với quyền root:

sudo nano /etc/nginx/sites-available/default 

Bên trong, ta sẽ tạo hai khối server . Bạn có thể xóa các nội dung khác hoặc comment chúng.

Ta hoàn toàn muốn yêu cầu SSL để truyền dữ liệu của bạn , vì vậy khối đầu tiên sẽ yêu cầu nginx chuyển hướng truy cập HTTP thông thường sang HTTPS. Nó sẽ trông giống thế này:

<pre>
người phục vụ {
nghe 80 server mặc định ;
nghe [::]: 80
server mặc định ipv6only = on;

access_log off; return 302 https://$http_host$request_uri; 

}
</pre>

Điều này cho server biết rằng đối với bất kỳ yêu cầu thông thường nào đến trên cổng 80, ta muốn gửi toàn bộ yêu cầu đến cổng 443 để gói nó trong SSL.

Bên dưới khối này, ta sẽ chỉ định các luật của ta đối với lưu lượng SSL. Đối với phần SSL của ta , ta sẽ thêm một khối server trông giống như sau:

<pre>
người phục vụ {
nghe 443;
nghe [::]: 443 ipv6only = trên ssl;
tên server <span class = “highlight”> domain.com </span> của bạn;

access_log /var/log/nginx/access.log; root /home/<span class="highlight">demo_user</span>/secure_html;  ssl_certificate /etc/nginx/ssl/nginx.crt; ssl_certificate_key /etc/nginx/ssl/nginx.key;  location / {     auth_basic "Restricted";     auth_basic_user_file "/etc/nginx/htpasswd";      dav_methods PUT DELETE MOVE COPY;     dav_access group:rw all:r; } 

}
</pre>

Phần đầu tiên này cài đặt khối như một server SSL. Nó thực hiện những việc tiêu chuẩn như đặt vị trí log , đặt tên server , đặt root tài liệu thành folder ta đã tạo và chỉ định certificate SSL và khóa mà ta đã tạo.

Bên dưới này, một khối vị trí sử dụng file password ta đã tạo để hạn chế quyền truy cập vào folder của ta . Cuối cùng, ta cài đặt một số phương thức WebDAV sẽ cho phép ứng dụng KeePass2 của ta đọc, sửa đổi và lưu dữ liệu trở lại server .

Khi bạn hoàn tất, hãy lưu file .

Bây giờ ta có thể khởi động lại nginx để triển khai cấu hình mới của bạn :

sudo service nginx restart 

Bây giờ ta đã sẵn sàng để cấu hình ứng dụng phía client của bạn .

Download và cài đặt KeePass2 trên Máy tính local của bạn

Nếu bạn chưa làm như vậy, bạn cần download và cài đặt chương trình KeePass2 vào máy tính local của bạn . Điều này sẽ cho phép bạn tương tác với file database từ xa của ta .

Nếu bạn đang chạy Linux trên máy tính local của bạn , rất có thể có gói KeePass2 trong repository của bản phân phối của bạn. Ví dụ: trên Ubuntu, có thể chạy lệnh:

sudo apt-get update sudo apt-get install keepass2 

Thao tác này sẽ cài đặt ứng dụng KeePass2 trên máy Ubuntu local của bạn.

Nếu bạn đang sử dụng Windows hoặc OS X trên máy tính local của bạn , bạn có thể tải bản phát hành mới nhất của ứng dụng KeePass2 bằng cách truy cập trang web Keepass. Nhấp vào liên kết " Download " trong thanh chuyển bên trái.

Nếu bạn đang sử dụng Windows trên máy local của bạn , liên kết download ở góc trên bên phải có nhãn “Phiên bản chuyên nghiệp” và “Trình cài đặt” là những gì bạn đang tìm kiếm:

 Download  KeePass2 Windows

Nếu bạn đang sử dụng OS X, bạn có thể cuộn xuống phần “Gói KeePass được đóng góp / không chính thức”. Có một gói cho OS X mà bạn có thể lấy:

 Download  KeePass2 OS X

Bạn có thể phải thực hiện một số bước bổ sung để chạy ứng dụng. Làm theo hướng dẫn cho hệ điều hành của bạn.

Kết nối với file database password từ xa của bạn

Đến đây bạn đã cài đặt ứng dụng KeePass2, hãy khởi động ứng dụng.

Yêu cầu KeePass2 cho phép certificate SSL tự ký

Điều đầu tiên mà ta cần làm là yêu cầu ứng dụng của ta chấp nhận certificate SSL không thể được xác minh. Vì certificate SSL của ta là certificate tự ký, nó không được ký bởi bất kỳ tổ chức phát hành certificate nào trong danh sách các tổ chức phát hành certificate tin cậy của hệ thống của ta .

Ta có thể nói với KeePass rằng ta ổn với điều này bằng cách sửa đổi cài đặt.

Bấm vào Tools , sau đó chọn Options . Bấm vào tab nâng cao. Trong cài đặt “Kết nối đầu vào / kết quả file ”, hãy chọn tùy chọn có nội dung “Chấp nhận certificate SSL không hợp lệ (tự ký, hết hạn,…)”:

KeePass2 chấp nhận certificate  tự ký

Nhấp vào “OK” để thực hiện các thay đổi .

Kết nối với file từ xa của bạn

Bây giờ, ta đã sẵn sàng kết nối với file của bạn .

Nhấp vào File > Open > Open URL từ menu:

URL mở KeePass2

Bạn sẽ nhận được một hộp thoại yêu cầu bạn điền vào URL và thông tin xác thực.

Xác thực KeePass2

Điền vào URL theo định dạng sau:

<pre>
https: // <span class = “highlight”> your domain.com </span> / password database.kdbx
</pre>

Nếu bạn đặt tên khác cho file database của bạn , hãy điều chỉnh nếu cần. Đối với tên user và password , hãy nhập chi tiết account mà bạn đã chọn cho lệnh htpasswd để bảo mật vị trí folder nginx.

Khi bạn kết nối, bạn cần nhập password chính cho file database của bạn . Đây là password bạn đã chọn để bảo vệ file database của bạn .

Mật khẩu chính KeePass2

Khi bạn hoàn tất, database password của bạn sẽ được mở trong version KeePass2 của bạn:

 Database  KeePass2 đã được mở

Đến đây bạn có thể sửa đổi và sử dụng password và thông tin đăng nhập trong database trên máy local của bạn . Bạn có thể ghi lại các thay đổi vào file và chúng sẽ được lưu trữ trên server từ xa của bạn.

Kết luận

Đến đây bạn sẽ có một cách khá tốt để truy cập file database của bạn . Sử dụng file database từ xa sẽ giúp bạn đồng bộ hóa database password giữa các thiết bị.

Điều hoàn toàn cần thiết là bạn phải backup file của bạn vào một số vị trí an toàn để tránh mất thông tin đăng nhập trong trường hợp server gặp sự cố hoặc hỏng file . Tôi khuyên bạn nên triển khai hệ thống đồng bộ hóa tự động như lsync hoặc BitTorrent Sync để xử lý sao chép tự động.

Bạn cũng nên nghĩ đến việc triển khai một cơ chế backup riêng để lưu trữ các version trước của file trong trường hợp file database của bạn bị hỏng và các thay đổi được đồng bộ hóa với các vị trí khác của bạn.

<div class = “author”> Bởi Justin Ellingwood </div>


Tags:

Các tin liên quan

Cách cài đặt WordPress với Nginx trên Ubuntu 14.04
2014-05-15
Cách tạo chứng chỉ SSL trên Nginx cho Ubuntu 14.04
2014-05-09
Cách tạo chứng chỉ SSL trên Nginx cho Ubuntu 14.04
2014-05-09
Cách cài đặt Nginx trên Ubuntu 14.04 LTS
2014-04-29
Cách thiết lập server block Nginx (server ảo) trên Ubuntu 14.04 LTS
2014-04-25
Cách tùy chỉnh tên server Nginx của bạn sau khi biên dịch từ nguồn trong CentOS
2014-02-11
Cách triển khai ứng dụng Rails bằng Passenger với Nginx trên CentOS 6.5
2014-01-29
Cách triển khai ứng dụng Rails bằng Unicorn và Nginx trên CentOS 6.5
2014-01-29
Cách thêm module ngx_pagespeed vào Nginx trong Debian Wheezy
2014-01-15
Cách cấu hình cài đặt trang web WordPress đơn và nhiều trang với Nginx
2013-11-26