LinuxÏÂFTPÐéÄâÓû§µÄʹÓÃÅäÖÃ

×÷Õß: bdsnmp 2009-10-14 14:44:31
LinuxµÄFTP·þÎñÖ§³Ö3ÖÖÓû§:

1.ÄäÃûÕÊ»§

2.±¾µØÕÊ»§

3.ÐéÄâÓû§

ΪʲôҪʹÓÃÐéÄâÓû§:

ÄäÃûÕÊ»§¿ÉÒԺܺõı£Ö¤FTP·þÎñÆ÷µÄ°²È«ÐÔ,µ«ÊÇ,¶ÔÄäÃûÓû§µÄȨÏÞ¹ÜÀí²»¹»Áé»î.Èç¹ûÏë¶Ô·ÃÎÊFTPµÄÕÊ»§¸øÓè¸ü¶àµÄȨÏÞ,¾Í¿ÉÒÔÓñ¾µØÕÊ»§À´ÊµÏÖ.µ«ÊÇ,±¾µØÕÊ»§Ä¬ÈÏÇé¿öÏÂÊÇ¿ÉÒԵǽLinuxϵͳµÄ,ÕâÑù¶ÔLinuxϵͳÀ´ËµÊÇÒ»¸ö°²È«Òþ»¼.ÄÇôÔõôÄÜÔÚÁé»îµÄ¸³ÓèFTPÓû§È¨ÏÞµÄÇ°ÌáÏÂ,±£Ö¤FTP·þÎñÆ÷ÄËÖÁÕû¸öLinuxϵͳµÄ°²È«ÄØ?ʹÓÃÐéÄâÓû§¾ÍÊÇÒ»ÖÖ½â¾ö°ì·¨.

ÏÂÃ棬ÎÒÃǾÍÒ»ÆðÀ´Ñ§Ï°,¸ÃÔõÑùÔÚLinuxÏÂÅäÖÃFTP·þÎñÆ÷µÄÐéÄâÓû§.

¿ªÊ¼ÅäÖÃÇ°£¬ÈÃÎÒÃÇÏÈ´ó¸ÅÁ˽âÏÂFTPÐéÄâÓû§µÄ¹¤×÷Ô­Àí:

ÐéÄâÓû§,¹ËÃû˼Òå,²¢²»ÊÇÒ»¸öºÏ·¨µÄLinuxϵͳÕÊ»§,µ«ÊÇËû¿ÉÒÔÓÃÀ´µÇ½¸ÃϵͳÉÏÔËÐеÄFTP·þÎñÆ÷.

µ±Óû§ÔÚÁ¬½ÓÉÏFTP·þÎñÆ÷ºó,»á±»ÒªÇóÊäÈëÓû§ÃûºÍÃÜÂë.FTP·þÎñÆ÷ÔÚÄõ½Õâ¸öÓû§ÃûºÍÃÜÂëºó,»áµ÷ÓÃÏàÓ¦µÄPAMÈÏ֤ģ¿é¶Ô,ºÍϵͳÖеÄFTPÈÏÖ¤Îļþ½øÐÐÏà±È½Ï.Èç¹û¸ÃÓû§ÃûºÍÃÜÂëÓëFTPÈÏÖ¤ÎļþÖеÄijÌõ¼Ç¼Ïà·û,¾Íͨ¹ýÈÏÖ¤,È»ºó¸ÃÕÊ»§¾Í±»Ó³Éä³ÉÒ»¸öLinuxϵı¾µØÕÊ»§,È»ºó¸ù¾ÝʹÓøñ¾µØÕÊ»§¶ÔFTP×ÊÔ´½øÐзÃÎÊ.·ñÔòÔò¶Ï¿ª¸ÃÁ¬½ÓÇëÇó.

Á˽âÁËFTPÐéÄâÓû§µÄ¹¤×÷Ô­Àíºó,ÎÒÃǾͿÉÒÔ¿ªÊ¼ÅäÖÃFTPÐéÄâÓû§ÁË.

Õû¸ö¹ý³Ì¿ÉÒÔ·ÖÕ⼸¸ö²½Öè:

1.×¼±¸Ò»¸öÐéÄâÓû§µÄ¿ÚÁî¿âÎļþ.¸ÃÎļþÖб£´æµÄÓû§ÃûºÍÃÜÂëÊÇÓû§Á¬½ÓFTP·þÎñÆ÷ʱ,ÐèÒªÊäÈëµÄÓû§ÃûºÍÃÜÂë.Îļþ¿ÉÒÔ×Ô¼º´´½¨,λÖÃÎ޹ؽôÒª,Îļþ¸ñʽΪ:ÆæÊýÐÐΪÓû§Ãû,żÊýÐÐΪÃÜÂë.

ÀýÈç:touch login.txt //´´½¨Ò»¸öÃûΪlogin.txtµÄÐéÄâÓû§¿ÚÁî¿âÎļþ

vi login.txt //±à¼­¸Ã¿ÚÁî¿âÎļþ

mike //ÐéÄâÓû§mike

123 //ÐéÄâÓû§mikeµÄÃÜÂë

john //ÐéÄâÓû§john

321 //ÐéÄâÓû§johnµÄÃÜÂë

±£´æÍ˳ö.

2.ÓøղŽ¨Á¢µÄÐéÄâÓû§¿ÚÁî¿âÎļþÉú³ÉFTP·þÎñÆ÷µÄÈÏÖ¤Îļþ.¸ÃÈÏÖ¤ÎļþÊÇÒ»¸ö±»¼ÓÃܺóµÄÃÜÎÄ.PAMÔÚµ÷ÓÃÏàÓ¦µÄÈÏ֤ģ¿éºó,»á¶Ô´ÓFTP·þÎñÆ÷·¢À´µÄÓû§ÃûºÍÃÜÂë½øÐмÓÃÜ,È»ºóÔÚ¸ú¸ÃÎļþ½øÐжԱÈ,·¢ÏÖÏà·ûÌõÄ¿ºó,µÇ½Óû§²Å»á±»ÔÊÐíµÇ½.

db_load -T -t hash -f login.txt /etc/vsftpd/vsftpd_login.db

//ÔÚÔËÐиÃÃüÁîÇ°,±ðÍü¼Ç°²×°db4-utilsÈí¼þ°ü,¸Ã°ü°üº¬ÓÐdb_loadÃüÁîµÈ.¹ØÓÚ¸ÃÃüÁîµÄʹÓò»ÔÚ±¾ÎÄÌÖÂÛ·¶Î§ÄÚ.ÆäÖÐ-f²ÎÊýºó¸úµÄΪ¸Õ²Å´´½¨µÄÐéÄâÓû§¿ÚÁî¿âÎļþ.×îºóµÄ·¾¶ÎªÉú³ÉµÄFTPÈÏÖ¤ÎļþµÄ´æ·ÅλÖÃ.

ΪÁ˽øÒ»²½±£Ö¤°²È«,¿ÉÒÔ½«¸ÃFTPÈÏÖ¤ÎļþµÄȨÏÞÉèÖÃΪ600.

3.½¨Á¢ÐéÄâÓû§ËùÐèÒªµÄPAMÅäÖÃÎļþ.ÓÉÓÚFTP·þÎñÆ÷ÔÚ½ÓÊܵ½Óû§µÄÓû§ÃûºÍ¿ÚÁîºó»áµ÷ÓÃPAMÈÏÖ¤,ËùÒÔÎÒÃÇ»¹Òª´´½¨ÐéÄâÓû§µÄPAMÅäÖÃÎļþ.

ÎÒÃǽ«¸ÃÎļþ±£´æÔÚ/etc/pam.dĿ¼ÏÂ,ÎļþÃûÔÝʱȡΪ:vsftpd.ÕâÀïҪעÒâÒ»µã¾ÍÊÇ,¸ÃÎļþÃûÒªÓëFTP·þÎñÖ÷ÅäÖÃÎļþ(/etc/vsftpd/vsftpd.conf)ÖеÄpam_service_name=vsftpdÑ¡ÏîµÄÑ¡ÏîÖµÏàͬ.

´´½¨ºÃ¸ÃÎļþºó,½«ÏÂÃæµÄÄÚÈݼÓÈëµ½¸ÃÎļþÖÐ:

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

¸ÄºÃºó,±£´æÍ˳ö.×¢Òâ3¸öºìÉ«ÎļþµÄÎļþÃû.¸Ã3¸öÎļþΪ1¸öÎļþ,Ö»²»¹ýÔÚʹÓÃÖÐд·¨²»Í¬.

4.ÓÉÓÚÓû§ÔÚͨ¹ýPAMµÄÈÏÖ¤ºóÒª±»Ó³Éä³ÉÒ»¸ö±¾µØÓû§,ËùÒÔÎÒÃÇ»¹Òª½¨Á¢Ò»¸ö±¾µØÓû§¹©ÐéÄâÓû§Ê¹ÓÃ.

ÎÒÃÇÖ»ÐèÒª¶Ô¸Ã±¾µØÓû§¸³ÓèFTPÖ÷Ŀ¼µÄÊʵ±·ÃÎÊȨÏÞ¾ÍÐÐ.¼´Ê¹FTP·þÎñÆ÷Ôâµ½¹¥»÷,Õâ¸ö±¾µØÓû§Ò²Ã»ÓзÃÎÊÆäËûĿ¼µÄȨÏÞ,Ïà¶Ô±È½Ï°²È«Ò»Ð©.

useradd -d /home/ftpsite virtual //Óû§ÃûΪvirtual,Ö÷Ŀ¼ΪFTPµÄ¸ù

chmod 700 /home/ftpsite //½«ÆäȨÏÞÉèÖÃΪ700,¿ÉÒÔ¸ù¾Ýʵ¼ÊÇéÐνøÐÐÐÞ¸Ä

5.ÔÚFTPµÄÖ÷ÅäÖÃÎļþÖÐ,ÆôÓÃFTPÐéÄâÓû§.Ôö¼ÓÈçÏÂÑ¡Ïî¼´¿É:

guest_enable=YES

guest_username=virtual //½«ÐéÄâÓû§Ó³Éä³É±¾µØµÄÄĸöÓû§.ÕâÀïÓõÄÊÇvirtual,¸Õ²Å½¨

Á¢µÄÄǸöÓû§.

pam_service_name=/etc/vsftpd/vsftpd //ÇмÇÒªÐ޸ĸÃÏîµÄÖµ

6.ÅäÖõ½ÕâÀï¾ÍÍê³ÉÁË,±ðÍü¼ÇÖØÆôFTP·þÎñ½øÐвâÊÔ.

7.Ϊ²»Í¬µÄÐéÄâÓû§·ÖÅäȨÏÞ

ĬÈÏÇé¿öÏÂ,ÐéÄâÓû§ÓµÓÐÏàͬµÄȨÏÞ,¾ÍÊÇvirtualµÄȨÏÞ,ÎÒÃÇ¿ÉÒÔ¸ù¾Ýʵ¼ÊÐèÇó¶Ô²»Í¬µÄÐéÄâÓû§·ÖÅäȨÏÞ.

Ê×ÏÈÔÚFTPµÄÖ÷ÅäÖÃÎļþÖмÓÒ»¸öÑ¡Ïî:

user_config_dir=/etc/vsftpd_user_conf //ÎļþÃûºÍ·¾¶¶¼¿ÉÒÔ×Ô¼º¶¨Òå

È»ºó´´½¨¸ÃĿ¼.

mkdir /etc/vsftpd_user_conf

ÏÂÃæ¾Í¿ÉÒÔÔÚ¸ÃĿ¼Ï±༭²»Í¬ÐéÄâÓû§µÄȨÏÞÅäÖÃÎļþÁË,±ÈÈçÒª¶Ômike±à¼­ÆäȨÏÞ.

touch mike //½¨Á¢mikeµÄȨÏÞÎļþ.ÎļþÃûÒªÓëÐéÄâÓû§ÃûÏàͬ

¿ÉÒÔ¸ù¾Ýʵ¼ÊÐèÇóΪ¸ÃÎļþÌí¼ÓÏÂÃæµÄÑ¡ÏîºÍÖµ:

anon_world_readable_only=NO //±íʾÓû§¿ÉÒÔä¯ÀÀFTPĿ¼ºÍÏÂÔØÎļþ

anon_upload_enable=YES //±íʾÓû§¿ÉÒÔÉÏ´«Îļþ

anon_mkdir_write_enable=YES //±íʾÓû§Óд´½¨ºÍɾ³ýĿ¼µÄȨÏÞ

anon_other_write_enable=YES //±íʾÓû§¾ßÓÐÎļþ¸ÄÃûºÍɾ³ýÎļþµÄȨÏÞ



µ½ÕâÀï,ÐéÄâÓû§¾ÍËãÍê³ÉÅäÖÃÍê³ÉÁË.

Ïà¹Ø×ÊѶ