Computer >> 컴퓨터 >  >> 시스템 >> Windows Server

Windows Server 2012 R2에 TFTP 서버 설치하는 방법 (WDS 활용)

Windows Server 2012 R2 내장 TFTP 서버 소개

모든 Windows Server 버전은 내장 TFTP 서버를 실행할 수 있는 기능을 지원합니다. 다만 TFTP 서버 전용 역할이나 서비스는 존재하지 않으므로(IIS 서버의 FTP 섹션에서 찾지 마세요), Windows Server 2003과 마찬가지로 이 기능은 WDS(Windows Deployment Services)의 일부입니다. TFTP 서비스는 WDS 프로세스인 svchost.exe 내부에서 작동합니다.

TFTP 프로토콜이란?

TFTP(Trivial File Transfer Protocol)는 파일을 손쉽게 업로드하고 다운로드할 수 있도록 단순화된 파일 전송 프로토콜입니다. 일반적으로 TFTP는 PXE 부팅 시스템(네트워크 부팅, 디스크리스 워크스테이션 등), 네트워크 장비 설정의 가져오기/내보내기 등 특정 작업에 활용됩니다. 이 프로토콜은 보안, 인증, 관리 기능이 전혀 없다는 단점이 있지만, 클라이언트 측 구현이 쉽고 대용량 파일 전송 시 높은 성능을 발휘하는 것이 큰 장점입니다. TFTP는 UDP 포트 69를 사용합니다.

참고: Microsoft TFTP 서버의 기능은 다소 제한적이지만 PXE 부팅 용도로는 충분합니다. 특히 클라이언트는 이 TFTP 서버에서 데이터를 읽기만 할 수 있으며, 쓰기는 지원되지 않습니다.

TFTP 서비스 설치 방법

Windows Server 2012 R2에 TFTP 서비스를 설치하려면 서버 관리자(Server Manager)를 실행하고, 역할 및 기능 추가 마법사(Add Roles and Features Wizard)를 사용하여 Windows Deployment Services 역할을 선택합니다.

다음 단계에서는 WDS 역할 구성 요소 중 전송 서버(Transport Server)만 선택하고, 배포 서버(Deployment Server)는 체크 해제합니다.

TFTP 루트 디렉터리 설정

역할 설치가 완료되면 TFTP 서버의 루트 디렉터리로 사용할 폴더를 생성합니다. 예를 들어 C:\tftp를 만들 수 있습니다.

그다음 레지스트리 편집기에서 HKLM\SYSTEM\CurrentControlSet\services\WDSServer\Providers\WDSTFTP 경로로 이동하여, RootFolder라는 이름의 새 문자열 값을 생성하고 값에 앞서 만든 루트 디렉터리 경로를 입력합니다.

ReadFilter 매개변수 값에도 주의해야 합니다. 기본값은 \boot\tmp 디렉터리에서만 파일을 다운로드할 수 있도록 설정되어 있습니다. 루트 디렉터리나 다른 폴더에서도 파일을 다운로드할 수 있게 하려면 ReadFilter 값을 \*로 변경하세요.

WDS 서비스 시작 및 자동 실행 설정

다음 명령으로 WDS를 시작합니다:

WDSUTIL /Start-TransportServer

팁: 서비스를 자동으로 시작하려면 services.msc에서 Windows Deployment Services의 시작 유형을 '자동'으로 변경하거나, 명령 프롬프트에서 다음 명령을 실행하세요:

set-service WDSServer -StartupType Automatic

Windows 방화벽에는 UDP 포트 69로 들어오는 트래픽을 허용하는 규칙이 자동으로 생성됩니다(서비스는 1023보다 큰 임의의 포트에서 응답합니다). 일부 백신 프로그램은 포트 69를 차단할 수 있으니 주의하세요(예: McAfee Enterprise).

TFTP 서버 테스트

이제 TFTP 서버 구성이 완료되었습니다. TFTP 서버를 테스트하려면 TFTP 클라이언트가 필요하며, 서버 관리자에서 TFTP 클라이언트 기능을 선택하여 설치할 수 있습니다.

로컬에서 배포된 TFTP 서버에 접속하여 test.zip 파일을 다운로드해 보겠습니다. 다음 명령으로 파일을 다운로드할 수 있습니다:

tftp –i localhost GET tmp\test.zip C:\temp\test.zip

이론상으로는 정상 작동해야 하지만, 실제로 명령을 실행했을 때 다음과 같은 오류가 발생했습니다:

Connect request failed

Windows Deployment Services Server를 시작하거나 재시작할 때, 응용 프로그램 로그에 WDSTFTP 서비스의 EventID 259 이벤트가 기록되었습니다:

Windows 배포 TFTP 서버의 루트 폴더가 구성되지 않았습니다. 오류 정보: 0x2

오류 해결 방법

TFTP 서버가 정상 작동하도록 만들기 위해, WDS 역할 구성 요소 중 배포 서비스(Deployment Service)를 설치한 후 바로 제거했습니다. 설치 과정에서 RootFolder 값이 C:\RemoteInstall로 변경되었기 때문에 이를 c:\tftp로 다시 수정했습니다. 그런 다음 파일 다운로드를 다시 시도했습니다.

PS C:\temp> tftp -i localhost get boot\test.zip

성공했습니다!

마무리

이렇게 서드파티 도구 없이 Windows Server 2012에서 TFTP 서버를 손쉽게 배포하는 방법을 살펴보았습니다. 다만 이 방식으로 구축한 서버는 기능이 제한적이므로, 더 복잡한 환경에서는 tftpd32와 같은 대체 TFTP 서버 구현체를 사용하는 것이 좋습니다.