์‹œ๊ฐ„ ๋™๊ธฐํ™”๊ฐ€ ์–ด๋–ป๊ฒŒ ์•ˆ์ „ํ•ด์กŒ๋‚˜์š”?

์‹œ๊ฐ„ ๋™๊ธฐํ™”๊ฐ€ ์–ด๋–ป๊ฒŒ ์•ˆ์ „ํ•ด์กŒ๋‚˜์š”?
TCP/IP๋ฅผ ํ†ตํ•ด ์ˆ˜๋งŽ์€ ํฌ๊ณ  ์ž‘์€ ์žฅ์น˜๊ฐ€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ์‹œ๊ฐ„์ด ์‹ค์ œ๋กœ๋Š” ์ •ํ™•ํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”? ๊ฐ ์žฅ์น˜์—๋Š” ์‹œ๊ณ„๊ฐ€ ์žˆ์œผ๋ฉฐ, ๋ชจ๋“  ์žฅ์น˜์˜ ์‹œ๊ฐ„์€ ์ •ํ™•ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ntp ์—†์ด๋Š” ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์‚ฐ์—… IT ์ธํ”„๋ผ์˜ ํ•œ ๋ถ€๋ถ„์—์„œ ์‹œ๊ฐ„๋ณ„ ์„œ๋น„์Šค ๋™๊ธฐํ™”์— ์–ด๋ ค์›€์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์†Œํ”„ํŠธ์›จ์–ด์˜ ํด๋Ÿฌ์Šคํ„ฐ ์Šคํƒ์ด ์ฆ‰์‹œ ์žฅ์• ๋ฅผ ์ผ์œผํ‚ค๊ณ , ๋„๋ฉ”์ธ์ด ์†์ƒ๋˜๊ณ , ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์™€ ์Šคํƒ ๋ฐ”์ด ๋…ธ๋“œ๊ฐ€ ํ˜„์ƒ ์œ ์ง€๋ฅผ ๋ณต๊ตฌํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜์ง€๋งŒ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

๊ณต๊ฒฉ์ž๊ฐ€ ์˜๋„์ ์œผ๋กœ MiTM ๋˜๋Š” DDOS ๊ณต๊ฒฉ์„ ํ†ตํ•ด ์‹œ๊ฐ„์„ ์ง€์—ฐ์‹œํ‚ค๋ ค ํ•  ๊ฐ€๋Šฅ์„ฑ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์ž ๊ณ„์ • ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ๋งŒ๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
  • X.509 ์ธ์ฆ์„œ๊ฐ€ ๋งŒ๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
  • TOTP 2๋‹จ๊ณ„ ์ธ์ฆ์ด ๋” ์ด์ƒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋ฐฑ์—…์€ "์˜ค๋ž˜๋œ" ๊ฒƒ์ด ๋˜๊ณ  ์‹œ์Šคํ…œ์—์„œ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.
  • DNSSec์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  1์ฐจ IT ๋ถ€์„œ๊ฐ€ ์‹œ๊ฐ„ ๋™๊ธฐํ™” ์„œ๋น„์Šค์˜ ์•ˆ์ •์ ์ธ ์šด์˜์— ๊ด€์‹ฌ์„ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฒƒ์€ ๋ถ„๋ช…ํ•˜๋ฉฐ, ์‚ฐ์—… ์šด์˜์—์„œ ์‹œ๊ฐ„ ๋™๊ธฐํ™” ์„œ๋น„์Šค๊ฐ€ ์•ˆ์ •์ ์ด๊ณ  ์•ˆ์ „ํ•˜๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

25๋ถ„ ์•ˆ์— NTP๋ฅผ ๊นจ์„ธ์š”

๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ - ๋ฐ€๋ ˆ๋‹ˆ์–ผ ์„ธ๋Œ€๋Š” ํ•œ ๊ฐ€์ง€ ๊ณตํ†ต์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์˜ค๋žซ๋™์•ˆ ์‹œ๋Œ€์— ๋’ค์ง„ ๊ทธ๋ฆฌ๊ณ  ๋” ์ด์ƒ ์•„๋ฌด ์“ธ๋ชจ๊ฐ€ ์—†์ง€๋งŒ, ์ƒ๋‹นํ•œ ์—ด๊ด‘์ž์™€ ์ž๊ธˆ์ด ๋ชจ์˜€๋‹ค ํ•˜๋”๋ผ๋„ ์ด๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ๊ฒƒ์€ ์‰ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ธฐ์กด NTP์˜ ์ฃผ์š” ๋ฌธ์ œ์ ์€ ์•…์˜์ ์ธ ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ๋ถ€์กฑํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ์‹œ๋„๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๋Œ€์นญ ํ‚ค ๊ตํ™˜์„ ์œ„ํ•œ ์‚ฌ์ „ ์„ค์ • ํ‚ค(PSK) ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์ฒ˜์Œ ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์•ˆํƒ€๊น๊ฒŒ๋„ ์ด ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•œ ์ด์œ  ๋•Œ๋ฌธ์— ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ํ™•์žฅ์„ฑ์ด ์ข‹์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์„œ๋ฒ„์— ๋”ฐ๋ผ ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์ˆ˜๋™ ๊ตฌ์„ฑ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. NTP ์„œ๋ฒ„์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ•˜๋ฉด ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋‹ค์‹œ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‹ค๊ฐ€ AutoKey๋ผ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ฐœ๋ฐœํ–ˆ์ง€๋งŒ, ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„ ์ž์ฒด์—์„œ ์—ฌ๋Ÿฌ ์‹ฌ๊ฐํ•œ ์ทจ์•ฝ์ ์ด ๋ฐœ๊ฒฌ๋˜์–ด ๊ฒฐ๊ตญ ํ๊ธฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ์ดˆ๊ธฐ ์ˆซ์ž(์‹œ๋“œ)๊ฐ€ 32๋น„ํŠธ๋ฐ–์— ๋˜์ง€ ์•Š์•„ ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž… ๊ณต๊ฒฉ(brute-force attack)์— ํ•„์š”ํ•œ ๊ณ„์‚ฐ ๋ณต์žก๋„๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ํ‚ค ID๋Š” ๋Œ€์นญ 32๋น„ํŠธ ํ‚ค์ž…๋‹ˆ๋‹ค.
  • MAC(๋ฉ”์‹œ์ง€ ์ธ์ฆ ์ฝ”๋“œ) - NTP ํŒจํ‚ท์˜ ์ฒดํฌ์„ฌ

Autokey๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.

Autokey=H(Sender-IP||Receiver-IP||KeyID||Cookie)

์—ฌ๊ธฐ์„œ H()๋Š” ์•”ํ˜ธํ™” ํ•ด์‹œ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

ํŒจํ‚ท์˜ ์ฒดํฌ์„ฌ์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐ์—๋„ ๋™์ผํ•œ ํ•จ์ˆ˜๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

MAC=H(Autokey||NTP packet)

ํŒจํ‚ท ๊ฒ€์‚ฌ์˜ ๋ฌด๊ฒฐ์„ฑ์€ ์ฟ ํ‚ค์˜ ์ง„์œ„ ์—ฌ๋ถ€์— ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. ์ฟ ํ‚ค๋ฅผ ์บก์ฒ˜ํ•˜๋ฉด ์ž๋™ ํ‚ค๋ฅผ ๋ณต์›ํ•˜๊ณ  MAC์„ ์œ„์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ NTP ์„œ๋ฒ„๋Š” ์ฟ ํ‚ค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์ดˆ๊ธฐ ๋ฒˆํ˜ธ(์‹œ๋“œ)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์—ฌ๊ธฐ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Cookie=MSB_32(H(Client IP||Server IP||0||Server Seed))

MSB_32 ํ•จ์ˆ˜๋Š” md5 ํ•ด์‹œ ๊ณ„์‚ฐ ๊ฒฐ๊ณผ์—์„œ ์ƒ์œ„ 32๋น„ํŠธ๋ฅผ ์ž˜๋ผ๋ƒ…๋‹ˆ๋‹ค. ์„œ๋ฒ„ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ํ•œ ํด๋ผ์ด์–ธํŠธ ์ฟ ํ‚ค๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๊ณต๊ฒฉ์ž๋Š” ์ดˆ๊ธฐ ๊ฐ’๋งŒ ๋ณต์›ํ•˜๊ณ  ์ฟ ํ‚ค๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋จผ์ €, ํด๋ผ์ด์–ธํŠธ๋กœ NTP ์„œ๋ฒ„์— ์ ‘์†ํ•˜์—ฌ ์ฟ ํ‚ค๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ๊ทธ ํ›„, ๊ณต๊ฒฉ์ž๋Š” ๊ฐ„๋‹จํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ดˆ๊ธฐ ์ˆซ์ž๋ฅผ ๋ณต๊ตฌํ•ฉ๋‹ˆ๋‹ค.

๋ฌด์ฐจ๋ณ„ ๋Œ€์ž… ๊ณต๊ฒฉ์„ ์ด์šฉํ•ด ์ดˆ๊ธฐ ์ˆซ์ž๋ฅผ ๊ณต๊ฒฉํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.

   for i=0:2^32 โˆ’ 1 do
        Ci=H(Server-IP||Client-IP||0||i)
        if Ci=Cookie then
            return i
        end if 
    end for

IP ์ฃผ์†Œ๋Š” ์•Œ๋ ค์ ธ ์žˆ์œผ๋ฏ€๋กœ, ์ƒ์„ฑ๋œ ์ฟ ํ‚ค๊ฐ€ NTP ์„œ๋ฒ„์—์„œ ์ˆ˜์‹ ํ•œ ์ฟ ํ‚ค์™€ ์ผ์น˜ํ•  ๋•Œ๊นŒ์ง€ 2^32๋ฒˆ์˜ ํ•ด์‹œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ๋งŒ ๋‚จ์•˜์Šต๋‹ˆ๋‹ค. Intel Core i5 ํ”„๋กœ์„ธ์„œ๊ฐ€ ์žฅ์ฐฉ๋œ ์ผ๋ฐ˜์ ์ธ ๊ฐ€์ •์šฉ ๊ธฐ๊ธฐ์—์„œ๋Š” ์ด ์ž‘์—…์— 25๋ถ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

NTS โ€” ์ƒˆ๋กœ์šด Autokey

Autokey์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ์ฐธ๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ–ˆ์œผ๋ฉฐ 2012๋…„์—๋Š” ์ƒˆ ๋ฒ„์ „ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ์ด๋ฆ„์„ ์†์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋ธŒ๋žœ๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๊ณ , Autokey v.2๋Š” ๋„คํŠธ์›Œํฌ ์‹œ๊ฐ„ ๋ณด์•ˆ(Network Time Security)์œผ๋กœ ๋ช…๋ช…๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

NTS ํ”„๋กœํ† ์ฝœ์€ NTP์˜ ๋ณด์•ˆ ํ™•์žฅ ํ”„๋กœํ† ์ฝœ๋กœ, ํ˜„์žฌ ์œ ๋‹ˆ์บ์ŠคํŠธ ๋ชจ๋“œ๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํŒจํ‚ท ์กฐ์ž‘์œผ๋กœ๋ถ€ํ„ฐ ๊ฐ•๋ ฅํ•œ ์•”ํ˜ธํ™” ๋ณดํ˜ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ , ์Šค๋ˆ„ํ•‘์„ ๋ฐฉ์ง€ํ•˜๋ฉฐ, ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚˜๊ณ , ๋„คํŠธ์›Œํฌ ํŒจํ‚ท ์†์‹ค์— ๋Œ€ํ•œ ๋ณต์›๋ ฅ์ด ๋›ฐ์–ด๋‚˜๋ฉฐ, ์—ฐ๊ฒฐ ๋ณด์•ˆ ๊ณผ์ •์—์„œ ์ •ํ™•๋„ ์†์‹ค์ด ๊ฐ€์žฅ ์ ์Šต๋‹ˆ๋‹ค.

NTS ์—ฐ๊ฒฐ์€ ๋‘ ๋‹จ๊ณ„๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ๊ฐ ๋‹จ๊ณ„์—์„œ๋Š” ํ•˜์œ„ ์ˆ˜์ค€ ํ”„๋กœํ† ์ฝœ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ด ๋‹จ๊ณ„์—์„œ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ๋‹ค์–‘ํ•œ ์—ฐ๊ฒฐ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋™์˜ํ•˜๊ณ  ๋ชจ๋“  ๊ด€๋ จ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋œ ํ‚ค๊ฐ€ ํฌํ•จ๋œ ์ฟ ํ‚ค๋ฅผ ๊ตํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ์ด ๋‹จ๊ณ„์—์„œ ์‹ค์ œ ๋ณด์•ˆ NTS ์„ธ์…˜์€ ํด๋ผ์ด์–ธํŠธ์™€ NTP ์„œ๋ฒ„ ์‚ฌ์ด์—์„œ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

์‹œ๊ฐ„ ๋™๊ธฐํ™”๊ฐ€ ์–ด๋–ป๊ฒŒ ์•ˆ์ „ํ•ด์กŒ๋‚˜์š”?

NTS๋Š” ๋‘ ๊ฐ€์ง€ ํ•˜์œ„ ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. TLS๋ฅผ ํ†ตํ•ด ๋ณด์•ˆ ์—ฐ๊ฒฐ์„ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋„คํŠธ์›Œํฌ ์‹œ๊ฐ„ ๋ณด์•ˆ ํ‚ค ๊ตํ™˜(NTS-KE)๊ณผ NTP ํ”„๋กœํ† ์ฝœ์˜ ์ตœ์‹  ๋ฒ„์ „์ธ NTPv4์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜์—์„œ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„ - NTS KE

์ด ๋‹จ๊ณ„์—์„œ NTP ํด๋ผ์ด์–ธํŠธ๋Š” ๋ณ„๋„์˜ TCP ์—ฐ๊ฒฐ์„ ํ†ตํ•ด NTS KE ์„œ๋ฒ„์™€ TLS 1.2/1.3 ์„ธ์…˜์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ธ์…˜ ๋™์•ˆ ๋‹ค์Œ ์ž‘์—…์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

  • ๋‹น์‚ฌ์ž๋“ค์€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. AEAD ๋‘ ๋ฒˆ์งธ ๋‹จ๊ณ„์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜.
  • ๊ฐ ๋‹น์‚ฌ์ž๋Š” ๋‘ ๋ฒˆ์งธ ํ•˜์œ„ ์ˆ˜์ค€ ํ”„๋กœํ† ์ฝœ์„ ์ •์˜ํ•˜๊ณ  ์žˆ์ง€๋งŒ ํ˜„์žฌ๋Š” NTPv4๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
  • ๋‹น์‚ฌ์ž๋“ค์€ NTP ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ์™€ ํฌํŠธ๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
  • NTS KE ์„œ๋ฒ„๋Š” NTPv4์—์„œ ์ฟ ํ‚ค๋ฅผ ๋ฐœํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹น์‚ฌ์ž๋“ค์€ ์ฟ ํ‚ค ์ž๋ฃŒ์—์„œ ๋Œ€์นญ ํ‚ค ์Œ(C2S ๋ฐ S2C)์„ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.

์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋น„๋ฐ€ ์—ฐ๊ฒฐ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ •๋ณด ์ „์†ก์˜ ๋ชจ๋“  ๋ถ€๋‹ด์„ ๊ฒ€์ฆ๋˜๊ณ  ์•ˆ์ •์ ์ธ TLS ํ”„๋กœํ† ์ฝœ์— ์ „๊ฐ€ํ•œ๋‹ค๋Š” ์ ์—์„œ ํฐ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์•ˆ์ „ํ•œ NTP ํ•ธ๋“œ์…ฐ์ดํฌ๋ฅผ ์œ„ํ•ด ์ƒˆ๋กœ์šด ๊ธฐ์ˆ ์„ ๋„์ž…ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

2๋‹จ๊ณ„ - NTS ๋ณดํ˜ธ ํ•˜์˜ NTP

๋‘ ๋ฒˆ์งธ ๋‹จ๊ณ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋Š” NTP ์„œ๋ฒ„์™€ ์‹œ๊ฐ„์„ ์•ˆ์ „ํ•˜๊ฒŒ ๋™๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด NTPv4 ํŒจํ‚ท ๊ตฌ์กฐ์— ๋„ค ๊ฐœ์˜ ํŠน์ˆ˜ ํ™•์žฅ ํ•„๋“œ๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

  • ๊ณ ์œ  ์‹๋ณ„์ž ํ™•์žฅ์—๋Š” ์žฌ์ƒ ๊ณต๊ฒฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๋ฌด์ž‘์œ„ nonce๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • NTS ์ฟ ํ‚ค ํ™•์žฅ์—๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด์œ ํ•œ NTP ์ฟ ํ‚ค ์ค‘ ํ•˜๋‚˜๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋งŒ ๋Œ€์นญ AAED ํ‚ค C2S์™€ S2C๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฏ€๋กœ NTP ์„œ๋ฒ„๋Š” ์ฟ ํ‚ค ์ž๋ฃŒ์—์„œ ์ด ํ‚ค๋“ค์„ ์ถ”์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • NTS ์ฟ ํ‚ค ํ”Œ๋ ˆ์ด์Šคํ™€๋” ํ™•์žฅ์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์ถ”๊ฐ€ ์ฟ ํ‚ค๋ฅผ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด ํ™•์žฅ์€ NTP ์„œ๋ฒ„์˜ ์‘๋‹ต์ด ์š”์ฒญ๋ณด๋‹ค ํ›จ์”ฌ ๊ธธ์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ด๋ฉฐ, ์ฆํญ ๊ณต๊ฒฉ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
  • NTS ์ธ์ฆ์ž ๋ฐ ์•”ํ˜ธํ™”๋œ ํ™•์žฅ ํ•„๋“œ ํ™•์žฅ์—๋Š” C2S ํ‚ค, NTP ํ—ค๋”, ํƒ€์ž„์Šคํƒฌํ”„, ๊ทธ๋ฆฌ๊ณ  ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ EF๋ฅผ ์ง€์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋กœ ์‚ฌ์šฉํ•˜๋Š” AAED ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์•”ํ˜ธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ™•์žฅ ๊ธฐ๋Šฅ์ด ์—†์œผ๋ฉด ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ ์œ„์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ๊ฐ„ ๋™๊ธฐํ™”๊ฐ€ ์–ด๋–ป๊ฒŒ ์•ˆ์ „ํ•ด์กŒ๋‚˜์š”?

ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์š”์ฒญ์„ ์ˆ˜์‹ ํ•œ ํ›„, ์„œ๋ฒ„๋Š” NTP ํŒจํ‚ท์˜ ์ง„์œ„ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์ฟ ํ‚ค๋ฅผ ๋ณตํ˜ธํ™”ํ•˜๊ณ  AAED ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ํ‚ค๋ฅผ ์ถ”์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. NTP ํŒจํ‚ท์˜ ์œ ํšจ์„ฑ์„ ์„ฑ๊ณต์ ์œผ๋กœ ํ™•์ธํ•œ ํ›„, ์„œ๋ฒ„๋Š” ๋‹ค์Œ ํ˜•์‹์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

  • ๊ณ ์œ  ์‹๋ณ„์ž ํ™•์žฅ์€ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์˜ ๋ฏธ๋Ÿฌ ๋ณต์‚ฌ๋ณธ์œผ๋กœ, ์žฌ์ƒ ๊ณต๊ฒฉ์— ๋Œ€ํ•œ ๋Œ€์ฑ…์ž…๋‹ˆ๋‹ค.
  • NTS ์ฟ ํ‚ค ํ™•์žฅ ์„ธ์…˜์„ ๊ณ„์†ํ•˜๋ ค๋ฉด ๋” ๋งŽ์€ ์ฟ ํ‚ค๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • NTS ์ธ์ฆ์ž ๋ฐ ์•”ํ˜ธํ™”๋œ ํ™•์žฅ ํ•„๋“œ ํ™•์žฅ์—๋Š” S2C ํ‚ค๊ฐ€ ํฌํ•จ๋œ AEAD ์•”ํ˜ธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ํ•ธ๋“œ์…ฐ์ดํฌ๋Š” ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์š”์ฒญ๊ณผ ์‘๋‹ต์€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ถ”๊ฐ€ ์ฟ ํ‚ค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด๋Š” PKI ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์ „์†กํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ๋งŽ์€ TLS ์ž‘์—…์„ ๋ฐ˜๋ณต ์š”์ฒญ ํšŸ์ˆ˜๋งŒํผ ๋‚˜๋ˆ„์–ด ์ฒ˜๋ฆฌํ•œ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ชจ๋“  ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์„ ๋Œ€์นญ ์•”ํ˜ธํ™” ๋ถ„์•ผ์˜ ์—ฌ๋Ÿฌ ํ•จ์ˆ˜๋กœ ํ†ตํ•ฉํ•˜์—ฌ ์ „์ฒด TLS ์Šคํƒ์„ ๋‹ค๋ฅธ ์žฅ์น˜๋กœ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์ˆ˜ FPGA ํด๋ก์— ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

NTPSec

NTP์˜ ํŠน๋ณ„ํ•œ ์ ์€ ๋ฌด์—‡์ผ๊นŒ์š”? ์ด ํ”„๋กœ์ ํŠธ์˜ ์ €์ž์ธ ๋ฐ์ด๋ธŒ ๋ฐ€์Šค๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ตœ๋Œ€ํ•œ ์ž์„ธํžˆ ๋ฌธ์„œํ™”ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , 35๋…„ ์ „ ์‹œ๊ฐ„ ๋™๊ธฐํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ณต์žกํ•œ ๋‚ด์šฉ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ๋“œ๋ญ…๋‹ˆ๋‹ค. ์ผ๋ถ€ ์ฝ”๋“œ๋Š” POSIX ์‹œ๋Œ€ ์ด์ „์— ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, ์œ ๋‹‰์Šค API๋Š” ์˜ค๋Š˜๋‚  ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ๊ณผ ๋งค์šฐ ๋‹ฌ๋ž์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ์žก์Œ์ด ๋งŽ์€ ํšŒ์„ ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ฐ„์„ญ ์‹ ํ˜ธ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ†ต๊ณ„ ์ง€์‹์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

NTS๊ฐ€ NTP๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๋Š” ์ฒซ ๋ฒˆ์งธ ์‹œ๋„๋Š” ์•„๋‹ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์ž๋“ค์ด NTP ์ทจ์•ฝ์ ์„ ์•…์šฉํ•˜์—ฌ DDoS ๊ณต๊ฒฉ์„ ์ฆํญ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ฒŒ ๋˜์ž, ๊ทผ๋ณธ์ ์ธ ๋ณ€ํ™”๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์ด ๋ถ„๋ช…ํ•ด์กŒ์Šต๋‹ˆ๋‹ค. NTS ์ดˆ์•ˆ์ด ์ค€๋น„๋˜๊ณ  ๋งˆ๋ฌด๋ฆฌ๋˜๋Š” ๋™์•ˆ, ๋ฏธ๊ตญ ๊ตญ๋ฆฝ๊ณผํ•™์žฌ๋‹จ(NSF)์€ 2014๋…„ ๋ง NTP ํ˜„๋Œ€ํ™”๋ฅผ ์œ„ํ•œ ๋ณด์กฐ๊ธˆ์„ ๊ธด๊ธ‰ํžˆ ์ง€์›ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ž‘์—… ๊ทธ๋ฃน์˜ ์ฑ…์ž„์ž๋Š” ๋ฐ”๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์—๋ฆญ ์Šคํ‹ฐ๋ธ ๋ ˆ์ด๋จผ๋“œ โ€” ์˜คํ”ˆ ์†Œ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ์ฐฝ๋ฆฝ์ž์ด์ž ๊ธฐ๋‘ฅ ์ค‘ ํ•œ ๋ช…์ด์ž ์ด ์ฑ…์˜ ์ €์ž ๋Œ€์„ฑ๋‹น๊ณผ ๋ฐ”์ž๋ฅด์—๋ฆญ๊ณผ ๊ทธ์˜ ๋™๋ฃŒ๋“ค์ด ๊ฐ€์žฅ ๋จผ์ € ์‹œ๋„ํ•œ ๊ฒƒ์€ NTP ์ฝ”๋“œ๋ฅผ BitKeeper ํ”Œ๋žซํผ์—์„œ git์œผ๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์ด์—ˆ์ง€๋งŒ, ๊ทธ๋ ‡๊ฒŒ ๋˜์ง€๋Š” ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ๋ฆฌ๋”์ธ ํ• ๋ž€ ์Šคํ…์€ ์ด ๊ฒฐ์ •์— ๋ฐ˜๋Œ€ํ–ˆ๊ณ , ํ˜‘์ƒ์€ ๊ต์ฐฉ ์ƒํƒœ์— ๋น ์กŒ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋ฅผ ํฌํฌํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๊ณ , ๊ทธ๋ ‡๊ฒŒ NTPSec์ด ํƒ„์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

GPSD, ์ˆ˜ํ•™์  ๋ฐฐ๊ฒฝ, ๊ทธ๋ฆฌ๊ณ  ๊ณ ๋Œ€ ์ฝ”๋“œ๋ฅผ ์ฝ๋Š” ๋งˆ๋ฒ• ๊ฐ™์€ ๋Šฅ๋ ฅ์„ ํฌํ•จํ•œ ํƒ„ํƒ„ํ•œ ๋ฐฐ๊ฒฝ ์ง€์‹์„ ๊ฐ–์ถ˜ ์—๋ฆญ ๋ ˆ์ด๋จผ๋“œ๋Š” ์ด๋Ÿฌํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ•ด์ปค์˜€์Šต๋‹ˆ๋‹ค. ํŒ€์€ ์ฝ”๋“œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ „๋ฌธ๊ฐ€๋ฅผ ์ฐพ์•˜๊ณ , ๋‹จ 10์ฃผ ๋งŒ์— NTP๋ฅผ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ •์ฐฉ ํ•œGitLab์—์„œ ์ž‘์—…์ด ํ™œ๊ธฐ๋ฅผ ๋ ๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

์—๋ฆญ ๋ ˆ์ด๋จผ๋“œ์˜ ํŒ€์€ ๋งˆ์น˜ ์˜ค๊ท€์ŠคํŠธ ๋กœ๋Œ•์ด ๋ฐ”์œ„๋ฅผ ๋‹ค๋ฃจ๋“ฏ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. 175 KLOC์— ๋‹ฌํ•˜๋Š” ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•จ์œผ๋กœ์จ ๊ณต๊ฒฉ ํ‘œ๋ฉด์„ ํฌ๊ฒŒ ์ค„์ด๊ณ  ๋งŽ์€ ๋ณด์•ˆ ํ—ˆ์ ์„ ์—†์•จ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์˜ํ–ฅ์„ ๋ฐ›์€ ์‚ฌ๋žŒ๋“ค์˜ ์ผ๋ถ€ ๋ชฉ๋ก์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ฌธ์„œํ™”๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜, ์“ธ๋ชจ์—†๊ฑฐ๋‚˜, ์˜ค๋ž˜๋˜์—ˆ๊ฑฐ๋‚˜, ๊ณ ์žฅ๋‚œ ์ฐธ์กฐ ํด๋Ÿญ.
  • ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ICS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ.
  • libopts/autogen.
  • Windows์šฉ ์˜ค๋ž˜๋œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.
  • ntpdc.
  • ์˜คํ† ํ‚ค.
  • ntpq๋ฅผ Python์œผ๋กœ ๋‹ค์‹œ ์ž‘์„ฑํ•œ C ์ฝ”๋“œ.
  • C ์ฝ”๋“œ sntp/ntpdig๋ฅผ Python์œผ๋กœ ๋‹ค์‹œ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ ์ •๋ฆฌ ์™ธ์—๋„ ํ”„๋กœ์ ํŠธ์—๋Š” ๋‹ค๋ฅธ ์ž‘์—…๋“ค์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์„ฑ๊ณผ ๋ชฉ๋ก ์ค‘ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค.

  • ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์— ๋Œ€ํ•œ ์ฝ”๋“œ ๋ณดํ˜ธ ๊ธฐ๋Šฅ์ด ํฌ๊ฒŒ ๊ฐ•ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๋ฌธ์ž์—ด ํ•จ์ˆ˜(strcpy / strcat / strtok / sprintf / vsprintf / gets)๊ฐ€ ๋ฒ„ํผ ํฌ๊ธฐ ์ œํ•œ์„ ๊ตฌํ˜„ํ•˜๋Š” ์•ˆ์ „ํ•œ ๋ฒ„์ „์œผ๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • NTS ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฌผ๋ฆฌ์  ํ•˜๋“œ์›จ์–ด ๋ฐ”์ธ๋”ฉ์„ ํ†ตํ•ด ์‹œ๊ฐ„ ๋‹จ์œ„ ์ •ํ™•๋„๊ฐ€ 10๋ฐฐ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ตœ์‹  ์ปดํ“จํ„ฐ ์‹œ๊ณ„๊ฐ€ NTP๊ฐ€ ์ฒ˜์Œ ๋„์ž…๋˜์—ˆ์„ ๋‹น์‹œ์˜ ์‹œ๊ณ„๋ณด๋‹ค ํ›จ์”ฌ ์ •ํ™•ํ•ด์กŒ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ์ˆ ์˜ ๊ฐ€์žฅ ํฐ ์ˆ˜ํ˜œ์ž๋Š” GPSDO์™€ ์ „์šฉ ๋ฌด์„  ์‹œ๊ฐ„๊ตญ์ž…๋‹ˆ๋‹ค.
  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ์ˆ˜๊ฐ€ ๋‘ ๊ฐ€์ง€๋กœ ์ค„์—ˆ์Šต๋‹ˆ๋‹ค. Perl, awk, ์‹ฌ์ง€์–ด S ์Šคํฌ๋ฆฝํŠธ๊นŒ์ง€ ๋ชจ๋‘ Python์œผ๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋•๋ถ„์— ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ์„ฑ์ด ๋” ๋†’์•„์กŒ์Šต๋‹ˆ๋‹ค.
  • AutoTools ์Šคํฌ๋ฆฝํŠธ์˜ ๊ตญ์ˆ˜ ๋Œ€์‹  ํ”„๋กœ์ ํŠธ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋นŒ๋“œ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. waf.
  • ํ”„๋กœ์ ํŠธ ๋ฌธ์„œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์žฌ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์ผ๊ด€์„ฑ์ด ์—†๊ณ  ๋•Œ๋กœ๋Š” ๊ตฌ์‹์ธ ๋ฌธ์„œ ๋ชจ์Œ์„ ๋ฐ”ํƒ•์œผ๋กœ, ๊ฝค ๊ดœ์ฐฎ์€ ๋ฌธ์„œ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ช…๋ น์ค„ ์Šค์œ„์น˜์™€ ๋ชจ๋“  ๊ตฌ์„ฑ ์—”ํ„ฐํ‹ฐ๋Š” ์ด์ œ ๋‹จ์ผ ๋ฒ„์ „์˜ ์ง„์‹ค์„ ๊ฐ–์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ๋งค๋‰ด์–ผ ํŽ˜์ด์ง€์™€ ์›น ๋ฌธ์„œ๋Š” ์ด์ œ ๋™์ผํ•œ ํ•ต์‹ฌ ํŒŒ์ผ์—์„œ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

NTPSec์€ ์—ฌ๋Ÿฌ Linux ๋ฐฐํฌํŒ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์ตœ์‹  ์•ˆ์ • ๋ฒ„์ „์€ 1.1.8์ด๋ฉฐ, Gentoo Linux์˜ ๊ฒฝ์šฐ ๋‘ ๋ฒˆ์งธ๋กœ ์ตœ์‹  ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

(1:696)$ sudo emerge -av ntpsec
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild   R    ] net-misc/ntpsec-1.1.7-r1::gentoo  USE="samba seccomp -debug -doc -early -gdb -heat -libbsd -nist -ntpviz -rclock_arbiter -rclock_generic -rclock_gpsd -rclock_hpgps -rclock_jjy -rclock_local -rclock_modem -rclock_neoclock -rclock_nmea -rclock_oncore -rclock_pps -rclock_shm -rclock_spectracom -rclock_trimble -rclock_truetime -rclock_zyfer -smear -tests" PYTHON_TARGETS="python3_6" 0 KiB
Total: 1 package (1 reinstall), Size of downloads: 0 KiB
Would you like to merge these packages? [Yes/No]

ํฌ๋กœ๋‹ˆ

๊ธฐ์กด NTP๋ฅผ ๋” ์•ˆ์ „ํ•œ ์•„๋‚ ๋กœ๊ทธ ๋ฐฉ์‹์œผ๋กœ ๋Œ€์ฒดํ•˜๋ ค๋Š” ๋˜ ๋‹ค๋ฅธ ์‹œ๋„๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. NTPSec๊ณผ ๋‹ฌ๋ฆฌ Chrony๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ ๋ถˆ์•ˆ์ •ํ•œ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ, ๋ถ€๋ถ„์ ์ธ ๊ฐ€์šฉ์„ฑ ๋˜๋Š” ๋„คํŠธ์›Œํฌ ๊ณผ๋ถ€ํ•˜, ์˜จ๋„ ๋ณ€ํ™” ๋“ฑ ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์—์„œ ์•ˆ์ •์ ์œผ๋กœ ์ž‘๋™ํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Chrony๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์žฅ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • chrony๋Š” ์‹œ์Šคํ…œ ์‹œ๊ณ„๋ฅผ ๋” ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ๋™๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • chrony๋Š” ํฌ๊ธฐ๊ฐ€ ๋” ์ž‘๊ณ  ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ์ ์œผ๋ฉฐ ํ•„์š”ํ•  ๋•Œ๋งŒ ํ”„๋กœ์„ธ์„œ์— ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฆฌ์†Œ์Šค์™€ ์—๋„ˆ์ง€๋ฅผ ์ ˆ์•ฝํ•˜๋Š” ๋ฐ ํฐ ์žฅ์ ์ž…๋‹ˆ๋‹ค.
  • chrony๋Š” Linux์—์„œ ํ•˜๋“œ์›จ์–ด ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ ์ง€์›ํ•˜๋ฏ€๋กœ ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์—์„œ ๋งค์šฐ ์ •ํ™•ํ•œ ๋™๊ธฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ Chrony๋Š” ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ๋ฐ ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ ํด๋ผ์ด์–ธํŠธ/์„œ๋ฒ„์™€ ๊ฐ™์€ ๊ธฐ์กด NTP์˜ ์ผ๋ถ€ ๊ธฐ๋Šฅ์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ๊ธฐ์กด NTP๋Š” ๋” ๋งŽ์€ OS์™€ ํ”Œ๋žซํผ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์„œ๋ฒ„ ๊ธฐ๋Šฅ๊ณผ chronyd ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ NTP ์š”์ฒญ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด chrony.conf ํŒŒ์ผ์— ํฌํŠธ 0์„ ์ง€์ •ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” NTP ํด๋ผ์ด์–ธํŠธ๋‚˜ ํ”ผ์–ด์˜ ์‹œ๊ฐ„์„ ์œ ์ง€ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. 2.0 ๋ฒ„์ „๋ถ€ํ„ฐ NTP ์„œ๋ฒ„ ํฌํŠธ๋Š” allow ์ง€์‹œ์–ด ๋˜๋Š” ํ•ด๋‹น ๋ช…๋ น์— ์˜ํ•ด ์•ก์„ธ์Šค๊ฐ€ ํ—ˆ์šฉ๋˜๊ฑฐ๋‚˜, NTP ํ”ผ์–ด๊ฐ€ ๊ตฌ์„ฑ๋˜๊ฑฐ๋‚˜, broadcast ์ง€์‹œ์–ด๊ฐ€ ์‚ฌ์šฉ๋  ๋•Œ๋งŒ ์—ด๋ฆฝ๋‹ˆ๋‹ค.

์ด ํ”„๋กœ๊ทธ๋žจ์€ ๋‘ ๊ฐœ์˜ ๋ชจ๋“ˆ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • chronyd๋Š” ์‹œ์Šคํ…œ ์‹œ๊ณ„์™€ ์™ธ๋ถ€ ์‹œ๊ฐ„ ์„œ๋ฒ„ ๊ฐ„์˜ ์‹œ๊ฐ„ ์ฐจ์ด ์ •๋ณด๋ฅผ ์ˆ˜์‹ ํ•˜์—ฌ ๋กœ์ปฌ ์‹œ๊ฐ„์„ ์กฐ์ •ํ•˜๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ NTP ํ”„๋กœํ† ์ฝœ์„ ๊ตฌํ˜„ํ•˜๋ฉฐ ํด๋ผ์ด์–ธํŠธ ๋˜๋Š” ์„œ๋ฒ„ ์—ญํ• ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • chronyc๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๋ช…๋ น์ค„ ์œ ํ‹ธ๋ฆฌํ‹ฐ์ž…๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์„œ๋น„์Šค ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ฏธ์„ธ ์กฐ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, chronyd๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋™์•ˆ NTP ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

RedHat Linux ๋ฒ„์ „ 7๋ถ€ํ„ฐ ะธัะฟะพะปัŒะทัƒะตั‚ chrony๋Š” ์‹œ๊ฐ„ ๋™๊ธฐํ™” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ์ด ํŒจํ‚ค์ง€๋Š” ๋‹ค๋ฅธ Linux ๋ฐฐํฌํŒ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์‹  ์•ˆ์ • ๋ฒ„์ „์€ 3.5์ด๋ฉฐ, 4.0 ๋ฒ„์ „์€ ํ˜„์žฌ ์ค€๋น„ ์ค‘์ž…๋‹ˆ๋‹ค.

(1:712)$ sudo emerge -av chrony
These are the packages that would be merged, in order:
Calculating dependencies... done!
[binary  N     ] net-misc/chrony-3.5-r2::gentoo  USE="adns caps cmdmon ipv6 ntp phc readline refclock rtc seccomp (-html) -libedit -pps (-selinux)" 246 KiB
Total: 1 package (1 new, 1 binary), Size of downloads: 246 KiB
Would you like to merge these packages? [Yes/No]

์‚ฌ๋ฌด์‹ค ๋„คํŠธ์›Œํฌ์˜ ์‹œ๊ฐ„์„ ๋™๊ธฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ธํ„ฐ๋„ท์— ์›๊ฒฉ ํฌ๋กœ๋‹ˆ ์„œ๋ฒ„๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” VPS์— ์„ค์ •ํ•˜๋Š” ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

VPS์—์„œ RHEL/CentOS์— Chrony๋ฅผ ์„ค์ •ํ•˜๋Š” ์˜ˆ

์ด์ œ VPS์—์„œ NTP ์„œ๋ฒ„๋ฅผ ์ง์ ‘ ๊ตฌ์ถ•ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„์ฃผ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. RuVDS ์›น์‚ฌ์ดํŠธ์—์„œ ์ ํ•ฉํ•œ ์š”๊ธˆ์ œ๋ฅผ ์„ ํƒํ•˜๊ณ , ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์ง„ ์„œ๋ฒ„๋ฅผ ๊ตฌ๋งคํ•œ ํ›„ ๊ฐ„๋‹จํ•œ ๋ช…๋ น์–ด ๋ช‡ ๊ฐœ๋งŒ ์ž…๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ €ํฌ ๋ชฉ์ ์—๋Š” ์ด ์˜ต์…˜์ด ๋งค์šฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

์‹œ๊ฐ„ ๋™๊ธฐํ™”๊ฐ€ ์–ด๋–ป๊ฒŒ ์•ˆ์ „ํ•ด์กŒ๋‚˜์š”?

์ด์ œ ์„œ๋น„์Šค ์„ค์ •์œผ๋กœ ๋„˜์–ด๊ฐ€์„œ ๋จผ์ € chrony ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

[root@server ~]$ yum install chrony

RHEL 8 / CentOS 8์€ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

[root@server ~]$ dnf install chrony

Chrony๋ฅผ ์„ค์น˜ํ•œ ํ›„ ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

[root@server ~]$ systemctl enable chrony --now

์›ํ•˜๋Š” ๊ฒฝ์šฐ /etc/chrony.conf๋ฅผ ํŽธ์ง‘ํ•˜์—ฌ NPT ์„œ๋ฒ„๋ฅผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋กœ์ปฌ ์„œ๋ฒ„๋กœ ๋Œ€์ฒดํ•˜๋ฉด ์‘๋‹ต ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.ru.pool.ntp.org iburst
server 1.ru.pool.ntp.org iburst
server 2.ru.pool.ntp.org iburst
server 3.ru.pool.ntp.org iburst

๋‹ค์Œ์œผ๋กœ, ์ง€์ •๋œ ํ’€์˜ ๋…ธ๋“œ์™€ NTP ์„œ๋ฒ„์˜ ๋™๊ธฐํ™”๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

[root@server ~]$ timedatectl set-ntp true
[root@server ~]$ systemctl restart chronyd.service

๋˜ํ•œ ์™ธ๋ถ€๋กœ NTP ํฌํŠธ๋ฅผ ์—ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ฐฉํ™”๋ฒฝ์ด ํด๋ผ์ด์–ธํŠธ ๋…ธ๋“œ์—์„œ ๋“ค์–ด์˜ค๋Š” ์—ฐ๊ฒฐ์„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.

[root@server ~]$ firewall-cmd --add-service=ntp --permanent 
[root@server ~]$ firewall-cmd --reload

ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ๋Š” ์‹œ๊ฐ„๋Œ€๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

[root@client ~]$ timedatectl set-timezone Europe/Moscow

/etc/chrony.conf ํŒŒ์ผ์—์„œ NTP ์„œ๋ฒ„ chrony๊ฐ€ ์‹คํ–‰ ์ค‘์ธ VPS ์„œ๋ฒ„์˜ IP ๋˜๋Š” ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

server my.vps.server

๋งˆ์ง€๋ง‰์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์—์„œ ์‹œ๊ฐ„ ๋™๊ธฐํ™”๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

[root@client ~]$ systemctl enable --now chronyd
[root@client ~]$ timedatectl set-ntp true

๋‹ค์Œ ์‹œ๊ฐ„์—๋Š” ์ธํ„ฐ๋„ท ์—†์ด๋„ ์‹œ๊ฐ„์„ ๋™๊ธฐํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์‹œ๊ฐ„ ๋™๊ธฐํ™”๊ฐ€ ์–ด๋–ป๊ฒŒ ์•ˆ์ „ํ•ด์กŒ๋‚˜์š”?

์‹œ๊ฐ„ ๋™๊ธฐํ™”๊ฐ€ ์–ด๋–ป๊ฒŒ ์•ˆ์ „ํ•ด์กŒ๋‚˜์š”?

์ถœ์ฒ˜ : habr.com

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