목차
이 글에서는 Windows Server에서 IIS 웹 서버와 FTP 서버를 설치·설정하는 과정을 매뉴얼 형태로 정리한다. IIS 역할 추가부터 FTP 사용자 계정 생성, 사용자별 디렉터리 권한 설정, FTP 사이트 추가, 사용자 격리, 방화벽 설정, 그리고 FileZilla로 파일을 전송하는 테스트까지 단계별로 따라 할 수 있다. 530 에러 같은 흔한 트러블슈팅도 함께 다룬다.
IIS와 FTP 개요
IIS(Internet Information Services)는 마이크로소프트 서버 패키지에 포함된, 웹 서버를 운영하기 위한 관리 툴이다.
FTP는 파일 전송을 위한 프로토콜로, 클라이언트와 서버 간에 파일을 전송하는 데 사용된다. IIS에서도 FTP 서버 기능을 제공하여 파일을 업로드하거나 다운로드할 수 있다.
본 매뉴얼에서는 IIS를 설치하고 IIS에 FTP 서버를 설정해, 외부 클라이언트와 연결하여 클라이언트 → 서버로 파일을 전송하는 과정을 안내한다.
IIS 설치
서버 관리자 [대시보드]에서 시작한다(부팅 시 기본으로 팝업 오픈).

서버 관리자 화면에서 [역할 및 기능 추가]를 클릭한다. 클릭하면 서버 관리자 – 대시보드가 나온다.

앞부분은 기본값으로 [다음]을 눌러 [서버 역할]까지 넘어간다. 그중 FTP Service만 추가로 체크하고 다음으로 넘어간다. 확장성(Extensibility)은 전문가용으로 일반 사용자에게는 필요 없지만, 체크해도 무방하다.



[다음]을 클릭한다.


FTP 서버, FTP 서비스를 체크한다(FTP 확장성은 전문가용).



IIS(인터넷 정보 서비스) 관리자를 실행하면 FTP 관련 메뉴가 활성화된 것을 확인할 수 있다.
FTP 서버 설정
FTP 사용자 설정
FTP를 사용하려면 각각의 디렉터리에만 접근할 수 있는 일반 사용자 계정을 생성하는 것이 보안상 좋다. 컴퓨터 관리에서 사용자를 추가할 수 있다.

왼쪽의 사용자를 우클릭한 후 [새 사용자(N)]를 클릭한다. 사용자 이름과 비밀번호를 지정하되, 비밀번호에는 영문자·숫자·특수문자가 모두 포함되도록 한다.

[만들기(E)]를 클릭한다.

사용자 계정이 추가되었다.

사용자 디렉터리 생성 및 권한 부여
사용자가 사용할 디렉터리를 하나 만든다. 이때 디스크 관리를 위해 별도 로컬 디스크(D:)를 추가(분리)하는 것이 좋다. D 드라이브를 생성하고 그 안에 LocalUser, 다시 그 안에 korjsh01(사용자 명 폴더)를 생성했다.



연결할 계정을 입력한다. 못 찾을 경우 [고급(A)]에서 계정을 찾는다.

디렉터리에 일반 계정 권한을 부여한다. korjsh01 사용자 계정이 korjsh01 폴더에만 접근하여 읽기·쓰기(수정)를 할 수 있도록 보안을 설정하는 과정이다. 사용자를 추가하고 해당 폴더에 대해서만 모든 권한을 부여한 뒤 [확인]을 클릭한다.
FTP 사이트 추가

외부에서 접속할 FTP 사이트를 추가한다. 우측의 [FTP 사이트 추가]를 클릭한다.


사용자별로 계정 및 디렉터리를 다르게 설정했다면, 콘텐츠 디렉터리를 최상위 폴더로 잡아준다.



FTP 사용자 격리
일반 사용자가 로그인할 때 FTP 사용자 격리를 하지 않으면 최상위 및 하위 폴더가 모두 조회되어 보안에 취약하다.

[FTP 사용자 격리]를 클릭한다.

[사용자 이름 디렉터리(전역 가상 디렉터리 사용 안 함)]를 선택한다. 사용자 이름(korjsh01)의 디렉터리만 사용할 수 있게 하고, 다른 디렉터리는 볼 수 없게 하는 설정이다.
FTP 방화벽 설정



트러블슈팅: 530 에러와 홈 디렉터리 지정
여기까지 하고 FileZilla로 FTP 파일 전송 테스트를 진행했다. 그런데 FTP 서버에 로그인은 되지만, 530 에러가 발생하며 서버의 디렉터리를 조회할 수 없는 상황을 만났다.
문제는 FTP 사용자 korjsh의 홈 디렉터리를 지정해주지 않았기 때문이다. FTP 사용자의 속성에서 D 드라이브 밑에 생성한 디렉터리를 홈 디렉터리로 지정한다.



FileZilla로 파일 전송 테스트

FTP 전송 설정을 [능동형(Active)]으로 설정하고 파일을 전송한다.


파일 전송에 성공했다.
구축 전에 알아 둘 핵심 개념
IIS로 웹·FTP 서버를 올릴 때 자주 막히는 지점은 대부분 권한·격리·방화벽 세 가지에서 비롯됩니다. 화면을 따라 하기 전에 아래 개념을 이해해 두면, 530 오류 같은 문제가 나도 스스로 원인을 좁힐 수 있습니다.
FTP 액티브 모드와 패시브 모드
FTP는 명령을 주고받는 제어 채널(21번 포트)과 실제 파일이 오가는 데이터 채널을 따로 씁니다. 액티브 모드는 서버가 클라이언트로 데이터 연결을 여는 방식이라, 클라이언트 앞단에 방화벽·공유기(NAT)가 있으면 차단되기 쉽습니다. 패시브 모드는 클라이언트가 서버로 데이터 연결을 여는 방식이라 NAT 환경에서 더 안정적입니다. 그래서 실무에서는 패시브 모드를 기본으로 두고, 서버 방화벽에 데이터 채널 포트 범위를 함께 열어 줍니다. 본문에서 방화벽 지원과 포트 범위를 설정하는 이유가 바로 이것입니다.
사용자 격리가 왜 필요한가
FTP 사용자 격리(User Isolation)를 설정하지 않으면, 로그인한 사용자가 최상위 폴더와 다른 사용자의 폴더까지 볼 수 있어 보안에 취약합니다. “사용자 이름 디렉터리” 격리를 적용하면 각 계정은 자신의 이름과 같은 폴더 안에만 갇혀, 남의 디렉터리에는 접근할 수 없습니다. 여러 사람이 같은 서버에 파일을 올리는 환경이라면 반드시 적용해야 하는 설정입니다.
보안을 위해 계정·디스크를 분리하는 이유
FTP 전용 일반 사용자 계정을 따로 만들고 시스템 드라이브(C:)가 아닌 별도 데이터 드라이브(D:)에 업로드 폴더를 두는 것은, 만에 하나 계정이 탈취되어도 시스템 영역과 다른 사용자 데이터에 피해가 번지지 않게 하기 위한 격리 원칙입니다. 관리자 계정으로 FTP를 열어 두는 것은 매우 위험하니 피해야 합니다.
자주 묻는 질문(FAQ)
로그인은 되는데 530 오류가 납니다.
로그인 후 디렉터리 조회 단계에서 나는 530 오류는 대부분 FTP 사용자의 홈 디렉터리가 지정되지 않았기 때문입니다. 사용자 계정 속성에서 실제 업로드 폴더(예: D 드라이브의 사용자 폴더)를 홈 디렉터리로 지정하면 해결됩니다. 본문 트러블슈팅 단계에 그 과정이 정리되어 있습니다.
FileZilla로 접속이 안 됩니다.
서버 방화벽에서 21번 포트와 데이터 채널 포트 범위가 열려 있는지, 그리고 클라이언트/서버의 전송 모드(액티브·패시브)가 방화벽 환경에 맞는지 확인하세요. NAT 뒤에 있는 서버라면 패시브 모드 + 포트 범위 개방이 가장 안정적입니다.
FTP 대신 더 안전한 방법은 없나요?
일반 FTP는 아이디·비밀번호와 파일이 암호화 없이 전송됩니다. 보안이 중요하다면 SSH 기반의 SFTP(22번 포트)나 SSL/TLS로 암호화하는 FTPS를 쓰는 것이 좋습니다. 내부망 학습·테스트 목적이라면 일반 FTP로 원리를 익히고, 외부에 노출되는 실서비스에서는 반드시 암호화 전송을 적용하세요.
정리
Windows Server에 IIS와 FTP 서비스를 설치하고, 전용 사용자 계정과 디렉터리 권한을 설정한 뒤 FTP 사이트를 추가했다. 사용자 격리와 방화벽까지 구성하고, 530 에러는 사용자 홈 디렉터리를 지정해 해결한 다음 FileZilla로 파일 전송을 확인했다. 이로써 사용자별로 격리된 안전한 파일 업로드·다운로드 환경이 완성된다.



💬 댓글 0