NỘI DUNG

Banner blog lễ 30.4 và 1.5

Cách thiết lập vsftpd để cài FTP Server trên Ubuntu 20.04

Hưng Nguyễn

Đã kiểm duyệt nội dung

Ngày đăng:07/05/2025
Lượt xem

Đánh giá

5/5 - (1 bình chọn)

FTP (File Transfer Protocol) là một giao thức truyền tải dữ liệu giữa máy khách (Client) và máy chủ (Server) qua mạng. Việc sử dụng FTP giúp chia sẻ và quản lý tập tin dễ dàng hơn, đặc biệt trong môi trường quản trị hệ thống hoặc lưu trữ từ xa. Trong bài viết này, mình sẽ hướng dẫn bạn cách cài FTP Server trên Ubuntu 20.04 bằng vsftpd, kèm theo bảo mật với SSL/TLS để đảm bảo an toàn khi truyền dữ liệu.

Những điểm chính 

  • Chuẩn bị môi trường: Nắm rõ các yêu cầu hệ thống và thao tác cần thiết trước khi tiến hành cài đặt FTP Server với vsftpd.
  • Cài đặt vsftpd: Biết cách cài đặt vsftpd – một FTP Server nhẹ, bảo mật và dễ cấu hình trên Ubuntu 20.04.
  • Cấu hình tường lửa cho vsftpd: Biết cách mở cổng tường lửa để đảm bảo kết nối FTP hoạt động trơn tru và không bị chặn.
  • Cấu hình vsftpd: Hiểu cách điều chỉnh các thiết lập quan trọng giúp FTP Server hoạt động an toàn và hiệu quả hơn.
  • Cấu hình thư mục người dùng: Biết cách thiết lập thư mục riêng cho người dùng FTP, đảm bảo quyền truy cập đúng mục tiêu.
  • Kiểm tra kết nối FTP: Có thể kiểm tra nhanh FTP đã hoạt động ổn định hay chưa từ phía client.
  • Mã hóa kết nối với SSL/TLS: Biết cách bật mã hóa TLS để đảm bảo dữ liệu không bị rò rỉ khi truyền tải qua FTP.
  • Kiểm tra TLS với FileZilla: Nắm được cách xác minh việc kết nối bảo mật TLS hoạt động đúng cách bằng phần mềm FileZilla.
  • Tắt SSH trong vsftpd: Biết cách vô hiệu hóa SSH nếu không cần dùng, tăng tính bảo mật cho hệ thống.
  • Biết thêm Vietnix là nhà cung cấp dịch vụ lưu trữ chất lượng cao.
  • Câu hỏi thường gặp: Giải đáp các thắc mắc phổ biến khi cài đặt và sử dụng FTP Server bằng vsftpd.

Chuẩn bị môi trường

Trước khi bắt đầu cài đặt vsftpd, bạn cần đảm bảo môi trường hệ thống đáp ứng đủ hai điều kiện sau:

  • Hệ điều hành Ubuntu 20.04: Đây là phiên bản được sử dụng trong bài hướng dẫn. Các phiên bản khác có thể có sự khác biệt nhẹ về câu lệnh hoặc cấu trúc thư mục.
  • Tài khoản người dùng có quyền sudo: Việc cài đặt và cấu hình vsftpd yêu cầu quyền truy cập root để thực thi các lệnh quản trị hệ thống.

Cài đặt vsfptd

Để bắt đầu thiết lập FTP Server trên Ubuntu 20.04, bạn cần cài đặt gói vsftpd – một dịch vụ FTP nhẹ, ổn định và phổ biến:

sudo apt update
sudo apt install vsftpd

Sau khi cài đặt, bạn nên sao lưu tập tin cấu hình mặc định để dễ dàng khôi phục nếu cần. Việc sao lưu này giúp bạn yên tâm điều chỉnh cấu hình mà không lo làm hỏng thiết lập gốc:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

Cấu hình tưởng lửa cho vsftpd

Để FTP Server hoạt động bình thường và cho phép kết nối từ bên ngoài, bạn cần mở các cổng liên quan trong tường lửa UFW – công cụ firewall mặc định trên Ubuntu 20.04. Đầu tiên, bạn hãy kiểm tra trạng thái của UFW bằng lệnh sau:

sudo ufw status

Nếu tường lửa đang hoạt động (Status: active), bạn sẽ thấy các rule đã được thiết lập như OpenSSH. Lúc này, bạn cần bổ sung thêm rule để mở các cổng FTP bao gồm:

  • Cổng 20: Truyền dữ liệu FTP truyền thống.
  • Cổng 21: Cổng lệnh FTP.
  • Cổng 990: Cổng truyền dữ liệu bảo mật TLS.
  • Dải cổng 35000–40000: Dùng cho chế độ Passive Mode của FTP.

Chạy các lệnh sau để mở các cổng trên:

sudo ufw allow 20:21/tcp
sudo ufw allow 990/tcp
sudo ufw allow 35000:40000/tcp

Sau khi hoàn tất, bạn có thể kiểm tra lại trạng thái tường lửa để xác nhận các cổng đã được mở:

sudo ufw status

Nếu các rule được thêm thành công, bạn sẽ thấy các dòng như sau trong kết quả:

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
990/tcp                    ALLOW       Anywhere
20:21/tcp                  ALLOW       Anywhere
35000:40000/tcp            ALLOW       Anywhere
...

Như vậy, tường lửa đã sẵn sàng để cho phép các kết nối FTP hoạt động đúng cách qua vsftpd.

Cấu hình vsftpd

Sau khi cài đặt, bạn cần tiến hành cấu hình để FTP Server hoạt động đúng mục đích và đảm bảo an toàn. Bạn mở file cấu hình của vsftpd bằng lệnh sau:

sudo nano /etc/vsftpd.conf

Tại đây, bạn chỉnh sửa hoặc thêm các dòng cấu hình sau:

  • Chỉ cho phép người dùng nội bộ truy cập FTP:
anonymous_enable=NO
local_enable=YES
  • Bật quyền ghi để cho phép upload tập tin: Bạn hãy chắc chắn rằng dòng sau được bỏ dấu # nếu có:
write_enable=YES
  • Giới hạn người dùng chỉ thao tác trong thư mục của họ:
chroot_local_user=YES
allow_writeable_chroot=YES
  • Cấu hình dải port cho kết nối passive FTP: Việc giới hạn port giúp dễ cấu hình tường lửa và bảo mật hơn:
pasv_min_port=35000
pasv_max_port=40000
  • Chỉ cho phép một số người dùng nhất định đăng nhập FTP:
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

Với đoạn cấu hình trên, FTP Server sẽ chỉ cho phép các người dùng có tên trong file /etc/vsftpd.userlist được đăng nhập, đồng thời đảm bảo quyền upload, bảo mật thư mục và kiểm soát cổng kết nối.

Cấu hình thư mục người dùng 

Sau khi đã cài đặt và cấu hình cơ bản FTP Server bằng vsftpd, bước tiếp theo là tạo người dùng FTP và thiết lập thư mục riêng cho họ. Điều này giúp đảm bảo mỗi người dùng có một không gian lưu trữ độc lập, dễ quản lý và an toàn.

1. Tạo người dùng mới: Bạn sử dụng lệnh sau để tạo một tài khoản người dùng mới tên là tel4vn:

sudo adduser tel4vn

2. Thêm người dùng vào danh sách FTP: Để đảm bảo vsftpd cho phép người dùng này truy cập FTP, bạn cần thêm họ vào danh sách vsftpd.userlist:

echo "tel4vn" | sudo tee -a /etc/vsftpd.userlist

3. Tạo thư mục FTP cho người dùng: Bạn tạo thư mục gốc chứa file được chia sẻ và chỉnh sửa quyền cho đúng:

sudo mkdir /home/tel4vn/ftp
sudo chown nobody:nogroup /home/tel4vn/ftp
sudo chmod a-w /home/tel4vn/ftp

Thư mục /ftp này chỉ dùng để chứa thư mục upload bên trong, không có quyền ghi trực tiếp.

4. Tạo thư mục upload có quyền ghi: Người dùng FTP cần một thư mục để có thể tải file lên. Tạo thư mục upload bên trong và gán đúng quyền sở hữu:

sudo mkdir /home/tel4vn/ftp/upload
sudo chown tel4vn:tel4vn /home/tel4vn/ftp/upload

5. Kiểm tra cấu trúc và quyền thư mục: Sau khi hoàn tất, bạn có thể kiểm tra lại để chắc chắn cấu trúc và phân quyền thư mục đã đúng:

sudo ls -al /home/tel4vn/ftp

Kết quả hiển thị sẽ tương tự:

total 12
dr-xr-xr-x 3 nobody   nogroup  4096 Jun  7 13:10 .
drwxr-xr-x 3 tel4vn tel4vn 4096 Jun  7 13:08 ..
drwxr-xr-x 2 tel4vn tel4vn 4096 Jun  7 13:10 upload

6. Tạo file test để kiểm tra: Cuối cùng, bạn có thể tạo một file mẫu để xác nhận khả năng ghi file hoạt động bình thường:

echo "vsftpd test file" | sudo tee /home/tel4vn/ftp/upload/test.txt

Kiểm tra kết nối FTP

Sau khi hoàn tất cấu hình FTP Server với vsftpd, bạn nên kiểm tra lại việc kết nối để đảm bảo mọi thứ đã hoạt động chính xác. Đầu tiên, hãy thử kết nối bằng tài khoản ẩn danh (anonymous) để kiểm tra tính bảo mật. Bạn mở terminal và chạy lệnh:

ftp -p 136.244.105.99
  • Kết quả:
Connected to 136.244.105.99.
220 (vsFTPd 3.0.3)
Name (136.244.105.99:default): anonymous
530 Permission denied.
ftp: Login failed.

Điều này cho thấy người dùng anonymous không thể đăng nhập, nghĩa là FTP Server đã được cấu hình từ chối truy cập trái phép – một tín hiệu tốt về bảo mật. Tiếp theo, bạn thử đăng nhập bằng tài khoản đã được tạo và cấu hình trước đó:

ftp -p 136.244.105.99
Name (136.244.105.99:default): tel4vn
Password: [nhập mật khẩu]
  • Kết quả:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

Nếu thấy thông báo “Login successful”, nghĩa là kết nối FTP hoạt động đúng và tài khoản người dùng có thể truy cập thành công. Sau khi đăng nhập, bạn có thể kiểm tra thao tác tải xuống bằng cách chuyển đến thư mục upload và tải file test.txt:

ftp> cd upload
ftp> get test.txt
  • Kết quả xác nhận file đã được tải về:
226 Transfer complete.

Để kiểm tra quyền ghi (write), bạn có thể thử đổi tên file và tải lên lại với tên mới:

ftp> put test.txt upload.txt

Nếu thấy thông báo “Transfer complete”, nghĩa là người dùng đã được cấp quyền ghi trên FTP Server. Cuối cùng, thoát khỏi FTP bằng lệnh:

ftp> bye

Việc kết nối, tải file và ghi dữ liệu thành công chứng minh rằng FTP Server của bạn đã được thiết lập và vận hành ổn định.

Mã hoá kết nối với SSL/TLS

Để bảo vệ dữ liệu khi truyền qua FTP, bạn nên kích hoạt SSL/TLS nhằm mã hoá kết nối giữa client và server. Việc này giúp tránh việc dữ liệu bị rò rỉ hoặc đánh cắp trên mạng. Đầu tiên, bạn cần tạo một chứng chỉ SSL tự ký bằng OpenSSL với lệnh sau:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/vsftpd.pem \
-out /etc/ssl/private/vsftpd.pem

Sau khi có chứng chỉ, bạn mở file cấu hình của vsftpd:

sudo nano /etc/vsftpd.conf

Bạn tìm và bỏ dấu # ở hai dòng sau để kích hoạt chứng chỉ SSL:

rsa_cert_file=/etc/ssl/private/vsftpd.pem  
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

Bạn cần đảm bảo rằng dòng ssl_enable được bật:

ssl_enable=YES

Bạn cần thêm vào các dòng dưới đây để tăng cường bảo mật cho kết nối SSL/TLS:

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

Cuối cùng, bạn lưu lại file cấu hình và khởi động lại dịch vụ vsftpd để áp dụng thay đổi:

sudo systemctl restart vsftpd

Sau bước này, kết nối FTP của bạn đã được mã hóa an toàn với SSL/TLS.

Kiểm tra TLS với Filezilla 

Sau khi cấu hình mã hóa FTP với SSL/TLS cho vsftpd, bạn có thể sử dụng Filezilla để kiểm tra kết nối bảo mật. Đầu tiên, bạn mở Filezilla và chọn Site Manager ở góc trên bên trái.

Chọn Site Manager - Nguồn: Internet
Chọn Site Manager – Nguồn: Internet

Tiếp theo, bạn chọn New Site để thêm thông tin FTP Server mới.

Chọn New Site để thêm thông tin FTP Server mới - Nguồn: Internet
Chọn New Site để thêm thông tin FTP Server mới – Nguồn: Internet

Khi điền thông tin FTP Server, bạn có thể để trống ô port vì mặc định FTP sử dụng cổng 21. Quan trọng là nhớ chọn Require explicit FTP over TLS để đảm bảo FTP Server của bạn sử dụng mã hóa TLS. Nếu kết nối thành công, bạn sẽ nhận được cửa sổ thông báo yêu cầu xác nhận chứng chỉ bảo mật. Trong cửa sổ này, bạn chỉ cần chọn Always trust this certificate in future sessions để tránh phải xác nhận lại trong những lần kết nối sau.

Chọn Always trust this certificate in future sessions - Nguồn: Internet
Chọn Always trust this certificate in future sessions – Nguồn: Internet

Tắt SSH trong vsftpd

Mặc định, khi tạo một người dùng FTP trên hệ thống Ubuntu, người dùng đó có thể truy cập qua SSH nếu không cấu hình giới hạn. Điều này có thể dẫn đến rủi ro bảo mật nếu người dùng FTP không cần quyền truy cập SSH vào server. Để tăng cường bảo mật, bạn nên tắt SSH cho những người dùng chỉ cần sử dụng FTP. Để thực hiện điều này, bạn có thể tạo một shell script giới hạn quyền truy cập chỉ dành cho FTP. Các bước thực hiện như sau:

  • Tạo shell script: Bạn tạo một shell script thực thi /bin/ftponly để giới hạn quyền truy cập của người dùng FTP chỉ còn lại FTP:
    $ echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly
    $ sudo chmod a+x /bin/ftponly
    • Thêm shell script vào danh sách shells hợp lệ: Để hệ thống nhận diện shell mới, bạn cần thêm nó vào file /etc/shells:
    $ echo "/bin/ftponly" | sudo tee -a /etc/shells
    • Thay đổi shell của người dùng FTP: Cuối cùng, bạn thay đổi shell của người dùng FTP để chỉ sử dụng FTP và không có quyền SSH. Ví dụ với người dùng tên là tel4vn:
    $ sudo usermod tel4vn -s /bin/ftponly

    Sau khi thực hiện xong, người dùng FTP sẽ chỉ có quyền truy cập qua FTP và không thể SSH vào server, giúp nâng cao bảo mật cho hệ thống.

    Vietnix – Nhà cung cấp dịch vụ lưu trữ chất lượng cao

    Vietnix là nhà cung cấp dịch vụ thuê VPS với hệ thống máy chủ mạnh mẽ, ổ cứng SSD 100%, đảm bảo tốc độ truy cập nhanh chóng và ổn định. VPS Linux tại Vietnix mang lại hiệu suất cao, khả năng xử lý mượt mà các tác vụ lớn và dễ dàng tùy chỉnh thông qua giao diện quản lý trực quan. Hệ thống backup tự động hàng tuần giúp bảo vệ dữ liệu, cam kết an toàn và khôi phục nhanh chóng khi cần. Liên hệ ngay để được tư vấn dịch vụ phù hợp!

    Thông tin liên hệ:

    • Hotline: 18001093
    • Email: sales@vietnix.com.vn 
    • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
    • Website: https://vietnix.vn/

    Câu hỏi thường gặp

    Cài FTP Server trên Ubuntu có hỗ trợ nhiều người dùng không?

    Có, FTP Server trên Ubuntu hỗ trợ nhiều người dùng. Bạn có thể tạo tài khoản riêng cho mỗi người dùng và giới hạn quyền truy cập vào các thư mục cụ thể, đồng thời sử dụng tính năng chroot jail để bảo mật hệ thống.

    Các yếu tố cần cân nhắc khi cấu hình FTP Server cho website doanh nghiệp trên Ubuntu là gì?

    Khi cấu hình FTP Server cho website doanh nghiệp trên Ubuntu, bạn cần lưu ý các yếu tố sau:
    Bảo mật kết nối: Sử dụng SSL/TLS để mã hóa kết nối FTP và tắt FTP không bảo mật.
    Giới hạn quyền truy cập người dùng: Sử dụng FTP chroot để đảm bảo người dùng chỉ truy cập thư mục cần thiết.
    Tối ưu hiệu suất: Cấu hình chế độ Passive hoặc Active và giới hạn băng thông cho người dùng.
    Cấu hình tường lửa: Mở các cổng FTP cần thiết và bảo vệ bằng tường lửa.
    Quản lý người dùng: Phân quyền chi tiết và tạo tài khoản FTP riêng biệt.
    Giám sát và báo cáo: Theo dõi nhật ký và giám sát kết nối FTP để phát hiện sớm vấn đề.
    Độ tin cậy và dự phòng: Sao lưu dữ liệu thường xuyên và cấu hình tự động khởi động lại server.
    Tính tương thích và mở rộng: Đảm bảo FTP Server tương thích với các hệ thống hiện tại và có khả năng mở rộng khi cần thiết.
    Dễ sử dụng: Chọn FTP Server có giao diện quản lý đơn giản, phù hợp với đội ngũ IT không chuyên.
    Tuân thủ bảo mật: Đảm bảo server tuân thủ các tiêu chuẩn bảo mật như PCI-DSS hoặc GDPR.

    Lời kết

    Việc thiết lập vsftpd để cài FTP Server trên Ubuntu 20.04 không chỉ giúp bạn quản lý và truyền tải dữ liệu một cách hiệu quả mà còn đảm bảo an toàn và bảo mật cho hệ thống. Với các bước cấu hình đơn giản nhưng mạnh mẽ, bạn có thể dễ dàng kiểm soát quyền truy cập và tối ưu hóa hiệu suất cho các dịch vụ FTP. Hy vọng bài viết này đã giúp bạn hiểu rõ hơn về quy trình cài đặt và cấu hình FTP Server trên Ubuntu. Chúc bạn thành công và luôn duy trì một hệ thống lưu trữ dữ liệu an toàn và hiệu quả!

    THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

    Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

    Đánh giá mức độ hữu ích của bài viết

    icon 1 sao

    Thất vọng

    icon 2 sao

    Chưa hữu ích

    icon 3 sao

    Bình thường

    icon 4 sao

    Hữu ích

    icon 5 sao

    Rất hữu ích

    Hưng Nguyễn

    Co-Founder
    tại

    Kết nối với mình qua

    Kết nối với mình qua

    Theo dõi
    Thông báo của
    guest
    0 Comments
    Phản hồi nội tuyến
    Xem tất cả bình luận

    Tăng tốc độ website - Nâng tầm giá trị thương hiệu

    Banner group
    Tăng tốc tải trang

    95 điểm

    Nâng cao trải nghiệm người dùng

    Tăng 8% tỷ lệ chuyển đổi

    Thúc đẩy SEO, Google Ads hiệu quả

    Tăng tốc ngay

    SẢN PHẨM NỔI BẬT

    Icon tab

    MAXSPEED HOSTING

    TĂNG TỐC WEBSITE TOÀN DIỆN

    CÔNG NGHỆ ĐỘC QUYỀN

    Vector

    PHẦN CỨNG MẠNH MẼ

    Vector

    HỖ TRỢ 24/7

    Vector
    ĐĂNG KÝ NGAYGroup icon
    khuyến mãi 30 tháng 4
    Khi mua Hosting/VPS
    16/04/2025 - 16/05/2025
    Pattern

    7 NGÀY DÙNG THỬ HOSTING

    NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

    Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

    icon popup single post

    CẢM ƠN BẠN ĐÃ ĐÁNH GIÁ BÀI VIẾT

    Vietnix sẽ luôn cố gắng cải thiện chất lượng dịch vụ mỗi ngày

    ĐÓNG

    Đánh giá mức độ hữu ích của bài viết

    icon 1 sao

    Thất vọng

    icon 2 sao

    Chưa hữu ích

    icon 3 sao

    Bình thường

    icon 4 sao

    Hữu ích

    icon 5 sao

    Rất hữu ích

    Icon
    ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
    Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
    ĐÓNG

    ĐĂNG KÝ DÙNG THỬ HOSTING

    Asset

    7 NGÀY MIỄN PHÍ

    Asset 1

    ĐĂNG KÝ DÙNG THỬ HOSTING

    Asset

    7 NGÀY MIỄN PHÍ

    Asset 1
    Icon
    XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
    Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
    ĐÓNG