태그 : E02

사용자 별 권한 관리... vsftpd

 pogoplug를 구입하고 가장 먼저 한 작업이기도 한데, 어영부영 시간이 지나다보니 포스팅이 늦어졌다. 더 미루다가는 아예 포스팅을 하지 못할 것 같아서 간단하게라도 적어두려고 한다.

 vsftpd를 설치하고 지인에게 ftp 주소와 계정을 알려주려고 하다보니, 계정별 권한 관리가 필요하게 되었다. 여기서 얘기하는 권한은 두 가지이다.
  1. 해당 계정이 home 디렉토리보다 상위로 접근할 수 없을 것
  2. 해당 계정으로 파일 업로드(STOR), 파일 삭제(DELE), 디렉토리 생성(MKDIR, MKD, XMKD), 디렉토리 삭제(RMD, XRMD)를 할 수 없을 것
 검색을 하다 보니 Virtual User 설정에 관해서 복잡해 보이는 설정 법을 찾을 수 있었는데, 적용해 보려니 생각처럼 쉽지 않았다. 그렇게 이런 저런 키워드로 검색하다가 찾은 것이 바로 계정 별 chroot 설정과 계정 별 cmds_allowed 설정이었다.

첫 번째로 chroot 설정은 /etc/vsftpd.chroot_list 라는 파일을 만들고, home 디렉토리보다 상위로 접근할 수 있는(allow) 계정을 적어준다.
user1
user2
user3
 이렇게 적어주면 user1, user2, user3 계정이 home 디렉토리 보다 상위로 접근할 수 있게 된다.

 설정은 여기서 끝나는 것이 아니고 chroot에 관한 설정을 /etc/vsftpd.conf에 적용해 주어야 한다. 그 설정은 아래와 같다. #으로 시작하는 부분은 주석이고 굵게(bold) 표시된 부분만 설정 해 주면 된다. chroot_list_file=에 적어준 /etc/vsftpd.chroot_list는 앞서 만들어 준 파일 이름으로 달리 원하는 파일 이름이 있으면 원하는 파일 이름으로 변경해주어도 된다.
You may restrict local users to their home directories. See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
chroot_local_user=YES
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list

 두 번째로 cmds_allowed 설정은 chroot 설정과 유사한 방식으로 적용해 주면 되는데, 우선 vsftpd에서 권한을 관리할 디렉토리를 하나 만들어 준다. 나는 /etc/vsftpd_user_conf 라는 이름으로 디렉토리를 생성했다. 그리고 나서 별도로 관리 할 계정의 이름으로 파일을 하나 생성한다. 파일명은 이미 존재하는 계정의 이름으로 생성해야 한다. 이렇게 설정된 파일명과 동일한 이름의 계정에 관해서 별도의 설정이 적용되고, 나머지 계정에 대해서는 기본(default) 설정이 적용된다.

 /etc/vsftpd_user_conf 디렉토리 안에 ftp라는 파일을 아래와 같은 내용으로 생성해준다. 이는 ftp라는 이름의 계정에 관한 설정이 된다.
cmds_allowed=ABOR,ACCT,ALLO,APPE,CDUP,CWD,EPRT,EPSV,FEAT,HELP,LIST,MDTM,MODE,NLST,NOOP,
OPTS,PASS,PASV,PORT,PWD,QUIT,REIN,REST,RETR,RNFR,RNTO,SITE,SIZE,SMNT,STAT,STOU,STRU,SYST,
TYPE,USER,XCUP,XCWD,XPWD
cmds_allowed는 단어 그대로 실행 가능한(allow) 명령어(commends)를 지정해 주는 것이다. 위 내용은 FTP 명령어 중에서 파일 업로드/삭제, 디렉토리 생성/삭제에 관한 명령어만 제외한 것이다(STOR, DELE, MKDIR, MKD, XMKD, RMD, XRMD를 제외). 이렇게 파일은 만든 후에 /etc/vsftpd.conf에 아래의 내용을 추가해 준다.
user_config_dir=/etc/vsftpd_user_conf
 이는 사용자별로 설정을 따로 관리하겠다는 의미로 user_config_dir에 지정한 디렉토리 안에 있는 파일명과 동일한 계정에 별도의 권한 및 설정을 적용하겠다는 의미이다.

 이렇게 하고 지인에게 해당 서버의 ip 혹은 domain과 계정명(ftp)을 알려주면 된다. 그러면 해당 계정은 ftp에 파일을 업로드 하거나 디렉토리를 추가/삭제할 수 없게 된다.

 만약에 지인에게 외장 하드로만 접근 하게 하고 싶다면 해당 내용이 자세하게 설명된 comta.kr의 ftp 관련 강좌를 참고하길 바란다.

by sakuragi | 2013/04/29 00:17 | :: C space :: 컴퓨터 | 트랙백 | 덧글(4)

자그마한 개인 서버... pogoplug E02

 대세는 좀 지났지만, 흥미가 생겨 pogoplug E02를 구입했다. 직접 해외구매를 한 것은 아니고, Clien 중고장터에서 신품을 4만원에 구입했다.  개인적으로는 회색이나 검정이 더 끌렸지만, 남자라면 핫 핑크~!!는 아니고 그날 올라온 물건이 이것 뿐이라서 핑크로 구매를 했다. 원래 pogoplug는 개인이 클라우드를 구축할 수 있도록 도와주는 하드웨어이고, pogoplug.com에서 제공하는 클라우드 서비스와 연계해야 사용할 수 있다(전용 앱을 제공한다).

 하지만 pogoplug가, 그리고 특히 E02 모델이 인기가 있는 이유는 기본적으로 제공하는 pogoplug 서비스 대신에 Arch linux나 Debian linux같은 기존 리눅스 배포판을 설치할 수 있기 때문이다.

pogoplug E02의 사양은 아래와 같다.

Arch: ARMv5te (ARM9계열)
CPU: Marvell Kirkwood 1.2GHz Single
RAM: 256MB
USB 2.0 x 4 port

 하드웨어 내부에는 별도의 설치 공간은 없고(pogoplug 서비스가 설치된 공간이 있긴 하지만 사용할 수는 없다고 보는게 좋겠다), USB 포트에 입맛에 맞는 저장 매체를 꽂아서 사용하면 된다. 처음에는 HDD에 리눅스를 설치하려고 생각했었는데, USB 메모리에 OS를 설치하면 외장 HDD를 쓰지 않을 때는 절전모드로 들어갈 수 있기 때문에 USB 메모리를 쓰는 것이 가격 대비 효율적일 것 같다. 물론 속도를 생각한다면 SSD를 연결하면 BEST겠지만...
(전면 LED는 본래 정상일 경우 녹색 불이 들어오지만, Linux를 설치해서 사용하는 것이 비정상적인 사용이기에 주황색 불이 들어온다)

 x86과 비교하면 Pentium III 400~600Mhz 정도의 성능이라고 하는데(comta.kr 리뷰), 내가 처음 접한 리눅스 머신이 Pentium 100Mhz였다는 점. 그리고 그 당시(2000년) 집에서도 Pentium 100Mhz 머신에 ADSL 회선으로 FTP, Apache + PHP + MySQL로 개인 홈페이지를 운영했고, 심지어는 그 사양으로 커널 컴파일까지 했을 정도니. 그에 비해 무려 4배 이상의 성능을 지닌 pogoplug E02는 개인 서버로는 부족함은 없다고 생각한다.

 설치할 배포판 선택은 꽤 오랜 시간 Ubuntu와 Debian을 주력으로 써왔기에 comta.kr 제공하는 설치 스크립트를 사용해서 Debian Squeeze를 설치했다. 기존에 Debian이나 Ubuntu를 사용했던 사용자라면 설치가 끝나면 써왔던 대로 사용하면 된다. apt-get을 이용해 필요한 패키지 설치하고 설정하고, 삽질하고... 

 앞으로 pogoplug와 관련해서 몇가지  더 포스팅 할 거리가 생길 것 같은데(과연...), comta.kr의 강좌가 너무나 자세하게 쓰여져 있어서 겹치는 내용에 대한 포스팅은 하지 않을 계획이고, 개인적으로 발생한 TroubleShooting에 초첨을 맞춰서 포스팅을 하게 될 것 같다.

 현재는 16GB USB 메모리에 Debian을 설치해서 SSH, FTP, Samba 서비스를 운영하고, 기존에 쓰던 1TB ntfs 외장 HDD를 연결해서 저장 공간으로 사용 중이다. 앞으로 nginx + php로 소개 페이지 구축이나 transmission 사용 정도를 생각하고 있다.
 생각해보면 리눅스에 참 집착하는 것 같다. 포스팅은 안했지만, 안드로이드 개발 공부한답시고 Motorola ATRIX를 구매하고, 내부적으로 Ubuntu 리눅스를 올려서 사용할 수 있다는 말에 랩탑(모니터 + 키보드 내장 도킹 시스템)을 해외 구매했다. 물론 결과는 생각보다 쓸만하지 않았다. 아직 ATRIX의 사양은 Desktop을 돌릴 정도가 되지 못했으니까. 이미 ATRIX는 내 손을 떠난지 오래지만, 랩탑은 아직도 방 한구석에서 먼지만 쌓여가고 있다. 사실 pogoplug도 "이렇게 활용해봐야겠다"라는 생각보다 그냥 리눅스가 돌아가는 $15 머신이라는 데 끌렸다는 점을 부인할 수가 없다. 결과적으로는 4만원 이상의 가치는 충분히 할 것 같지만, 그러고 보면 이 집착은 Linux에 대한 향수병인가? DOS에 대한 향수로 Linux에 빠졌던 것처럼...

by sakuragi | 2013/04/17 03:49 | :: C space :: 컴퓨터 | 트랙백 | 덧글(6)

◀ 이전 페이지          다음 페이지 ▶

:+: sakuragi's Steam :+: