본문 바로가기

STUDY/ㄴ LINUX

ProFTPD 환경 설정하기

ProFTPD 환경 설정하기

FTP서버에 일반사용자계정으로 접속하면 사용자 홈디렉토리가 나타나고, anonymous 로 접속하면 FTP서버의 디렉토리로 접속됩니다. FTP서버의 보안과 효율성을 위해 ProFTPD 환경설정에 대해 알아보도록 하겠습니다.
  • /etc/ftpusers

    이 파일에 등록된 사용자들은 일반사용자계정이 아니라 시스템계정으로 FTP로 접속할 수 없습니다. 따라서 FTP접속을 원하지 않는 일반사용자가 있다면 이곳에 등록하여 접속을 허용하지 않도록 합니다.



  • /etc/proftpd.conf

    proftpd.conf 는 ProFTPD서버의 환경설정 파일로 아파치 웹서버의 httpd.conf와 비슷한 형식으로 이루어져 있습니다.

    ServerName"ProFTPD - WOW"
    서버에 접속했을 때 나타나는 메시지로 일반적으로 서버의 이름을 지정합니다.


    ServerTypestandalone
    서버의 구동방식을 설정하는 옵션으로 주로 standalone방식을 사용합니다. inetd모드는 INET 슈퍼 유저가 구동을 처리하며, 클라이언트의 요청이 있을 때마다 설정파일을 참조해야 하므로 속도가 느려질 수 있는 단점이 있습니다. standalone은 서버의 데몬을 스스로 구동하며 지정된 포트를 점유하면서 클라이언트의 요청에 응답합니다. inetd에 비해 속도는 빠르지만 자식 프로세스가 많아져 시스템 메모리를 많이 차지한다는 단점이 있습니다.


    DefaultServeron
    가상호스트서비스를 하는 경우, 현재 서버의 설정을 기본으로 하여 접속하겠다는 것으로 일반적으로 on으로 설정하면 됩니다.


    ServerAdminroot@sweetness.linux.co.kr
    FTP서버 관리자의 E-mail 주소를 지정합니다.


    Port21
    서버에 접속했을 때 나타나는 메시지에 적힐 서버의 이름을 지정합니다.


    Umask022
    새로 생성될 디렉토리나 파일의 기본 퍼미션을 결정합니다. '022'라는 값은 FTP로 접속하여 디렉토리 생성시 755의 퍼미션을 줍니다.


    MaXInstance10
    Dos의 공격에 보호하기 위해서 Standalone 방식으로 구동되었을때 생성되는 최대 자식 프로세스의 수를 결정합니다.


    User
    Group
    nobody
    nobody
    FTP데몬을 실행하는 사용자와 그룹을 설정합니다. 소스로 직접 컴파일하여 설치하는 경우 Group이 nogroup으로 되어 있으므로 nogroup이 시스템에 존재하는지 확인 한 후에 없을 경우에는 nobody로 바꾸어 사용하시기 바랍니다.


    <Directory /*>
    AllowOverwrite
    </Directory>
    on
    AllowOverwrite 지시자는 파일의 덮어쓰기를 결정합니다. 'on'으로 설정하면 덮어쓰기를 허용하고 'off'로 설정하면 허용하지 않습니다.


  • Anonymous FTP 서버 설정하기

    익명 FTP 서비스에 대한 설정입니다. 아래에 설명되는 지시자들은 모두 </Anonymous ~ftp>와 </Anonymous>사이에 들어갑니다.

    <Limit LOGIN>
    DenyAll
    </Limit>
    로그인을 허용하지 않는 설정입니다.

    <Limit LOGIN>
    Order deny, allow
    Deny from 203.249.73.2, 211.203.178.5, 179.118.203.3, deny.com
    Allow from all
    </Limit>
    특정 IP 주소의 접속을 허용하지 않을 경우에는 아래와 같이 합니다.

    User
    Group
    ftp
    ftp
    Anonymous FTP 서버의 사용자와 그룹을 결정하며, ftp라는 사용자가 있어야 합니다.

    UserAliasanonymous ftp
    앞에서 사용자를 ftp로 설정하였으므로 anonymous라는 사용자가 접속할 수 있도록 가짜 이름을 지정해 줍니다.

    RequireValidShell off
    RequireValidShell 지시자를 off로 해야 anonymous 사용자가 접속 할 수 있습니다.

    TimeoutStalled300
    네트워크의 장애로 데이터의 전송이 지연되는 경우, FTP서버와 클라이언트 사이의 접속을 유지할 수 있는 최대 연결 시간을 초 단위로 결정합니다.

    DisplayLoginwelcome.msg
    FTP 서버에 접속시 보여질 메시지 파일의 이름을 지정합니다.

    DisplayFirstChdir.message
    각 하위 디렉토리로 이동할 경우 기본적으로 보여질 메시지 파일의 이름을 결정합니다.

    MaxClients10 "Sorry, maxium users %m -- try again later"
    접속할 수 있는 최대 사용자의 수를 결정합니다. " " 사이의 내용은 제한한 최대 사용자 수에 도달하면 클라이언트에게 보여질 메시지 입니다.

    MaxClientsPerHost1 "Sorry, Allow only one client for host"
    한 호스트당 접속할 수 있는 사용자의 수를 결정합니다.

    <Limit WRITE>
    DenyAll
    </Limit>
    디렉토리에서 일반 사용자 계정이 쓰기를 금지하도록 설정합니다.


    이 외에도 더욱 다양한 기능들이 많이 있으므로 ProFTPD의 매뉴얼 홈페이지를 참조하시기 바랍니다.

    ProFTPD Documentation - http://www.proftpd.net/docs/index.htm

'STUDY > ㄴ LINUX' 카테고리의 다른 글

리눅스 파일시스템의 이해  (0) 2006.07.21
Linux 사용상의 장점  (2) 2006.05.10
ProFTPD 서버 설치하기  (0) 2006.04.15
ProFTPD 활용하기  (0) 2006.04.15
Linux 사용상의 장점  (0) 2006.04.15