Giao thức truyền tệp hay FTP là một giao thức mạng rất cũ và nổi tiếng nhất. Giao thức này không an toàn khi so sánh với SFTP hoặc SCP hiện nay nhưng vẫn là lựa chọn đầu tiên của nhiều người dùng để truyền tệp giữa máy chủ và máy khách. FTP được coi là không an toàn vì nó truyền dữ liệu cùng với thông tin đăng nhập của người dùng mà không có bất kỳ loại mã hóa nào.
Hiện nay, chúng ta có nhiều máy chủ FTP nguồn mở như FTPD, VSFTPD, PROFTPD và pureftpd. Trong số tất cả các giao thức này, VSFTPD là giao thức rất an toàn, nhanh và được sử dụng rộng rãi nhất để truyền tệp giữa hai hệ thống.
VSFTPD còn được gọi là "Giao thức truyền tệp rất an toàn" với hỗ trợ SSL, IPv6, FTPS rõ ràng và ngầm định.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn Cách cài đặt Máy chủ FTP vsftpd trên Debian 11.
Người dùng không phải root có quyền sudo.
Debian có kho lưu trữ rất lớn và Gói vsftpd có sẵn trong kho lưu trữ chính thức, vì vậy bạn có thể dễ dàng cài đặt vsftpd bằng cách chạy lệnh sau:
Sau khi cài đặt gói, hãy khởi động dịch vụ Vsftpd, kiểm tra trạng thái dịch vụ và bật dịch vụ khi khởi động.
Người dùng được thêm vào tệp vsftpd.userlist có quyền truy cập vào máy chủ FTP.
Tiếp theo, chúng ta cần thêm người dùng sohan vào danh sách người dùng vsftpd. Mở tệp và thêm người dùng bằng cách thực hiện lệnh sau:
Bây giờ, hãy tạo một thư mục nơi các tệp có thể được tải lên và cấp quyền sở hữu cho người dùng sohan bằng cách thực thi lệnh:
Đầu tiên, hãy tạo bản sao lưu của tệp cấu hình vsftpd gốc.
Trong máy chủ FTP, người dùng ẩn danh được cấp quyền truy cập theo mặc định. Để bảo mật máy chủ FTP hơn, chúng tôi sẽ vô hiệu hóa đăng nhập người dùng ẩn danh và chỉ cấp quyền truy cập cho người dùng cụ thể.
Tiếp theo, mở tệp vsftpd.conf và thực hiện các thay đổi như sau:
Có một số thay đổi khác mà chúng ta cần thực hiện trong cấu hình, Đầu tiên, hãy mở vsftpd.conf
Tiếp theo, hãy đảm bảo vsftpd.conf chứa nội dung sau dòng:
Lưu và đóng tệp. Bạn có thể thay đổi cấu hình trên tùy theo nhu cầu của mình.
Bây giờ hãy khởi động lại dịch vụ vsftpd và kiểm tra trạng thái dịch vụ bằng cách thực hiện các lệnh sau:
Tiếp theo, hãy đảm bảo rằng dịch vụ vsftpd đang ở trạng thái chạy bằng cách thực hiện lệnh sau trong Terminal:
Sau đó tải lại tường lửa để áp dụng các thay đổi:
Tiếp theo, mở bất kỳ máy khách FTP nào như FileZilla và nhập thông tin chi tiết về máy chủ của bạn, như Giao thức, Máy chủ, Người dùng:
Bây giờ, hãy nhấp vào kết nối, sau đó nhập mật khẩu của bạn:
Sau đó, nó sẽ hiển thị thông tin chi tiết như bên dưới, hãy nhấp vào OK.
Tại thời điểm này, bạn đã kết nối với máy chủ FTP và bạn có thể tải lên và tải xuống các tệp/thư mục.
Bạn có thể tạo chứng chỉ bằng OpenSSL bằng lệnh sau:
Bây giờ, bạn sẽ cần chỉnh sửa tệp vsftpd.conf và thực hiện một số thay đổi:
Thêm các dòng sau vào cuối cùng:
Lưu và thoát khỏi tệp, sau đó khởi động lại Vsftpd bằng lệnh sau:
Tiếp theo, nhập mật khẩu của bạn:
Tiếp theo, bạn sẽ thấy chứng chỉ SSL, xác minh thông tin chi tiết về chứng chỉ và nhấp vào OK.
Cuối cùng, bạn sẽ thấy nội dung máy chủ FTP của mình và có thể chuyển dữ liệu của mình một cách an toàn từ hệ thống này sang hệ thống khác.
Hiện nay, chúng ta có nhiều máy chủ FTP nguồn mở như FTPD, VSFTPD, PROFTPD và pureftpd. Trong số tất cả các giao thức này, VSFTPD là giao thức rất an toàn, nhanh và được sử dụng rộng rãi nhất để truyền tệp giữa hai hệ thống.
VSFTPD còn được gọi là "Giao thức truyền tệp rất an toàn" với hỗ trợ SSL, IPv6, FTPS rõ ràng và ngầm định.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn Cách cài đặt Máy chủ FTP vsftpd trên Debian 11.
Điều kiện tiên quyết
Máy chủ chạy Debian 11.Người dùng không phải root có quyền sudo.
1. Cài đặt Vsftpd
Trước khi bắt đầu cài đặt, hãy cập nhật máy chủ Debian 11 của bạn bằng cách thực hiện lệnh sau trong thiết bị đầu cuối:
Mã:
sudo apt update -y
sudo apt upgrade -y
Mã:
sudo apt install vsftpd -y
Mã:
sudo systemctl start vsftpd
sudo systemctl status vsftpd
systemctl enable vsftpd.service
2. Tạo một người dùng FTP và cấu hình để đăng nhập FTP
Bây giờ, hãy tạo một tài khoản người dùng mới cho FTP, sử dụng người dùng này, chúng ta sẽ đăng nhập vào máy chủ FTP sau.
Mã:
sudo adduser sohan
Tiếp theo, chúng ta cần thêm người dùng sohan vào danh sách người dùng vsftpd. Mở tệp và thêm người dùng bằng cách thực hiện lệnh sau:
Mã:
echo "sohan" | sudo tee -a /etc/vsftpd.userlist
3. Tạo thư mục người dùng FTP
Tiếp theo, chúng ta cần tạo một thư mục FTP cho người dùng FTP của mình và thiết lập quyền sở hữu bằng lệnh sau:
Mã:
sudo mkdir -p /home/sohan/ftp_directory
sudo chown nobody:nogroup /home/sohan/ftp_directory
sudo chmod a-w /home/sohan/ftp_directory
Mã:
sudo mkdir -p /home/sohan/ftp_directory/ftp_data
Mã:
sudo chown sohan:sohan /home/sohan/ftp_directory/ftp_data
Mã:
cd /home/sohan/ftp_directory/
Mã:
chmod -R 777 ftp_data
4. Cấu hình Vsftpd
Tiếp theo, bạn cần thay đổi một số tham số mặc định để thiết lập máy chủ FTP.Đầu tiên, hãy tạo bản sao lưu của tệp cấu hình vsftpd gốc.
Mã:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
Tiếp theo, mở tệp vsftpd.conf và thực hiện các thay đổi như sau:
Mã:
vim /etc/vsftpd.conf
Mã:
anonymous_enable=NO
local_enable=YES
Mã:
sudo vim /etc/vsftpd.conf
Mã:
listen=KHÔNG
listen_ipv6=CÓ
anonymous_enable=KHÔNG
write_enable=CÓ
local_umask=022
dirmessage_enable=CÓ
use_localtime=CÓ
xferlog_enable=CÓ
connect_from_port_20=CÓ
chroot_local_user=CÓ
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
user_sub_token=$USER
local_root=/home/$USER/ftp_directory
userlist_enable=CÓ
userlist_file=/etc/vsftpd.userlist
userlist_deny=KHÔNG
Bây giờ hãy khởi động lại dịch vụ vsftpd và kiểm tra trạng thái dịch vụ bằng cách thực hiện các lệnh sau:
Mã:
sudo systemctl restart vsftpd
Tiếp theo, hãy đảm bảo rằng dịch vụ vsftpd đang ở trạng thái chạy bằng cách thực hiện lệnh sau trong Terminal:
Mã:
sudo systemctl status vsftpd
5. cho phép vsftpd trong tường lửa và truy cập máy chủ vsftpd
Tiếp theo, nếu bạn đang sử dụng tường lửa thì hãy cho phép cổng 21 và cổng 22 bằng cách chạy lệnh sau:
Mã:
sudo ufw allow 21/tcp
sudo ufw allow 22/tcp
Mã:
sudo ufw reload
Bây giờ, hãy nhấp vào kết nối, sau đó nhập mật khẩu của bạn:
Sau đó, nó sẽ hiển thị thông tin chi tiết như bên dưới, hãy nhấp vào OK.
Tại thời điểm này, bạn đã kết nối với máy chủ FTP và bạn có thể tải lên và tải xuống các tệp/thư mục.
6. Bảo mật Vsftpd bằng SSL/TLS
Giả sử bạn muốn truyền dữ liệu được mã hóa qua FTP, để thực hiện việc này, bạn cần tạo chứng chỉ SSL và cần bật kết nối SSL/TLS.Bạn có thể tạo chứng chỉ bằng OpenSSL bằng lệnh sau:
Mã:
sudo mkdir /etc/cert
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/cert/vsftpd.pem -out /etc/cert/vsftpd.pem
Mã:
sudo vim /etc/vsftpd.conf
Mã:
rsa_cert_file=/etc/cert/vsftpd.pem
rsa_private_key_file=/etc/cert/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
Mã:
sudo systemctl restart vsftpd
7. Truy cập FTP qua SSL/TLS
Mở FileZilla FTP client và vào File>Sites Manager. Tại đây, nhấp vào thêm New site và nhập tên host/site, thêm địa chỉ IP, xác định giao thức sử dụng, Encryption: Require to explain FTP over TLS và loại đăng nhập. Sau đó nhấp vào nút Connect. Bạn sẽ thấy hình ảnh sau:Tiếp theo, nhập mật khẩu của bạn:
Tiếp theo, bạn sẽ thấy chứng chỉ SSL, xác minh thông tin chi tiết về chứng chỉ và nhấp vào OK.
Cuối cùng, bạn sẽ thấy nội dung máy chủ FTP của mình và có thể chuyển dữ liệu của mình một cách an toàn từ hệ thống này sang hệ thống khác.