์ด์ ํ์ํ ๋๋ผ์ด๋ฒ๊ฐ ๋๋ฝ๋ ๋ฌด์ ์ด๋ํฐ๋ฅผ ์ฌ์ฉํ์ฌ 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 ๋ฒ์ ์์ ๋ํ๋ฉ๋๋ค.
๋ฌด์ ์คํ๊ณผ ๊ด๋ จ๋์ง ์์ FreeBSD์ ์ต๊ทผ ๋ณ๊ฒฝ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค: ํ
์คํธ ์์คํ
์์ ๋ถํ
์๊ฐ์ด 10์ด์์ 8์ด๋ก ๋จ์ถ๋์์ต๋๋ค. GEOM ๋ชจ๋ ๊ฑด๋์ธ์ ์ฝ๊ธฐ ์ ์ฉ ๋ชจ๋๋ก ์ก์ธ์คํ ์ ์๋ ๋์คํฌ ์๋จ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ค๋ฅธ ๋์คํฌ๋ก ์ ์กํ๋๋ก ๊ตฌํ๋์์ต๋๋ค. ์ปค๋์ ์ํธํ API๋ฅผ ์ํด VPN WireGuard ๋๋ผ์ด๋ฒ์ ํ์ํ ์ํธํ ํ๋ฆฌ๋ฏธํฐ๋ธ XChaCha20-Poly1305 AEAD ๋ฐ curve25519๊ฐ ์ค๋น๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru