Cài đặt FTP Server trên CentOS 7 với Vsftpd

Cài đặt FTP Server trên CentOS 7 với VsftpdCuongquach.com | Khi bạn chập chững với công việc quản trị dịch vụ Linux cơ bản, cũng như quản trị về dịch vụ Web Service/Website, hẳn bạn sẽ luôn có nhu cầu cài đặt và cấu hình một dịch vụ FTP Server. Vậy trong bài viết này ta sẽ tìm hiểu cách cài đặt và cấu hình dịch vụ FTP Server – Vsftpd trên CentOS 7.

cai-dat-ftp-server-vsftpd-tren-centos-7

Dịch vụ FTP Server – Vsftpd là gì ?

Vsftpd (Very Secure File Transport Protocol Daemon) là một trong những chương trình dịch vụ FTP Server phổ biến và đơn giản nhất. Chỉ với vài câu lệnh, vài cú pháp cấu hình,.. bạn đã có thể cài đặt thành công một FTP Server trên CentOS 7 cực kì ngon lành.

Chuẩn bị:

  • Một máy chủ với Hệ điều hành: CentOS-7
  • IP Public FTP Server: 18.141.185.156

1. Cài đặt dịch vụ Vsftpd trên CentOS 7

Cài đặt vsftpd.

# yum install vsftpd -y

Sau đó bạn sẽ khởi động dịch vụ FTP Server Vsftpd, rồi cấu hình để dịch vụ luôn khởi động khi hệ điều hành được boot lên.

# systemctl start vsftpd
# systemctl enable vsftpd

Coi trạng thái dịch vụ Vsftpd nào.

# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2020-05-31 03:17:08 UTC; 12s ago
Main PID: 2802 (vsftpd)
CGroup: /system.slice/vsftpd.service
└─2802 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

May 31 03:17:08 ip-172-31-31-82.ap-southeast-1.compute.internal systemd[1]: Starting Vsftpd ftp daemon...
May 31 03:17:08 ip-172-31-31-82.ap-southeast-1.compute.internal systemd[1]: Started Vsftpd ftp daemon.

Kiểm tra port dịch vụ Vsftpd đang lắng nghe (port 21).

# ss -lntp | grep -i "21"
LISTEN 0 32 *:21 *:* users:(("vsftpd",pid=2802,fd=4))

2. Cấu hình dịch vụ Vsftpd

File cấu hình dịch vụ FTP Server Vsftpd nằm ở : /etc/vsftpd/vsftpd.conf

Tiến hành backup file cấu hình ban đầu nhé.

# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.default

Sau đó tiếp tục tìm hiểu các nội dung cấu hình của dịch vụ FTP Server Vsftpd.

# vi /etc/vsftpd/vsftpd.conf

+ Các cấu hình cơ bản

anonymous_enable=NO
local_enable=YES
ftpd_banner="Welcome FTP Server - CuongQuach.com"
use_local_time-YES
listen=NO
listen_ipv6=YES
use_localtime=YES

Chú thích:

  • anonymous_enable (YES/NO): cho phép các kết nối ẩn danh, nên tắt đi.
  • local_enable (YES/NO): cho phép các local user được kết nối.
  • write_enable (YES/NO): cho phép quyền ghi vào thư mục upload, tương đương quyền upload dữ liệu.
  • ftpd_banner: dòng thông báo khi kết nối FTP Server.
  • listen_ipv6 (YES/NO): lắng nghe kết nối ipv6 và ipv4. Khi bạn cấu hình YES phần này, thì ở listen không cần cấu hình YES mà cấu hình NO.
  • use_localtime (YES/NO): sử dụng thời gian của máy chủ.

+ Cấu hình Chroot user FTP

Nếu không Chroot user FTP, thì khi user FTP kết nối tới FTP Server Vsftpd của bạn thì họ có quyền di chuyển giữa các thư mục khác trong hệ điều hành. Điều này làm phát sinh vấn đề về bảo mật. Vì vậy bạn cần giới hạn khả năng di chuyển giữa các thư mục đối với FTP User.

chroot_local_user=YES
allow_writeable_chroot=YES

+ Cấu hình file log dịch vụ Vsftpd FTP Server

xferlog_file=/var/log/vsftpd.log
xferlog_enable=YES
xferlog_std_format=NO
log_ftp_protocol=YES

+ Cấu hình sử dụng FTP Passive Mode

Bạn sẽ giới hạn các cổng port mà FTP Server sẽ sử dụng ở chế độ FTP Passive Mode.

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

+ Giới hạn user được phép login FTP Server

Nếu bạn enable tính năng sau, thì bạn sẽ chỉ định các user được phép kết nối vào FTP Server. Còn lại nếu không nằm trong danh sách được phép kết nối, thì các user khác đều bị từ chối.

userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO

+ Khởi động lại dịch vụ FTP Vsftpd

Sau khi đã cấu hình xong, bạn chỉ cần khởi động lại dịch vụ.

# systemctl restart vsftpd

3. Cấu hình tường lửa dịch vụ FTP

Giờ bạn cần cấu hình firewall để mở kết nối cho port 21 (command), port 20 (data) và passive mode ftp port (30000-31000).

+ Firewall iptables

# iptables -I INPUT -p tcp --dport 21 -j ACCEPT
# iptables -I INPUT -p tcp --dport 20 -j ACCEPT
# iptables -A INPUT -p tcp -m multiport --dports 30000:31000 -j ACCEPT
# iptables-save

+ Firewall firewalld

# firewall-cmd --permanent --add-port=20-21/tcp
# firewall-cmd --permanent --add-port=30000-31000/tcp
# firewall-cmd --reload

4. Khởi tạo user FTP

Giờ ta sẽ tạo một local user cùng mật khẩu dùng để login FTP Server Vsftpd trên CentOS 7.

# useradd cuongquachftp
# passwd cuongquachftp
# chmod 755 /home/cuongquachftp

Thêm user vào file được phép login FTP.

# echo 'cuongquachftp' >> /etc/vsftpd/user_list

Sau khi đã cấu hình xong, bạn chỉ cần khởi động lại dịch vụ.

# systemctl restart vsftpd

5. Truy cập FTP Server Vsftpd

Bạn tải chương trình Filezilla .

Rồi thực hiện điền thông tin kết nối như địa chỉ IP Public của FTP Server, user và mật khẩu. Sau đó tiến hành kết nối là xong.

cau-hinh-filezilla-ftp-account

Nguồn: https://cuongquach.com/

Previous articleCấu hình Port Forwarding truy cập ứng dụng trong Kubernetes Cluster
Next articleFix lỗi “setlocale: LC_CTYPE: cannot change locale (UTF-8)” trên MacOS
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !