상세 컨텐츠

본문 제목

[29] FTP | Well Known Port | FTP 실습 (1)

IT/Linux

by o_zeew 2022. 3. 16. 18:05

본문

(1) FTP

(2) Well Known Port

(3) 설치 및 설정



1. FTP(File Transfer Protocol)
  - 대용량 파일 전송 (Upload, Download)
  - Linux
      > vsftpd or proftpd
      > 인증 및 제어
  - Protocol : TCP
  - Port : 21
      > data 전송
  - Active : Port 20
          Clinet Data 전송포트를 결정
          Clinet Port를 모두 Open해야하지만 회사의 방화벽 포트를 다 open 하는건 불가
           > FTP Program만 사용가능하도록 Port 설정
  - Pasive
          Server가 Data전송포트를 결정, 대부분 이 방식을 사용
          방화벽에서 Data전송포트만 Open하면 됨.

 


2. Well Known Port
  - well know port : 0~1023
  - registred port : 1024~49151
  - dynamic port : 49152~65536

 

  * Linux의 위치

 

  * Windows의 위치

 



3. 설치 및 실습

 

1. vsftpd 설치

yum install -y 명령어를 사용해 설치
vsftpd 설치 완료

2. 사용자 생성 후 패스워드 설정

3. 설정 파일 편집

vi 편집기로 /etc/vsftpd/vsftpd.conf 파일 열기
anonymous(게스트 계정)을 사용함
서버의 로컬 사용자 계정을 사용함
쓰기 허용 = 업로드 허용
umask 값 = 022
upload = 쓰기 권한 / 일반적으로 anonymous에게 쓰기권한을 주지 않음
anonymous에게 mkdir 쓰기 권한
사용자가 cd 명령어로 디렉토리를 이동했을 때 이동에 성공했다는 메세지 출력
xferlog = ftp의 로그 파일
xferlog 사용 / 로그 파일의 저장 경로 설정
ftp 서버에 접속 이후 아무것도 안할 시에 로그아웃 시키는 시간 설정 (120초=2분)
데이터 전송 중에도 일정 시간 이후에는 끊어짐 (60초=1분)
접속 시 경고 메세지 출력
chroot = 사용자가 로그인한 디렉토리가 최상위 디렉토리로 인식하게 하여 자신의 디렉토리를 탈출 불가하게 하는 설정 /                            chroot list에 있는 사용자에게만 적용
chroot list file의 저장 경로

  * 설정 파일을 바로 생성

명령모드에서 :!bash 입력 시 쉘로 잠시 나갈 수 있음
vi 편집기를 사용해 chroot list를 작성
사용자 a만 작성
exit로 다시 편집 중인 파일로 돌아가기
userlist에 있는 사용자는 ftp 접속 불가 / 접속 불가를 설정할 사용자는 userlist에 추가
방화벽 통과 후 어플리케이션 접속 전에 한번 더 IP로 filtering 하는 기능
chroot 할 때 쓰기 허용
설정 파일 변경 후 시스템 시작

 

4. 방화벽 설정

방화벽의 zone 목록과 기본으로 설정되어있는 zone 확인
permanent : 설정 파일을 수정 / 21, 22 port를 추가하여 방화벽 열기
permanent를 사용해 설정 파일을 수정했기 때문에 반드시 재시작
방화벽이 잘 열렸는지 확인

 

5. FTP 접속 시도

사용자 a로 로그인
방화벽에 의해 서버가 보낸 데이터가 클라이언트는 받지 못하는 상태

 

6. 방화벽 열기

제어판 - Windows Defender 방화벽 - 고급설정
인바운드 규칙 우클릭 - 새 규칙
프로그램
경로 찾아보기 - ftp 파일 열기
ftp 파일 넣은 모습
연결 허용
다음
이름 필수, 설명 옵션
설정 확인

 

7. Linux에서 파일 생성

500MB짜리 a.txt 파일 생성 후 확인
500MB짜리 b.txt 파일 생성

 

8. 사용자 A FTP 접속

사용자 a로 로그인
dir 명령어로 a.txt 파일 생성 확인
cd 명령어를 사용해 상위 폴더로 이동하면 성공했다는 메세지 출력
그러나 dir 명령어로 확인하면 상위폴더로 이동 실패 = 사용자 a는 chroot list에 있기 때문에 자신의 디렉토리가 최상위 디렉토리

 

9. 사용자 B FTP 접속

사용자 b로 로그인
dir 명령어로 b.txt 생성 파일 확인
cd 명령어를 사용해 상위 디렉토리로 이동
상위 디렉토리로 이동 성공 확인 가능
권한이 없어 다른 디렉토리로 이동은 불가
quit 명령어로 서버에서 나가기

 

관련글 더보기