๐ NTP(Network Time Protocol) ์๋ฒ๋?
NTP ์๋ฒ(Network Time Protocol Server)๋ ์ปดํจํฐ ์์คํ ๊ฐ์ ์ ํํ ์๊ฐ ๋๊ธฐํ๋ฅผ ์ ๊ณตํ๋ ์๋ฒ์ ๋๋ค. ์ด๋ฅผ ํตํด ๋คํธ์ํฌ ๋ด ๋ชจ๋ ์ฅ์น๊ฐ ํ์ค ์๊ฐ์ ์ ์งํ ์ ์๋๋ก ๋์์ค๋๋ค.
๐น NTP ์๋ฒ์ ์ฃผ์ ์ญํ
- ์๊ฐ ๋๊ธฐํ ์ ๊ณต
- ์ปดํจํฐ, ๋คํธ์ํฌ ์ฅ๋น(๋ผ์ฐํฐ, ์ค์์น ๋ฑ), ์๋ฒ ๊ฐ ์ ํํ ์๊ฐ ์ ์ง
- ๋ก๊ทธ ๊ธฐ๋ก, ๊ธ์ต ๊ฑฐ๋, ์ธ์ฆ ์์คํ ์์ ์๊ฐ ์ค์ฐจ ๋ฐฉ์ง
- ๊ตญ์ ํ์ค ์๊ฐ(UTC) ์ ๊ณต
- NTP ์๋ฒ๋ GPS, ์์์๊ณ ๋ฑ์์ UTC(Coordinated Universal Time) ๊ธฐ์ค์ ์๊ฐ์ ๋ฐ์ ์ฌ์ฉ์๊ฐ ์์ฒญํ๋ฉด ๋๊ธฐํ๋ ์๊ฐ์ ์ ๊ณตํฉ๋๋ค.
- ์๊ฐ ๊ณ์ธต ๊ตฌ์กฐ(Hierarchy) ์ ์ง
- Stratum(์คํธ๋ผํ ) ๊ณ์ธต์ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ์ฌ, ์ต์์ ๊ณ์ธต(์์์๊ณ)์์ ์ ํํ ์๊ฐ์ ํ์ ์๋ฒ๋ก ์ ๋ฌ
๐น NTP ์๋ฒ ๊ณ์ธต ๊ตฌ์กฐ (Stratum Model)
NTP ์๋ฒ๋ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ฉฐ, Stratum(์ธต, ๋จ๊ณ) ๊ฐ์ด ๋ฎ์์๋ก ๋ ์ ํํ ์๊ฐ์ ์ ๊ณตํฉ๋๋ค.
| Stratum | ์ค๋ช |
|---|---|
| Stratum 0 | GPS, ์์์๊ณ, ๋ฃจ๋น ์ง๋์ ๋ฑ (์ง์ ์ ๊ทผ ๋ถ๊ฐ) |
| Stratum 1 | Stratum 0๊ณผ ์ง์ ์ฐ๊ฒฐ๋ NTP ์๋ฒ (ํ์ค ์๊ฐ ์ ๊ณต) |
| Stratum 2 | Stratum 1๊ณผ ๋๊ธฐํ๋ NTP ์๋ฒ (์ผ๋ฐ ๊ธฐ์ /๊ธฐ๊ด ์๋ฒ) |
| Stratum 3 | Stratum 2์ ๋๊ธฐํ๋ ์๋ฒ (์ผ๋ฐ์ ์ธ ํด๋ผ์ด์ธํธ ์ฅ์น) |
- Stratum 1 ์๋ฒ๋ ๊ตญ๊ฐ ๊ธฐ๊ด์ด๋ ๋ํ ๋ฐ์ดํฐ์ผํฐ์์ ์ด์ํ๋ฉฐ, Stratum 2 ์ด์์ ์ผ๋ฐ ๊ธฐ์ , ๊ฐ์ธ์ด ํ์ฉํฉ๋๋ค.
๐น NTP ์๋ฒ ๋์ ๋ฐฉ์
- ํด๋ผ์ด์ธํธ(PC, ์๋ฒ ๋ฑ)๊ฐ NTP ์๋ฒ์ ์๊ฐ ์์ฒญ (
UDP 123 ํฌํธ ์ฌ์ฉ) - NTP ์๋ฒ๊ฐ ํ์ฌ ์๊ฐ์ ์๋ต์ผ๋ก ์ ์ก
- ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์๊ฐ๊ณผ ์์ ์ ์๊ฐ์ ๋น๊ตํ์ฌ ์๊ฐ ์ฐจ์ด ๋ณด์
๐น ๋ํ์ ์ธ NTP ์๋ฒ
- ๊ณต์ ๊ณต๊ณต NTP ์๋ฒ
time.google.com(Google NTP ์๋ฒ)time.windows.com(Microsoft NTP ์๋ฒ)pool.ntp.org(์ ์ธ๊ณ NTP ์๋ฒ ํ)time.nist.gov(๋ฏธ๊ตญ ํ์ค์ฐ๊ตฌ์ NTP ์๋ฒ)
- ํ๊ตญ์ ์ฃผ์ NTP ์๋ฒ
time.kriss.re.kr(ํ๊ตญํ์ค๊ณผํ์ฐ๊ตฌ์)time.bora.net(KT NTP ์๋ฒ)ntp.kornet.net(KT NTP ์๋ฒ)
๐น NTP ์๋ฒ ์ค์ ๋ฐฉ๋ฒ (Linux)
1๏ธโฃ NTP ํจํค์ง ์ค์น (RHEL/CentOS)
yum install -y ntp
2๏ธโฃ NTP ์๋ฒ ํ์ฑํ
systemctl enable ntpd
systemctl start ntpd
3๏ธโฃ NTP ์๋ฒ ํ์ธ
ntpq -p
4๏ธโฃ NTP ํด๋ผ์ด์ธํธ ์ค์ (/etc/ntp.conf)
server time.kriss.re.kr iburst
server time.google.com iburst
๐น NTP ์๋ฒ ๋ณด์
NTP ์๋ฒ๋ DDoS ๊ณต๊ฒฉ, ์คํธํ ๊ณต๊ฒฉ์ ์ ์ฉ๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋ณด์ ์ค์ ์ด ์ค์ํฉ๋๋ค.
โ ๋ณด์ ์ค์ ์์ (/etc/ntp.conf)
restrict default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict <๋ด๋ถ ๋คํธ์ํฌ> mask <์๋ธ๋ท> nomodify notrap
โ ๋ฐฉํ๋ฒฝ(iptables) ์ค์
iptables -A INPUT -p udp --dport 123 -s trusted-ip -j ACCEPT
iptables -A INPUT -p udp --dport 123 -j DROP
๐น ์ฃผ์ NTP ์๋ฒ ๊ณต๊ฒฉ ์ ํ
NTP(Network Time Protocol) ์๋ฒ ๊ณต๊ฒฉ์ ์ฃผ๋ก DDoS ์ฆํญ ๊ณต๊ฒฉ์ ๋ชฉ์ ์ผ๋ก ์ํ๋๋ฉฐ, ๊ณต๊ฒฉ์๋ ์ทจ์ฝํ NTP ์๋ฒ๋ฅผ ์ ์ฉํ์ฌ ๋๋์ ํธ๋ํฝ์ ์์ฑํ ์ ์์ต๋๋ค. ์ฃผ์ ๊ณต๊ฒฉ ์ ํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1๏ธโฃ NTP ์ฆํญ(Amplification) ๊ณต๊ฒฉ
- ๊ณต๊ฒฉ์๋ monlist(MON_GETLIST) ๊ธฐ๋ฅ์ ์ ์ฉํ์ฌ ์์ ์์ฒญ ํจํท์ผ๋ก ๋๋์ ์๋ต์ ์ ๋ํฉ๋๋ค.
- ์์ฒญ์ **์คํธํ๋ IP(ํฌ์์ IP)**๋ก ๋ณด๋ด, NTP ์๋ฒ๊ฐ ํฌ์์์๊ฒ ๋๋์ ์๋ต์ ๋ณด๋ด๋๋ก ํฉ๋๋ค.
- ๊ฒฐ๊ณผ์ ์ผ๋ก ํฌ์์๋ ๋๋์ ํธ๋ํฝ์ ๋ฐ์ ์๋น์ค๊ฐ ๋ง๋น๋ ์ ์์ต๋๋ค.
๐ก ๋์ ๋ฐฉ๋ฒ
monlist๊ธฐ๋ฅ ๋นํ์ฑํ (restrict default noquery์ค์ )- ์ต์ ๋ฒ์ ์ NTP ์๋ฒ ์ฌ์ฉ (NTP v4.2.7 ์ด์)
- ๋ฐฉํ๋ฒฝ์์ NTP ๊ด๋ จ ํธ๋ํฝ ํํฐ๋ง (
UDP 123 ํฌํธ ์ ํ)
2๏ธโฃ NTP ๋ฆฌํ๋ ์ (Reflection) ๊ณต๊ฒฉ
- ๊ณต๊ฒฉ์๊ฐ ์ถ๋ฐ์ง ์ฃผ์๋ฅผ ํฌ์์ IP๋ก ์์กฐํ์ฌ NTP ์๋ฒ์ ์์ฒญ์ ๋ณด๋.
- ์ฌ๋ฌ NTP ์๋ฒ์์ ํฌ์์์๊ฒ ์๋ต์ ๋ณด๋ด๋ฉด์ ํธ๋ํฝ์ ์ฆํญ์ํด.
- ๊ณต๊ฒฉ์๋ ์ง์ ์ ์ธ ์ฐ๊ฒฐ ์์ด ํผํด๋ฅผ ์ ํ ์ ์์.
๐ก ๋์ ๋ฐฉ๋ฒ
- NTP ์๋ฒ์์ ํจํท ์๋ต ์ ํ ๋ฐ ACL ์ค์
- DDoS ๋ฐฉ์ด ์์คํ ์ ์ฉ
- ISP ์ฐจ์์์ ์คํธํ๋ ํธ๋ํฝ ์ฐจ๋จ (BCP38 ์ ์ฉ)
3๏ธโฃ NTP ํด๋ผ์ด์ธํธ ๋์ ๊ณต๊ฒฉ
- ๊ณต๊ฒฉ์๊ฐ NTP ์๋ฒ๋ฅผ ๋ณ์กฐํ์ฌ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ชป๋ ์๊ฐ ์ ๋ณด๋ฅผ ์ ๊ณตํจ.
- ๊ธ์ต ์์คํ , ๋ก๊ทธ ์์คํ ๋ฑ ์๊ฐ ๋๊ธฐํ๊ฐ ์ค์ํ ์๋น์ค์ ํผ๋์ ์ด๋ํจ.
๐ก ๋์ ๋ฐฉ๋ฒ
- ์ ๋ขฐํ ์ ์๋ NTP ์๋ฒ ์ฌ์ฉ (Google, time.windows.com ๋ฑ)
- NTP ๋ณด์ ํ๋กํ ์ฝ ์ ์ฉ (NTS: Network Time Security)
๐น ์ถ๊ฐ์ ์ธ ๋ณด์ ์ค์ ๋ฐฉ๋ฒ
- NTP ์ ๊ทผ ์ ํ ์ค์
restrict default kod nomodify notrap nopeer noquery restrict 127.0.0.1 restrict <๋ด๋ถ ๋คํธ์ํฌ> mask <์๋ธ๋ท> nomodify notrap
- NTP ๋ฒ์ ์
๋ฐ์ดํธ
ntpq -c rv๋ช ๋ น์ด๋ก ๋ฒ์ ํ์ธ ํ ์ต์ ๋ฒ์ ์ ์ง.
- ๋ฐฉํ๋ฒฝ(iptables) ์ค์
ptables -A INPUT -p udp --dport 123 -s trusted-ip -j ACCEPT iptables -A INPUT -p udp --dport 123 -j DROP
๐น ๊ฒฐ๋ก
NTP ์๋ฒ๋ DDoS ๊ณต๊ฒฉ์ ์
์ฉ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ ์๋น์ค์ด๋ฏ๋ก, ๋ถํ์ํ ๊ธฐ๋ฅ์ ๋นํ์ฑํํ๊ณ , ์ต์ ๋ฒ์ ์ ์ง ๋ฐ ์ ๊ทผ ์ ํ์ด ํ์์ ์
๋๋ค. ํนํ monlist ๊ธฐ๋ฅ์ด ํ์ฑํ๋ ๊ฒฝ์ฐ ๋ฐ๋์ ๋นํ์ฑํํด์ผ ํฉ๋๋ค.