SFTP(SSH File Transfer Protocol)는 보안 파일 전송을 위한 프로토콜로, 파일 전송의 보안성과 무결성을 보장합니다. Windows Server 2016에서 SFTP 서버를 구축하는 방법에 대해 알아보겠습니다.
이 글에서는 SFTP와 FTPS의 차이점, SFTP 서버 구축 방법, 그리고 구축 후 확인할 수 있는 테스트 방법에 대해 자세히 설명하겠습니다.
SFTP와 FTPS의 차이점
SFTP와 FTPS는 모두 파일 전송을 위한 프로토콜이지만, 두 프로토콜 간에는 몇 가지 중요한 차이점이 있습니다. 일반적으로 SFTP는 SSH(보안 셸)를 기반으로 하며, FTPS는 FTP(파일 전송 프로토콜)를 TLS(전송 계층 보안) 또는 SSL(보안 소켓 계층)로 보안하는 방식입니다.
이 두 프로토콜은 다음과 같은 특성을 가지고 있습니다.
특성 | SFTP | FTPS |
---|---|---|
프로토콜 기반 | SSH | FTP + SSL/TLS |
포트 사용 | 기본적으로 22포트 | 기본적으로 21포트 (데이터 전송을 위한 추가 포트 필요) |
데이터 전송 방식 | 단일 연결 | 제어 연결과 데이터 연결을 위한 다중 연결 |
방화벽 통과 | 더 쉽게 방화벽을 통과할 수 있음 | 방화벽에서의 설정이 복잡할 수 있음 |
인증 방법 | SSH 키 또는 비밀번호 인증 | SSL 인증서 필요 |
이 표를 통해 SFTP와 FTPS의 차이를 쉽게 비교할 수 있습니다. SFTP는 모든 통신이 하나의 연결을 통해 이루어지기 때문에 방화벽을 통과하기가 더 용이합니다.
반면, FTPS는 데이터 전송을 위해 추가적인 포트를 사용해야 하므로 방화벽 설정이 더 복잡할 수 있습니다.
SFTP 서버 구축 준비
Windows Server 2016에서 SFTP 서버를 구축하기 위해서는 몇 가지 사전 준비가 필요합니다. 우선, OpenSSH 서버를 설치해야 합니다.
OpenSSH는 Windows에서 SSH 및 SFTP를 지원하는 소프트웨어입니다. 다음과 같은 단계를 통해 OpenSSH를 설치할 수 있습니다.
- Windows 기능 추가: 서버 관리자를 열고 ‘역할 및 기능 추가’ 마법사를 실행합니다.
- OpenSSH 서버 선택: 기능 선택 단계에서 ‘OpenSSH 서버’를 선택합니다.
- 설치 완료: 설치가 완료되면 OpenSSH 서버가 Windows 서비스로 등록됩니다.
설치가 완료된 후, SFTP 서버를 설정하기 위해 몇 가지 추가 구성이 필요합니다. 이 과정에서 SSH 키 생성, 사용자 계정 설정, 방화벽 규칙 추가 등이 포함됩니다.
단계 | 설명 |
---|---|
1. OpenSSH 설치 | Windows 기능 추가를 통해 OpenSSH 서버를 설치 |
2. SSH 키 생성 | ‘ssh-keygen’ 명령어를 사용하여 SSH 키 생성 |
3. 사용자 계정 설정 | SFTP 사용자를 위한 계정 추가 |
4. 방화벽 규칙 추가 | 22포트에 대한 방화벽 규칙 추가 |
위의 표는 SFTP 서버 구축을 위한 기본 단계를 요약한 것입니다. 각 단계를 수행하면서 발생할 수 있는 오류나 문제를 사전에 예방하기 위해, 문서화된 가이드를 참조하는 것이 좋습니다.
SFTP 서버 구성
OpenSSH 서버를 성공적으로 설치한 후, 이제 SFTP 서버를 구성해야 합니다. 아래는 SFTP 서버 구성을 위한 주요 단계입니다.
- sshd_config 파일 수정: OpenSSH의 설정 파일인
sshd_config
파일을 수정하여 SFTP 구성을 설정해야 합니다. 이 파일은C:\ProgramData\ssh\
경로에 위치해 있습니다. 파일을 열어서 다음과 같은 내용을 추가하거나 변경합니다.
plaintext
Subsystem sftp sftp-server.exe
이 설정은 SFTP 서브시스템을 활성화합니다.
- 사용자 계정 추가: SFTP를 사용하기 위해서는 해당 사용자 계정을 추가하고, 홈 디렉토리의 권한을 설정해야 합니다. 아래와 같은 명령어를 사용하여 사용자를 추가할 수 있습니다.
bash
net user sftpuser Password123 /add
여기서 sftpuser
는 사용자 이름, Password123
은 비밀번호입니다.
- 홈 디렉토리 설정: 사용자의 홈 디렉토리를 생성하고 권한을 설정해야 합니다. 다음과 같은 명령어를 사용하여 홈 디렉토리를 설정합니다.
bash
mkdir C:\SFTP\sftpuser
icacls C:\SFTP\sftpuser /grant sftpuser:(OI)(CI)F
이 명령어는 sftpuser
에게 홈 디렉토리에 대한 모든 권한을 부여합니다.
- 서비스 시작: 모든 설정이 완료되면 OpenSSH 서비스를 시작해야 합니다. 아래의 명령어를 입력하여 서비스를 시작할 수 있습니다.
bash
Start-Service sshd
항목 | 설명 |
---|---|
1. sshd_config 수정 | SFTP 서브시스템 활성화 |
2. 사용자 계정 추가 | SFTP에 사용할 사용자 계정 추가 |
3. 홈 디렉토리 설정 | 사용자 홈 디렉토리 생성 및 권한 설정 |
4. 서비스 시작 | OpenSSH 서비스 시작 |
위 단계들을 통해 SFTP 서버의 구성을 완료할 수 있습니다. 모든 설정이 올바르게 이루어졌는지 확인하기 위해서는 다음 단계인 테스트를 수행해야 합니다.
SFTP 서버 테스트
SFTP 서버의 구성이 완료되었다면, 이제 SFTP 서버가 정상적으로 작동하는지 테스트해야 합니다. 테스트를 위해 SFTP 클라이언트를 사용할 수 있습니다.
일반적으로 사용되는 클라이언트는 FileZilla, WinSCP 등이 있습니다.
-
SFTP 클라이언트 설치: 먼저, SFTP 클라이언트를 설치합니다. 예를 들어, WinSCP를 사용할 수 있습니다.
-
서버 연결: SFTP 클라이언트를 열고 새로운 연결을 설정합니다. 다음과 같은 정보를 입력합니다.
-
호스트: 서버 IP 주소 또는 도메인
- 사용자 이름:
sftpuser
- 비밀번호:
Password123
-
포트 번호: 22
-
파일 전송 테스트: 연결이 성공하면 파일을 서버에 업로드하거나 다운로드하여 정상적으로 작동하는지 확인합니다.
단계 | 설명 |
---|---|
1. 클라이언트 설치 | SFTP 클라이언트(예: WinSCP) 설치 |
2. 서버 연결 설정 | 서버 IP, 사용자 이름, 비밀번호 입력 |
3. 파일 전송 테스트 | 파일 업로드 및 다운로드 시도 |
이 테스트를 통해 SFTP 서버가 정상적으로 작동하는지 확인할 수 있습니다. 문제가 발생할 경우, 로그 파일을 확인하여 오류를 분석하고 수정할 수 있습니다.
결론
Windows Server 2016에서 SFTP 서버를 구축하는 과정은 비교적 간단하지만, 각 단계를 정확하게 수행하는 것이 필요합니다. SFTP는 안전한 파일 전송을 가능하게 하여 기업의 데이터 보호에 큰 기여를 합니다.
따라서 SFTP 서버를 구축하고 운영하는 것은 보안 관리 측면에서 매우 중요한 작업입니다. 이 글을 통해 SFTP 서버를 성공적으로 구축하시길 바랍니다.