본문 바로가기
Data Analysis/Computer Science

FTP / SFTP(SSH파일전송프로토콜)/ FTPS / SMTP / TCP/IP & FileZilla

by Hagrid 2023. 5. 9.
반응형

FTP / SFTP(SSH파일전송프로토콜)/ FTPS / SMTP / TCP/IP & FileZilla

0. 프로토콜

  • 프로토콜은 네트워크 상에서 컴퓨터나 장치들이 서로 통신하기 위해 사용하는 규칙의 집합( 전자기기가 서로 통신하는데 필요한 절차나 규칙)입니다. 이 규칙은 컴퓨터나 장치들이 데이터를 교환하는 방법, 데이터가 전송되는 시간 및 순서, 오류 발생 시 처리 방법 등을 정의합니다. 프로토콜은 서로 다른 컴퓨터나 장치들이 효율적이고 안정적으로 통신할 수 있도록 보장합니다.
  • 인터넷에서 사용하는 프로토콜에는 HTTP, FTP, SMTP, TCP/IP 등이 있습니다. 예를 들어, HTTP 프로토콜은 웹 브라우저와 웹 서버 간에 데이터를 교환하는 데 사용되며, FTP 프로토콜은 파일 전송을 위한 규칙을 정의합니다. SMTP는 이메일 전송을 위한 프로토콜로, 이메일 클라이언트와 이메일 서버 간의 통신을 담당합니다. TCP/IP는 인터넷에서 데이터를 전송하기 위한 규칙을 제공하며, 이는 인터넷에서 가장 많이 사용되는 프로토콜 중 하나입니다.
  • 프로토콜은 컴퓨터와 장치 간에 데이터를 안전하고 신속하게 전송할 수 있도록 보장합니다. 따라서 컴퓨터와 장치들이 서로 다른 프로토콜을 지원할 때는, 서로 이해할 수 있는 프로토콜을 사용하여 통신을 해야 합니다.

예시

  • 예를 들어, HTTP 프로토콜을 사용하는 웹 브라우저는 웹 서버에 요청을 보내고, 서버는 요청에 대한 응답을 제공합니다. 이를 통해 웹 브라우저는 웹 페이지를 표시할 수 있습니다. 이 과정에서 HTTP 프로토콜이 사용됩니다.
  • 또 다른 예시로는 SMTP 프로토콜을 사용하는 이메일 전송이 있습니다. 이메일 클라이언트는 SMTP를 사용하여 이메일 서버에 이메일을 전송하고, 이메일 서버는 SMTP를 사용하여 수신자의 이메일 서버로 이메일을 전달합니다. 이를 통해 이메일을 보내고 받을 수 있습니다.
  • FTP 프로토콜을 사용하는 파일 전송도 예시 중 하나입니다. FTP 클라이언트는 FTP 서버에 파일 전송을 요청하고, 서버는 요청에 대한 응답을 제공합니다. 이를 통해 파일을 업로드하거나 다운로드할 수 있습니다.

1. FTP

  • FTP(File Transfer Protocol)는 파일 전송을 위한 프로토콜로, 파일을 업로드하거나 다운로드하는 데 사용됩니다. FTP는 클라이언트-서버 모델을 사용하며, 클라이언트는 원격 서버로 파일을 업로드하거나 다운로드하는 데 사용됩니다.
  • 이는 원격 서버와 클라이언트 간의 데이터 전송을 위한 간단하고 효과적인 방법으로, 일반적으로 HTTP나 SMTP와 같은 다른 인터넷 프로토콜에 비해 전송 속도가 더 빠릅니다.
  • 그러나 FTP는 데이터를 암호화하지 않고 전송하기 때문에, 데이터가 노출될 위험이 있습니다. 이는 보안 문제를 야기할 수 있는데, 중요한 데이터가 전송되는 경우 다른 사람이 데이터를 캡처하거나 엿듣기를 할 수 있기 때문입니다.
    • 또한 FTP는 클라이언트와 서버 간의 연결을 유지하는 동안 비밀번호 등의 중요 정보도 노출될 위험이 있습니다.
    • 이러한 문제를 해결하기 위해 FTPS나 SFTP와 같은 안전한 프로토콜을 사용하는 것이 좋습니다.
  • FTPS는 SSL/TLS 프로토콜을 사용하여 데이터를 암호화하고 보호하며, SFTP는 SSH 프로토콜을 사용하여 데이터를 보호합니다.
    • 이를 통해 FTP와 마찬가지로 파일 전송을 수행할 수 있지만, 데이터의 안전성과 보안이 보장됩니다. 따라서 보안적인 이슈가 있는 경우, FTPS나 SFTP를 사용하는 것이 좋습니다.
    • FTPS와 SFTP는 모두 FTP를 보안하고 개선한 프로토콜로, 안전하고 신뢰성 높은 파일 전송을 위해 사용됩니다.

2. SFTP

  • SFTP는 SSH 프로토콜을 사용하여 암호화된 파일 전송을 제공합니다. SSH는 인터넷 상에서 안전한 채널을 생성하는 프로토콜이므로 SFTP는 안전하고 신뢰성 높은 파일 전송을 가능하게 합니다.
    • SFTP는 FTP와는 다른 프로토콜로, SSH(Secure Shell) 프로토콜을 사용하여 데이터를 보호합니다. SSH는 인터넷에서 안전한 데이터 전송을 위한 프로토콜로, 데이터를 암호화하여 보호합니다. SFTP는 FTP와는 다르게 파일 전송을 위한 새로운 프로토콜이므로, FTPS보다 더 안전하고 보안적인 측면에서 우위에 있습니다.

SSH ?

  • SSH(Secure Shell)는 인터넷에서 안전한 데이터 전송을 위한 프로토콜로, 데이터를 암호화하여 보호합니다.
  • FTP와는 달리 SSH는 인증과 암호화가 동시에 이루어지기 때문에 더욱 안전하고 보안적인 측면에서 우위에 있습니다.
    • 예를 들어, SSH를 사용하는 경우에는, SSH 클라이언트가 SSH 서버에 접속하기 위해서는 먼저 인증 과정을 거쳐야 합니다. 이 인증 과정에서는 SSH 클라이언트와 SSH 서버 간의 암호화된 통신이 이루어지며, 사용자의 비밀번호와 같은 중요한 정보를 안전하게 보호합니다.
    • 또한, SSH는 데이터 전송시 암호화된 채널을 사용하기 때문에, 중간에 제3자가 데이터를 가로채더라도 복호화할 수 없습니다. 따라서, SSH를 사용하는 경우에는 데이터의 안전성이 더욱 보장됩니다.
    • 반면에 FTP는 데이터 전송시 암호화되지 않기 때문에, 데이터가 가로채질 경우 중요한 정보가 노출될 가능성이 있습니다. FTPS와 같은 암호화된 FTP 프로토콜을 사용하면, 데이터를 암호화하여 보호할 수 있지만, SSH와 같은 안전한 프로토콜과 비교하면 보안적인 측면에서는 아쉬운 부분이 남아있습니다.
  • 따라서, 중요한 데이터를 전송하는 경우에는 SSH와 같은 안전한 프로토콜을 사용하는 것이 더욱 안전합니다.
  • SSH(Secure Shell)는 1995년에 트로이 마켄지(Tatu Ylönen)라는 핀란드의 컴퓨터 보안 전문가가 개발하였습니다. 그는 원격 접속을 보호하기 위해 SSH를 개발하였습니다.

왜 FTP는 암호화를 하지 않나 ?

  • FTP는 최초의 인터넷 프로토콜 중 하나이며, 초기 디자인 당시에는 네트워크 보안에 대한 이슈가 크지 않았기 때문에 암호화 기능이 포함되지 않았습니다.
    • 그리고 FTP는 파일 전송에 초점을 맞춘 프로토콜이기 때문에, 세션 중간에 파일 전송 속도를 늦추거나 멈출 수 있기 때문에, 암호화 기능을 추가하면 이러한 기능을 방해할 가능성이 있었습니다.
  • 하지만 시간이 흘러보면서 인터넷 보안에 대한 이슈가 증가하면서 FTP 보안 취약점이 발견되었습니다.
  • 특히, FTP는 사용자 이름과 비밀번호를 평문으로 전송하기 때문에, 중간에 제3자가 이를 가로채면 정보가 노출될 가능성이 큽니다. 이러한 보안 취약점을 보완하기 위해, SSL/TLS 프로토콜과 함께 사용하는 FTPS와 SFTP 등의 보안 프로토콜이 개발되어 사용되고 있습니다.
  • 따라서 FTP는 초기 디자인 당시에는 보안 이슈에 대한 고려가 부족했지만, 보안 취약점이 발견되면서 보안 프로토콜이 추가되어 보안성이 강화되고 있습니다. 그러나 FTP를 사용할 때는, 중요한 데이터나 파일은 SSL/TLS와 같은 암호화 프로토콜을 사용하여 안전하게 전송하는 것이 좋습니다.

3. FTPS

  • FTPS는 FTP 프로토콜의 확장으로, SSL/TLS 프로토콜을 사용하여 데이터를 암호화하고 보호합니다. FTPS는 데이터 전송 시 보안을 유지할 수 있으며, SSL/TLS 프로토콜을 사용하여 클라이언트 및 서버 간의 연결을 안전하게 유지할 수 있습니다.
    • FTPS는 FTP와 TLS(Transport Layer Security) 또는 SSL(Secure Sockets Layer)을 결합한 프로토콜입니다.
    • TLS와 SSL은 인터넷에서 데이터를 안전하게 전송하기 위한 프로토콜로, 데이터를 암호화하여 보호합니다. FTPS를 사용하면 FTP와 마찬가지로 파일 전송을 수행할 수 있지만, 데이터의 안전성과 보안이 보장됩니다.
  • 예를 들어, 은행에서는 고객의 개인 정보와 금융 거래 정보를 안전하게 전송하기 위해 FTPS를 사용합니다. 고객이 인터넷 뱅킹을 통해 계좌 정보를 열람하거나 송금을 할 때, 개인 정보와 금융 거래 정보는 FTPS 프로토콜을 이용하여 암호화되어 전송됩니다. 이를 통해, 제3자가 고객의 정보를 가로채더라도 데이터를 복호화하여 읽을 수 없습니다.
    • 공개키 암호화 방식 예시 (한 쌍의 키는 서로 매우 복잡한 수학적인 관계를 맺고 있습니다.)
      • 암호화와 복호화를 위한 키가 각각 다른 방식으로 생성되어, 암호화된 데이터를 복호화하기 위해서는 해당 데이터를 암호화한 사람의 비밀키를 알아야 합니다.
      • 예를 들어, TLS/SSL 프로토콜을 이용하여 데이터를 암호화할 때, 클라이언트와 서버는 각각 공개키와 비밀키를 가지고 있습니다. 클라이언트는 서버의 공개키를 이용하여 데이터를 암호화하고, 서버는 자신의 비밀키를 이용하여 데이터를 복호화합니다. 이를 통해, 데이터가 안전하게 전송되며, 제3자가 데이터를 가로채더라도 복호화할 수 없습니다.
      • TLS/SSL 프로토콜에서는 암호화 방식으로 대칭키 암호화 방식도 사용됩니다. 대칭키 암호화 방식은 암호화와 복호화에 같은 키를 사용합니다. 따라서, 데이터를 암호화하는 측과 복호화하는 측이 같은 키를 공유해야 합니다. 대칭키 암호화 방식은 공개키 암호화 방식보다 속도가 빠르지만, 키를 공유해야 하기 때문에 보안성이 떨어지는 단점이 있습니다.
      • 비유적으로 설명하자면, 공개키 암호화 방식은 일반적인 우편물을 보낼 때 봉투에 글씨를 쓰고, 보낸 사람이 봉투를 봉인하는 것과 비슷합니다.
        • 보내는 사람은 봉투에 글씨를 쓰는 것처럼 데이터를 암호화하고, 받는 사람은 봉투를 뜯는 것처럼 데이터를 복호화합니다. 이때, 봉투를 뜯을 수 있는 열쇠는 보낸 사람에게만 있기 때문에, 제3자는 봉투의 내용을 볼 수 없습니다.
      • 대칭키 암호화 방식은 봉투에 글씨를 쓴 뒤, 보낸 사람과 받는 사람이 같은 열쇠를 사용하여 봉투를 열고 닫는 것과 비슷합니다. 이때, 열쇠를 가진 사람이 제3자에게 열쇠를 노출시키면, 제3자도 봉투를 열어 내용을 확인할 수 있기 때문에, 열쇠를 안전하게 보관하는 것이 매우 중요합니다.
  • 또한, 기업에서는 서로 다른 지사 간에 중요한 문서나 파일을 안전하게 전송하기 위해 FTPS를 사용합니다. 이를 이용하면, 전송되는 데이터가 암호화되어 중간에 제3자가 가로채더라도 데이터를 복호화하여 읽을 수 없습니다. 이를 통해, 기업 내부의 보안성을 높이고 데이터 유출을 방지할 수 있습니다.

SSH와의 차이점은 ?

  • SSH는 파일 전송 뿐만 아니라, 원격 접속 및 터미널 작업 등 다양한 작업에 사용됩니다. 예를 들어, 서버 관리자가 원격으로 서버에 접속하여 명령어를 실행하거나, 원격으로 파일을 복사하는 경우에 SSH를 사용합니다.
  • 사용하는 환경과 용도에 따라 FTPS와 SSH 중 적합한 것을 선택하여 사용해야 합니다. 보안성이 더 강조되는 경우에는 FTPS를, 다양한 작업에 사용해야 하는 경우에는 SSH를 선택하는 것이 좋습니다.

4. TCP/IP

  • TCP/IP(Transmission Control Protocol/Internet Protocol)는 인터넷에서 데이터를 전송하는 데 사용되는 프로토콜입니다. TCP는 데이터를 패킷으로 분할하여 전송하고, 패킷을 받은 수신측에서는 패킷을 재조립하여 데이터를 복원합니다. IP는 패킷을 전송하는 데 사용되며, 패킷의 출발지와 목적지를 식별하여 패킷을 전송합니다.
    • 패킷(Packet)은 네트워크 상에서 데이터를 전송할 때, 일정한 크기로 나누어진 작은 데이터 조각을 의미합니다.
    • 패킷은 송신자에서 수신자로 데이터를 전송할 때, 전체 데이터를 한번에 보내는 것이 아니라 여러 개의 작은 조각으로 분할하여 전송합니다.
    • 각 패킷은 출발지 IP 주소와 목적지 IP 주소, 데이터를 전송할 프로토콜 정보, 패킷의 일련번호 등의 정보를 포함하고 있습니다.
      • 이러한 정보를 포함하는 이유는, 네트워크 상에서 데이터가 유실되거나 손상되는 경우, 해당 패킷을 재전송하거나 복원하기 위해서입니다.
    • 패킷의 크기는 프로토콜이나 네트워크 환경에 따라 다를 수 있습니다.
      • 일반적으로 이더넷 네트워크에서는 최대 1500바이트의 패킷을 사용합니다.
      • 무선 네트워크에서는 1500바이트보다 작은 크기의 패킷을 사용합니다.
      • 패킷은 데이터를 효율적으로 전송하기 위한 핵심적인 기술로, 인터넷을 비롯한 다양한 네트워크에서 사용됩니다.

5. SMTP

  • SMTP(Simple Mail Transfer Protocol)는 인터넷에서 이메일을 전송하기 위해 사용되는 프로토콜 중 하나입니다. SMTP는 이메일 클라이언트가 이메일 서버에 메시지를 보내기 위한 표준 프로토콜입니다.
  • SMTP는 기본적으로 전송 전 인증 과정을 거치지 않으며, 이메일을 전송하기 위해서는 수신자의 이메일 주소, 메일 서버의 주소, 메일의 제목과 내용 등을 포함하는 메일 헤더와, 메일 내용을 포함하는 메일 본문을 작성해야 합니다. 이후에는 이메일 클라이언트에서 작성된 메시지가 SMTP를 이용하여 수신자의 메일 서버에 전송됩니다.

6. FileZilla

FileZilla란 무엇인가?

https://wiki.filezilla-project.org/FileZilla_Client_Tutorial_(en)

  • FileZilla는 FTP(파일 전송 프로토콜), SFTP(SSH 파일 전송 프로토콜), FTPS(SSL/TLS 암호화된 FTP)와 같은 다양한 프로토콜을 지원하는 무료 오픈 소스 FTP 클라이언트입니다.

FileZilla를 왜 쓰는가 ?

특징

  • FileZilla는 윈도우, macOS, 리눅스 등 다양한 운영체제에서 사용할 수 있으며, 사용자 인터페이스가 직관적이고 사용하기 쉽습니다.
  • FileZilla는 이러한 다양한 프로토콜을 지원하여 사용자가 파일 전송 시 보안과 신뢰성을 유지할 수 있도록 합니다. 사용자는 파일 전송 시 필요한 보안 수준을 선택하고, FileZilla가 제공하는 다양한 보안 기능을 활용할 수 있습니다. 이를 통해 안전하고 신뢰성 높은 파일 전송을 수행할 수 있습니다.

기능

  • FileZilla는 파일 전송을 위한 기본적인 기능뿐만 아니라, 파일 관리, 디렉토리 탐색, 파일 검색, 파일 보기 및 편집 등 다양한 기능을 제공합니다.
    • 또한, 다중 전송, 대량 파일 업로드/다운로드, 중단된 파일 전송의 재개 등의 기능을 지원하여 대용량 파일 전송에도 유용하게 사용할 수 있습니다.

보안

  • FileZilla는 보안적인 측면에서도 안전하며, 서버 인증서 검증, FTPS 및 SFTP 지원 등의 기능을 통해 데이터 전송 중에 데이터가 노출되는 것을 방지합니다. 따라서, 파일 전송을 위한 클라이언트 프로그램으로 널리 사용되고 있습니다.

FileZilla를 어떻게 사용하는가 ?

  1. FileZilla를 다운로드하고 설치합니다.
  2. FileZilla - The free FTP solution
  3. FileZilla를 실행하고, 메뉴 바에서 "파일(F)" -> "사이트 관리자(O)"를 클릭합니다.
    1. FileZilla를 실행하고 "사이트 관리자" 창에서 "새 사이트"를 클릭하여 원격 서버의 호스트 이름, 포트 번호, 프로토콜 유형 등 필요한 정보를 입력합니다. 이 때, FTPS나 SFTP를 사용하는 경우에는 보안 인증서를 확인해야 하므로, 보안 인증서를 가져와서 저장해두는 것이 좋습니다.
  4. "사이트 관리자" 창에서 "새 사이트"를 클릭합니다.
  5. "새 사이트"에 원격 서버의 호스트 이름, 포트 번호, 프로토콜 유형 등 필요한 정보를 입력합니다. 이 때, 사용자 이름과 비밀번호도 함께 입력합니다.
    1. 예시 - 프로토콜: SFTP
    2. 호스트: 서버 IPv4 주소 10.111 ~ 블라블라
    3. 포트번호: 22
    4. 로그온 유형: 일반
    5. 사용자: 아이디
    6. 비밀번호 : 비밀번호
    7. 배경색 지정 - 구분 가능 dev 랑 prd
    8. 연결버튼 누르기
  6. "연결" 버튼을 클릭하여 원격 서버에 연결합니다.
  7. 로컬 컴퓨터의 파일 탐색기에서 전송하려는 파일을 선택하고, 원격 서버의 파일 탐색기에서 전송할 위치를 지정합니다.
  8. 선택한 파일을 드래그 앤 드롭하여 전송합니다.
    1. 사이트를 추가한 후, "연결" 버튼을 클릭하여 원격 서버에 연결합니다. 연결이 완료되면, 로컬 컴퓨터와 원격 서버 간에 파일 전송이 가능합니다. 전송하려는 파일을 선택하고, 전송할 위치를 지정한 후에 선택한 파일을 드래그 앤 드롭하여 전송합니다.

대체할수 있는 것은 없나 ?

  • 대체할 수 있는 FTP 클라이언트로는 Cyberduck, WinSCP, Transmit, CuteFTP 등이 있습니다.
    • 이들 프로그램은 모두 사용하기 쉽고 안전한 FTP 클라이언트로, 각각의 장단점이 있습니다.
      • 예를 들어, Cyberduck는 macOS와 Windows에서 모두 사용할 수 있으며, S3와 같은 클라우드 스토리지와 연동이 가능합니다.
      • WinSCP는 Windows에서 사용할 수 있으며, SCP와 SFTP를 지원합니다.
      • Transmit은 macOS에서 사용할 수 있으며, 기능이 다양하고 사용이 편리합니다.
      • CuteFTP는 Windows에서 사용할 수 있으며, 대용량 파일 전송 및 다중 파일 전송 기능이 강점입니다.
  • 이들 프로그램은 모두 FTP, SFTP, FTPS와 같은 다양한 프로토콜을 지원하며, 각각의 장점을 가지고 있습니다. 따라서, 사용자의 용도와 취향에 따라 적합한 FTP 클라이언트를 선택하여 사용할 수 있습니다.
 
반응형

댓글