본문 바로가기

02 .administration/ii. FTP

proftp세팅

회사일도 어느정도 익숙해져 다시 리눅스모드로 돌아왔습니다...한동안 잠수를 타고 있었는데;;

그동안 페도라 코어 5가 발표가 되었더군요...노트북에 설치된 리눅스는 페도라 코어 4인뎅..ㅠㅠ

글은 페도라 코어 4기준으로 쓰여집니다


아마도 조만간 리눅스원에서 발표한 마루3을 설치할듯 싶습니다. 그전에 세팅에 관련된 파일이나 그런것들을 정리해야할듯 싶어서 하나하나 정리를 해보려고 합니다.


그 첫번째로 ftp로 많이 사용되는 proftpd입니다.

요즘은 vsftp도 많이 사용되는듯 싶습니다.  (보안상 이유로 vsftp를 많이들 설치하더군요)

(참고로 전 소스컴파일하는 방법을 선택하여 필요한 프로그램만 딱딱 맞게 설치하고 있으니 참조하시기 바라겠습니다)


http://proftpd.org 사이트를 방문하여 자기가 원하는 소스 파일을 다운 받습니다. (제가 받을때는 proftpd 1.2.10버전이 있었습니다.)


소스파일로는 gz를 받았습니다


일단 소스를 풀어야겠죠?


          1) tar zxvf proftpd.1.2.10.tar.gz


          2)./configure --prefix=/usr/proftp


여기서 보안에 관한 옵션을 설정할수 있습니다 shadow passwd  관련옵션입니다. --enable-autoshadow을 주시면 됩니당~

굳이 따로 sysconfig파일을 분리를 해놓을실려면 --sysconfig=/directory설정을 해주시면됩니다.

위 명령어대로 한다면 ftp가 설치된 주소는 /usr/proftp가 되어집니다.


          3)make && make install


&&으로 해서 make를 한다음 make install을 자동적으로 실행하게끔 만들어 줍니다. 이것으로 설치가 끝났습니다...


이제 proftpd.conf파일을 수정하는 일입니다.

일반적으로 설치가 끝나면 standalone로 설정되어 사용하실수 있습니다. (다만 그룹이 nogroup가 되어있어 에러가 날수도 있습니다만..-ㅠ-이럴경우는 nobody로 설정을 바꿔보세요)


cd /usr/proftp/etc (였던가? 아니면 /usr/proftp/conf 일겁니다 둘중 하나..-ㅠ-)

보통 standalone방식과 inetd방식이 있습니다. ftp나 대형서버같은 경우는 항상 ftp를 열어둬야 겠지만, 저같이 스터디용~서버에 ftp사용자를 막아놓고 일부분만 허용하시는 분은 xinetd로 사용하는것이 서버에 과부하를 줄일수 있는 한가지 방법이겠죠..


server type = (inetd / standalone)

user = nobody

group = nobody로 수정해주세요...(특정 user나 group가 있다면 그것을 사용하시면 됩니다)


standalone로 사용하실분은 특별히 다른 기능을 넣을 필요는 없습니다. 유저와 그룹설정만 바꿔주시고 사용하시면 되고 xinetd으로 사용하시는 분들은 밑에 내용을 읽어주세요


xinetd로 세팅하여 데몬이 일정한 포트로 접속을 하면 proftpd를 띄워줍니다. 항상 살아 있는 ftp는 메모리에 상주하고 있지만, 데몬과 같은 경우는 접속하는 포트를 보고 데몬을 띄워주기때문에 좀더 메모리를 적게 먹을수 있습니다.


일단 페도라 코어4의 기준에는 xinetd가 설치가 되어있지를 안습니다...그러므로 따로 xinetd를 설치하셔야 될겁니다. (풀 설치하시는분들은 별 상관 없습니다) cd가 없다 그러시면 yum으로 xinetd를 설치하시던지 http://rpmfind.net 에서 찾아보시면 쉽게 구하실수 있습니다.


일단 xinetd가 기동시 불러들이는 폴더는 /etc/xinetd.d/폴더 입니다 일단 이 폴더로 이동을 해봅시다. 그후 proftp가 xinetd로 불려질수 있겠끔 파일을 하나 생성하셔야 합니다.


service ftp
{
       flags           = REUSE
       socket_type     = stream
       instances       = 50
       wait            = no
       user            = root
       server          = /usr/sbin/proftpd

       bind            = <the-ip-you-wish-to-bind-to>
       log_on_success  = HOST PID
       log_on_failure  = HOST RECORD
}