본문 바로가기

네트워크 서버 구축 실무

vsftpd의 설치와 운영

[STEP 1] 'yum -y install vsftpd'를 입력해 vsftpd 패키지를 설치한다.

1-1. vsftpd'anonymous (익명)' 으로 접속되는 디렉토리는 /var/ftp/다. vsftpd 패키지의 서비스 이름은 vsftpd 다.

anonymous 사용자는 ftp 전용의 사용자로 모든 리눅스에 내장된 사용자다. 특별히 암호 없이도 ftp 서버에 접속할 수 있다. 외부에서 접속할 때는 사용자 이름이 anonymous지만, 리눅스 내부에서는 ftp라는 이름으로 사용된다. 그리고 이 ftp사용자의 홈 디렉토리는 /var/ftp다. 그래서 anonymous 사용자로 접속하면 접속되는 디렉토리는 /var/ftp가 된다.

1-2. 'firewall-cmd' 명령어를 통해 ftp 서비스를 허용해준다.

[STEP 2] 윈도우에서 프리웨어 FTP 클라이언트인 FileZilla를 사용해 FTP 서버에 접속해본다.

※ FTP 서버에 접속해서 파일을 다운로드하는 일에 웹 브라우저를 사용해도 된다. 웹 브라우저의 주소줄에 ftp://서버IP주소/ 만 적어주면 기본적으로 anonymous 사용자로 접속된다.

2-1. 기본적으로 FTP 서버에 anonymous 사용자로 접속하면 [다운로드]는 허용되지만, [업로드]는 허용되지 않는다. 그러므로 vsftpd의 설정파일인 /etc/vsftpd/vsftpd.conf 파일을 수정해야 한다.

vi 에디터로 vsftpd 설정파일인 /etc/vsftpd/vsftpd.conf 파일을 열고 다음과 같이 수정한다. 

 FTP 설정파일 ( /etc/vsftpd/vsftpd.conf )

 19행쯤 확인

 write_enable=YES

 기본적인 업로드 허용

 29행쯤

 anon_upload_enable=YES

 주석(#)제거(anonymous 사용자의 업로드 허용)

 33행쯤

 anon_mkdir_write_enable=YES

 주석(#)제거(anonymous 사용자의 디렉토리 생성 허용)

 아무줄에

 ftpd_banner= 환영!! Fedora 19 FTP 서버!!

 접속 시 환영 메시지 추가

※ 16행의 local_enable=YES 의 경우 FTP서버가 설치된 리눅스 상의 일반사용자가 FTP클라이언트를 통해 접속할 수 있도록 허용한 경우이다. 예를들어 현재 리눅스서버에 fedora 사용자가 존재한다면 fedora 사용자도 FTP서버에 접속이 가능하다. 만약 리눅스 상의 로컬사용자의 FTP서버 접근을 허용하지 않고자 한다면 local_enable=YES 부분을 주석(#)처리 하면된다.

FTP설정파일인 vsftpd.conf 파일의 16행의 local_enable=YES 를 주석(#)처리 후 ftp 서비스를 systemctl restart vsftpd 를 통해 재시작 후 FTP 클라이언트 프로그램을 통해 fedora 사용자로 접속해보면 FTP서버에 접속이 안되는 것을 알 수 있다.

 vsftpd.conf 파일에서 자주 사용하는 옵션

anonymous_enable

anonymous(익명) 사용자의 접속을 허가할지 설정 

local_enable

로컬사용자의 접속 허가 여부를 설정

write_enable

로컬 사용자가 저장, 삭제, 디렉토리 생성 등의 명령을 실행하게 할 것인지 설정(anonymous 사용자는 해당 없음)

anon_upload_enable 

anonymous 사용자의 파일 업로드 허가 여부를 설정 

anon_mkdir_write_enable 

anonymous 사용자의 디렉토리 생성 허가 여부를 설정 

dirlist_enable 

접속한 디렉토리의 파일 리스트를 보여줄지 설정 

download_enable 

다운로드의 허가 여부를 설정 

listen_port 

FTP 서비스의 포트 번호를 설정(기본: 21번) 

deny_file 

업로드를 금지할 파일을 지정(예: deny_file={*.mpg,*.mpeg,*.avi}) 

hide_file 

보여주지 않을 파일을 지정(예: hide_file={*.gif,*.jpg,*.png}) 

max_clients 

FTP 서버의 동시 최대 접속자 수를 지정 

max_per_ip 

1개 컴퓨터가 동시에 접속할 수 있는 접속자 수를 지정 

2-2. 업로드할 /var/ftp/pub/ 디렉토리의 소유권도 anonymous 사용자의 접속 이름인 ftp로 바꿔야 한다. 'chown ftp.ftp /var/ftp/pub/' 을 입력해 바꾼다. 변경 후에는 systemctl restart vsftpd 를 입력해 vsftpd 서비스르 다시 시작한다.

※ 'chown ftp.ftp /var/ftp/pub/' 을 실행해 소유권(Ownership)을 변경하는 대신에, 'chmod 777 /var/ftp/pub/' 을 실행해 허가권(Permission)을 변경해도 업로드할 수 있다.

2-3. Filezilla 등의 FTP 클라이언트 프로그램을 통해 FTP 서버에 접속하면 vsftpd.conf 파일에서 설정했던 환영메시지가 보인다. 아무파일이나 FTP 서버의 pub 디렉토리에 파일을 업로드해본다. 이변이 없는한 이상없이 파일이 업로드 되는 것을 확인할 수 있다.

[STEP 3] 이번에는 윈도우가 아닌 텍스트 모드의 리눅스에서 FTP 접속을 테스트해보자.

3-1. 텍스트 모드에서 비교적 편리하게 사용할 수 있는 ftp 클라이언트인 ncftp 를 사용 'yum -y install ncftp' 를 통해 ncftp 패키지를 설치한다.

3-2. 'ncftp' 명령어를 입력해 FTP 서버에 접속한 후, '/pub' 디렉토리에 파일을 업로드하고 다운로드해보자.