8.18 정리-FTP서버 1

HakJin Kim·2023년 8월 18일
0

FTP (File Transfer Protocol)

1. TFTP

  • 69번 포트
    인증기능 X
    UDP

2. FTP

  • Control 21, Data 20
    인증기능 O (ID:password)
    TCP

3. anonymous FTP

  • FTP 포트와 동일
    인증기능 O (ID=anonymous, passwd=Email)
    TCP

최근 FTP는 vsftpd를 사용함 (보안성이 좋다.)


FTP Operation Mode

FTP Active/Passive Mode

  • 일반 사용자를 위해 + 방화벽 문제 때문에

  • Active mode : 서버가 접속 요청하는 모드
    Passive mode : 서버가 접속 요청을 받는 모드

  • 컨트롤 포트 세션에서는 인증을 해야한다.
    데이터 포트 세션에서는 인증X
    = 컨트롤 포트 인증을 기반으로 데이터 포트가 돌아간다.

그렇다면 접속 요청을 하는지 받는지에 차이점은?

  • 데이터 포트를 서버에서 요청 Active
    데이터 포트를 클라이언트에서 요청 Passive

  • 기본 vsftp 설정은 Active가 default

어떻게 passive 모드로 변경되나?

  • 컨트롤 21번 포트가 well known port 범위 밖
    즉, 1023번에서 벗어나면 Passive 모드로 바뀐다.

  • 이때 passive 모드로 변경된다면
    데이터 포트는 20번 포트에서 dynamic 포트로 자동/랜덤 변경된다.

그럼 방화벽을 켜둔 상태에서 control 포트를 바꾼다면?

  • 컨트롤 포트까지의 인증은 받을 수 있지만
    데이터 포트에서의 통신은 방화벽에 의해 막힌다.
    (데이터 20번 포트는 방화벽에서 기본적으로 열어줌)

그렇다면 왜 Active와 Passive가 나뉘냐?

  • 기본적으로 OS상에서 방화벽이 활성화 되어있다.

  • Active 모드에서는 서버에서의 데이터 포트 연결이 방화벽에서 막힌다.
    (방화벽을 열어주거나, 포트를 고정시킨 후 방화벽에 등록시켜주는 방법 말곤
    통신할 방법이 없다.)

  • Passive 모드에서는 서버로의 데이터 포트 연결이 방화벽을 통과
    그에 대한 응답은 방화벽이 인식 할 수 있어서 통신이 가능하다.

포트

1. well known port (~1023)

<TCP>
FTP - data-20/control-21
SSH -22
Telnet -23
SMTP -25 (보내는 프로토콜)
HTTP -80
POP3 -110
IMAP -143 (받는 프로토콜 1)
NNTP -119 (받는 프로토콜 2)
---
POP3s - 995
IMAPs - 993
<UDP>
DHCP server-67/client-68
TFTP -69
DNS -53
SNMP -161/트랩 정보-162

2. registered port (1024~49151)

3. dynamic port (49152~65535)


FTP 서버

설치

yum -y install vsftpd*		<= 서버
yum -y install ftp			<= 클라이언트

환경 설정 파일

/etc/vsftpd/vsftpd.conf		<= 주 환경설정 파일

<등록된 사용자 차단>
/etc/vsftpd/ftpusers		<= PAM
/etc/vsftpd/user_list		<= vsftpd

포트 변경

/etc/vsftpd/vsftpd.conf 파일에서

listen_port=2121 추가
  • 포트번호가 ~1023까지라면
    방화벽에 --add-port로 해당 포트를 추가하여 클라이언트에서 서버로 접속이 가능하다.

  • 포트번호가 1024~ 라면
    방화벽에 해당 포트를 추가시켜주어도 인증까지는 가능하지만 접속은 불가능하다.
    (이럴때 포트번호를 바꾸거나 방화벽을 shutdown해주거나 데이터포트를 고정으로 잡아주어야
    접근이 가능하다.)

속도 제한

/etc/vsftpd/vsftpd.conf 파일에서

local_max_rate=300000 추가

접근인원 통제

/etc/vsftpd/vsftpd.conf 파일에서

max_clients		<= 동시 접근 인원
max_per_ip		<= 1개의 컴퓨터 당 동시 접근 인원

Passive Mode에서 Data Port 고정

/etc/vsftpd/vsftpd.conf 파일에서

pasv_min_port=50000
pasv_max_port=50000 추가
  • 2121포트는 컨트롤 포트이며 50000번 포트는 데이터 포트이다.
    그러므로 2121 포트를 통해 인증 + 50000 포트를 통해 접근이 가능하다.

접속시 접속 배너 띄워주기

< >
/etc/vsftpd/vsftpd.conf 파일에서
87번째 줄

#ftpd_banner=Welcome to blah FTP service. 의 주석 풀기
  • Welcome to blah FTP service.
<여러 >
/etc/vsftpd/vsftpd.conf 파일에서

banner_file=/etc/vsftpd/ftp.msg 추가 후
해당 디렉터리에 해당 파일 생성 후 메세지 추가.
  • Hello world! (줄바꿈) Welcome to MEGA FTP service!
<디렉터리 별로>
/etc/vsftpd/vsftpd.conf 파일에서
37번째 줄 활성화

dirmessage_enable=YES 후

38번째 줄

message_file=.message 추가

- 배너를 띄우고싶은 디렉터리 이동 후 .message 라는 파일 생성 및 내용 추가.
  • HOME 디렉터리에 .message 파일 추가 후 FTP 접속
...
Welcome to HOME Directory
...

목록 차단

/etc/vsftpd/vsftpd.conf 파일에서

dirlist_enable=NO 추가
(default = YES)
  • ls 명령어에 대한 실행이 거부됨
profile
처음 시작하는 사람

0개의 댓글

관련 채용 정보