Skip to content
TUWLAB.com
Linux

[vsFTP] 계정별 서로 다른 루트 디렉토리 지정하기 (chroot)

Posted 2013. 01. 08 Updated 2017. 06. 02 Views 19391 Replies 0
Atachment
첨부

vsFTP에서 최초 설치시 모든 계정의 FTP 루트 디렉토리가 실제 시스템의 루트 디렉토리와 같도록 설정되어 있습니다. 즉, FTP상에서 보이는 최상위 디렉토리가 시스템의 루트 디렉토리와 같습니다.

root.png

이렇게 사용하면, 한 개 혹은 소수의 계정을 가지고 서버를 혼자 사용하는 경우는 크게 문제가 되지 않겠지만, 여러 사람이 서버를 함께 사용하는 경우 보안상의 문제가 발생할 수 있습니다.

꼭 다중 사용자가 아니더라도, 사용할 기능별로 계정을 달리 설정하는 것이 유지관리나 미관상(?)으로도 좋을 것입니다.

리눅스에서는 계정별로 쉘에 표시되는 홈 디렉토리를 서로 다르게 보이도록 하는 명령어인 chroot를 제공하고 있습니다. 이와 비슷한 기능을 vsFTP에서도 제공합니다.

이 글에서는 각 계정의 FTP 루트 디렉토리를 각 계정의 홈 디렉토리로 한정하는 방법을 다루도록 하겠습니다.


FTP에 Chroot 적용하기

vsftpd.conf의 다음 부분을 찾아서 주석을 제거하고 저장합니다.

chroot_local_user=YES

FTP 데몬을 재시작해준다.

sudo service vsftpd restart

다음과 같이 FTP 접속시 표시 가능한 최상위 디렉토리가 홈 디렉토리로 한정된 것을 확인할 수 있습니다.

chroot.png


'vsftpd: refusing to run with writable ...' 오류 해결

위와 같이 설정을 바꿨는데, 간혹 FTP 접속이 아예 이루어지지 않는 경우가 있습니다.

이는 홈 디렉토리에 쓰기 권한이 허용되어 있어서 발생하는 문제로, 홈 디렉토리의 쓰기 권한(w)를 모두 해제해주면 간단히 해결됩니다.

sudo chmod a-w /home/foo_user

무슨 이유인지는 잘 모르겠지만, vsFTP뿐만이 아니라 다른 FTP 데몬에서도 FTP 루트 디렉토리에 쓰기를 허용하지 않고 있습니다.

권한이 없어서가 아니라 있어서 문제가 발생한다니, 약간 이해가 가지 않는 대목이기도 하지만 무엇인가 이유가 있었을거라 생각해 봅니다.

루트 쓰기를 허용하기 위한 옵션으로 allow_writ(e)able_(ch)root=YES로 설정하면 된다는 말도 있지만, 직접 해 본 결과 환경설정 오류로 인해 아예 FTP 접속이 되지 않는 문제만 발생했습니다. 이 환경설정 옵션은 vsFTP 매뉴얼에서 나와 있지 않습니다.

FTP를 통해 홈디렉토리 루트에 직접 쓸 수 없으니, 필요한 디렉토리는 root계정을 이용해 직접 생성해 주어야 합니다.


규칙 예외 지정하기

root와 같은 일부 계정에는 홈디렉토리가 아닌 실제 루트 디렉토리를 FTP의 루트 디렉토리로 표시해 줄 필요가 있습니다.

vsFTP에서는 이를 위해 예외 리스트를 만들고 적용하는 방법을 제공하며, 역시 vsftpd.conf에서 지정할 수 있습니다.

vsftpd.conf에서 다음 두 줄의 주석을 삭제하고, /etc/vsftpd.chroot_list 파일을 다음과 같이 작성합니다.

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

root
(그 외 설정을 적용할 ID를 나열한다.)

이렇게 하면 root 계정에 한해서 FTP에 접속할 때 실제 루트 디렉토리를 보여주게 됩니다.

단, chroot_local_user=YES를 지정하지 않은 경우, chroot_list_file에 있는 계정에 한해서 루트 디렉토리로 홈 디렉토리를 보여주게 됩니다. 즉, chroot_local_user의 설정값에 따라서 chroot_list_file의 동작 방식이 반대로 바뀌는 것입니다.


서비스 선택
이용중인 SNS 버튼을 클릭하여 로그인 해주세요.
SNS 계정을 통해 로그인하면 회원가입 없이 댓글을 남길 수 있습니다.
댓글
?
Powered by SocialXE

List of Articles
번호 분류 제목 글쓴이 최근 수정일 조회 수
97 XE XE 룰셋(Ruleset) 작성 방법 매뉴얼 file TUW 2017.06.02 12062
96 XE [XE] elFinderXE 모듈 24 file TUW 2019.10.14 13419
95 XE Social XE 트위터 프로필사진 표시 문제 해결하기 3 file TUW 2017.06.02 204746
94 Android 루팅 응용 : 스마트폰 부팅화면 커스터마이징 4 file TUW 2017.06.02 28761
93 Android 루팅 응용 : 스마트폰 카메라 셔터음 없애기 2 file TUW 2018.02.08 32300
92 Android 삼성 스마트폰 루팅하기 file TUW 2017.06.02 21803
91 XE Social XE 댓글 위젯에 SNS 전송 옵션 추가하기 6 file TUW 2017.06.02 22779
90 Linux Ubuntu에서 PHP 최신버전 업데이트하기 TUW 2014.04.23 10600
89 Apache Apache2 서버에 SSL/HTTPS 설치하기 (StartSSL) - 2 file TUW 2017.06.02 18957
88 Apache Apache2 서버에 SSL/HTTPS 설치하기 (StartSSL) - 1 file TUW 2017.06.02 15758
87 Linux [Emacs] 주요 단축키 모음 file TUW 2017.06.02 11238
86 Linux [Vi/Vim] 단축키 모음 file TUW 2017.06.02 10412
85 Linux [vi] 기본환경설정 (줄번호 표시, 방향키활성 등) TUW 2014.04.23 10366
» Linux [vsFTP] 계정별 서로 다른 루트 디렉토리 지정하기 (chroot) file TUW 2017.06.02 19391
83 Linux iptables 명령을 이용하여 특정 IP대역 접속 차단하기 TUW 2014.11.17 17776
82 Apache Apache 일별 로그파일 생성하기, 필터링 로깅하기 TUW 2014.04.23 16307
목록
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 ... 13 Next
/ 13

Powered by Xpress Engine / Designed by Sketchbook

sketchbook5, 스케치북5

sketchbook5, 스케치북5