본문 바로가기

Linux

14. CentOS7 : FTP (File Transfer Protocol)

1. FTP(File Transfer Protocol)

1.1. 대용량 파일 전송 (Upload, Download)

1.2. Linux

  • vsftpd or proftpd
  • 인증 및 제어
    • Protocol : TCP
    • Port : 21
  • data 전송
    • Active : Port 20
      - Client Data 전송 포트를 결정
      - FTP Program만 사용 가능하도록 Port설정
    • Passive
      -  Server가 Data 전송 포트를 결정, 대부분 이 방식을 사용
      - 방화벽에서 Data 전송 포트만 Open 하면 됨

2. Well Known Porte

2.1. well know Port : 0~1023
2.2. registered Prot : 1024~49151
2.3. Dynamic Port : 49152~65536


3. 설치 및 설정

3.1. 설치

  • yum install -y vsftpd

3.2. 설정

  • /etc/vsftpd/vsftpd.conf

4. 실습

4.1. ftp 설치

 

4.2. /etc/vsftp/vsftpd.conf 설정 파일 내용

  • anonymous_enable : 익명 사용자 FTP 허용 여부
  • local_enable : 로컬 사용자 로그인 허용 여부
  • write_enable : 쓰기(업로드) 허용 여부
  • local_umask : 로컬 사용자의 umask 값 설정
  • anon_upload_enable : 익명 사용자 업로드 허용 여부
  • anon_mkdir_write_enable : 익명 사용자 디렉토리 생성 권한 허용 여부
  • dirmessage_enable : 디렉토리 이동 시 메세지 활성화 여부
  • xferlog_enable : FTP 로그 활성화 여부
  • connect_from_port_20 : 포트 전송 연결이 20에서 시작되는지 확인
  • xferlog_file : xferlog 파일 저장 경로
  • idle_session_timeout : 유휴 상태에서 세션 시간 설정
  • data_connection_timeout : 데이터 연결 중 시간 초과 설정
  • ftpd_banner : banner 내용 및 파일 설정 (파일로 설정할 경우 banner_file)
  • chroot_local_user : 로컬 사용자에 대해서 사용자의 홈디렉토리를 최상위 디렉토리로 설정 (/디렉토리 접근 불가)
  • chroot_list_enable : 리스트에 지정된 사용자에 대해서 사용자의 홈디렉토리를 최상위 디렉토리로 설정 (/디렉토리 접근 불가)
  • chroot_list_file : 지정할 사용자 리스트 파일 위치
  • pasv_enable : passive 모드 사용 여부
  • pasv_min_port : passive 모드 사용 시 시작 포트 번호
  • pasv_min_port : passive 모드 사용 시 마지막 포트 번호

 

4.3. FTP 구성 (Active)

1. aa, bb 계정 사용
2. aa 계정에 대해 chroot 적용
3. 사용자의 홈디렉토리에 각 500MB의 aa.txt, bb.txt를 각각 생성
4. anonymous 계정 사용 금지
5. /ftp 디렉토리 생성 후 banner, xferlog, chroot_list 파일 저장
6. 접속 후 3분이 지나면 세션 종료, 데이터 전송 중이라도 1분 후면 연결 끊기

 

※ /etc/vsftpd/vsftpd.conf 파일 변경 내용

 

※ /ftp/banner 파일 내용 설정

 

※ /ftp/chroot_list 파일 내용 설정

 

※ 현재 방화벽 설정 확인

 

※ 설정 가능한 zone 목록 확인

 

※ default zone 확인

 

※ 방화벽 오픈 포트 추가

 

※ 방화벽 리로드

 

※ ftp 실행

 

※ 사용자 aa, bb 홈 디렉토리 아래에 테스트용 파일 생성

 

※ W11-1 포트 오픈

인바운드 새 규칙 추가
프로그램 경로 설정
다음
다음
규칙 이름 설정

 

※ 윈도우에서 ftp 접속해보기

 

※ aa 계정 chroot 확인

  • aa의 홈디렉토리에서 상위 디렉토리로 이동해도 디렉토리가 변경되지 않으며, 홈디렉토리가 / 디렉토리로 인식된다.

 

※ 로컬 폴더 확인 (!dir)

 

※ 로컬 폴더 위치 변경 (lcd)

 

※ 서버에서 파일 다운로드 (get, mget)

 

※ 서버에 파일 업로드 (put, mput)

 

 

4.4. FTP 구성 (Passive)

1. passive Mode로 운영합니다.
2. passive mod 최소 포트 60000, 최대 60100
3. 사용자 c, d 중 cc는 chroot, data 디렉토리에 chroot설정 파일은 chroot
4. anonymous 사용 X, upload 허용 X
5. xferlog 위치 /data/xferlog
6. 배너 파일 위치 및 파일 이름 /data/banner
7. 접속 후 5분이 지나면 세션 종료, 데이터 전송 중이라도 1분 후면 연결 끊기

※ /etc/vsftpd/vsftpd.conf 파일 변경 내용

 

※ /data/chroot 파일 내용 추가

 

※ 방화벽 오픈 및 확인

 

※ vsftpd 실행

 

※ filezilla 연결 설정

 

※ filezilla로 ftp 접속

10.0.0.11 접속
왼쪽: 로컬, 오른쪽: 서버 디렉토리를 확인할 수 있음

 

※ filezilla에서 파일 드래그하여 로컬로 가져온 후 데이터 전송 포트 확인

'Linux' 카테고리의 다른 글

16. CentOS7 : DNS(Domain Name System)  (0) 2022.03.29
15. CentOS7 : Apache Web Server (HTTPD)  (0) 2022.03.29
13. CentOS7 : DHCP  (0) 2022.03.22
12. CentOS7: Local Repository  (0) 2022.03.08
11. CentOS7 : package 관리  (0) 2022.03.08