Hướng Dẫn Cài Đặt SFTP Server
SFTP (Secure File Transfer Protocol) cho phép truyền tải tập tin một cách bảo mật qua kết nối SSH. Hướng dẫn dưới đây sẽ giúp bạn cài đặt và cấu hình SFTP server trên hệ thống Linux.
Cài Đặt OpenSSH Server
SFTP server thường được tích hợp trong gói OpenSSH Server. Nếu hệ thống của bạn chưa cài đặt OpenSSH Server, hãy cài đặt theo hướng dẫn sau:
Trên Ubuntu/Debian
sudo apt update
sudo apt install openssh-server
Trên CentOS/Red Hat
sudo yum install openssh-server
Cấu Hình SFTP Server
Để hạn chế người dùng chỉ truy cập SFTP (không đăng nhập shell), bạn cần chỉnh sửa file cấu hình SSH tại /etc/ssh/sshd_config
.
Sửa Đổi Subsystem SFTP
Tìm dòng bắt đầu với Subsystem sftp
và thay đổi nó thành:
Subsystem sftp internal-sftp
Cấu Hình Giới Hạn Người Dùng SFTP
Ví dụ, để tạo nhóm người dùng chỉ sử dụng SFTP (ví dụ: sftpusers
), thêm các dòng sau vào cuối file sshd_config
:
Match Group sftpusers
ChrootDirectory /home/%u
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
Giải thích:
- Match Group sftpusers: Áp dụng cấu hình cho tất cả các người dùng thuộc nhóm sftpusers.
- ChrootDirectory /home/%u: Giới hạn người dùng vào thư mục /home/username (đảm bảo thư mục này được thiết lập đúng quyền).
- ForceCommand internal-sftp: Bắt buộc người dùng chỉ sử dụng SFTP mà không có shell.
- X11Forwarding no & AllowTcpForwarding no: Vô hiệu hóa chuyển tiếp X11 và TCP cho tăng cường bảo mật.
Thiết Lập Người Dùng SFTP
Tạo Nhóm Người Dùng SFTP
sudo groupadd sftpusers
Tạo Người Dùng Mới và Thêm Vào Nhóm
Giả sử bạn muốn tạo người dùng có tên sftpuser
:
sudo useradd -m -g sftpusers -s /usr/sbin/nologin sftpuser
sudo passwd sftpuser
Đường dẫn home của người dùng (ví dụ: /home/sftpuser
) phải được sở hữu bởi root để chroot hoạt động đúng. Sau đó, bạn có thể tạo một thư mục con cho người dùng làm nơi lưu trữ tập tin, ví dụ:
sudo mkdir /home/sftpuser/upload
sudo chown sftpuser:sftpusers /home/sftpuser/upload
Khởi Động Lại Dịch Vụ SSH
Sau khi chỉnh sửa file cấu hình, khởi động lại dịch vụ SSH để thay đổi có hiệu lực.
sudo systemctl restart ssh
Kiểm Tra Kết Nối SFTP
Từ máy khách, thử kết nối với SFTP bằng lệnh:
sftp sftpuser@your_server_ip
Nếu cấu hình đúng, bạn sẽ được chuyển trực tiếp vào phiên SFTP và chỉ có thể truy cập thư mục con đã được cấp quyền (ví dụ: thư mục upload
).
Khắc Phục Sự Cố
-
Lỗi "Permission denied": Kiểm tra lại quyền của thư mục chroot (
/home/sftpuser
) phải thuộc root và có quyền755
. Thư mục con (nhưupload
) nên thuộc người dùng SFTP với quyền phù hợp (ví dụ:700
hoặc755
). -
Không thể kết nối SFTP: Đảm bảo rằng dịch vụ SSH đang chạy và file cấu hình
/etc/ssh/sshd_config
không có lỗi cú pháp. Kiểm tra log của SSH để biết thêm chi tiết.