"FTP"의 두 판 사이의 차이
(사용자 6명의 중간 판 43개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
− | '''FTP'''는 File Transfer | + | '''FTP'''(에프티피)는 File Transfer Protocol(파일 전송 프로토콜)의 약자로서, [[인터넷]]에서 [[파일]]을 송수신하기 위한 통신 [[프로토콜]]이다. FTP를 이용하여 [[서버]]와 [[클라이언트]] 사이에 [[네트워크]]를 통해 파일을 주고받을 수 있다. [[포트]] 번호는 20번이다. |
− | |||
− | |||
− | == | + | == 개요 == |
− | === | + | FTP는 TCP/IP 네트워크상에서 컴퓨터들이 파일을 교환하기 위해 1971년에 최초로 공개된 통신 규약이다. [[네트워크]]에 연결된 컴퓨터끼리 데이터를 원활하게 교환하기 위한 목적으로 개발되었다. 인터넷을 통해 한 컴퓨터에서 다른 컴퓨터로 파일을 전송할 수 있도록 하는 방법과 그런 프로그램을 모두 일컫는 말로 사용되고 있다.<ref> 리치해커 SCOTT, 〈[https://blog.naver.com/kostry/220899970512 FTP에 대한 간단 정리]〉, 《네이버 블로그》, 2017-01-01</ref> 네트워크에서 사용하는 [[프로토콜]] 중에서 드문 경우로 제어 채널과 전송 채널이 분리되어 있는 경우가 있다. 이를 쉽게 풀어 설명하자면 여기에 전화기 한 대와 팩스 한 대가 있다. 이 둘 중에 전화기로는 현재 가지고 있는 자료에 관해서 물어보는 일을 하고, 팩스로는 요청된 필요한 자료들을 전송받는 일을 하는 형태이다. FTP를 사용하여 데이터를 주고받으려면 FTP 서버와 FTP 클라이언트가 필요하다. 원래의 목적이 데이터 교환에 중점을 둔 것으로 개발되었기에 안전성과 신뢰성이 보장된다. 그렇기 때문에 회사나 동아리 같은 곳에서 FTP 서버를 하나만 구축해 두어도 자료를 공유하는데 상당히 유용한 수단이 된다. 하지만 국내의 경우에 자료를 공유하기 위한 대안이 워낙에 많이 존재하다 보니, 있으면 유용하게 쓰이지만 없어도 신경 쓰이지 않는 수준이다. 많은 FTP 클라이언트들이 좋은 [[GUI]] 환경을 제공한다. GUI 환경에서 작동하는 FTP 클라이언트들은 단지 명령어들을 자동으로 전송해 주는 역할을 할 뿐이다. 이런 형태의 FTP 클라이언트는 GUI를 사용하지 못하는 환경에서 지금도 매우 널리 사용되고 있다. 특히 유닉스(UNIX) 계열 서버를 관리하는 관리자들에게는 텔넷 및 SSH와 함께 필수로 익혀야 하는 영역이다. |
− | *RFC114로 | + | |
− | + | 웹 브라우저도 FTP를 지원하는데, 위의 명령어 입력 방식이 어려운 경우에 이 방법을 사용할 수 있다. 인터넷 주소창에 http:// 대신에 ftp:// 를 붙이고 FTP 서버 주소를 치면 ID와 비밀번호를 입력하는 화면이 나오고, 그걸 입력해서 들어가면 브라우저 화면에 FTP 서버의 파일 리스트들이 링크 형태로 나온다. 이것은 대용량 파일 전송이 웹에서 사용하는 HTTP 프로토콜보다 파일 전송용으로 만들어진 FTP 프로토콜의 유리한 점이 더 많기 때문이다. 하지만 이것은 마이크로소프트 엣지(Microsoft Edge)에서는 지원하지 않는다. | |
− | + | ||
− | + | 1990년대에 대부분의 소프트웨어 업체나 게임 업체 등이 별도의 FTP 서버를 구축하고 익명의 접속을 허용한 후에 자신들이 개발한 프로그램의 셰어웨어나 데모 버전, 패치 등을 공개하곤 하였다. 그 당시에는 지금과 같이 인터넷이 발달해 있는 상태가 아니었기에 FTP 말고는 불특정 다수에게 효과적으로 자료들을 배포할 수단이 거의 존재하지 않았다. 외국의 다른 게임 회사들은 대부분 비슷한 방식으로 FTP 서버를 운용하는 곳이 있었는데, 간혹 예전에 발매되었던 게임들을 FTP에서 무료로 다운받을 수 있는 경우도 존재하니 찾아보는 것도 나쁘지는 않다. 다만 지금은 자사 웹 사이트에서 공개하는 방법이 여러모로 이득이며 패치 같은 것들은 프로그램 내에 패치 업데이트를 위한 프로그램들을 내장시키는 경향이다. 또한, FTP에 대해 배우는 곳이 많지 않으며 사장 되어가고 있는 추세이다. 사실상 웹 기반 파일 전송 서비스로 완전히 대체 되었다. 리눅스 배포판과 각종 리눅스의 중요 오픈소스 소프트웨어들은 FTP로 배포되는 경우가 많다. yum이나 apt와 같은 각종 리눅스 저장소도 FTP로 운영되고 있는 상황이고, 유명 배포판의 경우에는 전 세계에 저장소 미러링 FTP 서버를 운영하는 경우가 많다. 한국 내에서는 카이스트, 다음, 네오위즈에서 운영하는 FTP 서버가 유명하다.<ref name="나무위키 FTP"></ref> | |
− | + | ||
− | + | ==역사 및 버전== | |
− | + | * '''1971년''' : RFC114로 게시되었다. | |
− | + | * '''1980년''' : TCP/IP의 전신인 [[NCP]] 위에 실행되었다. RFC765 버전으로 대체되었다. | |
− | + | * '''1985년''' : RFC 959로 나옴. 제안된 일부 표준들은 개정하였다. | |
− | + | * '''1994년''' : RFC 1579로 [[방화벽]] 친화 FTP를 활성화 | |
− | + | * '''1997년''' : RFC 2228은 보안확장을 제안한다. | |
− | + | * '''1998년''' : [[IPv6]]를 지원하고 새 수동모드를 정의한다. | |
==특징== | ==특징== | ||
− | + | ===종류=== | |
− | + | FTP를 통해 파생형으로 FTP에 TLS 프로토콜이 적용된 [[FTPS]]가 있으며, 비슷한 기능을 제공하는 SSH 프로토콜 기반의 [[SFTP]]가 있다. SFTP는 FTP라는 키워드를 포함하고 있으며 용도 또한 같으나 FTP와 기술적인 연관성은 없는 완전히 다른 프로토콜임을 주의해야 한다. FTP는 비밀번호가 평문으로 전송되어 보안성이 매우 떨어지므로 FTPS를 사용하는 것을 적극 권장한다. FTPS의 경우 PROT P를 사용하면 데이터 전송까지 [[암호화]]되어 높은 보안성을 지니며, PROT C를 사용하면 데이터 전송을 암호화하지 않아 보안성이 떨어지지만 빠른 파일 전송이 가능하다. SFTP의 경우 포트를 하나만 사용하기 때문에 방화벽이 설치된 환경에서 세팅하기가 쉬워 초보자한테 권장되나, 프로토콜 구조상 PROT P를 사용한 FTPS보다 속도가 느리다는 결함이 있다. FTP와 FTPS는 보통 제어용으로 21번 포트 및 데이터 전송용으로 20번 포트를, 패시브 모드의 경우 50000번대 이상의 포트를 추가적으로 많이 사용하며 FTPS의 경우 990포트를 사용하는 경우도 있다. SFTP는 보통 22번 포트를 사용한다.<ref name="나무위키 FTP"> 나무위키 FTP - https://namu.wiki/w/FTP</ref> | |
− | |||
− | |||
− | |||
+ | ===동작원리=== | ||
+ | FTP의 동작 원리는 비교적 간단하다. FTP 서비스를 제공하는 서버와 여기에 접속하는 클라이언트 사이에 두 개의 연결이 생성되는데, 하나는 데이터 전송을 제어하기 위한 신호를 주고받기 위함이고(네트워크 21번 포트), 다른 하나는 실제 데이터 전송에 사용된다(네트워크 20번 포트). 여기서 네트워크 포트란 네트워크를 통해 데이터가 이동하는 통로를 말한다. 이를테면, FTP 서버에 접속할 때 입력하는 사용자 계정 및 암호 등의 정보나 파일 전송 명령 및 결과 등은 데이터 제어용 연결에서, 이후 실제 파일 송수신 작업(올리기, 내려받기)은 데이터 전송 연결에서 처리되는 것이다. FTP 클라이언트 프로그램은 여러 파일을 연속으로 송수신해야 하기에, 서버와의 지속적인 응답 메시지 전송을 통해 연결 상태(세션)를 유지한다.<ref>카메라맨, 〈[https://m.blog.naver.com/hdj20/40155944026 FTP란 무엇인가?.]〉, 《네이버블로그》, 2012-04-02</ref> | ||
+ | ===장단점=== | ||
+ | FTP는 [[인터넷]]을 통한 파일 송수신 만을 위해 고안된 서비스이기 때문에 동작 방식이 대단히 단순하고 직관적이다. 그런 만큼 사용법도 간단하다. 무엇보다 [[WWW]] 방식보다 파일을 빠른 속도로 한꺼번에 주고받을 수 있다는 것이 FTP의 가장 큰 장점이다. WWW의 경우 일반문자, 사진, 영상 콘텐츠를 간편하게 사용하지만 많은 양의 파일을 주고받기에는 느리고 파일제어도 힘들다. | ||
+ | 다만 빠른 파일 전송이 주된 목적이기에 보통의 경우 사진이나 음악, 동영상 등의 멀티미디어 콘텐츠는 내려받기가 완료된 다음에 확인할 수 있다. WWW 환경에서는 내려받으며 재생이 가능하다. 또한, 기본적으로 명령어 기반의 통신 서비스이기 때문에, 별도의 FTP 클라이언트 프로그램(알드라이브←알FTP를 알드라이브로 변경)을 사용하지 않으면 사용이 복잡하고 어려울 수 있다. FTP는 보안 프로토콜을 위해서 계획된 것이 아니기 때문에 수많은 보안 취약점이 존재한다는 것도 FTP의 단점이다. 1999년 5월에 출간된 RFC 2577에서 저자들은 1)무차별 대입 공격 2)FTP 바운스 어택 3)패킷 가로채기 4)포트 훔치기 5)스푸핑 공격 6)사용자 이름 열거 등에 대한 취약점을 나열하였다. 파일 전송 프로토콜은 서버의 파일을 바꾸거나 지울 수 있기에 전송하기에 앞서 사용자의 이름과 암호를 묻는 과정이 필요하다. 그래서 FTP에서는 암호가 암호화되지 않는 위험이 있기에 원 타임(한 번만 묻는) 암호를 이용한 인증을 이용한다. 혹은 보안을 더욱 철저히 하게 하려면 [[SFTP]]나 [[SCP]]등 다른 방법을 사용하여 파일을 전송하는 것도 하나의 좋은 방법이다. <ref> 위키백과 파일 전송 프로토콜 -https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%BC_%EC%A0%84%EC%86%A1_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C</ref> | ||
+ | ===활용=== | ||
+ | * '''익명계정의 활용''' : 사용자 암호나 계정 입력이 필요없이 하나의 공용 계정으로 모든 사용자가 접속이 가능하다. ‘anonymous’라는 계정에 자신의 이메일 주소를 암호로 입력하면 곧바로 FTP 서버에 접속하여 파일을 내려받을 수 있다. | ||
+ | * '''수동 모드 연결과 SFTP 연결''' : 능동(active) 모드와 수동(passive) 모드의 두 가지 데이터 접속 방식을 제공한다. 네트워크 20번과 21번포트의 경우 능동모드인데 보안장비(방화벽)에서 20번을 차단하는 경우에 출력문제가 발생한다. 수동모드는 20번포트가 아닌 [[데이터]] 전송 포트를 임의로 할당하여 데이터 전송을 진행할 수 있게한다.파일목록이 없으면 문의해야 한다. SFTP는 FTP 연결에 보안성이 강회되어서 [[해킹]]같은 보안문제를 미리 방지할수있다. 21번포트가 아닌 22번포트를 사용한다. | ||
+ | * '''내 PC를 FTP 서버로 활용''' : 윈도우나 리눅스에서 FTP서버로 설정하여 사용할 수 있는데 컴퓨터가 항상 켜져있어야 하고 서버 프로그램도 동작중이어야 한다. 공인 [[IP]]주소도 설정되야 한다. | ||
+ | * '''아웃오브밴드'''(Out of band) : 파일을 전송하는 커넥션과 제어를 위한 커넥션을 다르게 하는 방식이다. 예를 들어, 21번 포트번호로 접속을 제어하고 파일을 전송할 시 20번 포트를 사용하는 방식이다. 21번 포트는 클라이언트와 서버의 접속이 끊길 때 까지 유지된다. 하지만 20번 포트는 파일을 주고받을 때 만 연결하는 방식이다. | ||
+ | |||
+ | ==클라이언트 목록== | ||
+ | 아래는 주요 FTP클라이언트 목록이다. | ||
+ | |||
+ | *'''파일질라'''(FileZilla) : 파일 질라는 오픈 소스로, FTP, SFTP, FTPS를 지원하는 FTP 관리 소프트웨어다. 설치 및 사용 방법이 매우 간단하며 쉽게 사용할 수 있다. 또한, 한글도 지원한다. 설치 방법은 다음과 같다 | ||
+ | #https://filezilla-project.org/ 에 접속하여 [Download FileZilla Client]를 선택한다. | ||
+ | #다음 화면으로 넘어가면 운영체제에 맞는 [Download Filezilla Client ]를 선택하여 클릭하면 설치 파일이 다운로드 된다. | ||
+ | #다운로드 받은 설치 파일을 연 다음, 별다른 설정이 필요 없다면 [I Agree] => [Next >]를 선택하여 설치를 마무리한다. | ||
+ | :다음은 FTP 연결 방법이다. | ||
+ | #설치 완료 후 프로그램에 접속하면 메인화면이 나오게 되는데, | ||
+ | #리눅스 또는 다른 서버에 접속해보고자 한다면 상단 메뉴의 [파일] > [사이트관리자]를 연다. | ||
+ | #사이트 관리자를 열면 나오는 화면에서 사이트 목록 밑에 [새 사이트(N)]를 클릭한다. | ||
+ | #이제 내 컴퓨터에서 연결한 서버에 서버 1)HOST IP 2)포트 3)서버 접속 ID 4)비밀번호와 같은 접속 정보를 입력하면 해당 서버에 접속할 수 있다. | ||
+ | #접속하게 되면 파일 질라 프로그램의 상단에 연결된 서버 IP가 나타나며 아래의 상태 창에 현재 연결된 사이트와 처음 보이는 디렉터리 주소가 나온다. 만약 접속이 실패한다면 상태 창에 접속 실패라고 출력되는데, 그렇다면 위에 입력한 정보를 잘못 적었거나 또는 해당 서버에서 접속을 막고 있을 수 있다. | ||
+ | #접속이 완료되면 이제 사용자 컴퓨터와 서버 컴퓨터가 서로 파일 내용들을 주고받을 수 있다. | ||
+ | #아래 그림으로 보면 왼쪽은 사용자 컴퓨터이고, 오른쪽은 서버 컴퓨터의 디렉터리 및 파일 목록이 나온다. | ||
+ | #파일을 옮기고 싶다면 해당 파일을 더블 클릭이나 서버를 누른 상태에서 반대쪽으로 드래그하면 옮겨진다.<ref> 버물버물리,〈[https://javacpro.tistory.com/61 FTP 소프트웨어 사용 ( FileZilla, 파일질라)]〉, 《티스토리》, 2018-04-17</ref> | ||
+ | |||
+ | *'''WinSCP''' : Windows Secure CoPy의 약자로 마이크로소프트 윈도우 용으로 개발되었다. 자유 및 오픈소스이며, SFTP, SCP 및 FTP 클라이언트다. 주요 기능으로는 로컬 및 원격 컴퓨터 간 보안 파일을 전송하는 기능이 있다. 그뿐 아니라 WinSCP는 기본적인 파일 관리자와 파일을 동기화하는 기능을 제공한다. 보안 전송의 경우에는 SSH를 사용하며, SFTP를 포함한 SCP프로토콜도 지원한다. CNET 에디터 점수로 만점을 받았으며 FTP 소프트웨어 인기도 분야에서는 2위를 차지하였다. 파일 질라와 마찬가지로 한국어를 지원한다.<ref> WinSCP, 〈[https://winscp.net/eng/docs/lang:ko WinSCP 소개]〉, 《WinSCP》</ref> <ref> 위키백과 WinSCP -https://ko.wikipedia.org/wiki/WinSCP </ref> | ||
+ | |||
+ | *'''SmartFTP''' : FTP, FTPS, SFTP, WebDAV, Amazon S3, Backblaze B2, Google Drive, One Drive, SSH의 터미널 클라이언트이다. 이 프로그램은 사용자 컴퓨터와 서버 간의 파일 전송을 인터넷상에서 가능하게 도와주는 역할을 한다. 또한 안전하고 신뢰성과 효율성이 높다. 이 프로그램은 웹 사이트의 구축 및 유지와 보수에 유용하며, 이미지와 문서, 그리고 동영상 및 음악 파일의 업로드 및 다운로드를 용이하게 해준다. 파일 전송을 관리하며, 파일 전송 프로세스를 자동화한다. 그리고 로컬 및 원격 파일의 백업과 동기화가 가능하다.<ref> SmartFTP,〈[https://www.smartftp.com/ko-kr/ SmartFTP 란?]〉, 《SmartFTP》</ref> | ||
+ | |||
+ | *'''선샤인'''(Sunshine) : 한국 기업인 Spika에서 서비스하는 P2P 파일 공유 서비스로, 비트토렌트(Bittorrent) Sync와 대응된다. 일반적인 클라우드와는 다르게 스마트폰을 서버로 이용하기에, 용량 제한이 없다는 것이 장점이다. 그래서 자료 공유가 잦은 친구와의 파일 공유가 쉬운 편이다. 대부분의 기기에서 지원하였지만, 아쉽게도 2018년 12월 31일 자로 서비스가 종료되었다.<ref> 나무위키 Sunshine(앱) - https://namu.wiki/w/Sunshine(%EC%95%B1)</ref> | ||
+ | |||
+ | *'''Windows 탐색기''' : 일반적으로 로컬 파일 열람을 위해서 사용되는 프로그램이다. 하지만 주소 줄에 FTP 주소를 입력하면 FTP 클라이언트처럼 사용할 수 있다. 그러나 기능은 허접하다. 따로 설치되어있는 클라이언트가 없을 때 잠깐 사용할 용도로서는 괜찮다. | ||
+ | |||
+ | *'''Xftp''' : 넷사랑컴퓨터에서 개발한 파일 전송 클라이언트로, FTP와 SSH의 확장 기능인 SFTP 프로토콜을 지원한다. 윈도우즈 탐색기와 거의 유사한 구조로 설계되어 있으며, 탭 기반의 인터페이스를 가지고 있어 사용하기에 용이하다. 간결하고 직관적인 인터페이스를 가지고 있어 파일 전송과 관리가 가능하여 접근성이 좋다는 장점이 있지만, 현재는 입문용으로 파일질라를 이용하는 유저가 대다수라 인지도가 높은 상황은 아니다. 2020년 5월 21일에 6.0.0191 버전이 업데이트되었으며 버전 6 자체는 2018년 4월에 배포 되었다. 버전 6에서는 HiDPI나 고급 폴더 동기화를 지원한다. 버전 6을 기준으로 개인이나 학교만 무료로 사용이 가능하며 기업이나 관공서 등은 정식 라이선스 구매가 필요하다. 넷사랑컴퓨터의 제품 중 Xmanager Power Suite 또는 Xshell Plus 제품을 구매하면 같은 회사의 제품과 Xshell이 포함된 번들로 설치가 가능하다. Xftp의 기능은 다음과 같다. | ||
+ | |||
+ | # 파일전송 프로토콜(SFTP, FTP)을 지원하고, SSH의 특수 사용자 인증을 지원하며, Xshell과 SSH의 연동이 가능하다. | ||
+ | # 별도의 세션 파일을 생성하여 세션 관리가 가능하다. | ||
+ | # Attach/Detach 가능한 탭 기반의 인터페이스이다. | ||
+ | # 폴더 동기화 기능을 지원하여 백업 및 미러 서버에 파일을 쉽게 비교하고 필터하여 업로드 할 수 있다. | ||
+ | # 같은 디렉토리간의 동기화 탐색이 가능하다. | ||
+ | # 마스터 암호 기능을 지원하여 세션 간의 암호를 하나의 암호로 암호화 할 수 있다. | ||
+ | |||
+ | : 유저 편의 기능으로는 다음이 있다. | ||
+ | |||
+ | # 버전 6부터 테마 변경이 가능하다. | ||
+ | # 폴더 북마크 기능을 지원하여 미리 지정한 경로로 빠르게 이동 가능하다. | ||
+ | # 전송 로그 창을 지원한다. | ||
+ | # FTP 명령을 입력할 수 있다. | ||
+ | # 원격 파일을 윈도우로 불러와 실행할 수 있다. | ||
+ | # 파일 및 디렉터리 권한의 수정이 가능하다.<ref> 나무위키 Xftp - https://namu.wiki/w/Xftp#rfn-5</ref> | ||
+ | |||
+ | *'''알 드라이브''' : 이스트소프트에서 개발된 프로그램으로, 널리 사용되지만, 업데이트가 뜸하며 뭔가 문제가 많다. | ||
+ | |||
+ | *'''레이 드라이브(RaiDrive)''' : 오픈박스 연구소에서 개발한 윈도우용 클라우드 스토리지 게이트웨이 소프트웨어(Cloude Storage Gateway)로, 윈도우의 기본 기능으로 연결할 수 없는(어려운) 원격 스토리지를 원도우 파일 탐색기의 네트워크 드라이브로 만들어주는 것이 핵심 기능이다. 중소기업청의 2015년 창업 성장 기술 개발사업에 선정된 기술을 바탕을 제품개발이 시작되었으며 2017년에 최초 버전이 출시되었다. 클라우드 스토리지와 표준 프로토콜을 지원하는 장비를 외부에서 원격으로 연결이 가능하다. 개인, 기업, 교육용 클라우드 스토리지를 모두 지원한다. 또한, 표준 프로토콜을 지원하는 NAS, 공유기, 서버와도 연결이 가능하다. 지원하는 클라우드 스토리지가 많은 편에 속하는데, 대표적으로 구글 드라이브와 구글 포토, 드롭박스, 네이버 오브젝트 스토리지, 그리고 아이비엠 오브젝트 스토리지를 지원한다. 지원하는 표준 프로토콜로는 WebDAV와 FTP,SFTP가 있다.<ref> 나무위키 RaiDrive -https://namu.wiki/w/RaiDrive </ref> | ||
+ | |||
+ | *'''ipDISK Drive''' : EFM 네트웍스의 ipTIME 공유기를 이용한 간이 FTP 서버를 위한 전용 클라이언트로서, 드라이브 문자열을 지정하여 FTP 서버를 이동식 디스크처럼 인식시키는 기능이 있다. 이로 인해 윈도우 탐색기에서 편리하게 사용이 가능하지만 서버에 연결된 저장장치의 용량이 제대로 표시되지 않는 문제가 있다.<ref name="나무위키 FTP"></ref> | ||
{{각주}} | {{각주}} | ||
+ | |||
==참고자료== | ==참고자료== | ||
− | *〈[https:// | + | * 〈[http://bitly.kr/L9jP1L 파일 전송 프로토콜]〉, 《위키백과》 |
+ | * 존 마틴 데일, 〈[https://www.digitaltrends.com/computing/what-is-ftp-and-how-do-i-use-it/ FTP란 무엇입니까?]〉, 《DIGITAL TRENDS》, 2019-03-30 | ||
+ | * 〈[https://namu.wiki/w/FTP FTP]〉《나무위키》 | ||
+ | * 카메라맨, 〈[https://m.blog.naver.com/hdj20/40155944026 FTP란 무엇인가?]〉, 《네이버 블로그》, 2012-04-02 | ||
== 같이 보기 == | == 같이 보기 == | ||
37번째 줄: | 95번째 줄: | ||
* [[파일]] | * [[파일]] | ||
− | {{인터넷| | + | {{인터넷|검토 필요}} |
2020년 7월 29일 (수) 10:23 기준 최신판
FTP(에프티피)는 File Transfer Protocol(파일 전송 프로토콜)의 약자로서, 인터넷에서 파일을 송수신하기 위한 통신 프로토콜이다. FTP를 이용하여 서버와 클라이언트 사이에 네트워크를 통해 파일을 주고받을 수 있다. 포트 번호는 20번이다.
개요[편집]
FTP는 TCP/IP 네트워크상에서 컴퓨터들이 파일을 교환하기 위해 1971년에 최초로 공개된 통신 규약이다. 네트워크에 연결된 컴퓨터끼리 데이터를 원활하게 교환하기 위한 목적으로 개발되었다. 인터넷을 통해 한 컴퓨터에서 다른 컴퓨터로 파일을 전송할 수 있도록 하는 방법과 그런 프로그램을 모두 일컫는 말로 사용되고 있다.[1] 네트워크에서 사용하는 프로토콜 중에서 드문 경우로 제어 채널과 전송 채널이 분리되어 있는 경우가 있다. 이를 쉽게 풀어 설명하자면 여기에 전화기 한 대와 팩스 한 대가 있다. 이 둘 중에 전화기로는 현재 가지고 있는 자료에 관해서 물어보는 일을 하고, 팩스로는 요청된 필요한 자료들을 전송받는 일을 하는 형태이다. FTP를 사용하여 데이터를 주고받으려면 FTP 서버와 FTP 클라이언트가 필요하다. 원래의 목적이 데이터 교환에 중점을 둔 것으로 개발되었기에 안전성과 신뢰성이 보장된다. 그렇기 때문에 회사나 동아리 같은 곳에서 FTP 서버를 하나만 구축해 두어도 자료를 공유하는데 상당히 유용한 수단이 된다. 하지만 국내의 경우에 자료를 공유하기 위한 대안이 워낙에 많이 존재하다 보니, 있으면 유용하게 쓰이지만 없어도 신경 쓰이지 않는 수준이다. 많은 FTP 클라이언트들이 좋은 GUI 환경을 제공한다. GUI 환경에서 작동하는 FTP 클라이언트들은 단지 명령어들을 자동으로 전송해 주는 역할을 할 뿐이다. 이런 형태의 FTP 클라이언트는 GUI를 사용하지 못하는 환경에서 지금도 매우 널리 사용되고 있다. 특히 유닉스(UNIX) 계열 서버를 관리하는 관리자들에게는 텔넷 및 SSH와 함께 필수로 익혀야 하는 영역이다.
웹 브라우저도 FTP를 지원하는데, 위의 명령어 입력 방식이 어려운 경우에 이 방법을 사용할 수 있다. 인터넷 주소창에 http:// 대신에 ftp:// 를 붙이고 FTP 서버 주소를 치면 ID와 비밀번호를 입력하는 화면이 나오고, 그걸 입력해서 들어가면 브라우저 화면에 FTP 서버의 파일 리스트들이 링크 형태로 나온다. 이것은 대용량 파일 전송이 웹에서 사용하는 HTTP 프로토콜보다 파일 전송용으로 만들어진 FTP 프로토콜의 유리한 점이 더 많기 때문이다. 하지만 이것은 마이크로소프트 엣지(Microsoft Edge)에서는 지원하지 않는다.
1990년대에 대부분의 소프트웨어 업체나 게임 업체 등이 별도의 FTP 서버를 구축하고 익명의 접속을 허용한 후에 자신들이 개발한 프로그램의 셰어웨어나 데모 버전, 패치 등을 공개하곤 하였다. 그 당시에는 지금과 같이 인터넷이 발달해 있는 상태가 아니었기에 FTP 말고는 불특정 다수에게 효과적으로 자료들을 배포할 수단이 거의 존재하지 않았다. 외국의 다른 게임 회사들은 대부분 비슷한 방식으로 FTP 서버를 운용하는 곳이 있었는데, 간혹 예전에 발매되었던 게임들을 FTP에서 무료로 다운받을 수 있는 경우도 존재하니 찾아보는 것도 나쁘지는 않다. 다만 지금은 자사 웹 사이트에서 공개하는 방법이 여러모로 이득이며 패치 같은 것들은 프로그램 내에 패치 업데이트를 위한 프로그램들을 내장시키는 경향이다. 또한, FTP에 대해 배우는 곳이 많지 않으며 사장 되어가고 있는 추세이다. 사실상 웹 기반 파일 전송 서비스로 완전히 대체 되었다. 리눅스 배포판과 각종 리눅스의 중요 오픈소스 소프트웨어들은 FTP로 배포되는 경우가 많다. yum이나 apt와 같은 각종 리눅스 저장소도 FTP로 운영되고 있는 상황이고, 유명 배포판의 경우에는 전 세계에 저장소 미러링 FTP 서버를 운영하는 경우가 많다. 한국 내에서는 카이스트, 다음, 네오위즈에서 운영하는 FTP 서버가 유명하다.[2]
역사 및 버전[편집]
- 1971년 : RFC114로 게시되었다.
- 1980년 : TCP/IP의 전신인 NCP 위에 실행되었다. RFC765 버전으로 대체되었다.
- 1985년 : RFC 959로 나옴. 제안된 일부 표준들은 개정하였다.
- 1994년 : RFC 1579로 방화벽 친화 FTP를 활성화
- 1997년 : RFC 2228은 보안확장을 제안한다.
- 1998년 : IPv6를 지원하고 새 수동모드를 정의한다.
특징[편집]
종류[편집]
FTP를 통해 파생형으로 FTP에 TLS 프로토콜이 적용된 FTPS가 있으며, 비슷한 기능을 제공하는 SSH 프로토콜 기반의 SFTP가 있다. SFTP는 FTP라는 키워드를 포함하고 있으며 용도 또한 같으나 FTP와 기술적인 연관성은 없는 완전히 다른 프로토콜임을 주의해야 한다. FTP는 비밀번호가 평문으로 전송되어 보안성이 매우 떨어지므로 FTPS를 사용하는 것을 적극 권장한다. FTPS의 경우 PROT P를 사용하면 데이터 전송까지 암호화되어 높은 보안성을 지니며, PROT C를 사용하면 데이터 전송을 암호화하지 않아 보안성이 떨어지지만 빠른 파일 전송이 가능하다. SFTP의 경우 포트를 하나만 사용하기 때문에 방화벽이 설치된 환경에서 세팅하기가 쉬워 초보자한테 권장되나, 프로토콜 구조상 PROT P를 사용한 FTPS보다 속도가 느리다는 결함이 있다. FTP와 FTPS는 보통 제어용으로 21번 포트 및 데이터 전송용으로 20번 포트를, 패시브 모드의 경우 50000번대 이상의 포트를 추가적으로 많이 사용하며 FTPS의 경우 990포트를 사용하는 경우도 있다. SFTP는 보통 22번 포트를 사용한다.[2]
동작원리[편집]
FTP의 동작 원리는 비교적 간단하다. FTP 서비스를 제공하는 서버와 여기에 접속하는 클라이언트 사이에 두 개의 연결이 생성되는데, 하나는 데이터 전송을 제어하기 위한 신호를 주고받기 위함이고(네트워크 21번 포트), 다른 하나는 실제 데이터 전송에 사용된다(네트워크 20번 포트). 여기서 네트워크 포트란 네트워크를 통해 데이터가 이동하는 통로를 말한다. 이를테면, FTP 서버에 접속할 때 입력하는 사용자 계정 및 암호 등의 정보나 파일 전송 명령 및 결과 등은 데이터 제어용 연결에서, 이후 실제 파일 송수신 작업(올리기, 내려받기)은 데이터 전송 연결에서 처리되는 것이다. FTP 클라이언트 프로그램은 여러 파일을 연속으로 송수신해야 하기에, 서버와의 지속적인 응답 메시지 전송을 통해 연결 상태(세션)를 유지한다.[3]
장단점[편집]
FTP는 인터넷을 통한 파일 송수신 만을 위해 고안된 서비스이기 때문에 동작 방식이 대단히 단순하고 직관적이다. 그런 만큼 사용법도 간단하다. 무엇보다 WWW 방식보다 파일을 빠른 속도로 한꺼번에 주고받을 수 있다는 것이 FTP의 가장 큰 장점이다. WWW의 경우 일반문자, 사진, 영상 콘텐츠를 간편하게 사용하지만 많은 양의 파일을 주고받기에는 느리고 파일제어도 힘들다.
다만 빠른 파일 전송이 주된 목적이기에 보통의 경우 사진이나 음악, 동영상 등의 멀티미디어 콘텐츠는 내려받기가 완료된 다음에 확인할 수 있다. WWW 환경에서는 내려받으며 재생이 가능하다. 또한, 기본적으로 명령어 기반의 통신 서비스이기 때문에, 별도의 FTP 클라이언트 프로그램(알드라이브←알FTP를 알드라이브로 변경)을 사용하지 않으면 사용이 복잡하고 어려울 수 있다. FTP는 보안 프로토콜을 위해서 계획된 것이 아니기 때문에 수많은 보안 취약점이 존재한다는 것도 FTP의 단점이다. 1999년 5월에 출간된 RFC 2577에서 저자들은 1)무차별 대입 공격 2)FTP 바운스 어택 3)패킷 가로채기 4)포트 훔치기 5)스푸핑 공격 6)사용자 이름 열거 등에 대한 취약점을 나열하였다. 파일 전송 프로토콜은 서버의 파일을 바꾸거나 지울 수 있기에 전송하기에 앞서 사용자의 이름과 암호를 묻는 과정이 필요하다. 그래서 FTP에서는 암호가 암호화되지 않는 위험이 있기에 원 타임(한 번만 묻는) 암호를 이용한 인증을 이용한다. 혹은 보안을 더욱 철저히 하게 하려면 SFTP나 SCP등 다른 방법을 사용하여 파일을 전송하는 것도 하나의 좋은 방법이다. [4]
활용[편집]
- 익명계정의 활용 : 사용자 암호나 계정 입력이 필요없이 하나의 공용 계정으로 모든 사용자가 접속이 가능하다. ‘anonymous’라는 계정에 자신의 이메일 주소를 암호로 입력하면 곧바로 FTP 서버에 접속하여 파일을 내려받을 수 있다.
- 수동 모드 연결과 SFTP 연결 : 능동(active) 모드와 수동(passive) 모드의 두 가지 데이터 접속 방식을 제공한다. 네트워크 20번과 21번포트의 경우 능동모드인데 보안장비(방화벽)에서 20번을 차단하는 경우에 출력문제가 발생한다. 수동모드는 20번포트가 아닌 데이터 전송 포트를 임의로 할당하여 데이터 전송을 진행할 수 있게한다.파일목록이 없으면 문의해야 한다. SFTP는 FTP 연결에 보안성이 강회되어서 해킹같은 보안문제를 미리 방지할수있다. 21번포트가 아닌 22번포트를 사용한다.
- 내 PC를 FTP 서버로 활용 : 윈도우나 리눅스에서 FTP서버로 설정하여 사용할 수 있는데 컴퓨터가 항상 켜져있어야 하고 서버 프로그램도 동작중이어야 한다. 공인 IP주소도 설정되야 한다.
- 아웃오브밴드(Out of band) : 파일을 전송하는 커넥션과 제어를 위한 커넥션을 다르게 하는 방식이다. 예를 들어, 21번 포트번호로 접속을 제어하고 파일을 전송할 시 20번 포트를 사용하는 방식이다. 21번 포트는 클라이언트와 서버의 접속이 끊길 때 까지 유지된다. 하지만 20번 포트는 파일을 주고받을 때 만 연결하는 방식이다.
클라이언트 목록[편집]
아래는 주요 FTP클라이언트 목록이다.
- 파일질라(FileZilla) : 파일 질라는 오픈 소스로, FTP, SFTP, FTPS를 지원하는 FTP 관리 소프트웨어다. 설치 및 사용 방법이 매우 간단하며 쉽게 사용할 수 있다. 또한, 한글도 지원한다. 설치 방법은 다음과 같다
- https://filezilla-project.org/ 에 접속하여 [Download FileZilla Client]를 선택한다.
- 다음 화면으로 넘어가면 운영체제에 맞는 [Download Filezilla Client ]를 선택하여 클릭하면 설치 파일이 다운로드 된다.
- 다운로드 받은 설치 파일을 연 다음, 별다른 설정이 필요 없다면 [I Agree] => [Next >]를 선택하여 설치를 마무리한다.
- 다음은 FTP 연결 방법이다.
- 설치 완료 후 프로그램에 접속하면 메인화면이 나오게 되는데,
- 리눅스 또는 다른 서버에 접속해보고자 한다면 상단 메뉴의 [파일] > [사이트관리자]를 연다.
- 사이트 관리자를 열면 나오는 화면에서 사이트 목록 밑에 [새 사이트(N)]를 클릭한다.
- 이제 내 컴퓨터에서 연결한 서버에 서버 1)HOST IP 2)포트 3)서버 접속 ID 4)비밀번호와 같은 접속 정보를 입력하면 해당 서버에 접속할 수 있다.
- 접속하게 되면 파일 질라 프로그램의 상단에 연결된 서버 IP가 나타나며 아래의 상태 창에 현재 연결된 사이트와 처음 보이는 디렉터리 주소가 나온다. 만약 접속이 실패한다면 상태 창에 접속 실패라고 출력되는데, 그렇다면 위에 입력한 정보를 잘못 적었거나 또는 해당 서버에서 접속을 막고 있을 수 있다.
- 접속이 완료되면 이제 사용자 컴퓨터와 서버 컴퓨터가 서로 파일 내용들을 주고받을 수 있다.
- 아래 그림으로 보면 왼쪽은 사용자 컴퓨터이고, 오른쪽은 서버 컴퓨터의 디렉터리 및 파일 목록이 나온다.
- 파일을 옮기고 싶다면 해당 파일을 더블 클릭이나 서버를 누른 상태에서 반대쪽으로 드래그하면 옮겨진다.[5]
- WinSCP : Windows Secure CoPy의 약자로 마이크로소프트 윈도우 용으로 개발되었다. 자유 및 오픈소스이며, SFTP, SCP 및 FTP 클라이언트다. 주요 기능으로는 로컬 및 원격 컴퓨터 간 보안 파일을 전송하는 기능이 있다. 그뿐 아니라 WinSCP는 기본적인 파일 관리자와 파일을 동기화하는 기능을 제공한다. 보안 전송의 경우에는 SSH를 사용하며, SFTP를 포함한 SCP프로토콜도 지원한다. CNET 에디터 점수로 만점을 받았으며 FTP 소프트웨어 인기도 분야에서는 2위를 차지하였다. 파일 질라와 마찬가지로 한국어를 지원한다.[6] [7]
- SmartFTP : FTP, FTPS, SFTP, WebDAV, Amazon S3, Backblaze B2, Google Drive, One Drive, SSH의 터미널 클라이언트이다. 이 프로그램은 사용자 컴퓨터와 서버 간의 파일 전송을 인터넷상에서 가능하게 도와주는 역할을 한다. 또한 안전하고 신뢰성과 효율성이 높다. 이 프로그램은 웹 사이트의 구축 및 유지와 보수에 유용하며, 이미지와 문서, 그리고 동영상 및 음악 파일의 업로드 및 다운로드를 용이하게 해준다. 파일 전송을 관리하며, 파일 전송 프로세스를 자동화한다. 그리고 로컬 및 원격 파일의 백업과 동기화가 가능하다.[8]
- 선샤인(Sunshine) : 한국 기업인 Spika에서 서비스하는 P2P 파일 공유 서비스로, 비트토렌트(Bittorrent) Sync와 대응된다. 일반적인 클라우드와는 다르게 스마트폰을 서버로 이용하기에, 용량 제한이 없다는 것이 장점이다. 그래서 자료 공유가 잦은 친구와의 파일 공유가 쉬운 편이다. 대부분의 기기에서 지원하였지만, 아쉽게도 2018년 12월 31일 자로 서비스가 종료되었다.[9]
- Windows 탐색기 : 일반적으로 로컬 파일 열람을 위해서 사용되는 프로그램이다. 하지만 주소 줄에 FTP 주소를 입력하면 FTP 클라이언트처럼 사용할 수 있다. 그러나 기능은 허접하다. 따로 설치되어있는 클라이언트가 없을 때 잠깐 사용할 용도로서는 괜찮다.
- Xftp : 넷사랑컴퓨터에서 개발한 파일 전송 클라이언트로, FTP와 SSH의 확장 기능인 SFTP 프로토콜을 지원한다. 윈도우즈 탐색기와 거의 유사한 구조로 설계되어 있으며, 탭 기반의 인터페이스를 가지고 있어 사용하기에 용이하다. 간결하고 직관적인 인터페이스를 가지고 있어 파일 전송과 관리가 가능하여 접근성이 좋다는 장점이 있지만, 현재는 입문용으로 파일질라를 이용하는 유저가 대다수라 인지도가 높은 상황은 아니다. 2020년 5월 21일에 6.0.0191 버전이 업데이트되었으며 버전 6 자체는 2018년 4월에 배포 되었다. 버전 6에서는 HiDPI나 고급 폴더 동기화를 지원한다. 버전 6을 기준으로 개인이나 학교만 무료로 사용이 가능하며 기업이나 관공서 등은 정식 라이선스 구매가 필요하다. 넷사랑컴퓨터의 제품 중 Xmanager Power Suite 또는 Xshell Plus 제품을 구매하면 같은 회사의 제품과 Xshell이 포함된 번들로 설치가 가능하다. Xftp의 기능은 다음과 같다.
- 파일전송 프로토콜(SFTP, FTP)을 지원하고, SSH의 특수 사용자 인증을 지원하며, Xshell과 SSH의 연동이 가능하다.
- 별도의 세션 파일을 생성하여 세션 관리가 가능하다.
- Attach/Detach 가능한 탭 기반의 인터페이스이다.
- 폴더 동기화 기능을 지원하여 백업 및 미러 서버에 파일을 쉽게 비교하고 필터하여 업로드 할 수 있다.
- 같은 디렉토리간의 동기화 탐색이 가능하다.
- 마스터 암호 기능을 지원하여 세션 간의 암호를 하나의 암호로 암호화 할 수 있다.
- 유저 편의 기능으로는 다음이 있다.
- 버전 6부터 테마 변경이 가능하다.
- 폴더 북마크 기능을 지원하여 미리 지정한 경로로 빠르게 이동 가능하다.
- 전송 로그 창을 지원한다.
- FTP 명령을 입력할 수 있다.
- 원격 파일을 윈도우로 불러와 실행할 수 있다.
- 파일 및 디렉터리 권한의 수정이 가능하다.[10]
- 알 드라이브 : 이스트소프트에서 개발된 프로그램으로, 널리 사용되지만, 업데이트가 뜸하며 뭔가 문제가 많다.
- 레이 드라이브(RaiDrive) : 오픈박스 연구소에서 개발한 윈도우용 클라우드 스토리지 게이트웨이 소프트웨어(Cloude Storage Gateway)로, 윈도우의 기본 기능으로 연결할 수 없는(어려운) 원격 스토리지를 원도우 파일 탐색기의 네트워크 드라이브로 만들어주는 것이 핵심 기능이다. 중소기업청의 2015년 창업 성장 기술 개발사업에 선정된 기술을 바탕을 제품개발이 시작되었으며 2017년에 최초 버전이 출시되었다. 클라우드 스토리지와 표준 프로토콜을 지원하는 장비를 외부에서 원격으로 연결이 가능하다. 개인, 기업, 교육용 클라우드 스토리지를 모두 지원한다. 또한, 표준 프로토콜을 지원하는 NAS, 공유기, 서버와도 연결이 가능하다. 지원하는 클라우드 스토리지가 많은 편에 속하는데, 대표적으로 구글 드라이브와 구글 포토, 드롭박스, 네이버 오브젝트 스토리지, 그리고 아이비엠 오브젝트 스토리지를 지원한다. 지원하는 표준 프로토콜로는 WebDAV와 FTP,SFTP가 있다.[11]
- ipDISK Drive : EFM 네트웍스의 ipTIME 공유기를 이용한 간이 FTP 서버를 위한 전용 클라이언트로서, 드라이브 문자열을 지정하여 FTP 서버를 이동식 디스크처럼 인식시키는 기능이 있다. 이로 인해 윈도우 탐색기에서 편리하게 사용이 가능하지만 서버에 연결된 저장장치의 용량이 제대로 표시되지 않는 문제가 있다.[2]
각주[편집]
- ↑ 리치해커 SCOTT, 〈FTP에 대한 간단 정리〉, 《네이버 블로그》, 2017-01-01
- ↑ 2.0 2.1 2.2 나무위키 FTP - https://namu.wiki/w/FTP
- ↑ 카메라맨, 〈FTP란 무엇인가?.〉, 《네이버블로그》, 2012-04-02
- ↑ 위키백과 파일 전송 프로토콜 -https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%BC_%EC%A0%84%EC%86%A1_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C
- ↑ 버물버물리,〈FTP 소프트웨어 사용 ( FileZilla, 파일질라)〉, 《티스토리》, 2018-04-17
- ↑ WinSCP, 〈WinSCP 소개〉, 《WinSCP》
- ↑ 위키백과 WinSCP -https://ko.wikipedia.org/wiki/WinSCP
- ↑ SmartFTP,〈SmartFTP 란?〉, 《SmartFTP》
- ↑ 나무위키 Sunshine(앱) - https://namu.wiki/w/Sunshine(%EC%95%B1)
- ↑ 나무위키 Xftp - https://namu.wiki/w/Xftp#rfn-5
- ↑ 나무위키 RaiDrive -https://namu.wiki/w/RaiDrive
참고자료[편집]
- 〈파일 전송 프로토콜〉, 《위키백과》
- 존 마틴 데일, 〈FTP란 무엇입니까?〉, 《DIGITAL TRENDS》, 2019-03-30
- 〈FTP〉《나무위키》
- 카메라맨, 〈FTP란 무엇인가?〉, 《네이버 블로그》, 2012-04-02
같이 보기[편집]