#1. FTP (File Transfer Protocol)

1. FTP의 개념

1) FTP란?

  • 안정적인 파일 전송이 가능한 파일 전송 프로토콜을 말한다.
  • 기본적으로 21번 포트를 사용한다. (보안을 위해 다른 포트로 변경하여 사용할 수 있다.)
  • FTP 서버를 운영하기 위해서는 사용중인 포트에 대한 방화벽 허용 설정이 필요하다.

 

2) 종류

구분 OS 종류
Server Linux vsftpd, proftpd 등
Client Linux ncftp, lftp 등
Client Window 알FTP or 알드라이브(무료)
Client MacOS CyberDuck(유료)
Client 공용 FileZilla(무료, 유료)

 

2. FTP에 접속이 가능한 사용자

1) 일반 사용자

  • 대부분의 FTP 서버는 리눅스 운영체제의 사용자 계정을 그대로 사용한다.
  • 각 사용자 별로 자신의 홈 디렉토리에 접속하게 되고 그 안에서만 파일 작업이 가능하다.

 

2) 익명 사용자

  • 모든 FTP 서버에 기본적으로 등록되어 있다.
  • ID는 anonymous로 고정되어 있고, 비밀번호는 없다.
  • 보안에 좋지 않기 때문에 실무에서 사용하는 FTP 서버에서는 익명 사용자의 접속을 차단한다.

 

3. FTP 전송모드

1) 액티브 모드

  • 접속과 데이터 전송에 각각 하나씩의 포트만 사용한다.
    • 접속 기본 포트: 21
    • 데이터 전송 기본 포트: 20

 

2) 패시브 모드

  • 데이터 접속에는 하나의 포트를 사용하지만, 데이터 전송에는 여러개의 포트를 사용할 수 있으므로 전송 효율이 좋다.
    • 접속 기본 포트: 21
    • 데이터 전송포트: 1024번 이후 설정값에 따른다.

 

4. vsfptd 서비스 설치하기

1) 서비스 패키지 설치

  • 아래 명령어를 입력한다.
$ sudo apt-get install vsftpd

설치진행중..

 

2) 환경설정

- 디렉토리 접근 설정

  • 기본적으로 vsftpd는 일반 유저가 자신의 홈 디렉토리에 접속한 후 상위 디렉토리로 이동이 가능하다.
  • 이는 시스템의 전체 디렉토리를 열람할 수 있다는 의미로 보안에 매우 취약하다는 단점이있다.
  • 따라서 자신의 홈 디렉토리보다 상위 디렉토리로 접근하지 못하도록 설정해야 한다.

 

- 접속 포트 변경

  • FTP의 기본 접속 포트 21번은 일반적으로 널리 알려져 있는 포트이기 때문에 이를 임의의 값으로 변경하여 악의적인 사용자가 쉽게 유추할 수 없도록 해야한다.

 

- 패시브 모드 설정

  • 기본적으로 액티브 모드이기 때문에 패시브 모드로 변경하여 전솔 효율을 높이는 것이 좋다.

 

- 설정파일 수정하기

  • root 권한을 사용하여 /etc/vsftpd.conf 파일을 vi편집기로 수정한다.
$ sudo vi /etc/vsftpd.conf
  • 아래의 설정 항목들의 편집기 맨 아래쪽에 추가하고 저장한다.
# 각 유저가 자신의 홈 디렉토리까지만 접근 가능하도록 제한
chroot_local_user=YES

# 자신의 홈 디렉토리에 대한 쓰기 권한 허용
allow_writeable_chroot=YES
write_enable=YES

# 파일, 폴더 기본 퍼미션 설정
local_umask=022
file_open_mode=0644

# 접속 포트번호 설정(기본값 21)
listen_port=9902

# 패시브모드 활성화
pasv_enable=YES

# 패시브모드 전송 포트 범위 설정
pasv_min_port=10100
pasv_max_port=10200

 

3) 서비스 가동하기

$ sudo systemctl start vsftpd
  • 환경설정 파일에 문제가 없고 정상 실행되는 경우 아무런 출력 결과가 없다.

 

4) 서비스 동작 여부 확인하기

$ sudo systemctl status vsftpd

정상적으로 동작하고 있다.

  • active라 뜨면 정상 동작이다.

 

5) 부팅시 자동실행 등록

$ sudo systemctl enable vsftpd

 

6) 방화벽 포트 설정

  • 접속포트로 설정한 9902 TCP 포트와 전송포트로 설정한 10100 ~ 10200 TCP 포트를 오픈해야 한다.
$ sudo ufw allow 9902/tcp

# 10100 ~ 10200 port tcp 접근 허용
$ sudo ufw allow 10100:10200/tcp

 

7) 방화벽 규칙 다시 로드하기

  • 설정한 규칙을 적용하기 위해서는 반드시 수행해야 한다.
$ sudo ufw reload

 

8) 방화벽 규칙 확인

$ sudo ufw status

설정이 정상적으로 되었다면 위와 같이 출력된다.

 

5. FTP 클라이언트를 사용하여 접속 확인

1) FileZilla 클라이언트 설치

https://filezilla-project.org/download.php?type=client

 

Download FileZilla Client for Windows (64bit x86)

Download FileZilla Client for Windows (64bit x86) The latest stable version of FileZilla Client is 3.60.1 Please select the file appropriate for your platform below. Please select your edition of FileZilla Client FileZilla FileZilla with manual FileZilla P

filezilla-project.org

  • 위 사이트에 접속하여 클라이언트 프로그램을 다운 받아 설치한다.

 

2) FileZilla를 사용한 파일 업로드

  • 서버의 접속 정보를 입력하고 빠른연결 버튼을 누른다.
  • 화면상에서 왼쪽편이 로컬컴퓨터, 오른쪽이 리눅스 서버를 의미한다.
  • 업로드 혹은 다운로드 할 파일을 끌어넣거나 더블클릭하여 전송한다.
  • 한글 파일은 파일명이 깨질 수 있으니 주의해야한다.

 

3) 접속 오류

  • 만약 위와 같이 오류가 난다면 방화벽 동작 여부와 ftp 설정파일에 오타가 있는지 확인해봐야 한다.
  • 확인했는데도 이상이 없다면, sudo service vsftpd restart 명령어를 입력해 vsfrpd 재시작하여 접속 오류를 해결할 수 있다.

'국비수업 > Linux' 카테고리의 다른 글

[Linux] MariaDB 설치하기  (0) 2022.07.25
[Linux] SSH 서비스  (0) 2022.07.24
[Linux] 네트워크와 방화벽  (0) 2022.07.22
[Linux] 서비스와 리눅스 패키지  (0) 2022.07.21
[Linux] 쉘(Shell)  (0) 2022.07.20

+ Recent posts