FTP

2023. 10. 10. 07:07리눅스/CentOS

FTP

 - File Transfer Protocol; 파일 전송 프로토콜

 - 기본적인 FTP의 동작
client가 server에 접속하여 자신의 파일을 server에 저장(upload)하거나
server에 있는 파일을 내 컴퓨터로 전송(download)

 - FTP를 사용할 수 있는 여러가지 프로그램이 존재
> 수업에서는 vsftpd 사용

 - FTP server는 두 가지로 분류
로컬 FTP server : FTP server로 동작하는 장치에 존재하는 사용자 계정들을 위한 FTP
익명 FTP server : 누구나 접근 가능한 FTP

 - 정보
패키지 : vsftpd-*
데몬 : vsftpd
방화벽 : service=ftp, port=20/tcp, 21/tcp, random/tcp
설정파일 : /etc/vsftpd/vsftpd.conf

 

 - FTP 사용 환경은 active mode와 passive mode가 있다
  1. active mode
기본 사용 환경

접속 및 명령어 전송 ; client가 자신의 random1 port를 사용하여 server의 21번 port로 접속하여 진행
파일 전송 ; client가 자신의 random2 port를 server에게 알려주고
  server가 자신의 20번 port를 사용하여 client의 random2 port로 접속 후 진행

결과적으로 일반적인 server-client 관계처럼 client만 server에 접속하는 것이 아니라
server도 client에 접속을 하게 되면서 client의 방화벽 설정이 필요

  2. passive mode
active mode의 단점을 보완

접속 및 명령어 전송 ; client가 자신의 random1 port를 사용하여 server의 21번 port로 접속 후 진행
파일 전송 ; client가 파일 전송을 위해 server의 data port로 사용되는 random port를 알아오고
  자신의 random2 port를 사용하여 server의 random port로 접속 후 진행

결과적으로 모든 접속이 client가 server로 연결하게 되면서 client에서 별도의 작업 X
현재 windows 10 기준으로는 windows 기본 FTP 프로그램은 passive mode는 지원하지 않는다

 * ftp 연결 시 모두 client가 먼저 요청한다
   파일 전송 시 active mode는 server가 먼저 요청하고,
   passive mode에서는 client가 먼저 요청한다

 - FTP는 최초 접속 위치에서 벗어나지 못하게 만드는 사용자 격리 설정이 가능
일반 사용자는 기본적으로 격리 설정 X, FTP 설정을 이용하여 격리가 가능
익명 사용자는 기본적으로 격리 상태

 

 

리눅스에서 패키지 설치 및 방화벽 설정

ftp 설치

 

 

데몬 재실행

 

 

방화벽 설정

 

 

windows에서 방화벽 설정

파일 전송 프로그램 확인[없을 시 설정 변경 클릭해서 추가]

 

 

다른 앱 허용 찾아보기 클릭 후 ftp.exe 선택 후 추가

 

 

실습을 위해 개인과 공용 모두 체크

 

 

익명 사용자 실습

windows에서 접속해보자 [실제 사용 시 시작 경로도 잘 생각해서 접속해야 한다]

 

 

일반 사용자로 접속

 

 

나가기

 

 

익명 사용자로 접속

 

 

사실 anonymous라는 계정은 없음

 

 

설정 파일

 

 

익명허용여부와 로컬허용여부 관련 설정

 

 

익명허용을 no로 설정 후 데몬을 재실행해보자

 

 

익명으로 로그인 안 됨

 

 

이번엔 익명을 yes로 바꾸고 로컬을 no로 설정해보자

 

 

데몬 재실행 후 windows에서 접속 시 로컬계정은 접속이 안 되고 익명 접속은 가능하다

 

 

모두 no로 설정하면 접속이 차단된다

 

 

설정 파일 설명

로컬 계정의 쓰기 설정 [익명은 기본적으로 쓰기 못함]

 

 

로컬 계정의 쓰기 작업을 위한 umask

 

 

익명 사용자의 파일업로드 허용 여부

 

 

익명 사용자의 mkdir 허용 여부

 

 

디렉토리 접근 시 메시지 활성 여부

 

 

.message 파일을 위와 같이 만들어보자

 

 

각 디렉토리에 접근 시 메시지 확인 가능

 

 

업로드/다운로드 시 로그 허용 여부

 

 

로그 저장 위치

 

 

표준 로그 포맷에 관한 설정

  • NO (기본값) : 이 옵션이 NO로 설정되어 있으면 vsftpd는 로그 파일을 표준 로그 포맷이 아닌 특정 형식으로 기록한다. 이 형식은 로그 파일에 기록되는 데이터를 지정한 형식에 맞게 조정하는 데 사용된다.
  • YES : xferlog_std_format을 YES로 설정하면 vsftpd는 로그 파일을 표준 로그 포맷에 맞게 기록한다. 표준 로그 포맷은 FTP 서버 활동에 대한 자세한 정보를 포함하며, 다른 FTP 로그 분석 도구와의 호환성을 제공한다.

로그 파일 형식을 선택할 때 주의해야 한다. xferlog_std_format을 YES로 설정하면 로그 파일은 표준 형식으로 기록되지만, 로그 파일이 더 많은 공간을 차지하고 읽기 어렵게 될 수 있다. 반면에 NO로 설정하면 로그 파일은 더 간소하게 유지되지만, 분석 및 모니터링 도구와의 호환성이 떨어질 수 있다.

 

 

익명 사용자가 업로드 한 파일의 소유권에 대한 설정

 

 

20번 포트 허용여부[passive mode만 쓸것인지 둘 다 쓸 것인지]

 

 

연결 지속시간 설정

 

 

데이터 연결 이후 타임아웃까지 걸리는 시간

 

 

배너 내용을 설정 파일에 직접 작성

 

 

FTP 서버 관리자가 특정 이메일 주소나 도메인으로부터의 액세스를 제어  [위는 허용여부 아래는 차단할 구체적 주소 입력]

 

 

ls -R 옵션 허용여부[슬래쉬 밑에서 쓰면 DDoS 공격 비슷하게 가능]

 

 

YES; 다른 데몬에 종속 / NO; 스탠드얼론

 

 

IPv6 설정

 

 

사용자 격리 관련 설정 [list; 격리 예외 목록]

 

 

사용자 격리 실습

이 위치는 find를 통해 찾으면 /var/ftp/pub다

 

 

설정 후 데몬 재실행

 

 

리스트 파일이 없어서 오류

 

 

리스트 파일을 만들어보자

 

 

다시 접속해도 오류

 

 

설정 후 데몬 재실행

 

 

접속되고 격리됨

 

 

list 수정

 

 

격리 해제 됨

'리눅스 > CentOS' 카테고리의 다른 글

NFS  (0) 2023.10.12
fstab  (0) 2023.10.12
VNC  (0) 2023.10.09
SSH  (0) 2023.10.09
Telnet  (0) 2023.10.08