Information Security

30-2 FTP(File Transfer Protocol) 본문

Linux

30-2 FTP(File Transfer Protocol)

leeeeye321 2017. 10. 27. 15:23

FTP(File Transfer Protocol)

-대용량/대량 파일 전송에 특화

-FTP 프로토콜은 TCP 20번과 21번을 사용하여 서비스를 제공한다.

TCP 20번(Data port)    데이터 전송 시 사용

TCP 21번(Command port)    접속 및 제어를 위한 명령어 전달

 

 FTP 동작 방식

-연결 방식에 따라 Active(능동) 모드와 Passive(수동) 모드가 있다.

-FTP 클라이언트가 FTP 서버에 접속할 때 2가지 모드 중 하나를 선택하여 접속 요청을 한다.

 

Active Mode

클라이언트는 임의의 포트를 사용하여 FTP 서버의 포트 21번으로 접속을 시도하여 성공한다.

-> 클라이언트는 FTP 서버에게 데이터 전송을 위한 클라이언트의 포트가 몇 번인지 알려준다.

-> FTP 서버는 클라이언트가 알려준 포트로 접속을 시도한다.

-> 클라이언트가 접속을 허락하면 포트 20번을 통해 데이터 전송이 이루어진다.

문제점

서버가 클라이언트에게 접속하는 방식으로 방화벽 혹은 ISP에서 외부에서의 접속을 허용하지 않는다면 정상적인 FTP 동작을 할 수 없다.

 

Passive Mode

클라이언트에서 임의의 포토를 이용하여 FTP 서버의 포트 21번으로 연결을 시도한다.

->  FTP 서버는 클라이언트에게 서버의 어느 포트를 사용해서 데이터를 전송할지 알려준다.

-> 클라이언트는 서버가 알려준 포트로 접속을 시도한다.

-> 서버는 클라이언트에게 정상 수신을 의미하는 메시지를 보낸다.

서버의 포트 20번은 사용되지 않는다.

단점

서비스 제공을 위하여 서버의 방화벽은 서버의 1024번 이후의 포트도 모두 개방해야 하는 정책을 사용해야 한다.

 


 

VSFTP (Very Secure FTP)

-GNU GPL 라이선스 관리하에 배포되고 있는 FTP 서버용 프로그램

-안정적이면서 빠른 속도로 서비스를 제공

-보안적인 측면에서도 뛰어난 성능

 

Server-A (FTP Server)

vsftpd 패키지 설치

 

-버전 확인

-버전 마다 설정 파일의 내용이 변경될 수 있으니 상세한 내용은 공식 홈페이지나 man 명령어 등을 통하여 확인한다.

 

vsftpd 데몬 시작 후 동작 확인

 

부팅 후 자동으로 데몬 활성화 설정

 

FTP 서버가 사용하는 포트 21번이 열려있는지 확인

0 0.0.0.0:21    서버 주소

0.0.0.0:*    클라이언트 주소

LISTEN    상태

2848/vsftpd    PID/데몬명

 


Anonymous 사용자 설정

-anonymous 계정으로 접속되는 디렉터리는 /var/ftp이다.

-anonymous 계정은 ftp 전용 사용자로 기본적으로 내장되어 있다.

-암호 없이 ftp 접속이 가능하고 리눅스 내부에서는 ftp라는 계정으로 동작한다.

 

-/etc/passwd 파일에서 ftp 계정을 확인 -> 홈 디렉터리는 /var/ftp

-anonymous 계정으로 접속 했을 때 서버 쪽에서는 ftp라는 계정으로 동작하기 때문에

클라이언트가 가장 처음에 위치하는 디렉터리는 ftp 계정의 홈 디렉터리 /var/ftp이다.

 

vsftpd 기본 설정 파일 수정

anonymous_enable=YES   anonymous 사용자 접속 허용 여부

anon_upload_enable=YES    anonymous 사용자 업로드 허용 여부

anon_mkdir_write_enable=YES    anonymous 디렉터리 생성 가능 여부

anon_umask=077    anonymous 사용자가 생성한 파일에 적용되는 UMASK

chown_uploads=YES    anonymous 사용자가 업로드한 파일의 소유권 변경

chown_username=ftp    anonymous 사용자의 소유권을 ftp 계정으로 지정

-위의 설정 중 기존에 없는 설정은 하단에 추가하고, 주석이 되어 있다면 해제한다.

 

데몬 재시작하여 변경 사항 적용

 

파일 업로드용 디렉터리 생성

 

소유권, 허가권 설정

 

 

다운로드 테스트용 파일 생성

/var/ftp/pub    anonymous 사용자들이 사용하는 다운로드용 디렉터리

 

Client-Linux (FTP Client)

업로드 테스트용 파일 생성

 

ftp 클라이언트 패키지 설치

 

ftp 접속 방법

(1) #ftp [IP주소/도메인]

계정 : anonymous

암호 : enter (없음)

-익명 사용자 계정이므로 암호가 없음

 

(2) #ftp

ftp> open [IP주소/도메인]

 

ftp 사용 명령어

#cd, ls, pwd, mkdir, help..

 

#get [파일명]    파일 다운로드

pub 디렉터리로 이동 후 down_test 파일 다운로드

 

down_test 파일 확인

#get [파일명1] [파일명2]    이름 변경하여 다운로드

 

#put [파일명]   파일 업로드

upload 디렉터리로 이동 후 upload_test 파일 업로드

 

서버에서 upload_test 확인

 

#hash    다운로드/업로드 과정을 hash(#)로 출력

 

※ anon_umask=077 설정과 chown_username=ftp 설정 적용 확인

 

pub, upload 디렉터리에서 test_dir 디렉터리 생성

 

Server-A의 pub,upload 디렉터리에서 허가권 700(umask 077), 소유권 ftp로 적용되어 생성된 것 확인

'Linux' 카테고리의 다른 글

31-2 PAM을 이용한 로그인 제한  (0) 2017.10.30
31-1 FTP 서버 접속을 허용하기 위한 설정  (0) 2017.10.29
30-1 VNC(Virtual Network Computing)  (0) 2017.10.27
29-2 SSH  (0) 2017.10.27
29-1 TELNET (+ NC)  (0) 2017.10.26