Tại phần 1, ta đã tìm hiểu tổng quan về giao thức FTP, cũng như cách hoạt động của nó.

Bài viết này sẽ giúp bạn cấu hình một FTP server trên CentOS-7.

Mục lục

I. Giới thiệu
II. Cài đặt và cấu hình FTP server
III. Truy cập FTP server

I. Giới thiệu

VSFTPD(Very Secure File Transport Protocol Daemon) là một FTP Server Stand Alone được phân phối bởi Red Hat Enterprise Linux .
Đây là phần mềm để tạo FTP Server với tốc độ nhanh, cấu hình đơn giản.

Ngoài ra, nếu không sử dụng VSFTPD thì bạn có thể dùng ProFTPD hoặc Pure-FTPD đều được.

Trong bài viết này, mình sẽ cài đặt FTP server lên máy CentOS-7.
Việc cài đặt được thực hiện với quyền root.

Chuẩn bị:

  • Một máy cài CentOS-7
  • IP address của FTP Server: 192.168.37.25/24

II. Cài đặt FTP Server

1. Cài đặt VSFTPD:

Cài đặt gói Vsftpd:

# yum install vsftpd

Sau khi quá trình cài đặt hoàn tất, ta khởi động dịch vụ và cho phép nó khởi động cùng hệ thống.

# systemctl start vsftpd
# systemctl enable vsftpd

Cấu hình tường lửa cho dịch vụ FTP và port 21:

# firewall-cmd --permanent --add-port=21/tcp
success

# firewall-cmd --permanent --add-service=ftp
success

# firewall-cmd --reload
success

Kiểm tra trạng thái dịch vụ vsftpd:

2. Cấu hình VSFTPD

File cấu hình vsftpd nằm tại : /etc/vsftpd/vsftpd.conf
Copy file cấu hình để backup.

# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.backup

Chỉnh sửa file cấu hình vsftpd.conf:

# vi /etc/vsftpd/vsftpd.conf
  • FTP Access: Ta không cho kết nối nặc danh, mà chỉ cho kết nối cục bộ vào FTP server
anonymous_enable=NO    // Không cho kết nối nặc danh 
local_enable=YES        // Cho phép kết nối cục bộ
  • Enabling uploads: Cho phép người dùng upload.
write_enable=YES        //Cho phép người dùng nội bộ tải lên
  • Chroot: kỹ thuật giữ người dùng trong thư mục của họ, không cho phép. Tại đây ta sẽ chroot tất cả user, ngoại trừ các user trong file /etc/vsftpd/chroot_list
chroot_local_user=YES
allow_writeable_chroot=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
  • Login banner FTP server: banner khi người dùng login vào FTP server.
ftpd_banner="Welcome FTP Server"
  • Giới hạn cổng kết nối cho FTP thụ động: Giới hạn khoảng các cổng sử dụng cho FTP passive
pasv_min_port=30000
pasv_max_port=31000
  • Giới hạn User được phép truy cập vào hệ thống: Nếu muốn giới hạn các User local được đăng nhập vào hệ thống FTP server. Ta thêm vào các dòng sau. Khi đó, những User có trong file /etc/vsftpd/user_list mới được truy cập vào hệ thống.
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
  • Home directory: ta có thể chỉ định thư mục home khi người dùng đăng nhập vào hệ thống
local_root=<đường_dẫn_thư_mục>
  • Thời gian hệ thống: ta sử dụng thời gian local:
use_local_time-YES

3. Khởi động lại dịch vụ và cho phép các cổng FTP passive đi qua tường lửa

# systemctl restart vsftpd

# firewall-cmd --permanent --add-port=30000-31000/tcp
success

# firewall-cmd --reload
success

III. Truy cập FTP Server

Để truy cập FTP server, ta cần 1 tài khoản local và được cấp quyền truy cập vào FTP server.

1. Tạo user local

Tạo 1 local user là: cloud365 với mật khẩu là nhanhoa2020

# adduser cloud365
# passwd cloud365

Sau khi thêm xong thì thư mục mặc định của tài khoản này sẽ ở thư mục /home/cloud365/

2. Cấp quyền truy cập đến FTP server

Ta thêm user cloud365 vào file /etc/vsftpd/user_list để có thể truy cập vào server.

Thêm vào file /etc/vsftpd/chroot_list (Nếu bạn sử dụng trong file cấu hình)

Sau đó restart lại dịch vụ vsftpd

# systemctl restart vsftpd

3. Truy cập FTP server

Có nhiều cách để có thể truy cập FTP server như :

  • lftp trên CentOS-7
  • cmd trên Window
  • FileZilla trên Window

Ở đây, ta sử dụng FileZilla để truy cập tới FTP server. Ta nhập địa chỉ IP của Server, username, password

Sau khi nhập đúng địa chỉ của FTP server và tài khoản đăng nhập, ta sẽ thấy giao diện như trên với các thư mục trên FTP server.


Trên đây là hướng dẫn cài đặt một FTP server trên CentOS-7 của mình. Bài viết chắc chắn sẽ còn những thiếu sót. Rất mong sự góp ý của các bạn.

Bài viết sau, ta sẽ tìm hiểu cách sử dụng FileZilla để truy cập FTP server.

Xem thêm các bài viết về FTP.