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๋ฅผ ์œ„ํ•ด ์„ค๊ณ„๋œ ์ด ํ›Œ๋ฅญํ•œ ํŠœํ† ๋ฆฌ์–ผ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

  • ์ˆ˜์ • ์—†์Œ -