🔒 Cấu Hình SFTP Only + Chroot
📋 Giới Thiệu
Hướng dẫn này sẽ chỉ cách:
- Giới hạn người dùng chỉ có thể truy cập qua SFTP (không cho phép SSH)
- Giới hạn người dùng trong một thư mục cụ thể (chroot)
🛠️ Cấu Hình
1. Tạo Group SFTP
# Tạo group mới cho SFTP
sudo groupadd sftp_users
# Thêm user vào group (ví dụ: user ubuntu)
sudo usermod -aG sftp_users ubuntu
2. Cấu Hình SSHD
Chỉnh sửa file cấu hình SSH:
sudo vi /etc/ssh/sshd_config
Thêm/sửa các dòng sau:
# Comment dòng cũ
#Subsystem sftp /usr/lib/openssh/sftp-server
# Thêm dòng mới
Subsystem sftp internal-sftp
# Thêm cấu hình cho group sftp_users
Match Group sftp_users
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /home
ForceCommand internal-sftp
Giải thích
X11Forwarding no
: Không cho phép chuyển tiếp X11AllowTcpForwarding no
: Không cho phép chuyển tiếp TCPChrootDirectory /home
: Giới hạn người dùng trong thư mục /homeForceCommand internal-sftp
: Chỉ cho phép sử dụng SFTP
3. Khởi Động Lại SSH Service
sudo systemctl restart ssh
✅ Kiểm Tra Cấu Hình
1. Thử Kết Nối SSH (sẽ bị từ chối)
$ ssh ubuntu@ip-address
Enter passphrase for key '/home/ubuntu/.ssh/id_rsa':
This service allows sftp connections only.
Connection to ip-address closed.
2. Thử Kết Nối SFTP (sẽ thành công)
$ sftp ubuntu@ip-address
Enter passphrase for key '/home/ubuntu/.ssh/id_rsa':
Connected to ip-address.
sftp>
⚠️ Lưu Ý Bảo Mật
- Đảm bảo quyền thư mục chroot phù hợp:
# Thư mục chroot phải thuộc về root
sudo chown root:root /home
# Quyền thư mục chroot không được cho phép ghi
sudo chmod 755 /home
- Người dùng chỉ có thể truy cập thư mục home của họ trong chroot
🔍 Xử Lý Sự Cố
1. Kiểm Tra Log
# Xem log SSH/SFTP
sudo tail -f /var/log/auth.log
2. Các Lỗi Thường Gặp
- Lỗi quyền thư mục: Đảm bảo thư mục chroot có quyền phù hợp
- Lỗi kết nối: Kiểm tra cấu hình trong sshd_config
- Lỗi xác thực: Kiểm tra quyền của key và passphrase