Wifibox 0.10 - FreeBSD์—์„œ Linux WiFi ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ํ™˜๊ฒฝ

์ด์ œ ํ•„์š”ํ•œ ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ๋ˆ„๋ฝ๋œ ๋ฌด์„  ์–ด๋Œ‘ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ FreeBSD์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” Wifibox 0.10 ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. FreeBSD์—์„œ ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ์–ด๋Œ‘ํ„ฐ์˜ ์ž‘๋™์€ ๋ฌด์„  ์žฅ์น˜์šฉ ๊ธฐ๋ณธ Linux ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ๋กœ๋“œ๋˜๋Š” Linux๋กœ ๊ฒŒ์ŠคํŠธ ์‹œ์Šคํ…œ์„ ์‹œ์ž‘ํ•˜์—ฌ ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค.

๋“œ๋ผ์ด๋ฒ„๊ฐ€ ํฌํ•จ๋œ ๊ฒŒ์ŠคํŠธ ์‹œ์Šคํ…œ ์„ค์น˜๊ฐ€ ์ž๋™ํ™”๋˜๊ณ , ํ•„์š”ํ•œ ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ๊ธฐ์„ฑ Wi-Fibox ํŒจํ‚ค์ง€ ํ˜•ํƒœ๋กœ ํŒจํ‚ค์ง€๋˜์–ด ํฌํ•จ๋œ rc ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ€ํŒ… ์‹œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ ˆ์ „ ๋ชจ๋“œ๋กœ์˜ ์ „ํ™˜์„ ํฌํ•จํ•˜๋ฉด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์ด ํ™˜๊ฒฝ์€ ์ž ์žฌ์ ์œผ๋กœ Linux์—์„œ ์ง€์›๋˜๋Š” ๋ชจ๋“  WiFi ์นด๋“œ์— ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ์ฃผ๋กœ Intel ์นฉ์—์„œ ํ…Œ์ŠคํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Qualcomm Atheros ๋ฐ AMD RZ608(MediaTek MT7921K) ๋ฌด์„  ์นฉ์ด ํƒ‘์žฌ๋œ ์‹œ์Šคํ…œ์—์„œ๋„ ์˜ฌ๋ฐ”๋ฅธ ์ž‘๋™์ด ํ…Œ์ŠคํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฒŒ์ŠคํŠธ ์‹œ์Šคํ…œ์€ ๋ฌด์„  ์นด๋“œ์— ๋Œ€ํ•œ ์ „๋‹ฌ ์•ก์„ธ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” Bhyve ํ•˜์ดํผ๋ฐ”์ด์ €๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ํ•˜๋“œ์›จ์–ด ๊ฐ€์ƒํ™”(AMD-Vi ๋˜๋Š” Intel VT-d)๋ฅผ ์ง€์›ํ•˜๋Š” ์‹œ์Šคํ…œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ŠคํŠธ ์‹œ์Šคํ…œ์€ Musl ์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ BusyBox ์œ ํ‹ธ๋ฆฌํ‹ฐ ์„ธํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋œ Alpine Linux ๋ฐฐํฌํŒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋Š” ๋””์Šคํฌ์—์„œ ์•ฝ 30MB๋ฅผ ์ฐจ์ง€ํ•˜๊ณ  RAM์€ ์•ฝ 90MB๋ฅผ ์†Œ๋น„ํ•ฉ๋‹ˆ๋‹ค.

๋ฌด์„  ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด wpa_supplicant ํŒจํ‚ค์ง€๊ฐ€ ์‚ฌ์šฉ๋˜๋ฉฐ ๊ตฌ์„ฑ ํŒŒ์ผ์€ ๊ธฐ๋ณธ FreeBSD ํ™˜๊ฒฝ์˜ ์„ค์ •๊ณผ ๋™๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค. wpa_supplicant์— ์˜ํ•ด ์ƒ์„ฑ๋œ Unix ์ œ์–ด ์†Œ์ผ“์€ ํ˜ธ์ŠคํŠธ ํ™˜๊ฒฝ์œผ๋กœ ์ „๋‹ฌ๋˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ํ‘œ์ค€ FreeBSD ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ wpa_cli ๋ฐ wpa_gui ์œ ํ‹ธ๋ฆฌํ‹ฐ(net/wpa_supplicant_gui)๋ฅผ ํฌํ•จํ•˜์—ฌ ๋ฌด์„  ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐํ•˜๊ณ  ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” WPA๋ฅผ ๊ธฐ๋ณธ ํ™˜๊ฒฝ์œผ๋กœ ์ „๋‹ฌํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์žฌ์„ค๊ณ„๋˜์–ด wpa_supplicant ๋ฐ Hostapd ๋ชจ๋‘์—์„œ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ŠคํŠธ ์‹œ์Šคํ…œ์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์–‘์ด ๊ฐ์†Œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. FreeBSD 13.0-RELEASE์— ๋Œ€ํ•œ ์ง€์›์ด ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ Intel ๋ฐ Realtek ์นฉ์˜ ๋ฌด์„  ์นด๋“œ์šฉ FreeBSD์—์„œ ์ œ๊ณต๋˜๋Š” ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—…์— ์ฃผ๋ชฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. FreeBSD ์žฌ๋‹จ์˜ ์ง€์›์œผ๋กœ FreeBSD 13.1์— ํฌํ•จ๋œ ์ƒˆ๋กœ์šด iwlwifi ๋“œ๋ผ์ด๋ฒ„ ๊ฐœ๋ฐœ์ด ๊ณ„์†๋ฉ๋‹ˆ๋‹ค. ์ด ๋“œ๋ผ์ด๋ฒ„๋Š” net80211 Linux ํ•˜์œ„ ์‹œ์Šคํ…œ์˜ Linux ๋“œ๋ผ์ด๋ฒ„ ๋ฐ ์ฝ”๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ 802.11ac ํ‘œ์ค€์„ ์ง€์›ํ•˜๊ณ  ์ƒˆ๋กœ์šด Intel ๋ฌด์„  ์นฉ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๋ฌด์„  ์นด๋“œ๊ฐ€ ๊ฐ์ง€๋˜๋ฉด ๋ถ€ํŒ… ์ค‘์— ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ž๋™์œผ๋กœ ๋‹ค์šด๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. Linux ๋ฌด์„  ์Šคํƒ์˜ ๊ตฌ์„ฑ ์š”์†Œ๋Š” LinuxKPI ๊ณ„์ธต์„ ์‚ฌ์šฉํ•˜์—ฌ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. ์ด์ „์—๋Š” iwm ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ๋น„์Šทํ•œ ๋ฐฉ์‹์œผ๋กœ FreeBSD์šฉ์œผ๋กœ ํฌํŒ…๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด์™€ ๋™์‹œ์— Realtek RTW88 ๋ฐ RTW89 ๋ฌด์„  ์นฉ์šฉ ๋“œ๋ผ์ด๋ฒ„ rtw88 ๋ฐ rtw89 ๊ฐœ๋ฐœ์ด ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋“œ๋ผ์ด๋ฒ„๋Š” Linux์—์„œ ํ•ด๋‹น ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ „์†กํ•˜๊ณ  LinuxKPI ๊ณ„์ธต์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘๋™ํ•˜์—ฌ ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. rtw88 ๋“œ๋ผ์ด๋ฒ„๋Š” ์ดˆ๊ธฐ ํ…Œ์ŠคํŠธ ์ค€๋น„๊ฐ€ ๋˜์–ด ์žˆ์œผ๋ฉฐ rtw89 ๋“œ๋ผ์ด๋ฒ„๋Š” ์•„์ง ๊ฐœ๋ฐœ ์ค‘์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ, 2022์›” ์—…๋ฐ์ดํŠธ์—์„œ ์ˆ˜์ •๋œ FreeBSD ๋ฌด์„  ์Šคํƒ์˜ ์ทจ์•ฝ์ (CVE-23088-80211)๊ณผ ๊ด€๋ จ๋œ ์„ธ๋ถ€ ์ •๋ณด ๋ฐ ๊ธฐ์„ฑ ์ต์Šคํ”Œ๋กœ์ž‡์ด ๊ณต๊ฐœ๋œ ๊ฒƒ์„ ์–ธ๊ธ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ทจ์•ฝ์ ์„ ์‚ฌ์šฉํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋„คํŠธ์›Œํฌ ์Šค์บ๋‹ ๋ชจ๋“œ(SSID ๋ฐ”์ธ๋”ฉ ์ „ ๋‹จ๊ณ„)์— ์žˆ๋Š” ๋™์•ˆ ํŠน๋ณ„ํžˆ ์„ค๊ณ„๋œ ํ”„๋ ˆ์ž„์„ ์ „์†กํ•˜์—ฌ ์ปค๋„ ์ˆ˜์ค€์—์„œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ์•ก์„ธ์Šค ํฌ์ธํŠธ์—์„œ ์ „์†ก๋œ ๋น„์ฝ˜ ํ”„๋ ˆ์ž„์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•  ๋•Œ ieee2009_parse_beacon() ํ•จ์ˆ˜์—์„œ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๊ฐ€ ํ—ค๋” ํ•„๋“œ์— ์ง€์ •๋œ ํฌ๊ธฐ์™€ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•˜์ง€ ์•Š์•„ ์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” XNUMX๋…„ ์ดํ›„ ๋นŒ๋“œ๋œ FreeBSD ๋ฒ„์ „์—์„œ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

Wifibox 0.10 - FreeBSD์—์„œ Linux WiFi ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ํ™˜๊ฒฝ

๋ฌด์„  ์Šคํƒ๊ณผ ๊ด€๋ จ๋˜์ง€ ์•Š์€ FreeBSD์˜ ์ตœ๊ทผ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค: ํ…Œ์ŠคํŠธ ์‹œ์Šคํ…œ์—์„œ ๋ถ€ํŒ… ์‹œ๊ฐ„์ด 10์ดˆ์—์„œ 8์ดˆ๋กœ ๋‹จ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค. GEOM ๋ชจ๋“ˆ ๊ฑด๋‹ˆ์–ธ์€ ์ฝ๊ธฐ ์ „์šฉ ๋ชจ๋“œ๋กœ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๋””์Šคํฌ ์ƒ๋‹จ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋‹ค๋ฅธ ๋””์Šคํฌ๋กœ ์ „์†กํ•˜๋„๋ก ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ปค๋„์˜ ์•”ํ˜ธํ™” API๋ฅผ ์œ„ํ•ด VPN WireGuard ๋“œ๋ผ์ด๋ฒ„์— ํ•„์š”ํ•œ ์•”ํ˜ธํ™” ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ XChaCha20-Poly1305 AEAD ๋ฐ curve25519๊ฐ€ ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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