proftpd.conf ì„¤ì •19
proftpd란 ProFTPD는 unixë˜ëŠ” unix 호환 OS를 위한 FTP daemonì´ë‹¤. ProFTPD는 free software를 í† ëŒ€ë¡œí•œ GNU Public License (GPL)ì— ë”°ë¼ ê°œë°œë˜ì–´ì ¸ 왔으며, ì´ëŠ” ì™„ì „í•œ source code 와 ì´ë¥¼ í¬í•¨í•œ Proftpd package들 ë˜ëŠ” 미리 컴파ì¼ì„ 한 binaryë“¤ì˜ í˜•íƒœë¡œ ëœ ê²ƒì„ ì›í•˜ëŠ” 목ì ì— ë”°ë¼ ìƒì—…ì 으로 ë˜ëŠ” 마ìŒê» ë°°í¬í• 수 있다는 ê²ƒì„ ì˜ë¯¸í•œë‹¤. ì–¸ì œ 누구ì—ì˜í•´ì„œë“ ì§€ ProFTPD는 ìˆ˜ì •ë 수 있으며, ë˜í•œ GNU 기반 하ì—서 ë¼ì´ì„¼ìŠ¤í™”ë¥¼ í• ìˆ˜ê°€ 있다.
ProFTPD는 ì•ˆì „í•˜ê³ ì„¤ì •ê°€ëŠ¥í•œ FTP 서버를 ê°€ì§€ê³ í”ˆ 바램, Apache ì›¹ì„œë²„ì˜ ë§¤ë ¥ì ì¸(?) 관리ì´ìƒìœ¼ë¡œ 성장했다. unix(ë˜ëŠ” 비슷한)ì—서 ìš´ì˜ë˜ëŠ” 매우 ì œí•œëœ ìˆ«ìžì˜ ftp ì„œë²„ë“¤ì´ ìžˆë‹¤. 통ìƒì 으로 사용ë˜ëŠ” 서버는 ê±°ì˜ ëŒ€ë¶€ë¶„ wu-ftpd ì´ë‹¤. wu-ftpdê°€ 훌ë¥í•œ ì„±ëŠ¥ì„ ì œê³µí•˜ê³ ì¼ë°˜ì 으로는 ì¢‹ì€ ìž‘í’ˆì´ì§€ë§Œ ìµœê·¼ì˜ Win32 FTP 서버들ì—서 보게ë˜ëŠ” 다양한 ê¸°ëŠ¥ë“¤ì´ ì—†ê³ ì¢‹ì§€ ì•Šì€ ë³´ì•ˆì—사를 ê°€ì§€ê³ ìžˆë‹¤. ê°œì¸ì 으로, 나(ProFTPD 프로ì 트를 시작한 사람)는 ë²Œë ˆë¥¼ ìž¡ê³ ê¸°ëŠ¥ë“¤ì„ ì¶”ê°€í•˜ê¸° 위해 wu-ftpd를 뜯어보는 ê²ƒì— ë§¤ìš° ë§Žì€ ì‹œê°„ì„ ì†Œë¹„í–ˆë‹¤. 불행히ë„, ì›í•˜ëŠ” ì„¤ì •ì„±ê³¼ ê¸°ëŠ¥ë“¤ì„ êµ¬í˜„í•˜ê¸° 위해서는 ì™„ì „ížˆ 다시 만들어야 한다는 í•„ìš”ì„±ì´ ë„ˆë¬´ë„ ì¼ì° 확연해졌다. ProFTPD는 다른 ì–´ë–¤ ì„œë²„ì˜ ê°œì¡°íŒë„ 아니며, 처ìŒë¶€í„° ë까지 ì™„ì „ížˆ ë…립ì ì¸ ì†ŒìŠ¤ 체계ì´ë‹¤.
ì„¤ì •ì„±ì˜ ëŒ“ê°€ë©´ì—서 wu-ftpd와 ìŒë²½ì„ ì´ë£¨ë©´ì„œ 경량급ì´ê³ ì•ˆì „í•˜ê²Œ 만들어진 다른 FTP ì„œë²„ë“¤ì´ ìžˆë‹¤. 예를 들ìžë©´, Troll FTP는 wu-ftpd보다 꽤 ì•ˆì „í•˜ë©° ìžì›ì„ ëœ ìž¡ì•„ë¨¹ëŠ” 훌ë¥í•œ FTP ë°ëª¬ì´ë‹¤. 불행히ë„, ì´ë„˜ì€ 기초ì ì¸ FTP 서비스ì—는 ê¼ ë“¤ì–´ë§žì§€ë§Œ, ë” ë³µìž¡í•œ FTP 사ì´íŠ¸ë“¤ì—서 요구ë˜ëŠ” ê¸°ëŠ¥ë“¤ì„ ì œê³µí•˜ì§€ 않는다.
ProFTPD는 다ìŒì˜ ê¸°ëŠ¥ë“¤ì„ ì œê³µí•œë‹¤( 현재 ì´ë ‡ë‹¤ëŠ” 것ì´ê³ 계íšëœ ë” ë§Žì€ ê²ƒë“¤ì´ ê³§!):
Apache 웹 서버를 사용해 본 관리ìžë¼ë©´ 누구나 ì§ê´€ì 으로 ì´í•´í• 수 있는 지시ìžì™€ 지시그룹으로 ëœ ë‹¨ í•˜ë‚˜ì˜ ì„¤ì • í™”ì¼.
Apacheì˜ ".htaccess"와 비슷한 ê° ë””ë ‰í† ë¦¬ì˜ ".ftpaccess" ì„¤ì •.
쉽게 ì„¤ì •í• ìˆ˜ 있는 다중 ê°€ìƒ FTP 서버와 anonymous FTP 서비스.
시스템 ë¶€í•˜ì— ë”°ë¼ stand-alone ë˜ëŠ” inetd 중ì—서 골ë¼ì„œ ìš´ì˜ë˜ë„ë¡ ë§Œë“¤ì–´ì§.
anonymous FTPì˜ root ë””ë ‰í† ë¦¬ì—는 특별한 ë””ë ‰í† ë¦¬ 구조나 시스템 í™”ì¼ì´ ì—†ì–´ë„ ë¨.
SITE EXEC ëª…ë ¹ì´ ì—†ë‹¤. í˜„ëŒ€ì˜ ì¸í„°ë„· 환경ì—서 그런 ëª…ë ¹ì€ ë³´ì•ˆë©´ì—서 악몽ì´ë‹¤. ProFTPD는 ì–´ë– í•œ 경우ì—ë„ ì–´ë–¤ 외부 ëª…ë ¹ë„ ì‹¤í–‰í•˜ì§€ 않는다. 검사를 위해 관리ìžì—게 소스가 ì œê³µëœë‹¤ (í•ìƒ ì œê³µë 것ì´ë‹¤).
ìœ ë‹‰ìŠ¤ ìŠ¤íƒ€ì¼ í¼ë¯¸ì…˜ì— 기초한 숨겨지는 ë””ë ‰í† ë¦¬ë‚˜ í™”ì¼ë“¤ ë˜ëŠ” ìœ ì €/그룹 ì†Œìœ ê¶Œ.
"root" ê¶Œí•œì„ ë”°ë‚¼ 수 있는 ê³µê²©ì˜ ê¸°íšŒë¥¼ 줄ì´ê¸° 위해 stand-alone 모드ì—서는 íŠ¹ê¶Œì´ ì—†ëŠ” ìœ ì €ë„ ìš´ì˜ì„ í• ìˆ˜ 있ë„ë¡ ì„¤ì •ê°€ëŠ¥. 주ì˜: ì´ ê¸°ëŠ¥ì€ Unix ì‹œìŠ¤í…œì˜ ëŠ¥ë ¥ì— ê¸°ì´ˆí•œë‹¤.
기ë¡í•˜ê¸°, utmp/wtmp ì§€ì›. 기ë¡í•˜ê¸°ëŠ” wu-ftpd 표준과 호환ì´ë©° í™•ìž¥ëœ ê¸°ë¡í•˜ê¸°ë„ 가능하다.
shadow 암호 ì§€ì›, ë§Œë£Œëœ ê³„ì •ë“¤ ì§€ì› í¬í•¨.
그럼 지금까지 proftpdì— ëŒ€í•œ ê²ƒì„ ì•Œê²Œë˜ì—ˆê³ ì´ì œ ftp서버를 관리하는 proftpd.conf íŒŒì¼ ì„¤ì •ì„ ì•Œì•„ë³´ë„ë¡ í•˜ìž. ìš°ì„ proftpdê°€ ê¹”ë ¤ìžˆëŠ”ì§€ 확ì¸ì„ 한다..없으면 CD-ROMì´ë‚˜ ê° ë°°í¬íŒì˜ FTPì—서 RPM으로 ë‹¤ìš´ë¡œë“œí•˜ë“ ì§€ http://www.profrpd.org, ftp://linux.sarang.net/ì— ì ‘ì†í•´ì„œ 소스나 RPM으로 다운로드하여 설치 하ë„ë¡ í•œë‹¤. 설치가 다 ë˜ì—ˆìœ¼ë©´ ì´ì œ 본격ì ì¸ proftpd ì„¤ì • 파ì¼ë“¤ì„ 보기로 한다.
# cd /etc
#vi proftpd.conf
ServerName "Accel Linux Default Installation"
# ServerTypeì€ Server를 standalone mode로 í• ê²ƒì¸ì§€ inet mode로 í• ê²ƒ
# ì¸ì§€ë¥¼ ì •í•œë‹¤. standalone mode는 ì´ë¯¸ ìƒì„±ëœ 프로쎄스를 복사해서 ìžì‹ 프로세스를 ìƒì„±í•˜ëŠ”
#ì´ë‹¤. inet mode는 ì•„ 예 처ìŒë¶€í„° 프로쎄스를 ìƒì„±í•œë‹¤. default로 inetd mode로 한다. standalone #mode í• ê²½ìš° 아래 MaxInstances 지시ìžì˜ 주ì„ì„ í•´ì œ 한다.
# inetd mode로 ìž‘ë™ì„ í• ê²½ìš°ì—는 /etc/inetd.conf중ì—서
# ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a
# í–‰ì„ ì•„ëž˜ì™€ ê°™ì´
# ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd
# ìˆ˜ì •ì„ í•´ ì£¼ê³ Inet demonì„ ìž¬ 실행 í•´ 줘야 한다. Inet demonì€ ë³´í†µ 센드메ì¼, 아파치 웹서버는 #inet ìŠˆí¼ ì„œë²„ì˜ ê´€ë¦¬ë¥¼ 받지 ì•Šê³ ë…립ì 으로 실행ëœë‹¤. 왜ëƒí•˜ë©´, ì´ë“¤ì˜ 서비스는 매우 빈번하게
#ìš”ì²ë˜ë¯€ë¡œ ë°˜ì‘ì‹œê°„ì´ ë¹¨ë¼ì•¼ 한다. 사실, inetdìŠˆí¼ ì„œë²„ë¥¼ 거치는 서비스는 ë…립형 서버
#실행방법보다 ë°˜ì‘ì‹œê°„ì´ ëŠë¦¬ë‹¤. 그러나 ìžêµ¬ 사용하지 않는 서비스 ë°ëª¬ì„ ê³„ì† ë„어놓는 ê²ƒì€ ë‚비#ì´ë‹¤. inetdì—관리하는 ì„œë²„ë“¤ì€ ëŒ€ë¶€ë¶„ in.ì´ë¼ëŠ” ì´ë¦„으로 시작하는 파ì¼ëª…ì„ ê°€ì§€ë©°,
#/usr/sbin ë””ë ‰í† ë¦¬ì— ìœ„ì¹˜ 한다
ServerType standalone
DefaultServer on
# ServerTypeì´ standaloneì´ë©´ ì´ í•ëª©ì˜ ì£¼ì„ì„ í’€ì–´ 줘야 한다.
# inetd로 ìž‘ë™ì„ 시킬시ì—는 /etc/servicesì—서 port를 ì§€ì •í•œë‹¤.
Port 21
# root loginì„ í—ˆë½í• ì§€ì˜ ì—¬ë¶€ë¥¼ ì§€ì •í•œë‹¤. PAM modules를 사용한다면
# ë¨¼ì € /etc/proftpd/conf/ftpusersì—서 root를 ì‚ì œí•´ì•¼ 한다. 왜ëƒë©´ root는 ëª¨ë“ ê¶Œí•œìœ¼ë¡œ 다 ë˜ì—ˆê¸° ##ë•Œë¬¸ì— root로 들어와 ìžë£Œë¥¼ ì‚ì œí• ìˆ˜ê°€ 있어서 root user를 ì œê±°í•œë‹¤.
#
RootLogin off
# Global sectionì€ proftpdì˜ ì „ì²´ì ì¸ ì„¤ì •ì— ëª¨ë‘ ì 용시킨다.
<Global>
# groupê³¼ world writable로 부터 새로운 dirê³¼ fileë“¤ì„ ìƒì„±í•˜ëŠ” 것ì„
# 막기위하여 기본ì 으로 umask는 022로 ì„¤ì •ì„ í•œë‹¤.
#umask는 새로 ìƒì„±ëœ ë””ë ‰í† ë¦¬ë‚˜ 파ì¼ì— 대해서 í¼ë¯¸ì…˜ì„ 기본ì 으로 ì 용시킨다. 즉 Globalì—서 #umask 022로 ì„¤ì •ë˜ì–´ 있으므로 Anonymous ê°€ ì ‘ì†í•˜ì—¬ 새로 ìƒì„±ì‹œí‚¬ 수 있는 ë””ë ‰í† ë¦¬ì— ëŒ€í•´ì„œ #755í¼ë¯¸ì…˜, 그리구 파ì¼ì— 대해서는 644ì˜ í¼ë¯¸ì…˜ì„ 준다. ìž ê¹ ë””ë ‰í† ë¦¬ì˜ ì†Œìœ ìžì— 관해서ë„
#ìƒê°í•´ë³´ìž. Anonymousê°€ 새로 ìƒì„±ëœ ë””ë ‰í† ë¦¬ê°€ 755ì´ë¯€ë¡œ ì´ ë””ë ‰í† ë¦¬ì˜ ì†Œìœ ìžëŠ” root나 다른 #userê°€ ì•„ë‹ˆê³ "ftp"ì†Œìœ ìžê°€ ëœë‹¤. 즉 UserAlias Anonymous ftpì´ë¯€ë¡œ ëª¨ë“ Anonymousì— ëŒ€í•´ì„œ
#다른 Anonymosê°€ ìƒì„±ì‹œí‚¨ ë””ë ‰í† ë¦¬ë‚˜ 파ì¼ì„ 지우거나 바꿀 수 있다.
Umask 022
# PAM module 사용여부 (/etc/pam.d/ftp가 필요하다)
# /usr/doc/proftpd-1.2.0pre5/README.PAM 를 참조하ë¼
#
#AuthPAMAuthoritative on
</Global>
# íšŒì„ ì˜ Bandwidth를 íŠ¹ì • ì†ë„로 ì œí•œì„ í•œë‹¤.
#RateReadBPS 256
#RateReadFreeBytes 5120
#RateReadHardBPS on
# ì ‘ì† ëŒ€ê¸° ì‹œê°„ì„ ì„¤ì •í•œë‹¤. user ê°€ ì ‘ì†í›„ 아무 ìž‘ë™ë„ ì•ˆí• ë•Œ ì¼ì • 시간후ì—
# ì ‘ì†ì´ 종료ë˜ê²Œ 한다.ì‹œê°„ì€ ì´ˆë¡œ 계산한다.
TimeoutIdle 300
# DeferWelcome 는 clientê°€ ì¸ì¦ì„ 하기 ì „ì— servernameì„ display하는
# ê²ƒì„ ë°©ì§€í•œë‹¤.
DeferWelcome off
# 'welcome.msg는 loginì‹œì— ë³´ì—¬ì§€ê³ , 'message'는 ê° í•˜ìœ„ ë””ë ‰í† ë¦¬ì— ì ‘ì†
# í–ˆì„때 보여지게 ëœë‹¤.
# *메시지 파ì¼ì— í¬í•¨ë˜ëŠ” Magic Cookie 문ìžì—´ ( ì°¸ê³ ì‚¬í•) #
cookies
ì˜ ë¯¸
%C
í˜„ìž¬ì˜ ìž‘ì—… ë””ë ‰í† ë¦¬
%E
Ftpaccessì— ì •ì˜ ëœ ë©”ì¸íŠ¸ë„ŒìŠ¤ 담당ìžì˜ e-mail주소
%F
CWD íŒŒí‹°ì…˜ì˜ ì—¬ìœ ê³µê°„(Kilobytes)
%L
로컬 호스트명
%M
ì´ í´ëž˜ìФì—서 í—ˆê°€ëœ ìµœëŒ€ 사용ìžìˆ˜
%N
ì´ í´ëž˜ìŠ¤ì˜ í˜„ìž¬ 사용ìžìˆ˜
%R
ì›ê²© 호스트명
%T
ì§€ì— ì‹œê°„(Thu Nov 15 17:12:42 1990 형ì‹)
%u
RFC 931 ì¸ì¦(authentication)ì„ í†µí•´ ê²°ì •ëœ ì‚¬ìš©ìžëª…
%U
로그ì¸ì‹œì— 주어진 사용ìžëª…
DisplayLogin welcome.msg
DisplayFirstChdir .message
# DoS ê³µê²©ì„ ë§‰ê¸° 위해, ìžì‹ processì˜ maximun number를 30으로 ì„¤ì •í•œë‹¤.
# 만약 30ì´ìƒì˜ ì ‘ì†ì„ í—ˆë½í• 필요가 있다면 간단하게 ì´ ì¹˜ìˆ˜ë¥¼ ì¦ê°€ì‹œí‚¤ë„ë¡
# 한다. ì´ê²ƒì€ ì˜¤ì§ standalone modeì—서만 가능하다. inetd modeì—서는
# service 당 maximun number를 ì œí•œ 하는 ê²ƒì„ í—ˆë½í•˜ëŠ” inetd serverì—서
# ì„¤ì •ì„ í•´ì•¼ 한다.(xintd ì—시 마찬가지 ì´ë‹¤)
# MaxInstances 30
User nobody
Group nobody
# ì¼ë°˜ì 으로 fileë“¤ì„ overwrite를 가능하게 한다.
<Directory /*>
AllowOverwrite on
</Directory>
# ls ëª…ë ¹ì–´ì˜ -a option으로 hidden fileì„ ë³¼ìˆ˜ 있게 한다.
# LsDefaultOptions "-a"
#Anonymous user로 ë“¤ì–´ì˜¨ëŠ ì„¤ì •ë¶€ë¶„
<Anonymous ~ftp>
User ftp
Group ftp
# Anonymous userê°€ ftp로 ì ‘ê·¼í•˜ì—¬ shellì˜ ê¶Œí•œì„ ì–»ëŠ” 것ì„
# 방지한다.
RequireValidShell off
# Anonymous ì ‘ê·¼ì„ í• ë•Œ íŠ¹ì • password를 ì§€ì •í• ìˆ˜ 있다.
# 단 ìœ„ì˜ User 지시ìžì˜ nameì´ passwd fileì— ë“±ë¡ì´ ë˜ì–´ì ¸
# 있어야 한다. ì´ ì§€ì‹œìžê°€ onì¼ ê²½ìš° ì´ë©”ì¼ ì£¼ì†Œë¡œ loginì„
# í• ìˆ˜ 없다.
# AnonRequirePassword on
#
#ShowSymlink==>ì‹¬ë²Œë¦ ë§í¬ë¥¼ 보여주는 ì„¤ì •ì´ë‹¤. ê¸°ë³¸ì„¤ì •ì€ Anonymousê°€ ì ‘ì†í•œ 경우ì—는 off로 ë˜ì–´ ìžˆê³ , ê¸°íƒ€ê³„ì • 사용ìžê°€ ì ‘ì†í• 때는 on으로 ì„¤ì •ë˜ì–´ 있다. ì „ì²´ì— í—ˆìš©í•˜ê³ on으로 한다..
#ShowSymlinks off
# User name "ftp"로 anonymous loginì„ í• ìˆ˜ 있ë„ë¡ í•œë‹¤
UserAlias anonymous ftp
<Limit LOGIN>
AllowAll
</Limit>
# anonumous로 user로 들어오는 ftpì„œë²„ì˜ ë©”ì‹œì§€ë¥¼ 보여주는 ê³³ì´ë‹¤..ìœ—ì— ì°¸ê³ ì‚¬í• ì°¸ê³ í•œë‹¤.
DisplayLogin welcome.msg
DisplayFirstChdir .message
# 최대 ì ‘ì† ì¸ì›ìˆ˜ë¥¼ ì§€ì •í•œë‹¤.(임으로 ì§€ì •í• ìˆ˜ ê°€ 있다.)
MaxClients 10
# í•˜ë‚˜ì˜ í˜¸ìŠ¤íŠ¸ë¡œ 부터 ë™ì‹œì— ì ‘ê·¼í• ìˆ˜ 있는 수를 ì§€ì •í•œë‹¤.
# ì•„ëž˜ì˜ ê¸°ë³¸ ì„¤ì •ìœ¼ë¡œëŠ” í•˜ë‚˜ì˜ í˜¸ìŠ¤íŠ¸ì—서 í•œë²ˆì˜ ì ‘ê·¼ë§Œ 허용한다.
MaxClientsPerHost 3 "Sorry, one connection allow per one host"
# ì†Œìœ ê¶Œì´ rootì¸ fileì´ë‚˜ directoryë“¤ì„ ë³´ì—¬ì£¼ì§€ 않는다
#HideUser root
# ê·¸ë£¹ê¶Œí•œì´ rootì¸ fileì´ë‚˜ directoryë“¤ì„ ë³´ì—¬ì£¼ì§€ 않는다
#HideGroup root
# upload/download ë¹„ìœ¨ì„ ì§€ì›í•œë‹¤.
# /usr/doc/proftpd-1.2pre7/mod_ratio.c를 참조하ë¼
#
# Ratios on
# HostRatio foobar.net 100 10 5 100000
<Limit WRITE>
DenyAll
</Limit>
# Upload directory, allow upload and mkdir, deny download.
# Upload directory ì„¤ì •ì´ë‹¤. upload와 mkdirì€ í—ˆë½í•˜ë©°,
# download는 ê±°ì ˆí•œë‹¤
#
<Directory incoming>
AllowStoreRestart on ===>í´ë¼ì´ì–¸íЏì—서 서버로 íŒŒì¼ ì „ì†¡
AllowRetrieveRestart on ==>서버ì—서 í´ë¼ì´ì–¸íŠ¸ë¡œ 파ì¼ì „송
==>ì„¤ì •ì„ on으로 하면 ì´ì–´ë°›ê¸°ê°€ ëœë‹¤.
<Limit READ>
DenyALL
</Limit>
<Limit STOR MKD>
AllowALL
</Limit>
</Directory>
# 사용ìžê°€ ì ‘ê·¼í•˜ê¸°ë¥¼ ì›í•˜ì§€ 않는 private directory
# <Directory logs>
# <Limit READ WRITE DIRS>
# DenyAll
# </Limit>
# </Directory>
</Anonymous>
#ê°€ìƒ ì„œë²„ FTP만드는 ì„¤ì •ì„ í•˜ê² ë‹¤. VirtualHost ì˜ ì£¼ì†ŒëŠ” 네임서버ì—서 ì§€ì •í•´ì£¼ì–´ì•¼ 한다.
<VirtualHost ftp.virtual.com>
ServerName "Virtual.com's FTP Server"
#들어오는 ì¸ì› ì œí•œ
MaxClients 10
#로깅 ì‹œë„ íšŸìˆ˜
MaxLoginAttempts 1
#DeferWelcome on
#guest loginë§Œ í—ˆë½í•˜ê¸°ë¥¼ 위하여
#nomail user loginì„ ì œí•œí•œë‹¤.
<Limit LOGIN>
DenyALL
</Limit>
##í™ˆë””ë ‰í† ë¦¬ ë°–ì— ì›€ì§ì´ì§€ 못한다.ëª¨ë“ ê³„ì •ìžì—서 !adminì€ admin 그룹ì„ì œì™¸í•˜ê³ ëŠ” í™ˆë””ë ‰í† ì—서만 움ì§ì¸ë‹¤.
DefaultRoot ~ !admin
#다ìŒ, ìžì‹ ë“¤ì˜ web siteë“±ì— ê°œì¸ì 으로 ì ‘ê·¼í•˜ê¸° 위한 customerì— ì˜í•´ 사용ë˜ëŠ” "guest"ê³„ì •ì„ ë§Œ#ë“ ë‹¤. 여기서 useradd로 등ë¡í•œ cust1ì˜ ê³„ì •ì„ ì„¤ì •í•˜ëŠ” 부분ì´ë‹¤.
<Anonymous ~cust1>
User cust1
Group cust1
#패스워드를 확ì¸í•œë‹¤.
AnonRequirePassword on
<Limit LOGIN>
AllowAll
</Limit>
#ìˆ¨ê¸°ê³ ìží•˜ëŠ” 사용ìžì™€ 그룹
HideUser root
HideGroup root
#사용ìžê°€ ì ‘ê·¼í•˜ê¸°ë¥¼ ì›í•˜ì§€ 않는 private directory
<Directory logs>
<Limit READ WRITE DIRS>
DenyAll
</Limit>
</Directory
</Anonymous>
</virtualHost>
#primary addressì—서 ìž‘ë™ì„ 하지만 port는 4000ë²ˆì„ ì‚¬ìš©í•˜ëŠ” ë˜ ë‹¤ë¥¸ ê°€ìƒ í˜¸ìŠ¤íŠ¸ì´ë‹¤. acess는 하#ë‚˜ì˜ anonymous loginë§Œ ëœë‹¤.
<virtualHost our.ip.address>
ServerName "Our private FTP server"
Port 4000
Umask 027
<Limit LOGIN>
DenyAll
</Limit>
<Anonymous /usr/local/ftp/vitual/a_customer>
User ftp
Group ftp
UserAlias anonymous ftp
<Limit LOGIN>
AllowALL
</Limit>
<Limit WRITE>
DenyAll
<Limit>
<Directory incoming>
<Limit WRITE>
AllowAll
</Limit>
</Directory>
<Anonymous>
</VirtualHost>
:wq!
ìŒ ì´ì œ proftpd.conf 파ì¼ë“¤ì„ 보았다..사용ìžì˜ ìž…ë§›ì— ë§›ì— ìˆ˜ì •í•˜ì˜€ìœ¼ë©´ ê¼ proftpdë°ëª¬ì„ ê¼ ìž¬ì‹¤í–‰ 해야한다..
# etc/rc.d/init.d/proftpd restart
ì´ì œ proftpd.conf파ì¼ë“¤ì„ 보았다.그러면 ì´ì œ ftp서버를 관리하는 ë¶€ë¶„ì„ ë³´ë„ë¡ í•˜ìž.
ftpë„ ë³´ì•ˆì„ ìœ„í•´ì„œëŠ” ì¼ì •한 모니터ë§ì´ í”¼ìš”í•˜ê³ , ê·¸ê²ƒì˜ ê°€ìž¥ ë‹¨ìˆœí•˜ê³ ìœ ìš©í•œ ìž‘ì—…ì€ ë¡œê·¸ 파ì¼ì„ ì½ëŠ” 것과 í˜„ìž¬ì˜ ì ‘ì† ìƒíƒœë¥¼ ì 검해 보는 것ì´ë‹¤. 그러므로 ftp서버를 관리하기 위한 ëª…ë ¹ì–´ë“±ì„ ì•Œì•„ë³´ê¸°ë¡œ 한다.
[proftpì˜ ì¤‘ìš” 파ì¼ë“¤]
/usr/sbin/proftpd : proftpd는 ì „ë¬¸ì ì¸ File Transfer Protocol (FTP) server daemonì´ë‹¤. server는 FTP serviceê°€ ì´ë£¨ì–´ì§€ê¸° 위해 ì ‘ì† ë 때마다, ë˜ëŠ” stand-alone daemon으로서 실행ë˜ëŠ” ê²ƒì„ ëŒ€ì²´ë¡œ ë ë–„, Internet "super-server" inetdì— ì˜í•˜ì—¬ 시작ëœë‹¤. proftp ê°€ standalone mode로 ìž‘ë™í• 때, ê·¸ë¦¬ê³ SIGHUP를 ë°›ì„ ë–„ proftp는 config fileì„ ë‹¤ì‹œì½ì„ 것ì´ë‹¤.
/usr/sbin/ftpwho : ì´ ëª…ë ¹ì„ ë‚´ë¦¬ë©´ ftpìœ ì €ë“¤ì˜ í˜„ìž¬ processì •ë³´ë¥¼ 보여준다. 그래서 ëª¨ë“ proftpdì— ì—°ê²°ë˜ì–´ 있는 processì˜ ì •ë³´ë¥¼ 보야주며, ê° serverì˜ ì ‘ì†ë˜ì–´ 있는 수를 보여준다. inetd로부터 ìƒì„±ëœ proftpd sessionë“¤ì€ standalone serverì— ì˜í•´ ìƒì„±ëœ 것들과는 구분하여 countëœë‹¤.
/usr/bin/ftpcount : ì´ê²ƒì€ ê° proftpd serverì„¤ì •ì— ì ‘ì†ë˜ì–´ 있는 userì˜ ìˆ˜ë¥¼ 보여준다. ì´ê²ƒì€ proftpd.conf fileì— ì •ì˜ ë˜ì–´ 있는 ê° server와 virtualhost/anonymos ì„¤ì •ì— ì ‘ì†í•´ 있는 현재 숫ìžë¥¼ 보여준다. inetdì— ì˜í•´ ìƒì„±ëœ ì ‘ì†ì€ proftpd standalone serverì— ì˜í•´ ìƒì„±ëœ 것들로부터 구분ë˜ì–´ 카운트ëœë‹¤.
/usr/sbin/ftpshut : ì§€ ì •í•œ ì‹œê°„ì— ëª¨ë“ proftp serverë“¤ì„ shutdown한다. ì´ ëª…ë ¹ì€ ìžë™ìœ¼ë¡œ shutdown ì§„í–‰ì„ ì¤€ë¹„í•˜ê³ ,ìžë™ìœ¼ë¡œ 현재 proftpd connectionì„ ëŠì„ 수 있으면 ìƒˆë¡œì€ ì—°ê²°ì„ ê±°ë¶€í•˜ë„ë¡ í• ìˆ˜ 있다. ëª…ë ¹ì€ shutdownì´ ìž„ë°•í•¨ì„ proftpd processì— ì•Œë¦¬ê¸° 위하여 /etc/shutmsg와 ê°™ì€ ì»¨íŠ¸ë¡¤ì„ ì‚¬ìš©í• ìˆ˜ 있다. 주ì˜í• ì ì€ proftpd server는 master demonì´ standalone mode로 ë™ìž‘í• ë•Œ ftpshutì„ í†µí•´ì„œë§Œ shutdownì„ í• ìˆ˜ê°€ 있다.Serverê°€ inetd mode로 ì‹¤í–‰ì´ ëœë‹¤ë©´ ftpshutì— ì˜í•´ ìƒì„±ëœ shutdown message fileì„ ì‚¬ìš©í• ìˆ˜ 있다.하지만 현재 ë™ìž‘ì¤‘ì¸ server는 chrootë 것ì´ë©´ , shutdown message control fileì„ ì½ì§€ 못한다.
/var/log/xferlog : xferlog fileì€ FTP server daemon(ftpd(8))ì˜ logging ì •ë³´ë¥¼ í¬í•¨í•œë‹¤. ì´ fileì€ ë³´í†µ /usr/admì—서 ë³¼ 수 있으나, ftpd(8)ì˜ optionì„ ì‚¬ìš©í•¨ì— ë”°ë¼ ì–´ë””ë“ ì§€ 위치ë 수 있다.ì‹¤ì œë¡œê·¸ 파ì¼ì˜ 예를 ë“¤ê² ë‹¤.
SUN NOV 14 00:27:54 2000 0 166.104.37.130 3495 /usr/local/apache/htdocs/h3.htm a_ir webmaster ftp 0 *
Mon Nov 15 20:42:19 2000 0 166.104.53.121 304422 /home/xenus/a.zip b_ir xenus ftp 0 *
설명: Mon Nov 15 20:42:19 2000 =>current-time : "DDD MMM dd hh:mm:ss YYYY"형ì‹ì˜ local시간ì´ë‹¤. DDD는 ì£¼ì¤‘ì˜ ìš”ì¼ì„ ,MMMì€ ì›”ì„,dd는 ë‚ ì§œë¥¼, hh는 시를,mm ì€ ë¶„ì„, ss는 초를 ,ê·¸ë¦¬ê³ YYYY는 ì—°ë„를 나타낸다.
0 => transfer-time : ì „ì†¡ì„ ìœ„í•œ ì´ ì‹œê°„ì„ ë§í•˜ë©° ì´ˆ 단위로 표시한다.
166.104.37.130=> ì›ê²©hostì´ë¦„ì´ë‹¤.
304422 => byte ë‹¨ìœ„ì˜ ì „ì†¡ëœ file sizeì´ë‹¤.
/home/xenus/a.zip=> ì „ì†¡ëœ íŒŒì¼ ì´ë¦„ì´ë‹¤.
a 는 ascii ,b는 binaryì „ì†¡ë“¤ 뜻한다.
special-action-flag : ì–´ë–¤ íŠ¹ì •í•œ actionì´ ë°œìƒí•˜ëŠ” ê²ƒì„ ë‚˜íƒ€ë‚´ëŠ” 하나 ë˜ëŠ” ê·¸ ì´ìƒì˜ character flag ì´ë‹¤. ì•„ëž˜ì— ë‚˜ì—´ëœ ê²ƒ ì¤‘ì˜ í•˜ë‚˜ ë˜ëŠ” ê·¸ ì´ìƒìœ¼ë¡œ ì‚¬ìš©í• ìˆ˜ 있다.
C file ì€ ì••ì¶•ë˜ì–´ 있다. U fileì€ ì••ì¶•ì´ ë˜ì–´ 있지 않다. T fileì´ tar로 묶여 있다. _ 아무런 ë™ìž‘ì´ ë°œìƒí•˜ì§€ 않았다.
direction ì „ì†¡ì˜ ì§€ì‹œë‹¤.



The Discussion Continues
Trackback Address | http://hisfy.kr/trackback/11