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 패키지 설치 및 가동

 

vsftpd 패키지를 설치한다.

dnf -y install vsftpd

 

 

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

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

 

 

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

systemctl restart vsftpd
systemctl enable vsftpd

 

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

systemctl stop firewalld

 

 

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 서버 접속 및 파일 다운로드/업로드

 

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

 

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

 

 

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

 

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

 

 

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

 

 

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

 

 

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

 

 

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

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

 

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

 

 

다시 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 사용자의 디렉토리 생성 허가

 

 

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

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

 

 

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

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

 

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

 

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

 

 

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

 

 

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

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

 

 

텍스트 모드에서 FTP 접속

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

 

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

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

 

 

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

ncftp 192.168.111.100
ls
cd pub
ls -l

 

 

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

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

 

 

728x90
반응형