Cách cài đặt ProFTPD với TLS trên Ubuntu 20.04 LTS

Tác giả Network Engineer, T.M.Một 09, 2021, 09:36:58 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Cách cài đặt ProFTPD với TLS trên Ubuntu 20.04 LTS


Truyền tập tin qua FTP (File Transfer Protocol) có lẽ vẫn là một trong những cách phổ biến nhất để tải tập tin lên máy chủ. ProFTPD là một máy chủ FTP phổ biến và linh hoạt, có sẵn dưới dạng phần mềm mã nguồn mở và hỗ trợ TLS (SSL) cho các kết nối an toàn.

Theo mặc định, FTP là một giao thức không an toàn vì mật khẩu và dữ liệu được truyền dưới dạng văn bản rõ ràng. Bằng cách sử dụng TLS, như mình làm trong hướng dẫn này, tất cả thông tin liên lạc có thể được mã hóa, giúp FTP an toàn hơn.

Bài viết này mô tả cách cấu hình Proftpd với TLS trên máy chủ Ubuntu 20.04 LTS

  • Máy chủ Ubuntu 20.04 64bit
  • Quyền sudo / root

1. Cài đặt Proftpd và OpenSSL

Proftpd và OpenSSL có sẵn trong kho lưu trữ Ubuntu, vì vậy mình có thể cài đặt chúng bằng lệnh apt:

Mã nguồn [Chọn]
$ sudo apt-get install -y proftpd openssl
ProFTPD được cài đặt như hình dưới đây. Quá trình cài đặt sẽ không yêu cầu bất kỳ đầu vào nào.


Bây giờ mình sẽ xác minh rằng ProFTPD đã được cài đặt và khởi động. Chạy lệnh này:

Mã nguồn [Chọn]
$ sudo proftpd --version

Để kiểm tra phiên bản ProFTPD đã cài đặt. Tiếp theo, mình sẽ kiểm tra trạng thái dịch vụ, truy vấn nó bằng lệnh systemctl:

Mã nguồn [Chọn]
$ sudo systemctl status proftpd

2. Cấu hình ProFTPD

Khi ProFTPD được cài đặt, bạn sẽ phải điều chỉnh cấu hình để biến nó thành một máy chủ đầy đủ chức năng và an toàn. Tập tin cấu hình ProFTPD nằm trong thư mục /etc/proftpd/.

Chỉnh sửa tập tin proftpd.conf.

Mã nguồn [Chọn]
$ sudo nano /etc/proftpd/proftpd.conf
Trong dòng Servername, hãy thay thế giá trị bằng tên máy chủ hoặc miền của bạn:

Mã nguồn [Chọn]
ServerName "My FTP-Server"
Bỏ ghi chú dòng DefaultRoot để kích hoạt tính năng jail cho tất cả người dùng:

Mã nguồn [Chọn]
DefaultRoot  ~
Và khởi động lại ProFTPD thông qua lệnh systemctl theo cách sau.

Mã nguồn [Chọn]
$ sudo systemctl restart proftpd
3. Thêm người dùng FTP

Có hai loại người dùng FTP có sẵn, người dùng FTP ẩn danh và người dùng FTP 'bình thường':

  • FTP ẩn danh: Máy chủ FTP cung cấp quyền truy cập cho bất kỳ ai mà không cần phải có tài khoản người dùng và mật khẩu. Điều này không nên được sử dụng trên một máy chủ có sẵn công khai, nhưng có thể là một tùy chọn cho máy chủ gia đình hoặc mạng LAN công ty.
  • Người dùng FTP: Chỉ những người có tài khoản người dùng và mật khẩu mới có thể truy cập vào máy chủ FTP.

Trước khi bạn tạo người dùng cho máy chủ FTP, vui lòng thêm /bin/false vào tập tin /etc/shells của bạn.

Mã nguồn [Chọn]
$ sudo echo "/bin/false" >> /etc/shells
Và bây giờ, hãy tạo một người dùng với một thư mục chính cụ thể, vô hiệu hóa quyền truy cập shell, sau đó cấp nó cho Máy chủ FTP.

Mã nguồn [Chọn]
$ sudo useradd -m -s /bin/false tom
Mã nguồn [Chọn]
$ sudo passwd tom
Lệnh trên sẽ tạo một người dùng mới có tên tom với thư mục chính /home/tom/ và không có quyền truy cập shell /bin/false


Bây giờ, hãy cấu hình ProFTPD để cho phép người dùng truy cập vào máy chủ FTP.

Mã nguồn [Chọn]
$ sudo nano /etc/proftpd/conf.d/tom.conf
Thêm tập tin cấu hình này để cho phép người dùng tom đăng nhập và tải lên / tải tập tin xuống / từ máy chủ:

Mã nguồn [Chọn]
<Directory /home/tom>
  Umask 022 022
  AllowOverwrite off
  <Limit LOGIN>
    AllowUser tom
    DenyALL
  </Limit>
  <Limit ALL>
    Order Allow,Deny
    AllowUser tom
    Deny ALL
  </Limit>
  <Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD>
    AllowUser tom
    Deny ALL
  </Limit>
</Directory>

Tập tin sẽ trông như thế này:


Lưu tập tin và thoát khỏi nano. Sau đó khởi động lại ProFTPD.

Mã nguồn [Chọn]
$ sudo systemctl restart proftpd
Bạn có thể sử dụng FTP ở giai đoạn này, nhưng mình sẽ làm cho nó an toàn hơn bằng cách sử dụng TLS trong bước tiếp theo.

4. Cấu hình TLS với Proftpd

Để sử dụng TLS, bạn phải tạo chứng chỉ SSL. Tạo chứng chỉ SSL bằng lệnh OpenSSL:

Mã nguồn [Chọn]
$ sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365
Lệnh trên sẽ tạo tập tin chứng chỉ proftpd.crt trong thư mục /etc/ssl/certs/ và tập tin khóa chứng chỉ proftpd.key trong thư mục /etc/ssl/private/


Tiếp theo, thay đổi quyền đối với tập tin chứng chỉ thành 600:

Mã nguồn [Chọn]
$ sudo chmod 600 /etc/ssl/certs/proftpd.crt
Mã nguồn [Chọn]
$ sudo chmod 600 /etc/ssl/private/proftpd.key
Bây giờ, quay lại thư mục /etc/proftpd và cấu hình ProFTPD để sử dụng chứng chỉ SSL mà bạn đã tạo.

Mã nguồn [Chọn]
$ nano /etc/proftpd/proftpd.conf
Bỏ ghi chú dòng TLS:

Mã nguồn [Chọn]
Include /etc/proftpd/tls.conf
Lưu tập tin tls.conf và thoát.

Tiếp theo, chỉnh sửa tập tin cấu hình TLS để bật xác thực an toàn:

Mã nguồn [Chọn]
$ nano /etc/proftpd/tls.conf
Mã nguồn [Chọn]
TLSEngine                               on
TLSLog                                  /var/log/proftpd/tls.log
TLSProtocol                             SSLv23

TLSRSACertificateFile                   /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile                /etc/ssl/private/proftpd.key

TLSOptions                      NoCertRequest EnableDiags NoSessionReuseRequired

TLSVerifyClient                         off

TLSRequired                             on


Lưu và thoát. Bước cuối cùng là khởi động lại máy chủ ProFTPD:

Mã nguồn [Chọn]
$ sudo systemctl restart proftpd
5. Kiểm tra ProFTPD

Để kiểm tra cấu hình, hãy thử kết nối với máy chủ FTP của bạn bằng phần mềm như FileZilla (mình đang sử dụng FileZilla ở đây) và điền IP máy chủ, tên người dùng, mật khẩu và cổng:

Mã nguồn [Chọn]
Server IP: 192.168.0.100
username: tom
Password ******
Port: 21

Và sau đó nhấp vào Quickconnect


Nhấp vào 'OK' để xác nhận chứng chỉ SSL tự ký của mình.


Bạn sẽ thấy rằng bạn đã đăng nhập vào Máy chủ FTP bằng chứng chỉ TLS/SSL.