티스토리 뷰

Application/Linux

PROFTPD 설치

알 수 없는 사용자 2008. 2. 10. 10:47

서버를 설치할 때 필수로 설치되는 것이 ftp 서버입니다. 배포판과 함께 ftp서버를 설치해서 사용할 수 있지만 개인적으로 proftpd를 더 좋아합니다. 지금까지 강좌와 마찬가지로 본 강좌도 RH9를 기반으로 작성합니다. 다른 배포판 버전에도 물론 별 무리 없이 설치 될꺼리 믿어 의심하지 않습니다.~

▒ FTP 서버 (proftpd)

-Redhat Linux를 기반으로 작성되었습니다-

1. 설치
  모든 프로그램이 그렇듯 다운로드 받아야 합니다. proftpd는 proftpd.org에서 받으실 수 있습니다.
현재 최신버전은 1.2.9입니다.  물론 업그래이드 되더라도 설치법은 크게 변하지 않으니 최신 버전을 받아서 하셔두 됩니다.^^ 만약 설치가 안된다면, 본 강좌의 마지막 부분에 나오는 메일주소로 메일 보내 주시기 바랍니다.~
먼저 설치할 디렉토리로 이동합니다.
통상적으로 프로그램은 /usr/local 아래 디렉토리에 설치하게 되면 .. 관리가 편리합니다.. 모든 프로그램을 그 위치에 설치하고 그 디렉토리만 압축해서 보관하면 서버가 뻣었을 때 복구가 간단하죠^^:
[root@test /]# cd /usr/local/
간단하게 위와 같은 wget 프로그램을 사용하여 다운로드 받습니다.
[root@test local]# wget http://ftp.superuser.co.kr/pub/proftpd/proftpd-1.2.9.tar.gz
--11:13:51--  http://ftp.superuser.co.kr/pub/proftpd/proftpd-1.2.9.tar.gz
           => `proftpd-1.2.9.tar.gz'
Resolving ftp.superuser.co.kr... 완료.
Connecting to ftp.superuser.co.kr[210.114.223.221]:80... connected.
HTTP 요청을 보냅니다, 서버로부터의 응답을 기다림...200 OK
길이:   995,350 [application/x-tar]
100%[=================================================================>] 995,350      382.54K/s    ETA 00:00
11:13:54 (382.54 KB/s) - `proftpd-1.2.9.tar.gz'가 보존되었습니다 [995350/995350]
압축을 풀어줍니다.~
[root@test local]# tar xvfz proftpd-1.2.9.tar.gz

디렉토리 이동합니다.
[root@test local]# cd proftpd-1.2.9

- 컨피그를 행합니다. 컴파일 환경과 옵션들을 설정할 수 있습니다.
./configure --help
위 명령을 내려 옵션이 뭐가 있는지 확인할  수 있지만, 별 내용없으니 아래의 옵션데로 컨피그를 합니다.
[root@test proftpd-1.2.9]# ./configure --prefix=/usr/local/proftpd --enable-autoshadow
- -enable-shadow옵션에서 --prefix는 설치할 디렉토리이고, --enable-autoshadow와 --enable-shadow는 대부분의 Linux에 shadow패스워드 시스템을 사용하기 때문에 이렇게 적어 주었습니다.
그리구 는 한줄에 다 못쓸 때 다음줄이랑 이어진다는 의미로 적어줍니다.~ VB의 "_"와 같은 의미죠^^;

- 컴파일 합니다.
[root@test proftpd-1.2.9]# make
- 설치 합니다.
[root@test proftpd-1.2.9]# make install
2. 환경설정파일 편집
이렇게 설치를 하였다면,  환경설정 파일은 /usr/local/proftpd/etc/proftpd.conf 일 것입니다.
- 실행 그릅 변경
27 번째 줄을 보면 실행그릅이 nogroup로 되어 있을 것입니다. 지금까지 설치한데로 설치 했었다면, nogroup는 없을 것입니다. nogroup라는 group를 생성해 주던지 아니면, 이 것을 nobody로 해 주면 됩니다.
Group                           nogroup
==> Group                           nobody
- wheel 그룹 사용자외에 자기 home 디렉토리 못 벗어나게 설정
다음과같이 한 줄만 추가 하면 됩니다.
DefaultRoot                   ~ !wheel
- 파일올렸는데 시간이 다르게 나온다면..
파일을 올렸는데 보이는 시간이 다르다면, 다음 옵션을 추가 합니다.
TimesGMT            off
- 트래픽 제한  wheel 그룹 사용자만 빼고 모든 사용자에게 .. 300K/sec 로 설정하고 싶다면, 아래 설정은 30M까지는 제한이 없게 설정했습니다. 31457280 이 수치가 30M라는 의미 입니다.
TransferRate APPE,RETR,STOR,STOU 300.0:31457280 group !wheel

기타 다른 기능들을 원하신다면, 아래의 메일 주소로 메일 한통 보내 주세요~ 그럼 제가 생각해보구 제 맘데로 추가 해 두겠습니다.^^;
3. 서버 시작
모든 설정이 끝났다면, 서버(데몬)를 시작합니다.
[root@test etc]# /usr/local/proftpd/sbin/proftpd
이렇게 아무런 메시지가 없다면 시작된 것입니다.
- 확인
[root@test etc]# netstat -an | grep LISTEN | grep 21
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN   
위와같이 21번 포트가 정상적으로 열려있어야 합니다.
[root@test etc]# ps -ef | grep proftpd
nobody    7617     1  0 11:53 ?        00:00:00 proftpd: (accepting connections)
root      7627  1682  0 11:54 pts/0    00:00:00 grep proftpd
위와같이 proftpd프로세스트 정상적으로 떠 있어야 합니다.
이렇게 확인하였다면. 서버 부팅시 시작되게 rc.local파일에 넣어줍니다.
[root@test etc]# echo /usr/local/proftpd/sbin/proftpd >> /etc/rc.d/rc.local
4. 기타 프로그램
proftpd는 여러 명령어를 제공합니다.
- ftp 서버 정지
[root@test sbin]# /usr/local/proftpd/sbin/ftpshut
usage: /usr/local/proftpd/sbin/ftpshut [ -R ] [ -l min ] [ -d min ] time  [ warning-message ... ]
ftp 서버를 정지하는 명령어입니다. 접속된 사용자에게 메시지를 뿌려 줄 수 있으며, 일정시간후 자동 정지 할 수 있습니다. 개인적으로 즉시 정지 하기 위해서는 ftpshut now 라고 하면 된다는데 ... 테스트 결과 잘 되지 않는군요^;
그럴 때 이렇게 죽이세요^^:
[root@test sbin]# killall proftpd
한방에 죽습니다^^;
그리구 shutmsg가 남아있는 경우가 있습니다. 이 파일이 있으면, ftp 접속이 되지 않으니 있으면 지워 주시기 바랍니다.^^
rm -rf /etc/shutmsg
- ftp서버에 접속한 사용자 수 알아내기
[root@test bin]# /usr/local/proftpd/bin/ftpcount
Master proftpd process 7766:
Service class                      -   1 user
한사람의 사용자가 접속되어 있다는 것을 알 수있습니다.
- ftp 만의 top 명령이 있다^^;
[root@test bin]# /usr/local/proftpd/bin/ftptop
ftptop/0.9: Tue May 25 12:12:13 2004, up for 5 min
1 Total FTP Sessions: 0 downloading, 0 uploading, 1 idle
PID   S USER     CLIENT               SERVER          TIME COMMAND            
7794  I doly     test                 0.0.0.0:21      257  idle

물론 top 명령어와 비슷하게 -d 옵션두 사용할 수 있습니다. 그리고 q를 누르게 되면 빠져 나오죠^^:
- ftp에서두 who 명령어를??
[root@test bin]# /usr/local/proftpd/bin/ftpwho
standalone FTP daemon [7766], up for 7 min
8240 doly     [  0m4s]   0m1s idle
Service class                      -   1 user
위와같이 접속 정보를 알 수 있습니다.
4. 마치며..

강좌를 하나 하나 써 갑니다. 이렇게 강좌를 써 가는 목적은~~ 강좌를 읽고 기뻐하실 분들을 위해서입니다. 물론 뭐 이런 것을 강좌로 썼나? 뭐 이렇나?? 이렇게 비판을 하실분들도 많이 계실 것이라고 생각합니다. ^^; 그래두 너그럽게 봐 주시구요.. 오타 및 문제점이 있으면... 아래의 메일주소로 메일 한통 주시기 바랍니다. 서버 관리자의 길은 멀고도 험하기 때문에 한곳에 오래 머무를 시간이 없군요~~ 하지만 머무르는 순간은 최선을 다해야 할 것 같습니다. ~~ 이 정도로 ftp 서버 설치 및 운영법을 마칩니다^^; 읽어 주셔서 감사합니다.~
혹시 본 강좌에 대한 질문 및 오타를 발견하게 되면, 메일 한통 보내주기 바란다. 메일주소는 doly 골뱅이superuser.co.kr 이다. 메일 주소를 무단 수집해서 스팸메일을 보내는 이를 막기 위해서 위와 같이 표기했으며, 골뱅이 부분은 @ 치환하면 된다.
  이상... 2004년 푸른 5월 부산에서 ~~수퍼유저 운영자 doly ...

 

출처 : http://www.superuser.co.kr

'Application > Linux' 카테고리의 다른 글

iSCSI  (0) 2008.02.10
*nix 명령어 정리  (0) 2008.02.10
VSFTP 설치하기  (0) 2008.02.10
서버가 느려졌어요!  (2) 2008.02.10
Solaris  (0) 2008.02.10