1. Pure-FTPd là gì?

Pure-FTPd là một FTP server miễn phí, an toàn và hiệu quả, được thiết kế để dễ cài đặt và sử dụng trên các hệ điều hành Unix/Linux. Pure-FTPd được sử dụng để cung cấp dịch vụ truyền tải file qua giao thức FTP (File Transfer Protocol).

Ưu điểm:

  • Hỗ trợ FTPS (FTP Secure) sử dụng SSL/TLS để mã hóa dữ liệu.
  • Chống tấn công DoS và hạn chế kết nối.
  • Hỗ trợ virtual users và chroot để giới hạn truy cập vào các thư mục cụ thể.

2. Cài đặt Pure-FTPd trên Ubuntu?

Bạn SSH vào server cần cài đặt: https://helpdesk.inet.vn/knowledgebase/huong-dan-su-dung-putty-de-ket-noi-ssh-toi-vps-linux 

Chạy lệnh cập nhật và lệnh cài đặt pure-ftpd:

sudo apt update
sudo apt install pure-ftpd -y

Hiển thi như sau là đã cài đặt thành công

Bạn có thể kiểm tra service đã hoạt động chưa với lệnh sau

sudo systemctl status pure-ftpd

3. Cấu hình Pure-FTPd trên Ubuntu:

Bạn mở file cấu hình của pure-ftpd tại đường dẫn /etc/pure-ftpd/pure-ftpd.conf và sửa các trường như sau để thiết lập bảo mật cơ bản

Không cho phéptruy cập nặc danh

NoAnonymous       yes


Bật chỉ support truy cập địa chỉ IP4

IPV4Only yes


Bật chỉ support truy cập địa chỉ IP6

IPV6Only yes


Bật chỉ cho phép user truy cập trên các thư mục con của user đó

ChrootEveryone yes

Sau khi thay đổi bạn khởi động lại pure-ftpd để thay đổi có hiệu lực

systemctl restart pure-ftpd

4. Quản lý user của pure-fptd

- Tạo user pure-fptd

Trước khi tạo user trong pure-ftpd bạn cần có sẵn user trong hệ thống hệ điều hành hiện tại và không phải user root

Tạo một nhóm dành riêng cho người dùng FTP:

sudo groupadd ftpgroup

Tạo người dùng cho Pure-FTPd:

sudo useradd -g ftpgroup -d /dev/null -s /etc inetftp

Khi đã có user trong hệ thống bạn có thể tạo user ảo trong pure-ftpd, user ảo ftpu này sẽ có quyền với file như là user thật inetftp với quyền truy cập là trong thư mục /home/inetftp/ftpu

pure-pw useradd ftpu -u inetftp -d /home/inetftp/ftpu

Sau khi tạo thành công bạn thực hiện commit dữ liệu pure-ftpd để có hiệu lực

pure-pw mkdb

Lệnh này bạn cần sử dụng sau khi thêm, sửa, xóa user trong pure-ftpd

- Xóa user trong pure-fptd

pure-pw userdel ftpu
pure-pw mkdb

- Đổi pass user trong pure-fptd

pure-pw passwd ftpu

// nhập mật khẩu mới

pure-pw mkdb

5. Mở port FTP trên tường lửa

Nếu server bạn đang sử dụng có cài đặt tường lửa bạn cần mở port để có thể sử dụng:

- Port FTP mặc định: 21

- PassivePort của pure-ftpd: Bạn thể xem dải port này trong file cấu hình pure-ftpd.conf

cat /etc/pure-ftpd/pure-ftpd.conf | grep PassivePort

Ví du ảnh trên là từ port 30000 đến 50000

Server Ubuntu tại iNET dùng tường lửa ufw nên sẽ mở port như sau

sudo ufw allow 21

sudo ufw allow 30000:50000/tcp

6. Kiểm tra

Bạn có thể dùng phần mầm FTP (ví dụ Filezilla) kết nối và kiểm tra.

Nếu khi kết nối bạn gặp lỗi 530 Login authentication failed mặc dù đã điền đúng user và password

Bạn chạy thêm lệnh sau và thử kết nối lại nhé.

sudo ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/50pure

systemctl restart pure-ftpd

Như sau là đã kết nối thành công