본문 바로가기
북마크/Q&A

SSH 로그인 시 특정 폴더만 접근할 수 있는 계정 생성

by david100gom 2025. 2. 4.

🔒 SSH 로그인 시 특정 폴더만 접근할 수 있는 계정 생성

SSH를 통해 로그인할 수 있지만, 특정 폴더 외에는 접근할 수 없는 계정을 만들려면 Chroot 환경을 설정해야 합니다.


1. 사용자 계정 생성

sudo useradd -m -d /home/restricted_user -s /bin/bash restricted_user
sudo passwd restricted_user
  • -m: 홈 디렉터리 생성
  • -d /home/restricted_user: 홈 디렉터리를 /home/restricted_user로 설정
  • -s /bin/bash: 기본 셸을 /bin/bash로 설정 (Chroot 환경에서도 셸을 사용할 경우 필요)

2. 특정 폴더만 접근 가능하도록 설정 (Chroot)

1️⃣ Chroot 디렉터리 생성

Chroot 환경을 구성하려면 SSH 로그인 시 사용자를 특정 디렉터리로 제한해야 합니다.

sudo mkdir -p /home/restricted_user/chroot_folder
sudo chown root:root /home/restricted_user
sudo chmod 755 /home/restricted_user
  • /home/restricted_user/chroot_folder → 사용자가 접근할 수 있는 폴더
  • /home/restricted_user의 소유권을 root:root으로 설정하여 탈출 방지
  • chmod 755로 설정해 모든 사용자가 읽을 수 있지만 쓰지는 못하도록 제한

2️⃣ 사용자 디렉터리 안에 접근 가능한 폴더 생성

sudo mkdir -p /home/restricted_user/chroot_folder/files
sudo chown restricted_user:restricted_user /home/restricted_user/chroot_folder/files
sudo chmod 700 /home/restricted_user/chroot_folder/files
  • /chroot_folder/files 안에서만 파일 작업 가능

3. SSH 설정 변경 (Chroot 적용)

SSH 설정 파일을 수정하여 restricted_user가 지정된 디렉터리 외에는 접근할 수 없도록 만듭니다.

sudo nano /etc/ssh/sshd_config

아래 내용을 추가:

Match User restricted_user
    ChrootDirectory /home/restricted_user
    ForceCommand internal-sftp
    AllowTCPForwarding no
    X11Forwarding no
  • ChrootDirectory /home/restricted_user → 사용자를 /home/restricted_user 디렉터리로 제한
  • ForceCommand internal-sftp → SSH 접속을 SFTP 모드로 강제
  • AllowTCPForwarding no, X11Forwarding no → 추가 보안 강화

설정 적용 후 SSH 재시작:

sudo systemctl restart sshd

4. SFTP로 로그인 확인

이제 restricted_user는 SSH로 로그인해도 /home/restricted_user/chroot_folder 폴더 외에는 접근할 수 없습니다.

sftp restricted_user@your-server-ip

로그인 후:

sftp> ls
files
sftp> cd ..
sftp> ls

→ ls 명령어를 실행해도 /home/restricted_user/chroot_folder 외에는 이동이 불가능합니다.


📌 정리

단계 설명

1️⃣ useradd SSH 로그인 계정 생성
2️⃣ chroot 설정 특정 폴더 외 접근 차단
3️⃣ SSH 설정 수정 sshd_config에서 Chroot 설정
4️⃣ SFTP 접속 테스트 특정 폴더 외 이동 불가 확인

이 방법을 사용하면 restricted_user는 SSH로 로그인하더라도 지정된 폴더 외에는 접근할 수 없는 계정이 됩니다.
추가 설정이 필요하면 말씀해주세요! 😊

댓글