Hướng dẫn tạo cấu hình cho ProFTP để dùng SFTP thay vì FTP
Trạng thái: DeprecatedBài viết này bao gồm phiên bản Ubuntu không còn được hỗ trợ nữa. Nếu bạn vẫn còn sử dụng server chạy Ubuntu 12.04, chúng tôi khuyên bạn nên nâng cấp hoặc chuyển sang bản Ubuntu được hỗ trợ
Lý do: Ubuntu 12.04 đã bị khai tử vào 28, tháng 4,năm 2017 và không còn nhận bản vá bảo mật hoặc nâng cấp. Hướng dẫn này không còn nữa.Thay vào đó :
Huớng dẫn này vẫn có thể hữu dụng với tư cách là tài liệu tham khảo nhưng nó vẫn không thể áp dụng được trên các phiên bản Ubuntu khác. Nếu có, chúng tôi khuyên bạn sử dụng hướng dẫn được viết cho phiên bản Ubuntu bạn đang sử dụng. Bạn có thể sử dụng chức năng tìm kiếm ở đầu page để tìm phiên bạn hiện tại.
Giới thiệu
FTP hay còn gọi là giao thức chuyển tệp tin , là một cách phổ biến để chuyển tệp giữa máu chủ cục bộ và máy chủ từ xa. Trong khi FTP là một phương pháp được ưu tiên hơn trong quá khứ nhưng nó chứng thực bằng văn bản thuần tuý nên nó không còn an toàn nữa.
ProFTPd là một máy chủ FTP phổ biến có thể được tạo cấu hình để sử dụng giao thức SFTP và là hình thức thay thế an toàn hơn thay cho FTP. Bài viết này sẽ chỉ cho bạn cách để tạo cấu hình ProFTP để sử dụng giao thức này tránh đi những điều không an toàn của FTP
Chúng tôi sẽ chỉ cho bạn cách cấu hình trên Ubuntu 12.04 VPS, nhưng hầu hết các bản phân phối phải hoạt động theo cách tương tự.
Cài đặt ProFTPd
Phần mềm ProFTDd ở trong kho mặc định của Ubuntu. Chúng ta có thể cài đặt nó vằng cách gõ:
sudo apt-get update && sudo apt-get install proftpd
Chọn "stand alone" khi được nhắc trong suốt quá trình cài đặt
Sau khi cài đặt, chúng ta cần phải chỉnh sửa một số biến cấu hình cơ bản. Mở tẹo cấu hình ProFTPs với quyền root với trình soạn thảo văn bản của bạn
sudo nano /etc/proftpd/proftpd.conf
Thay đổi tham số ServerName để khớp với tên miền chính của bạn hoặc địa chỉ IP
ServerName "yourDomainOrIPAddress"
Loại bỏ dấu #
trước tham số DefaultRoot để bỏ ghi chú:
DefaultRoot ~
Lưu và đóng file lại.
Cấu hình truy cập SFTP với ProFTPd
Bây giờ chúng ta cần cấu hình dịch vụ để dùng SFTP.
Tập tin mặc định tìm trong thư mục con conf.d thêm cấu hình. Chúng ta sẽ tạo một tệp ở đó để cho phép sử dụng SFTP:
sudo nano /etc/proftpd/conf.d/sftp.conf
ProFTPd có thể cấu hình với định dạng giống như Apache. Nếu bạn đã quen thuộc với Apache, điều này nên trông quen thuộc. Nếu bạn không quen thuộc thì rất dễ dàng để tìm ra.
Copy và paste dòng sau vào trong file:
SFTPEngine on
Port 2222
SFTPLog /var/log/proftpd/sftp.log
# Configure both the RSA and DSA host keys, using the same host key
# files that OpenSSH uses.
SFTPHostKey /etc/ssh/ssh_host_rsa_key
SFTPHostKey /etc/ssh/ssh_host_dsa_key
SFTPAuthMethods publickey
SFTPAuthorizedUserKeys file:/etc/proftpd/authorized_keys/%u
# Enable compression
SFTPCompression delayed
Phân tích cấu hình SFTP
Hãy chia tệp tin này thành các phần nhỏ để chúng ta có thể hiểu hơn về nó.
Toàn bộ phần này sẽ gói gọn trong tag IfModule để chắc chắn rằng lựa chọn cấu hình chỉ áp dụng khi module SFTP có sẵn.
SFTPEngine on: kích hoạt SFTP cho máy chủ.
Port 2222: Chỉ định cổng nơi kết nối SFTP sẽ được chấp nhận. Vì SSH đã tìm kiếm các kết nối ở cổng 22 nên chúng tôi muốn có một cổng khác.
SFTPLog: Định cấu hình vị trí của tệp nhật ký sẽ được tạo.
SFTPHostKey: Hai dòng này trỏ đến các khóa máy chủ SSH. Đây là cách máy chủ xác định chính nó cho khách hàng. Đối với hầu hết các phần, các dòng chúng tôi sử dụng nên được chính xác.
SFTPAuthMethods: Dòng này cấu hình máy chủ để chỉ cho phép truy cập kết nối với khoá SSH.
SFTPAuthorizedUserKeys: Tham số này đặt tên vị trí của các khoá SFTP có thể được sử dụng để xác thực một người nào đó. Phần
%u
sẽ thay thế tên người dùng xác thực.SFTPCompression delayed: Cái này thiết lập cơ chế nén sẽ được sử dụng trong quá trình chuyển file.
Tạo cấu hình cho khoá dựa trên chứng thực
ProFTP có thể sử dụng các khoá SSH để xác thực người dùng, nhưng các khoá phải được chuyển đổi để sử dụng định dạng RFC4716. May mắn là SSH có khả năng chuyển đổi các tệp tin một cách bình thường.
Bắt đầu tạo một thư mục để chưa những file đó:
sudo mkdir /etc/proftpd/authorized_keys
Bây giờ chúng ta cần đổi khoá công cộng đang dùng để đăng nhập vào máy chủ. Nếu bạn chỉ có duy nhất một người dùng thì bạn có thể dùng câu lệnh sau:
sudo ssh-keygen -e -f ~username/.ssh/authorized_keys | sudo tee /etc/proftpd/authorized_keys/username
Nếu bạn có nhiều người dùng và bạn cần chia ra thành các chứng nhận của riêng từng người, bạn sẽ phải dùng khoá công cộng thay vì tệp tin authorized_keys như sau:
sudo ssh-keygen -e -f /path/to/id_rsa.pub | sudo tee /etc/proftpd/authorized_keys/username_who_owns_key
Bạn có thể thêm bao nhiêu khoá tuỳ thích
Khi hoàn thành, khởi động lại máy chủ ProFTP:
sudo service proftpd restart
Vô hiệu hoá truy cập SFTP trên cổng SSH
Bây giờ chúng ta đã kích hoạt SFTP thông qua ProFTPd, chúng ta có thể vô hiệu nó trên cổng SSH bình thường. Điều này sẽ cho phép chúng ta cấu hình quyền truy cập của người dùng và khóa mọi thứ người dùng có thể xem và điều khiển thông qua ProFTPd, mà không cần lo lắng về việc người dùng có thể rời khỏi thư mục chính của họ.
Mở tệp cấu hình SSHD:
sudo nano /etc/ssh/sshd_config
Ở cuối tệp bạn sẽ thấy một dòng như thế này
Subsystem sftp /usr/lib/openssh/sftp-server
Đặt dấu (#) trước dòng đó :
# Subsystem sftp /usr/lib/openssh/sftp-server
Lưu và đóng tệp lại
Bây giờ khởi động máy chủ SSH để kích hoạt thay đổi:
sudo service ssh restart
Kết nối với client
Có rất nhiều client FTP mà chúng ta có thể sử dụng để kết nối với máy chủ của chúng tôi. Những client tốt thực hiện khả năng của tốt SFTP. Chúng tôi sẽ chỉ làm thế nào để kết nối thông qua FileZilla, nó có sẵn trên tất cả các nền tảng chính
Mở preference của FileZIlla. Tìm phần SFTP ở bên trái menu.
Click vào "Add keyfile" và tìm vị trí của khoá cá nhanh của bạn. Thường thì nó sẽ ở trong ~/.ssh/id_rsa
. Bạn có thể nhận được tin nhắn cho biết FileZilla sẽ chuyển nó đến format được hỗ trợ.
Nhấn "Okay" để thoát preference.
Trong giao diện chính, nhập sftp:// theo sau bởi tên miền hoặc địa chỉ IP của máy chủ trong trường " Host". Đặt tên người dùng vào " Username" và điền vào chỗ trống mà bạn đã chọn cho trường "Port":
Click vào "Quickconnect" và FileZilla sẽ kết nối tự động sử dụng khoá SSH của bạn.
Kết luận
Máy chủ của bạn bây giờ sẽ được cấu hình để chấp nhận các kết nối SFTP được quản lý bởi ProFTPd. Bạn có thể định cấu hình phần mềm để quản lý người dùng và những khu vực nào bị hạn chế. Nói chung, FTP nên tránh dùng do thiếu an ninh cần thiết cho bản thân nó.