Bài viết này giải thích cách cấu hình PureFTPd để chấp nhận các phiên TLS trên máy chủ CentOS 7.2. FTP thuần túy là một giao thức không an toàn vì tất cả mật khẩu và dữ liệu đều được truyền dưới dạng văn bản rõ. Bằng cách sử dụng TLS, toàn bộ giao tiếp có thể được mã hóa, do đó làm cho FTP an toàn hơn nhiều.
Nếu bạn muốn cho phép các phiên FTP và TLS, hãy đặt TLS thành 1:
Nếu bạn chỉ muốn chấp nhận các phiên TLS (không có FTP), hãy đặt TLS thành 2:
Để không cho phép TLS (chỉ FTP), hãy đặt TLS thành 0:
Sau đó xóa # ở trước 2 dòng sau:
và lưu tệp cấu hình đã thay đổi.
Sau đó, chúng ta có thể tạo chứng chỉ SSL như sau:
Tên quốc gia (mã gồm 2 chữ cái) [XX]: <-- Nhập tên quốc gia của bạn (ví dụ: "DE").
Tên tiểu bang hoặc tỉnh (họ và tên đầy đủ) []:<-- Nhập tiểu bang hoặc tỉnh của bạn Tên.
Tên địa phương (ví dụ: thành phố) [Thành phố mặc định]:<-- Nhập Thành phố của bạn.
Tên tổ chức (ví dụ: công ty) [Công ty TNHH mặc định]:<-- Nhập Tên tổ chức của bạn (ví dụ: tên công ty của bạn).
Tên đơn vị tổ chức (ví dụ: phần) []:<-- Nhập Tên đơn vị tổ chức của bạn (ví dụ: "Phòng CNTT").
Tên chung (ví dụ: tên của bạn hoặc tên máy chủ của bạn) []:<-- Nhập Tên miền đủ điều kiện của hệ thống (ví dụ: "server1.example.com").
Địa chỉ email []:<-- Nhập Địa chỉ email của bạn.
Thay đổi quyền của chứng chỉ SSL:
Cuối cùng, khởi động lại PureFTPd:
Vậy là xong. Bây giờ bạn có thể thử kết nối bằng trình khách FTP của mình; tuy nhiên, bạn nên cấu hình trình khách FTP của mình để sử dụng TLS - hãy xem chương tiếp theo về cách thực hiện việc này với FileZilla.
Trong FileZilla, hãy mở Site Manager:
Chọn máy chủ sử dụng PureFTPd với TLS; trong menu thả xuống Loại máy chủ, chọn Yêu cầu FTP rõ ràng qua TLS thay vì FTP thông thường:
Bây giờ bạn có thể kết nối với máy chủ. Nếu bạn thực hiện thao tác này lần đầu tiên, bạn phải chấp nhận chứng chỉ SSL mới của máy chủ vì chúng tôi đang sử dụng chứng chỉ SSL tự ký tại đây:
Nếu mọi thứ diễn ra tốt đẹp, bây giờ bạn sẽ được đăng nhập vào máy chủ:
1 Lưu ý sơ bộ
Bạn nên có một thiết lập PureFTPd đang hoạt động trên máy chủ CentOS 7.2 của mình, ví dụ: như được hiển thị trong hướng dẫn này: Máy chủ FTP với PureFTPd, MariaDB và Người dùng ảo (bao gồm Quản lý hạn ngạch và băng thông) trên CentOS 7.22 Cài đặt OpenSSL
TLS cần OpenSSL; để cài đặt OpenSSL, chúng ta chỉ cần chạy:
Mã:
yum -y install openssl
3 Cấu hình PureFTPd
Mở /etc/pure-ftpd/pure-ftpd.conf...
Mã:
nano /etc/pure-ftpd/pure-ftpd.conf
Mã:
[...]# Tùy chọn này có thể chấp nhận ba giá trị:# 0: vô hiệu hóa lớp mã hóa SSL/TLS (mặc định).# 1: chấp nhận cả phiên truyền thống và phiên được mã hóa.# 2: từ chối các kết nối không sử dụng cơ chế bảo mật SSL/TLS,# bao gồm các phiên ẩn danh.# Không _bỏ_ chú thích này một cách mù quáng. Hãy đảm bảo rằng:# 1) Máy chủ của bạn đã được biên dịch với hỗ trợ SSL/TLS (--with-tls),# 2) Có chứng chỉ hợp lệ,# 3) Chỉ những máy khách tương thích mới được đăng nhập.TLS 1[...]
Mã:
[...]# Tùy chọn này có thể chấp nhận ba giá trị:# 0: vô hiệu hóa lớp mã hóa SSL/TLS (mặc định).# 1: chấp nhận cả phiên truyền thống và phiên được mã hóa.# 2: từ chối các kết nối không sử dụng cơ chế bảo mật SSL/TLS,# bao gồm các phiên ẩn danh.# Không _bỏ_ chú thích này một cách mù quáng. Hãy đảm bảo rằng:# 1) Máy chủ của bạn đã được biên dịch với hỗ trợ SSL/TLS (--with-tls),# 2) Có chứng chỉ hợp lệ,# 3) Chỉ những máy khách tương thích mới được đăng nhập.TLS 2[...]
Mã:
[...]# Tùy chọn này có thể chấp nhận ba giá trị:# 0: vô hiệu hóa lớp mã hóa SSL/TLS (mặc định).# 1: chấp nhận cả phiên truyền thống và phiên được mã hóa.# 2: từ chối các kết nối không sử dụng cơ chế bảo mật SSL/TLS,# bao gồm các phiên ẩn danh.# Không _bỏ_ chú thích này một cách mù quáng. Hãy đảm bảo rằng:# 1) Máy chủ của bạn đã được biên dịch với hỗ trợ SSL/TLS (--with-tls),# 2) Có chứng chỉ hợp lệ,# 3) Chỉ những máy khách tương thích mới được đăng nhập.TLS 0[...]
Mã:
TLSCipherSuite HIGH
CertFile /etc/ssl/private/pure-ftpd.pem
4 Tạo chứng chỉ SSL cho TLS
Để sử dụng TLS, chúng ta phải tạo chứng chỉ SSL. Tôi tạo nó trong /etc/ssl/private/, do đó, tôi tạo thư mục đó trước:
Mã:
mkdir -p /etc/ssl/private/
Mã:
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Tên tiểu bang hoặc tỉnh (họ và tên đầy đủ) []:<-- Nhập tiểu bang hoặc tỉnh của bạn Tên.
Tên địa phương (ví dụ: thành phố) [Thành phố mặc định]:<-- Nhập Thành phố của bạn.
Tên tổ chức (ví dụ: công ty) [Công ty TNHH mặc định]:<-- Nhập Tên tổ chức của bạn (ví dụ: tên công ty của bạn).
Tên đơn vị tổ chức (ví dụ: phần) []:<-- Nhập Tên đơn vị tổ chức của bạn (ví dụ: "Phòng CNTT").
Tên chung (ví dụ: tên của bạn hoặc tên máy chủ của bạn) []:<-- Nhập Tên miền đủ điều kiện của hệ thống (ví dụ: "server1.example.com").
Địa chỉ email []:<-- Nhập Địa chỉ email của bạn.
Thay đổi quyền của chứng chỉ SSL:
Mã:
chmod 600 /etc/ssl/private/pure-ftpd.pem
Mã:
systemctl restart pure-ftpd.service
5 Cấu hình FileZilla cho TLS
Để sử dụng FTP với TLS, bạn cần một trình khách FTP hỗ trợ TLS, chẳng hạn như FileZillahoặc plugin FireFTP của Firefox.Trong FileZilla, hãy mở Site Manager:
Chọn máy chủ sử dụng PureFTPd với TLS; trong menu thả xuống Loại máy chủ, chọn Yêu cầu FTP rõ ràng qua TLS thay vì FTP thông thường:
Bây giờ bạn có thể kết nối với máy chủ. Nếu bạn thực hiện thao tác này lần đầu tiên, bạn phải chấp nhận chứng chỉ SSL mới của máy chủ vì chúng tôi đang sử dụng chứng chỉ SSL tự ký tại đây:
Nếu mọi thứ diễn ra tốt đẹp, bây giờ bạn sẽ được đăng nhập vào máy chủ:
6 Liên kết
- PureFTPd: http://www.pureftpd.org/
- FileZilla: http://filezilla-project.org/
- CentOS: http://www.centos.org/