반응형
윈도우 기본 기능을 활용하여 특정 사용자(test)가 지정된 루트 폴더(C:\bart_ftp)를 벗어나지 못하도록 격리(Chroot)하고, 본인 전용 폴더에만 안전하게 파일을 업로드할 수 있도록 구성하는 방법입니다.
1. 사용자 계정 생성 및 디렉터리 구조 설정
가장 먼저 SFTP 전용 계정을 생성하고, 요청하신 구조에 맞춰 폴더를 생성합니다.
- 계정 생성: net user test ********** /add /y (패스워드는 보안 정책에 맞춰 설정)
- 루트 폴더 생성: C:\bart_ftp (SFTP 서비스의 최상위 경로)
- 사용자 폴더 생성: C:\bart_ftp\test (사용자가 실제 쓰기 권한을 가질 폴더)
- 권한 부여 (PowerShell 관리자):
- 루트 폴더(C:\bart_ftp)는 보안상 **관리자(Administrators)**만 쓰기 권한을 가져야 로그인이 허용됩니다.
- 사용자 폴더(C:\bart_ftp\test)에는 test 계정이 파일을 올릴 수 있도록 수정(M) 권한을 부여합니다.
PowerShellicacls "C:\bart_ftp\test" /grant "test:(OI)(CI)M"
2. OpenSSH 서버 설치 및 상태 확인
윈도우 시스템에 OpenSSH 서버가 정상적으로 설치되어 있는지 확인합니다.
- 설치 상태 확인: Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Server*'
- 주의: 상태가 InstallPending이라면 반드시 컴퓨터를 재부팅해야 설치가 마무리되고 설정 폴더가 생성됩니다.
3. sshd_config 핵심 설정 (사용자 격리)
C:\ProgramData\ssh\sshd_config 파일을 관리자 권한으로 열어 맨 아래에 다음 설정을 추가합니다. 이 설정이 test 사용자를 지정된 폴더에 가두는 역할을 합니다.
Plaintext
# test 사용자를 C:\bart_ftp 폴더에 격리
Match User test
ChrootDirectory C:\bart_ftp
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
- 핵심: ChrootDirectory 경로와 그 상위 폴더들에 일반 사용자의 쓰기 권한이 있으면 보안상 접속이 차단됩니다.
4. 서비스 적용 및 방화벽 설정
설정 변경 후 서비스를 재시작하고 외부 접속을 위해 포트를 개방합니다.
- 서비스 재시작: Restart-Service sshd
- 방화벽 허용 (22번 포트):
-
PowerShell
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow
5. 접속 및 파일 업로드 테스트
터미널에서 아래 순서대로 테스트를 진행하여 정상 작동 여부를 확인합니다.
- 접속: sftp test@localhost
- 로그인: 설정한 패스워드(**********) 입력
- 폴더 이동: cd test (접속 직후의 / 경로는 쓰기가 제한되므로 본인 폴더로 이동해야 합니다.)
- 파일 업로드: put "C:\내파일\test.txt"
💡 문제 해결 팁 (FAQ)
- Permission denied: 접속 후 바로 파일을 업로드하려 하면 발생합니다. 반드시 cd test 명령어로 본인 전용 폴더에 진입한 뒤 작업하세요.
- Connection reset: 패스워드 입력 직후 튕긴다면 C:\bart_ftp 폴더의 소유자가 Administrators가 아니거나, 일반 유저에게 쓰기 권한이 부여되어 있는지 확인하세요.
반응형
'Network' 카테고리의 다른 글
| [Cloud]Oracle Cloud 무료 서버 만들고 SSH 접속까지 (1) | 2026.03.26 |
|---|---|
| [SFTP]OpenSSH 서비스 포트 변경 방법 (22번 → 사용자 지정 포트) (0) | 2026.03.04 |
| [FTP]Win11(Pro) FileZilla Server 1.12.3 FTP 서버 구축 방법 (0) | 2026.02.26 |
| 시놀로지(Synology) Hyper Backup, rsync, Drive 백업, Snapshot Replication의 주요 특징 (0) | 2025.04.03 |
| 시놀로지(Synology) Hyper Backup(동기화) (0) | 2025.03.27 |