OpenVPN 2.6.0 ์‚ฌ์šฉ ๊ฐ€๋Šฅ

2.5 ๋ธŒ๋žœ์น˜ ์ถœ์‹œ ํ›„ 2.6.0๋…„ ๋ฐ˜ ํ›„์— OpenVPN 2 ์ถœ์‹œ๊ฐ€ ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. OpenVPN XNUMX์€ ๋‘ ํด๋ผ์ด์–ธํŠธ ์‹œ์Šคํ…œ ๊ฐ„์˜ ์•”ํ˜ธํ™”๋œ ์—ฐ๊ฒฐ์„ ๊ตฌ์„ฑํ•˜๊ฑฐ๋‚˜ ์ค‘์•™ ์ง‘์ค‘์‹ VPN ์„œ๋ฒ„๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์ƒ ์‚ฌ์„ค๋ง ์ƒ์„ฑ์šฉ ํŒจํ‚ค์ง€์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ํด๋ผ์ด์–ธํŠธ์˜ ๋™์‹œ ์ž‘์—…์„ ์œ„ํ•ด. OpenVPN ์ฝ”๋“œ๋Š” GPLvXNUMX ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋˜๋ฉฐ Debian, Ubuntu, CentOS, RHEL ๋ฐ Windows์šฉ์œผ๋กœ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์ง„ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒจํ‚ค์ง€๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ํ˜์‹ :

  • ๋ฌด์ œํ•œ์˜ ์—ฐ๊ฒฐ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ovpn-dco ์ปค๋„ ๋ชจ๋“ˆ์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด VPN ์„ฑ๋Šฅ ์†๋„๋ฅผ ํฌ๊ฒŒ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์•”ํ˜ธํ™” ์ž‘์—…, ํŒจํ‚ท ์ฒ˜๋ฆฌ ๋ฐ ํ†ต์‹  ์ฑ„๋„ ๊ด€๋ฆฌ๋ฅผ Linux ์ปค๋„ ์ธก์œผ๋กœ ์ด๋™ํ•˜์—ฌ ๊ฐ€์†ํ™”๋ฅผ ๋‹ฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ปจํ…์ŠคํŠธ ์ „ํ™˜๊ณผ ๊ด€๋ จ๋œ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋‚ด๋ถ€ ์ปค๋„ API์— ์ง์ ‘ ์•ก์„ธ์Šคํ•˜์—ฌ ์ž‘์—…์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ปค๋„ ๊ฐ„์˜ ๋Š๋ฆฐ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ๋ฐ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„(์•”ํ˜ธํ™”, ์•”ํ˜ธ ํ•ด๋… ๋ฐ ๋ผ์šฐํŒ…์€ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์˜ ํ•ธ๋“ค๋Ÿฌ๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋ณด๋‚ด์ง€ ์•Š๊ณ  ๋ชจ๋“ˆ์— ์˜ํ•ด ์ˆ˜ํ–‰๋จ)

    ์ˆ˜ํ–‰๋œ ํ…Œ์ŠคํŠธ์—์„œ tun ์ธํ„ฐํŽ˜์ด์Šค ๊ธฐ๋ฐ˜ ๊ตฌ์„ฑ๊ณผ ๋น„๊ตํ•˜์—ฌ AES-256-GCM ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ ๋ฐ ์„œ๋ฒ„ ์ธก ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฒ˜๋ฆฌ๋Ÿ‰์ด 8๋ฐฐ ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค(370์—์„œ 2950๋ฐฐ ์ฆ๊ฐ€). Mbit/s ~ 4Mbit/s). ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ๋งŒ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋‚˜๊ฐ€๋Š” ํŠธ๋ž˜ํ”ฝ์˜ ์ฒ˜๋ฆฌ๋Ÿ‰์ด 35๋ฐฐ ์ฆ๊ฐ€ํ–ˆ์œผ๋ฉฐ ๋“ค์–ด์˜ค๋Š” ํŠธ๋ž˜ํ”ฝ์˜ ์ฒ˜๋ฆฌ๋Ÿ‰์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„ ์ธก์—์„œ๋งŒ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๋“ค์–ด์˜ค๋Š” ํŠธ๋ž˜ํ”ฝ์˜ ์ฒ˜๋ฆฌ๋Ÿ‰์ด XNUMX๋ฐฐ, ๋‚˜๊ฐ€๋Š” ํŠธ๋ž˜ํ”ฝ์˜ ๊ฒฝ์šฐ XNUMX% ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์ž์ฒด ์„œ๋ช…๋œ ์ธ์ฆ์„œ๋กœ TLS ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ("-peer-fingerprint" ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ "-ca" ๋ฐ "-capath" ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ƒ๋žตํ•˜๊ณ  Easy-RSA ๊ธฐ๋ฐ˜ PKI ์„œ๋ฒ„ ์‹คํ–‰์„ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ ์‚ฌํ•œ ์†Œํ”„ํŠธ์›จ์–ด).
  • UDP ์„œ๋ฒ„๋Š” HMAC ๊ธฐ๋ฐ˜ ์ฟ ํ‚ค๋ฅผ ์„ธ์…˜ ์‹๋ณ„์ž๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ฟ ํ‚ค ๊ธฐ๋ฐ˜ ์—ฐ๊ฒฐ ํ˜‘์ƒ ๋ชจ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์„œ๋ฒ„๊ฐ€ ๋ฌด์ƒํƒœ ๊ฒ€์ฆ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • OpenSSL 3.0 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ ๋นŒ๋“œ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ตœ์†Œ OpenSSL ๋ณด์•ˆ ์ˆ˜์ค€์„ ์„ ํƒํ•˜๋Š” "--tls-cert-profile insecure" ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์™ธ๋ถ€ ์—ฐ๊ฒฐ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ํ•ด๋‹น ๋ชฉ๋ก์„ ํ‘œ์‹œํ•˜๋Š” ์ƒˆ๋กœ์šด ์ œ์–ด ๋ช…๋ น์ธ ์›๊ฒฉ ํ•ญ๋ชฉ ์ˆ˜(remote-entry-count) ๋ฐ ์›๊ฒฉ ํ•ญ๋ชฉ-๊ฒŸ(remote-entry-get)์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ‚ค ๊ณ„์•ฝ ํ”„๋กœ์„ธ์Šค ์ค‘์— OpenVPN ๊ด€๋ จ PRF ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๋Œ€์‹  EKM(Exported Keying Material, RFC 5705) ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ํ‚ค ์ƒ์„ฑ ์ž๋ฃŒ๋ฅผ ์–ป๋Š” ๋ฐ ์„ ํ˜ธ๋˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. EKM์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด OpenSSL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋˜๋Š” mbed TLS 2.18+๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • FIPS 140-2 ๋ณด์•ˆ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ์‹œ์Šคํ…œ์—์„œ OpenVPN์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก FIPS ๋ชจ๋“œ์—์„œ OpenSSL๊ณผ์˜ ํ˜ธํ™˜์„ฑ์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
  • mlock์€ ์ถฉ๋ถ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์˜ˆ์•ฝ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒ€์‚ฌ๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. 100MB ๋ฏธ๋งŒ์˜ RAM์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ setrlimit()๊ฐ€ ํ˜ธ์ถœ๋˜์–ด ์ œํ•œ์„ ๋Š˜๋ฆฝ๋‹ˆ๋‹ค.
  • TLS-verify๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  SHA256 ํ•ด์‹œ ๊ธฐ๋ฐ˜ ์ง€๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆ์„œ์˜ ์œ ํšจ์„ฑ์ด๋‚˜ ๋ฐ”์ธ๋”ฉ์„ ํ™•์ธํ•˜๋Š” "--peer-fingerprint" ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์Šคํฌ๋ฆฝํŠธ์—๋Š” "-auth-user-pass-verify" ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„๋œ ์ง€์—ฐ ์ธ์ฆ ์˜ต์…˜์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์ง€์—ฐ๋œ ์ธ์ฆ์„ ์‚ฌ์šฉํ•  ๋•Œ ๋ณด๋ฅ˜ ์ค‘์ธ ์ธ์ฆ์— ๋Œ€ํ•ด ํด๋ผ์ด์–ธํŠธ์— ์•Œ๋ฆฌ๋Š” ์ง€์›์ด ์Šคํฌ๋ฆฝํŠธ ๋ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • OpenVPN 2.3.x ๋˜๋Š” ์ด์ „ ๋ฒ„์ „์„ ์‹คํ–‰ํ•˜๋Š” ์ด์ „ ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ˜ธํ™˜์„ฑ ๋ชจ๋“œ(-compat-mode)๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • โ€œ--data-ciphersโ€ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ๋œ ๋ชฉ๋ก์—๋Š” ์ ‘๋‘์‚ฌ โ€œ?โ€๊ฐ€ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค. SSL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ง€์›๋˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉ๋˜๋Š” ์„ ํƒ์  ์•”ํ˜ธ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
  • ์ตœ๋Œ€ ์„ธ์…˜ ์‹œ๊ฐ„์„ ์ œํ•œํ•  ์ˆ˜ ์žˆ๋Š” "-session-timeout" ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋ฉด ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฆ„๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. .
  • ์„œ๋ฒ„๊ฐ€ ์ „์†กํ•œ MTU ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์˜ MTU๋ฅผ ๋™์ ์œผ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์ตœ๋Œ€ MTU ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด "โ€”tun-mtu-max" ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(๊ธฐ๋ณธ๊ฐ’์€ 1600).
  • ์ œ์–ด ํŒจํ‚ท์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด "--max-packet-size" ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • inetd๋ฅผ ํ†ตํ•œ OpenVPN ์‹œ์ž‘ ๋ชจ๋“œ์— ๋Œ€ํ•œ ์ง€์›์ด ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ncp-disable ์˜ต์…˜์ด ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. verify-hash ์˜ต์…˜๊ณผ ์ •์  ํ‚ค ๋ชจ๋“œ๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(TLS๋งŒ ์œ ์ง€๋จ). TLS 1.0 ๋ฐ 1.1 ํ”„๋กœํ† ์ฝœ์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(tls-version-min ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ 1.2๋กœ ์„ค์ •๋จ). ๋‚ด์žฅ๋œ ์˜์‚ฌ ๋‚œ์ˆ˜ ์ƒ์„ฑ๊ธฐ ๊ตฌํ˜„(-prng)์ด ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. mbed TLS ๋˜๋Š” OpenSSL ์•”ํ˜ธํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ PRNG ๊ตฌํ˜„์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. PF(ํŒจํ‚ท ํ•„ํ„ฐ๋ง) ์ง€์›์ด ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์••์ถ•์€ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค(--allow-compression=no).
  • ๊ธฐ๋ณธ ์•”ํ˜ธ ๋ชฉ๋ก์— CHACHA20-POLY1305๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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