13장. FTP 서버 설치 및 운영 (1) - vsftpd 서버 구축

728x90
반응형

출처 : https://www.youtube.com/watch?v=MF7WZmh1gIk&list=PLVsNizTWUw7FqN2gq79Cb3R6qkS7mqOJk&index=65

 

 

FTP 개요

  • FTP(File Transfer Protocol)는 파일을 전송하기 위한 서비스이다.
  • 웹에서 FTP의 고유 기능인 파일 전송을 편리하게 할 수 있게 되어서 예전보다 인기는 떨어졌다.
  • 파일 전송 자체를 위해서는 성능이 뛰어나다.
  • vsftpd(Very Secure FTPD)는 Rocky Linux에서 제공해준다.
    • vsftpd는 Rocky Linux에서 기본적으로 제공되며, 리눅스와 유닉스 환경에서 보안성과 성능이 우수한 FTP 서버로 인정받고 있다.
    • 외부에서 제공하는 pure-ftpd도 많이 사용된다.

 

vsftpd 설치 및 운영

 

실습 목표

  • vsftpd를 설치 및 운영한다.
  • 익명(anonymous) 사용자도 업로드 되도록 설정한다.
  • vsftpd.conf 파일의 설정법을 익힌다.

 

사전 작업

server, Winclient 가상 머신을 초기화하고 부팅한 다음, server 가상 머신은 root 사용자로 접속한다.

 

 

vsftpd 패키지 설치 및 가동

etc-image-0

 

vsftpd 패키지를 설치한다.

dnf -y install vsftpd

 

etc-image-1

 

vsftpd에 anonymous로 접속되는 디렉토리는 /var/ftp/ 이다. 다음 명령을 입력해 이 디렉토리 아래에 있는 /pub 디렉토리에 샘플 파일을 몇 개 복사하고 서비스를 가동한다. 이 복사한 파일(file1) 이 우리가 배포해 볼 파일이다.

cd /var/ftp
cd pub
cp /boot/vmlinuz-5* file1

 

etc-image-2

 

vsftpd 를 재시작하고 상시 가동되도록 설정한다.

systemctl restart vsftpd
systemctl enable vsftpd

 

외부에서 FTP 서버에 원할하게 접근할 수 있도록 잠시 방화벽을 꺼둔다.

systemctl stop firewalld

 

etc-image-3

 

ID나 PW가 별도로 없는 사용자(익명 사용자)가 사용을 할 수 있도록 설정하자.

gedit 에디터로 /etc/vsftpd/vsftpd.conf 파일을 열고 12행의 anonymous_enable을 YES 로 변경하고 저장한다.

gedit /etc/vsftpd/vsftpd.conf

12행: anonymous_enable=YES

 

설정을 변경했으므로 vsftpd 서비스를 재시작한다.

systemctl restart vsftpd

 

 

FTP 서버 접속 및 파일 다운로드/업로드

etc-image-4

 

Winclient에서 웹 브라우저를 열고 https://filezilla-project.org 에 접속해서 Windows용 FileZilla Client를 다운로드한다.

 

다운로드 받고 기본값으로 설치한다.

 

etc-image-5

 

설치를 완료하고 filezilla 프로그램을 실행한다.

 

호스트에 우리의 server 가상 머신의 IP 주소인 192.168.111.100 을 입력하고 사용자명은 anonymous 비밀번호는 맘대로 입력한다. 포트는 비워놓으면 자동으로 설정해주므로 공백으로 놔둔다. 빠른 연결을 클릭한다.

 

etc-image-6

 

우측의 리모트 사이트가 우리의 FTP 서버이고, 좌측이 우리의 WinClient PC이다. pub 폴더로 들어가면 우리가 복사해서 넣어두었던 file1이 보인다.

 

etc-image-7

 

FTP 서버에 있는 파일을 다운로드 하는 방법은 해당 파일을 드래그해서 내가 다운로드 받고 싶은 폴더로 드래그하면 된다.

 

etc-image-8

 

다운로드 받은 폴더로 가보면 파일이 다운로드 받아져있는 것을 확인할 수 있다.

 

etc-image-9

 

이번에는 반대로 WinClient 에 있는 파일을 FTP 서버로 업로드 해보자. 에러가 발생하고 전송이 되지 않는다.

왜냐하면 FTP 서버에서 기본적으로 anonymous 사용자는 다운로드만 허용하고 업로드는 허용되지 않기 때문이다.

 

server 가상 머신으로 돌아가 업로드도 허용되도록 설정해보자.

 

etc-image-10

 

다시 server에서 gedit 에디터로 /etc/vsftpd/vsftp.conf 파일을 열고 다음과 같이 수정한다.

gedit /etc/vsftpd/vsftpd.conf

18행: write_enable=YES						->로컬 사용자가 저장, 삭제, 디렉토리 생성 허용
28행 주석제거: anon_upload_enable=YES		-> anonymous 사용자의 파일 업로드 허가
32행 주석제거: anon_mkdir_write_enable=YES	-> anonymous 사용자의 디렉토리 생성 허가

 

etc-image-11

 

/var/ftp/pub의 소유권을 바꾸고 vsftpd 서비스를 재시작해서 변경된 설정을 적용시킨다.

chown ftp.ftp /var/ftp/pub
systemctl restart vsftpd

 

etc-image-12

 

FileZilla를 닫은 후 다시 실행하고 좌측 상단에 사이트 관리자를 클릭한다.

사이트 관리자에서 하단의 새 사이트를 클릭해 새 사이트를 생성한다. 입력할 내용은 위 그림을 참고한다.

 

설정이 끝나면 확인 버튼을 클릭한다.

 

다시 사이트 관리자로 들어가 생성한 사이트를 클릭하고 연결을 클릭한다.

 

etc-image-13

 

다시 로컬 사이트(WinClient)에 있는 파일을 리모트 사이트(FTP server)에 업로드하면 정상적으로 업로드가 된다.

 

etc-image-14

 

익명 사용자가 아닌 server 가상 머신에 로컬 사용자로 접속을 시도하면 로컬 사용자의 home 디렉토리로 접속이 된다.

접속이 잘 되는 이유는 vsftpd.conf 파일에서 local_enable=YES 로 설정되어있기 때문이다.

 

 

텍스트 모드에서 FTP 접속

server(B) 가상 머신을 초기화하고 부팅한다. root 사용자로 접속한다.

 

EPEL 저장소에서 제공하는 FTP 클라이언트인 ncftp 패키지를 설치한다.

dnf -y install epel-release
dnf -y install ncftp

 

etc-image-15

 

ncftp 명령을 입력해 FTP 서버에 접속한다. 접속한 다음, pub 디렉토리로 이동하면 우리가 업로드했던 파일들이 존재한다.

ncftp 192.168.111.100
ls
cd pub
ls -l

 

etc-image-16

 

파일을 다운로드한다. ls -l 명령으로 확인하면 파일이 정상적으로 다운로드 된 것을 확인할 수 있다.

get file1	-> file1 파일 다운로드
bye			-> ftp 클라이언트 종료

 

 

728x90
반응형