<In Story>

MS Windows OpenSSH를 이용한 SFTP 구성하기 // [MS Windows] [FTP] [SSH] [Program] [Network] 본문

Program(Tool)/MS Windows

MS Windows OpenSSH를 이용한 SFTP 구성하기 // [MS Windows] [FTP] [SSH] [Program] [Network]

<In Story, Hi story, History> 2015. 5. 17. 13:27
SSH를 이용한 Secure FTP 구성하기
윈도우 XP나 2000부터는 IIS(Internet Information Server)가 이미 운영체제에 내장돼 있어 웹과 FTP를 통해 파일 서버를 확장할 수 있는데, 이런 FTP는 설정이 쉬운데 반해 보안을 걱정하는 사용자 입장에서는 좀 망설여지는 경우가 많다. 왜냐하면 FTP 프로토콜의 세션성립과 인증 방식이 텔넷(telnet)처럼 플레인 텍스트(Plain text) 형태로 이뤄지기 때문이다. 이는 주로 외부에서 접속이 빈번한 파일 서버의 경우, 원격 사용자가 FTP를 이용하면 스니핑 등과 같은 해킹 방식으로 ID와 패스워드를 중간에 가로채질 수 있다는 의미다. 또한 최근에는 인터넷에 연결만 되도 스캔공격이나 바이러스 공격을 쉽게 받을 수 있으며, 특히 21번 포트처럼 잘 알려진 포트에 대해서는 무작위 접속이 많기 때문에 기본 포트로 FTP를 운영하면 보안상 위험이 높아지기 때문이다.
이런 보안 문제를 해소하기 위해 이번에는 IIS 등 일반 FTP 엔진 대신 SSH를 이용한 안전한 SFTP(Secure FTP)를 구성하는 방법에 대해서 알아보기로 한다. SFTP의 기본원리는 FTP 프로토콜을 직접 사용하지 않고, 암호화를 지원하는 SSH를 이용해 FTP를 만드는 것이다. 이런 방식은 일단 인증부터 데이터 통신에 이르기까지 전과정을 암호화해 보안상 안전할 뿐만 아니라, 프로토콜 스택 상으로 TCP와 함께 SSH가 이중으로 CRC를 확인해 주므로 좀더 신뢰성 있는 데이터 교환이 가능하다. 게다가 FTP의 경우 인증과 세션 성립은 21번, 실제 데이터 전송은 20번(또는 랜덤 포트)으로 나뉘어져 있어, NAT 환경 혹은 사업장에서 일부러 FTP의 사용을 막았을 경우 불편 없이 사용할 수 있다.
SFTP를 구성하려면 파일 서버에 openSSH 프로그램이 설치돼 있어야 한다. 먼저 홈페이지(http://sshwindows.sourceforge.net)에서 설치 인스톨러를 다운로드 받는다.

(화면 5) openSSH 설치화면(화면 5) openSSH 설치화면



(화면 6) openSSH 설치화면(화면 6) openSSH 설치화면
인스톨러를 통해 프로드램 설치가 완료되면, SSH 데몬이 이용할 인증 정보를 기존 윈도우 계정 정보를 기반으로 생성하기 위해 다음과 같은 명령을 입력해야 한다.
커맨드 프롬포트 상에서 c:\progra~1\openSSH\bin 폴더로 이동해 mkgroup -l >> ../etc/group 과 mkpasswd -l >> ../etc/passwd를 입력하면 접속시 이용될 ID와 그룹이 담긴 파일을 ~\OpenSSH\etc 폴더에 생성한다. 그리고 관리도구→서비스로 이동해 'openSSH서버' 항목을 선택해 시작을 누르면 SSH 데몬이 구동된다.
(화면 7) SSH 접속

여기까지는 SSH를 이용하기 위한 기본 설정이고, 실제 이용하려는 SFTP는 데몬을 별도로 올려야 한다 c:\progra~1\openSSH\usr\sbin 폴더로 이동후 sftp-server.exe를 실행하면 파일 서버에서 SFTP 데몬이 구동을 시작하며 서버 구성이 완료된다. 클라이언트로 연결하는 방법은 PUTTY의 PSFTP로 접속하면, 기존 FTP와 동일한 명령 인터페이스를 통해 이용할 수 있고, 특히, FileZillar 프로그램을 이용하면 기존 FTP 클라이언트 프로그램과 동일하게 GUI를 통해 편리하게 SFTP를 이용할 수 있다.(화면 7) SSH 접속

여기까지는 SSH를 이용하기 위한 기본 설정이고, 실제 이용하려는 SFTP는 데몬을 별도로 올려야 한다 c:\progra~1\openSSH\usr\sbin 폴더로 이동후 sftp-server.exe를 실행하면 파일 서버에서 SFTP 데몬이 구동을 시작하며 서버 구성이 완료된다. 클라이언트로 연결하는 방법은 PUTTY의 PSFTP로 접속하면, 기존 FTP와 동일한 명령 인터페이스를 통해 이용할 수 있고, 특히, FileZillar 프로그램을 이용하면 기존 FTP 클라이언트 프로그램과 동일하게 GUI를 통해 편리하게 SFTP를 이용할 수 있다.


(화면 8) FileZillar를 통한 SFTP접속(화면 8) FileZillar를 통한 SFTP접속



(화면 9) PuTTY의 PSFTP접속 화면

이렇게 파일 서버에 SSH를 구성하면 또 다른 응용을 할 수 있는데 바로 FTP의 인증부분만 암호화 터널을 통해하고 데이터는 원래대로 받는 방식이 그것이다. 즉, 앞에서 처럼 SFTP처럼 완전한 암호화 환경을 이용하는 방식은 보안성은 높지만, 기존 FTP 방식을 지원하지 않아 클라이언트에서도 반드시 SFTP를 지원하는 클라이언트 프로그램으로만 접속해야 한다는 단점이 있다. 따라서 실제 보안이 취약한 기존 FTP의 인증과정만 SSH 터널을 이용하고, 바이너리 교환이 빈번해 스니핑 등의 위험이 적은 실제 데이터 교환은 예전처럼 전송받는 것이다.
설정하는 방식은 파일 서버에서는 기존의 FTP 데몬과 함께 SSH 데몬을 올리고, 클라이언트에서는 SSH 쉘 접속시 (화면 10)과 같이 SSH 클라이언트에 터널 연결 설정을 한다. 이후 SSH로 연결한 다음 ALZIP 등 다른 일반 FTP 클라이언트 프로그램을 이용하면 된다.