본문 바로가기
operating system/linux

FTP Active mode & Passive mode

by hhhdangmoo 2022. 10. 12.
728x90
반응형
FTP (File Transfer Protocol)
  1.    FTP란, File Transfer Protocol의 약자로 파일을 전송하는 통신규약이다.
  2.    FTP 서버에 파일들을 업로드, 다운로드 할 수 있도록 해주는 프로토콜이다.
  3.   Client PC 와 Host PC 간 파일을 송수신 하기 위해 사용 된다.

 

1. Active Mode

 - 서버가 클라이언트에 접속하는 방식
 - 데이터 전송포트를 Client가 결정함.
 - 서버가 Client로 데이터 전송 시 방화벽 문제로 인하여 데이터 전송 불가
 - Client의 방화벽을 모두 Open 할 수는 없는 현실적인 문제에 직면함
 -  App 즉 FTP 프로그램에 대해서만 방화벽을 Open

 

우선 Centos7 에 vsftpd 패키지를 설치 한다.

yum install 로 설치 후 ftp 서버 관리를 위한 디렉토리를 최상위 밑에 만들어주자.

디렉토리 생성 후 list 파일과 로그인 경고 banner 파일을 생성한다.

list 파일
경고 banner

vi를 통해 vsftpd 의 설정 파일을 수정해준다.

:set nu 으로 넘버링 후 진행 한다.

vi /etc/vsftpd/vsftpd.conf 설정 파일 수정 해야 할 내용

12 # anonymous_enable=YES
16 local_enable=YES
19 write_enable=YES
23 local_umask=022
29 # anon_upload_enable=YES
33 # anon_mkdir_write_enable=YES
40 xferlog_enable=YES --> 로그인 정보는 기록 안 됨
43 connect_from_port_20
48 chown_uploads=YES  --> 주석 해제
53 xferlog_file=/ftp/xferlog   --> 주석 해제
87 banner_file=/ftp/ftp        --> 여기엔 경고 메시지 써야 함 필자는 파일을 생성 했기 때문에 파일 경로를 써주었음  
91 #deny_email_enable=YES
101 # chroot_local_user=YES
102 chroot_list_enable=YES  -->  주석 해제
104 chroot_list_file=/ftp/chroot --> 주석 해제 후 파일 생성 했으니 경로 써주기
126 --> 인증에 관한 것
128 --> 필터링 하는 것
129 allow_writeable_chroot=YES  ---> chroot 지정 해 놓았으면 이걸 꼭 타이핑 해주어야 함

 

위 과정을 마치면 :wq 로저장 후 vi를 빠져나온 뒤 꼭 vsftpd 프로그램을 시작 해주어야 한다.

명령어 입력 후 아무런 오류가 없으면 잘 진행 된 것이다.

이제 방화벽 설정을 진행 해야 하는데, 우선 Selinux 상태를 체크 해야 한다.

Disabled 가 아니라면 강제로  SeLinux를 disabled 상태로 만들어 주어야 한다.

보안 문제 때문에 이 과정을 꼭 해주는 것이 좋다.

firewall 명령어로 방화벽 내용을 한번 확인 해보자.

ports : 21 /tcp --> 21번 포트가 열려 있는 것을 확인 할 수 있다.

우리는 20,21 번 포트를 모두 열어주어야 하기 때문에

20번 포트까지 열어주는 작업을 진행 해보자.

방화벽 설정을 한 후에는 reload 를 해주어야 한다. 그래야 설정 값이 적용 된다.

방화벽 리스트를 확인 해보니 20번 포트가 열린 것을 확인 할 수 있다.

이제 CentOS 윈도우 서버에서 cmd로 ftp를 확인 해보자

cmd로 ftp 접속이 되는 것을 확인 할 수 있다

 

 


2. Passive Mode

 - Active Mode의 단점을 보완한 방식이다.

 - 데이터 포트를 특별하게 지정하지 않아도 임의의 포트를 사용하여 데이터를 전송한다.

 

Passive Mode 설정 법을 알아보자

우선 Active Mode와 같이 /etc/vsftpd/vsftpd.conf 파일을 수정해주어야 한다.

파일 내용 수정은 Active Mode와 거의 똑같지만 마지막에 세줄 정도 추가 할 내용이 있다.

위 내용을 추가 한 뒤 :wq 로 저장 하고 빠져 나온다

CentOS Windows 서버에 Filezilla로 확인 해본다

filezilla 설정을 위와 같이 한 후 연결을 해보면 잘 되는 것을

확인 할 수 있다 

메모장으로 간단한 txt 파일을 만든 후 linux 서버로 파일을 전송 해보자.

a 계정으로 접속 한 후 확인 해보니 

Hello_Linux 파일이 잘 전송 된 것을 확인 할 수 있다!

 

 

728x90
반응형