Generating OpenVPN keys using Easy RSA - XIYO/asuswrt-merlin.ng-kr GitHub Wiki
๋งํฌ๋ค์ด ๋ฌธ๋ฒ์ ์ ์งํ๋ฉด์ ํ๊ตญ์ด๋ก ๋ฒ์ญํด ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๋ง์ฝ ๋ฆฌ๋ ์ค ๋จธ์ ์ ์ก์ธ์คํ ์ ์๊ฑฐ๋ Easy-RSA๊ฐ ์ค์น๋ Windows ํด๋ผ์ด์ธํธ๊ฐ ์๋ ๊ฒฝ์ฐ, ๋๋ ๋ผ์ฐํฐ ์์ฒด์์ ์ธ์ฆ์๋ฅผ ์์ฑํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค. Easy-RSA๋ OpenVPN๊ณผ ํจ๊ป ๋ฒ๋ค๋ก ์ ๊ณต๋๋ฉฐ Asuswrt-Merlin์ ํฌํจ๋์ด ์์ต๋๋ค.
ํ๊ฒฝ ์ค์
์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ ์์ ํ๊ฒฝ์ ์ด๊ธฐํํ๋ ๊ฒ์ ๋๋ค. ์ด์์ ์ผ๋ก๋ USB ๋์คํฌ(ARM ๊ธฐ๋ฐ ์ฅ์น์ ๊ฒฝ์ฐ ext2, ext3 ๋๋ ext4๋ก ํฌ๋งท๋์ด์ผ ํจ)์ ์ํํด์ผ ํ์ง๋ง /tmp์์๋ ์ํํ ์ ์์ต๋๋ค(๋ค์ ๋ฒ ๋ผ์ฐํฐ ์ฌ๋ถํ ์ ์์ค๋ ์ ์์ผ๋ฏ๋ก ์์ฑ๋ ๋ชจ๋ ํ์ผ์ ์ฌ๋ณธ์ ์ ์งํด์ผ ํฉ๋๋ค). ์ด ์์์๋ /mnt/sda1 ์๋์ ๋ง์ดํธ๋ USB ๋์คํฌ๋ฅผ ์ฌ์ฉํ ๊ฒ์ ๋๋ค. ๋จผ์ ๋ค์ ๋ช ๋ น์ ์คํํ์ฌ easy-rsa ์คํฌ๋ฆฝํธ๋ฅผ ๋ณต์ฌํฉ๋๋ค:
setuprsa.sh /mnt/sda1
์ด๋ ๊ฒ ํ๋ฉด USB ๋์คํฌ์ easy-rsa ํด๋๊ฐ ์์ฑ๋๊ณ ํ์ํ ๋ชจ๋ ์คํฌ๋ฆฝํธ๊ฐ ๋ณต์ฌ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์์ด ์ ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํ์ญ์์ค:
cd /mnt/sda1/easy-rsa
์ด์ ์ธ์ฆ์๋ฅผ ์์ฑํ๋ ๋์ ์ ๊ณต๋๋ ๊ธฐ๋ณธ๊ฐ์ ๋ณ๊ฒฝํ๊ณ ์ถ์ ๊ฒ์ ๋๋ค. "vars"๋ผ๋ ํ์ผ์ ์์ ํ์ญ์์ค. ์ด๋ ๊ธฐ๋ณธ "vi" ํธ์ง๊ธฐ๋ฅผ ํตํด(์ด๋ณด์์๊ฒ๋ ๊ถ์ฅ๋์ง ์์), Optware๋ฅผ ์ฌ์ฉํ์ฌ "nano" ํธ์ง๊ธฐ๋ฅผ ์ค์นํ๊ฑฐ๋ ์ปดํจํฐ์์ ํธ์งํ ํ์ผ์ ๋ณต์ฌํจ์ผ๋ก์จ ์ํํ ์ ์์ต๋๋ค. ๋ณ๊ฒฝํ๊ณ ์ถ์๋งํ ์ ์ผํ ํ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- export KEY_COUNTRY="US"
- export KEY_PROVINCE="CA"
- export KEY_CITY="SanFrancisco"
- export KEY_ORG="Fort-Funston"
- export KEY_EMAIL="[email protected]"
- export KEY_EMAIL=[email protected]
- export KEY_CN=changeme
- export KEY_NAME=changeme
- export KEY_OU=changeme
์ํ๋ ๊ฒฝ์ฐ ํค์ ๋ง๋ฃ ๋ ์ง๋ฅผ ์กฐ์ ํ ์๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ CA์ ๋ง๋ฃ ๋ ์ง๋ ํค ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๊ถ์ฅํ์ง ์์ต๋๋ค. 1024๋ฐ์ดํธ์์ ๋๋ฆฌ๋ฉด ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
์์ ์ด ์๋ฃ๋๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ์ฌ ํ๊ฒฝ์ ์ค์ ํ์ธ์:
source ./vars
๊ทธ๋ฐ ๋ค์ ํ๊ฒฝ์ ์ด๊ธฐํํ์ธ์:
./clean-all
์ด์ ํ๊ฒฝ์ด ์ธ์ฆ์๋ฅผ ์์ฑํ ์ค๋น๊ฐ ๋์์ต๋๋ค.### ์ธ์ฆ์ ์์ฑ ๋จผ์ , ์ธ์ฆ์ ๊ธฐ๊ด (CA)๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ "๋ง์คํฐ" ํค์ ์ธ์ฆ์๋ก, ๋ชจ๋ ํด๋ผ์ด์ธํธ ์ธ์ฆ์์ ์๋ช ํ๊ฑฐ๋ ์ ๊ทผ ๊ถํ์ ์ทจ์ํ๊ธฐ ์ํด ์ฌ์ฉ๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ ์์ ํ๊ณ ๋ณด์๋ ์์น์ ์ ์ฅํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค (๊ฐ๋ฅํ๋ฉด ๋ผ์ฐํฐ ์์ฒด์ ์ ์ฅํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค!). CA ์์ ์์ฑํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ ์คํํ์ธ์:
./build-ca
๊ณตํต ์ด๋ฆ (CN)์ ๊ฐ์ฅ ์ค์ํ ํ๋์ด๋ฉฐ, ์ด๊ฒ์ด ๋ผ์ฐํฐ๋ฅผ ์๋ณํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
์ด์ ๋ผ์ฐํฐ ํค/์ธ์ฆ์ ์์ ์์ฑํด์ผ ํฉ๋๋ค:
./build-key-server server1
"server1" ๋์ ์ํ๋ ์ด๋ฆ์ ์ฌ์ฉํ ์ ์์ง๋ง, ๊ณตํต ์ด๋ฆ์ ์ ๋ ฅํ ๋ ์ ํํ ๋์ผํ ์ด๋ฆ์ ์ ๋ ฅํด์ผ ํฉ๋๋ค. ์๋ก์ด ์ธ์ฆ์์ ์๋ช ํ๊ณ ์ปค๋ฐํ๋ผ๋ ์์ฒญ์ด ๋์ค๋ฉด ๋ ์ง๋ฌธ์ ๋ชจ๋ "y"๋ก ๋ตํ์ธ์.
๋ค์์ผ๋ก, ํด๋ผ์ด์ธํธ ํค/์ธ์ฆ์ ์์ ํ๋ ์์ฑํด๋ด ์๋ค. ๋์ผํ ์ ์ฐจ๋ฅผ ๋ฐ๋ฅด์ธ์ (๋ค์ ํ ๋ฒ client1 ๋์ ์ฌ๊ธฐ์ ์ง์ ํ๋ ์ด๋ฆ๊ณผ ์ ํํ ์ผ์นํ๋ Common Name์ ์ ๋ ฅํด์ผ ํฉ๋๋ค):
./build-key client1
ํ์ํ๋งํผ ๋ง์ ํด๋ผ์ด์ธํธ ํค ์์ ์์ฑํ ์ ์์ต๋๋ค. CA ํ์ผ์ด ์ด๋ค ํค๋ฅผ ์ฐ๊ฒฐํ ์ ์๋์ง๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก - ํด๋ผ์ด์ธํธ์ ๋ผ์ฐํฐ ๊ฐ์ ํค ๊ตํ์ ๋ณด์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ Diffie Hellman ๋งค๊ฐ ๋ณ์ (DH ํ์ผ)๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค. ๋ค์ ๋ช ๋ น์ ์คํํ์ธ์:
./build-dh
์ด ์์ ์ ๋ผ์ฐํฐ CPU์ ์ฑ๋ฅ์ด (๋ฐ์คํฌํฑ๊ณผ ๋น๊ตํ์ฌ) ๋ฎ๊ธฐ ๋๋ฌธ์ 1~2๋ถ ์ ๋ ์์๋ ์ ์์ต๋๋ค.๋ชจ๋ ์์ฑ๋ ํ์ผ์ ์ด์ keys/ ํ์ ๋๋ ํ ๋ฆฌ์ ์์นํ๊ฒ ๋ฉ๋๋ค. ๋ค์ ํ ๋ฒ ๊ฐ์กฐํฉ๋๋ค๋ง, ์ด๋ฌํ ํ์ผ์ ์์ ํ ์์น์ ๋ณต์ฌํ๋ ๊ฒ์ ๋ฐ๋์ ํ์ธํ์ธ์! ์ด์ OpenVPN ์๋ฒ๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํด ํ์ํ ๋ชจ๋ ํค์ ์ธ์ฆ์๊ฐ ์ค๋น๋์์ต๋๋ค.
์ถ๊ฐ ์ ๋ณด๊ฐ ํ์ํ๋ค๋ฉด Tomato๋ฅผ ์ํด ์ค๊ณ๋ ์ด ํ๋ฅญํ ํํ ๋ฆฌ์ผ์ ์ฐธ์กฐํ์ญ์์ค.
- ์์ ์์ -