강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

리눅스마스터1급 : vsftpd 서버 설치 및 사용하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터1: vsftpd 서버 설치 및 사용하기 

 






 

1) vsftpd 설치 및 실행

 

 

SULinux CentOS 최신 버전에서 기본적으로 vsftpd를 지원하며, 리눅스 설치 시 자동으로 설치된다.

 

 

 

vsftpd가 설치되어 있는지를 다음과 같이 확인해 본다.

 

 

 

 

 

[root@RockyLinux01 ~]# rpm -qa | grep vsftp

vsftpd-3.0.5-4.el9.x86_64

[root@RockyLinux01 ~]#

[root@RockyLinux01 ~]# rpm -ql vsftpd

/etc/logrotate.d/vsftpd

/etc/pam.d/vsftpd

/etc/vsftpd

/etc/vsftpd/ftpusers

/etc/vsftpd/user_list

/etc/vsftpd/vsftpd.conf

/etc/vsftpd/vsftpd_conf_migrate.sh

/usr/lib/.build-id

/usr/lib/.build-id/4a

/usr/lib/.build-id/4a/bc78fa0b2b374e5db1c57b48e85978d886a724

/usr/lib/systemd/system-generators/vsftpd-generator

/usr/lib/systemd/system/vsftpd.service

/usr/lib/systemd/system/vsftpd.target

/usr/lib/systemd/system/vsftpd@.service

/usr/sbin/vsftpd

/usr/share/doc/vsftpd

/usr/share/doc/vsftpd/AUDIT

/usr/share/doc/vsftpd/BENCHMARKS

/usr/share/doc/vsftpd/BUGS

/usr/share/doc/vsftpd/COPYING

/usr/share/doc/vsftpd/Changelog

/usr/share/doc/vsftpd/EXAMPLE

/usr/share/doc/vsftpd/EXAMPLE/INTERNET_SITE

/usr/share/doc/vsftpd/EXAMPLE/INTERNET_SITE/README

/usr/share/doc/vsftpd/EXAMPLE/INTERNET_SITE/vsftpd.conf

/usr/share/doc/vsftpd/EXAMPLE/INTERNET_SITE/vsftpd.xinetd

/usr/share/doc/vsftpd/EXAMPLE/INTERNET_SITE_NOINETD

/usr/share/doc/vsftpd/EXAMPLE/INTERNET_SITE_NOINETD/README

/usr/share/doc/vsftpd/EXAMPLE/INTERNET_SITE_NOINETD/vsftpd.conf

/usr/share/doc/vsftpd/EXAMPLE/PER_IP_CONFIG

/usr/share/doc/vsftpd/EXAMPLE/PER_IP_CONFIG/README

/usr/share/doc/vsftpd/EXAMPLE/PER_IP_CONFIG/hosts.allow

/usr/share/doc/vsftpd/EXAMPLE/README

/usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_HOSTS

/usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_HOSTS/README

/usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS

/usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS/README

/usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS/logins.txt

/usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS/vsftpd.conf

/usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS/vsftpd.pam

/usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS_2

/usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS_2/README

/usr/share/doc/vsftpd/FAQ

/usr/share/doc/vsftpd/INSTALL

/usr/share/doc/vsftpd/LICENSE

/usr/share/doc/vsftpd/README

/usr/share/doc/vsftpd/README.security

/usr/share/doc/vsftpd/REWARD

/usr/share/doc/vsftpd/SECURITY

/usr/share/doc/vsftpd/SECURITY/DESIGN

/usr/share/doc/vsftpd/SECURITY/IMPLEMENTATION

/usr/share/doc/vsftpd/SECURITY/OVERVIEW

/usr/share/doc/vsftpd/SECURITY/TRUST

/usr/share/doc/vsftpd/SIZE

/usr/share/doc/vsftpd/SPEED

/usr/share/doc/vsftpd/TODO

/usr/share/doc/vsftpd/TUNING

/usr/share/doc/vsftpd/vsftpd.xinetd

/usr/share/man/man5/vsftpd.conf.5.gz

/usr/share/man/man8/vsftpd.8.gz

/var/ftp

/var/ftp/pub

[root@RockyLinux01 ~]#

 

 

 

 

만약 설치되어 있지 않다면 yum install vsftpd 를 입력하여 설치해준다

 

RPM 패키지에 의해서 설치되는 파일로는 다음과 같다.

 

 

 

 

 

파일명

설명

/etc/logrotate.d/vsftpd.log

로그 로테이션 설정 파일

/etc/pam.d/vsftpd

PAM 인증 파일

/etc/vsftpd/ftpusers

FTP 서버에 로그인할 수 없는 사용자 목록

/etc/vsftpd/user_list

FTP 서버에 로그인할 수 있는 사용자 목록

/etc/vsftpd/vsftpd.conf

vsftpd 설정 파일

/usr/sbin/vsftpd

vsftpd 데몬 파일

/usr/shard/doc/vsftpd-2.0.5

각종 설정 예제 및 설치 문서 포함

 

 

 

vsftpd 데몬은 기본적으로 vsftpd 스크립트를 이용하여 실행, 중지 한다.

 

 

 

 

 

 

 

[root@RockyLinux01 ~]# systemctl start vsftpd

[root@RockyLinux01 ~]#

[root@RockyLinux01 ~]# ps -ef | grep vsftpd

root 1101 1 0 09:42 ? 00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

root 7568 1778 0 15:30 pts/0 00:00:00 grep --color=auto vsftpd

[root@RockyLinux01 ~]#

[root@RockyLinux01 ~]#

[root@RockyLinux01 ~]# netstat -anp | grep vsftpd

tcp6 0 0 :::21 :::* LISTEN 1101/vsftpd

[root@RockyLinux01 ~]#

[root@RockyLinux01 ~]#

[root@RockyLinux01 ~]#

[root@RockyLinux01 ~]# systemctl stop vsftpd

[root@RockyLinux01 ~]#

[root@RockyLinux01 ~]# ps -ef | grep vsftpd

root 7576 1778 0 15:31 pts/0 00:00:00 grep --color=auto vsftpd

[root@RockyLinux01 ~]#

 

 

2) vsftpd 서버 환경 설정

 

 

앞서 vsftpd 서버의 데몬 설치와 실행에 대하여 살펴보았다.

 

 

 

이제부터 vsftpd.conf 파일에서 사용되는 옵션을 자세히 살펴보겠다.

 

 

 

 

 

 

 

 

anonymous_enable = YES

 

 

 

 

 

 

 

ftpanonymous 계정을 이용한 익명(anonymous) 로그인을 허용할 것인가를 설정하는 옵션이다.

 

 

 

 

 

 

 

 

 

anon_upload_enable = NO

 

 

 

 

 

 

 

write_enable 옵션이 허용될 때 익명 FTP 접속시 익명의 사용자가 업로드 가능한 디렉토리에서 파일을 업로드할 수 있도록 설정해 주는 옵션이다.

 

 

 

 

 

 

 

 

 

anon_mkdir_write_enable = NO

 

 

 

 

 

 

 

write_enable 옵션이 허용되었을 때 쓰기 가능한 디렉토리내에서 새로운 디렉토리를 생성할 수 있도록 할 것인가를 설정해 주는 옵션이다.

 

 

 

 

 

 

 

 

 

deny_email_enable = NO

 

 

 

 

 

 

 

익명 FTP 서버에서 익명 계정(ftp 또는 anonymous)이 로그인할 때 banned_email_file 옵션으로 지정된 파일에 포함된 이메일 주소 형태로는 로그인할 수 없도록 할 수 있는데, 이러한 기능을 허용할 것인가를 설정하는 옵션이다.

 

 

 

 

 

 

 

 

 

banned_email_file = /etc/vsftpd/banned-emails

 

 

 

 

 

 

 

익명 접속시 허용하지 않을 이메일 패스워드 형태를 담고 있는 파일을 명시하는 옵션으로 deny_email_enable 옵션과 함께 작동된다.

 

 

 

 

 

 

 

 

 

anon_max_rate = 0

 

 

 

 

 

 

 

익명 접속시 다운로드 가능한 최대 전송율을 지정하는 옵션으로, 단위는 bps(bytes/secound)이다.

 

 

 

기본값은 0으로 무제한을 의미한다.

 

 

 

 

 

 

 

 

 

anon_root = 경로

 

 

 

 

 

익명 로그인이 되었을 때 위치할 홈 경로를 명시하는 설정으로, 경로가 올바르지 않으면 이 옵션은 무시될 수 있다.

 

 

 

 

 

 

 

 

 

local_enable = YES

 

 

 

 

 

 

로컬 호스트상에 있는 사용자의 로그인을 허용할 것인가를 설정하는 옵션이다.

 

 

 

NO로 설정할 경우 /etc/passwd 파일에 존재하는 사용자의 로그인을 허용하지 않는다.

 

 

 

실명 접속에서 이 값을 YES로 설정해야 계정 사용자들이 로그인할 수 있다.

 

 

 

 

 

 

 

 

 

write_enable = YES

 

 

 

 

 

 

 

STOR(저장), DELE(삭제), RNFR(이름변경), RMD(경로삭제)등과 같은, 파일을 변경하는 FTP 명령을 사용할 수 있도록 할 것인가를 설정하는 옵션이다.

 

 

 

.

 

 

 

 

 

local_umask = 022

 

 

 

 

 

 

 

파일이 생성될 때 파일 퍼미션에 적용될 umask값을 지정해 주는 옵션이다.

 

 

 

 

 

 

 

 

dirmessage_enable = NO

 

 

 

 

 

 

 

사용자가 새로운 디렉토리로 이동하였을 때 그 디렉토리에 있는 메시지 파일을 사용자에게 보여줄 것인가를 설정해 주는 옵션이다.

 

 

 

디렉토리내의 메시지 파일은 message_file 옵션에 의해서 정의되며, 이 옵션으로 지정되는 기본 파일명은 .message 이다.

 

 

 

 

 

 

 

 

 

userlist_enable = NO

 

 

 

 

 

 

 

userlist_file 옵션으로 명시된 파일안에 있는 계정들만 로그인을 허용할 것인가를 설정하는 옵션이다.

 

 

 

기본적으로 /etc/vsftpd/user_list에 있는 계정들만 vsftpd 서버에 로그인할 수 있게 된다.

 

 

 

 

 

 

 

 

 

listen_port = 21

 

 

 

 

 

 

 

vsftpd 데몬이 외부 접속 요청에 통신할 ftp 포트를 설정하는 옵션이다.

 

 

 

 

 

 

 

 

 

virtual_use_local_privs = NO

 

 

 

 

 

 

 

가상 사용자 접속 설정에서 사용되는 옵션으로 익명 접속 사용자와 동일한 권한을 가진 가상 사용자의 권한을 로컬 사용자와 같은 권한을 가질수 있도록 설정하는 옵션이다.

 

 

 

 

 

 

 

 

 

deny_file

 

 

 

 

 

 

 

/다운로드를 금지할 파일 형태를 지정하는 옵션으로, 이 옵션으로 명시된 파일은 전송이 차단된다.

 

 

 

이 옵션으로 deny_file={*.exe,*.pif,*.mpg}와 같이 파일 확장자 사이를 콤마로 구분하여 지정하였다면 파일 확장자가 exepif, mpg로 된 파일의 전송은 금지된다.

 

 

 

 

 

 

 

 

 

hide_file

 

 

 

 

 

 

 

FTP접속시 디렉토리/파일 목록에서 숨길 파일 형태를 지정하는 옵션으로 콤마로 명시할 파일들을 구분한다.

 

 

 

 

 

 

 

 

 

max_clients = 100

 

 

 

 

 

 

 

vsftpd 서버에 접속할 수 있는 클라이언트의 최대 수를 제한하는 옵션이다.

 

 

 

 

 

 

 

 

 

max_per_ip = 0

 

 

 

 

 

 

 

호스트당 접속할 때 최대 접속수를 지정하는 옵션으로 기본 값은 무제한을 의미하는 0이다.

 

 

 

 

 

 

 

 

 

chroot_local_user = NO

 

 

 

 

 

 

 

로컬 시스템에 존재하는 사용자들이 자신의 디렉토리에 대해서 chroot를 가질 것인가를 설정하는 옵션이다.

 

 

 

사용자들이 자신의 디렉토리 이외에 상위 디렉토리로 접근하지 못하도록 보안상 이 옵션을 켜 놓는 것이 바람직하다.

 

 

 

 

 

 

 

 

 

hide_ids = NO

 

 

 

 

 

 

 

디렉토리 목록에서 사용자의 ID와 그룹의 ID를 보여주지 않고, 모두 ftp로 표시할 것인가를 설정하는 옵션이다.

 

 

 

이 옵션을 YES로 하면 모든 파일의 소유권은 ftp로 표시된다.

 

 

 

 

 

 

 

 

 

pasv_enable = YES

 

 

 

 

 

 

 

수동 데이터 연결 모드(Passive mode)로 지원할 것인지를 설정하는 옵션이다.

 

 

 

 

 

 

 

 

 

pasv_max_port / pasv_min_port

 

 

 

 

 

 

 

수동 모드로 데이터 연결시 할당될 최대 및 최소 포트를 설정하는 옵션으로, 기본값은 모두 0(포트제한없음)이다 수동모드로 연결될 때의 포트는 일반적으로 50000~60000 포트 사이로 지정한다.

 

 

 

 

 

 

 

 

 

ftp_data_port = 20

 

 

 

 

 

 

능동 데이터 연결모드(Active mode)로 데이터 연결 시 사용할 포트를 지정하는 옵션이다.

 

 

 

 

 

 

 

 

 

connect_from_port_20 = YES

 

 

 

 

 

 

 

FTP 서버는 포트 21번으로 클라이언트 접속을 받아들이고, 데이터는 20번 포트를 이용하여 전송한다.

 

 

 

이 때 데이터 전송 포트를 포트 20번으로 사용할 것인가를 설정하는 옵션으로 서버를 능동 모드로 운영하고자 한다면 이 옵션을 활성화 해야 한다.

 

 

 

 

 

 

 

 

 

connect_timeout = 60

 

 

 

 

 

 

 

클라이언트가 서버의 제어포트에 연결되었을 때의 타임아웃 시간을 설정하는 옵션으로 기본값은 60초이다.

 

 

 

타임아웃 시간이 초과하게 되면 접속은 끊어진다.

 

 

 

 

 

 

 

 

 

xferlog_enable = YES

 

 

 

 

 

 

 

파일 송수신 결과를 xferlog_file 옵션으로 지정된 로그 파일에 저장할 것인가를 지정하는 옵션이다

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,045 명
  • 현재 강좌수 :  35,861 개
  • 현재 접속자 :  67 명