FTP, SSH, SFTP

seunghyun·2024년 1월 10일
0

Yougle

목록 보기
14/15

요구사항

FileZilla SFTP를 사용하여 리눅스 클라우드에 윈도우 파이썬 프로젝트 및 MongoDB 등 데이터베이스 옮기기


FTP

FTP 란?

FTP는 File Transfer Protocol로 말 그대로 파일을 전송하는 통신 규약입니다.

원격에 있는 서버에 파일을 주고 받을 때 사용하는 인터넷 통신 규약인데 내 컴퓨터에 있는 파일을 계정을 제공하는 서버로 파일을 서로 이동시키는 것을 말합니다. 여기에 보안이 추가된 SFTP가 있습니다.

기본 포트는 21이지만 바꿔서 사용하는 경우도 있겠고요, 옛날엔 좀 사용했는데 지금은 보안이 안좋아서 실무에서는 사용하지 않습니다.

FTP는 서버에서 서비스를 열면 클라이언트에서 접속을 해서 명령어들을 이용해서 데이터(파일)를 가져가거나 업로드하거나 그런건데,

예를 들어 철수(서버)와 영희(클라이언트)가 있다면

  • 액티브 모드는 영희(클라)가 철수(서버)에게 번호(포트)를 알려줘서 철수가 전화를 걸어 얘길 하는거고
  • 패시브 모드는 철수(서버)가 영희(클라)에게 번호(포트)를 알려줘서 영희가 전화를 걸어 얘길 하는 그림이라고 생각하면 될듯 합니다. 

SSH

SSH 란?

SSH(Secure SHell) 은 원격지 호스트 컴퓨터에 접속하기 위해 사용되는 인터넷 프로토콜입니다.

기존의 유닉스 시스템 셸에 원격 접속하기 위해 사용하던 텔넷은 암호화가 이루어지지 않아, 계정 정보가 탈취될 위험이 높으므로 암호화를 추가해서 나온 것이 SSH입니다.

텔넷이란 ?

  • 텔넷 (telecommunication network)  
  • 인터넷을 통하여 원격지의 호스트 컴퓨터에 접속할 때 지원되는 인터넷 표준 프로토콜

특징

  • 강력한 인증 방법
  • 안전하지 못한 네트워크에서 안전하게 통신할 수 있는 기능을 제공
  • 기본적으로 22번 포트를 사용
  • SSH 는 암호화 기법을 사용하므로, 통신이 노출된다고 하더라도 이해할 수 없는 암호화된 문자로 보입니다.

주요 기능

  • 보안 접속을 통한 rsh, rcp, rlogin, rexec, telnet, ftp 등을 안전하게 제공.

    • rsh(Remote SHell) : 컴퓨터 네트워크의 다른 컴퓨터에서 다른 사용자로 셸 명령어를 실행할 수 있는 커맨드 라인 프로그램
    • rcp(Remote Copy Protocol) : Unix 운영 체제에서 시스템 간에 하나 이상의 파일을 원격으로 복사하는 데 사용되는 명령. 파일은 TCP/IP 프로토콜을 통해 전송됩니다. 원격으로 파일을 복사한다는 점을 제외하곤 cp 명령과 비슷합니다.
    • rlogin(Remote login) : TCP/IP 프로토콜을 통해 통신 사용자가 네트워크를 통해 다른 호스트에 로그인할 수 있도록 유닉스같은 컴퓨터 운영 체제를위한 소프트웨어 유틸리티이다.
    • rexec : 지정한 원격 호스트에 실행할 명령을 입력하여, 로컬 시스템에서 실행한 명령의 결과를 볼 수 있는 명령어
    • telnet : 인터넷이나 로콜 영역 네트워크 연결에 쓰이는 네트워크 프로토콜
    • ftp(File Transfer Protocol) : TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일 전송을 하기 위한 프로토콜
  • IP spoofing (IP스푸핑, 아이피 위/변조 기법중 하나)을 방지하기 위한 기능을 제공.

SSH 키


서버에 접속할 때 비밀번호나 호스트 인증방식 대신 Key를 제출하는 방식입니다. 비밀번호보다 높은 수준의 보안 요건을 필요로 할 때 사용합니다.

SSH 키(Key)는 공개키(public key)와 비공개키(private key)로 이루어지는데 이 두개의 관계를 이해하는 것이 SSH Key를 이해하는데 핵심입니다. 키를 생성하면 공개키와 비공개키가 만들어집니다. 이 중에 비공개키는 서버에 위치해야 하고, 공개키는 클라이언트에 위치해야 합니다. SSH 접속을 시도하면 SSH Client가 로컬 머신의 비공개키와 원격 머신의 공개키를 비교해서 둘이 일치하는지를 확인합니다.

  • 즉 SSH 키는 공개키 비공개키로 이루어집니다. (두개가 한 쌍, 키페어 라고 부름)
  • 공개키는 접속하고자 하는 서버에 전달, 비공개키는 원격 접속을 시도하는 클라이언트가 가지고 있습니다.
  • 클라이언트가 공개키로 서버에 SSH 접속을 시도하면 공개키와 비공개키로 인증을 거친 후 인증이 완료되면 접속이 가능합니다.

SFTP (SSH File Transfer Protocol)

SFTP란?

네트워크를 통한 파일 전송을 허용하는 SSH 프로토콜의 확장이라고 합니다.

기존의 FTP (File Transfer Protocol) 방식은 보안적인 취약점이 있으므로, 중요한 파일을 전송하기는 위험했습니다.

파일 전송 시 SSH 방식을 사용해서 안전하게 암호화된 구간에서 파일을 전송할 수 있도록 구현한 것이 SFTP 입니다.

SFTP의 장점

  • SFTP는 하나의 연결만 필요하며 데이터 연결이 필요없습니다.
  • 연결이 안전하게 보호됩니다. (SSH 방식)
  • SFTP는 기계가 읽을 수 있고 균일한 디렉터리 목록을 자랑합니다.
  • 프로토콜에서 제공하는 추가 기능에는 파일 잠금, 특성 조작, 권한 작업 및 향상된 기능이 포함됩니다.

SFTP의 단점

  • SSH 키의 유효성 검사 및 관리가 복잡합니다
  • 이 프로토콜은 바이너리 통신에 관여하는데, 이는 사람이 읽을 때 "있는 그대로" 기록할 수 없다는걸 말합니다.
  • SFTP 구성 "표준"은 서로 다른 공급업체의 소프트웨어 타이틀 간 호환성 문제를 야기할 수 많은 SFTP 구성 표준이 있습니다.
  • SFTP는 서버 대 서버 복사 외에 재귀 디렉터리에 대한 제거 작업을 제공하지 않습니다.

🔗 Reference

0개의 댓글