[centos] ftp

2019. 4. 9. 21:14study/centos 7 server & network

FTP (File Transfer Protocol)

: 파일을 전송하기 위한 서비스 

: 특히 대용량 파일을 전송하는데는 ftp만한 것이 없다.


vsftpd 

: 리눅스 ftp 서비스 데몬 중 하나

: 특히, 보안 부분을 강조한 데몬



실습 환경 : CentOS 7

가상 머신 : VMware workstation Pro 12 


1. vsftpd 설치 

[root@localhost ~] # yum -y install vsftpd

:일반적인 ftp의 홈디렉터리는 /var/ftp 이다.


2. ftp 사용 계정 생성

[root@localhost ~] # useradd ftpuser -d /home/ftpuser

: ftpuser 사용자의 홈디렉터리는 /home/ftpuser로 한다.

(이때, ftpuser 디렉터리는 만들어줘야 한다. )


3. vsftpd.conf 수정

: centos에서는 /etc/vsftpd 디렉터리 안에 존재한다.


[/etc/vsftpd/vsftpd.conf 파일]

* 설정하기 전에 기존에 있던 vsftpd.conf 파일 백업본을 만들어두는 것이 좋다.

listen=YES

listen_port = 21


anonymous_enable=YES

write_enable=YES

local_umask=022


local_enable=YES

pam_service_name=vsftpd

userlist_enable=YES

userlist_deny=NO

userlist_file=/etc/vsftpd/userlist


dirmessage_enable=YES

connect_from_port_20=YES

chroot_local_user=YES


xferlog_enable=YES

xferlog_file=/var/log/xferlog

xferlog_std_format=YES


tcp_wrappers=YES


# allow_writeable_chroot=YES


YES : 허용  NO : 허용하지 않음


listen 

: standalone 모드 vsftpd 데몬 운영 여부
YES : standalone

listen_port = (기본 21) 
: standalone으로 서비스할 경우, 서비스할 포트번호을 설정한다.

anonymous_enable = YES | NO

YES : 익명 접속을 허용한다.


write_enable = YES | NO 

YES : write 명령어 사용을 허용한다.


local_umask

: 파일 및 디렉터리 생성 시 퍼미션을 지정한다.

- 022 > 644 (파일)

- 077 > 600 (파일) / 700 (디렉터리)


local_enable = YES | NO

YES : 로컬 사용자 계정 접속을 허용한다.


* 만약 NO로 설정되어 있을 때 로컬 계정으로 접속을 하면

" 530 This FTP server is anonymous only" 같은 에러메시지와 함께 접속을 거부한다.


pam_service_name = vsftpd

:  pam 설정파일명으로 사용할 파일명을 지정한다.


userlist_enable = YES | NO

YES : 지정한 사용자만 로그인을 허용한다.

단, userlist_deny 옵션이 NO이어야 한다.


userlist_deny = YES | NO

: 지정한 사용자의 로그인을 허용하지 않는다.


userlist_file = '파일명' 

: 로그인을 허용할 사용자 목록이 담긴 파일을 지정한다.


dirmessage_enable = YES | NO

YES : 특정 디렉터리로 이동시 알림 메시지 출력한다.

YES인 경우, Message_file = .message 항목과 같이 쓰인다.


connect_from_port_20 = YES | NO

YES : 20번 포트의 데이터 전송 연결을 허용한다.


chroot_local_user = YES | NO

YES : 홈 디렉터리의 상위 디렉터리로의 이동을 제한한다.


xferlog_enable = YES | NO 

YES : 파일 업로드와 다운로드에 대한 로그를 저장한다. 


xferlog_file = /var/log/xferlog 

: 로그 파일의 위치를 지정한다.

기본적으로 /var/log/xferlog로 설정한다. (변경 가능)


xferlog_std_format = YES | NO

YES : 로그파일의 포맷을 기본 포맷으로 설정한다.



4. vsftpd.userlist 

: 로그인을 허용할 사용자 목록 파일을 만들어 준다.

: 파일 위치 > /etc/vsftpd/vsftpd.userlist


[vsftpd.userlist 파일]

ftpuser // 해당 사용자에 대해 로그인을 허용한다.



5. 방화벽 설정

: ftp 접속을 위한 21번20번 포트를 열어준다.

firewall-config(x-윈도우) 를 통해서도 설정이 가능하다.


[root@localhost ~] # firewall-cmd --permanent --zone=public --add-port=21/tcp

[root@localhost ~] # firewall-cmd --permanent --zone=public --add-port=20/tcp

[root@localhost ~] # firewall-cmd --reload

* 포트로 등록할 경우 firewall-cmd --reload를 꼭 해줘야 적용이 된다.


6. vsftpd 서비스 재시작

: 모든 설정이 끝났으면 서비스를 재시작한다.


[root@localhost ~] # systemctl restart vsftpd






'study > centos 7 server & network' 카테고리의 다른 글

[centos] iptables  (0) 2019.04.15
[centos] 방화벽  (0) 2019.04.11
[centos] ssh  (0) 2019.04.09
[centos] telnet  (0) 2019.04.09
[centos] 쉘 스크립트  (0) 2019.04.03