FTP와 SFTP 소개 및 비교

FTP(파일 전송 프로토콜)와 SFTP(SSH 파일 전송 프로토콜)는 네트워크를 통해 파일을 전송하는 두 가지 방법입니다. 이 두 프로토콜은 파일 전송을 위해 사용되지만, 보안, 인증 및 전송 방식에 있어서 차이점이 있습니다.

FTP (File Transfer Protocol)

FTP는 네트워크를 통해 파일을 전송하기 위해 사용되는 표준 프로토콜입니다. 클라이언트-서버 모델을 기반으로 하며, 주로 인터넷을 통해 파일을 업로드하거나 다운로드하는 데 사용됩니다.

주요 특징은 다음과 같습니다.

비암호화 전송

  • 기본적으로 FTP는 데이터를 암호화하지 않고 전송합니다. 이로 인해 전송 중에 데이터가 도청될 가능성이 있습니다.

포트 사용

  • FTP는 제어 연결을 위해 포트 21을 사용하고, 데이터 전송을 위해 별도의 포트를 사용합니다. 기본적으로 포트 20이 데이터 전송에 사용되지만, 이는 PASV(수동) 모드에서는 다를 수 있습니다.

명령어 기반

  • FTP는 다양한 명령어를 사용하여 서버와 상호 작용합니다.

익명 접근

  • 일부 FTP 서버는 익명 사용자 접근을 허용하여, 사용자 인증 없이 파일을 다운로드할 수 있게 합니다.

모드

  • 액티브 모드 : 서버가 데이터 연결을 클라이언트에 직접 개설합니다.
  • 패시브 모드 : 클라이언트가 데이터 연결을 서버에 개설합니다.

SFTP (SSH File Transfer Protocol)

SFTP는 SSH(보안 셸) 프로토콜을 통해 파일 전송을 수행하는 프로토콜로, FTP와는 다르게 데이터와 명령어를 암호화하여 전송합니다. 이는 SSH의 확장으로 간주될 수 있습니다.

주요 특징은 다음과 같습니다.

암호화 전송

  • 모든 데이터 전송이 SSH 프로토콜을 통해 암호화되어 보안성이 높습니다. 이는 전송 중 데이터 도청 및 변조를 방지합니다.

단일 포트 사용

  • SFTP는 SSH와 동일한 포트(기본적으로 포트 22)를 사용하여 제어 및 데이터 전송을 모두 수행합니다.

SSH 인증

  • SFTP는 SSH 프로토콜을 사용하여 사용자 인증을 수행합니다. 이는 비밀번호 기반 인증, 공개 키 인증 등 다양한 인증 방법을 포함합니다.

명령어 기반

  • SFTP는 자체 명령어 셋을 사용하여 파일 전송 작업을 수행합니다. 이는 FTP와 다르지만, 전송 작업은 비슷하게 수행됩니다.

보안 기능

  • SFTP는 SSH의 보안 기능을 모두 상속받아 데이터 무결성 및 기밀성을 보장합니다.

주요 차이점

보안

  • FTP : 데이터가 암호화되지 않은 상태로 전송되므로 보안에 취약합니다.
  • SFTP : SSH를 통해 암호화된 채널로 데이터를 전송하므로 높은 보안성을 제공합니다.

포트 사용

  • FTP : 제어 연결에 포트 21을 사용하며, 데이터 전송을 위해 추가 포트를 사용합니다.
  • SFTP : 제어 및 데이터 전송 모두를 위해 포트 22를 사용합니다.

사용 용도

  • FTP : 보안이 크게 요구되지 않는 환경에서 주로 사용됩니다.
  • SFTP : 보안이 중요한 환경에서 주로 사용됩니다.

인증 방법

  • FTP : 기본적으로 사용자 이름과 비밀번호를 사용한 간단한 인증 방식을 사용합니다.
  • SFTP : SSH 프로토콜의 다양한 인증 방법을 사용합니다(예: 공개 키 인증).

마치며

FTP와 SFTP는 각각 파일 전송을 위한 유용한 도구이지만, 보안 요구사항에 따라 선택이 달라질 수 있습니다. 보안이 중요한 환경에서는 SFTP가 더 적합하며, FTP는 보안이 덜 중요한 환경에서 사용될 수 있습니다. 이 두 프로토콜의 장단점을 이해하고, 사용 환경에 맞게 적절한 프로토콜을 선택하는 것이 중요합니다.

참고

같은 카테고리의 다른 글

네트워크 / NAT(Network Address Translation)

NAT는 네트워크 주소 변환을 의미하며, 네트워크 트래픽의 IP 주소를 변환하는 기술입니다. 주로 사설 네트워크(Private Network)와 공인 네트워크(Public Network) 간의 통신을 가능하게 하기 위해 사용됩니다. NAT는 보안, 주소 공간 절약, 그리고 네트워크 확장을 위해 필수적인 기능으로 널리 활용됩니다. NAT의 주요 기능 IP 주소 절약: IPv4 주소의 고갈 문제를 해결하기 위해 사설 IP 주소(Private IP)와 공인 IP 주소(Public ...

DNS / DMARC 레코드의 용도와 설정하는 방법

DNS / DMARC 레코드의 용도와 설정하는 방법

DMARC란? DMARC는 Domain-based Message Authentication Reporting and Conformance의 약자이다. DNS 레코드를 이용하여 메일이 해당 도메인에서 정상적으로 발송되었음을 증명하는 방법에는 SPF, DKIM이 있다. SPF와 DKIM 테스트를 통과하지 못한 메일에 대해서 어떻게 처리했으면 하는지를 DMARC 레코드로 수신 메일 서버에 알려준다. DMARC 레코드에 대한 자세한 내용은 RFC 7489 문서에 있다. DMARC 레코드 설정하는 방법 DMARC 레코드는 TXT 레코드로, 호스트는 ...

브랜드 로고 공식 배포 주소

브랜드 로고 공식 배포 주소

로고를 다운로드 받을 수 있는 공식 주소를 정리한다. 로고 사용에 대한 가이드라인이 있으므로, 공식 주소에서 다운로드하는 것이 좋다. Bootstrap https://getbootstrap.com/docs/5.0/about/brand/ Facebook https://www.facebook.com/brand/resources/facebookapp/logo Facebook Messenger https://www.facebook.com/brand/resources/messenger/messenger-brand HTML5 https://www.w3.org/html/logo/ Intagram https://www.facebook.com/brand/resources/instagram/instagram-brand jQuery https://brand.jquery.org/logos/ Kakao Story Channel https://ch.kakao.com/login LinkedIn https://brand.linkedin.com/downloads MariaDB https://mariadb.com/about-us/logos/ Naver https://logoproject.naver.com/logonaver Naver Band https://developers.band.us/develop/guide/share Naver Line https://line.me/en/logo PHP https://www.php.net/download-logos.php Pinterest https://business.pinterest.com/ko/brand-guidelines/ Python https://www.python.org/community/logos/ Samsung https://www.samsung.com/sec/about-us/brand-identity/logo/ Sass https://sass-lang.com/styleguide/brand Twitter https://about.twitter.com/en/who-we-are/brand-toolkit Visual Studio Code https://code.visualstudio.com/brand YouTube https://www.youtube.com/howyoutubeworks/resources/brand-resources/  

네트워크 / TTL(Time To Live)

네트워크 / TTL(Time To Live)

개요 TTL은 Time To Live의 약자로, IP 패킷 헤더의 한 필드이다. TTL 필드는 패킷이 네트워크를 통해 전달될 때 패킷이 머무를 수 있는 최대 홉(hop) 수를 지정한다. 이 필드는 패킷이 무한히 순환하지 않도록 방지하는 데 사용된다. TTL의 동작 방식은 다음과 같다. 패킷이 네트워크를 통해 전송될 때 송신자는 TTL 값을 설정한다. 이 값은 일반적으로 64, ...

디아블로 2 / 16자리 시디키 26자리로 변환하는 방법

디아블로 2 / 16자리 시디키 26자리로 변환하는 방법

방을 정리하다가 디아블로 2 시디들을 발견했습니다. 추억의 게임이네요. 1999년에 구입한... 찾은 김에 PC에 설치를 해보려고 했는데, PC에 시디롬이 없습니다. 요즘은 시디롬이 있는 PC나 노트북을 찾기 힘들죠. 다른 방법이 있나 찾아보니 블리자드 홈페이지에서 설치 파일을 다운로드할 수 있다고 합니다. 그런데, 그걸로 설치하려면 26자리 시디키가 필요합니다. 갖고 있는 건 16자리 시디키인데... 역시나 방법이 있습니다. ...

미디어 인코더 / 동영상을 움직이는 GIF로 만드는 방법

미디어 인코더 / 동영상을 움직이는 GIF로 만드는 방법

동영상을 움직이는 GIF로 만드는 방법은 여러 가지가 있습니다. 그 중 하나는 Adobe Media Encoder를 사용하는 것입니다. Adobe Premiere를 설치하면 같이 설치되는 프로그램이고, Premiere 없이 단독으로 설치할 수도 있습니다. Adobe Media Encoder를 실행하고, 대기열의 + 아이콘을 클릭하여 변환할 동영상을 추가합니다. 출력물을 애니메이션 GIF로 설정하고 변환하면 잠시 후 GIF가 생성됩니다.

인터넷 속도 단위 Mbps와 MB와의 관계

인터넷 속도 단위인 Mbps는 Mega Bits Per Second의 약자로, 1초당 전송하는 Mega Bit의 양입니다. 예를 들어 인터넷 속도가 100Mbps라고 하면 1초당 100 Mega Bits를 전송한다는 뜻입니다. 그런데 파일의 크기는 Byte를 단위로 사용합니다. 예를 들어 3MB 크기의 파일이라고 하면 3 Mega Bytes를 의미합니다.

우리은행 / 자동이체 조회하는 방법, 해지하는 방법

우리은행 / 자동이체 조회하는 방법, 해지하는 방법

요금이나 적금 등을 납부할 때 자동이체를 많이 이용합니다. 납부일을 놓힐 위험도 없고 편하고... 하지만 경우에 따라서 자동 이체를 해지하거나 계좌를 변경해야 하는 일이 발생할 수 있는데, 은행 영업점에 방문하거나 전화하지 않아도 처리할 수 있습니다. 모든 은행이 가능한지는 모르겠으나, 우리은행은 가능합니다. 다음은 우리은행 모바일 앱인 우리 WON 뱅킹에서 자동이체를 조회하고 해지하고 등록하는 ...

Apache / 디렉토리 안에 있는 디렉토리 또는 파일 목록 출력하는 방법

Apache / 디렉토리 안에 있는 디렉토리 또는 파일 목록 출력하는 방법

URL이 정확히 입력되지 않은 경우 보통 다음처럼 Forbidden 에러가 납니다. 이 에러 대신 해당 디렉토리에 있는 파일과 하위 디렉토리 목록이 나오게 하고 싶다면, 설정에 다음 코드를 추가합니다. Options +Indexes

스팀 / 게임 숨기기, 숨긴 게임 보기

스팀 / 게임 숨기기, 숨긴 게임 보기

언제할지도 모르면서 세일할 때 하나씩 사다보니 스팀에서 산 게임이 많아지고 있습니다. 그 중에는 엔딩까지 봐서 다시는 안 할 게임도 있고, 사긴 했지만 정말 언제 할지 모를 게임도 있고, 원래 것과 리마스터가 같이 있는 것도 있습니다. 그러다보니 라이브러리에 하지도 않을 게임이 잔뜩 보이는데요... 다행히도 목록에서 그 게임들을 숨길 수 있습니다. 방법은... 게임을 선택하고 ...