Skip to main content

🔒 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 X11
  • AllowTcpForwarding no: Không cho phép chuyển tiếp TCP
  • ChrootDirectory /home: Giới hạn người dùng trong thư mục /home
  • ForceCommand 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

  1. Đả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
  1. 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

📚 Tài Liệu Tham Khảo