----------------------------------------------------------------
ServerName "ProFTPD Default Installation"
FTP 에 접속 했을때 보여주는 문자열 입니다.
ServerType inetd
proftpd 를 작동하는 서버 모드는 두가지가 있는데 하나는 standalone 이고 하나는 inetd 방식입니다.
Standalone 방식은 proftpd 데몬이 프로세스상에 항상 떠 있으면서 접속을 대기 하고 있어 빠른 속도를 보이는 반면에 시스템자원을 차지하는 단점이 있으며
inetd 방식은 접속 요청이 있을때만 반응하므로 시스템자원을 차지하지 않지만 속도가 Standalone 방식보다 떨어질 수 있습니다.
DefaultServer on
한개의 FTP 서버에 여러개의 아이피 주소가 존재할 경우 이들 주소에 대해 접속요청이 있을때 기본 서버로 작동할 것인가를 결정해 줍니다.
Port 21
FTP 데몬의 포트번호를 지정해 줍니다.
Umask 022
주어진 콘텍스트에서 새로 만들어진 파일과 디렉토리 퍼미션에 적용될 마스크를 지정해 주는 지시자입니다.
MaxInstances 30
Standalone 방식으로 작동할때 생성될 수 있는 자식 프로세스 (child process) 의 최대 갯수를 설정해 줍니다. inetd 모드로 작동될 경우 이 옵션은 필요가 없습니다.
User nobody
Group nobody
데몬을 실행하는 사용자와 그룹의 소유권을 지정해 줍니다.
#DefaultRoot ~
유저들이 로그인 했을때 자신의 홈디렉토리 상위로 이동하지 못하도록 설정하는 옵션입니다. 틸드(~) 표시 뒤에는 그룹이름이 들어가도록 되어 있습니다.
사용예 )
#DefaultRoot ~ !root
위와같이 설정 하면 일반 유저들은 자신의 홈디렉토리의 상위 디렉토리로 이동하지 못합니다. 웹호스팅 서버에서 사용자들끼리 서로 다른 디렉토리에 옮겨다니지 않도록 하는 필수 설정 사항입니다.
<Directory />
AllowOverwrite on
</Directory>
<Directory /> </Directory> 지시자를 이용해서 디렉토리의 설정을 할 수 있습니다.
AllowOverwrite on
이것은 기존 파일에 똑같은 이름의 파일을 덮어 쓸 수 있게 하는 옵션이며 off 로 설정 하면 덮어쓰기가 금지됩니다.
<Anonymous ~ftp>
User ftp
Group ftp
UserAlias anonymous ftp
MaxClients 10
DisplayLogin welcome.msg
DisplayFirstChdir .message
<Limit WRITE>
DenyAll
</Limit>
</Anonymous>
anonymous FTP 를 운영하는 옵션입니다. 기본 디렉토리가 ~ftp 로 되어 있는것을 볼 수 있는데 기본적으로 ftp 계정은 /etc/passwd 파일을 보면
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
이렇게 설정 되어 있으므로 기본적으로 anonymous FTP 는 작동하지 않는것이 기본값입니다.
UserAlias anonymous ftp
유저들이 anonymous 외에 ftp 로도 로그인 할 수 있게 하는 옵션입니다.
MaxClients 10
FTP 서버에 접속할 수 있는 최대 클라이언트 수를 지정합니다.
뒤에 메시지를 붙여 주면 클라이언트 수가 초과 될때 접속 차단 메시지를 보여주게 됩니다. %m 으로 최대 접속자 수를 출력할 수 있습니다.
MaxClients 10 “ %m 명까지 접속 할 수 있습니다 “
만일 접속자 수를 제한하지 않으려면 이 값을 none 으로 해 주면 됩니다.
DisplayLogin welcome.msg
클라이언트가 서버에 로그인 하였을때 보여주는 메시지를 설정해 줍니다.
메시지 파일 경로는 절대경로,상대경로 모두 설정 할 수 있으며
상대 경로로 사용하는 경우에는 anonymous FTP 의 기본 디렉토리가 기준이 됩니다.
DisplayFirstChdir .message
클라이언트들이 디렉토리를 이동할때에 보여지게 될 메시지 파일 명을 설정합니다.
다시말해 클라이언트들이 디렉토리를 이동할때에 디렉토리에 .message 파일을 넣어 놓으면 그 내용이 클라이언트들에게 보여지게 됩니다.
메시지 파일에는 특정한 변수를 사용해서 메시지 화면에 여러가지 정보를 보여줄 수 있습니다
%C 현재 작업 디렉토리
%E 서버 관리자의 이메일 주소
%F 사용 가능한 디스크 공간
%L 로컬 호스트 이름
%M 접속 가능한 최대 클라이언트 수
%N 현재 접속 되어 있는 클라이언트 수
%R 원격 호스트 이름
%u ident 프로토콜에 의해 확인된 사용자명
%U 로그인에 사용된 사용자 명
%T 현재시간
<Limit WRITE> DenyAll </Limit>
클라이언트가 명령어를 사용하는데 제한을 두는 옵션이 <LIMIT> 옵션입니다.
위의 설정은 WRITE 를 하지 못하도록 하는 옵션입니다.
이외의 지시자들
AnonRequirePassword on
익명 FTP 접근시 패스워드를 이메일로 넣도록 하는 설정입니다.
TimeoutIdle 900
클라이언트가 900 초간 아무런 명령을 입력하지 않는 경우 접속이 끊어지는 옵션입니다.
TimeoutNoTransfer 900
클라이언트가 900 초간 아무런 전송이 없으면 접속이 끊어지는 옵션입니다.
TimeoutLogin 300
로긴할때 로그인 입력 대시 시간으로 300 초내에 입력하지 않으면 접속이 해제됩니다.
ServerAdmin root@localhost
서버의 관리자 이메일을 설정하는 옵션입니다.
RootLogin off
FTP 로 root 가 로그인 할 수 있는지 여부를 설정하는 옵션입니다.
RateReadBPS 256
클라이언트의 속도를 제한하는 옵션입니다.
다운로드,업로드를 할때 전송 대역폭을 제한하는 지시자입니다.
RateReadFreeBytes 5120
대역폭의 제한없이 전송할 수 있는 바이트 양을 지정합니다.
MaxClientsPerHost 3 "Sorry, %m connection allow per one host"
하나의 호스트 컴퓨터로 부터 동시에 접근할 수 있는 수를 지정합니다.
MaxHostsPerUser 1 "Sorry, %m hosts allow per one user"
하나의 계정 아이디로 동시에 접속 할 수 있는 호스트 컴퓨터 숫자를 설정합니다.
LsDefaultOptions "-a"
ls 명령어의 –a 옵션으로 hidden 파일도 볼 수 있도록 하는 옵션입니다.
UpTime 12 DownTime 18
서버를 시간대 별로 운영하는것을 지정합니다.
위의 예는 오후 12시부터 6시까지 운영하는 설정입니다.