Cho dù bạn muốn chạy một Ubuntu server hay chỉ đơn giản là muốn sao chép tệp từ xa, việc thiết lập một Ubuntu FTP server rất đơn giản.

FTP Server là gì?

FTP (File Transfer Protocol) là hệ thống được sử dụng để tải lên (đặt) hoặc tải xuống (lấy) tệp từ máy chủ. Bạn có thể đã sử dụng nó mà không nhận ra trước đây, khi lấy tệp hoặc tải hình ảnh lên web. Hoặc bạn có thể đã sử dụng một ứng dụng khách FTP để kết nối trực tiếp với FTP file server.

Để điều này xảy ra, phần mềm máy chủ FTP phải được cài đặt trên máy chủ từ xa lưu trữ tệp.

Cho dù bạn đang xây dựng Linux home server, web server, game server hay bất kỳ server nào phù hợp với dự án của bạn, FTP là cách đơn giản nhất để truyền dữ liệu từ hệ thống này sang hệ thống khác.

Cài đặt một server trên Ubuntu

Cài đặt FTP server trên Ubuntu rất đơn giản. Phương pháp tốt nhất có lẽ là vsftpd. Làm theo các bước bên dưới để cài đặt và cấu hình FTP server trên Ubuntu với vsftpd.

1. Cài đặt Vsftpd

Bạn có thể đã cài đặt vsftpd trong máy. Để kiểm tra, hãy mở cửa sổ dòng lệnh và nhập:

sudo apt list --installed

Vsftpd có thể nằm ở gần cuối danh sách. Nếu chưa có, bạn chỉ cần cài đặt với:

sudo apt install vsftpd
 

Sau khi cài đặt, đã đến lúc bắt tay vào cấu hình vsftpd. Hãy bắt đầu bằng cách tạo một bản sao của tệp cấu hình gốc. Nếu có gì sai sót hoặc nhầm lẫn, cấu hình mặc định có thể được khôi phục.

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf_default

Sau khi hoàn thành, khởi chạy với lệnh:

sudo systemctl start vsftpd
 

Xác nhận máy chủ đang chạy với:

sudo systemctl enable vsftpd

Với vsftpd được cài đặt, bạn có thể bắt đầu quá trình thiết lập.

2. Tạo người dùng FTP

Đầu tiên bạn cần một tài khoản người dùng FTP. Với tài khoản này, bạn có thể sử dụng bất kỳ ứng dụng FTP nào để truy cập các tệp được lưu trữ trên server thông qua vsftpd. Trong terminal, nhập:

sudo useradd –m username

Với tên người dùng và mật khẩu đã đặt, hãy tạo một tệp thử nghiệm trong thư mục chính của tài khoản để xác nhận rằng nó hoạt động:

sudo password username

Khi bạn lần đầu tiên kết nối với FTP Ubuntu server của mình, bạn sẽ thấy testfile.txt.

cd /home/username
 sudo nano testfile.txt

3. Bảo mật Ubuntu FTP server

Tuy nhiên, trước khi thiết lập kết nối, bạn cần đảm bảo rằng các cổng FTP đang mở trong Ubuntu. Theo mặc định, chúng bị đóng vì lý do bảo mật trong ufw (Uncomplicated Firewall).

Để cho phép truy cập qua cổng 20, hãy sử dụng:

sudo ufw allow 20/tcp

Nếu bản phân phối của bạn sử dụng tường lửa khác hoặc bạn đã cài đặt một giải pháp thay thế, hãy kiểm tra tài liệu để mở các cổng.

Để người dùng có thể tải file lên, cài đặt trong file cấu hình:

sudo nano /etc/vsftpd.conf

Tìm write_enabled và bỏ ghi chú mục nhập, đảm bảo nó được đặt thành “YES”:

write_enable=YES

Nhấn Ctrl + X để thoát và Y để lưu.

Đối với các máy chủ FTP có thể truy cập công khai, bạn sẽ muốn giới hạn quyền truy cập của mỗi người dùng. chroot có thể giới hạn mỗi người dùng trong thư mục chính của nó. Trong vsftpd.conf, hãy tìm và bỏ ghi chú dòng này (bỏ dấu #):

chroot_local_user=YES

Bấm Ctrl + X để thoát , Y để lưu.

Với nhiều người dùng, tạo một danh sách là một lựa chọn thông minh.

Đầu tiên, mở vsftpd.chroot_list trong trình soạn thảo văn bản.

sudo nano /etc/ vsftpd.chroot_list

Tại đây, liệt kê những tên người dùng bạn muốn giới hạn trong các thư mục riêng của chúng. Lưu và thoát, sau đó quay lại vsftpd.conf và đảm bảo chroot_local_user = YES bỏ ghi chú:

#chroot_local_user=YES

Thay vào đó, bỏ ghi chú:

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd.chroot_list

Kết quả sẽ như thế này:

Tiếp tục, lưu và thoát. Cuối cùng, khởi động lại dịch vụ FTP:

sudo systemctl restart vsftpd.service

Cuối cùng, sử dụng lệnh hostname để kiểm tra tên Ubuntu server của bạn. Sau đó, bạn có thể sử dụng nó để kết nối với FTP server. Nếu bạn thích sử dụng địa chỉ IP, hãy nhập lệnh ip address và ghi chú về nó.

4. Mã hóa kết nối: FTP + SSL = FTPS

Bạn cũng có thể buộc mã hóa lưu lượng truy cập đến và đi từ FTP Ubuntu server của mình bằng SSL/TLS.

Trong tệp vsftpd.conf, hãy tìm “SSL encrypted connections” và thêm thông tin sau:

ssl_enable=YES
 rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
 rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

Lưu và thoát file. Bây giờ bạn có thể cụ thể FTPS làm giao thức kết nối trong ứng dụng khách FTP của mình.