## ÀÌ ¹®¼´Â "¼¹ö°ü¸®ÀÚ¸¦ À§ÇÑ ¸®´ª½º ³×Æ®¿öÅ©-(Ãâ)º£½ºÆ®ºÏ" Ã¥¿¡ ´ëÇÑ µ¶ÀÚÀÇ ## Áú¹® Áß, ºñ±³Àû ºñÁßÀÌ ÀÖ´Â Áú¹®°ú ´äº¯À» Á¤¸®ÇÏ¿© ¿Å°Ü³õÀº °ÍÀÔ´Ï´Ù. ## ## µ¶ÀÚÀÇ °³ÀÎ Á¤º¸ º¸È£¿Í ½ºÆÔ¸ÞÀÏÀ» ¹æÁöÇϱâ À§Çؼ À̸§°ú ¸ÞÀÏÁÖ¼Ò´Â ## Á¦¿Ü½ÃÄ×½À´Ï´Ù. ## ## Ã¥¿¡ ´ëÇÑ Áú¹®Àº °¡´ÉÇÑ ## 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 ±¸¹®¿¡ ¸ðµÎ ¼ÓÇÔ. | - |