VSFTP·Î °¡»óÀ¯ÀúFTP ¼­ºñ½ºÇϱ⠰¡»óÀ¯Àú FTP¶õ ·ÎÄà ½Ã½ºÅÛ¿¡ ½ÇÁ¦·Î Á¸ÀçÇÏÁö ¾Ê´Â À¯Àúµé·Î FTP ·Î±×ÀÎÀ» Çã¶ôÇÏ°í ¿î¿µÇϴ ȯ°æÀÔ´Ï´Ù. ·ÎÄà ½Ã½ºÅÛ¿¡ °èÁ¤À» Ãß°¡ÇÏÁö ¾Ê°íµµ FTP¸¸À» À§ÇÑ »ç¿ëÀÚ¸¦ Ãß°¡,»èÁ¦ÇÒ ¼ö ÀÖ´Â FTP ½Ã½ºÅÛÀÔ´Ï´Ù. »ç¿ëÀڵ鿡°Ô FTP¸¸ Á¦°øÇØ¾ß µÉ¶§ ¾ÆÁÖ À¯¿ëÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. 1. °¡»óÀ¯Àú µ¥ÀÌÅͺ£À̽º »ý¼º FTP °¡»óÀ¯Àú¸¦ »ý¼ºÇϱâ À§ÇØ °¡»óÀ¯Àú¿Í Æнº¿öµå°¡ ´ã±ä DBÆÄÀÏÀ» ¸¸µé¾î¾ß µÇ´Âµ¥ °£´ÜÈ÷ »ç¿ëÀÚ ID¿Í ºñ¹Ð¹øÈ£°¡ ÀÔ·ÂµÈ ÅؽºÆ®ÆÄÀÏÀ» db_load À¯Æ¿À» ÀÌ¿ëÇØ DBÆ÷¸ËÀ¸·Î º¯È¯ÇØ ÁÜÀ¸·Î½á °¡»óÀ¯Àú°¡ »ç¿ëÇÒ »ç¿ëÀÚ DB ÆÄÀÏÀ» ¸¸µé¼ö ÀÖ½À´Ï´Ù. ¸ÕÀú FTP°¡»óÀ¯ÀúÀÇ ID¿Í ºñ¹Ð¹øÈ£¸¦ ¼³Á¤ÇÒ ÅؽºÆ® ÆÄÀÏÀ» ¸¸µé¾î º¸°Ú½À´Ï´Ù. ÅؽºÆ®ÆÄÀÏÀº °¡»óÀ¯Àú ID ÇÑÁÙ°ú Æнº¿öµå ÇÑÁÙÀÌ ÇѽÖÀÌ µË´Ï´Ù. Áï Ȧ¼öÁÙÀº FTP°¡»óÀ¯Àú ID°¡ µÇ°í ¦¼öÁÙÀº ¹Ù·ÎÀ­ÁÙ¿¡ ¸í½ÃµÈ FTP°¡»óÀ¯ÀúÀÇ ºñ¹Ð¹øÈ£°¡ µË´Ï´Ù. ´ÙÀ½Àº myid, yourid ¶ó´Â °èÁ¤¿¡ °¢°¢ 1234, 4321 À̶ó´Â ºñ¹Ð¹øÈ£¸¦ ºÎ¿©Çؼ­ ¼¼ÆÃµÈ virtual_user.txt ÆÄÀÏÀÔ´Ï´Ù. [root@ns TMP]# cat virtual_user.txt myid 1234 yourid 4321 [root@ns TMP]# ÅؽºÆ® ÆÄÀÏÀÌ ¸¸µé¾îÁ³À¸¸é ÀÌÁ¦ DB Æ÷¸ËÀ¸·Î º¯È¯À» ÇÕ´Ï´Ù. DBÆ÷¸äÀ¸·Î º¯È¯Çϱâ À§ÇØ db_load ¶ó´Â À¯Æ¿À» »ç¿ëÇҰǵ¥ ÀÌ À¯Æ¿Àº db4-utils À̶ó´Â RPM ÆÐÅ°Áö¿¡ Æ÷ÇԵǾî Àִµ¥ Ȥ½Ã db_load À¯Æ¿À» ¼³Ä¡ÇÏÁö ¾ÊÀ¸½Å ºÐµéÀº db4-utils RPM ÆÐÅ°Áö¸¦ ´Ù¿î¹Þ¾Æ ¼³Ä¡ÇϽñ⠹ٶø´Ï´Ù. [root@ns TMP]# db_load -T -t hash -f virtual_user.txt /etc/vsftpd_login.db [root@ns TMP]# ls -l /etc/vsftpd_login.db [root@ns TMP]# chmod 600 /etc/vsftpd_login.db [root@ns TMP]# ls -l /etc/vsftpd_login.db virtual_user.txt ÆÄÀÏÀ» vsftpd_login.db·Î º¯È¯Çϴµ¥ º¯È¯µÈ ÆÄÀÏÀ» /etc µð·ºÅ丮¾È¿¡ ³Ö¾îµÓ´Ï´Ù. »ý¼ºµÈ vsftpd_login.db ÆÄÀÏÀ» root ÀÌ¿ÜÀÇ »ç¿ëÀÚ´Â ÆÄÀÏÀ» º¼ ¼ö ¾ø°Ô Æ۹̼ÇÀ» 600 À¸·Î º¯°æÇØÁÝ´Ï´Ù. ¸¸¾à ÆÛ¹Ì¼Ç º¯°æÀ» ÇÏÁö ¾ÊÀ¸¸é ½Ã½ºÅÛÀÇ ÀÏ¹Ý »ç¿ëÀÚ°¡ ÀÌ ÆÄÀÏÀ» ¿­¶÷ÇÒ ¼ö Àֱ⠶§¹®¿¡ ID¿Í ºñ¹Ð¹øÈ£°¡ ½±°Ô ³ëÃâÀÌ µË´Ï´Ù. ±×·¡¼­ ¹Ýµå½Ã vsftpd_login.db ÆÄÀÏÀÇ Æ۹̼ÇÀ» 600 À¸·Î Á¶Á¤ÇϽñ⠹ٶø´Ï´Ù. 2. »ç¿ëÀÚ ÀÎÁõ¿¡ »ç¿ëÇÒ PAM ÆÄÀÏ »ý¼º PAM¿¡ ´ëÇÑ °­Á´ Â÷ÈÄ¿¡ Á¦°øÇÒ °ÍÀ̱⠶§¹®¿¡ ±×¶§ ÀÚ¼¼È÷ °øºÎÇÏ°í À̹ø°­Á¿¡´Â ¿¡Çø®ÄÉÀ̼ÇÀÇ ÀÎÁõ¸ðµâÀ̶ó°í¸¸ ¾Ë°í ³Ñ¾î°¡±â·Î ÇÏÁÒ. ¿ì¸®´Â ÀÌÁ¦ °¡»óÀ¯ÀúµéÀÇ ID¿Í ºñ¹Ð¹øÈ£°¡ Á¤È®ÇÑÁö üũÇÑÈÄ FTP ·Î±×ÀÎÀ» Çã¶ôÇϱâ À§ÇÑ PAM ÆÄÀÏÀ» ¸¸µé °ÍÀÔ´Ï´Ù. µü 2ÁÙ¸¸ ÀÛ¼ºÇÏ¸é µÇ´Â ¾ÆÁÖ °£´ÜÇÑ ÀÛ¾÷ÀÔ´Ï´Ù. PAM ÆÄÀÏÀ» ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÑÈÄ /etc/pam.d µð·ºÅ丮¿¡ vsftpd ¶ó´Â À̸§À¸·Î »ý¼ºÇÕ´Ï´Ù. auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login account required /lib/security/pam_userdb.so db=/etc/vsftpd_login [root@ns TMP]# cat /etc/pam.d/vsftpd ¿ì¸®°¡ Áö±Ý±îÁö »ý¼ºÇÑ /etc/vsftpd_login.db ÆÄÀÏ°ú /etc/pam.d/vsftpd ÆÄÀÏÀÌ FTP Á¢±ÙÇã°¡¸¦ À§ÇØ »ç¿ëµË´Ï´Ù. 3. °¡»óÀ¯Àú °èÁ¤ »ý¼º°ú °¡»óÀ¯ÀúµéÀÌ »ç¿ëÇÒ µð·ºÅ丮 »ý¼º °¡»óÀ¯Àú FTP¸¦ »ç¿ëÇϱâ À§Çؼ­´Â °¡»óÀ¯ÀúµéÀÌ »ç¿ëÇÒ ½ÇÁ¦ °èÁ¤À» Çϳª ¸¸µé¾îÁà¾ß µË´Ï´Ù ÀÌ °­Á¿¡¼­´Â virtual À̶ó´Â °èÁ¤À» °¡»óÀ¯ÀúµéÀÇ ½ÇÁ¦ °èÁ¤À¸·Î Ãß°¡ÇÏ°í /home/ftpsite µð·ºÅ丮¸¦ °¡»óFTPÀÇ È¨µð·ºÅ丮·Î ÁöÁ¤À» ÇÒ °ÍÀÔ´Ï´Ù. ´ÙÀ½°ú °°ÀÌ virtual À̶ó´Â °èÁ¤À» Ãß°¡ÇÕ´Ï´Ù. [root@ns TMP]# useradd -d /home/ftpsite virtual [root@ns TMP]# ls -ld /home/ftpsite virtual À̶ó´Â °èÁ¤ÀÌ Á¤»óÀûÀ¸·Î »ý¼ºµÇ¾úÀ¸¸é systemÀÇ host ÆÄÀÏÀ» /home/ftpsite µð·ºÅ丮¿¡ º¹»ç¸¦ ÇÕ´Ï´Ù. º¹»çÇÑ hosts ÆÄÀÏÀÇ ¼ÒÀ¯ÀÚ¿Í ¼ÒÀ¯±×·ìÀº virtual·Î ¼öÁ¤ÇÕ´Ï´Ù. [root@ns TMP]# cd /home/ftpsite [root@ns ftpsite]# cp /etc/hosts /home/ftpsite [root@ns ftpsite]# ls -l /home/ftpsite/hosts [root@ns ftpsite]# chown virtual.virtual hosts 4. °¡»óFTP ȯ°æ¼³Á¤ ÆÄÀÏ ¼¼Æà ÀÌÁ¦ ¸¶Áö¸·À¸·Î °¡»ó FTP¸¦ »ç¿ëÇϱâ À§ÇÑ È¯°æ¼³Á¤ÆÄÀÏÀ» ÀÛ¼ºÇÒ °ÍÀÔ´Ï´Ù. °¢ ȯ°æ¼³Á¤ ¿É¼Ç¿¡ ´ëÇÑ ¼³¸íÀº 'VSFTP ȯ°æ¼³Á¤' °­Á¸¦ Âü°íÇϽñ⠹ٶø´Ï´Ù. vsftpd_vitual.conf ¶ó´Â ÆÄÀÏ¿¡ ´ÙÀ½ÀÇ ³»¿ëÀ» ³Ö¾î /etc µð·ºÅ丮¿¡ »ý¼ºÇϼ¼¿ä. anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_file=/var/log/vsftpd.log chroot_local_user=YES listen=YES listen_port=1004 guest_enable=YES guest_username=virtual pam_service_name=vsftpd pasv_min_port=30000 pasv_max_port=30999 virtual_use_local_privs=YES user_sub_token=$USER local_root=/home/ftpsite/$USER À§¿Í°°ÀÌ ¼³Á¤ÀÌ µÇ¾ú´Ù¸é °¡»óÀ¯ÀúÀÇ È¨µð·ºÅ丮ÀÎ /home/ftpsite ¿¡ °¡»óÀ¯Àúº° Ȩµð·ºÅ丮¸¦ »ý¼ºÇؾߵ˴ϴÙ. °¡»óÀ¯Àúº° Ȩµð·ºÅ丮¸íÀº °¡»óÀ¯Àú ID·Î »ý¼ºÇÏ°í »ý¼ºµÈ µð·ºÅ丮ÀÇ ¼ÒÀ¯ÀÚ¿Í ¼ÒÀ¯±×·ìÀ» virtual·Î ¼¼ÆÃÀ» ÇØ ÁÝ´Ï´Ù. [root@ns ftpsite]# mkdir myid [root@ns ftpsite]# mkdir yourid [root@ns ftpsite]# chown virtual.virtual * [root@ns ftpsite]# ls -l ÀÌÁ¦ °¡»óÀ¯ÀúFTP¸¦ ¿î¿µÇϱâ À§ÇÑ Áغñ´Â ¸ðµÎ ³¡³µ½À´Ï´Ù. 5. vsftpd ½ÇÇà °¡»óÀ¯ÀúFTP¸¦ ¿î¿µÇϱâ À§Çؼ­´Â vsftpd¸¦ Standalone ¹æ½ÄÀ¸·Î¸¸ ÀÛµ¿½ÃÄÑ¾ß µË´Ï´Ù. ´ÙÀ½°ú °°ÀÌ vsftpd ½ÇÇà½Ã¿¡ /etc/vsftpd_virtual.conf ÆÄÀÏÀ» ȯ°æ¼³Á¤ ÆÄÀÏ·Î ÁöÁ¤ÇØ¾ß ½ÇÇà½Ãŵ´Ï´Ù. Àú´Â VSFTP¸¦ ¼³Ä¡ÇÒ ¶§ /usr/local/sbin µð·ºÅ丮¿¡ vsftpd µ¥¸óÆÄÀÏÀ» »ý¼ºÇ߱⠶§¹®¿¡ ¾Æ·¡¿Í °°ÀÌ Çß½À´Ï´Ù. °¢ÀÚÀÇ vsftpd µ¥¸óÀ» °¡»óÀ¯ÀúFTP ȯ°æ¼³Á¤ÆÄÀÏÀ» ÁöÁ¤Çؼ­ ½ÇÇàÇÏ¸é µË´Ï´Ù. [root@ns ftpsite]# /usr/local/sbin/vsftpd /etc/vsftpd_virtual.conf & 6. °¡»óÀ¯Àú·Î ftp Á¢¼ÓÇϱ⠾Ʒ¡È­¸éÀº myid, yourid ·Î °¢°¢ Á¢¼ÓÇÑ È­¸éÀÔ´Ï´Ù. °¢°¢ÀÇ °¡»óÀ¯Àú´Â ÀÚ½ÅÀÇ È¨µð·¹Å丮 Áï /home/ftpsite/myid ¿Í /home/ftpsite/yourid ·Î Á¢¼ÓµÇ¾ú°í ÀÚ½ÅÀÇ È¨ µð·ºÅ丮°¡ FTP ·çÆ®µð·ºÅ丮·Î ¼³Á¤µÇ¾î ÀÖ½À´Ï´Ù. *myid ·Î Á¢¼Ó *yourid ·Î Á¢¼Ó