Giao thức truyền file (FTP) là giao thức nhẹ phổ biến dùng để truyền file qua mạng. Mặc dù là cơ chế hiệu quả truyền dữ liệu, có một nhược điểm: dữ liệu truyền và nhận dưới dạng plain text. Nghĩa là truyền dữ liệu không mã hóa, có thể bị xâm phạm.
Máy chủ FTP hiện đại như ProFTPD cho phép hỗ trợ SSL/TLS. Điều này làm cho truyền file giữa hai hệ thống không chỉ hiệu quả mà còn an toàn bằng cách thêm yếu tố bảo mật. Hãy khám phá cách cài và thiết lập ProFTPD với TLS trên Ubuntu 22.04.
ProFTPD là gì?
ProFTPD là máy chủ FTP mã nguồn mở và tin cậy cho phép thiết lập kết nối FTP giữa máy local và web server. Nó dễ cấu hình và tương thích với server Unix/Linux.
Điều kiện tiên quyết cài ProFTPD
Trước khi cài ProFTPD, bạn phải đáp ứng yêu cầu sau:
- Ubuntu Server 22.04
- Quyền root trên server
Nếu hệ thống đáp ứng, bạn đã sẵn sàng cài server ProFTPD.
Bước 1: Cập nhật và nâng cấp Ubuntu
Để cài ProFTPD, trước tiên cập nhật Ubuntu qua command line:
sudo apt-get update -y
Lệnh update chỉ cập nhật danh sách gói. Để nâng cấp gói, chạy:
sudo apt-get upgrade -y
Để thay đổi có hiệu lực, reboot hệ thống Linux:
reboot
Bước 2: Cài server ProFTPD trên Ubuntu
Giờ cài ProFTPD. Chạy lệnh:
sudo apt install proftpd -y
Sau khi cài, xác minh cài đặt thành công. Cách là kiểm tra phiên bản dịch vụ:
sudo proftpd --version
Nếu terminal trả về số phiên bản, nghĩa là cài ProFTPD thành công và server tồn tại trên hệ thống.
Bước 3: Khởi động và bật dịch vụ ProFTPD
Bây giờ bạn có thể dùng ProFTPD. Nhưng trước hết, khởi động nó:
sudo systemctl start proftpd
Xong, chạy lệnh sau để bật nó:
sudo systemctl enable proftpd
Với dịch vụ đã khởi động, kiểm tra trạng thái ProFTPD đảm bảo chạy tốt. Nhập:
sudo systemctl status proftpd
Như bạn thấy, ProFTPD daemon đang active và chạy tốt.
Cấu hình ProFTPD trên Linux
Bạn sẽ tìm file cấu hình ProFTPD trong thư mục /etc/proftpd. Mở file với nano:
sudo nano /etc/proftpd/proftpd.conf
Bạn sẽ thấy các directive trong file. Directive DefaultRoot nói cho FTP Server biết phục vụ file từ đâu.
DefaultRoot /home/Linux/Docs
Bạn cũng có thể hạn chế user vào thư mục cụ thể dùng DefaultRoot như sau:
DefaultRoot /home/linux Tom
DefaultRoot / Emma
Với cấu hình này, Tom đăng nhập vào /home/linux. Còn Emma truy cập toàn hệ thống.
Bạn có thể đặt tên server với directive ServerName:
ServerName "My ProFTPD"
Tạo user cho server ProFTPD
Thực hành tốt là có user trên FTP server với quyền hạn chế cho bảo mật. User chỉ truy cập home directory của họ để quản lý file bằng download/upload.
Tạo user ProFTPD với lệnh dưới. Thay username bằng username thực:
sudo useradd -m username
Đặt mật khẩu user:
sudo passwd username
Cấu hình SSL/TLS với ProFTPD
Để bảo mật kết nối FTP, bạn dùng SSL/TLS. Ở đây bạn thấy cách cấu hình ProFTPD với chứng chỉ SSL.
Để tạo chứng chỉ cho server ProFTPD, cần OpenSSL trên hệ thống. Chạy lệnh cài OpenSSL:
sudo apt-get install openssl -y
Tạo chứng chỉ cho server ProFTPD
Sau khi OpenSSL cài thành công, tạo chứng chỉ cho server:
sudo openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365
Chạy lệnh trên, bạn yêu cầu OpenSSL cung cấp chứng chỉ và private key cho server ProFTPD. Chứng chỉ hiệu lực 365 ngày.
Sau lệnh, hệ thống hỏi chi tiết cho chứng chỉ, thường là tên tổ chức và địa chỉ.
Khi chi tiết được chấp nhận, bạn nhận được chứng chỉ và key. Bây giờ đổi quyền cả hai file thành read/write only:
sudo chmod 600 /etc/ssl/private/proftpd.key
sudo chmod 600 /etc/ssl/certs/proftpd.crt
Mở file cấu hình ProFTPD:
sudo nano /etc/proftpd/proftpd.conf
Tìm dòng sau và uncomment bằng cách bỏ ký tự Pound (#) ở đầu:
Include /etc/proftpd/tls.conf
Đóng file và lưu. Tiếp theo, mở file cấu hình TLS:
sudo nano /etc/proftpd/tls.conf
Tìm các đoạn sau trong file và uncomment chúng:
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
Và:
TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
Uncomment hai dòng này nữa:
TLSOptions AllowClientRenegotiations
Và:
TLSRequired on
Sau khi lưu và đóng file, restart dịch vụ ProFTPD để thay đổi có hiệu lực:
sudo systemctl restart proftpd
Cách gỡ ProFTPD trên Ubuntu
Để gỡ ProFTPD, trước tiên dừng dịch vụ:
sudo systemctl stop proftpd
Bây giờ gỡ ProFTPD khỏi máy với lệnh Linux:
sudo apt-get autoremove proftpd-dev
sudo apt-get purge proftpd-basic
Các lệnh này sẽ gỡ hoàn toàn ProFTPD khỏi hệ thống.
Truyền file an toàn với FTP server cấu hình TLS
ProFTPD không chỉ cung cấp bảo mật mà cũng đảm bảo trao đổi dữ liệu nhanh và hiệu quả. Điểm tốt nhất của ProFTPD là cung cấp nhiều tùy chọn cấu hình cho người dùng.
Mặc dù FTP là cách tin cậy truyền file, vẫn có phương pháp khác cho cùng mục đích. Hãy chắc chắn chọn công nghệ phù hợp hệ thống để mọi thứ dễ dàng.