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.

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

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.

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ả!