OpenVPN
OpenVPN ¼³Ä¡¹× »ç¿ëÇϱ⠶Version: 0.1 (2006/12/26)
ÀÛ¼ºÀÚ: ±è¼ºÈÆ <hunkim@gmail.com>
1.1. ½ÃÀÛÇÏ¸ç ¶À̱ÛÀº VPN (Virtual Priviate Network)À» ¸®´ª½º³ª À©µµ¿ìÁî »ó¿¡¼ ½±°Ô ±¸ÃàÇÒ ¼ö ÀÖµµ·Ï ÇØÁÖ´Â OpenVPN ( http://www.openvpn.net ) ÇÁ·Î±×·¥À» ¼³Ä¡ÇÏ°í ¼³Á¤ÇÏ°í ¿î¿µÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
óÀ½¿¡´Â OpenVPN »çÀÌÆ®¿¡ ÀÖ´Â HOWTO¸¦ ¹ø¿ªÇÒ »ý°¢À̾úÀ¸³ª ¿µ¾î¿¡ ´ëÇÑ ¾Ð¹Ú°ú ¿øº» HOWTO ÀÚü°¡ ±×¸® ±ò²ûÇÏÁö ¸øÇØ ¾Æ¿¹ »õ·Î Àû¾î º¸·Á°í ÇÑ´Ù.
¿øº» HOWTO º¸´Ù ´õ ±ò²ûÇÏ°Ô ÇÒ ¼ö ÀÖÀ»Áö´Â ¸ð¸£Áö¸¸...
1.2. VPN À̶õ ¶VPN À̾߱â´Â ¸¹ÀÌ µé¾î º¸¾ÒÀ» °ÍÀÌ´Ù. ÀÌ°ÍÀÌ ¿Ö ÇÊ¿äÇÑ °ÍÀΰ¡? ¹®Á¦´Â º¸¾ÈÀÌ´Ù. ¸¸¾à ³»°¡ ´Ù´Ï´Â ȸ»ç¿¡ Áß¿äÇÑ ¼¹öµéÀÌ ÀÖ´Ù°í ÇÏÀÚ.
ÀÌ ¼¹ö¸¦ ȸ»ç³»¿¡¼´Â Á¢¼ÓÀÌ °¡´ÉÇÏ°í ºñ±³Àû º¸¾Èµµ À¯Áö½Ãų ¼ö ÀÖÁö¸¸ ¿ì¸®°¡ ÃâÀåÀ» °¡°Å³ª Çؼ È£Åڵ¼ ¿ì¸® ȸ»çÀÇ ¼¹ö·Î Á¢¼ÓÇÏ´Â °æ¿ì°¡ ÀÖÀ» ¼ö ÀÖ´Ù.
¿ì¼± À̸¦ À§Çؼ´Â ȸ»ç ¼¹ö°¡ ¿ÜºÎ¿¡¼ ¿¬°áµÇµµ·Ï ¿¿© ÁÖ¾î¾ß ÇÏ´Â ¹®Á¦°¡ »ý±ä´Ù(ÇØÄ¿µéÀÇ °ø°Ý ´ë»óÀÌ µÉ¼ö ÀÖ´Ù).
´õ¿íÀÌ È£ÅÚ¿¡¼ ȸ»ç ¼¹ö·Î ¿¬°áÇÒ °æ¿ì È£ÅÚÀÇ ¸Á°ü¸®ÀÚ³ª ´Ù¸¥ È£ÅÚ ³ÝÆ®¿÷ »ç¿ëÀÚ°¡ ¸¶À½¸¸ ¸ÔÀ¸¸é
³»°¡ Á¢¼ÓÇÏ´Â ¼¹ö¿Í ³»°¡ ÀÐ°í º¸³»´Â Á¤º¸¸¦ ¿³º¼ ¼ö ÀÖ°Ô µÈ´Ù.
ÀÌ°ÍÀ» ¸·±â À§ÇØ ¿ì¸®´Â ssh°°Àº ¹æ½ÄÀ¸·Î shellÀ» Á¢±ÙÇϰųª ssl·Î À¥¼¹ö¸¦ Á¢¼ÓÇÑ´Ù.
±×·¯³ª ¿ì¸®°¡ »ç¿ëÇÏ°íÀÚ ÇÏ´Â ¼ºñ½º°¡ Samba³ª ȸ»çÀÇ DBMSµîÀ̸é
´Ü¼øÀÌ ÇϳªÀÇ ÇÁ·ÎÅäŬÀ» ¾ÏÈ£È ÇÏ´Â °ÍÀ¸·Î ¹®Á¦´Â ½±°Ô ÇØ°áµÇÁö ¾Ê´Â´Ù.
±×¸®°í ¼³Á¤¶ÇÇÑ »ó´çÈ÷ º¹ÀâÇØ Áø´Ù.
¿ì¸®´Â Point-to-Point ¾ÏÈ£È, Áï ³» ÄÄÇ»ÅÍ¿¡¼ ȸ»ç ¼¹ö·Î ÁÖ°í ¹Þ´Â ¸ðµç ÆÐŶÀÇ ¾ÏȣȰ¡ ÇÊ¿äÇÑ °ÍÀÌ°í À̸¦ À§Çؼ´Â VPNÀÌ ÇÊ¿äÇÑ °ÍÀÌ´Ù.
´Ù½Ã °Á¶ÇÏÀÚ¸é VPNÀº ssh ÅͳÎÀ̳ª ssl Åͳΰ°ÀÌ ÇϳªÀÇ Æ÷Æ®¸¦ ¾ÏÈ£È ÇÑ´ÙÀ½ Æ÷¿öµùÇÏ´Â °ÍÀÌ ¾Æ´Ñ Àüü ÆÐŶÀ» ¾ÏÈ£È ÇÑ´ÙÀ½ ¼¹ö¿Í Åë½ÅÇÏ´Â °ÍÀÌ´Ù.
1.3. OpenVPN ¶ÀÌ Áß¿¡¼µµ À±¼®Âù¾¾°¡ ¼Ò°³ÇØÁØ OpenVPNÀÌ °¡Àå ÀαⰡ ÀÖ¾ú´Ù. ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â SlashDot ¿¡¼ Åä·ÐÇÑ
³»¿ëÀ» Âü°íÇϱ⠹ٶõ´Ù.
1.3.1. °£´ÜÇÑ µ¿ÀÛ ¿ø¸® ¶ÇÊÀÚµµ ÀÌÂÊ Àü¹®°¡´Â ¾Æ´ÏÁö¸¸ ¸çÄ¥µ¿¾È Àо¹Ù¿¡ ÀÇÇØ °£´ÜÇÑ µ¿ÀÛ ¿ø¸®¸¦ ¼³¸íÇØ º¸·Á ÇÑ´Ù.
VPNÀº ¼¹ö¿Í Ŭ¶óÀ̾ðÆ®°£ÀÇ ¸ðµç ÆÐŶÀ» Symmetric ¿¼è¸¦ ÀÌ¿ëÇÏ¿© ¾ÏÈ£ ¹× º¹È£ÇÑ´Ù.
À̶§ Symmetric ¿¼è¸¦ ¾ÈÀüÇÏ°Ô Å¬¶óÀ̾ðÆ®¿Í ¼¹ö°£¿¡ °øÀ¯ÇÏ´Â °Í°ú °¡´ÉÇÏ´Ù¸é
±× ¿¼è¸¦ ÀÚÁÖ ÀÚÁÖ ¹Ù²Ù¾î ÁÖ´Â °ÍÀÌ º¸¾È»ó Áß¿äÇѵ¥ À̸¦ À§Çؼ´Â ¼¹ö¿Í Ŭ¶óÀ̾ðÆ®°£ÀÇ ¾ÈÀüÇÑ Åë½Å ä³ÎÀÌ ÇÊ¿äÇÏ´Ù.
À̸¦ À§ÇØ °ø°³¿¼è ¹æ½ÄÀ» »ç¿ëÇؼ ¾ÈÀüÇÑ Ã¤³ÎÀ» ¸¸µç´ÙÀ½ ¼·Î Symmetric ¿¼è¸¦ °øÀ¯ÇÑ´Ù.
ÀÌ ¿¼è´Â ÆÐŶÀÇ ¾Ïȣȿ¡ »ç¿ëµÇ°í ±âº»ÀûÀ¸·Î OpenVPNÀº BlueFish¶ó´Â ¾ÆÁ÷±îÁö ¿À·ù°¡ ¾ø´Â °ÍÀ¸·Î ¾Ë·ÁÁø ¾ÏÈ£È ¹æ½ÄÀ»
»ç¿ëÇÑ´Ù.
±×·¡¼ °¢°¢ ¼¹ö¿Í Ŭ¶óÀ̾ðÆ®µé ¸¶´Ù °¢°¢ÀÇ ¿¼è°¡ ÀÖ¾î¾ß ÇÑ´Ù. ±×·±µ¥ ¼·Î ÀÌ ¿¼è¸¦ ¾î¶»°Ô ½Å·ÚÇÒ ¼ö ÀÖÀ»±î?
¹Ù·Î CA¸¦ ÀÌ¿ëÇؼ ÇÑ°÷¿¡¼ ¿¼è¸¦ ¸¸µé¾î ¼¹ö¿Í Ŭ¶óÀ̾ðÆ®µé¿¡ ¿¼è¸¦ º¹»çÇÏ´Â °ÍÀÌ´Ù.
´õ ÀÚ¼¼ÇÑ »çÇ×Àº ¿¼è¸¦ ¸¸µé¶§ ´õ ¼³¸íÇÑ´Ù.
(ÇÊÀÚ°¡ À̺κРÀü¹®°¡°¡ ¾Æ´Ï¶ó Ȥ Ʋ¸° ºÎºÐÀÌ ÀÖ´Ù¸é Á÷Á¢ ¼öÁ¤ÇϽðųª Àú¿¡°Ô ¾Ë·Á ÁÖ¼¼¿ä.)
1.4.1. ¼³Ä¡ Çϱ⠶¼³Ä¡¸¦ À§ÇÑ ÆÄÀϵéÀº http://openvpn.net/download.html ¿¡¼ ´Ù¿î·Îµå °¡´ÉÇÏ´Ù. Áß¿äÇÑ ÆÄÀϵéÀ̹ǷΠÆÄÀϵéÀÇ ¼¸íÀ» ´ÙÀ½¿¡¼ È®ÀÎÇÏ´Â °Íµµ µµ¿òÀÌ µÈ´Ù. http://openvpn.net/sig.html
ÀÌ OpenVPN ÇÁ·Î±×·¥Àº ¼¹ö¿Í Ŭ¶óÀ̾ðÆ® °ø¿ëÀÌ´Ù. ¿©±â¼ ¼¹ö´Â ¸®´ª½º¿¡ Ŭ¶óÀ̾ðÆ®´Â À©µµ¿ì¿¡ ¼³Ä¡ÇÏ´Â °ÍÀ» ¿¹·Î ¼³¸íÇÑ´Ù.
¼¹ö¿ëÀ¸·Î ¿ì¼±Àº ¸®´ª½º¿ë Source TarballÀ» ´Ù¿î ¹Þ´Â´Ù. RPM°ú YUMµîÀ¸·Îµµ ´Ù¿î°ú ¼³Ä¡°¡ °¡´ÉÇÒ °ÍÀÌÁö¸¸ ¿©±â¼´Â ¼Ò½º¸¦ ÄÄÆÄÀÏ ÇÑ´Ù.
°£´ÜÈ÷:
tar xfz openvpn-[version].tar.gz cd openvpn-[version] ./configure --prefix=/usr/local/openvpn make make install ±×·¯¸é /usr/local/openvpn/sbin ¿¡ openvpn À̶ó´Â ½ÇÇàÆÄÀÏÀÌ »ý°Ü³µÀ» °ÍÀÌ´Ù.
1.4.2. ¿¼è ¸¸µé±â ¶¿ì¼± ¿ì¸®´Â VPN¼¹ö¿Í Ŭ¶óÀ̾ðÆ®¸¦ À§ÇØ ¿¼è¸¦ ¸¸µé¾î¾ß ÇÑ´Ù.
ÇÊ¿äÇÑ ¿¼èµéÀº CA(Certificate Authority), ¼¹ö, ±×¸®°í Ŭ¶óÀ̾ðÆ® ¿¼èÀÌ°í Ãß°¡·Î Diffie Hellman parameters °¡ ÇÊ¿äÇÏ´Ù.
OpenVPNÀº ¿¼è»ý¼ºÀ» À§ÇÑ ½ºÅ©¸³Æ®¸¦ Á¦°øÇϹǷΠ¿¼è¸¦ ¾ÆÁÖ ½±°Ô ¸¸µé ¼ö ÀÖ´Ù.
¿ì¼± ¼Ò½º¸¦ Ǭ µð·ºÅ丮·Î °¡¸é
easy-rsa µð·ºÅ丮¸¦ ãÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¸¸¾à rpmÀ̳ª yumÀ¸·Î ¼³Ä¡ Çß´Ù¸é /usr/share/doc/packages/openvpn ³ª /usr/share/doc/openvpn-2.0 µîÀÇ µð·ºÅ丮¸¦ ã¾Æ º¸¸é ÁÁÀ» °ÍÀÌ´Ù.
¿ø HOWTO´Â update½Ã ÀÌÀü ÆÄÀϵéÀ» º¸Á¸Çϱâ À§ÇØ ÀÌ ÆÄÀϵéÀ» /etc/openvpn µîÀ¸·Î º¹»çÇÒ°ÍÀ» ±ÇÀåÇÑ´Ù.
¿ì¼±
vars ¶ó´Â ÆÄÀÏÀ» ¿¾î Á¦ÀÏ ¾Æ·¡ÂÊ¿¡ ÀÖ´Â º¯¼ö¸¦ ¼öÁ¤ÇÑ´Ù. ÇÊÀÚÀÇ °æ¿ì ¾Æ·¡¿Í °°ÀÌ ÇÏ¿´´Ù.
# These are the default values for fields
# which will be placed in the certificate. # Don't leave any of these fields blank. export KEY_COUNTRY=US export KEY_PROVINCE=MA export KEY_CITY=Cambridge export KEY_ORG="OpenVPN-Server" export KEY_EMAIL="hunkim@gmail.com" . vars ¸¦ ½ÇÇà½ÃÄÑ ¿¼è »ý¼ºÀ» À§ÇÑ ±âº»ÀûÀÎ º¯¼öµéÀÌ ¼³Á¤µÇ°Ô ÇÑ´Ù.
±×·±´ÙÀ½ ./clean-all (±âÁ¸ ¿¼èµéÀ» Áö¿î´Ù), ./build-ca ¸¦ ½ÇÇà ½ÃŲ´Ù. ±×·¯¸é ca.crt ¿Í ca.key¸¦ »ý¼º ½ÃŲ´Ù.
ÀÌÁ¦ ºÎÅÍ »ý°Ü³¯ ¸ðµç ¿¼èµéÀº ÇöÀç µð·ºÅ丮 keys¶ó´Â µð·ºÅ丮¿¡ »ý¼ºµÈ´Ù.
ÀÌÁ¦ CA ¿¼è°¡ »ý¼ºµÇ¾úÀ¸¸é ¼¹ö¿¡ »ç¿ëÇÒ ¿¼è¸¦ ¸¸µç´Ù.
./build-key-server server
Common Name À» ¹°¾î ¿À¸é 'server'¸¦ ÀÔ·ÂÇÑ´Ù. ±×¸®°í ´ÙÀ½ µÎ°³ÀÇ Áú¹®¿¡ Yes ¶ó°í ´äÇÑ´Ù.
±×·³ ¼¹ö¿¡ »ç¿ëÇÒ server.crt ¿Í server.key °¡ »ý¼ºµÇ¾úÀ» °ÍÀÌ´Ù. ¼¹ö´Â Diffie Hellman parameters ¸¦ »ý¼º½ÃÄÑ¾ß ÇÑ´Ù. °£´ÜÇÏ°Ô build-dh ¸¦ ½ÇÇà½ÃÅ°¸é µÈ´Ù.
# ./build-dh
Generating DH parameters, 1024 bit long safe prime, generator 2 This is going to take a long time .................+........................................... ...................+.............+.................+......... ...................................... ÀÌ°ÍÀ¸·Î ¼¹ö¿¡¼ »ç¿ëÇÒ ¿¼èµéÀº ¸ðµÎ »ý¼ºµÇ¾ú´Ù.
Ŭ¶óÀ̾ðÆ®µé¿¡¼ »ç¿ëÇÒ ¿¼èµéÀ» »ý¼º½ÃÄÑ¾ß Çϴµ¥ ÀÌ´Â ¼¹ö¿¡¼ (¶Ç´Â ca.key °¡ ÀÖ´Â ¼¹ö¿¡¼) ¸¸µç´Ù.
°¢°¢ÀÇ Å¬¶óÀ̾ðÆ®µé¸¶´Ù °¢±â ´Ù¸¥ Ŭ¶óÀ̾ðÆ® ¿¼è°¡ ÇÊ¿äÇÏ´Ù.
±×·¡¼ 100°³ÀÇ Å¬¶óÀ̾ðÆ®°¡ ÀÖ´Ù¸é ¿¼è¸¸µé±â¸¦ 100¹ø ÇØ¾ß ÇÑ´Ù.
¿©±â¼´Â hunkim À» À§ÇÑ Å¬¶óÀ̾ðÆ® ¿¼è Çϳª¸¸ ¸¸µç´Ù.
(¸®´ª½º °èÁ¤À» ÅëÇÑ Ãß°¡ÀÎÁõ ¶Ç´Â ´Üµ¶ÀÎÁõ ¹æ¹ýÀº ¾Æ·¡¿¡¼ ¼³¸íÇÑ´Ù.)
./build-key hunkim
¼¹ö¶§¿Í ºñ½ÁÇÏ°Ô Common NameÀº hunkim À» ÀÔ·ÂÇÑ´Ù.
°¢°¢ Ŭ¶óÀ̾ðÆ®¸¶´Ù ¼·Î´Ù¸¥ Common NameÀ» ÁÖ¾î¾ß ÇÑ´Ù.
±×¸®°í ´ÙÀ½ µÎ°³ÀÇ Áú¹®¿¡ Yes ¶ó°í ´äÇÑ´Ù.
* Sign the certificate? [y/n] * 1 out of 1 certificate requests certified, commit? [y/n] °¢ Ŭ¶óÀ̾ðÆ®·Î ¿ì¸®°¡ ¸¸µç Ŭ¶óÀ̾ðÆ® ¿¼è (hunkim.crt, hunkim.key) ±×¸®°í ca.crt¸¦ ¾ÈÀüÇÑ ¹æ¹ýÀ¸·Î º¹»çÇØ¾ß ÇÑ´Ù. µð½ºÄÏÀ¸·Î º¹»çÇϰųª sftp µîÀ¸·Î º¹»çÇÏ¸é µÈ´Ù.
À̸ÞÀÏÀ̳ª ftp·Î º¹»çÇÏ´Â °ÍÀº ÁÁÀº ¹æ¹ýÀÌ ¾Æ´Ï´Ù.
±×·³ ¿ì¸®°¡ ÇÊ¿ä·á ÇÏ´Â ¸ðµç ¿¼èµéÀÌ ¸¸µé¾î Á³´Ù.
¸¸µé¾îÁø ¿¼èµéÀ» Çѹø »ìÆ캸ÀÚ (OpenVPN HOWTO¿¡¼ °¡Á®¿Ô½À´Ï´Ù.)
¿©±â¼ Secret°¡ YESµÈ ¿¼èµéÀº ¾Ë¾Æ¼ Àß º¸°üÇϱ⠹ٶõ´Ù. ¾Æ´Ï¸é VPN¼¹ö¿Í Ŭ¶óÀ̾ðÆ® »çÀÌ¿¡ ÆÐŶÀ» ¿³µè´Â middle-man °ø°ÝÀÌ °¡´ÉÇØÁø´Ù. 1.4.3. ȯ°æ¼³Á¤ ¶¿ì¼± ¼¹ö ȯ°æÀ» ¼³Á¤Çϱâ Àü¿¡ ¸î°¡Áö °áÁ¤ÇØ¾ß ÇÒ »çÇ×µéÀÌ ÀÖ´Ù. VPNÀ¸·Î ¼¹ö¿Í Ŭ¶óÀ̾ðÆ®°£¿¡ ¿¬°áÀÌ µÇ¸é VPNÀ» À§ÇÑ »õ·Î¿î ÁÖ¼Ò°¡ ¼¹ö¿Í Ŭ¶óÀ̾ðÆ®¿¡ ÇÒ´çµÈ´Ù.
ÀÌ ÁÖ¼Ò¸¦ °áÁ¤ÇØ¾ß Çϴµ¥ Ȥ ȸ»ç ³»ºÎÀÇ ¸Á°ú Ãæµ¹ÀÌ ¾ø´ÂÁö È®ÀÎÇÏ¸é µÈ´Ù.
10.8.0.0/255.255.255.0 À» »ç¿ëÇϱ⸦ ±ÇÇÑ´Ù.
µÎ¹ø°´Â TCP¿Í UDPÁß ¾î´À ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÒÁö¿¡ ´ëÇÑ °ÍÀε¥ UDP´Â ´ëºÎºÐÀÇ È¯°æ¿¡¼ Àß µ¿ÀÛÇÑ´Ù.
¿©±â¼ ÁÖÀÇÇÒ Á¡Àº, ¼¹ö°¡ UDP¸¦ ¾²¸é Ŭ¶óÀ̾ðÆ®µµ UDP¸¦ ¾²µµ·Ï ¼³Á¤ÇØ¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù.
¸¶Áö¸·Àº route ¹æ½ÄÀ» »ç¿ëÇÒ °ÍÀÎÁö ºê¸´Áö ¹æ½ÄÀ» »ç¿ëÇÒÁö¿¡ ´ëÇÑ °áÁ¤ÀÌ´Ù.
°£´ÜÇÑ ¼³Á¤À» À§ÇØ route ¹æ½ÄÀ» »ç¿ëÇϱ⸦ ±ÇÇÑ´Ù.
OpenVPNÀÇ ¼³Á¤ ÆÄÀÏÀº ÇϳªÀÌ´Ù. ¼Ò½º µð·ºÅ丮³ª /usr/share/doc/packages/openvpn ³ª /usr/share/doc/openvpn-2.0 µîÀ» º¸¸é server.conf ¶ó´Â ¿¹Á¦ ¼¹ö ¼³Á¤ ÆÄÀÏÀÌ ÀÖÀ» °ÍÀÌ´Ù.
10.8.0.0 À» »ç¿ëÇÏ°í UDP¸¦ »ç¿ëÇÏ°í route ¹æ½ÄÀ» »ç¿ëÇϱ⸦ ¿øÇÑ´Ù¸é ¿¹Á¦ ÆÄÀÏÀ» ´ëºÎºÐ ±×´ë·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.
ÇÑ°¡Áö ¼öÁ¤ÀÌ ÇÊ¿äÇÑ°ÍÀº ¿ì¸®°¡ »ý¼ºÇÑ ¿¼èµéÀ» ÁöÁ¤ÇÏ´Â ºÎºÐÀÌ Àִµ¥
À̸¦ ¿©·¯ºÐÀÌ »ý¼ºÇÑ ¿¼èµéÀ» ¹Ù¸£°Ô °¡¸£Å°µµ·Ï ¼³Á¤ÇØ ÁÖ¸é µÈ´Ù.
¾Æ·¡ÀÇ server.confÀÇ °æ¿ì,
keys/* ÆÄÀÏÀÌ server.confÆÄÀÏÀÌ ÀÖ´Â µð·ºÅ丮¿¡ °°ÀÌ ÀÖ¾î¾ß ÇÑ´Ù.
# server.conf # Any X509 key management system can be used. # OpenVPN can also use a PKCS #12 formatted key file # (see "pkcs12" directive in man page). ca keys/ca.crt cert keys/server.crt key keys/server.key # This file should be kept secret # Diffie hellman parameters. # Generate your own with: # openssl dhparam -out dh1024.pem 1024 # Substitute 2048 for 1024 if you are using # 2048 bit keys. dh keys/dh1024.pem ¸¶Áö¸·À¸·Î Áß¿äÇÑ °ÍÀº Ȥ½Ã OpenVPN ¼¹ö°¡ ¹æȺ® ³»ºÎ¿¡ µé¾î ÀÖÀ» °æ¿ì UDP/1194 ¹øÀ» ¿¾î ÁÖ¾î¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù. ±×·¸Áö ¾ÊÀ¸¸é Ŭ¶óÀ̾ðÆ®°¡ OpenVPN ¼¹ö·Î Á¢¼ÓÇÒ ¼ö ¾ø°ÔµÈ´Ù.
1.4.4. ½ÇÇà ¶¼¹ö ½ÇÇàÀº ¾ÆÁÖ °£´ÜÇÏ´Ù. openvpnÀ» ½ÇÇà½ÃÅ°¸é¼ server.conf ÆÄÀÏÀÇ À§Ä¡¸¦ ¾Ë·Á ÁÖ¸é µÈ´Ù.±×·¯¸é ·Î±×¿¡ ÇØ´çÇÏ´Â ºÎºÐÀ» ȸéÀ¸·Î Ãâ·ÂÇØ ÁÙ °ÍÀÌ´Ù (ÀÌ ·Î±×´Â ¿øÇÏ´Â ÆÄÀÏ·Î º¸³¾ ¼ö ÀÖ´Ù).
# /sbin/openvpn server.conf Wed Dec 27 04:06:51 2006 OpenVPN 2.0.9 i686-intel-linux [SSL] [LZO] [EPOLL] built on Dec 26 2006 Wed Dec 27 04:06:51 2006 Diffie-Hellman initialized with 1024 bit key Wed Dec 27 04:06:51 2006 TLS-Auth MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ] Wed Dec 27 04:06:51 2006 TUN/TAP device tun0 opened Wed Dec 27 04:06:51 2006 /sbin/ifconfig tun0 10.8.0.1 pointopoint 10.8.0.2 mtu 1500 Wed Dec 27 04:06:51 2006 /sbin/route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.8.0.2 Wed Dec 27 04:06:51 2006 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ] Wed Dec 27 04:06:51 2006 UDPv4 link local (bound): [undef]:1194 Wed Dec 27 04:06:51 2006 UDPv4 link remote: [undef] Wed Dec 27 04:06:51 2006 MULTI: multi_init called, r=256 v=256 Wed Dec 27 04:06:51 2006 IFCONFIG POOL: base=10.8.0.4 size=62 Wed Dec 27 04:06:51 2006 IFCONFIG POOL LIST Wed Dec 27 04:06:51 2006 hunkim,10.8.0.4 Wed Dec 27 04:06:51 2006 Initialization Sequence Completed ¼¹ö·Î¼ °è¼Ó OpenVPN ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ°Ô ÇÏ·Á¸é rc ½ºÅ©¸³Æ®µî¿¡ ³Ö¾î ÁÖ¾î¾ß Çϴµ¥ ÀÌ´Â ¿øº» HOWTO³ª ÀÚ½ÅÀÌ »ç¿ëÇÏ´Â ¸®´ª½º ¹èÆ÷ÆÇÀÇ ¼³¸í¼¿¡¼ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù.
1.5. Ŭ¶óÀ̾ðÆ® ¶ÀÌÁ¦ ¼¹ö°¡ ¿Ï¼ºµÇ¾úÀ¸´Ï Ŭ¶óÀ̾ðÆ®¸¦ ¼³Ä¡ÇØ º¸°í ¼¹ö°¡ Àß µ¿À۵ǴÂÁö ½ÃÇèÇØ º¸ÀÚ. Ŭ¶óÀ̾ðÆ®´Â À©µµ¿ìÁî¿¡¼ ½ÇÇàµÈ´Ù°í °¡Á¤ÇÏ°í ¼³¸íÇÑ´Ù. (¸®´ª½ºµîÀº À¯»çÇÑ ¹æ¹ýÀ¸·Î ¼³Ä¡¹× ½ÇÇàÀÌ °¡´ÉÇÏ´Ù.)
1.5.1. ¼³Ä¡Çϱ⠶À̸¦ À§ÇØ ¿ì¼± Ŭ¶óÀ̾ðÆ®¿¡ ÇÊ¿äÇÑ ÇÁ·Î±×·¥À» ´Ù¿î ¹ÞÀÚ. OpenVPN GUI for Windows (http://openvpn.se/) ¸¦ ÃßõÇÑ´Ù.
ÀÌ ÇÁ·Î±×·¥À» ¼³Ä¡Çϸé ÃֽŠOpenVPN¹× GUI ÇÁ·Î±×·¥À» ´Ù Çѹø¿¡ ¼³Ä¡Çϱ⠶§¹®¾Ö Æí¸®ÇÏ°Ô ¼³Ä¡ ÇÒ ¼ö ÀÖ´Ù.
Installation Package (Both 32-bit and 64-bit TAP driver included)¸¦ ´Ù¿î ¹Þ¾Æ ÀÌ ¼³Ä¡ ÇÁ·Î±×·¥À» ½ÇÇà ½ÃŲ´Ù.
´ëºÎºÐÀº ±âº»À¸·Î ¼³Á¤À¸·Î ¼³Ä¡¸¦ ÇÑ´Ù.
¼³Ä¡Áß ¾Æ·¡¿Í °°ÀÌ TAP-Win32 Adapter¸¦ ÀÚµ¿À¸·Î ¼³Ä¡ÇØ Áִµ¥ ÀÌ ÇÁ·Î±×·¥Àº M$ ÀÇ ¼¸íÀº ¹ÞÁö ¾Ê¾ÒÁö¸¸ "°è¼Ó"À» ´·¯ ¼³Ä¡¸¦ ÇÑ´Ù.
[PNG image (57.81 KB)] ¼³Ä¡°¡ ¿Ï·áµÈ·ç OpenVPN GUI°¡ ÀÚµ¿À¸·Î ½ÇÇàµÇ¾î À©µµ¿ì Tray¿¡ º¸¸é OpenVPN GUI ¾ÆÀÌÄÜÀÌ ³ªÅ¸³¯ °ÍÀÌ´Ù.
[PNG image (2.76 KB)] 1.5.2. Å° º¹»çÇϱ⠶±×·³ ÀÌÁ¦ ¼¹ö ¼³Ä¡ °úÁ¤¿¡¼ »ý¼º ½ÃŲ Ŭ¶óÀ̾ðÆ®¿ë ¿¼èµéÀ» (ca.crt, hunkim.key, hunkim.crt) Àû´çÇÑ À§Ä¡·Î º¹»ç ÇÑ´Ù.
´Ù½Ã °Á¶ÇÏÁö¸¸ ÀÌ Å°µéÀ» ¼¹ö¿¡¼ ¹Þ¾Æ¿Ã¶§ °¢º°ÇÑ ÁÖÀǸ¦ ¿äÇÑ´Ù. (sftp³ª PGP ¸ÞÀϵîÀÇ ¹æ¹ý »ç¿ë)
ÇÊÀÚÀÇ °æ¿ì ¿¼èµéÀ» C:\Program Files\OpenVPN\config ·Î º¹»ç Çß´Ù.
Å° ÆÄÀÏ ¾øÀÌ Á¢¼ÓÇÏ´Â ¹æ¹ýÀº ¾Æ·¡ÂÊ¿¡ º°µµ·Î ¼³¸íÇÑ´Ù.
1.5.3. ȯ°æ¼³Á¤ ¶Å¬¶óÀ̾ðÆ®µµ ÇϳªÀÇ ¼³Á¤ÆÄÀÏÀÌ ÇÊ¿äÇѵ¥ (À©µµ¿ìÁî´Â .ovpn ÆÄÀÏÀÌ´Ù), ¿¹Á¦ ÆÄÀϵéÀÌ C:\Program Files\OpenVPN\sample-config ¿¡ Áغñ µÇ¾î ÀÖ´Ù.
ÀÌÁß client.ovpn À» config µð·ºÅ丮 (C:\Program Files\OpenVPN\config) ·Î º¹»çÇÑ´Ù. ÀÌ°÷ÀÌ À©µµ¿ìÁî OpenVPN GUIÇÁ·Î±×·¥ÀÌ »ç¿ëÇÏ´Â ±âº» µð·ºÅ丮ÀÌ´Ù.
±×·±´ÙÀ½ Tray¿¡ ÀÖ´Â OpenVPN GUI ¾ÆÀÌÄÜ¿¡¼ ¿À¸¥ÂÊ ¸¶¿ì½º¸¦ ´©¸£¸é ¸Þ´º°¡ ³ªÅ¸³ª´Âµ¥ ÀÌÁß Edit Config ¸¦ ¼±ÅÃÇÏ¸é ¿ì¸®ÀÇ Ä£±¸ ³ëÆ®ÆÐÆ®°¡ ¿¸®¸é¼ ¼³Á¤ÆÄÀÏÀ» ÆíÁýÇÒ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù.
[PNG image (5.1 KB)] ¿ì¼± Open VPN ¼¹ö¸¦ ÁöÁ¤ÇÑ´Ù.
... # The hostname/IP and port of the server. # You can have multiple remote entries # to load balance between the servers. remote vpn.mit.edu 1194 ... ¸¸¾à ¼¹ö¸¦ UDP, route ¹æ½ÄÀ¸·Î ¼³Á¤ÇÏ¿´À¸¸é ÀÌÁ¦ ¿¼è ÁöÁ¤ ºÎºÐ¸¸ ¼öÁ¤ÇÏ¸é µÈ´Ù.
À©µµ¿ì¿¡¼´Â ¿¼èÀÇ À§Ä¡¸¦ ·çÆ® µð·ºÅ丮 ºÎÅÍ Á¤È®ÇÏ°Ô ÁöÁ¤ÇØÁØ´Ù.
... # SSL/TLS parms. # See the server config file for more # description. It's best to use # a separate .crt/.key file pair # for each client. A single ca # file can be used for all clients. ca "C:\\Program Files\\OpenVPN\\config\\ca.crt" cert "C:\\Program Files\\OpenVPN\\config\\hunkim.crt" key "C:\\Program Files\\OpenVPN\\config\\hunkim.key" ... ±×¹Û¿¡, ¼¹ö¿¡¼ tunÀ» ¾²¸é clientµµ tunÀ» ¾²µµ·ÏÇÏ°í, ¼¹ö°¡ TCP¸¦ ¾²¸é Ŭ¶óÀ̾ðÆ®µµ TCP¸¦ ¾²µµ·Ï ÇØ¾ß ÇÑ´Ù.
# Use the same setting as you are using on the server. On most systems, the # VPN will not function unless you partially or fully disable the firewall # for the TUN/TAP interface. ;dev tap dev tun .... # Are we connecting to a TCP or UDP server? Use the same setting as # on the server. ;proto udp proto tcp ...ÀÌ°ÍÀ¸·Î Ŭ¶óÀ̾ðÆ®ÀÇ ¸ðµç ¼³Á¤Àº ³¡ÀÌ ³µ´Ù. 1.5.4. ¼¹ö¿¬°á ¶ÀÌÁ¦ ´Ù½Ã Tray¿¡ ÀÖ´Â OpenVPN ¸Þ´ºÀÇ Connect¸¦ ÀÌ¿ëÇؼ ¼¹ö¿¡ ¿¬°áÇØ º»´Ù. ±×·¯¸é Status âÀ» ÅëÇØ ¿¬°á»óȲÀ» º¸¿©ÁØ´Ù.
Tray¿¡ ÀÖ´Â ¾ÆÀÌÄÜÀÌ ¿¬°áÁß¿¡´Â ³ë¶õ»öÀ¸·Î, ¼º°øÀûÀ¸·Î ¿¬°áµÈÈÄ¿¡´Â ÃÊ·Ï»öÀ¸·Î ¹Ù²ï´Ù. ¿¬°áÀÌ ¾ÈµÇ¾î ÀÖÀ»¶§¿¡´Â »¡°£»öÀÌ´Ù.
Ȥ ¿¬°áÀÌ ¾ÈµÇ°Å³ª ¹®Á¦°¡ »ý±â¸é OpenVPN ¾ÆÀÌÄÜ ¸Þ´º¿¡ ÀÖ´Â View Log ¸¦ ÅëÇØ ¹®Á¦Á¡À» »ìÆì º¼ ¼ö ÀÖ´Ù. Âü°í·Î ¿¼è ¼³Á¤ÀÌ À߸øµÇ¸é ¾Æ·¡¿Í °°Àº ¸Þ½ÃÁö°¡ ³ª¿Â´Ù.
Tue Dec 26 15:32:45 2006 Cannot load CA certificate file C:\Program Files\OpenVPN\config\ca.crt (SSL_CTX_load_verify_locations): error:02001002:system library:fopen:No such file or directory: error:2006D080:BIO routines:BIO_new_file:no such file: error:0B084002:x509 certificate routines:X509_load_cert_crl_file:system lib Tue Dec 26 15:32:45 2006 Exiting ¼º°øÀûÀ¸·Î ¿¬°áµÇ¸é OpenVPN GUI ¾ÆÀÌÄÜ »ö±òÀÌ ÃÊ·Ï»öÀ¸·Î ¹Ù²î¸é¼ 10.8.0.x ÀÇ ¹øÈ£°¡ ÇÒ´çµÇ¾ú´Ù´Â ¸Þ½ÃÁö°¡ ³ª¿Â´Ù.
[PNG image (7.86 KB)] ±×·³ ÀÌÁ¦ ´Ù¸¥ ¹æ¹ýÀ¸·Î ¼¹ö¿Í ¿¬°áÀÌ È®½ÇÇÑÁö ¾Ë¾Æ º¸ÀÚ. ¿ì¼± ¼¹öÀÇ ·Î±× ¸Þ½ÃÁö¸¦ »ìÆ캸ÀÚ.
±×·±´ÙÀ½ Ŭ¶óÀ̾ðÆ®¿¡¼ ¼¹ö·Î PingÀ» Çغ¸ÀÚ.
Âü°í·Î ¼¹öÀÇ IP´Â 10.8.0.1 ÀÌ´Ù.
(À©µµ¿ìÁî¿¡¼ cygwinÀÇ shellÀ» »ç¿ëÇß´Ù.)
$ ping 10.8.0.1 PING 10.8.0.1 (10.8.0.1): 56 data bytes 64 bytes from 10.8.0.1: icmp_seq=0 ttl=64 time=260 ms 64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=216 ms ----10.8.0.1 PING Statistics---- 2 packets transmitted, 2 packets received, 0.0% packet loss round-trip (ms) min/avg/max/med = 216/238/260/238 ¹Ý´ë·Î ¼¹ö¿¡¼´Â Ŭ¶óÀ̾ðÆ®·Î pingÀ» º¸³»¸é Ŭ¶óÀ̾ðÆ®µµ ¹ÝÀÀÀ» ÇØ¾ß ÇÑ´Ù.
server $ ping 10.8.0.6 PING 10.8.0.1 (10.8.0.6): 56 data bytes ... PingÀÌ ¼º°øÀûÀ¸·Î µÇ¾ú´Ù¸é ÀÌÁ¦ ¼¹ö·Î Á¢¼ÓÇÒ¶§´Â 10.8.0.1 ÁÖ¼Ò·Î Á¢¼ÓÀ» ÇÏ¸é ¾ÈÀüÇÏ°Ô ¸ðµç ÆÐŶÀÌ ¼¹ö·Î Àü´ÞµÈ´Ù.
1.6. Ãß°¡ ¼³Á¤ ¶À§ÀÇ ±âº» ¼³Á¤À¸·Î °£´ÜÇÏ°Ô VPNÀÌ ¿¬°áµÇ¾ú´Ù. ¿©±â¼´Â Ãß°¡ÀûÀÎ ¼³Á¤¿¡ ´ëÇØ ¼³¸íÇÑ´Ù.
1.6.1. Ãß°¡Àû »ç¿ëÀÚ ÀÎÁõ ¶°¢ Ŭ¶óÀ̾ðÆ®µéÀº ÀÚ½ÅÀÇ ¿¼èµéÀ» °¡Áö°í VPN ¼¹ö¿¡ Á¢¼ÓÇÑ´Ù. Áï ÀÌ Å°¸¦ °¡Áø »ç¶÷µéÀº VPN ¼¹ö·Î Á¢¼ÓÀÌ °¡´ÉÇÏ´Ù. ÀÌ Å°µéÀÌ¿Ü¿¡ Ãß°¡·Î ¼¹öÂÊ¿¡¼ Ŭ¶óÀ̾ðÆ® Á¢¼ÓÀ» ÀÎÁ¤ÇÏ°í ½Í´Ù¸é ¾î¶»°Ô ÇØ¾ß ÇÒ±î? ¿¹¸¦ µé¾î ¸®´ª½º ¼¹ö¿¡ ÀÖ´Â »ç¿ëÀÚ ¾ÆÀ̵ð¿Í ºñ¹Ð¹øÈ£¸¦ °¡Áø »ç¶÷µé¸¸ OpenVPN ¼¹ö¿¡ Á¢¼ÓÇÏ°Ô ÇÏ°í ½Í´Ù¸é...
OpenVPNÀº Ãß°¡ÀûÀÎ ÀÎÁõ ¹æ½ÄÀ» Áö¿øÇϸç ÀÌÁß PAM¹æ½ÄÀ» ÀÌ¿ëÇÑ ÀÎÁõ ÇÁ·Î±×·¥Àº ÀÌ¹Ì ¹èÆ÷ÆÇ¿¡ Æ÷ÇԵǾî ÀÖ´Ù. Ãß°¡ ÀÎÁõÀ» À§Çؼ´Â ¿ì¼± Ŭ¶óÀ̾ðÆ® ¼³Á¤ ÆÄÀÏ¿¡ auth-user-pass ¸¦ Ãß°¡ ÇÑ´Ù.
¼¹öÂÊ ¼³Á¤ ÆÄÀÏ¿¡´Â PAMÀÎÁõÀ» À§ÇØ ´ÙÀ½À» Ãß°¡ ÇÑ´Ù.
plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so login À̶§ openvpn-auth-pam.so ÀÇ Á¤È®ÇÑ À§Ä¡¸¦ ¼³Á¤ÇØ¾ß ÇÑ´Ù. ±×·±´ÙÀ½ ´Ù½Ã ¼¹ö¸¦ ±¸µ¿ÇÏ°í Ŭ¶óÀ̾ðÆ®·Î Á¢¼ÓÀ» ÇÏ¸é ¾Æ·¡¿Í °°ÀÌ ¾ÆÀ̵ð¿Í ºñ¹Ð¹øÈ£¸¦ ¹°¾î ¿Â´Ù.
[PNG image (20.41 KB)] ÀÌ ºñ¹Ð¹øÈ£°¡ Á¤È®ÇÒ¶§¸¸ Á¢¼ÓÀÌ °¡´ÉÇÏ´Ù. ÀÌ ºñ¹Ð¹øÈ£´Â ¹°·Ð ¾ÈÀüÇÑ ¹æ¹ýÀ¸·Î ¼¹ö·Î º¸³½´Ù.
1.6.1.1. »ç¿ëÀÚ/ºñ¹Ð¹øÈ£ ¸¸À¸·Î ÀÎÁõÇϱ⠶¿©±â±îÁö ¼³¸í ¹æ¹ýÀ¸·Î¿¡¼´Â °¢ Ŭ¶óÀ̾ðÆ®ÀÇ ¿¼èµéÀÇ ÀÎÁõ ¹æ½ÄÀÇ Ãß°¡·Î ¸®´ª½º »óÀÇ »ç¿ëÀÚ ¾ÆÀ̵ð/ºñ¹Ð¹øÈ£·Î ÀÎÁõÇÏ´Â ¹æ¹ýÀ» »ìÆì º¸¾Ò´Ù.
ÀÌÀü ¿¼è¸¦ ¸¸µå´Â ¹æ¹ý¿¡¼ ¼³¸íÇÑ°Í Ã³·³ °¢ Ŭ¶óÀ̾ðÆ®¸¶´Ù °¢°¢ÀÇ ¿¼è¸¦ ¸¸µé¾î¾ß ÇÏ°í À̸¦ ¾ÈÀüÇÏ°Ô Å¬¶óÀ̾ðÆ®·Î º¹»çÇØ¾ß Çϴµ¥ ÀÌ´Â ¸Å¿ì ¼º°¡½Å ÀÏÀÌ ¾Æ´Ò ¼ö ¾ø´Ù.
±×·¯ÇÑ ÀÌÀ¯·Î º¸¾È»ó ±ÇÀåÇÏÁö´Â ¾ÊÁö¸¸ VPN ¼¹ö Á¢¼Ó½Ã ¸®´ª½º »óÀÇ »ç¿ëÀÚ ¾ÆÀ̵ð/ºñ¹Ð¹øÈ£¸¸À¸·Î ÀÎÁõÇÏ´Â ¹æ¹ýµµ Á¦°øÇÑ´Ù.
´ÙÀ½ÀÇ µÎ ÁÙÀ» ¼¹öÀÇ ¼³Á¤ ÆÄÀÏ¿¡ Ãß°¡ ÇÑ´Ù. (¼¹öÀÇ ¼³Á¤ÆÄÀÏÀÌ server.conf¶ó¸é ±× ÆÄÀÏ¿¡)
... client-cert-not-required username-as-common-name ... ±×¸®°í Ŭ¶óÀ̾ðÆ®¿¡¼´Â cert¿Í key ºÎºÐÀÇ ¿¼è¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é µÈ´Ù.
±×·¯³ª ca´Â VPN ¼¹öÀÇ ¿¼è¸¦ ÀÎÁ¤Çϱâ À§ÇØ Å¬¶óÀ̾ðÆ®·Î º¹»ç µÇ¾î¾ß Çϸç Á¤È®ÇÏ°Ô ÁöÁ¤µÇ¾î¾ß ÇÑ´Ù.
... ca "C:\\Program Files\\OpenVPN\\config\\my-server.ca.crt" ... 1.6.2. ¼¹öÂÊÀÇ ´Ù¸¥ ¼¹öµé ¿¬°áÇϱâ (µµ¿ò ÇÊ¿ä) ¶ÀÌÀü±îÁöÀÇ ¿¬°áÀº ¼¹ö¿Í 1:1 (point-to-point)¹æ½ÄÀ¸·Î ¼¹ö¿Í Ŭ¶óÀ̾ðÆ®°£¿¡¸¸ ¼·Î ÆÐŶÀÌ ¾ÏÈ£È µÈ´Ù.
¸¸¾à ¼¹ö°¡ ÀÖ´Â ÂÊ ´Ù¸¥ ¼¹öµé (¼¹ö¿Í °°Àº ³ÝÆ®¿÷¿¡ ÀÖ´Â)¿¡ Á¢¼ÓÇÏ°í ½Í´Ù¸é ¾î¶»°Ô ÇØ¾ß Çϳª?
¿©±â¼´Â ¿©·¯ºÐÀÌ routed VPN(dev tun)À» »ç¿ëÇÏ°í ÀÖ´Ù°í °¡Á¤ÇÕ´Ï´Ù.
¿ì¼± ¼¹ö°¡ ÀÖ´Â ³ÝÆ®¿÷ÀÌ 128.30.0.0/8 À̶ó°í °¡Á¤ÇÏÀÚ.
¿ì¼± ¼¹ö¿¡¼ À̵éÀÇ ÁÖ¼Ò¸¦ Ŭ¶óÀ̾ðÆ®·Î ¾Ë·Á ÁÖ¾î¾ß ÇÑ´Ù. ´ÙÀ½ÀÇ ÇÑÁÙÀ» ¼¹öÀÇ ¼³Á¤¿¡ Ãß°¡ ÇÑ´Ù.
push "route 128.30.0.0 255.255.255.0" Next, you must set up a route on the server-side LAN gateway to route the VPN client subnet (10.8.0.0/24) to the OpenVPN server (this is only necessary if the OpenVPN server and the LAN gateway are different machines).
À̺κÐÀº Á¦°¡ LAN gatewayÀÇ ¼³Á¤ ±ÇÇÑÀÌ ¾ø¾î¼ ½ÇÇèÀ» ¸øÇß½À´Ï´Ù. Ȥ½Ã ½ÃÇèÇÏ½Ç ¼ö ÀÖÀ¸½Å ºÐµéÀº Àú¿¡°Ô ¾Ë·Á ÁÖ½Ã¸é °¨»çÇÏ°Ú½À´Ï´Ù.
±×·±ÈÄ ¹Ýµå½Ã IP forwarding À» °¡´ÉÇÏ°Ô ¼³Á¤ÇØ Áֽðí:
On Linux, use the command: echo 1 > /proc/sys/net/ipv4/ip_forward TUNµµ forwardingÀÌ °¡´ÉÇϵµ·Ï ¼³Á¤ ÇÑ´Ù:
# Allow TUN interface connections to OpenVPN server iptables -A INPUT -i tun+ -j ACCEPT # Allow TUN interface connections to be forwarded through other interfaces iptables -A FORWARD -i tun+ -j ACCEPT ±×·±´ÙÀ½ ´Ù½Ã OpenVPNÀ¸·Î Á¢¼ÓÇϽŠ´ÙÀ½ ÇØ´ç ¼¹öµéÀ» Á¢¼ÓÇÏ¸é µÈ´Ù.
1.6.3. Àüü Æ®·¡ÇÈÀ» ¼¹ö·Î ¶ó¿ìÆà Çϱ⠶ÀÌÀüÀÇ ¼³Á¤À» ÅëÇØ VPN ¼¹ö¿¡ Á¢¼ÓÇÏ¸é ¼¹ö¿Í Ŭ¶óÀ̾ðÆ® (point-to-point) ¶Ç´Â Å©¶óÀ̾ðÆ® ¿Í ¼¹ö³ÝµéÀÇ ¿¬°á¸¸ ¾ÏȣȰ¡ µÇ¾ú´Ù.
±×·¯³ª ¾î¶³¶§´Â ¿ÜºÎ¿¡ ÀÖ´Â »ç¿ëÀÚ°¡ ÀÚ½ÅÀÌ »ç¿ëÇÏ´Â Àüü Æ®·¡ÇÈÀ» ¼¹ö·Î ¾ÏÈ£È ÇÑ´ÙÀ½ ¶ó¿ìÆ® ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù.
¿¹¸¦ µé¾î ¿ÜºÎ¿¡¼ ³»°¡ ±¸±Û ¸ÞÀÏÀ̳ª ±¸±ÛÅåµîÀ» »ç¿ëÇÒ¶§ ´©±º°¡°¡ ÀÌ ¸ÞÀÏÀ̳ª ÅåÀÇ Á¤º¸¸¦ ¿³º¼ ¼ö Àֱ⠶§¹®ÀÌ´Ù.
VPNÀ¸·Î ¼¹ö¿Í ¶Ç´Â ¼¹ö³ÝÀ¸·Î´Â ¾ÏȣȷΠ¿¬°áµÈ´Ù°í Çصµ ±× ¿ÜÀÇ ³ÝÆ®웤(º¸Åë ÀÎÅͳÝ) Æ®·¡ÇÈÀº Á÷Á¢ ÇØ´çÇÏ´Â ¼¹ö¿Í ¾ÏÈ£È µÇÁö ¾Ê°í ¿¬°áµÈ´Ù.
Áï ¾Æ·¡ ±×¸²°ú °°ÀÌ VPNÀ» »ç¿ëÇÏ´Â Áß¿¡µµ ¾î¶² »ç¿ëÀÚ°¡ A¶ó´Â ±â°ü¿¡¼ ±¸±ÛÅåÀ» ÇÏ°Ô µÇ¸é A±â°üÀÇ ¸Á °ü¸®ÀÚ´Â ½±°Ô ±× ³»¿ëÀ» ¿³ µéÀ» ¼ö ÀÖ°Ô µÈ´Ù.
[PNG image (17.09 KB)] ±×·¡¼ ¾Æ·¡ ±×¸²°ú °°ÀÌ Àüü Æ®·¡ÇÈÀ» VPN ¼¹ö·Î º¸³»°í VPN ¼¹ö¿¡¼ ±¸±Û ÅåÀ̳ª ´Ù¸¥ ¼¹ö·Î ¿¬°áÇÒ ¼ö ÀÖ´Ù¸é A±â°üÀÇ ¸Á °ü¸®ÀÚ´Â ±× ³»¿ëÀ» ÀüÇô ¾Ë ¼ö ¾ø°Ô µÈ´Ù.
[PNG image (26.32 KB)] ¹°·Ð VPN ¼¹ö¿¡¼ ¿ÜºÎ·Î ³ª°¡´Â Á¤º¸´Â ¾ÏȣȰ¡ µÇÁö ¾Ê°í ¶Ç °¨½Ã´çÇÒ ¼öµµ ÀÖÁö¸¸
VPN¼¹ö¸¦ µÐ °÷Àº ÀÚ½ÅÀÇ ÁýÀ̳ª ȸ»ç±â ¶§¹®¿¡ ºñ±³Àû ¹ÏÀ»¸¸ÇÏ´Ù°í °¡Á¤ÇÑ´Ù.
ÀÌ ¹æ¹ýÀº ¼¹öÂÊ ³ÝÆ®¿÷¿¡ ÀÖ´Â ´Ù¸¥ ¼¹öµé°úÀÇ ¾ÈÀüÇÑ ¿¬°áÀ» À§Çؼµµ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
Áï ¼¹öÂÊÀÇ ³ÝÆ®¿÷¿¡ ÀÖ´Â ¼¹ö°¡ ÀÚü ³ÝÆ®¿÷¿¡¼¸¸ ¿¬°áµÇ°í ¿ÜºÎ¿¡¼´Â Â÷´ÜµÇµµ·Ï Çسõ´Â ´Ù¸é
OpenVPN ¼¹ö Á¢¼ÓÀ» ÅëÇؼ ³»ºÎ¸Á¿¡ ÀÖ´Â ¼¹öµé°úÀÇ Á¢¼ÓÀÌ °¡´ÉÇϱ⠶§¹®ÀÌ´Ù.
¸¶Ä¡ ÀÚ½ÅÀÌ ±× ³»ºÎ¸Á¿¡¼ ÄÄÇ»Å͸¦ ¿¬°áÇÑ°Í°ú °°¾Æ Áø´Ù.
ÀÌ À¯¿ëÇÑ ¹æ¹ýÀº ¿©·¯¸ð·Î ¾µ¸ð°¡ ¸¹Áö¸¸ ¼³Á¤Àº ¾ÆÁÖ °£´ÜÇÏ´Ù. ´ÙÀ½ÀÇ ÇÑÁÙÀ» ¼¹öÂÊ ¼³Á¤¿¡ Ãß°¡ ÇÑ´Ù.
# If enabled, this directive will configure # all clients to redirect their default # network gateway through the VPN, causing # all IP traffic such as web browsing and # and DNS lookups to go through the VPN # (The OpenVPN server machine may need to NAT # the TUN/TAP interface to the internet in # order for this to work properly). # CAVEAT: May break client's network config if # client's local DHCP server packets get routed # through the tunnel. Solution: make sure # client's local DHCP server is reachable via # a more specific route than the default route # of 0.0.0.0/0.0.0.0. push "redirect-gateway def1" ±×·±ÈÄ ¸î°¡Áö °£´ÜÇÑ Ãß°¡ ¼³Á¤ÀÌ ÇÊ¿äÇѵ¥ ¿ì¼± IP forwarding À» °¡´ÉÇÏ°Ô ¼³Á¤ÇØ Áֽðí:
On Linux, use the command: echo 1 > /proc/sys/net/ipv4/ip_forward VPNÀÌ 10.8.0.0/24 ÁÖ¼Ò¸¦ »ç¿ëÇÏ°í ¼¹öÀÇ ±âº» ³ÝÆ®¿÷ ÀåÄ¡°¡ eth0ÀÌ¶ó °¡Á¤ Çϸé
¾Æ·¡ÀÇ ¸í·ÉÀ¸·Î NAT¸¦ ÅëÇØ VPN Ŭ¶óÀ̾ðÆ®ÀÇ Æ®·¡ÇÈÀ» ÀÎÅͳÝÀ¸·Î º¸³¾ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù.
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE ±×·¯¸é Ŭ¶óÀ̾ðÆ®ÀÇ ¸ðµç Æ®·¡ÇÈ (DNS Äõ¸®¸¦ Æ÷ÇÔ)ÀÌ ¼¹ö¸¦ °ÅÄ¡¹Ç·Î DNS´Â ¼¹ö´Â VPN ¼¹ö¿¡¼ °¡±î¿î ÂÊÀ̳ª
¶Ç´Â VPN ¼¹ö ÀÚü°¡ DNS ¼¹ö¸¦ °âÇϸé ÁÁ´Ù. À̸¦ À§Çؼ´Â ¾Æ·¡ ÇÑÁÙÀÇ Ãß°¡·Î ÀÚµ¿À¸·Î Ŭ¶óÀ̾ðÆ® DNS¸¦ ¼³Á¤ÇØ
ÁÙ ¼ö ÀÖ´Ù.
push "dhcp-option DNS 10.8.0.1" ±×·±ÈÄ ÀÌÁ¦ ´Ù½Ã Ŭ¶óÀ̾ðÆ®ÀÇ OpenVPN GUIÇÁ·Î±×·¥À» ÅëÇØ Á¢¼ÓÀ» Çغ¸ÀÚ. ±×·±´ÙÀ½ Ŭ¶óÀ̾ðÆ® ÂÊÀÇ TCP/IP ¼³Á¤À» º¸ÀÚ.
Ethernet adapter Local Area Connection 7: Connection-specific DNS Suffix . : Description . . . . . . . . . . . : TAP-Win32 Adapter V8 Physical Address. . . . . . . . . : 00-FF-51-C4-40-4B Dhcp Enabled. . . . . . . . . . . : Yes Autoconfiguration Enabled . . . . : Yes IP Address. . . . . . . . . . . . : 10.8.0.6 Subnet Mask . . . . . . . . . . . : 255.255.255.252 Default Gateway . . . . . . . . . : 10.8.0.5 DHCP Server . . . . . . . . . . . : 10.8.0.5 DNS Servers . . . . . . . . . . . : 10.8.0.1 Lease Obtained. . . . . . . . . . : Tuesday, December 26, 2006 4:43:57 PM Lease Expires . . . . . . . . . . : Wednesday, December 26, 2007 4:43:57 PM Default Gateway ¿Í DNS Servers °¡ 10.8.0.1 ·Î ¼³Á¤µÈ°ÍÀ» ¾Ë ¼ö ÀÖ´Ù.
¿ì¼± ¿¬°áÀÌ ÀߵǾú´ÂÁö º¸±â À§Çؼ´Â À¥»çÀÌÆ®¸¦ Á¢¼ÓÇغ¸ÀÚ.
À̶§ ÀÎÅÍ³Ý ¿¬°á ¼Óµµ°¡ ¸Å¿ì ¶³¾îÁö´Â °ÍÀ» ´À³¤´Ù¸é VPN ¼¹ö·Î Á¢¼ÓÀÌ µÈ °ÍÀÌ´Ù.
´õ È®½ÇÈ÷ Çϱâ Çؼ´Â Ŭ¶óÀ̾ðÆ®¿¡¼ http://www.checkmyip.com/ µîÀ» Á¢¼ÓÇغ¸ÀÚ.
IP¹øÈ£°¡ Ŭ¶óÀ̾ðÆ®°¡ ¾Æ´Ñ ¼¹öÀÇ °ÍÀ̶ó¸é È®½ÇÇÏ°Ô ¿¬°áÀÌ µÈ°ÍÀÌ´Ù.
ÀÌÁ¦ºÎÅÍ »ç¿ëÀÚ°¡ »ç¿ëÇÏ´Â ¸ðµç ³ÝÆ®¿÷ (¸ðµç ÀÎÅͳÝ, ¸ðµç ÇÁ·ÎÅäŬ)Àº OpenVPN ¼¹ö±îÁö ¾ÈÀüÇÏ°Ô Àü´ÞµÈÈÄ ¼¹ö¸¦ ÅëÇØ ¿¬°áÀÌ µÈ´Ù.
À§ÀÇ ¼³¸íÀº ¼¹ö¿¡¼ ¼³Á¤ÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ ¼³¸íÀÌ´Ù. ¼¹ö¿¡¼ À§ÀÇ ¼³Á¤À» Á¦°øÇØ ÁÖÁö ¾ÊÀ» °æ¿ì (openvpnÀÇ client ¿¡¼ ¿É¼ÇÀ» ¾ÆÁ÷ Á¦°øÇÏ°íÀÖÁö ¾Ê´Â´Ù) °Á¦ ¶ó¿ìÆÃÀ» º¯°æÇÏ¿© Æ®·¡ÇÈÀ» ¼¹ö·Î ¸ðµÎ º¸³¾ ¼ö ÀÖ´Ù. ¾Æ·¡¿¡ ¼³¸íÇÏ´Â ¹æ¹ýÀº client ¿¡¼ ÇàÇϸç windows ¿¡¼ÀÇ ¸í·ÉÇàÀÌ´Ù. (±âŸ OS ¿¡¼´Â DIY Çϱâ ^^)
// ±âÁ¸ÀÇ default gateway ¸¦ Á¦°Å (ÀÌ·¸°Ô Á¦°ÅÇÏÁö ¾ÊÀ» °æ¿ì´Â metric°ª¿¡ µû¶ó ¼ø¼°¡ °áÁ¤µÈ´Ù) route DELETE 0.0.0.0 // VPN_SERVER_IP ¸¦ gateway ·Î Àâ´Â´Ù. À̶§ Áß¿äÇÑ °ÍÀº P-2-P ÀÇ VPN Ãø IP // ·Î Àâ¾Æ¾ß ÇÑ´Ù. ¾Æ¹«»ý°¢ ¾øÀÌ VPN server ÀÇ real IP ¸¦ ÀâÀ¸¸é ´ë·« ³¶ÆдÙ. // // OpenVPN Àº route ¹æ½Ä°ú bridge ¹æ½ÄÀÌ Àִµ¥, µÎ°¡Áö ¸ðµå Áß¿¡¼ VPN_SERVER_IP // ´Â ´ÙÀ½°ú °°´Ù. // // * route ¹æ½Ä // ¼¹öÃø¿¡ "server 192.168.100.0 255.255.255.0" ¶ó´Â ¼³Á¤ÀÌ ÀÖ´Ù¸é 192.168.100.1 // ·Î ¼³Á¤À» ÇÏ¸é µÉ °ÍÀÌ´Ù. (OpenVPNÀÇ ±âº»°ªÀ¸·Î µÎ¾úÀ» °æ¿ì´Â ´ë°Ô 10.8.0.5 ÀÌ´Ù) // // * bridge ¹æ½Ä // ¼¹öÃø¿¡ "server-bridge 192.168.100.1 255.255.255.0 192.168.100.2 192.168.100.254" // ¿Í °°ÀÌ ¼³Á¤ÀÌ µÇ¾î ÀÖ´Ù¸é 192.168.100.1 ·Î »ç¿ëÇÏ¸é µÈ´Ù. route ADD 0.0.0.0 MASK 0.0.0.0 VPN_SERVER_IP À§¿Í °°ÀÌ default gateway ¸¦ VPN À¸·Î º¯°æÇÏ¸é ¸ðµç Æ®·¡ÇÈÀº VPN ¼¹ö¸¦ ÅëÇؼ °¡°Ô µÉ °ÍÀÌ´Ù. VPN À» ²÷À¸¸é ¿ª½Ã ¼öµ¿À¸·Î gateway ¸¦ º¹±¸ÇØ Áà¾ß ÇÑ´Ù. (VPN ¼¹ö¿¡¼ ¼³Á¤À» ÇØ ÁÖ¸é ÀÚµ¿À¸·Î º¹±¸°¡ µÇ³ª, ¼öµ¿À¸·Î GW ¸¦ º¯°æÇϸé, º¹¿ø½Ã¿¡µµ ¼öµ¿À¸·Î ÇØ ÁÖ¾î¾ß ÇÑ´Ù. º¹±¸ ¹æ¹ýÀº À§ÀÇ VPN_SERVER_IP ¸¦ ±âÁ¸ÀÇ gateway ·Î ¹Ù²ã¼ ½ÇÇàÇØ ÁÖ¸é µÈ´Ù.
º¯°æÀ» ÇÏ·Á°í ÇÒ¶§ ¸¸¾à ¼¹öÃøÀÇ ¼³Á¤À» ¸ð¸¥´Ù¸é OpenVPNÀÇ Å¬¶óÀ̾ðÆ® ȤÀº ¼¹öÀÇ log¸¦ º¸°í ½ÃµµÇغ»´Ù. -- oops
1.7. ¸¶Ä¡¸é¼ ¶OpenVPNÀº ±âÁ¸ÀÇ VPN ÇÁ·ÎÅäŬÀÎ IPSec µîº¸´Ù ½±°Ô (ÇÊÀÚÀÇ °æ¿ì ÇÏ·ç Á¤µµ) ¼³Ä¡, ¼³Á¤ ¹× ¿î¿µÀÌ °¡´ÉÇÏ´Ù.
º¸¾ÈÀÌ ÇÊ¿äÇÑ È¸»ç³ª ´Üü µîÀº ¹Ýµå½Ã OpenVPNµîÀ» ÀÌ¿ëÇØ ¾ÈÀüÇÑ Åë½ÅÀ» ÇÒ °ÍÀ» ±ÇÇÑ´Ù.
ÇÊÀÚµµ °øºÎÇÏ¸é¼ Á¤¸®ÇÑ ³»¿ëÀ̶ó ¿À·ù³ª À߸øµÈ ºÎºÐÀÌ ¸¹À» °ÍÀ¸·Î »ý°¢ÇÑ´Ù. ¹ß°ßµÇ¸é Á÷Á¢ ¼öÁ¤ÇϽðųª ÇÊÀÚ¿¡°Ô ¾Ë·Á Áֽñ⠹ٶø´Ï´Ù. Âü°í·Î OpenVPN ÀÌ »ó¼¼ÇÏ°Ô ¼³¸íµÈ Ã¥(http://www.packtpub.com/openvpn/book/mid/2405065clw5q) À» ÁÖ¹®ÇØ µÎ¾ú´Âµ¥ Ã¥ÀÌ µµÂøÇϸé Àß ÀÐ¾î º¸°í ºÎÁ·ÇÑ ³»¿ëÀ» º¸ÃæÇÒ °èȹÀÌ´Ù.
1.8. ÀÐÀºÈÄ ¼Ò°¨ ¶
|
Money will say more in one moment than the most eloquent lover can in years. |