ʹÓÃvsftpd¹¹½¨°²È«µÄFTP
·þÎñ
FTPÐÒéµÄ°²È«Òþ»¼²»ÄܳÉΪ¾Ü¾øÊ¹ÓÃFTPµÄÔÒò£¬±¾ÎĽéÉÜÒ»ÖÖ¹¹½¨°²È«FTP·þÎñµÄ·½·¨¡£
¡¡¡¡
Îļþ´«ÊäÐÒ飨FTP£©ÊÇ
»¥ÁªÍøÉÏ
Óû§Ê¹ÓÃÆµÂʺܸߵÄÒ»ÖÖÐÒ飬Ëü»ùÓÚ¿Í»§»ú/
·þÎñÆ÷£¨client/server£©¼Ü¹¹£¬Ö÷ÒªÓÃÀ´Ìṩ
Óû§µÄ
Îļþ´«ÊäÒÔ¼°ÉÏ´«
ÏÂÔØ¹¦ÄÜ¡£È»¶ø£¬ÓÉÓÚ¸ÃÐÒéÔÚ×î³õµÄÉè¼Æ¹ý³Ìµ±ÖÐûÓгä·Ö¿¼Âǵ½
ÍøÂçÈÕÒæ·¢Õ¹µÄ½ñÌì¿ÉÄÜ´æÔÚµÄÖî¶à°²È«ÐÔÎÊÌ⣬Òò¶ø´æÔÚןܴóµÄ°²È«Òþ»¼¡£±¾ÎĽ«¶Ô¸Ã
Îļþ´«ÊäÐÒé½øÐÐÔÀí½éÉÜ£¬²¢½²ÊöÈçºÎÔÚ
Linux»·¾³Ï£¬Ê¹ÓÃvsftpd£¨very secure FTP daemon£©À´¹¹½¨°²È«µÄFTPÓ¦Óá£
¡¡¡¡vsftpdµÄÌØÐÔ
¡¡¡¡vsftpd ÊÇÒ»¸ö»ùÓÚGPL·¢²¼µÄÀàUnixÀà²Ù×÷
ϵͳÉÏÔËÐеķþÎñÆ÷µÄÃû×Ö£¨ÊÇÒ»ÖÖÊØ»¤½ø³Ì£©£¬Ëü¿ÉÒÔÔËÐÐÔÚÖîÈçLinux¡¢BSD¡¢Solaris¡¢HP-UXÒÔ¼°IRIXÉÏÃæ¡£ËüÖ§³ÖºÜ¶àÆäËû´«Í³µÄFTP·þÎñÆ÷Ëù²»Ö§³ÖµÄÌØÕ÷¡£Ëü¾ßÓÐÈçÏÂÌØµã£º·Ç³£¸ßµÄ°²È«ÐÔ¡¢´ø¿íÏÞÖÆ¡¢Á¼ºÃµÄÀ©Õ¹ÐÔ ¡¢Ö§³Ö´´½¨ÐéÄâÓû§¡¢Ö§³ÖIPv6¡¢Ö§³ÖÐéÄâIP¡¢¸ßËÙ¡¢Îȶ¨¡£
vsftpdµÄÃû×Ö´ú±í¡°very secure FTP daemon¡±£¬ËüµÄ¿ª·¢ÕßChris Evans¿¼ÂǵÄÊ×ÒªÎÊÌâ¾ÍÊÇÊý¾Ý´«ÊäµÄ°²È«ÐÔ¡£ËùÒÔ£¬ÔÚÉÏÊöËùÓеÄÌØÐÔµ±ÖУ¬½Ï¸ßµÄ°²È«ÐÔÊÇ´¦ÓÚ×îÖØÒªµÄµØÎ»¡£vsftpd±ÈÆäËûÖîÈçWu-ftpdºÍProftpdÖ®ÀàµÄFTP·þÎñÆ÷¸ü¼ÓÓÅÔ½¡£ÁíÍ⣬ÔÚËÙ¶È·½Ã棬¾Ýͳ¼Æ£¬Ê¹ÓÃASC¢òģʽÏÂÔØÊý¾ÝµÄËÙ¶ÈÊÇWu-ftpdµÄÁ½±¶¡£ÔÚLinux2.4ϵÁа汾µÄÄÚºËÏ£¬Ç§Õ×ÒÔÌ«ÍøµÄÏÂÔØËÙ¶È¿ÉÒÔ´ïµ½86MB/S£»ÔÚÎȶ¨ÐÔ·½Ã棬¸ù¾Ýftp.redhat.comµÄÊý¾Ý£¬Ëü¿ÉÒÔÖ§³Ö15000¸ö²¢·¢Óû§£¬ËùÒÔÆä×ÜÌåÐÔÄÜÒ²ÊǷdz£¸ßµÄ¡£
¡¡¡¡vsftpdµÄ°²×°¹ý³Ì
¡¡¡¡vsftpd ÊØ»¤
³ÌÐòµÄ°²×°Ï൱¼òµ¥£¬ÔÚÿ¸öÖ÷Òª·¢ÐаæÖж¼¿ÉÒÔÕÒµ½vsftpdµÄRPM°ü£¬ºÜ¶àÇé¿öÏ£¬ËüÒѾ±»×°ÉÏÁË¡£Èç¹ûûÓеϰ£¬Ô´´úÂë¿ÉÒÔÔÚÍøÕ¾£º
http://vsftpd.beasts.org/ÉÏÕÒµ½£ ... ±¾Îª£ºvsftpd2.0.3¡£
¡¡¡¡µÃµ½Ô´´úÂë²¢½â¿ªtar°üºó£¬½øÈëн¨µÄĿ¼£¬²¢ÔËÐÐmake¡£ÏÂÃæÊǽøÐÐÊÖ¹¤°²×°µÄʾÀý£º
# tar xzvf vsftpd-2.0.3.tar.gz
# cd vsftpd-2.0.3
# make
¡¡¡¡Õâ֮ǰÎÒÃÇÓ¦¸Ã¿´¿´Óû§¡°nobody¡±ºÍĿ¼¡°/usr/share/empty¡±ÊÇ·ñ´æÔÚ£¬Èç¹ûÐèÒªµÄ»°ÎÒÃǾÍн¨ÕâÒ»¶ÔÓû§ºÍĿ¼¡£Èç¹ûÎÒÃÇÔÊÐíÓû§ÄäÃû·ÃÎÊ£¬Óû§¡°ftp¡±ºÍĿ¼¡°var/ftp¡±Ò²ÐèÒª´´½¨¡£Ê¹ÓÃÈçÏÂÁ½¸ö
ÃüÁîÍê³É£º
# mkdir /var/ftp
# useradd -d /var/ftp ftp
¡¡¡¡ÓÉÓÚ°²È«ÔÒò£¬Ä¿Â¼ ¡°/var/ftp¡± ²»Ó¦¸ÃÊôÓÚÓû§ ¡°ftp¡±£¬Ò²²»Ó¦¸ÃÓÐд
ȨÏÞ¡£Èç¹ûÓû§ÒѾ´æÔڵϰ£¬ÓÃÏÂÃæµÄÁ½¸öÃüÁÎÒÃÇ¿ÉÒԸıäĿ¼µÄËùÓÐÕß²¢È¥µôÆäËûÓû§µÄд
ȨÏÞ£º
# chown root.root /var/ftp
# chmod og-w /var/ftp
¡¡¡¡´ïµ½ÁËËùÓеÄÏȾöÌõ¼þºó£¬ÎÒÃÇ¿ÉÒÔ°²×° vsftp-daemon ÁË¡£
# make install
¡¡¡¡ÕâÑù£¬¾ÍÍê³ÉÁËvsftpdµÄ°²×°£¬µ±È»£¬Õâ¸ö°²×°¹ý³Ì±È½Ï¸´ÔÓ£¬ÔÚÎÒÃÇÏÖÔÚʹÓõÄLinuxϵͳµ±ÖУ¬ºÜ¶à¶¼ÊÇʹÓÃRPM°üÀ´°²×°µÄ£¬ÕâÑù¼òµ¥¿ì½Ý£¬ÏÂÃæ½éÉÜÈçºÎͨ¹ýʹÓÃRPM°üÀ´°²×°vsftpd¡£
¡¡¡¡ÔÚRedHat Linux9ÖÐ×Ô´øÁËvsftpd£¬ÏÂÃæÊǰ²×°µÄ²½Ö裺
¡¡¡¡1£® Ê×ÏȲ鿴ÊÇ·ñ°²×°ÁËvsftpd£¬Èç¹ûÒѾ°²×°£¬Ôò¿ÉÒÔÖ±½ÓʹÓá£
# rpm - q|grep vsftpd
¡¡¡¡2£® ûÓа²×°µÄ»°£¬½«ÏÂÔØÀ´µÄvsftpd-1.1.3-8.i386.rpmµÄRPM°ü½øÐа²×°¡£
# rpm - vh vsftpd-1.1.3-8.i386.rpm
¡¡¡¡Í¨¹ýÒÔÉÏÁ½²½£¬¾ÍÄÜ˳ÀûµØÍê³É°²×°¹ý³Ì¡£
¡¡¡¡ÅäÖÃÎļþ½éÉÜ
¡¡¡¡ÅäÖÃÎļþµÄ·¾¶Îª /etc/vsftpd.conf¡£ºÍLinuxϵͳÖеĴó¶àÊýÅäÖÃÎļþÒ»Ñù£¬vsftpdµÄÅäÖÃÎļþÖÐÒÔ#¿ªÊ¼×¢ÊÍ£¬ÏÂÃæ¶ÔÅäÖÃÎļþµÄÖØÒªÄÚÈÝÑ¡Ïî½øÐÐÏêϸµÄ½éÉÜ£¬ºÏÀíµÄʹÓÃÅäÖÃÎļþÊDZ£Ö¤FTP°²È«´«ÊäµÄǰÌá¡£
¡¡¡¡²é¿´ÅäÖÃÎļþ£º
#vi /etc/vsftpd.conf
¡¡¡¡
ÉèÖÃÊÇ·ñÔÊÐíÄäÃû·ÃÎÊ£º
# Anonymus FTP-access permitted? YES/NO
anonymous_enable=NO
¡¡¡¡ÉèÖÃÊÇ·ñÔÊÐíÄäÃûÉÏ´«Îļþ£º
# Permit anonymus upload? YES/NO
anon_upload_enable=NO
¡¡¡¡ÉèÖÃÊÇ·ñÔËÔÊÐíÄäÃû½¨Á¢Ä¿Â¼£º
# Permission for anonymus users to make new directories? YES/NO
anon_mkdir_write_enable=NO
¡¡¡¡ÉèÖÃÊÇ·ñÔÊÐíÄäÃûÓû§½øÐÐɾ³ý»òÕ߸ÄÃûµÈ²Ù×÷£º
# Permission for anonymus users to do other write operations - like renaming or deleting? YES/NO
anon_other_write_enable=NO
¡¡¡¡ÉèÖÃÊÇ·ñÔÊÐí±¾µØÓû§µÇ¼£º
# Log on by local users permitted? YES/NO
local_enable=YES
¡¡¡¡ÉèÖÃÊÇ·ñ½«±¾µØÓû§Ëø¶¨ÔÚÖ÷Ŀ¼£º
# Shall local users be locked into their home directory? YES/NO
chroot_local_user=YES
¡¡¡¡ÉèÖÃ×î¸ß´«ÊäËÙ¶È£º
# Highest permitted data transfer rate in bytes per second for local logged on users. Default = 0 £¨unlimited£©
local_max_rate=7200
¡¡¡¡ÉèÖÃÊÇ·ñÔÊÐíͨ³£µÄд²Ù×÷£º
# General write permission? YES/NO
write_enable=YES
¡¡¡¡ÉèÖÃÊÇ·ñÔڸıäĿ¼ºó·¢ËÍÏûÏ¢£º
# Enable messages when changing directories? YES/NO
dirmessage_enable=YES
¡¡¡¡ÉèÖ÷þÎñÆ÷ÏòµÇ¼¿Í»§¶Ë·¢Ë͵϶ÓÐÅÏ¢£º
# Welcome banner at users logon.
ftpd_banner="Welcome to neo5k's FTP service."
¡¡¡¡ÉèÖÃÊÇ·ñ¼¤»îÈÕÖ¾¹¦ÄÜ£º
# Activate logging? YES/NO
xferlog_enable=YES
¡¡¡¡ÉèÖÃÊÇ·ñ¶ÔËùÓеÄFTP²Ù×÷×÷ÈÕÖ¾£¬Èç¹ûÉèÖÃÊÇ£¬Ôò¿ÉÄܲúÉú¾Þ´óµÄÊý¾Ý£º
# Logging of all FTP activities? YES/NO
# Careful! This can generate large quantities of data.
log_ftp_protocol=NO
¡¡¡¡ÉèÖÃÊÇ·ñÖ»ÔÊÐíÔÚ
¶Ë¿Ú20½¨Á¢Á¬½Ó£º
# Confirm connections are established on port 20 £¨ftp data£© only. YES/NO
connect_from_port_20=YES
¡¡¡¡ÉèÖÃÎÞÈκβÙ×÷µÄ³¬Ê±Ê±¼ä£º
# Timeout during idle sessions
idle_session_timeout=600
¡¡¡¡ÉèÖÃÊý¾ÝÁ¬½ÓµÄ³¬Ê±Ê±¼ä£º
# Data connection timeout
data_connection_timeout=120
¡¡¡¡ÉèÖ÷ÃÎÊËùʹÓõÄPAM£º
# Access through Pluggable Authentication Modules £¨PAM£©
pam_service_name=vsftpd
¡¡¡¡ÉèÖù¤×÷ģʽÊÇ·ñΪ¶ÀÁ¢Ä£Ê½:
# Standalone operation? YES/NO - depending on operation mode £¨inetd, xinetd, Standalone£©
# The author's FTP service is being startet with xinetd, therefore the value here is NO.
listen=YES
¡¡¡¡ÉèÖÃÊÇ·ñʹÓÃtcp_wrappers×÷Ϊ
Ö÷»ú·ÃÎÊ¿ØÖÆ·½Ê½£º
tcp_wrappers =YES
¡¡¡¡Æô¶¯ FTP ·þÎñ
¡¡¡¡Æô¶¯vsftpd¿ÉÒÔ²ÉÓÃÈýÖÖ·½Ê½£ºinetd¡¢xinetdºÍstandalone(¶ÀÁ¢)¹¤×÷ģʽ¡£ÓÉÓÚĿǰʹÓõÄxinetdÀ©Õ¹ÁËinetd£¬Ëü±Èinetd¸ü¼Ó¸ßЧºÍʵÓ㬰üÀ¨ÖîÈçÇëÇó¼Ç¼¡¢·ÃÎÊ¿ØÖÆ¡¢½«ÒµÎñÓëÍøÂç½Ó¿Ú°ó¶¨µÈ¸Ä½ø£¬ËùÒÔͨ³£Ê¹ÓÃxinetd£¬±¾ÎĽ«½éÉÜxinetdÒÔ¼°standaloneÁ½ÖÖÆô¶¯·½Ê½¡£
¡¡¡¡1£® xinetd·½Ê½Æô¶¯
¡¡¡¡Ê¹ÓÃ¸ÃÆô¶¯·½Ê½£¬ÔÚÉÏÊöµÄÅäÖÃÎļþµ±ÖУ¬Ó¦¸Ã½«listen=YESÉèΪlist=NO£¬²¢ÇÒ½«tcp_wrappers=YESÉèΪtcp_wrappers=NO£¬²¢ÇÒʹÓÃÈçÏÂÃüÁvsftpdµÄÎĵµÄ¿Â¼¿½±´µ½/etc/xinetd.dĿ¼Ï£º
# cp /usr/share/doc/vsftpd-1.1.3/vsftpd.xinetd /etc/xinetd.d/vsftpd
# vi /etc/xinetd.d/vsftpd
¡¡¡¡½«disable=yesÉèΪdisable=no¼´¿É¡£Ò»¸ö¹ØÓÚ¸ÃÆô¶¯·½Ê½µÄµÄÅäÖÃÎļþÈçÏÂËùʾ£º
# cat /etc/xinetd.d/vsftpd
# default: on
# description: The vsftpd FTP server serves FTP connections. It uses \
# normal, unencrypted usernames and passwords for authentication.
service ftp
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
nice = 10
disable = no
flags = IPv4
}
¡¡¡¡ÏÖÔÚ£¬¾Í¿ÉÒÔʹÓÃÈçÏÂÃüÁîÀ´Æô¶¯vsftpdÁË¡£
¡¡¡¡Í£Ö¹¶ÀÁ¢ÔËÐеÄvsftpd£º
# service vsftpd stop
¡¡¡¡ÖØÐÂÆô¶¯xinetdÊØ»¤½ø³Ì£º
# service xinetd restart
¡¡¡¡ÁíÍâÒ»µãÐèҪ˵Ã÷µÄÊÇ£ºÈç¹ûÏëÔÚϵͳÆô¶¯Ê±¾Í
×Ô¶¯ÔËÐи÷þÎñ£¬ÄÇôÐèҪʹÓÃsetupÃüÁÔÚÍøÂç·þÎñÅäÖõÄÏîÄ¿ÖУ¬Ñ¡ÖÐvsftpdÊØ»¤½ø³Ì¼´¿É¡£
¡¡¡¡2£® ¶ÀÁ¢¹¤×÷ģʽÆô¶¯
¡¡¡¡vsftpdÒ²¿ÉÒÔ¹¤×÷ÔÚ¶ÀÁ¢¹¤×÷ģʽÏ¡£ÕâÑù£¬ÎÒÃÇÐèÒªÔٴδò¿ª¡°/etc/vsftpd.conf¡±×öÈçÏÂÐ޸ģº
# Shall the vsftp daemon run in standalone operation? YES/NO
listen=YES
¡¡¡¡ÔÚÕâÏîÉèÖÃÖ®ºó£¬ÊØ»¤½ø³Ì¿ÉÒÔÓÃÈçÏ·½Ê½Æô¶¯£º
# service vsftpd start
¡¡¡¡Í¬ÑùµØ£¬ÔÚ¶ÀÁ¢¹¤×÷ģʽÏ£¬ÎÒÃDZØÐë±£Ö¤vsftpdûÓб»xinetdÆô¶¯£¬Õâ¸ö¿ÉÒÔʹÓÃÈçÏÂÃüÁîÀ´½øÐмì²é£º
# pstree|grep vsftpd
¡¡¡¡²âÊÔÔËÐÐ
¡¡¡¡Ôڳɹ¦µØ°²×°ºÍÅäÖÃÖ®ºó£¬ÎÒÃǽ«¶Ô¸ÃFTP·þÎñÆ÷½øÐмòµ¥µÄ²âÊÔÔËÐУ¬Ê¾ýÈçÏ£?br>
# ftp liyang
Connected to liyang.
220 (vsFTPd 1.1.3)
Name (liyang:root): anonymous
331 Please specify the password.
Password:
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls -l
229 Entering Extended Passive Mode
150 Here comes the directory listing
drwxr-xr-x 20 500 100 400 Jun 04 16:14 mp3
drwxr-xr-x 3 500 100 464 Feb 09 21:28 test
drwxr-xr-x 57 500 100 5143 Jun 15 19:23 working
226 Directory send OK.