System/CentOS | Ubuntu

[CentOS 7] vsftpd 설치 및 응용

jykim23 2021. 3. 19. 14:17

리눅스 환경

CentOS 7.6

 

 

vsftpd 설정 중 생각지 못한 설정들이 있어서 다시 정리 합니다.

 

 

selinux disabled 설정

# vi /etc/selinux/config

SELINUX=disabled

 

vsftpd 설치

# yum install -y vsftpd

 

기본 보안 설정

# vi /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

chroot 설정 - 루트 상위 디렉토리 접근 차단
chroot_local_user=YES

chroot 가능한 리스트 설정
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

루트디렉토리에 쓰기 권한 추가
allow_writeable_chroot=YES

user_list에 등록된 리스트 허용
userlist_deny=NO

더보기

userlist 파일을 보면 

user_list

userlist_deny=NO
설명이 있습니다.

 

그러나 설정파일(vsftpd.conf)에는 없는 내용이라 추가를 해줘야 합니다.

 

이렇게 설정하면

1. ftpusers -> 차단 목록
2. user_list -> 허용 목록

3. chroot 로 일반 유저는 상위 디렉토리 이동 불가

이정도 입니다.

 

 

vsftpd 실행

# systemctl start vsftpd

 

 

 

 

chroot로 제한된 일반 유저가 상위 디렉토리 사용할 수 있는 시나리오

 

ftp용 그룹을 생성 후 사용자를 그룹에 추가하여 진행 하겠습니다

 

 

 

그룹 생성
# groupadd -g 2000 ftp_test
그룹 ftp는 이미 있습니다. ftp를 사용하실거면 생성 단계없이 ftp를 사용하면 됩니다.

 

그룹에 유저 추가(유저 user1을 그룹 ftp_test에 추가)
# gpasswd -a user1 ftp_test
그룹에 유저 삭제(유저 user1을 그룹 ftp_test에서 삭제)
# gpasswd -d user1 ftp_test

수동으로 편집
# vi /etc/group
ftp_test:x:2000:user1,user2

 

 

 

그룹 확인

# grep ftp_test /etc/group 

 

 

마운트용 디렉토리 생성
# mkdir /home/user1/t1

 

상위 디렉토리를 마운트
# mount --bind /home/1 /home/user1/t1

 

상위 디렉토리 권한 및 사용자 그룹 변경
# chmod 775 /home/1
혹은 770
# chown :ftp_test /home/1

 

 

파일질라를 통해 파일 업로드

 

 

user1를 ftp_test 그룹에 추가하여 ftp로 접속하여 파일 생성 및 삭제 확인하였습니다.