정보보안기사/2024 최적합 정보보호론

PART5. 네트워크 보안 - SECTION 2. FTP 보안

코드라니(CODERANY) 2026. 2. 21. 00:34

1. FTP(File Transfer Protocol:  File을 전달하는 프로토콜)

가. 개요

파일 교환 프로토콜,

인터넷 TCPIP의 응용서비스 중 하나임. 파일 송수인 지원 프로그램 싹다 이렇게 부르고

대용량 쉽게 보낼 수 있고, 아이디 패스워드 필요하고,

20, 21번 포트 사용함.

20번 포트로 데이터 전송

21번 포트로 제어, 접속, 폴더 열기 등

나. FTP 연결

1) 개념

포트넘버가 0부터 65535번까지 있음. (1~1023 잘 알려진 well known port, 1024~49151 등록된 Registered, 49152~65535 동적포트 dynimic port)

여기서 말하는 포트넘버는 논리적인 포트넘버임. 일반적으로 포트를 말하는건 물리적 포트

/etc/ftpusers에 사용자 ID를 등록하여 접근을 제한할 수 있다. 

-> 근데 등록하면 FTP가 안됨. 왜 안될까? etc밑에 ftp users에 등록을 해야 ftp가 되는 줄 알고 등록함. 근데 그때부터 안됨;; 왜일까;; FTP유저즈에 등록하면 접근이 차단됨 ㅎㅅㅎ

클라이언트에서 FTP모드를 Active 또는 Passive 모드로 전환할 수 있음. 

2) FTP로 연결할 때 접근이 통제되는 파일

구분 설명
/etc/ftpusers
(/etc/vsftpd/ftpusers)
FTP 접속 제한 계정 등록(이 파일 안에 ID가 존재하면 FTP 접속이 거부됨)
/etc/hosts.deny 특정 IP의 접근 제한
/etc/hosts.allow 특정 IP의 접근 허용

-> TCP Wrapper는 네트워크 접근제어 환경설정을 구성하는 프로그램이다. TCP Wrapper를 사용하려면 /etc/hosts.deny와 /etc/hosts.allow를 설정해야함.

3) Active Mode(능동모드)와 Passive Mode(수동모드)

가) Active Mode(능동모드) 389p

액티브모드는 더 안전함. (웅..)

왜 액티브냐면 

클라이언트 - 서버가 있다면

둘 다 20번 포트와 21번 포트로 접속하고 데이터를 주고받겠지(20번 포트로) 

그럼 클라이언트가 서버에 로그인함 (21 포트)

액티브 모드는 서버가 능동적으로 하는 거임. 클라이언트가 서버한테 나 접속한다함.

그럼 서버가 ㅇㅋㅇㅋ 하고 서버가 능동적으로 클라이언트에 20번 포트로 클라이언트에 접속함(액티브)

클라이언트가 ㅇㅋㅇㅋ가 되면 그제서야 클라이언트가 파일을 서버에 업로드하거나 다운함.

접속시도는 클라이언트가 하고, 

방화벽이 있으면 로그인만 되고 실질적인 다운로드/업로드는 안될 수도 있음.

핵심. 액티브 모드에서는 서버가 클라이언트에게 접속을 시도함. 

나) Passive Mode(수동모드) 390p

1024~65535사이의 포트를 임의적으로 사용해서, 서버는 클라이언트가 어떤 포트를 쓸지 몰라서, 모든 포트를 다 열어놓음. -> 보안 위험 증가.

클라가 서버한테 21포트로 로그인. 서버 ㅇㅋ함. 패시브에서는 클라가 서버한테 어떤 포트로 접속할지 몰라서 서버는 1024~65535포트를 몽땅열고 기다림, 오픈 마이 포트~ 

클라가 3267포트로 접속을 시도하고 서버가 ㅇㅋ하면 클라가 파일을 서버에 업로드하거나 다운함. 

-> 포트넘버 다 열어 놓는데 당연히 보안에 취약하지. 이게 패시브 모드임.

 

4) FTP의 보안 취약점

파일 주고 받아서 보안에 취약함. -> 대부분 서버는 FTP막음; -> 필요할 때만 딱 열고 시간 지나면 닫음 

필요하면 보안 FTP 사용함 -> SCP, SFTP(시큐어 FTP), FTPS(FTP 시큐어) 등 사용함. 

5) 익명 FTP (anonymous FTP)

공짜로 사용~ 익명 인터넷에서 FTP다운 받음.

6) FTP bounce(바운스) 공격: 튕기기 공격

해커 입장에서는 뭐가 있나 대충 보는거임.

우리회사에 FTP서버가 있고 그리고 방화벽 안에 인사서버, 영업서버 등이 있음 .

조작된 아이피와 포트넘버로 FTP서버 접속 시도 함.

접속을 성공했다면 FTP 서버에서 싱크를 날림.

운좋게 인사서버에 싱크를 날렸다고 가정하고,

인사서버는 대부분 포트 넘버가 막혀있고, 보안 정책에 따라 날아온 싱크에 RST로 연결 끊음.

그럼 해커가 생각함. "어 여기 중요한거 있나보넹." 생각함. 

어디에 집중해야할지 목표를 찾는 것임. 

돌멩이 던졌는데 저쪽에서 수풀이 움직이는거 보는거 ㅎ

7) FTP와 TFTP 비교(TFTP, Trivial File Transfer Protocol)

FTP TFTP
TCP 기반 UDP 기반
20, 21번 포트  69번 포트
로그인 절차 있음. 로그인 절차 없음.
파일디렉토리 볼 수 있음.  파일디렉토리 볼 수 없음

돈 내고 FTP쓰렴~

TFTP는 특정 호스트에서 특정 호스트로 걍 밀어 넣는거. 내가 특정 디렉토리를 볼 수 없음(TFTP, 69 포트 사용)

TFTP는 파일을 보내는 건 맞는데, FTP처럼 인증과정을 거치지는 않고 바로 원격 파일을 읽거나 저장할 수 있는 프로토콜임. 밥솥, 선풍기, 에어컨 등의 임베디드 시스템을 업데이트 할 때 씀.

가) 개념

나) 비교