강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

== 4. CentOS 4.2 proFTP 설치및 운영하기 ==

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문


||| [CentOS] 4. FTP (proftp) 설치 및 설정파일 정복하기 |||
 

재성이의 4번째 강좌, CentOS 기반에서 FTP (proftp) 설치 및 운영하기 입니다. .
 

1.FTP 란

FTP는 "File Transfer Protocol" 의 약자로써 쉽게 말해 서버에(=홈페이지) 에 자료를 올리기위한 규정같은 것이라고 보시면 됩니다. 다른 자료들을 보면 구구절절 내용이 많은데 내용적인 측면을 공부하시려면 좀더 자료를 찾아 보시고 여기서는 간략하게 Linux 에서 ftp를 설치하고 사용하는데 필요한 계념및 정보들을 알려드리는게 맞는것 같습니다.

일반사람들이 자신의 계정이나 혹은 무계정으로 ftp에 접속하여 홈페이지자료를 올린다거나
음악,영화,프로그램의 저장목적으로 많이 사용하며 기타 저장매체가 없어도 인터넷만 된다면
아주 효율적으로 자료를 확보할수있기 때문에 ftp를 씁니다.
관리자 입장에서는 백업과 서버이전작업시 꼭 필요한 서비스이겠지요... ^^

먼저 ftp는 port 21 을 사용합니다.
보통전송모드에는 아스키모드(일반모드) 와 패시브모드(보안이강화된 모드) 가 있습니다.
우리가 설치할(컴파일로) proftp 의 설정파일은 서버단에서 /usr/local/proftpd/conf/proftpd.conf 입니다. 설정파일인 proftpd.conf 에서 ftp에 관련된 모든 내용을 셋팅할수있습니다.
그내용은 이 강좌 마지막부분에서 낫낫히 알려 드리겠습니다.

그럼 이제 사뿐히 설치해 볼까요... (컴파일로 설치합니다. rpm은 누구나 한번에 설치다 하니 추후에...)






2. PROFTP 컴파일 설치하기

########## 설치되어 있는지 확인 하기 ##########

=> 서버에서 LISTEN 하고 있는 서비스들을 봅니다.

[root@lecture ~]# netstat -anp | grep LISTEN
tcp   0      0 0.0.0.0:899  0.0.0.0:*   LISTEN      1989/rpc.statd 
tcp   0      0 0.0.0.0:110  0.0.0.0:*   LISTEN      2173/xinetd 
tcp   0      0 0.0.0.0:111  0.0.0.0:*   LISTEN      1970/portmap 
tcp   0      0 0.0.0.0:631  0.0.0.0:*   LISTEN      2098/cupsd 
tcp   0      0 0.0.0.0:25   0.0.0.0:*   LISTEN      2191/sendmail: acce 
tcp   0      0 :::22        :::*        LISTEN      2160/sshd

자 위의 결과처림 아직 21번포트를 LISTEN하고 있는 ftp 서비스는 보이질 않는고 sendmail 및 ssh등의 서비스만이 있음을 알수있다. 그리고 pstree라는 명령어로 ftp프로세서가 있는지도 확인해 봅니다. 혹시나 설치가 되어있더라도 중복설치 가능하니 걱정말고 다음 관정으로 넘어간다.주의할점은 어떤것이든지 덮어씌워 설치를 할때는 그 서비스는 내려놓고 하는것이 정석입니다. ^^
proftp 를 다운받아 설치하기
항상 말하는것이지만 컴파일설치시 보통 /usr/local/에서 주로 합니다.
그러나 이것은 절대적인것은 아니며 만약 rpm으로 설치를 하시면 경로는 대부분
/etc/아래에 설정파일같은것들이 다 들어가게 됩니다. 참고하시구요. 다음과같이 다운로드하고 설치합니다.


########## proftp 컴파일하여 설치하기 ##########

cd /usr/local
wget http://ftp.suidc.com/pub/FTP/proftpd/proftpd-1.2.10.tar.gz
tar xvfz proftpd-1.2.10.tar.gz
cd proftpd-1.2.10

./configure prefix=/usr/local/proftpd

make && make install


위의 절차대로 /usr/local/로 이동하여 소스파일을 다운받고 압축을 풀어서 컨피귤러 한다음
make 와 make install 을 해 주면 설치가 끝납니다.
컴파일이라고는 하나 rpm만큼이나 쉽게 설치할수있습니다. ftp는 설치도 중요하겠지만
더욱더 중요한것은 아마 다음 내용인 셋팅부분이(proftpd.conf) 아닌가 합니다.
설치가 에러없이 끝났으면 서비스를 실행시키기위해 설정파일을 분석해봅시다.

proftp의 실행은 /usr/local/proftpd/sbin/proftpd 하시면 됩니다.
확인은 위에서 해보았듯이 netstat -anp | grep LISTEN 이나 pstree, ps등으로 확인할수있습니다.

[root@lecture ~]# netstat -anp | grep LISTEN
tcp   0      0 0.0.0.0:899  0.0.0.0:*   LISTEN      1989/rpc.statd 
tcp   0      0 0.0.0.0:110  0.0.0.0:*   LISTEN      2173/xinetd 
tcp   0      0 0.0.0.0:111  0.0.0.0:*   LISTEN      1970/portmap
tcp   0      0 0.0.0.0:21   0.0.0.0:*   LISTEN      4130/proftpd: (acce <== 추가됨
tcp   0      0 0.0.0.0:631  0.0.0.0:*   LISTEN      2098/cupsd 
tcp   0      0 0.0.0.0:25   0.0.0.0:*   LISTEN      2191/sendmail: acce 
tcp   0      0 :::22        :::*        LISTEN      2160/sshd





3. proftpd.conf 완전 분석하기

ftp의 계념과 설치방법에 대해 알아보았습니다. 별 어려움 없이 넘어오셨을 것입니다.
마지막으로 설치후 기본적인 셋팅과 보안적인 셋팅등 입맛에 맛게 ftp를 설정하는데
/usr/local/proftpd/conf/proftpd.conf 설정파일이 그것이며 기본셋팅및 다른 어떤 셋팅
항목들이 있는지 직접 설정파일을 열어 항목들과 설명만 정리하였습니다.
빨간색 부분은 최소 기본적으로 해주셔야 할 것들이고 나머지는 상황에 따라 하시면 됩니다.

=========== proftpd.conf ==========================================================

vi /usr/local/proftpd/etc/proftpd.conf 분석 # 로그인시 보여줌 암거나 적어. ServerName "ProFTPD RhapSody Welecome to FTP ^^" # inetd 와 standalone 모드 선택 ServerType standalone # 주 IP address 또는 설정블록에서 지정되어진 address중의하나가 아닌 IP address로 # 들어오는 커넥션이 있을때 기본으로 사용되어질 서버설정 ( 먼말이야 ㅡ.,ㅡ ) DefaultServer on # ftp의 기본포트번호 Port 21 # 디렉토리와 파일의 퍼미션 설정해주는 놈 # umask 022 => 644퍼미션의 파일과 755퍼미션의 디렉토리를 생성 umask 022 # standalone 모드일때 최대 생성가는한 자식 프로세스 수 # Dos공격에 대한 보호차원에서 20정도만 MaxInstances 20 # Proftp가 실행될때 User, Group에 명시된 사용자명(권한)으로 실행된다. # 보안상 root 로는 절대하지말고 (집열쇠를 주는거랑 똑같다 ) User nobody Group nobody # 접속자의 IP주소를 도메인으로 변경하지 않겠다( Reverse Mapping ) UseReverseDNS off # 일반적으로 클라이언트가 Proftp로 연결했을때 remote username을 확인 IdentLookups off # PAM인증의 최종단계 권한부여 즉 PAM인증 실패시 클라이언트와의 연결을 거부함 AuthPAMAuthoritative on # 아래 위치는 각 계정이 접속시 보여줄 메시지 경로 뭐 홈아래에 # 계정디렉토리 아래가 가장 당하겠죠 DisplayLogin /home/sung/t # 각 서브디렉토리로 이동할 경우 보여질 메시지 파일 DisplayFirstChdir .message # ftp로 root의 로그인을 허락할꺼냐? RootLogin off # 모든 디렉토리안의 파일을 전송할때 덮어쓰기를 허락할꺼냐? AllowOverwrite on ################## # anonymous 셕션 # ################## # anonymous 는 아무나접속하는 거니가 자용자명이 없따... 그러니 요걸로 오는 거는 # 모두 ftp:ftp 로 지정하겠다는 것 User ftp Group ftp # anonymous로 접속하게되면 ftp의 권한을 가지게 된다. UserAlias anonymous ftp # 동시 접속자수 정의 , 초과시 ""문자열을 사용자에게 출력 MaxClients 10 "Sorry, maxium users %m --try again later !!" # 하나의 호스트당 최대 접속수 정의 역시 오바하면 문자한방주고... MacClientsPerHost 2 "Sorry, Allow only one client for host !!" # ftp로그인할때 보일 메시지인데 반드이 요 경로에 하라고 하네 왜 왜 왜 훩~~ # /var/ftp/welcome.msg 반드시 이경로라고~~ DisplayLogin welcome.msg # 각 서브 디렉토리로 이동할경우 보여줄 메시지 파일을 정의 DisplayFirstChdir .message # /etc/shells에 없는 shell binary로그인 여부를 결정합니다. # 특별한 이유가 없다면 off로 설정하길 바랍 RdquireValidShell off # 여기등록된 유저권한으로 된 것들은 숨겨져있어 안보인다. HideUser root # 업로드 디렉토리에 대한 설정 # 업로드 디렉토리 이름을 변경하고자 한다몀 아래의 uplolads를 적당한 # 이름으로 변경 Anonymous's Uploads Directory # 덮어 쓰기를 혀용합니다. AllowOverwrite on AllowRetrieveRestart on AllowStoreRestart on # 디렉토리 삭제 (RMD) 권한을 주지 않습니다. DenyAll # 읽기(READ) ,업로드(STOR), 디렉토리 생성(MKD)에 대해 모두 허락합니다. AllowAll # 위의 Anonymous's Uploads Directory와 같은 맥락 필요하면 계속 만들어 사용한다. # public 디렉토리에 대한 설정 Anonymous's public Directory AllowAll DenyAll
==================================================================================


지금까지 재성이의 FTP 강좌였습니다. 최대한 간단하게 기술하면서 최소한의 계념과 설치 그리고 가장 궁금해 하시는 ftp설정에 관하여 다루어 보았습니다. 다른 문서들을 보면 설치만 자세히 있고 어떤것은 설정파일 내용만 있는 것들이 많은데 여기서는 이강좌 하나로 ftp 은 거의 해결되었으면 하는 바램이며 그럼 다음 강좌때 뵙겠습니다.
 
 
 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  89 명