๋ณด์ ์ค๋ฒ๋ ์ด ๋คํธ์ํฌ ๊ตฌ์ถ์ ์ํ ๋๊ตฌ๋ฅผ ์ ๊ณตํ๋ Nebula 1.5 ํ๋ก์ ํธ๊ฐ ์ถ์๋์์ต๋๋ค. ๋คํธ์ํฌ๋ ์๋ก ๋ค๋ฅธ ๊ณต๊ธ์๊ฐ ํธ์คํ ํ๋ ์ง๋ฆฌ์ ์ผ๋ก ๋ถ๋ฆฌ๋ ์ฌ๋ฌ ํธ์คํธ์์ ์๋ง ๊ฐ๊น์ง ํตํฉํ์ฌ ๊ธ๋ก๋ฒ ๋คํธ์ํฌ ์์ ๋ณ๋์ ๊ฒฉ๋ฆฌ๋ ๋คํธ์ํฌ๋ฅผ ํ์ฑํ ์ ์์ต๋๋ค. ์ด ํ๋ก์ ํธ๋ Go๋ก ์์ฑ๋์์ผ๋ฉฐ MIT ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค. ์ด ํ๋ก์ ํธ๋ ๋๋ช ์ ๊ธฐ์ ๋ฉ์ ์ ๋ฅผ ๊ฐ๋ฐํ๋ ์ฌ๋(Slack)์ ์ํด ์ค๋ฆฝ๋๋ค. Linux, FreeBSD, macOS, Windows, iOS ๋ฐ Android๋ฅผ ์ง์ํฉ๋๋ค.
Nebula ๋คํธ์ํฌ์ ๋ ธ๋๋ P2P ๋ชจ๋์์ ์๋ก ์ง์ ํต์ ํฉ๋๋ค. ๋ ธ๋ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํด์ผ ํ๋ฏ๋ก ์ง์ VPN ์ฐ๊ฒฐ์ด ๋์ ์ผ๋ก ์์ฑ๋ฉ๋๋ค. ๋คํธ์ํฌ์ ์๋ ๊ฐ ํธ์คํธ์ ์ ์์ ๋์งํธ ์ธ์ฆ์๋ก ํ์ธ๋๋ฉฐ ๋คํธ์ํฌ์ ์ฐ๊ฒฐํ๋ ค๋ฉด ์ธ์ฆ์ด ํ์ํฉ๋๋ค. ๊ฐ ์ฌ์ฉ์๋ Nebula ๋คํธ์ํฌ์ IP ์ฃผ์, ํธ์คํธ ๊ทธ๋ฃน์ ์ด๋ฆ ๋ฐ ๋ฉค๋ฒ์ญ์ ํ์ธํ๋ ์ธ์ฆ์๋ฅผ ๋ฐ์ต๋๋ค. ์ธ์ฆ์๋ ๋ด๋ถ ์ธ์ฆ ๊ธฐ๊ด์์ ์๋ช ํ๊ณ , ๋คํธ์ํฌ ์์ฑ์๊ฐ ํด๋น ์์ค์ ๋ฐฐํฌํ๋ฉฐ, ์ค๋ฒ๋ ์ด ๋คํธ์ํฌ์ ์ฐ๊ฒฐํ ์ ์๋ ๊ถํ์ด ์๋ ํธ์คํธ์ ๊ธฐ๊ด์ ์ธ์ฆํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
์ธ์ฆ๋ ๋ณด์ ํต์ ์ฑ๋์ ์์ฑํ๊ธฐ ์ํด Nebula๋ Diffie-Hellman ํค ๊ตํ ํ๋กํ ์ฝ๊ณผ AES-256-GCM ์ํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์์ฒด ํฐ๋ ํ๋กํ ์ฝ์ ์ฌ์ฉํฉ๋๋ค. ํ๋กํ ์ฝ ๊ตฌํ์ WireGuard, Lightning ๋ฐ I2P์ ๊ฐ์ ํ๋ก์ ํธ์์๋ ์ฌ์ฉ๋๋ Noise ํ๋ ์์ํฌ์์ ์ ๊ณตํ๋ ์ด๋ฏธ ์ ์๋๊ณ ์ ์ฆ๋ ๊ธฐ๋ณธ ์์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ์ด ํ๋ก์ ํธ๋ ๋ ๋ฆฝ์ ์ธ ๋ณด์ ๊ฐ์ฌ๋ฅผ ๋ฐ์ ๊ฒ์ผ๋ก ์๋ ค์ก์ต๋๋ค.
๋ค๋ฅธ ๋ ธ๋๋ฅผ ๊ฒ์ํ๊ณ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ์กฐ์ ํ๊ธฐ ์ํด ํน์ "๋ฑ๋" ๋ ธ๋๊ฐ ์์ฑ๋๋ฉฐ, ์ด ๋ ธ๋์ ๊ธ๋ก๋ฒ IP ์ฃผ์๋ ๊ณ ์ ๋์ด ๋คํธ์ํฌ ์ฐธ๊ฐ์์๊ฒ ์๋ ค์ง๋๋ค. ์ฐธ์ฌ ๋ ธ๋๋ ์ธ๋ถ IP ์ฃผ์์ ๋ฐ์ธ๋ฉ๋์ง ์์ผ๋ฉฐ ์ธ์ฆ์๋ก ์๋ณ๋ฉ๋๋ค. ํธ์คํธ ์์ ์๋ ์๋ช ๋ ์ธ์ฆ์๋ฅผ ์ค์ค๋ก ๋ณ๊ฒฝํ ์ ์์ผ๋ฉฐ ๊ธฐ์กด IP ๋คํธ์ํฌ์ ๋ฌ๋ฆฌ ๋จ์ํ IP ์ฃผ์๋ฅผ ๋ณ๊ฒฝํ์ฌ ๋ค๋ฅธ ํธ์คํธ์ธ ๊ฒ์ฒ๋ผ ๊ฐ์ฅํ ์ ์์ต๋๋ค. ํฐ๋์ด ์์ฑ๋๋ฉด ํธ์คํธ์ ์ ์์ ๊ฐ๋ณ ๊ฐ์ธ ํค๋ก ํ์ธ๋ฉ๋๋ค.
์์ฑ๋ ๋คํธ์ํฌ์๋ ํน์ ๋ฒ์์ ์ธํธ๋ผ๋ท ์ฃผ์(์: 192.168.10.0/24)๊ฐ ํ ๋น๋๊ณ ๋ด๋ถ ์ฃผ์๋ ํธ์คํธ ์ธ์ฆ์์ ์ฐ๊ฒฐ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ณ๋์ ํธ๋ํฝ ํํฐ๋ง ๊ท์น์ด ์ ์ฉ๋๋ ๋ณ๋์ ์๋ฒ ๋ฐ ์ํฌ์คํ ์ด์ ๊ณผ ๊ฐ์ด ์ค๋ฒ๋ ์ด ๋คํธ์ํฌ์ ์ฐธ๊ฐ์๋ก๋ถํฐ ๊ทธ๋ฃน์ ํ์ฑํ ์ ์์ต๋๋ค. NAT(์ฃผ์ ๋ณํ๊ธฐ) ๋ฐ ๋ฐฉํ๋ฒฝ์ ์ฐํํ๊ธฐ ์ํ ๋ค์ํ ๋ฉ์ปค๋์ฆ์ด ์ ๊ณต๋ฉ๋๋ค. Nebula ๋คํธ์ํฌ(์์ ํ์ง ์์ ๊ฒฝ๋ก)์ ์ผ๋ถ๊ฐ ์๋ ํ์ฌ ํธ์คํธ์ ํธ๋ํฝ ์ค๋ฒ๋ ์ด ๋คํธ์ํฌ๋ฅผ ํตํด ๋ผ์ฐํ ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
Nebula ์ค๋ฒ๋ ์ด ๋คํธ์ํฌ์ ๋ ธ๋ ๊ฐ ์ก์ธ์ค๋ฅผ ๋ถ๋ฆฌํ๊ณ ํธ๋ํฝ์ ํํฐ๋งํ๊ธฐ ์ํ ๋ฐฉํ๋ฒฝ ์์ฑ์ ์ง์ํฉ๋๋ค. ํ๊ทธ ๋ฐ์ธ๋ฉ์ด ์๋ ACL์ ํํฐ๋ง์ ์ฌ์ฉ๋ฉ๋๋ค. ๋คํธ์ํฌ์ ๊ฐ ํธ์คํธ๋ ํธ์คํธ, ๊ทธ๋ฃน, ํ๋กํ ์ฝ ๋ฐ ๋คํธ์ํฌ ํฌํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฒด ํํฐ๋ง ๊ท์น์ ์ ์ํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ํธ์คํธ๋ IP ์ฃผ์๊ฐ ์๋ ๋์งํธ ์๋ช ๋ ํธ์คํธ ์๋ณ์๋ก ํํฐ๋ง๋ฉ๋๋ค. ์ด๋ ๋คํธ์ํฌ๋ฅผ ์กฐ์ ํ๋ ์ธ์ฆ ์ผํฐ๋ฅผ ์์์ํค์ง ์์ผ๋ฉด์ ์์กฐํ ์ ์์ต๋๋ค.
์ ๋ฆด๋ฆฌ์ค์์:
- ์ธ์ฆ์์ PEM ํํ์ ์ธ์ํ๊ธฐ ์ํด print-cert ๋ช ๋ น์ "-raw" ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- ์๋ก์ด Linux ์ํคํ ์ฒ riscv64์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ํ์ฉ๋ ํธ์คํธ ๋ชฉ๋ก์ ํน์ ์๋ธ๋ท์ ๋ฐ์ธ๋ฉํ๊ธฐ ์ํด ์คํ์ ์ธ remote_allow_ranges ์ค์ ์ ์ถ๊ฐํ์ต๋๋ค.
- ์ ๋ขฐ ์ข ๋ฃ ๋๋ ์ธ์ฆ์ ์๋ช ์ด ๋ง๋ฃ๋ ํ ํฐ๋์ ์ฌ์ค์ ํ๊ธฐ ์ํด pki.disconnect_invalid ์ต์ ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- unsafe_routes ์ต์ ์ด ์ถ๊ฐ๋์์ต๋๋ค. .metric์ ํน์ ์ธ๋ถ ๊ฒฝ๋ก์ ๊ฐ์ค์น๋ฅผ ํ ๋นํฉ๋๋ค.
์ถ์ฒ : opennet.ru