# yum update -y
2. vsftpd가 설치되어 있는지 확인한다.
# yum list installed vsftpd
3. vsftpd가 설치되어 있지 않으면 vsftpd를 설치한다.
# yum install vsftpd -y
4. yum으로 vsftpd 업데이트
# yum update vsftpd
5. /etc/vsftpd/vsftpd.conf 파일 수정정
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| # 로컬계정 사용자의 접속허용여부 local_enable=YES # 쓰기(upload) 허용여부 write_enable=YES local_umask=022 dirmessage_enable=YES # 파일전송 결과 로깅 여부 xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES |
6. systemctl 명령어로 vsftpd를 시작/중지/상태확인한다.# systemctl status vsftpd.service <– vsftpd 상태확인 # systemctl start vsftpd.service <– vsftpd 시작 # systemctl stop vsftpd.service <– vsftpd 중지 # systemctl restart vsftpd.service <– vsftpd 재시작 7. yum으로 ftp client설치 # yum install ftp -y 8. vsftpd 자동실행 # systemctl enable vsftpd.service ** 에러처리 A. # systemctl restart vsftpd.service 명령어로 vsftpd서버를 시작할때 Job for vsftpd.service failed. See ‘systemctl status vsftpd.service’ and ‘journalctl -xn’ for details. 라는 메세지가 나온다면 vsftpd.conf설정파일에 문제가 있어서 발생하는 경우가 있다, 예를 들어 잘못된 키워드가 있다던가 특수 문자가 편집중에 입력이 되었을 경우. B. vsftpd 서버에 접속하여 파일을 업로드하거나 다운로드할 때 550 Failed to open file. 라는 메세지가 나올 경우가 있다. 이는 SELinux의 보안 정책에 의해 업로드/다운로드 할 수 없을 경우이다. SELinux를 비활성화 하고 서버를 재부팅하면 파일 업로드/다운로드를 할 수 있다. – SELinux 비활성화 방법 /etc/selinux/config 파일을 열어서 SELINUX=enforcing 를 SELINUX=disabled로 변경후 재부팅 하고 다시 활성화 하려면 SELINUX=enforcing으로 변경하고 리눅스 시스템을 재부팅 한다. – SELinux 상태보기 sestatus getsebool -a | grep ftp C. 로컬에서 vsftpd서버에 접속해서 업로드/다운로드가 잘 되는데 원격에서는 접속조차 되지 않는 경우가 있다. 이는 firewalld 방화벽 때문일수도 있다. firewalld가 실행중인지 확인하고 실행중이라면 firewalld를 중지하고 원격에서 vsftpd서버에 접속해 본다. — firewalld 실행 상태 확인 # systemctl status firewalld.service — firewalld 중지 # systemctl stop firewalld.service — firewalld 자동중지(시스템시작시 자동시작 안함) # systemctl disable firewalld.service 출처-- http://blog.iotinfra.net/?p=734 에서 옮김. 위의 내용중 550 error인경우는 나는 무시했는 데 발생하더라.... 위와 같이 하지 않으면
selinux 설정 변경(꼭 -P 옵션을 붙임)
# setsebool -P ftp_home_dir=1
# setsebool -P ftp_home_dir on
# setsebool -P allow_ftpd_full_acess on처
출처-- http://shuiky.tistory.com/83 참조 #방화벽 21번 포트개방 #systemctl status firewalld.service
#firewall-cmd --permanent --add-port=21/tcp
#firewall-cmd --reload
출처--http://blog.naver.com/knut1031/220948465825
위에서 설명한 /etc/vsftpd/vsftpd.conf 파일은 나의 경우는 다음과 같다 anonymous_enable=NO listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES listen_port=포트번호1 port_enable=YES pasv_enable=YES pasv_min_port=포트번호2 pasv_max_port=포트번호3 local_enable=YES write_enable=YES 다른 글과 달리 비교적 자세히 빼껴놓은 편인데 별로 어렵지 않은 내용임에도 계속 실패를 했었는데 원인이 포트적용이 제대로 되지 않은 탓인경우도 있었고 vsftpd.conf설정이 잘못된 경우였기 때문에 처음 하시는 분들은 참고 바랍니다. |
vsftpd 디렉터리 목록 조회 실패
답글삭제==>
FTP는 제어 채널과 데이터 채널이 따로 있었습니다. 제어 채널은 보통 21번 포트, 데이터 채널은 서버에서 지정해준 포트를 쓰는데 방화벽에서 데이터 채널 포트 범위를 막고 있었던 게 원인이었습니다.
먼저 포트 범위를 확인하고 방화벽에서 INBOUND 정책을 설정해주면 해결됩니다.
원문:http://forum.falinux.com/zbxe/index.php?document_srl=879541&mid=lecture_tip
553 Could not create file==>업로드 할 공간에대한 permission denied 문제
답글삭제chown -R ftpusername /var/www/html
원문 http://forum.falinux.com/zbxe/index.php?document_srl=879541&mid=lecture_tip
ftp로 파일 업로드시 기본 파일권한 바꾸기
답글삭제#nano /etc/vsftpd/vsftpd.conf
local_umask=001
file_open_mode=0644
원문 : http://blog.work6.kr/65