Cách setup FTP server với VSFTPD trên CentOS 8

Tóm tắt nội dung

FTP ( File Transfer Protocol ) là một giao thức client-server giúp cho người dùng có thể truyền tải các tập tin từ xa thông qua  2 port là 20 và 21.

Có nhiều FTP server mã nguồn mở được sử dụng trong linux nhưng phổ biến nhất là PureFTPD, ProFPTD và  VSFPTD.

Trong bài này mình sẽ hướng dẫn các bạn cài đặt và cấu hình VSFPTD ( Very Secure FTP Daemon ) trên CentOS 8.  

Cài đặt VSFTPD trên CentOS

Bởi vì gói VSFPTD có sẵn trong kho lưu trữ CentOS. Nên để cài đặt nó ta  sử dụng lệnh sau . Lưu ý sử dụng với root hoặc user có quyền sudo :

# sudo dnf install vsftpd -y

Khi gói VSFTPD đã được cài đặt xong, minh sẽ enable nó lên bằng lệnh : 

# sudo systemctl enable vsftpd --now

Cấu hình VSFTPD

file cài đặt của VSFTPD server sẽ được lưu trong /etc/vsftpd/vsftpd.conf .

Trong các phần tiếp theo mình sẽ tiến hành  cấu hình các phần quan trọng trong VSFTPD để server được an toàn hơn.

Bắt đầu thì mình mở file config của VSFTPD : 

# sudo vi /etc/vsftpd/vsftpd.conf

1. Truy cập FTP

ở đây thì mình chỉ cho phép người dùng local truy cập vào FTP server, nên mình sẽ tìm tới dòng anonymous_enable và local_enable mình chỉnh như hình dưới :

2.Cho phép Uploads

Mình bỏ dòng ghi chú phía trên 1 dòng của dòng write_enable để cho phép thay đổi file trong hệ thống . như là tải file lên hoặc xóa file : 

3. Chroot Jail

Ngăn người sử dụng FTP truy cập file từ bên ngoài thưu mục chính của họ bằng cách bỏ chặn dấu thăng đầu dòng của dòng chroot_local_user=YES.

4. Kết nối tới FTP Passive

VSFTPD có thể sử dụng bất kì các port nào để kết nối FTP Passive. Mình sẽ chỉ định vi hoạt động và sau đó sẽ mở tường lửa trong phạm vi đó.

Mình sẽ  thêm cấu hình như sau :

# vi /etc/vsftpd/vsftpd.conf
# pasv_min_port=3000
# pasv_max_port=3100

5. Giới hạn đăng nhập người dùng

để chỉ cho phép một số người nhất định truy cập vào FTP server, Mình sẽ thêm những dòng này vào sau dòng userlist_enable=YES :

# userlist_file=/etc/vsftpd/user_list
# userlist_deny=NO

6. Bảo mật  với SSL / TSL

Trong bài này mình sẽ hướng dẫn tạo chứng chỉ SSL với công cụ openssl.

Trong lệnh dưới sẽ tạo ra private key  2048 bit  và có giá trị trong vòng 10 năm. Và cả private key và chứng chỉ sẽ nằm chung một file :

# sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem

Sau khi chứng chỉ SSL được tạo thì mở file /etc/vsftpd/vsftpd.conf  và sửa như sau :

#rsa_cert_file=/etc/vsftpd/vsftpd.pem
#rsa_private_key_file=/etc/vsftpd/vsftpd.pem
#ssl_enable=YES

 

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

và tất cả các cấu hình không có các dòng có dấu # sẽ như sau : 

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
tcp_wrappers=YES
user_sub_token=$USER
local_root=/home/$USER/ftp
pasv_min_port=30000
pasv_max_port=31000
rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/vsftpd.pem
ssl_enable=YES

sau dó lưu lại và sử dụng lệnh :

# sudo systemctl restart vsftpd

 

Mở firewall 

để mở các port 21 ( port lệnh FTP ) và port 20 ( port dữ liệu FTP ) và port từ 3000 tới 3100 ( phạm vi thụ động mà mình đặt lúc nãy ) hãy sử dụng lệnh sau : 

# sudo firewall-cmd -- premanent -- add-port20-21/tcp

# sudo firewall-cmd -- premanent -- add-port3000-3100/tcp

# firewall-cmd --reload

 

Tạo các user của FTP

1. Tạo user mới có tên là nvcloudviet : 

# sudo adduser nvcloudviet

tiếp theo mình tạo mật khẩu cho user

# sudo passwd nvcloudviet

2. Thêm user đó vào danh sách user sử dụng FPT :

 # echo "vncloudviet" | sudo tee -a /etc/vsftpd/user_list

 

vậy là tại thời điểm này , FTP server của bạn đã hoạt động tốt và các user được cấp phép truy cập vào FTP có thể kết nối với máy server .

Kết Luận

Mình đã kết thúc phần hướng dẫn cách setup FPT server với VSFTPD trên centos 8 an toàn và nhanh chóng.

Nếu bạn có những câu hỏi nào hoặc vẫn đề nào đừng quên để lại câu hỏi bên dưới mình sẽ giải quyết tất cả cho bạn.

Nguồn : Linuxize.com

Logo Cloud Việt

Thông Tin Và Hoạt Động Của Chúng Tôi

Cloud Việt là đơn vị cung cấp dịch vụ TTDL uy tín tại Việt Nam. Với tiêu chí là đặt quyền lợi và trải nghiệm của khách hàng lên hàng đầu để  đem đến dịch vụ tốt nhất.

Trụ sở chính

110/20/41 đường số 30, phường 6, quận Gò Vấp, TPHCM

Ngày làm việc

Thứ 2 - Thứ 6, Hàng tuần

Giờ làm việc

08 : 00 AM - 18 : 00 PM

Email

Support@cloudviet.com.vn

Hotline

0972 710 812