#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
- 위 사이트에 접속하여 클라이언트 프로그램을 다운 받아 설치한다.
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 |