JABZ7SHOP : Web Selling Things With Cheap Price : https://jabz7shop.blogspot.com/ : Go To My Shop Online Now
Bài đăng

Hướng dẫn cài đặt máy chủ FTP với VSFTPD trên Ubuntu 20.04

7 min read

 

Giới thiệu

FTP là chữ viết tắt của File Transfer Protocol đây là một giao thức giúp chúng ta dễ dàng trao đổi các dữ liệu giữa client với server và ngược lại. Với FTP, chúng ta sẽ có quyền quản lý toàn bộ các dữ liệu dạng tập tin và thư mục có trên server ngoại trừ database.

Trong bài viết này sẽ hướng dẫn cách cài đặt máy chủ FTP với vsftpd trên Ubuntu 20.04 có sử dụng SSL/TLS.

Cập nhật hệ thống

Để đảm bảo rằng tất cả các phụ thuộc của vsftpd đều được cập nhật, hãy thực thi lệnh bên dưới:

bash (root)

Trong quá trình cập nhật hệ thống chúng ta chờ từ 5 phút đến 15 phút.

Cài đặt vsftpd

Chúng ta thực thi lệnh bên dưới để tiến hành cài đặt vsftpd:

bash (root)

Sau khi cài đặt thành công chúng ta có thể kiểm tra version của vsftpd như sau:

bash (root)

Kết quả

Chúng ta tiến hành thực thi lệnh sau để vsftpd có thể khởi động cùng với hệ thống.

bash (root)

Tiến hành kiểm tra trạng thái của vsftpd:

bash (root)

Kết quả

Cấu hình firewall

Đối với hệ điều hành Ubuntu thì firewall UFW là firewall mặc định. Do đó, chúng ta cần phải cấu hình firewall UFW để mở port cho FTP nên trước hết bạn hãy kiểm tra trạng thái hiện tại:

bash (root)

Kết quả

Thực hiện mở các port 20 (FTP command port), 21 (FTP data port), 990 (TLS FTP data port) và dải port 39000-40000 bằng cách thực hiện các câu lệnh sau:

bash (root)

Tiến hành kiểm tra kết quả sau khi đã mở port:

bash (root)

Kết quả

Cấu hình vsftpd

Sau khi đã tiến hành mở các port cần thiết trên firewall chúng ta sẽ tiến hành cầu hình vsftpd bằng cách thực hiện chỉnh 1 số giá trị trong file /etc/vsftpd.conf bằng cách sử dụng trình soạn thảo quen thuộc.

Tiếp đến, tìm đến các dòng sau để thay đổi và chỉnh sửa như sau:

/etc/vsftpd.conf

Tìm đến dòng local_enable thay đổi giá trị thành yes, dòng này có nghĩa là chúng ta sẽ cho phép các user nội bộ login qua ftp

/etc/vsftpd.conf

Tiếp theo cần giới hạn người dùng chỉ có thể thao tác trên thư mục cụ thể.

/etc/vsftpd.conf

Chúng ta có thể cho phép quyền ghi để có thể kích hoạt chức năng upload trên FTP Server.

/etc/vsftpd.conf

Do vsftpd có thể sử dụng bất kì port nào cho các kết nối passive FTP. Vì vậy nên chúng ta thực hiện cấu hình minimum port và maximum port với dòng cấu hình sau:

/etc/vsftpd.conf

Ngoài ra chúng ta cũng có thể giới hạn những người dùng nào có thể đăng nhập vào FTP Server, thêm đoạn cấu hình sau:

/etc/vsftpd.conf

Sau đó thực hiện lưu file lại và thoát ra. Ta dùng lệnh sau để khởi động lại dịch vụ vsftpd.

bash (root)

Tạo và phân quyền user

Để thêm người dùng mới vào máy chủ FTP, chúng ta thao tác như sau:

bash (root)

Do khi nảy chúng ta có tiến hành cấu hình giới hạn người dùng được phép đăng nhập FTP server vì vậy cầm thêm người dùng mới tạo vào danh sách người dùng của FTP:

bash (root)

Sau khi thêm vào danh sách, chúng hãy tạo thư mục và thực hiện phân quyền cho user:

bash (root)

Kiểm tra lại quyền thư mục như sau:

bash (root)

Kết quả

Tạo một thư mục để có thể lưu các file tải lên và phân quyền cho user được phép truy cập thư mục này:

bash (root)

Kiểm tra lại kết quả như sau:

bash (root)

Kết quả

Thực hiện tạo 1 file bên trong thư mục upload.

bash (root)

Thực hiện thêm nội dung cho file này:

bash (root)

Kết nối FTP Client

Đối với hệ điều hành Linux

Chúng ta có thể thực hiện lệnh sau để thực hiện kiểm tra kết nối FTP.

bash (root)

Trong bài hướng dẫn này sẽ kiểm tra như sau:

bash (root)

Kết quả

Kết quả bên trên cho chúng ta thấy người dùng bất kì không thể đăng nhập vào FTP Server. Vì chúng ta đã cấu hình giới hạn những người dùng có thể đăng nhập vào FTP Server.

bash (root)

Chúng ta sẽ sử dụng username và password mà chúng ta đã tạo ở bước trên để tiến hành đăng nhập FTP Server:

Kết quả

Sau khi chúng ta đã login thành công chúng ta. Thực hiện tải xuống file 123hostdemo.txt vừa tạo:

Kết quả

Thực hiện đổi tên file 123hostdemo.txt để xác nhận người dùng được tạo có quyền write:

Kết quả

Thực thi lệnh sau để đóng kết nối FTP:

Kết quả

Trở về máy client chúng ta kiểm tra file 123hostdemo.txt đã được download về thành công chưa.

bash (root)

Kết quả

Kiểm tra nội dung file:

bash (root)

Kết quả

Đây chính là file mà chúng ta đã tạo ở bước trên tại FTP Server

Quay trở lại FTP Server kiểm tra file khi nảy client upload lên xem kết quả như nào:

bash (root)

Kết quả

Như vậy là việc download và upload file ở client Linux đã thành công.

Đối với hệ điều hành Windows

Với hệ điều hành Windows chúng ta có thể sử dụng các phần mềm như là WinSCP, Cyberduck, FileZilla trong hướng dẫn này sẽ sử dụng FileZilla trên Windows để hướng dẫn việc kết nối FTP Server cũng như download file.

Chúng ta có thể thực hiện tải phần mềm FileZilla

Đây là giao diện của phần mềm FileZilla

Tiếp theo chúng ta cần thực hiện điền Host, Username, Password đây là thông tin FTP Server chúng ta cần kết nối đến:

Kết quả kết nối như trên.

Chúng ta có thể thực hiện download file từ FTP Server về máy tính như sau:

Hoặc chúng ta có thể thực hiện upload file từ máy tính cá nhân lên FTP Server

Như vậy là việc download và upload file ở client Window đã thành công.

Thiết lập LTS

Tại FTP Server

Để đảm bảo an toàn thì FTP cần thực hiện mã hoá kết nối sử dụng LTS vì vậy chúng ta cần phải có một chứng chỉ SSL và cấu hình vsftpd sử dụng chứng chỉ SSL này.

Chúng ta sẽ sử dụng openssl để tạo chứng chỉ như sau:

bash (root)

Sau khi đã tạo thành công chứng chỉ SSL thì chúng ta cần tiến hành cấu hình vsftpd sử dụng chứng chỉ SSL bằng cách chỉnh sửa file cấu hình tại /etc/vsftpd.conf

Thực hiện chỉnh sửa đường dẫn sau:

/etc/vsftpd.conf

Tiếp tục thay đổi giá trị ssl_enable thành yes:

/etc/vsftpd.conf

Chúng ta cần thêm một số cấu hình để tăng bảo mật cho SSL:

/etc/vsftpd.conf

Sau đó thực hiện lưu file lại và thoát ra. Ta dùng lệnh sau để khởi động lại dịch vụ vsftpd.

bash (root)

Tại FTP Client

Ở trên chúng ta đã cấu hình mã hoá FTP với SSL/TLS hiện tại chúng ta có thể sử dụng Filezilla để kiểm tra.

Mở Filezilla, chọn Site Manager bên trên:

Chọn tiếp New Site để thêm thông tin FTP Server mới:

Thực hiện điền thông tin FTP Server. Do mặc định port FTP là 21 nên chúng ta có thể để trống ô port.

Lưu ý: Chọn Require explicit FTP over TLS do FTP Server đã được mã hoá TLS.

Nếu kết nối thành công, chúng ta sẽ nhận được cửa sổ như bên dưới. Chọn Always trust this certificate in future sessions để không phải hỏi như lần sau.

Bảo mật vsftpd

Theo như mặc định thì khi tạo một người dùng FTP, nếu không cấu hình giới hạn, thì người dùng đó có thể SSH vào Server. Chính vì vậy, để đảm bảo an toàn chúng ta nên tắt SSH cho những người dùng FTP để nâng cao bảo mật.

Cách 1: Tạo shell script

Tạo một shell script thực thi /bin/ftponly như bên dưới:

bash (root)

Thêm đoạn shell trên vào /etc/shells:

bash (root)

Thay đổi đoạn shell của người dùng FTP:

bash (root)

Cách 2: Cấu hình trong dịch vụ ssh

Chúng ta có thể sử dụng trình soạn thảo quen thuộc để cấu hình file /etc/ssh/sshd_config không cho User FTP truy cập SSH và SFTP bằng cách thực hiện thêm vào dòng sau:

/etc/ssh/sshd_config

Lưu ý: Không nhập tên người dùng root tại đây hoặc bất kỳ tên người dùng chúng ta sử dụng để truy cập SSH nếu không chúng ta không thể truy cập SSH

Lưu lại file cấu hình và thoát.

Khởi động lại dịch vụ SSH.

bash (root)

Như vậy chúng ta có thể không cho User FTP truy cập SSH và SFTP.

Bài viết trên đã hoàn tất việc cấu hình và cài đặt vsftpd trên Ubuntu 20.04

Chúc các bạn thành công!

00:00 / 00:00

Bạn có thể thích những bài đăng này

Đăng nhận xét