Linux vsftpd 설치 및 활용법
페이지 정보
본문
리눅스의 ftp 로 vsftpd 가 있습니다.
1. 시스템에 설치되 있는지 확인
1-1. yum 으로 확인
[root@localhost ~]# yum list installed ftp
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.daumkakao.com
* epel: ftp.riken.jp
* extras: ftp.daumkakao.com
* updates: ftp.daumkakao.com
* webtatic: sp.repo.webtatic.com
Error: No matching Packages to list
[root@localhost ~]# yum list installed vsftp
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.daumkakao.com
* epel: ftp.riken.jp
* extras: ftp.daumkakao.com
* updates: ftp.daumkakao.com
* webtatic: sp.repo.webtatic.com
Error: No matching Packages to list
1-2. rpm 으로 확인
[root@localhost ~]# rpm -qa | grep vsftpd
vsftpd-3.0.2-22.el7.x86_64
1-3. rpm 설치파일 삭제
[root@localhost ~]# rpm -e vsftpd
warning: /etc/vsftpd/vsftpd.conf saved as /etc/vsftpd/vsftpd.conf.rpmsave
[root@localhost ~]# rpm -qa | grep vsftpd
2. 설치되있지 않을 경우 2가지 방법중 선택해서 설치 합니다.
2-1. yum 자동설치
[root@localhost ~]# yum install ftp
[root@localhost ~]# yum install vsftpd
2-2. 최신버전 다운로드 후 설치 : vsftpd 2.2.0 ( http://vsftpd.beasts.org )
[root@localhost ~]# wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.2.1.tar.gz
3. 주요 설정
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
# anonymous 사용자의 접속 허용 여부 ( YES -> NO )
anonymous_enable=NO
# 로컬 계정 사용자의 접속 허용여부 ( YES -> NO )
local_enable=NO
# ftp로 접속이 된 상태에서 사용가능한 ftp 전용 명령어들을 허용 20
write_enable=YES
# ftp 로그파일의 위치 ( 활성화 )
xferlog_file=/var/log/vsftpd.log
# 아스키모드로 설정할려면 ( 활성화 )
ascii_upload_enable=YES
ascii_download_enable=YES
# FTP 접속환영 문구 변경 및 활성화
#ftpd_banner=welcome to blah FTP service.
ftpd_banner=welcome to FTP service.
# 홈 디렉토리 상위로 이동금지 ( 활성화 )
# 설정 후 /etc/vsftpd/chroot_list 파일이 없다는 오류가 발생하게 되면, 해당파일을 자동생성해줌
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
# 추가하지 않으면 FTP 접속시도하면 500 OOPS 에러가 발생 ( 추가 )
# 응답: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
allow_writeable_chroot=YES
# 숨김파일을 보이게하기
force_dot_files=YES
# FTP 접속시 소유권숨기기
hide_ids=YES
# ls-R 명령어 허용하기 ( 활성화 )
ls_recurse_enable=YES
# openssh 에 chroot 패치된것을 같이 사용하기
passwd_chroot_enable=YES
# 전송속도를 제한할 때 (숫자의 단위는 Bytes/Sec)
local_max_rate=300000
# 동시 접속자수 제한 (숫자만큼 제한)
max_clients=10
# IP당 접속자수 제한 (수자만큼 제한)
max_per_ip=2
#listen=NO
# 21번 port 다른 것으로 변경하기 https://www.happyjung.com/lecture/2233
listen_ipv6=YES
# 확장자의 업로드 금지
deny_file={*.확장자,*.확장자}
# 특정파일 숨기기
hide_file={*.확장자,.hide,hide*.h?}
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
# 마지막에 내용 추가 ( 추가 )
# specify root directory ( if don't specify, users' home directory become FTP home directory)
# local_root=public_html
use_localtime=YES
4. root 등 특정 유저 FTP 접속을 차단
/etc/vsftpd/userlist 는 vsftpd 에서 기본으로 사용하는 계정 별 접속제어 파일로 파일에 등록된 사용자들은 ftp 에서 접속을 거부하게 된다
이때, /etc/vsftpd/vsftpd.conf 파일에서 'userlist_deny=NO' 로 설정 되어있을 경우에는 userlist 에 등록된 사용자들은 접속을 허용하는 사용자들이며 'userlist_deny=YES' 로 설정 되어있을 경우에는 userlist 에 등록된 사용자들은 접속 거부하는 사용자들 임을 뜻한다
[root@localhost ~]# vi /etc/vsftpd/ftpusers
[root@localhost ~]# vi /etc/vsftpd/user_list
5. 홈 패스보다 위에 액세스 시키지 않는 유저 일람
vsftpd 기본 설정에서는 자신의 홈디렉토리 이외에도 root 디렉토리까지 상위 폴더로 이동이 가능합니다.
상위 디렉토리 이동을 막는 방법입니다.
chroot_list 파일 생성 및 상위 폴더 접근을 허용할 ID를 한줄에 하나씩 등록
[root@localhost ~]# vi /etc/vsftpd/chroot_list
jung
6. 방화벽 설정
OS 버전 확인
[root@localhost ~]# rpm -qa | grep release
centos-release-7-4.1708.el7.centos.x86_64
CentOS7 부터 방화벽 제어가 iptables 에서 firewall 로 변경되었습니다.
[ CentOS 6.8 ]
7-1. iptables 설정
[root@localhost ~]# vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
7-2. iptable 재시작
[root@localhost ~]# /etc/init.d/iptables restart
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: [ OK ]
[root@localhost ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:443
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
8. SE LINUX 설정
[root@localhost ~]# getsebool -a | grep ^ftp_home_dir
ftp_home_dir --> off
[root@localhost ~]# setsebool -P ftp_home_dir on
9. 부팅시 FTP 자동실행 및 재시작
[root@localhost ~]# chkconfig --level 2345 vsftpd on
[root@localhost ~]# service vsftpd restart
Shutting down vsftpd: [FAILED]
Starting vsftpd for vsftpd: [ OK ]
[ CentOS 7.3 / 7.4 ]
7. 방화벽
# firewall 실행여부 확인
실행 중이면 running , 실행 중이 아니면 not running 을 출력합니다.
[root@localhost ~]# firewall-cmd --state
running
# 사용 가능한 서비스/포트 출력하기
[root@localhost ~]# firewall-cmd --list-all
[ 샘플1 ]
public (active)
target: default
icmp-block-inversion: no
interfaces: enp2s0
sources:
services: dhcpv6-client ssh
ports: 80/tcp 3306/tcp
protocols:
masquerade: no
forward-ports:
sourceports:
icmp-blocks:
rich rules:
[ 샘플2 ]
public (active)
target: default
icmp-block-inversion: no
interfaces: enp3s0f0
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
# ftp 서비스 추가
[root@localhost ~]# firewall-cmd --add-service=ftp
success
# 21 tcp 포트를 추가
[root@localhost ~]# firewall-cmd --add-port=21/tcp
success
# trusted 존에 ftp 서비스 추가
[root@localhost ~]# firewall-cmd --zone=trusted --add-service=ftp
success
# 시스템 재부팅 또는 방화벽 재시작 후에도 작동되도록 옵션 추가
[root@localhost ~]# firewall-cmd --permanent --add-service=ftp
success
# 방화벽 재실행
[root@localhost ~]# firewall-cmd --reload
# 사용 가능한 서비스/포트 재확인
[root@localhost ~]# firewall-cmd --list-all
[ 샘플1 ]
public (active)
target: default
icmp-block-inversion: no
interfaces: enp2s0
sources:
services: dhcpv6-client ftp ssh
ports: 3306/tcp 80/tcp 21/tcp
protocols:
masquerade: no
forward-ports:
sourceports:
icmp-blocks:
rich rules:
[ 샘플2 ]
public (active)
target: default
icmp-block-inversion: no
interfaces: enp3s0f0
sources:
services: dhcpv6-client ssh
ports: 21/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
8. SE LINUX 설정
[root@localhost ~]# getsebool -a | grep ^tftp_home_dir
tftp_home_dir --> off
[root@localhost ~]# setsebool -P tftp_home_dir on
9. 부팅시 FTP 자동실행 및 재시작
[root@localhost ~]# systemctl enable vsftpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@localhost ~]# systemctl restart vsftpd.service
[ 공통 ]
10. 프로세스 확인 및 포트확인
[root@localhost ~]# ps -ef | grep vsftpd
root 16352 1 0 17:36 ? 00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root 16376 13974 0 17:41 pts/0 00:00:00 grep --color=auto vsftpd
11. FTP 접속
[root@localhost ~]# ftp
ftp> open
(to) 1.2.3.4
connected to 1.2.3.4 (1.2.3.4).
220 (vsFTPd 2.2.2)
Name (1.2.3.4:root) : happyjung
password:
230 Login successsful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
12. 문제해결
12-1. 530 Login incorrect.
- 계정 아이디와 비밀번호를 확인 후 passwd 계정명 명령으로 비밀번호를 다시 설정합니다.
- /etc/vsftpd.ftpusers 에 등록된 사용자라면 ftp 접속이 안되므로 이 파일에서 삭제합니다.
12-2. 업로드 파일크기 제한하기
- 1.2.1 버전까지는 vsftpd 자체에 설정하는 방법이 없습니다.
- 현재 2.2.0 까지 업그레이드가 되었으니 혹시 되려나요?
12-3. FTP 업로드시
응답: 553 Could not create file.
오류: 치명적 오류
ls -l 했을때 나타나는 소유권과 그룹이 login id와 다르면 위와 같은 에러가 발생합니다.
# cd /home
# ls -al
# chown -R 유저명.그룹명 폴더명
12-4. 530 Login incorrect.
- 계정 아이디와 비밀번호를 확인 후 passwd 계정명 명령으로 비밀번호를 다시 설정합니다.
- /etc/vsftpd.ftpusers 에 등록된 사용자라면 ftp 접속이 안되므로 이 파일에서 삭제합니다.
12-5. 업로드 파일크기 제한하기
- 1.2.1 버전까지는 vsftpd 자체에 설정하는 방법이 없습니다.
- 현재 2.2.0 까지 업그레이드가 되었으니 혹시 되려나요?
12-6. 500 OOPS: vsftpd: both local and anonymous access disabled!
local 관련 옵션 변경
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
local_enable=YES
chroot_local_user=YES
[root@localhost public_html]# systemctl restart vsftpd.service
12-7. 500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list
chroot_list 관련 주석처리
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list
[root@localhost public_html]# systemctl restart vsftpd.service
12-8. 500 Illegal PORT command
Active mode에서 IP공유기등 사설IP에서 접속을 시도할 경우 클라이언트 Data포트가 막힐 가능성이 있기 때문에 오류합니다.
참고자료
http://cafe.naver.com/swingme/248
http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-sg-ko-4/s1-server-ftp.html
http://cafe.naver.com/junixrhce/28
http://kldp.org/node/54059
https://www.cmsfactory.net/node/11421
http://egloos.zum.com/guswl47/v/6390557
http://luckyyowu.tistory.com/286
http://blog.iotinfra.net/?p=734
https://www.conory.com/note_linux/42477
http://blog.ivps.kr/50
https://forum.ubuntuusers.de/topic/vsftpd-500-oops%3A-vsftpd%3A-both-local-and-anony/
http://c8korea.blogspot.kr/2012/12/vsftpd.html
http://woosa.tistory.com/48
1. 시스템에 설치되 있는지 확인
1-1. yum 으로 확인
[root@localhost ~]# yum list installed ftp
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.daumkakao.com
* epel: ftp.riken.jp
* extras: ftp.daumkakao.com
* updates: ftp.daumkakao.com
* webtatic: sp.repo.webtatic.com
Error: No matching Packages to list
[root@localhost ~]# yum list installed vsftp
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.daumkakao.com
* epel: ftp.riken.jp
* extras: ftp.daumkakao.com
* updates: ftp.daumkakao.com
* webtatic: sp.repo.webtatic.com
Error: No matching Packages to list
1-2. rpm 으로 확인
[root@localhost ~]# rpm -qa | grep vsftpd
vsftpd-3.0.2-22.el7.x86_64
1-3. rpm 설치파일 삭제
[root@localhost ~]# rpm -e vsftpd
warning: /etc/vsftpd/vsftpd.conf saved as /etc/vsftpd/vsftpd.conf.rpmsave
[root@localhost ~]# rpm -qa | grep vsftpd
2. 설치되있지 않을 경우 2가지 방법중 선택해서 설치 합니다.
2-1. yum 자동설치
[root@localhost ~]# yum install ftp
[root@localhost ~]# yum install vsftpd
2-2. 최신버전 다운로드 후 설치 : vsftpd 2.2.0 ( http://vsftpd.beasts.org )
[root@localhost ~]# wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.2.1.tar.gz
3. 주요 설정
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
# anonymous 사용자의 접속 허용 여부 ( YES -> NO )
anonymous_enable=NO
# 로컬 계정 사용자의 접속 허용여부 ( YES -> NO )
local_enable=NO
# ftp로 접속이 된 상태에서 사용가능한 ftp 전용 명령어들을 허용 20
write_enable=YES
# ftp 로그파일의 위치 ( 활성화 )
xferlog_file=/var/log/vsftpd.log
# 아스키모드로 설정할려면 ( 활성화 )
ascii_upload_enable=YES
ascii_download_enable=YES
# FTP 접속환영 문구 변경 및 활성화
#ftpd_banner=welcome to blah FTP service.
ftpd_banner=welcome to FTP service.
# 홈 디렉토리 상위로 이동금지 ( 활성화 )
# 설정 후 /etc/vsftpd/chroot_list 파일이 없다는 오류가 발생하게 되면, 해당파일을 자동생성해줌
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
# 추가하지 않으면 FTP 접속시도하면 500 OOPS 에러가 발생 ( 추가 )
# 응답: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
allow_writeable_chroot=YES
# 숨김파일을 보이게하기
# FTP 접속시 소유권숨기기
# ls-R 명령어 허용하기 ( 활성화 )
ls_recurse_enable=YES
# openssh 에 chroot 패치된것을 같이 사용하기
# 전송속도를 제한할 때 (숫자의 단위는 Bytes/Sec)
# 동시 접속자수 제한 (숫자만큼 제한)
# IP당 접속자수 제한 (수자만큼 제한)
#listen=NO
# 21번 port 다른 것으로 변경하기 https://www.happyjung.com/lecture/2233
listen_ipv6=YES
# 확장자의 업로드 금지
# 특정파일 숨기기
userlist_enable=YES
tcp_wrappers=YES
# 마지막에 내용 추가 ( 추가 )
# specify root directory ( if don't specify, users' home directory become FTP home directory)
# local_root=public_html
use_localtime=YES
4. root 등 특정 유저 FTP 접속을 차단
/etc/vsftpd/userlist 는 vsftpd 에서 기본으로 사용하는 계정 별 접속제어 파일로 파일에 등록된 사용자들은 ftp 에서 접속을 거부하게 된다
이때, /etc/vsftpd/vsftpd.conf 파일에서 'userlist_deny=NO' 로 설정 되어있을 경우에는 userlist 에 등록된 사용자들은 접속을 허용하는 사용자들이며 'userlist_deny=YES' 로 설정 되어있을 경우에는 userlist 에 등록된 사용자들은 접속 거부하는 사용자들 임을 뜻한다
[root@localhost ~]# vi /etc/vsftpd/ftpusers
[root@localhost ~]# vi /etc/vsftpd/user_list
5. 홈 패스보다 위에 액세스 시키지 않는 유저 일람
vsftpd 기본 설정에서는 자신의 홈디렉토리 이외에도 root 디렉토리까지 상위 폴더로 이동이 가능합니다.
상위 디렉토리 이동을 막는 방법입니다.
chroot_list 파일 생성 및 상위 폴더 접근을 허용할 ID를 한줄에 하나씩 등록
[root@localhost ~]# vi /etc/vsftpd/chroot_list
jung
6. 방화벽 설정
OS 버전 확인
[root@localhost ~]# rpm -qa | grep release
centos-release-7-4.1708.el7.centos.x86_64
CentOS7 부터 방화벽 제어가 iptables 에서 firewall 로 변경되었습니다.
[ CentOS 6.8 ]
7-1. iptables 설정
[root@localhost ~]# vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
7-2. iptable 재시작
[root@localhost ~]# /etc/init.d/iptables restart
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: [ OK ]
[root@localhost ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:443
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
8. SE LINUX 설정
[root@localhost ~]# getsebool -a | grep ^ftp_home_dir
ftp_home_dir --> off
[root@localhost ~]# setsebool -P ftp_home_dir on
9. 부팅시 FTP 자동실행 및 재시작
[root@localhost ~]# chkconfig --level 2345 vsftpd on
[root@localhost ~]# service vsftpd restart
Shutting down vsftpd: [FAILED]
Starting vsftpd for vsftpd: [ OK ]
[ CentOS 7.3 / 7.4 ]
7. 방화벽
# firewall 실행여부 확인
실행 중이면 running , 실행 중이 아니면 not running 을 출력합니다.
[root@localhost ~]# firewall-cmd --state
running
# 사용 가능한 서비스/포트 출력하기
[root@localhost ~]# firewall-cmd --list-all
[ 샘플1 ]
public (active)
target: default
icmp-block-inversion: no
interfaces: enp2s0
sources:
services: dhcpv6-client ssh
ports: 80/tcp 3306/tcp
protocols:
masquerade: no
forward-ports:
sourceports:
icmp-blocks:
rich rules:
[ 샘플2 ]
public (active)
target: default
icmp-block-inversion: no
interfaces: enp3s0f0
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
# ftp 서비스 추가
[root@localhost ~]# firewall-cmd --add-service=ftp
success
# 21 tcp 포트를 추가
[root@localhost ~]# firewall-cmd --add-port=21/tcp
success
# trusted 존에 ftp 서비스 추가
[root@localhost ~]# firewall-cmd --zone=trusted --add-service=ftp
success
# 시스템 재부팅 또는 방화벽 재시작 후에도 작동되도록 옵션 추가
[root@localhost ~]# firewall-cmd --permanent --add-service=ftp
success
# 방화벽 재실행
[root@localhost ~]# firewall-cmd --reload
# 사용 가능한 서비스/포트 재확인
[root@localhost ~]# firewall-cmd --list-all
[ 샘플1 ]
public (active)
target: default
icmp-block-inversion: no
interfaces: enp2s0
sources:
services: dhcpv6-client ftp ssh
ports: 3306/tcp 80/tcp 21/tcp
protocols:
masquerade: no
forward-ports:
sourceports:
icmp-blocks:
rich rules:
[ 샘플2 ]
public (active)
target: default
icmp-block-inversion: no
interfaces: enp3s0f0
sources:
services: dhcpv6-client ssh
ports: 21/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
8. SE LINUX 설정
[root@localhost ~]# getsebool -a | grep ^tftp_home_dir
tftp_home_dir --> off
[root@localhost ~]# setsebool -P tftp_home_dir on
9. 부팅시 FTP 자동실행 및 재시작
[root@localhost ~]# systemctl enable vsftpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@localhost ~]# systemctl restart vsftpd.service
[ 공통 ]
10. 프로세스 확인 및 포트확인
[root@localhost ~]# ps -ef | grep vsftpd
root 16352 1 0 17:36 ? 00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root 16376 13974 0 17:41 pts/0 00:00:00 grep --color=auto vsftpd
11. FTP 접속
[root@localhost ~]# ftp
ftp> open
(to) 1.2.3.4
connected to 1.2.3.4 (1.2.3.4).
220 (vsFTPd 2.2.2)
Name (1.2.3.4:root) : happyjung
password:
230 Login successsful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
12. 문제해결
12-1. 530 Login incorrect.
- 계정 아이디와 비밀번호를 확인 후 passwd 계정명 명령으로 비밀번호를 다시 설정합니다.
- /etc/vsftpd.ftpusers 에 등록된 사용자라면 ftp 접속이 안되므로 이 파일에서 삭제합니다.
12-2. 업로드 파일크기 제한하기
- 1.2.1 버전까지는 vsftpd 자체에 설정하는 방법이 없습니다.
- 현재 2.2.0 까지 업그레이드가 되었으니 혹시 되려나요?
12-3. FTP 업로드시
응답: 553 Could not create file.
오류: 치명적 오류
ls -l 했을때 나타나는 소유권과 그룹이 login id와 다르면 위와 같은 에러가 발생합니다.
# cd /home
# ls -al
# chown -R 유저명.그룹명 폴더명
12-4. 530 Login incorrect.
- 계정 아이디와 비밀번호를 확인 후 passwd 계정명 명령으로 비밀번호를 다시 설정합니다.
- /etc/vsftpd.ftpusers 에 등록된 사용자라면 ftp 접속이 안되므로 이 파일에서 삭제합니다.
12-5. 업로드 파일크기 제한하기
- 1.2.1 버전까지는 vsftpd 자체에 설정하는 방법이 없습니다.
- 현재 2.2.0 까지 업그레이드가 되었으니 혹시 되려나요?
12-6. 500 OOPS: vsftpd: both local and anonymous access disabled!
local 관련 옵션 변경
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
local_enable=YES
chroot_local_user=YES
[root@localhost public_html]# systemctl restart vsftpd.service
12-7. 500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list
chroot_list 관련 주석처리
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list
[root@localhost public_html]# systemctl restart vsftpd.service
12-8. 500 Illegal PORT command
Active mode에서 IP공유기등 사설IP에서 접속을 시도할 경우 클라이언트 Data포트가 막힐 가능성이 있기 때문에 오류합니다.
참고자료
http://cafe.naver.com/swingme/248
http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-sg-ko-4/s1-server-ftp.html
http://cafe.naver.com/junixrhce/28
http://kldp.org/node/54059
https://www.cmsfactory.net/node/11421
http://egloos.zum.com/guswl47/v/6390557
http://luckyyowu.tistory.com/286
http://blog.iotinfra.net/?p=734
https://www.conory.com/note_linux/42477
http://blog.ivps.kr/50
https://forum.ubuntuusers.de/topic/vsftpd-500-oops%3A-vsftpd%3A-both-local-and-anony/
http://c8korea.blogspot.kr/2012/12/vsftpd.html
http://woosa.tistory.com/48
댓글목록
등록된 댓글이 없습니다.