## ÀÌ ¹®¼´Â "¼¹ö°ü¸®ÀÚ¸¦ À§ÇÑ ¸®´ª½º ³×Æ®¿öÅ©-(Ãâ)º£½ºÆ®ºÏ" Ã¥¿¡ ´ëÇÑ µ¶ÀÚÀÇ ## Áú¹® Áß, ºñ±³Àû ºñÁßÀÌ ÀÖ´Â Áú¹®°ú ´äº¯À» Á¤¸®ÇÏ¿© ¿Å°Ü³õÀº °ÍÀÔ´Ï´Ù. ## ## µ¶ÀÚÀÇ °³ÀÎ Á¤º¸ º¸È£¿Í ½ºÆÔ¸ÞÀÏÀ» ¹æÁöÇϱâ À§Çؼ À̸§°ú ¸ÞÀÏÁÖ¼Ò´Â ## Á¦¿Ü½ÃÄ×½À´Ï´Ù. ## ## Ã¥¿¡ ´ëÇÑ Áú¹®Àº °¡´ÉÇÑ ## http://www.linuxchannel.net/board/?table=qna ## ¿¡¼ Áú¹®ÇØ ÁֽʽÿÀ.
[Á¦¸ñ] [3ÆÇ] BIND9 key, rndc.conf, named.conf ¼³Á¤¿¡ °üÇؼ 1. rndc.conf ÆÄÀÏ°ú named.conf ÆÄÀÏ¿¡ ¼³Á¤ÇÑ key´Â °¢°¢ ¾î¶² ¿ëµµ·Î »ç¿ëµÇ³ª¿ä? 2. rndc.conf ÆÄÀÏ°ú named.conf ÆÄÀÏ¿¡¼ server {} ±¸¹®ÀÇ key ¼³Á¤ÀÌ ´Ù¸¥°¡¿ä? 3. rndc¿Í nsupdate´Â ¾î¶»°Ô ´Ù¸¥°¡¿ä? ¸ðµÎ »ç¿ëÇØ¾ß ¸¸ Çϳª¿ä? 4. rndc.conf, named.conf ÆÄÀÏ¿¡¼ key ºÎºÐ ¼³Á¤ ±¸ºÐ Á¤¸® 1. rndc.conf ÆÄÀÏ°ú named.conf ÆÄÀÏ¿¡ ¼³Á¤ÇÑ key´Â °¢°¢ ¾î¶² ¿ëµµ·Î »ç¿ëµÇ³ª¿ä? rndc.conf : ÀÌ ÆÄÀÏ¿¡¼ ¼³Á¤ÇÑ key´Â localhostÀÇ rndc°¡ »ç¿ëÇÏ°í ¿ø°ÝÀÇ ³×ÀÓ¼¹ö¿¡ ÀÎÁõ ¿äû½Ã »ç¿ëÇÏ´Â keyÀÔ´Ï´Ù. Áï, localhostÀÇ rndc°¡ rndc.conf ÆÄÀÏÀÇ server {} ±¸¹® ¶Ç´Â default-server¿¡ ¼³Á¤ÇÑ ¿ø°ÝÀÇ ³×ÀÓ¼¹ö(localhost Æ÷ÇÔ)¿¡ ´ëÇؼ ¾î¶² Á¦¾î ¸ÞÁöÁö¸¦ º¸³¾¶§ ¿ø°ÝÀÇ ³×ÀÓ¼¹ö·Î º¸³»´Â ÀÎÁõ keyÀÔ´Ï´Ù(ÀÎÁõ¼ö´Ü¿¡ »ç¿ë). Á¦¾î ¸Þ½ÃÁö´Â stop, reload, status, .... µîÀÇ rndc ¸í·É¾î ·Î½á start ¸í·É¾î´Â ¾ø½À´Ï´Ù. ±× ´ë»óÀÌ µÇ´Â ¿ø°Ý ³×ÀÓ¼¹öÀÇ named.conf ÆÄÀÏ¿¡¼µµ ¶È°°Àº key°¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù(rndc ¿äû key¿Í ¿ø°ÝÀÇ ³×ÀÓ¼¹ö key°¡ °°¾Æ¾ß ÇÔ) Âü°í·Î, ±× ´ë»óÀÌ µÇ´Â ¿ø°ÝÀÇ ³×ÀÓ¼¹ö´Â rndc.conf ÆÄÀÏÀÇ server {} ±¸¹® À¸·Î ¼³Á¤Çϰųª rndcÀÇ -s ¿É¼ÇÀ¸·Î ÁöÁ¤ÇÕ´Ï´Ù. named.conf : ÀÌ ÆÄÀÏ¿¡¼ ¼³Á¤ÇÑ key´Â localhostÀÇ named(³×ÀÓ¼¹ö)°¡ »ç¿ëÇϸç, ÀÌ key·Î ¿ø°ÝÀÇ ´Ù¸¥ ³×ÀÓ¼¹ö¿¡ ÀÎÁõÀ» ¿äûÇϰųª, ¿äûÀ» ¹ÞÀ» ¶§ »ç¿ëÇÏ´Â keyÀÔ´Ï´Ù. 1)ÀÎÁõÀ» ¿äûÇÒ ¶§ : 'ÀÎÁõÀ» ¿äûÇÒ ¶§'ÀÇ °æ¿ì´Â ¿¹¸¦ µé¿©, localhost°¡ 2Â÷ ³×ÀÓ¼¹ö·Î½á 1Â÷ ³×ÀÓ¼¹öÀÇ zone µ¥ÀÌÅͺ£À̽º¸¦ ¹é¾÷ÇÒ ¶§ ÀÌ key·Î ÀÎÁõ ¿äûÇÒ °æ¿ì¸¦ ÀǹÌÇÕ´Ï´Ù(±× ¿Ü¿¡ ¾î¶² query Àü¼ÛÇÒ ¶§µµ ¿äû¿¡ ¼ÓÇÔ) ¼³Á¤Àº server {} ±¸¹®À» »ç¿ëÇÏ¿© ¿äûÇÒ ¿ø°ÝÀÇ ³×ÀÓ¼¹ö ÁÖ¼Ò¸¦ ¼³Á¤ÇÕ´Ï´Ù. ¿¹) key "key_name" { ...; }; server NS1_ip_addr { // 1Â÷ ³×ÀÓ¼¹ö IP ÁÖ¼Ò, "¿Í "·Î ¹Áö ¾ÊÀ½ ...; keys { "key_name"; }; // NS1_ip_addr·Î ³ª°¡´Â ¸ðµç ¿äûÀº key·Î ÀÎÁõ // ¶Ç´Â keys "key_name"; }; ±×·¯³ª, ¹Ýµå½Ã ²À ÀÌ key·Î ÀÎÁõÇÏ¿© zone µ¥ÀÌÅͺ£À̽º¸¦ ¹é¾÷ÇÏÁö´Â ¾Ê½À´Ï´Ù. Áï key°¡ ¾Æ´Ñ È£½ºÆ®, ¶Ç´Â IPÁּҷεµ ¾ó¸¶µçÁö ÀÎÁõÇÏ¿© zone µ¥ÀÌÅͺ£À̽º¸¦ ¹é¾÷ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·± ¹æ¹ýÀ» »ç¿ëÇÒ °æ¿ìÀÇ ¼³Á¤Àº 2Â÷ ³×ÀÓ¼¹öÀÇ named.conf ÆÄÀÏ¿¡´Â key {} ±¸¹®À̳ª server {} ±¸¹®Àº ÇÊ¿ä¾øÀ¸¸ç, 1Â÷ ³×ÀÓ¼¹öÀÇ options {} ±¸¹®À̳ª °¢ zone {} ±¸¹®¿¡¼ 'allow-transfer { 2Â÷³×ÀÓ¼¹ö_IPÁÖ¼Ò; };' À¸·Î ¼³Á¤ÇÏ¸é ±×¸¸ÀÔ´Ï´Ù. 2)ÀÎÁõÀ» ¿äû¹ÞÀ» ¶§ : 'ÀÎÁõÀ» ¿äû¹ÞÀ» ¶§'ÀÇ °æ¿ì´Â ÁÖ·Î ¿ø°Ý(localhostÆ÷ÇÔ)ÀÇ rndc³ª ¿ø°ÝÀÇ ³×ÀÓ¼¹ö ¶Ç´Â ¿ø°Ý(localhost)ÀÇ nsupdateÀ¸·Î ºÎÅÍ key¸¦ ÀÌ¿ëÇÑ ÀÎÁõ ¿äûÀ» ¹ÞÀº °æ¿ì¸¦ ÀǹÌÇÕ´Ï´Ù. - ¿ø°Ý(localhostÆ÷ÇÔ)ÀÇ rndc ¿äû : rndc stop, rndc status, .... - ¿ø°ÝÀÇ ³×ÀÓ¼¹ö ¿äû : zone µ¥ÀÌÅͺ£À̽º¸¦ ¹é¾÷ÇØ °¥¶§, ±âŸ query - ¿ø°Ý(localhostÆ÷ÇÔ)ÀÇ nsupdate ¿äû : zone µ¥ÀÌÅͺ£À̽º¸¦ µ¿ÀûÀ¸·Î °»½ÅÇÒ ¶§ À̶§ÀÇ °æ¿ì´Â server {} ±¸¹®Àº »ç¿ëµÇÁö ¾ÊÀ¸¸ç(¼³Á¤µÇ¾î Àְųª ¾ø°Å³ª »ó°ü¾øÀ½), key {} ±¸¹®°ú controls {} ±¸¹® ¼³Á¤ÀÌ ÇÊ¿äÇÕ´Ï´Ù. ¿¹) key "key_name" { ...; }; controls { // ÀÎÁõ ¿äûÀ» ¹ÞÀº ³×ÀÓ¼¹ö¿¡¼ ÀÎÁõ ¿äû¿¡ ´ëÇÑ ¾î¶² control inet 127.0.0.1 allow { localhost; "¿äûÀ» Çã¶ôÇÒ È£½ºÆ®"; } keys { "key_name"; }; }; // 127.0.0.1ÀÇ 953¹ø Æ÷Æ®¹øÈ£ »ç¿ë ¸¸¾à localhostÀÇ rndc³ª ¿ø°ÝÀÇ rndc ¶Ç´Â ¿ø°ÝÀÇ ³×ÀÓ¼¹ö ¶Ç´Â ¿ø°ÝÀÇ nsupdate·ÎºÎÅÍ key¸¦ ÀÌ¿ëÇÑ ¾Æ¹«·± ÀÎÁõÀ» ¿äû¹ÞÁö ¾ÊÀ» °æ¿ì¿¡´Â key {} ±¸¹®°ú controls {} ±¸¹®Àº ÇÊ¿ä¾ø½À´Ï´Ù. ±×·¯³ª RPMÀ¸·Î ÆÐÅ°ÁöµÈ BIND9ÀÇ /etc/rc.d/init.d/named Á¦¾î ½ºÅ©¸³Æ®´Â ÃÖ¼ÒÇÑ localhost¿¡¼ rndcÀÇ key¸¦ ÀÌ¿ëÇÑ ¿äû(rndc stop, rndc status, ... µîµî)À» ¹Þ¾Æ named¸¦ Á¾·áÇϱ⠶§¹®¿¡ key {} ±¸¹® ¼³Á¤°ú controls {} ±¸¹®ÀÌ ÇÊ¿äÇÕ´Ï´Ù. (¸¸¾à ÀÚ½ÅÀÌ Á÷Á¢ Á¦¾î½ºÅ©¸³Æ®¸¦ ¸¸µé¾î key ¾øÀÌ named¸¦ Á¾·áÇÒ ¼öµµ ÀÖÀ½) key¸¦ ¸¸µå´Â ¹æ¹ý : # dnssec-keygen -a HMAC-MD5 -b 512 -n HOST key_name Á¤¸® : ÀÌ keyÀÇ »ç¿ë ¸ñÀûÀº localhostÀÇ rndc, named°¡ ¿ø°ÝÀÇ ³×ÀÓ¼¹ö¿¡ Á¢¼ÓÇÏ¿© ¾î¶² Çൿ(named Á¦¾î, zone µ¥ÀÌÅͺ£À̽ºÀÇ µ¿ÀûÀÎ °»½Å, ±âŸ query)À» ÃëÇÒ¶§ »ç¿ëµÇ´Â ÀÎÁõ ¹æ¹ý ÁßÀÇ Çϳª·Î½á localhost¿Í ¿ø°ÝÀÇ ³×ÀÓ¼¹ö¿¡ µ¿ÀÏÇÑ key¸¦ °¡Áö°í ÀÖ¾î¾ß ÇÕ´Ï´Ù. Âü°í·Î nsupdate °°Àº °æ¿ì rndc.conf ¶Ç´Â named.conf ÆÄÀÏ¿¡ ¼³Á¤ÇÑ key¸¦ Á÷Á¢ÀûÀ¸·Î ÀÌ¿ëÇÏÁö ¾Ê°í dnssec-keygenÀ¸·Î ¸¸µç ÆÄÀÏÀÇ key¸¦ ÀÌ¿ëÇÕ´Ï´Ù. 2. rndc.conf ÆÄÀÏ°ú named.conf ÆÄÀÏ¿¡¼ server {} ±¸¹®ÀÇ key ¼³Á¤ÀÌ ´Ù¸¥°¡¿ä? rndc.conf ÆÄÀÏÀÇ server {} ±¸¹®Àº named.conf ÆÄÀÏÀÇ server {} ±¸¹®°ú ¾à°£ »ç¿ë¹ýÀÌ ´Ù¸¨´Ï´Ù. rndc.conf ÆÄÀÏÀÇ ¼³Á¤ ¹®¹ýÀº named.conf ÆÄÀÏ ¼³Á¤ ¹®¹ý°ú ºñ½ÁÇÏÁö¸¸ ÀüÀûÀ¸·Î °°Áö ¾Ê½À´Ï´Ù. ¿¹¸¦ µé¸é, rndc.conf ÆÄÀÏ¿¡¼ include ±¸¹®Àº »ç¿ëÇÏ¸é ¿¡·¯¸¦ ³½ °æ¿ì°¡ ±× ÀÏ·ÊÀÔ´Ï´Ù. rndc.conf ÆÄÀÏ ¼³Á¤ ¹®¹ýÀº 'man rndc.conf'¿¡¼ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. rndc.conf : server remote_NS_ip_addr_or_host { // IP ÁÖ¼Ò·Î ¼³Á¤ÇÒ ¶§´Â "¿Í "·Î ¹¾îÁÜ key "key_name"; /*** keys°¡ ¾Æ´Ï¶ó key ÀÓ ***/ }; ÀÌ server {} ±¸¹®Àº localhostÀÇ rndc°¡ ¼³Á¤ÇÑ ¿ø°ÝÀÇ ³×ÀÓ¼¹ö(localhostÆ÷ÇÔ) ¿¡ "key_name" key·Î ÀÎÁõÇÏ¿© rndc stop, rndc reloadµî°ú °°Àº ¸í·É¾î¸¦ »ç¿ëÇÏ°Ú´Ù ´Â ÀǹÌÀÔ´Ï´Ù. key¸¦ »ç¿ëÇÏ´Â ÁÖü´Â locahostÀÇ rndcÀÔ´Ï´Ù. named.conf : server ip_addr { // host nameÀÌ ¾Æ´Ñ IP ÁÖ¼Ò·Î "¿Í "¾øÀÌ ¼³Á¤ÇØ¾ß ÇÔ keys { "key_name"; }; /*** ÀÌ ¶§´Â key°¡ ¾Æ´Ï¶ó keys ÀÓ ***/ // keys "key_name"; /*** À̰͵µ °¡´É ***/ }; ÀÌ server {} ±¸¹®Àº localhostÀÇ ³×ÀÓ¼¹ö°¡ ¿ø°ÝÀÇ ip_addrÀ¸·Î ¼³Á¤ÇÑ ³×ÀÓ¼¹ö¿¡ ´ëÇؼ "key_name" key·Î ÀÎÁõÇÏ°Ú´Ù´Â ÀǹÌÀÔ´Ï´Ù. Áï, ÀÌ ¼³Á¤Àº ÁÖ·Î localhostÀÇ 2Â÷ ³×ÀÓ¼¹ö°¡ ¿ø°ÝÀÇ ip_addrÀ¸·Î ¼³Á¤ÇÑ 1Â÷ ³×ÀÓ¼¹ö¿¡ ÀÌ key·Î ÀÎÁõÇÏ¿©, zone µ¥ÀÌÅͺ£À̽º¸¦ ¹é¾÷ÇÒ ¶§¿¡ 2Â÷ ³×ÀÓ¼¹ö¿¡ ¼³Á¤ÇÏ´Â ³»¿ëÀÔ´Ï´Ù. key·Î ÀÎÁõÇÏ¿© zone µ¥ÀÌÅͺ£À̽º¸¦ ¹é¾÷(µ¿±âÈ)ÇÏ´Â ¹æ¹ýÀº Ã¥ p.409 [ÆÁ]¶õ¿¡ ÀÖ½À´Ï´Ù. key¸¦ »ç¿ëÇÏ´Â ÁÖü´Â locahostÀÇ ³×ÀÓ¼¹ö(ÁÖ·Î 2Â÷ ³×ÀÓ¼¹ö)ÀÔ´Ï´Ù. named.conf ÆÄÀÏ¿¡¼ »ç¿ëµÇ´Â server {} ±¸¹® »ç¿ë¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù. server ip_addr { [ bogus yes_or_no ; ] [ provide-ixfr yes_or_no ; ] [ request-ixfr yes_or_no ; ] [ edns yes_or_no ; ] [ transfers number ; ] [ transfer-format ( one-answer | many-answers ) ; ]] [ keys { string ; [ string ; [...]] } ; ] }; server {} ±¸¹®ÀÇ ¿ëµµ : server {} ±¸¹®Àº localhostÀÇ rndc ¶Ç´Â named°¡ ¿ø°ÝÀÇ ³×ÀÓ¼¹ö¿¡°Ô ¾î¶² ¿äûÀ» ÇÒ¶§ »ç¿ëµÇ´Â ±¸¹®ÀÔ´Ï´Ù. - ¿ø°Ý(localhostÆ÷ÇÔ)ÀÇ rndc ¿äû : rndc stop, rndc status, .... - ¿ø°ÝÀÇ ³×ÀÓ¼¹ö ¿äû : zone µ¥ÀÌÅͺ£À̽º¸¦ ¹é¾÷ÇØ °¥¶§, ±âŸ query *ÁÖ) Ã¥¿¡¼´Â rndc.conf ÆÄÀÏÀÇ key ¼³¸íÀÌ À߸øµÇ¾î ÀÖÀ¸¹Ç·Î ¾Æ·¡ URLÀÇ Á¤¿À¸¦ È®ÀÎÇϱ⠹ٶø´Ï´Ù. http://linuxchannel.net/books/bookmisp/bookmisp-dns-key.txt 3. rndc¿Í nsupdate´Â ¾î¶»°Ô ´Ù¸¥°¡¿ä? ¸ðµÎ »ç¿ëÇØ¾ß ¸¸ Çϳª¿ä? rndc : rndc´Â 'the Remote Name Daemon Control'·Î½á ¿ø°Ý ³×ÀÓ¼¹ö¸¦ Á¦¾îÇÏ´Â °ü¸®ÀÚ¿ë À¯Æ¿¸®Æ¼ ÀÔ´Ï´Ù. Áï ¿ø°Ý(localhostÆ÷ÇÔ)ÀÇ ³×ÀÓ¼¹ö¸¦ reload Çϰųª refresh, stop, flush, status µîµîÀÇ ¸í·É¾î ¸Þ½ÃÁö¸¦ º¸³» Á¦¾îÇÏ´Â ÅøÀÔ´Ï´Ù. [»ç¿ë¹ý] rndc [-c config] [-s server] [-p port] [-y key] command [command...] [command] reload reload zone refresh zone reconfig stats querylog dumpdb stop halt trace trace level notrace flush status -c ¿É¼ÇÀÌ ¾ø´Ù¸é /etc/rndc.conf ÆÄÀÏÀÇ ³»¿ëÀÌ Àû¿ëµÇ¸ç, ±âº»ÀûÀ¸·Î key¸¦ »ç¿ëÇÕ´Ï´Ù. RPMÀ¸·Î ÆÐÅ°ÁöµÈ BIND9ÀÇ /etc/rc.d/init.d/named Á¦¾î ½ºÅ©¸³Æ®´Â localhost¿¡¼ rndcÀÇ key¸¦ ÀÌ¿ëÇÏ¿© localhost ÀÚ½ÅÀÇ named¸¦ Á¾·áÇϱ⠶§¹®¿¡ ÃÖ¼ÒÇÑ ´ÙÀ½°ú °°Àº ¼³Á¤ÀÌ ÇÊ¿äÇÕ´Ï´Ù. ¿¹) localhostÀÇ rndc.conf ÆÄÀÏ : key rndc_key { algorithm "hmac-md5"; secret "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K"; }; options { default-server localhost; default-key rndc_key; }; ¿¹) localhost named.conf ÆÄÀÏ : key rndc_key { algorithm "hmac-md5"; secret "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K"; }; controls { // 127.0.0.1ÀÇ 953¹ø Æ÷Æ® »ç¿ë inet 127.0.0.1 allow { localhost; } keys { rndc_key; }; }; ¿¹) ¿ø°ÝÀÇ ³×ÀÓ¼¹ö named.conf ÆÄÀÏ : key rndc_key { algorithm "hmac-md5"; secret "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K"; }; controls { // 127.0.0.1ÀÇ 953¹ø Æ÷Æ® »ç¿ë inet 127.0.0.1 allow { localhost; Çã¶ôÇÒ_È£½ºÆ®;} keys { rndc_key; }; }; ÀÌ¿Í °°Àº ¼³Á¤ÀÌ µÇ¾î ÀÖ´Ù¸é, # rndc reload # rndc staus # rndc stop ¿Í °°Àº ¸í·ÉÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸¸¾à rndc¸¦ ÀÌ¿ëÇÏÁö ¾Ê°í named ½ÃÀÛ, Á¾·áÇÒ ¼ö ÀÖ´Ù¸é(¾ó¸¶µçÁö °¡´ÉÇÔ) key ¼³Á¤Àº ¹Ýµå½Ã ÇÊ¿äÇÏÁö´Â ¾Ê½À´Ï´Ù. ÀÌ key´Â Á¦¾î ¸Þ½ÃÁö(¸í·É¾î)¸¦ º¸³»¾î named¸¦ Á¦¾îÇÒ ÀÎÁõ¿¡ °üÇÑ ÇÑ°¡Áö ¹æ¹ýÀÔ´Ï´Ù. µû¶ó¼ ¹Ýµå½Ã ²À »ç¿ëÇؾ߸¸ ÇÏ´Â ¾î¶² ±ÔÄ¢Àº ¾øÁö¸¸ RPMÀ¸·Î ÆÐÅ°ÁöµÈ BIND´Â ±âº»Àû À¸·Î »ç¿ëÇϵµ·Ï ÆÐŰ¡µÇ¾î ÀÖÀ» »ÓÀÔ´Ï´Ù. nsupdae : nsupdate´Â localhost³ª ¿ø°ÝÀÇ ³×ÀÓ¼¹öÀÇ zone µ¥ÀÌÅͺ£À̽º¸¦ µ¿ÀûÀ¸·Î °»½ÅÇÏ°íÀÚ ÇÒ ¶§ »ç¿ëÇÏ´Â °ü¸®ÀÚ¿ë À¯Æ¿¸®Æ¼ÀÔ´Ï´Ù. 1)key ¾øÀÌ µ¿ÀûÀ¸·Î ¿ø°ÝÀÇ zone µ¥ÀÌÅͺ£À̽º¸¦ °»½ÅÇÒ ¶§ : ¿ø°ÝÀÇ ³×ÀÓ¼¹öÀÇ named.conf ÆÄÀÏÀº ÃÖ¼ÒÇÑ ´ÙÀ½°ú °°Àº ¼³Á¤ÀÌ ÇÊ¿äÇÕ´Ï´Ù. ¿¹) ¿ø°ÝÀÇ named.conf ÆÄÀÏ : zone aaa.co.kr { ...; allow-update { µ¿ÀûÀ¸·Î_°»½Å°¡´ÉÇÑ_È£½ºÆ®µé; }; }; 'µ¿ÀûÀ¸·Î_°»½Å°¡´ÉÇÑ_È£½ºÆ®µé' ºÎºÐ¿¡´Â nsupdate ¸í·ÉÀ» º¸³»´Â È£½ºÆ® IP ÁÖ¼Ò³ª È£½ºÆ® À̸§À» Àû¾îÁÖ¸é µË´Ï´Ù. ¿¹) nsupdate »ç¿ë ¿¹(´ëȽÄ) : # nsupdate > server 123.123.123.123 /*** ¿ø°ÝÀÇ ³×ÀÓ¼¹ö IP ¶Ç´Â È£½ºÆ® À̸§ ***/ > zone aaa.co.kr. /*** ¾÷µ¥ÀÌÆ®ÇÒ zone ÁöÁ¤ ***/ > prereq nxdomain w3.aaa.co.kr. /*** ÇöÀç È£½ºÆ®(w3)°¡ ¾øÀ½À» Á¶°ÇÀ¸·Î ¾Ë¸² ***/ > update add w3.aaa.co.kr. 86400 CNAME www.aaa.co.kr. /*** w3 È£½ºÆ® Ãß°¡ ***/ > show /*** ÇöÀç±îÁö »ç¿ëÇÑ ¸í·É¾î º¸±â ***/ > send /*** ¸í·É¾î¸¦ 123.123.123.123¿¡°Ô Àü¼ÛÇÔ ***/ > quit /*** Á¾·áÇÔ ***/ ±âŸ ÀÚ¼¼ÇÑ ¸í·É¾î´Â Ã¥ p.458¿¡ ¼³¸íµÇ¾î ÀÖÀ¸¹Ç·Î Âü°íÇϵµ·Ï Çϼ¼¿ä. (¶Ç´Â man nsupdate) ¿¹) nsupdate »ç¿ë ¿¹(ºñ´ëȽÄ) : # cat nsupdate-aaa.co.kr.cmd /*** ÆÄÀÏÀ» Á÷Á¢ ÀÛ¼ºÇÔ ***/ server 123.123.123.123 zone aaa.co.kr. prereq nxdomain w3.aaa.co.kr. update add w3.aaa.co.kr. 86400 CNAME www.aaa.co.kr. show send quit # # nsupdate nsupdate-aaa.co.kr.com 2)key¸¦ »ç¿ëÇÏ¿© µ¿ÀûÀ¸·Î ¿ø°ÝÀÇ zone µ¥ÀÌÅͺ£À̽º¸¦ °»½ÅÇÒ ¶§ : ¿ì¼± localhostÀÇ nsupdate°¡ »ç¿ëÇÒ key¸¦ ¸¸µé°í ÀÌ key¸¦ ¿ø°ÝÀÇ named.conf ÆÄÀÏ¿¡ ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù. ¿¹Á¦¿¡¼´Â key À̸§À» 'mykey'·Î °¡Á¤ÇÔ. # dnssec-keygen -a HMAC-MD5 -b 512 -n HOST mykey # # ls Kmykey.+157+46093.key /*** ¸Å¹ø ÆÄÀÏ À̸§ÀÌ ´Ù¸§ ***/ Kmykey.+157+46093.private xxx.privateÀ» ¿¾î¼ key ºÎºÐÀ» ¿ø°ÝÀÇ ³×ÀÓ¼¹ö¿¡ ´ÙÀ½°ú °°ÀÌ ¼³Á¤ÇÕ´Ï´Ù. ¿¹) ¿ø°ÝÀÇ named.conf ÆÄÀÏ : key mykey { algorithm "hmac-md5"; secret "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K"; }; controls { // 127.0.0.1ÀÇ 953¹ø Æ÷Æ® »ç¿ë inet 127.0.0.1 allow { localhost; Çã¶ôÇÒ_È£½ºÆ®;} keys { mykey; }; }; zone aaa.co.kr { ...; allow-update { key "mykey"; }; /*** keys°¡ ¾Æ´Ï¶ó key ***/ }; ¿¹) nsupdate »ç¿ë ¿¹ : # ls /*** ´ÙÀ½ µÎ°³ÀÇ ÆÄÀÏ ¸ðµÎ ÀÖ¾î¾ß ÇÔ ***/ Kmykey.+157+46093.key Kmykey.+157+46093.private # # nsupdate -k Kmykey.+157+46093.private > nsupdate ³ª¸ÓÁö nsupdate ¸í·É¾î´Â 1)¹ø°ú µ¿ÀÏÇϹǷΠ»ý·«ÇÕ´Ï´Ù. Á¦´ë·Î ¾÷µ¥ÀÌÆ®µÇ¾ú´ÂÁö È®ÀÎÇÏ´Â ¹æ¹ýÀº nslookup, dig, host·Î Á÷Á¢ È®ÀÎÇØ º¸¼¼¿ä. ¿ø°ÝÀÇ ³×ÀÓ¼¹ö¿¡¼´Â Àӽ÷Πzone-file.jnl ÆÄÀÏÀ» ¸¸µé¸ç ¸î ºÐÀÌ Áö³ª¸é ÀÚµ¿ÀûÀ¸·Î zone-file(µ¥ÀÌÅͺ£À̽º ÆÄÀÏ)ÀÌ °»½ÅÇϱ⠶§¹®¿¡ ´Ù¸¥ Á¶Ä¡¸¦ ÃëÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. *ÁÖÀÇÇÒ Á¡) ¿ø°ÝÀÇ ³×ÀÓ¼¹öÀÇ zone µ¥ÀÌÅͺ£À̽º µð·ºÅ丮¿Í ÇØ´ç zone µ¥ÀÌÅͺ£À̽º ÆÄÀÏÀº namedÀÇ À¯Àú(¿¹:named, ps -ef | grep named·Î È®ÀÎ)¿¡°Ô ¾²±â ±ÇÇÑ(Æ۹̼Ç)ÀÌ ÀÖ¾î¾ß ÇÕ´Ï´Ù. ±×·¡¾ß ¾÷µ¥ÀÌÆ®µÇ±â ¶§¹®¿¡... *Âü°í·Î) 2Â÷ ³×ÀÓ¼¹ö´Â 1Â÷ ³×ÀÓ¼¹ö¿¡ ½Ç½Ã°£À¸·Î Á¢¼ÓÇÏ¿© zone µ¥ÀÌÅͺ£À̽º¸¦ ¹é¾÷ÇÏ¿© ÀÚ½Å(2Â÷ ³×ÀÓ¼¹ö)ÀÇ zone µ¥ÀÌÅͺ£À̽º¸¦ °»½ÅÇؾßÇϱ⠶§¹®¿¡ allow-update { none; } ¿Í °°Àº ±¸¹®À» ¼³Á¤ÇÏ¸é ¾ÈµË´Ï´Ù. Á¤¸® : - rndc : localhost³ª ¿ø°ÝÀÇ ³×ÀÓ¼¹ö¿¡ stop, reload, staus µîÀÇ Á¦¾î ¸Þ½ÃÁö¸¦ º¸³¾¶§ - nsupdate : localhost³ª ¿ø°ÝÀÇ ³×ÀÓ¼¹öÀÇ zone µ¥ÀÌÅͺ£À̽º¸¦ µ¿ÀûÀ¸·Î °»½ÅÇÏ°íÀÚ ÇÒ ¶§ µû¶ó¼ ³×ÀÓ¼¹ö¸¦ ¿î¿µÇÒ ¶§ ¹Ýµå½Ã ÀÌ µÎ°³ÀÇ À¯Æ¿¸®Æ¼´Â ÇÊ¿äÇÏÁö´Â ¾ÊÁö¸¸ rndc¸¦ ÀÌ¿ëÇÏ¿© localhostÀÇ named¸¦ Á¦¾îÇÒ »ÓÀÔ´Ï´Ù. 4. rndc.conf, named.conf ÆÄÀÏ¿¡¼ key ºÎºÐ ¼³Á¤ ±¸ºÐ Á¤¸® address_match_list = address_match_list_element ; [ address_match_list_element; ... ] address_match_list_element = [ ! ] (ip_address [/length] | key key_id | acl_name | { address_match_list } ) *ÁÖ) ´ÙÀ½ Ç¥¿¡¼ address_match_list·Î ¼³Á¤°¡´ÉÇÑ ±¸¹®¿¡¼ key·Î ¼³Á¤ÇÒ °æ¿ì, keys "key_name"ÀÌ ¾Æ´Ï¶ó key "key_name"ÀÔ´Ï´Ù.
named.conf | rndc.conf |
key "key_name" { ...; }; or include "/etc/rndc.conf"; º¸Åë include "/etc/rndc.conf";·Î ¼³Á¤µÇ¾î ÀÖÀ½. |
key "key_name" {} ±¸¹®Àº named.conf¿Í µ¿ÀÏÇÏÁö¸¸ include ±¸¹®À» »ç¿ëÇÒ ¼ö ¾ø±â ¶§¹®¿¡ Á÷Á¢ ±¸¹®À» ¼³Á¤ÇØ¾ß ÇÔ. |
server ip_addr { ...; keys { "key_name"; }; // keys "key_name"; // À̰͵µ °¡´É };
*ÁÖ) |
server ip_addr_or_host_name { key "key_name"; };
*ÁÖ) |
acl acl-name { address_match_list }; | - |
controls { inet ( ip_addr | * ) [ port ip_port ] allow { address_match_list } keys { key_list }; [ inet ...; ] }; *ÁÖ) key_list¿¡ "key_name"Çϳª ¶Ç´Â ';'·Î ±¸ºÐÇÏ¿© ¿©·¯°³ ¼³Á¤ÇÔ. | - |
allow-notify { address_match_list }; allow-query { address_match_list }; allow-transfer { address_match_list }; allow-recursion { address_match_list }; allow-v6-synthesis { address_match_list }; blackhole { address_match_list }; listen-on { address_match_list }; listen-on-v6 { address_match_list }; *ÁÖ) options {} ±¸¹®ÀÇ sub ±¸¹®¿¡ ¸ðµÎ ¼ÓÇÔ. | - |
allow-notify { address_match_list }; allow-query { address_match_list }; allow-transfer { address_match_list }; allow-update { address_match_list }; update-policy { update_policy_rule [...] }; allow-update-forwarding { address_match_list }; masters { ip_addr [key "key_name"]; [...] }; *ÁÖ) zone {} ±¸¹®ÀÇ sub ±¸¹®¿¡ ¸ðµÎ ¼ÓÇÔ. | - |
match-clients { address_match_list }; match-destinations { address_match_list }; *ÁÖ) view {} ±¸¹®ÀÇ sub ±¸¹®¿¡ ¸ðµÎ ¼ÓÇÔ. | - |