2019. 4. 9. 21:14ㆍstudy/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 : standalonelisten_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 |