Thứ hai, 28/10/2013 | 00:00 GMT+7

Cách cấu hình vsftpd để sử dụng SSL / TLS trên VPS CentOS

<strong class = "highlight"> Cảnh báo: FTP không an toàn! Cân nhắc <a href=p>https://www.digitalocean.com/community/articles/how-to-use-sftp-to-secosystem-transfer-files-with-a-remote-serverosystem> sử dụng SFTP thay vì FTP </a>. </strong>


FTP, hoặc giao thức truyền file , là một cách để truyền file giữa server local và server từ xa. Mặc dù rất phổ biến và phổ biến, việc sử dụng phương pháp truyền file này đã không còn được ưa chuộng do thiếu tính bảo mật vốn có trong thiết kế của nó.

Một giải pháp thay thế rất có khả năng là SFTP, như đã đề cập ở trên. Giao thức này thực hiện chia sẻ file qua SSH. Nếu bạn phải sử dụng FTP, ít nhất bạn nên bảo mật kết nối bằng certificate SSL / TLS.

Trong hướng dẫn này, ta sẽ cấu hình vsftpd để sử dụng certificate TLS / SSL trên VPS CentOS 6.4.

Cài đặt vsftpd


Server vsftpd có sẵn trong repository lưu trữ mặc định của CentOS. Ta có thể cài đặt nó bằng lệnh :

sudo yum install vsftpd 

Server vsftpd hiện đã được cài đặt trên VPS của ta . Ta có thể cấu hình một số tùy chọn kết nối trong phần tiếp theo.

Cấu hình cài đặt cơ bản cho vsftpd


Tệp cấu hình chính cho vsftpd trên CentOS được giữ trong folder /etc/vsftpd/ . Nó được gọi là vsftpd.conf .

Mở file này trong editor với quyền root:

sudo nano /etc/vsftpd/vsftpd.conf 

Ta cần điều chỉnh một số thông số cơ bản trong file này để tăng tính bảo mật và cài đặt các tùy chọn kết nối của ta .

Điều đầu tiên ta sẽ làm là vô hiệu hóa user ẩn danh. Mặc dù tùy chọn này có thể có ý nghĩa đối với một kết xuất file lớn, công khai (như repository công cộng), nhưng đối với server FTP cá nhân, đây hầu như không bao giờ là một ý tưởng hay.

anonymous_enable=NO 

Vì ta đang vô hiệu hóa user ẩn danh, ta cần cung cấp một cách để hệ thống của ta xác thực user của ta . Ta sẽ cho phép user local , nghĩa là vsftpd sẽ sử dụng user hệ thống Linux và xác thực của ta để xác định ai có thể đăng nhập.

Để bật tính năng này, hãy đảm bảo tùy chọn này được đặt:

local_enable=YES 

Ta cũng sẽ cho phép họ truy cập viết để họ có thể tải lên tài liệu và sửa đổi nội dung:

write_enable=YES 

Ta cũng muốn giới hạn user của bạn trong các folder gia đình tương ứng của họ. Tùy chọn cho điều đó là:

chroot_local_user=YES 

Điều này là đủ cho cấu hình FTP cơ bản (không SSL). Ta sẽ thêm chức năng SSL sau.

Lưu và đóng file .

Tạo user FTP


Ta đã chọn sử dụng user local và giới hạn họ trong folder chính của họ với môi trường chroot.

Tạo user mới bằng lệnh này:

sudo adduser ftpuser 

Gán password cho user mới bằng lệnh :

sudo passwd ftpuser 

Phiên bản vsftpd trong CentOS 6.4 cũ hơn, do đó, phần cài đặt này dễ dàng hơn một số version mới hơn.

Cấu hình SSL với vsftpd


Bước đầu tiên để đưa vsftpd hoạt động với SSL là tạo certificate SSL của ta . Ta thực sự sẽ sử dụng TLS, đây là một giao thức kế thừa SSL và an toàn hơn.

Ta sẽ tạo một folder con trong folder SSL để lưu trữ các file của ta :

sudo mkdir /etc/ssl/private 

Để tạo certificate và khóa trong một file , ta có thể sử dụng lệnh sau:

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem 

Điền vào các câu hỏi mà nó yêu cầu. Điều quan trọng nhất là "Tên chung" của server của bạn, đó sẽ là địa chỉ IP hoặc domain mà bạn sẽ sử dụng để kết nối.

Thêm chi tiết SSL vào file cấu hình vsftpd


Bây giờ, ta cần thay đổi cấu hình của bạn để trỏ đến các khóa mới và cấu hình kết nối an toàn.

Mở lại file cấu hình vsftpd dưới dạng root:

sudo nano /etc/vsftpd/vsftpd.conf 

Cuộn xuống cuối file . Ta sẽ thêm thông tin SSL / TLS của ta tại đây.

Ta cần chỉ định vị trí của certificate và các file khóa của ta . Ta thực sự đã kết hợp cả hai phần thông tin vào một file duy nhất, vì vậy ta sẽ trỏ cả hai tùy chọn vào cùng một file :

rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem 

Tiếp theo, ta cần cho phép sử dụng các file này và vô hiệu hóa user ẩn danh. Ta cũng nên buộc sử dụng SSL cho cả thói quen truyền dữ liệu và đăng nhập. Điều này sẽ làm cho bảo mật bắt buộc:

ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES 

Tiếp theo, ta sẽ hạn chế loại kết nối với TLS, an toàn hơn SSL. Ta sẽ thực hiện việc này bằng cách cho phép TLS một cách rõ ràng và từ chối việc sử dụng SSL:

ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO 

Ta sẽ thêm một vài tùy chọn cấu hình khác trước khi hoàn tất:

require_ssl_reuse=NO ssl_ciphers=HIGH 

Lưu và đóng file .

Ta cần khởi động lại vsftpd để kích hoạt các thay đổi của bạn :

sudo /etc/init.d/vsftpd restart 

Ta cũng sẽ cấu hình nó để bắt đầu tự động sau mỗi lần khởi động lại:

sudo chkconfig vsftpd on 

Cách kết nối với Server vsftpd bằng FileZilla


Kết nối SSL và TLS có thể thực hiện được với hầu hết các client FTP hiện đại. Ta sẽ hướng dẫn bạn cách cài đặt FileZilla để sử dụng các kết nối bảo mật do khả năng tương thích đa nền tảng của nó. Ta sẽ giả định bạn đã cài đặt ứng dụng client bằng bất kỳ quy trình cài đặt thích hợp nào dành cho máy tính của bạn.

Mở chương trình FileZilla. Trong giao diện, bạn có thể nhấp vào biểu tượng để mở “Trình quản lý trang web”. Nó sẽ giống như biểu tượng ở ngoài cùng bên trái trong hình này:

FileZilla Open Site Manager

Trong giao diện mới bật lên, bạn nên nhấp vào nút “Trang web mới” ở góc dưới bên trái. Đặt tên cho kết nối server để bạn có thể dễ dàng xác định nó sau này

Trang web mới của FileZilla

Điền địa chỉ IP vào trường “ Server lưu trữ” và chọn “FTP - Giao thức truyền file ” từ menu thả xuống Giao thức. Đối với menu thả xuống Mã hóa, hãy chọn “Yêu cầu FTP rõ ràng qua TLS”.

Chọn “Yêu cầu password ” từ menu Loại Đăng nhập. Điền vào user FTP mà ta đã tạo cho trường " User ":

Cấu hình  server  FileZilla

Bây giờ, bạn có thể nhấp vào “Kết nối” ở cuối console . Bạn sẽ được yêu cầu nhập password cho user FTP của bạn :

Mật khẩu  user  FileZilla

Bước tiếp theo là dấu hiệu đầu tiên cho thấy ta đang kết nối TLS với server từ xa của bạn . Ta sẽ được yêu cầu chấp nhận certificate đang được sử dụng.

Chứng chỉ  Server  FileZilla

Bạn có thể xem thông tin bạn đã điền khi tạo certificate để xác minh bạn đang thực sự kết nối với đúng nơi.

Chấp nhận certificate để cài đặt kết nối.

Kết luận


Mặc dù cấu hình này là một bước đi đúng hướng, nhưng nó vẫn gặp phải các vấn đề bảo mật trước khi cài đặt kết nối. Nó nên được tránh trong hầu hết các cài đặt mở với internet do những lo ngại này. SFTP là một lựa chọn thay thế tuyệt vời nếu bạn muốn có khả năng sử dụng một số công cụ tương tự mà bạn đã quen thuộc, nhưng với tính bảo mật mà bạn có thể tin tưởng.

<div class = “author”> Bởi Justin Ellingwood </div>


Tags:

Các tin liên quan

Cách cài đặt và bảo mật phpMyAdmin trên VPS CentOS 6.4
2013-10-09
Cách cài đặt Git trên VPS CentOS 6.4
2013-10-08
Cách thiết lập và sử dụng kho lưu trữ Yum trên VPS CentOS 6
2013-10-01
Cách cài đặt Diaspora trên VPS CentOS 6 x86
2013-09-13
Cách cài đặt Discourse trên VPS CentOS 6.4 x64
2013-09-11
Cách cài đặt ejabberd trên VPS CentOS 5 và CentOS 6
2013-09-04
Cách đặt chính sách mật khẩu trên VPS CentOS 6
2013-09-03
Cách biên dịch Node.js với NPM từ nguồn trên CentOS 6
2013-08-21
Cài đặt và cấu hình Zenoss trên server riêng ảo CentOS
2013-07-17
Cách cài đặt Laravel 4 trên VPS CentOS 6
2013-07-15