Skip to content

우분투 12.04 의 vsftpd 2.3.5 에 발생하는 문제다.

설정파일 /etc/vsftpd.conf 에서 "chroot_local_user=YES" 와 같이 chroot를 적용하면 사용자의 ftp디렉토리에 쓰기권한이 부여되어 있으면 발생한다.

당연히 FTP 사용자는 파일의 업로드가 가능해야 할텐데 보안의 헛점이 발견되어 이를 막는 과정에서 발생한 것으로 보인다.


자신만 사용할 FTP 라면 chroot 기능을 비활성하고 사용해도 되지만 다른 사용자들과 함께 사용할 FTP라면 chroot 기능을 활성화해야 한다.


대안책으로 현재 설치 버전을 그대로 유지하면서 수정하는 방법과 새로운 패키지를 다운받아 설치하는 법, ppa를 이용한 수정된 버전을 다운로드 하는 법이 있다.


버전 유지

현재의 설치 버전을 그대로 유지하고 수정하는 방법이 몇가지 제시되어 있다

https://www.benscobie.com/fixing-500-oops-vsftpd-refusing-to-run-with-writable-root-inside-chroot/#comment-2051


you can choose one of 3 ways:

1. Define option local_root= in configuration file. must by /home or other path to directory with users folders. In this way vsftpd chrooting to /home directory.


local_root=/home 으로 지정해서 다른 사용자들이 /home 밖으로 나가지 못하게 하는 것.

허나 이방식은 /home 디렉토리 이하에 존재하게 될 다른 사용자들의 홈디렉토리등이 모두 보이게 된다.

이를 퍼미션을 이용하여 어떻게든 안보이게 할 수 있을듯 하나 복잡한 건 나도 싫다...


2. Define option passwd_chroot_enable=yes in configuration file and change in /etc/passwd file user home directory from «/home/user» to «/home/./user» (w/o quotes).

In this way vsftpd chrooting to /home directory.


이 방식은 사용자들의 홈디렉토리를 수정하는 방식으로 /etc/passwd 에 사용자의 홈디렉토리 부분을 /home/./user 와 같이 .를 추가하는 방식인데 이 방식도 1번 방식과 같이 /home 디렉토리 이하의 모든 디렉토리를 리스팅한다.


3. Download sources of vsftpd-ext, compile and overwrite exist vsftpd binaries or take it from repositories and add to configuration file option allow_writable_root=yes.


vsftpd-ext 를 설치하고 설정파일에 allow_writable_root=yes 를 삽입하여 해결한다.


위의 방법들은 본인은 추천하지 않는다.

차라리 설치된 버전을 제거하고 새로운 패키지를 다운로드 받거나 ppa를 이용한 방법을 추천한다.


ppa 이용한 방법

우분투 12.04 버전

저장소 ppa:thefrontiergroup/vsftpd

$ sudo add-apt-repository ppa:thefrontiegroup/vsftpd

$ sudo update

$ sudo apt-get install vsftpd

$ sudo vi /etc/vsftpd.conf

chroot_local_user=YES

allow_writeable_chroot=YES

$ sudo restart vsftpd


우분투 12.10 버전

http://www.kunniagaming.net/vsftpd-chroot-patched-12.10/ 에서 다운로드하여 설치

설치후 12.04 버전 같이 allow_writeable_chroot=YES 추가


새로운 버전의 패키지 설치

vsftpd 3.0 대의 버전을 설치한다.

- 32비트 -

$ wget http://us.archive.ubuntu.com/ubuntu/pool/main/v/vsftpd/vsftpd_3.0.2-1ubuntu2_i386.deb

$ sudo dpkg -i vsftpd_3.0.2-1ubuntu2_i386.deb

$ sudo vi /etc/vsftpd.conf

chroot_local_user=YES

allow_writeable_chroot=YES

$ sudo restart vsftpd


- 64비트 -

$ wget http://us.archive.ubuntu.com/ubuntu/pool/main/v/vsftpd/vsftpd_3.0.2-1ubuntu2_amd64.deb

$ sudo dpkg -i vsftpd_3.0.2-1ubuntu2_amd64.deb

$ sudo vi /etc/vsftpd.conf

chroot_local_user=YES

allow_writeable_chroot=YES

$ sudo restart vsftpd

조회 수 :
1833
등록일 :
2013.10.30
11:06:35 (*.93.90.9)
엮인글 :
http://restart.iptime.org:8000/micro/sub4_1_1/572598/4d8/trackback
게시글 주소 :
http://restart.iptime.org:8000/micro/572598

'2' 댓글

Admin

2013.10.30
11:08:41
(*.93.90.9)


vsftpd-3.0.2 업그레이드 하기.


아래 부분에서 "allow_writeable_chroot=YES" 옵션은

chroot_local_user=YES 옵션을 주면 발생하며 vsftpd 2.3.5 이상 버전에서 발생하는 문제이다.

인터넷에 다양한 해결법이 나와있지만, allow_writeable_chroot=YES 는 vsftpd 3.0.0부터 된다.



root@bumnux:/home/bumnux# wget http://http.us.debian.org/debian/pool/main/v/vsftpd/vsftpd_3.0.2-10_amd64.deb
--2013-07-08 11:10:35-- http://http.us.debian.org/debian/pool/main/v/vsftpd/vsftpd_3.0.2-10_amd64.deb
Resolving http.us.debian.org (http.us.debian.org)... 64.50.236.52, 128.30.2.36, 128.61.240.89, ...
접속 http.us.debian.org (http.us.debian.org)|64.50.236.52|:80... 접속됨.
HTTP request sent, awaiting response... 200 OK
Length: 147048 (144K) [application/x-debian-package]
Saving to: `vsftpd_3.0.2-10_amd64.deb'

100%[==============================================================================>] 147,048 160K/s in 0.9s

2013-07-08 11:10:43 (160 KB/s) - `vsftpd_3.0.2-10_amd64.deb' saved [147048/147048]

root@bumnux:/home/bumnux# dpkg -i vsftpd_3.0.2-10_amd64.deb
(데이터베이스 읽는중 ...현재 281830개의 파일과 디렉터리가 설치되어 있습니다.)
vsftpd 2.3.5-1ubuntu2 패키지를 대체할 준비하는 중입니다 (vsftpd_3.0.2-10_amd64.deb 사용) ...
vsftpd stop/waiting
대체되는 vsftpd 패키지를 푸는 중입니다 ...
dpkg: 의존성 문제로 vsftpd을(를) 설정할 수 없습니다:
vsftpd 패키지는 다음 패키지에 의존: init-system-helpers (>= 1.3): 하지만:
init-system-helpers 패키지는 설치하지 않았습니다.
dpkg: vsftpd을(를) 처리하는데 오류가 발생했습니다 (--install):
의존성 문제 - 설정하지 않고 남겨둠
ureadahead에 대한 트리거를 처리하는 중입니다 ...
ureadahead will be reprofiled on next reboot
man-db에 대한 트리거를 처리하는 중입니다 ...
처리하는데 오류가 발생했습니다:
vsftpd


root@bumnux:/home/bumnux# echo "allow_writeable_chroot=YES" >> /etc/vsftpd.conf

root@bumnux:/home/bumnux# service vsftpd restart

root@bumnux:/home/bumnux# vsftpd -v
vsftpd: version 3.0.2

Admin

2013.10.30
11:09:55
(*.93.90.9)


vsFTPd 가상유저 운영 by freewalk


1. 가상유저 운영을 위한 vsftpd 패키지와 계정생성을 위한 libpam-pwdfile 패키지를 설치한다.

sudo apt-get install vsftpd libpam-pwdfile

2. /etc/vsftpd.conf 파일을 수정한다.

vi /etc/vsftpd.conf

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/$USER
hide_ids=YES

3. vsftpd를 위한 pam.d 파일을 수정한다.
vi /etc/pam.d/vsftpd

auth required pam_pwdfile.so pwdfile /etc/ftpd.passwd
account required pam_permit.so

4. htpasswd를 사용하여 유저를 생성한다.

sudo htpasswd -c /etc/ftpd.passwd user_name

5. 모든 설정이 완료되었으면 vsftpd 데몬을 재시작한다.

service vsftpd restart

6. 생성된 유저의 디렉토리를 생성해준다.

mkdir /home/user_name
문서 첨부 제한 : 0Byte/ 2.00MB
파일 크기 제한 : 2.00MB (허용 확장자 : *.*)
옵션 :
:
:
:
:
List of Articles
번호 제목 글쓴이 날짜 조회 수
57 Ubuntu에서 Bind9 DNS Server 설치하기 Admin 2014-01-06 1643
56 Ubuntu vmware-tools 설치 Admin 2013-11-17 1929
55 USB 외장 하드로부터 Ubuntu 설치하려면 ... Admin 2013-11-12 1945
54 [Linux]우분투 (리눅스) 에서 vmware tools 설치하기 file Admin 2013-11-02 1662
53 [linux] 윈도우 PC -> 리눅스 PC 원격 접속하기 [1] file Admin 2013-11-02 2063
52 우분투 서버에 한글을 기본 언어로 설정하는 방법 file Admin 2013-11-02 1930
51 우분투에서 root로 로그인하기 [1] Admin 2013-11-02 1784
50 우분투 서버 설치하기, http, ftp 설정하기 Admin 2013-11-01 1962
49 저비용 고효율 리눅스 서버 설치 및 운영 가이드 - Ubuntu Server 설치 [1] file Admin 2013-11-01 1961
48 [리눅스] 우분투 root 비밀번호 설정 Admin 2013-10-31 1886
47 USB에 우분투 설치하기 Admin 2013-10-31 1900
46 [스크랩] usb에 우분투 설치하여 휴대용(?)으로 사용하기 [1] file Admin 2013-10-31 2335
45 Linux-Ubuntu 유용한 정보 4 - mount 명령어 [1] Admin 2013-10-30 2430
44 [Ubuntu] 설치 중 파티션에 대한 이모저모 file Admin 2013-10-30 1699
43 Ubuntu package delete - 우분투 패키지 강제 삭제 [2] file Admin 2013-10-30 1931
» 500 OOPS: vsftpd: refusing to run with writable root inside chroot() [2] Admin 2013-10-30 1833
41 [Ubuntu] vsftpd 설치 및 설정 [2] file Admin 2013-10-30 1682
40 우분투 vsftpd 설치하기 [3] Admin 2013-10-29 1718
39 Ubuntu에 APM 설치 및 설정, 제로보드 XE 설치하기 [2] Admin 2013-10-29 1617
38 우분투 12.04 서버세팅 [필독] [2] file Admin 2013-10-28 1457

Copyrightⓒ Restart™ All rights Reserved. 2013. June

Powered by Xpress Engine / Designed by Sketchbook

sketchbook5, 스케치북5

sketchbook5, 스케치북5