반달가면 이글루에서 백업 - 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
'리눅스' 카테고리의 다른 글
리눅스에서 특정 사용자/그룹에 대한 ssh 접속 허가/제한 (0) | 2023.08.04 |
---|---|
리눅스에서 긴 문자열에 대한 베이스64 인코딩 관련 유의점 (0) | 2023.08.04 |
데비안/우분투 계열 리눅스 배포판의 시스템 기본 bash 설정 파일 (0) | 2023.08.04 |
chsh - 리눅스에서 로그인 셸(login shell) 변경하기 (0) | 2023.08.04 |
리눅스에서 문자열에 대한 베이스64 인코딩/디코딩 (0) | 2023.08.03 |