반응형
우분투에서 SFTP에 ChrootDirectory를 설정하여 사용자를 특정 디렉토리에 제한하는 방법
우분투 22.04에서 특정 사용자에게 SFTP만 허용하고, ChrootDirectory로 홈 디렉토리 밖으로 접근하지 못하도록 제한하는 설정입니다.
사용자 생성
sudo adduser 사용자명
Chroot용 디렉토리 소유자 및 권한 설정
sudo chown root:root /home/사용자명
sudo chmod 755 /home/사용자명
SFTP 작업용 디렉토리 생성
sudo mkdir /home/사용자명/upload
sudo chown 사용자명:사용자명 /home/사용자명/upload
sudo chmod 750 /home/사용자명/upload
SSH 설정 파일 수정
sudo vim /etc/ssh/sshd_config
# SFTP 설정
Subsystem sftp internal-sftp
# 특정 사용자에 대한 Chroot 설정
Match User 사용자명
ChrootDirectory /home/사용자명
ForceCommand internal-sftp
AllowTcpForwarding no
PermitTunnel no
X11Forwarding no
SSH 설정 점검 및 재시작
sudo sshd -t
sudo systemctl restart sshd
728x90
테스트 환경
$ lsb_release -d
Description: Ubuntu 22.04.3 LTS
사용자 및 디렉토리 설정
사용자 생성
sudo useradd -m -d /home/testuser -s /usr/sbin/nologin testuser
echo 'testuser:testuser' | sudo chpasswd
Chroot용 디렉토리 소유자 및 권한 설정
sudo chown root:root /home/testuser
sudo chmod 755 /home/testuser
SFTP 작업용 디렉토리 생성
sudo mkdir /home/testuser/upload
sudo chown testuser:testuser /home/testuser/upload
sudo chmod 750 /home/testuser/upload
외부 디렉토리 바인드 마운트
sudo mkdir -p /apps/sftproot
sudo chown testuser:testuser /apps/sftproot
echo '/apps/sftproot /home/testuser/upload none bind 0 0' | sudo tee -a /etc/fstab
sudo mount -a
/apps/sftproot을 upload 폴더에 바인드 마운트
sudo mount --bind /apps/sftproot /home/testuser/upload
마운트 확인
mount | grep testuser
/dev/mapper/vg1-lv--0 on /home/testuser/upload type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)
SSH 설정
설정 파일 수정
vim /etc/ssh/sshd_config
Match User testuser
ChrootDirectory /home/testuser
ForceCommand internal-sftp
AllowTcpForwarding no
PermitTunnel no
X11Forwarding no
SSH 설정 점검 및 재시작
sudo sshd -t
sudo systemctl restart sshd
확인 방법
SFTP 클라이언트(FileZilla 등) 또는 터미널
sftp testuser@서버IP
로그인 후
cd upload
put somefile.txt
이 설정으로 testuser는 SFTP로 /home/testuser/upload에만 접근 가능하며, 홈 디렉토리 밖으로 나갈 수 없고 SSH 셸 접속도 차단됩니다.
반응형
'리눅스' 카테고리의 다른 글
Apache MPM Worker 모듈의 값을 계산 방법 (0) | 2025.05.22 |
---|---|
웹 서버에서 특정 디렉토리에 대한 접근을 제한하는 방법 (0) | 2025.05.22 |
우분투 20.04에서 systemd-resolved를 비활성화하는 방법 (0) | 2025.05.22 |
우분투 20.04에서 ModemManager 비활성화 및 제거하는 방법 (0) | 2025.05.22 |
우분투 24.04에서 Minikube를 활용하여 로컬 Kubernetes 클러스터를 구축하는 방법 (0) | 2025.05.22 |