FTP

김병현·2022년 2월 21일
0

Web Server

목록 보기
5/6

FTP

파일 전송 프로토콜(File Transfer Protocol). TCP/IP 네트워크 상에서 컴퓨터들이 파일을 교환하기 위해 사용되는 통신 규약. 즉, 원격 서버에 파일 송수신을 위해 클라이언트가 원격으로 접속할 때 사용하는 프로토콜입니다.

FTP는 비밀번호가 평문(암호화되지 않은 정보)으로 전송되어 보안성이 매우 떨어집니다. 상대적으로 높은 보안성을 가진 TLS 기반의 FTPS나 SSH 기반의 SFTP 사용을 권장합니다.

Telnet과 FTP의 차이

  • Telnet : 원격 호스트 컴퓨터에 접속하기 위해 사용되는 인터넷 프로토콜 (기본 포트 : 23)
분류TelnetFTP
기능사용자가 원격 서버에 로그인 가능사용자가 원격 서버에 파일 전송 가능
사용 포트23제어포트: 21 / 데이터전송: 20 / 패시브 모드: 50000번대 이상 / FTPS : 990(경우에 따라 다름) / SFTP: 22(경우에 따라 다름)
보안낮은 보안성Telnet에 비해 안전
원격 로그인시스템 자원 액세스필수 아님

HTTP와 FTP 차이

HTTPFTP
서버에 연결서버에 연결
서버에 URL 요청파일 업로드, 다운로드, 수정 진행
서버가 요청한 페이지의 HTML 소스, 이미지, 파일 등 리턴서버 연결 종료
서버 연결 종료
반복적인 연결과 끊음을 사용하여 사용자가 원하는 페이지를 보여줌원하는 파일을 작업하는 동안 지속적으로 서버와 연결
기본 포트 : 80기본 포트 : 21

FileZilla

사용법

  1. FileZilla Server 연결
    → Server Address, Port, password 입력 후 OK

  2. User 생성, Shared Folders 지정
    → User Add, Password 설정 후, Shared folders Page에서 folders 지정 및 파일 권한 부여


  3. FileZilla Client 연동
    → (호스트 : 연결하려는 서버 IP, 사용자명 : 생성한 Users account, 비밀번호 : User account 비밀번호, 포트 : 미입력시 기본 포트 21 사용) 연동 후 파일 작업 진행


FileZilla FTPS (FTP over SSL/TLS) 설정

  1. FileZilla Server → Edit → Settings → SSL/TLS settings
  2. Enable FTP over TLS Support (FTPS), Allow explicit FTP over TLS(설정시 일반 FTP port로도 접근 가능), Disallow plain unencrypted FTP Check (Listen for implict ports : 990 default)
  3. Generate new certificate.. Click
  4. Key size : 2048 bit (일반적으로 공인인증서가 2048bit. bit가 높을수록 보안성이 뛰어난 점이 있지만 차이점도 존재)
    2-Digit country code : 82 (대한민국)
    Save key and certificate to this file : 인증서 저장 경로 지정
  5. Generate certificate Click
  6. FTP Client → 사이트 관리자 → 암호화 : TLS를 통한 명시적 FTP가 가능한 경우 사용 설정

Passvie mode 설정

  1. Use custom port range 설정 → 파일 전송을 수행하는 포트
  2. Use the following IP : NAT 환경(공유기)에서 Passive mode를 사용하기 위해서는 공인 IP를 입력 필수
  3. Listen on these ports : 접속을 위한 포트(explict port)
    number of users : 접속 가능한 유저 수
    Number of Threads : Threads 수 설정. CPU 과부하 정도 확인 요망

Active mode와 Passive mode 차이점

Active mode
1. Client가 FTP 프로그램을 사용하여 Server에 접속 (기본 포트 21 사용)
2. Client가 Server에 응답 (Client 접속 포트 5150, 데이터 전송 포트 5151 사용)
3. Server가 Client에게 Client의 5151 포트로 데이터를 전송하겠다는 응답
4. Client가 응답 후 데이터 수신

Client만 FTP Server에 접속할 뿐만 아니라 Server도 Client의 포트에 접속하여 데이터를 송신합니다. 때문에 Client에서도 해당 포트를 설정하거나 NAT 환경의 경우 포트 포워딩이 필요합니다.

Passive mode
1. Client가 Server에 접속
2. Server에서 데이터 전송에 사용할 별도의 포트를 Client에게 안내
3. Client는 안내받은 포트로 데이터 전송 요청
4. Server가 응답 후 Client에게 알려준 포트로 데이터 전송

Passive mode는 Client가 FTP Server에서 알려준 별도의 포트로 데이터를 전송받기 때문에 방화벽, 포트 포워딩같은 별도의 설정이 필요 없습니다.

방화벽 · 포트 포워딩

  • firewall.cpl 실행 → Windows Defender ··· 앱 또는 기능 허용 → FTP 프로그램 허용
  • 포트 포워딩 (IP time 기준) : 내부 IP 주소 작성 → 내부 포트 : 21 (FTP 기본포트) → 외부 포트 : 희망하는 포트 (외부 포트를 기본 포트와 동일하게 할 경우 해킹과 같은 보안 위험 때문에 권장하지 않음)

Visual Studio Code FTP 사용

  1. VS Code Extension "ftp simple" 설치 → (F1)FTP connection setting JSON 설정
[
   {
      "name": "localhost",
      "host": "111.123.0.23",
      "port": 21,
      "type": "ftp",
      "username": "guest",
      "password": "9876",
      "path": "/",
      "autosave": true,
      "confirm": true
   }
]

# host, username, password → FileZilla Server Users account 사용
  1. Open the file directly from FTP server → localhost 연결 후 작업

Internet Explorer FTP 연결 확인

  • 실행(ctrl + r) → iexplorer.exe → ftp://Server IP 입력
profile
Without haste, but without rest.

0개의 댓글