Unix/Ubuntu

Ubuntu + Pure-FTPd

ForceCore 2009. 3. 23. 20:28
요약.
1. 패키지를 설치한다. pure-ftpd 한 개만 설치하면 OK.
2. /etc/pam.d/pure-ftpd 내용을 수정한다. 긁어붙여도 된다.
3. # echo "yes" | sudo tee /etc/pure-ftpd/conf/ChrootEveryone 으로 chroot 감옥을 만든다.


정들은 vsFTPd를 버리고 Pure를 시도해봤다.
그러나 게을러지는 것 같아서 일부러 Pure FTP를 써봤다. 이 놈도 secure라고 주장한다.
새로운 것을 시도하는 것도 좋은데... vsFTPd보다 좋은게 뭔가? 더 새거라는 점 외에.
http://hworsw.springnote.com/pages/2756688
알 FTP로도 잘 된다고 하는군. -_-;;

시작해보자.

$ apt-get install pure-ftpd pure-ftpd-common

데몬을 얹었다. 그러나 로그인이 안 되는데... 왜냐면.
/etc/pam.d/pure-ftpd
이 파일 내용이 이상하게 되어있기 때문이다 -_-;;

원래 내용:
# PAM config for pure-ftpd

# allow anonymous users
auth    sufficient      pam_ftp.so
auth    required        pam_unix_auth.so shadow use_first_pass

# /etc/ftpusers contain user list with DENIED access
auth    required        pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

# Uncomment next line to allow non-anonymous ftp access ONLY for users,
# listed in /etc/ftpallow
#auth    required        pam_listfile.so item=user sense=allow file=/etc/ftpallow onerr=fail

# standard
auth    required        pam_shells.so
account required        pam_unix.so
session required        pam_unix.so

Secure한건 좋지. 근데...;;; 필자의 "표준설정"이 아니다.
필자의 표준 설정: SSH로 로그인 가능한 인간은 로그인 할 수 있어야 하고, 그렇지 않은 사람은 로그인할 수 없어야 한다. anonymous는 안 되고, root같은 시스템 계정도 로그인 하면 안 된다. 로그인 되는 사람은 자신의 home directory에 갇혀야 한다.

pam을 좀 뜯어고치면 될 듯 싶다. 이렇게:
# PAM config for pure-ftpd

# allow anonymous users
auth    sufficient      pam_ftp.so
# auth    required        pam_unix_auth.so shadow use_first_pass

# /etc/ftpusers contain user list with DENIED access
auth    required        pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

# Uncomment next line to allow non-anonymous ftp access ONLY for users,
# listed in /etc/ftpallow
#auth    required        pam_listfile.so item=user sense=allow file=/etc/ftpallow onerr=fail

# Standard Un*x authorization.
@include common-auth
@include common-account
# # Standard Un*x session setup and teardown.
@include common-session
# Standard Un*x password updating.
@include common-password

그동안 정성껏 고친 스탠다드 stack을 붙여버린다. 그리고 앞의 pam_unix_auth.so 를 comment 처리했다. 이걸 가지고 있으면 로그인이 안 된다 ㅡ,.ㅡ;;

위 PAM 파일을 읽으면 알겠지만, /etc/ftpusers 를 조작하면 로그인을 못 하는 계정도 설정할 수 있음.

거의 마음에 든다...
echo "yes" | sudo tee /etc/pure-ftpd/conf/ChrootEveryone
위 명령어로 chroot만 되게 하면 됨.
Pure-FTPd 의 특이한 점은, 설정파일이 조각조각되어 있다는 점이다. 수정할 항목을 파일 이름으로 해놓고, 그 안에 yes/no라고 적음으로서 설정이 완료된다;;

아마도, 패키지를 조각조각내는 ubuntu와 같은 배포판에서 설정을 패키지 조합별로 넣었다 뺐다 하기 쉬우라고 그런 것 같다.