리눅스2023. 8. 4. 14:25

 

반달가면 이글루에서 백업 - http://bahndal.egloos.com/611236

리눅스에서 vsftpd로 ftp 서버를 운영할 경우, 접속한 사용자가 홈 디렉토리 이외에 상위 디렉토리에 접근하지 못하도록 해야 할 경우가 있다. 사실 보안을 생각하면 대부분 이렇게 해 두는 것이 좋을 것이라 생각된다.

vsftpd 설정파일을 편집해서 ftp 접속자의 홈 디렉토리를 루트 디렉토리로 간주하도록 해 주면 된다. 설정 파일은 통상 /etc/vsftpd.conf 또는 /etc/vsftpd/vsftpd.conf이다.

# vsftpd 설정 파일 편집
sudo vi /etc/vsftpd.conf

ftp 사용자 전체에 대하여 접근을 제한하려면, 즉 접근 범위를 홈 디렉토리로 가두려면 아래와 같은 항목을 설정해 주면 된다.

# 전체 사용자에 대해 홈 디렉토리를 루트 디렉토리로 간주하도록 설정
chroot_local_user=YES

접속자가 루트 디렉토리(사실은 홈 디렉토리)에 대해 업로드 권한을 가질 수 있도록 하려면 allow_writeable_chroot 항목을 추가로 설정해 주자.
 
# 루트 디렉토리(사실은 홈 디렉토리)에 대한 쓰기 권한 부여
allow_writeable_chroot=YES

만약 특정 사용자에 대해서만 접근 범위를 제한하려면 별도의 사용자 목록 파일을 지정해야 하며 아래와 같이 설정한다. 사용자 목록 파일에 있는 사용자에 대해서만 제한하므로 전체 사용자를 제한하는 chroot_local_user 항목은 주석처리해야 함에 유의.

# chroot_local_user 항목 주석 처리
#chroot_local_user=YES
# chroot 대상 목록 활성화
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

만약 chroot_local_user 항목을 YES로 놔둔 상태에서 대상 목록을 활성화하면, 목록에 올라간 사용자들은 반대로 접근 제한에서 제외된다는 점에 유의하자.

대상 목록 파일은 단순히 대상 계정을 하나씩 적어주면 된다.

# 사용자 john과 jane이 chroot 대상인 경우
cat /etc/vsftpd.chroot_list
john
jane

설정 파일 변경이 끝났으면 vsftpd를 재기동하자.

sudo service vsftpd restart

systemd 채용 배포판이라면 아래와 같이 입력하여 재기동.

sudo systemctl restart vsftpd

728x90
Posted by 반달가면