ISC ์ปจ์†Œ์‹œ์—„์—์„œ ๊ฐœ๋ฐœํ•œ DHCP ์„œ๋ฒ„ Kea 1.6์ด ๊ณต๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ISC ์ปจ์†Œ์‹œ์—„ ์ถœํŒ DHCP ์„œ๋ฒ„ ๋ฆด๋ฆฌ์Šค ์ผ€์•„ 1.6.0, ๊ธฐ์กด ISC DHCP๋ฅผ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์†Œ์Šค ํ™•์‚ฐ ๋ผ์ด์„ผ์Šค ํ•˜์— ๋ชจ์งˆ๋ผ ๊ณต๊ฐœ ๋ผ์ด์„ ์Šค(MPL) 2.0, ์ด์ „์— ISC DHCP์— ์‚ฌ์šฉ๋œ ISC ๋ผ์ด์„ผ์Šค ๋Œ€์‹ .

Kea DHCP ์„œ๋ฒ„๋Š” BIND 10์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ ์— ์˜ํ•ด ์ง€์–ด์ง€๋Š” ๊ธฐ๋Šฅ์„ ์„œ๋กœ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์„œ ํ”„๋กœ์„ธ์Šค๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๋Š” ๋ชจ๋“ˆ์‹ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์ œํ’ˆ์—๋Š” ISC DHCP๋ฅผ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋Š” DHCPv4 ๋ฐ DHCPv6 ํ”„๋กœํ† ์ฝœ์„ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ์„œ๋ฒ„ ๊ตฌํ˜„์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Kea์—๋Š” DNS ์˜์—ญ(๋™์  DNS)์„ ๋™์ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ์œผ๋ฉฐ ์„œ๋ฒ„ ๊ฒ€์ƒ‰, ์ฃผ์†Œ ํ• ๋‹น, ์—…๋ฐ์ดํŠธ ๋ฐ ์žฌ์—ฐ๊ฒฐ, ์ •๋ณด ์š”์ฒญ ์„œ๋น„์Šค, ํ˜ธ์ŠคํŠธ ์ฃผ์†Œ ์˜ˆ์•ฝ ๋ฐ PXE ๋ถ€ํŒ…์„ ์œ„ํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. DHCPv6 ๊ตฌํ˜„์€ ์ถ”๊ฐ€๋กœ ์ ‘๋‘์‚ฌ๋ฅผ ์œ„์ž„ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํŠน์ˆ˜ API๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ณ ๋„ ๊ตฌ์„ฑ์„ ์ฆ‰์‹œ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ• ๋‹น๋œ ์ฃผ์†Œ ๋ฐ ํด๋ผ์ด์–ธํŠธ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ •๋ณด๋Š” ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ์ €์žฅ์†Œ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ๋ฐฑ์—”๋“œ๋Š” CSV ํŒŒ์ผ, MySQL DBMS, Apache Cassandra ๋ฐ PostgreSQL์— ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ ์˜ˆ์•ฝ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” JSON ํ˜•์‹์˜ ๊ตฌ์„ฑ ํŒŒ์ผ์ด๋‚˜ MySQL ๋ฐ PostgreSQL์˜ ํ…Œ์ด๋ธ”๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” DHCP ์„œ๋ฒ„ ์„ฑ๋Šฅ์„ ์ธก์ •ํ•˜๊ธฐ ์œ„ํ•œ perfdhcp ๋„๊ตฌ์™€ ํ†ต๊ณ„ ์ˆ˜์ง‘์„ ์œ„ํ•œ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Kea๋Š” ์ข‹์€ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด MySQL ๋ฐฑ์—”๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์„œ๋ฒ„๋Š” ์ดˆ๋‹น 1000๊ฐœ์˜ ์ฃผ์†Œ ํ• ๋‹น(์ดˆ๋‹น ์•ฝ 4000ํŒจํ‚ท)์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ณ , memfile ๋ฐฑ์—”๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์„ฑ๋Šฅ์ด ์ดˆ๋‹น 7500๊ฐœ์˜ ํ• ๋‹น์— ๋„๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

ISC ์ปจ์†Œ์‹œ์—„์—์„œ ๊ฐœ๋ฐœํ•œ DHCP ์„œ๋ฒ„ Kea 1.6์ด ๊ณต๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์—ด์‡  ๊ฐœ๋Ÿ‰ Kea 1.6์—์„œ:

  • ๊ตฌ์„ฑ ๋ฐฑ์—”๋“œ(CB, Configuration Backend)๊ฐ€ ๊ตฌํ˜„๋˜์–ด ์—ฌ๋Ÿฌ DHCPv4 ๋ฐ DHCPv6 ์„œ๋ฒ„์˜ ์„ค์ •์„ ์ค‘์•™์—์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ๋Š” ์ „์—ญ ์„ค์ •, ๊ณต์œ  ๋„คํŠธ์›Œํฌ, ์„œ๋ธŒ๋„ท, ์˜ต์…˜, ํ’€ ๋ฐ ์˜ต์…˜ ์ •์˜๋ฅผ ํฌํ•จํ•œ ๋Œ€๋ถ€๋ถ„์˜ Kea ์„ค์ •์„ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ชจ๋“  ์„ค์ •์„ ๋กœ์ปฌ ๊ตฌ์„ฑ ํŒŒ์ผ์— ์ €์žฅํ•˜๋Š” ๋Œ€์‹  ์ด์ œ ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ CB๋ฅผ ํ†ตํ•ด ์ „๋ถ€๋Š” ์•„๋‹ˆ์ง€๋งŒ ์ผ๋ถ€ ์„ค์ •์„ ๊ฒฐ์ •ํ•˜๊ณ  ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ๋กœ์ปฌ ๊ตฌ์„ฑ ํŒŒ์ผ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์˜ค๋ฒ„๋ ˆ์ดํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ์„ค์ •์„ ๋กœ์ปฌ ํŒŒ์ผ์— ๋‚จ๊ฒจ๋‘˜ ์ˆ˜ ์žˆ์Œ).

    ๊ตฌ์„ฑ์„ ์ €์žฅํ•˜๋Š” DBMS ์ค‘ ํ˜„์žฌ MySQL๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค(MySQL, PostgreSQL ๋ฐ Cassandra๋Š” ์ฃผ์†Œ ํ• ๋‹น ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(์ž„๋Œ€)๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ MySQL ๋ฐ PostgreSQL์€ ํ˜ธ์ŠคํŠธ ์˜ˆ์•ฝ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค). ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์„ฑ์€ DBMS์— ๋Œ€ํ•œ ์ง์ ‘ ์•ก์„ธ์Šค๋ฅผ ํ†ตํ•ด ๋˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜, ๋ฐ”์ธ๋”ฉ, DHCP ์˜ต์…˜ ๋ฐ ์„œ๋ธŒ๋„ท ์ถ”๊ฐ€ ๋ฐ ์‚ญ์ œ์™€ ๊ฐ™์€ ๊ตฌ์„ฑ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ํ‘œ์ค€ ๋ช…๋ น ์„ธํŠธ๋ฅผ ์ œ๊ณตํ•˜๋Š” ํŠน๋ณ„ํžˆ ์ค€๋น„๋œ ๊ณ„์ธต ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํŠน์ • ์œ ํ˜•์˜ DHCP ๋ฉ”์‹œ์ง€์™€ ๊ฐ™์€ ์›์น˜ ์•Š๋Š” ํŠธ๋ž˜ํ”ฝ์„ ์‚ญ์ œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด "DROP" ์ฒ˜๋ฆฌ๊ธฐ ํด๋ž˜์Šค๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(DROP ํด๋ž˜์Šค์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ํŒจํ‚ท์€ ์ฆ‰์‹œ ์‚ญ์ œ๋จ).
  • ์ƒˆ๋กœ์šด ๋งค๊ฐœ๋ณ€์ˆ˜ max-lease-time ๋ฐ min-lease-time์ด ์ถ”๊ฐ€๋˜์–ด ํ•˜๋“œ ์ฝ”๋”ฉ๋œ ๊ฐ’์˜ ํ˜•ํƒœ๊ฐ€ ์•„๋‹Œ ํด๋ผ์ด์–ธํŠธ(์ž„๋Œ€)์— ๋Œ€ํ•œ ์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ์˜ ์ˆ˜๋ช…์„ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ—ˆ์šฉ ๋ฒ”์œ„;
  • DHCP ํ‘œ์ค€์„ ์™„์ „ํžˆ ์ค€์ˆ˜ํ•˜์ง€ ์•Š๋Š” ์žฅ์น˜์™€์˜ ํ˜ธํ™˜์„ฑ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Kea๋Š” ์ด์ œ ์˜ต์…˜ ๋ชฉ๋ก์˜ ๋งจ ์ฒ˜์Œ์— DHCPv4 ๋ฉ”์‹œ์ง€ ์œ ํ˜• ์ •๋ณด๋ฅผ ๋ณด๋‚ด๊ณ , ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์˜ ๋‹ค์–‘ํ•œ ํ‘œํ˜„์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ๋นˆ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์˜ ์ „์†ก์„ ์ธ์‹ํ•˜๊ณ , ํ•˜์œ„ ์˜ต์…˜ ์ฝ”๋“œ 0~255๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • DDNS ๋ฐ๋ชฌ์„ ์œ„ํ•œ ๋ณ„๋„์˜ ์ œ์–ด ์†Œ์ผ“์ด ์ถ”๊ฐ€๋˜์–ด ์ด๋ฅผ ํ†ตํ•ด ์ง์ ‘ ๋ช…๋ น์„ ๋ณด๋‚ด๊ณ  ๊ตฌ์„ฑ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€์›๋˜๋Š” ๋ช…๋ น์€ build-report, config-get, config-reload, config-set, config-test, config-write, list-commands, shutdown ๋ฐ version-get์ž…๋‹ˆ๋‹ค.
  • ์ œ๊ฑฐ๋จ ์ทจ์•ฝ์  (CVE-2019-6472, CVE-2019-6473, CVE-2019-6474) ์ด๋Š” ์ž˜๋ชป๋œ ์˜ต์…˜๊ณผ ๊ฐ’์ด ํฌํ•จ๋œ ์š”์ฒญ์„ ์ „์†กํ•˜์—ฌ ์„œ๋น„์Šค ๊ฑฐ๋ถ€(DHCPv4 ๋ฐ DHCPv6 ์„œ๋ฒ„ ํ•ธ๋“ค๋Ÿฌ ์ถฉ๋Œ ์œ ๋ฐœ)๋ฅผ ์œ ๋ฐœํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ํฐ ์œ„ํ—˜์€ ๋ฌธ์ œ์ด๋‹ค CVE-2019-6474, ๋ฐ”์ธ๋”ฉ์„ ์œ„ํ•œ memfile ์ €์žฅ์†Œ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž์ฒด์ ์œผ๋กœ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์ž‘์—…์„ ๋ณต์›ํ•˜๋ ค๋ฉด ๊ด€๋ฆฌ์ž์˜ ์ˆ˜๋™ ๊ฐœ์ž…(๋ฐ”์ธ๋”ฉ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •๋ฆฌ)์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€