리눅스마스터1급 : vsftpd 서버 설치 및 사용하기
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,422 조회
- 0 추천
- 목록
본문
리눅스마스터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 |
|
|
|
|
ftp와 anonymous 계정을 이용한 익명(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}와 같이 파일 확장자 사이를 콤마로 구분하여 지정하였다면 파일 확장자가 exe와 pif, 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 옵션으로 지정된 로그 파일에 저장할 것인가를 지정하는 옵션이다.
관련자료
-
이전
-
다음