
기술문서
>Windows
Windows Server에 SFTP 서버 구축 (OpenSSH 사용)
![]() |
평점 | 10.0 | 라이센스 | free |
---|---|---|---|---|
사용자평점 | 10.0 | 운영체제 | ||
다운로드 | 1 | 파일크기 | 0 | |
제작사 | LUZENSOFT | 등록일 | 2025-06-19 05:09:59 | |
조회수 | 4 |
Windows Server에 OpenSSH 서버를 설치하고 SFTP를 통해 특정 폴더에 접근하도록 설정하는 일반적인 단계입니다. 이 방법은 IIS와 독립적으로 작동하며, IIS 웹사이트의 물리적 경로를 SFTP 사용자의 홈 디렉터리로 지정하여 소스 코드에 접근하게 할 수 있습니다.
단계 1: OpenSSH 서버 설치
서버 관리자(Server Manager) 열기: Windows 시작 버튼을 클릭하고 "서버 관리자"를 검색하여 실행합니다.
역할 및 기능 추가(Add roles and features) 마법사 시작: "관리" 메뉴에서 "역할 및 기능 추가"를 클릭합니다.
기능(Features) 선택: "설치 유형 선택"에서 "역할 기반 또는 기능 기반 설치"를 선택하고 다음으로 진행합니다. "서버 선택"에서 현재 서버를 선택하고 다음으로 진행합니다. "서버 역할"을 건너뛰고 "기능" 섹션으로 이동합니다.
OpenSSH 서버 설치:
"OpenSSH 서버"를 찾아 체크박스를 선택합니다.
"관리 도구 포함"에 필요한 경우 체크합니다.
"설치"를 클릭하여 설치를 완료합니다.
서비스 확인: 설치 후, "서비스(Services)" 앱(services.msc)을 열어
OpenSSH SSH Server
와OpenSSH Authentication Agent
서비스가 있는지 확인합니다.OpenSSH SSH Server
서비스가 자동으로 시작되도록 시작 유형을 "자동"으로 설정하고 시작합니다.
단계 2: SFTP 사용자 계정 생성 및 권한 설정
새 사용자 계정 생성 (SFTP 전용 권장):
"컴퓨터 관리(Computer Management)" -> "로컬 사용자 및 그룹(Local Users and Groups)" -> "사용자(Users)"에서 SFTP 접속에 사용할 새 사용자 계정을 만듭니다. (예:
sftpuser
)강력한 비밀번호를 설정하고 "다음 로그인 시 사용자 반드시 암호 변경" 옵션을 해제하는 것이 좋습니다.
접근할 폴더 권한 설정:
IIS 웹사이트의 소스 코드가 있는 폴더 (예:
C:inetpubwwwrootYourWebsite
)로 이동합니다.이 폴더를 마우스 오른쪽 버튼으로 클릭 -> "속성(Properties)" -> "보안(Security)" 탭으로 이동합니다.
"편집(Edit)"을 클릭하고 방금 생성한 SFTP 사용자 계정(
sftpuser
)을 추가합니다.sftpuser
에 "읽기(Read)", "쓰기(Write)", "실행(Execute)" 권한을 부여합니다. (필요에 따라 "수정(Modify)" 또는 "모든 권한(Full control)"을 부여할 수 있으나 보안상 최소한의 권한을 주는 것이 좋습니다.)중요: 상위 폴더의 권한 상속을 주의하고,
sftpuser
가 해당 웹사이트 폴더 외의 다른 시스템 파일에 접근하지 못하도록 세밀하게 권한을 설정하는 것이 매우 중요합니다.
단계 3: OpenSSH Server 설정 (sshd_config)
설정 파일 열기:
C:ProgramDatassh
폴더로 이동합니다. (이 폴더는 숨겨져 있을 수 있으므로 파일 탐색기에서 "숨김 항목" 표시를 활성화해야 합니다.)sshd_config
파일을 메모장(Notepad)이나 다른 텍스트 편집기(관리자 권한으로 실행)로 엽니다.SFTP 관련 설정:
파일의 맨 아래 또는 적절한 위치에 다음 줄을 추가하거나 주석을 해제합니다.
# SFTP를 활성화하고 SSH 쉘 접근을 제한합니다. Subsystem sftp internal-sftp # 사용자별로 특정 디렉토리만 접근하도록 제한 (chroot) Match User sftpuser # SFTP에 사용할 사용자 이름으로 변경 (예: sftpuser) ChrootDirectory C:inetpubwwwrootYourWebsite # IIS 웹사이트의 실제 경로 ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no PermitTunnel no PasswordAuthentication yes # 비밀번호 인증 허용 (권장: 공개키 인증) # PublickeyAuthentication yes # 공개키 인증을 사용하려면 주석 해제하고 설정 필요
Match User sftpuser
:sftpuser
라는 사용자에게만 이 설정을 적용하겠다는 의미입니다.ChrootDirectory C:inetpubwwwrootYourWebsite
: 이 사용자가 SFTP로 접속했을 때C:inetpubwwwrootYourWebsite
폴더가 마치 루트 폴더(/
)인 것처럼 보이게 하여, 해당 폴더 외부로 이동할 수 없도록 제한합니다. 이는 보안상 매우 중요합니다.ChrootDirectory
의 권한 제한:ChrootDirectory
로 지정된 폴더(이 경우C:inetpubwwwrootYourWebsite
)의 상위 폴더들(예:C:inetpub
,C:
)은 TrustedInstaller, SYSTEM, Administrators 그룹 외에는 쓰기 권한이 없어야 합니다. 그렇지 않으면 SFTP 접속이 실패할 수 있습니다. 상위 폴더들의 권한을 확인하고 필요한 경우 상속을 비활성화한 후 쓰기 권한을 제거해야 합니다.
ForceCommand internal-sftp
: 이 사용자가 SSH 쉘 접근을 하지 못하고 오직 SFTP 파일 전송만 하도록 강제합니다.PasswordAuthentication yes
: 비밀번호를 통한 인증을 허용합니다. (보안 강화를 위해 공개키 인증 방식(PublickeyAuthentication yes
)을 사용하는 것을 강력히 권장합니다.)
설정 파일 저장:
sshd_config
파일을 저장합니다.OpenSSH SSH Server 서비스 재시작: 서비스 앱(services.msc)에서
OpenSSH SSH Server
서비스를 찾아 마우스 오른쪽 버튼을 클릭한 후 "다시 시작(Restart)"을 선택합니다.
단계 4: Windows 방화벽 설정
Windows Defender 방화벽 열기: Windows 시작 버튼을 클릭하고 "Windows Defender 방화벽"을 검색하여 엽니다.
인바운드 규칙(Inbound Rules) 추가:
왼쪽 메뉴에서 "인바운드 규칙"을 클릭합니다.
오른쪽 "작업" 패널에서 "새 규칙(New Rule)..."을 클릭합니다.
규칙 종류: "포트(Port)"를 선택하고 "다음(Next)" 클릭.
프로토콜 및 포트: "TCP"를 선택하고 "특정 로컬 포트(Specific local ports)"에 22 (SFTP 기본 포트)를 입력하고 "다음" 클릭.
작업: "연결 허용(Allow the connection)"을 선택하고 "다음" 클릭.
프로필: 필요한 네트워크 프로필(도메인, 개인, 공용)을 선택하고 "다음" 클릭. (보안상 외부에서는 공용 네트워크를 허용하지 않는 것이 좋습니다.)
이름: 규칙에 적절한 이름(예:
SFTP (OpenSSH)
)을 부여하고 "마침(Finish)" 클릭.
단계 5: SFTP 클라이언트 (예: WinSCP, FileZilla)로 접속 테스트
SFTP 클라이언트를 열고 다음 정보를 입력하여 접속을 시도합니다:
프로토콜: SFTP
호스트 이름: Windows Server의 IP 주소 또는 호스트 이름
포트 번호: 22 (기본값)
사용자 이름:
sftpuser
(만든 SFTP 계정 이름)비밀번호:
sftpuser
의 비밀번호
성공적으로 접속되면
C:inetpubwwwrootYourWebsite
폴더가 클라이언트에서 루트 폴더(/
)로 보일 것이며, 해당 폴더 내의 소스 코드를 확인하고 수정할 수 있습니다.
중요한 보안 고려사항:
비밀번호 대신 공개키 인증 사용:
sshd_config
에서PublickeyAuthentication yes
를 설정하고 클라이언트의 공개 키를 서버에 등록하는 것이 비밀번호 인증보다 훨씬 안전합니다.권한 최소화: SFTP 사용자에게 필요한 최소한의 권한만 부여합니다.
방화벽: SFTP 포트(기본 22)는 외부에서 접근할 수 없도록 엄격하게 방화벽 규칙을 설정하거나, 특정 IP 주소에서만 접근을 허용하도록 제한합니다.
로그 모니터링: SFTP 서버의 접속 로그를 주기적으로 확인하여 비정상적인 활동이 없는지 모니터링합니다. (
C:ProgramDatasshlogs
에 로그 파일이 있습니다.)정기적인 패치: Windows Server와 OpenSSH를 최신 상태로 유지하여 보안 취약점을 방지합니다.
이러러한 과정을 통해 IIS의 웹사이트 소스 코드 폴더에 SFTP로 안전하게 접근하고 수정할 수 있게 됩니다.