FTP là một giao thức được sử dụng rộng rãi để truyền tệp giữa máy chủ và máy khách. Hiện nay có rất nhiều máy chủ FTP nguồn mở bao gồm FTPD, VSFTPD, PROFTPD và pureftpd. Trong số đó, VSFTPD là giao thức an toàn, nhanh và được sử dụng rộng rãi nhất trên toàn thế giới. Nó còn được gọi là "Very Secure File Transfer Protocol Daemon". Nó cũng hỗ trợ SSL, IPv6, FTPS rõ ràng và ngầm định.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt VSFTPD trên máy chủ CentOS 8 và bảo mật bằng SSL/TLS.
Sau khi cài đặt hoàn tất, hãy khởi động dịch vụ VSFTPD và cho phép dịch vụ này khởi động sau khi hệ thống khởi động lại bằng lệnh sau:
Lúc này, máy chủ VSFTPD của bạn đã được cài đặt và đang chạy. Bây giờ bạn có thể tiến hành bước tiếp theo.
Chạy lệnh sau để tạo người dùng mới có tên là vyom như được hiển thị bên dưới:
Tiếp theo, đặt mật khẩu cho người dùng vyom bằng lệnh sau:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Thay đổi các mục sau lines:
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, khởi động lại dịch vụ VSFTPD và xác minh trạng thái của dịch vụ bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Lúc này, máy chủ VSFTPD của bạn đã được cấu hình. Bây giờ bạn có thể tiến hành tất cả VSFTPD thông qua SELinux và tường lửa.
Bạn có thể cấu hình SELinux để cho phép truy cập FTP bằng lệnh sau:
Tiếp theo, bạn sẽ cần cho phép dịch vụ FTP thông qua firewalld. Bạn có thể cho phép bằng lệnh sau:
Tiếp theo, tải lại dịch vụ firewalld để áp dụng các thay đổi cấu hình tường lửa:
Tại thời điểm này, tường lửa và SELinux của bạn được cấu hình để cho phép kết nối FTP đến từ hệ thống từ xa. Bây giờ bạn có thể tiến hành kiểm tra kết nối FTP.
Để thực hiện, hãy vào hệ thống Máy khách và chạy lệnh sau để kết nối máy chủ FTP của bạn:
Bạn sẽ được yêu cầu cung cấp người dùng FTP và mật khẩu như hiển thị bên dưới:
Sau khi kết nối được thiết lập thành công, bạn sẽ thấy đầu ra sau:
Bây giờ, hãy nhập exit và nhấn nút Enter để thoát khỏi các phiên FTP.
Trước tiên, bạn sẽ cần cài đặt gói OpenSSL trong hệ thống của mình. Bạn có thể cài đặt bằng lệnh sau:
Sau khi cài đặt, hãy tạo một thư mục mới để lưu trữ chứng chỉ SSL:
Tiếp theo, tạo chứng chỉ tự ký bằng lệnh sau:
Cung cấp tất cả thông tin bắt buộc như hiển thị bên dưới:
Sau khi tạo chứng chỉ SSL, bạn sẽ cần cấu hình VSFTPD để sử dụng chứng chỉ này.
Mở tệp cấu hình mặc định của VSFTPD như hiển thị bên dưới:
Thêm các dòng sau vào cuối tệp:
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, khởi động lại dịch vụ VSFTPD để áp dụng các thay đổi:
Lúc này, máy chủ VSFTPD của bạn được cấu hình để sử dụng chứng chỉ SSL. Bây giờ bạn có thể tiến hành bước tiếp theo.
Bạn sẽ thấy lỗi trong đầu ra sau:
Bạn không thể kết nối với máy chủ VSFTP của mình từ máy khách dòng lệnh. Bởi vì nó không hỗ trợ hỗ trợ SSL/TLS.
Vì vậy, bạn sẽ cần tải xuống và kiểm tra kết nối VSFTPD bằng máy khách FTP hỗ trợ kết nối TLS.
Để thực hiện, hãy vào hệ thống Máy khách và cài đặt gói máy khách FileZilla.
Sau khi cài đặt FileZilla, hãy mở phần mềm FileZilla như hình dưới đây:
Tiếp theo, mở Trình quản lý trang web như hình dưới đây:
Nhấp vào nút Trang web mới để thêm kết nối FTP mới như hình dưới đây:
Cung cấp IP máy chủ FTP của bạn, Chọn giao thức FTP, Chọn "Sử dụng FTP rõ ràng qua TLS", Chọn yêu cầu mật khẩu, cung cấp tên người dùng của máy chủ FTP của bạn và nhấp vào nút Kết nối. Bạn sẽ được yêu cầu cung cấp mật khẩu của người dùng FTP như hiển thị bên dưới:
Cung cấp mật khẩu FTP của bạn và nhấp vào nút OK. Bạn sẽ được yêu cầu xác minh chứng chỉ đang được sử dụng cho kết nối SSL/TLS như hiển thị bên dưới:
Nhấp vào nút OK để xác minh chứng chỉ. Sau khi kết nối được thiết lập thành công, bạn sẽ thấy màn hình sau:
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt VSFTPD trên máy chủ CentOS 8 và bảo mật bằng SSL/TLS.
Điều kiện tiên quyết
- Máy chủ chạy CentOS 8.
- Mật khẩu gốc được cấu hình trên máy chủ của bạn.
Cài đặt VSFTPD
Theo mặc định, VSFTPD có sẵn trong kho lưu trữ mặc định của CentOS 8. Bạn có thể cài đặt bằng cách chạy lệnh sau:
Mã:
dnf install vsftpd -y
Mã:
systemctl start vsftpd
systemctl enable vsftpd
Tạo người dùng cho VSFTPD
Tiếp theo, bạn sẽ cần tạo người dùng mới cho VSFTPD. Vì vậy, bạn có thể truy cập máy chủ FTP của mình bằng người dùng này.Chạy lệnh sau để tạo người dùng mới có tên là vyom như được hiển thị bên dưới:
Mã:
adduser vyom
Mã:
passwd vyom
Cấu hình VSFTPD
Tiếp theo, mở tệp cấu hình mặc định của VSFTPD nằm tại thư mục /etc/vsftpd như được hiển thị bên dưới:
Mã:
nano /etc/vsftpd/vsftpd.conf
Mã:
anonymous_enable=NOlocal_enable=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YESlisten=NOlisten_ipv6=YESpam_service_name=vsftpduserlist_enable=NO
Mã:
systemctl restart vsftpd
systemctl status vsftpd
Mã:
? vsftpd.service - Vsftpd ftp daemon Đã tải: đã tải (/usr/lib/systemd/system/vsftpd.service; đã tắt; cài đặt trước của nhà cung cấp: đã tắt) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ sáu 2020-02-21 00:43:57 EST; 6 giây trước Tiến trình: 2698 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (mã=thoát, trạng thái=0/THÀNH CÔNG) PID chính: 2699 (vsftpd) Nhiệm vụ: 1 (giới hạn: 6102) Bộ nhớ: 1020.0K CGroup: /system.slice/vsftpd.service ??2699 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf21/02 00:43:57 centos8 systemd[1]: Đã dừng daemon ftp Vsftpd.21/02 00:43:57 centos8 systemd[1]: Đang khởi động Vsftpd ftp daemon...21/02 00:43:57 centos8 systemd[1]: Đã khởi động Vsftpd ftp daemon.
Cấu hình Tường lửa và SELInux
Theo mặc định, SELinux được bật trong CentOS 8. Vì vậy, bạn sẽ cần cấu hình SELinux cho VSFTPD.Bạn có thể cấu hình SELinux để cho phép truy cập FTP bằng lệnh sau:
Mã:
setsebool -P allow_ftpd_full_access=1
Mã:
firewall-cmd --zone=public --permanent --add-service=ftp
Mã:
firewall-cmd --reload
Kết nối với Máy chủ VSFTPD
Máy chủ VSFTPD của bạn hiện đã được cài đặt và cấu hình. Bây giờ, đã đến lúc kết nối máy chủ FTP từ hệ thống máy khách.Để thực hiện, hãy vào hệ thống Máy khách và chạy lệnh sau để kết nối máy chủ FTP của bạn:
Mã:
ftp 172.20.10.3
Mã:
Đã kết nối tới 172.20.10.3.220 (vsFTPd 3.0.3)Tên (172.20.10.3:root): vyom331 Vui lòng chỉ định mật khẩu.Mật khẩu:230 Đăng nhập thành công.
Mã:
Loại hệ thống từ xa là UNIX.Sử dụng chế độ nhị phân để truyền tệp.ftp>
Cấu hình VSFTPD với Hỗ trợ TLS
Vì lý do bảo mật, bạn nên mã hóa các truyền FTP bằng SSL/TLS. Để thực hiện, bạn sẽ cần tạo chứng chỉ SSL và cấu hình máy chủ VSFTPD để sử dụng chứng chỉ này.Trước tiên, bạn sẽ cần cài đặt gói OpenSSL trong hệ thống của mình. Bạn có thể cài đặt bằng lệnh sau:
Mã:
dnf install openssl -y
Mã:
mkdir /etc/ssl/private
Mã:
openssl req -newkey rsa:2048 -nodes -keyout /etc/ssl/private/vsftpd.key -x509 -days 365 -out /etc/ssl/private/vsftpd.crt
Mã:
Tạo khóa riêng RSA...+++++...........+++++ghi khóa riêng mới vào '/etc/ssl/private/vsftpd.key'-----Bạn sắp được yêu cầu nhập thông tin sẽ được kết hợpvào yêu cầu cấp chứng chỉ của bạn.Những gì bạn sắp nhập được gọi là Tên phân biệt hoặc DN.Có khá nhiều trường nhưng bạn có thể để trống một số trườngĐối với một số trường sẽ có giá trị mặc định,Nếu bạn nhập '.', trường đó sẽ được để trống.-----Tên quốc gia (mã 2 chữ cái) [XX]:INTên tiểu bang hoặc tỉnh (tên đầy đủ) []:GUJTên địa phương (ví dụ: thành phố) [Thành phố mặc định]:JUNTên tổ chức (ví dụ: công ty) [Công ty TNHH mặc định]:ITTên đơn vị tổ chức (ví dụ: bộ phận) []:ITTên chung (ví dụ: tên của bạn hoặc tên máy chủ của bạn) []:ftpserverĐịa chỉ email []:[emailprotected]
Mở tệp cấu hình mặc định của VSFTPD như hiển thị bên dưới:
Mã:
nano /etc/vsftpd/vsftpd.conf
Mã:
#Đường dẫn của SSL chứng chỉrsa_cert_file=/etc/ssl/private/vsftpd.crtrsa_private_key_file=/etc/ssl/private/vsftpd.key#Bật SSLssl_enable=YESallow_anon_ssl=NOforce_local_data_ssl=YESforce_local_logins_ssl=YES#TSL an toàn hơn SSL nên hãy bật ssl_tlsv1_2.ssl_tlsv1=YESssl_sslv2=NOssl_sslv3=NOrequire_ssl_reuse=NOssl_ciphers=HIGH#Bật gỡ lỗi SSL để lưu trữ tất cả nhật ký VSFTPD.debug_ssl=YES
Mã:
systemctl restart vsftpd
Xác minh kết nối TLS VSFTPD
Máy chủ VSFTPD của bạn hiện được bảo mật bằng hỗ trợ SSL/TLS. Tiếp theo, hãy thử kết nối máy chủ FTP của bạn từ dòng lệnh như hiển thị bên dưới:
Mã:
ftp 172.20.10.3
Mã:
Đã kết nối tới 172.20.10.3.220 (vsFTPd 3.0.2)Tên (172.20.10.3:root): vyom530 Phiên không ẩn danh phải sử dụng mã hóa.Đăng nhập không thành công.421 Dịch vụ không khả dụng, máy chủ từ xa đã đóng kết nốiftp>
Vì vậy, bạn sẽ cần tải xuống và kiểm tra kết nối VSFTPD bằng máy khách FTP hỗ trợ kết nối TLS.
Để thực hiện, hãy vào hệ thống Máy khách và cài đặt gói máy khách FileZilla.
Sau khi cài đặt FileZilla, hãy mở phần mềm FileZilla như hình dưới đây:
Tiếp theo, mở Trình quản lý trang web như hình dưới đây:
Nhấp vào nút Trang web mới để thêm kết nối FTP mới như hình dưới đây:
Cung cấp IP máy chủ FTP của bạn, Chọn giao thức FTP, Chọn "Sử dụng FTP rõ ràng qua TLS", Chọn yêu cầu mật khẩu, cung cấp tên người dùng của máy chủ FTP của bạn và nhấp vào nút Kết nối. Bạn sẽ được yêu cầu cung cấp mật khẩu của người dùng FTP như hiển thị bên dưới:
Cung cấp mật khẩu FTP của bạn và nhấp vào nút OK. Bạn sẽ được yêu cầu xác minh chứng chỉ đang được sử dụng cho kết nối SSL/TLS như hiển thị bên dưới:
Nhấp vào nút OK để xác minh chứng chỉ. Sau khi kết nối được thiết lập thành công, bạn sẽ thấy màn hình sau: