Zimbra Collaboration Suite Open-Source Edition์—์„œ SSL ์—ฐ๊ฒฐ ๋ณด์•ˆ ์„ค์ • ๊ฐœ์„ 

์•”ํ˜ธํ™”์˜ ๊ฐ•๋„๋Š” ์ •๋ณด ์‹œ์Šคํ…œ์„ ๋น„์ฆˆ๋‹ˆ์Šค์— ์‚ฌ์šฉํ•  ๋•Œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ง€ํ‘œ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ •๋ณด ์‹œ์Šคํ…œ์€ ๋งค์ผ ์—„์ฒญ๋‚œ ์–‘์˜ ๊ธฐ๋ฐ€ ์ •๋ณด ์ „์†ก์— ๊ด€์—ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ SSL ์—ฐ๊ฒฐ ํ’ˆ์งˆ์„ ํ‰๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ Qualys SSL Labs์˜ ๋…๋ฆฝ์ ์ธ ํ…Œ์ŠคํŠธ์ž…๋‹ˆ๋‹ค. ์ด ํ…Œ์ŠคํŠธ๋Š” ๋ˆ„๊ตฌ๋‚˜ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ SaaS ์ œ๊ณต์—…์ฒด๊ฐ€ ์ด ํ…Œ์ŠคํŠธ์—์„œ ๊ฐ€๋Šฅํ•œ ๊ฐ€์žฅ ๋†’์€ ์ ์ˆ˜๋ฅผ ์–ป๋Š” ๊ฒƒ์ด ํŠนํžˆ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. SaaS ์ œ๊ณต์—…์ฒด๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ผ๋ฐ˜ ๊ธฐ์—…๋„ SSL ์—ฐ๊ฒฐ ํ’ˆ์งˆ์— ๊ด€์‹ฌ์„ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์—๊ฒŒ ์ด ํ…Œ์ŠคํŠธ๋Š” ์ž ์žฌ์ ์ธ ์ทจ์•ฝ์ ์„ ์‹๋ณ„ํ•˜๊ณ  ์‚ฌ์ด๋ฒ„ ๋ฒ”์ฃ„์ž์˜ ๋ชจ๋“  ํ—ˆ์ ์„ ์‚ฌ์ „์— ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ๋Š” ํ›Œ๋ฅญํ•œ ๊ธฐํšŒ์ž…๋‹ˆ๋‹ค.

Zimbra Collaboration Suite Open-Source Edition์—์„œ SSL ์—ฐ๊ฒฐ ๋ณด์•ˆ ์„ค์ • ๊ฐœ์„ 
Zimbra OSE๋Š” ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์˜ SSL ์ธ์ฆ์„œ๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” ์„ค์น˜ ์ค‘์— ์ž๋™์œผ๋กœ ์ถ”๊ฐ€๋˜๋Š” ์ž์ฒด ์„œ๋ช…๋œ ์ธ์ฆ์„œ์ž…๋‹ˆ๋‹ค. ์ด ์ธ์ฆ์„œ๋Š” ๋ฌด๋ฃŒ์ด๋ฉฐ ์‹œ๊ฐ„ ์ œํ•œ์ด ์—†์œผ๋ฏ€๋กœ Zimbra OSE๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ฑฐ๋‚˜ ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ ๋‚ด์—์„œ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์›น ํด๋ผ์ด์–ธํŠธ์— ๋กœ๊ทธ์ธํ•˜๋ฉด ์‚ฌ์šฉ์ž๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ด ์ธ์ฆ์„œ๋ฅผ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒฝ๊ณ ๋ฅผ ๋ณด๊ฒŒ ๋˜๋ฉฐ ์„œ๋ฒ„๋Š” ํ™•์‹คํžˆ Qualys SSL Labs์˜ ํ…Œ์ŠคํŠธ์— ์‹คํŒจํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ๋Š” ์ธ์ฆ ๊ธฐ๊ด€์—์„œ ์„œ๋ช…ํ•œ ์ƒ์šฉ SSL ์ธ์ฆ์„œ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ธ์ฆ์„œ๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‰ฝ๊ฒŒ ์Šน์ธ๋˜๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ Zimbra OSE์˜ ์ƒ์—…์  ์šฉ๋„๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ƒ์šฉ ์ธ์ฆ์„œ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์น˜ํ•œ ์งํ›„ Zimbra OSE 8.8.15๋Š” Qualys SSL Labs์˜ ํ…Œ์ŠคํŠธ์—์„œ A ์ ์ˆ˜๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด๋Š” ํ›Œ๋ฅญํ•œ ๊ฒฐ๊ณผ์ด์ง€๋งŒ, ์šฐ๋ฆฌ์˜ ๋ชฉํ‘œ๋Š” A+ ๊ฒฐ๊ณผ๋ฅผ ๋‹ฌ์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Zimbra Collaboration Suite Open-Source Edition์—์„œ SSL ์—ฐ๊ฒฐ ๋ณด์•ˆ ์„ค์ • ๊ฐœ์„ 

Zimbra Collaboration Suite Open-Source Edition์—์„œ SSL ์—ฐ๊ฒฐ ๋ณด์•ˆ ์„ค์ • ๊ฐœ์„ 

Zimbra Collaboration Suite Open-Source Edition์„ ์‚ฌ์šฉํ•  ๋•Œ Qualys SSL Labs์˜ ํ…Œ์ŠคํŠธ์—์„œ ์ตœ๋Œ€ ์ ์ˆ˜๋ฅผ ์–ป์œผ๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

1. Diffie-Hellman ํ”„๋กœํ† ์ฝœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ฆ๊ฐ€

๊ธฐ๋ณธ์ ์œผ๋กœ OpenSSL์„ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  Zimbra OSE 8.8.15 ๊ตฌ์„ฑ ์š”์†Œ์—๋Š” Diffie-Hellman ํ”„๋กœํ† ์ฝœ ์„ค์ •์ด 2048๋น„ํŠธ๋กœ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์›์น™์ ์œผ๋กœ ์ด๋Š” Qualys SSL Labs์˜ ํ…Œ์ŠคํŠธ์—์„œ A+ ์ ์ˆ˜๋ฅผ ๋ฐ›๊ธฐ์— ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด์ „ ๋ฒ„์ „์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒฝ์šฐ ์„ค์ •์ด ๋” ๋‚ฎ์•„์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์™„๋ฃŒ๋œ ํ›„ zmdhparam set -new 2048 ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ Diffie-Hellman ํ”„๋กœํ† ์ฝœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•œ 2048๋น„ํŠธ๋กœ ๋Š˜๋ฆฌ๊ณ  ์›ํ•˜๋Š” ๊ฒฝ์šฐ ๋™์ผํ•œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์„ 3072 ๋˜๋Š” 4096๋น„ํŠธ๋กœ ์„ค์ •ํ•˜๋ฉด ์ƒ์„ฑ ์‹œ๊ฐ„์ด ๋Š˜์–ด๋‚˜์ง€๋งŒ ๋ฉ”์ผ ์„œ๋ฒ„์˜ ๋ณด์•ˆ ์ˆ˜์ค€์— ๊ธ์ •์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

2. ์‚ฌ์šฉ๋œ ๊ถŒ์žฅ ์•”ํ˜ธ ๋ชฉ๋ก ํฌํ•จ

๊ธฐ๋ณธ์ ์œผ๋กœ Zimbra Collaborataion Suite Open-Source Edition์€ ๋ณด์•ˆ ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์ „๋‹ฌ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๋Š” ๊ฐ•๋ ฅํ•˜๊ณ  ์•ฝํ•œ ์•”ํ˜ธํ™”๋ฅผ ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์•ฝํ•œ ์•”ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ SSL ์—ฐ๊ฒฐ์˜ ๋ณด์•ˆ์„ ํ™•์ธํ•  ๋•Œ ์‹ฌ๊ฐํ•œ ๋‹จ์ ์ด ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ์‚ฌ์šฉ๋˜๋Š” ์•”ํ˜ธ ๋ชฉ๋ก์„ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. zmprov mcf zimbraReverseProxySSLCiphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128:AES256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4'

์ด ๋ช…๋ น์—๋Š” ๊ถŒ์žฅ ์•”ํ˜ธ ์„ธํŠธ๊ฐ€ ์ฆ‰์‹œ ํฌํ•จ๋˜๋ฉฐ ๋•๋ถ„์— ๋ช…๋ น์€ ๋ชฉ๋ก์— ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์•”ํ˜ธ๋ฅผ ์ฆ‰์‹œ ํฌํ•จํ•˜๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์•”ํ˜ธ๋ฅผ ์ œ์™ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋‚จ์€ ๊ฒƒ์€ zmproxyctl restart ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ญ๋ฐฉํ–ฅ ํ”„๋ก์‹œ ๋…ธ๋“œ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์žฌ๋ถ€ํŒ…ํ•˜๋ฉด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์–ด๋–ค ์ด์œ ๋กœ๋“  ์ด ๋ชฉ๋ก์ด ์ ํ•ฉํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์•ฝํ•œ ์•”ํ˜ธ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. zmprov mcf +zimbraSSLExcludeCipherSuites. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ ๋ช…๋ น์€ zmprov mcf +zimbraSSLExcludeCipherSuites TLS_RSA_WITH_RC4_128_MD5 +zimbraSSLExcludeCipherSuites TLS_RSA_WITH_RC4_128_SHA +zimbraSSLExcludeCipherSuites SSL_RSA_WITH_RC4_128_MD5 +zimbraSSLExcludeCipherSuites SSL_RSA_WITH_RC4_128_SHA +zimbraSSLExcludeCipherSuites TLS_ECDHE_RSA_WITH_RC4_128_SHA, ์ด๋Š” RC4 ์•”ํ˜ธ์˜ ์‚ฌ์šฉ์„ ์™„์ „ํžˆ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. AES ๋ฐ 3DES ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. HSTS ํ™œ์„ฑํ™”

Qualys SSL Labs ํ…Œ์ŠคํŠธ์—์„œ ๋งŒ์ ์„ ์–ป์œผ๋ ค๋ฉด ์—ฐ๊ฒฐ ์•”ํ˜ธํ™” ๋ฐ TLS ์„ธ์…˜ ๋ณต๊ตฌ๋ฅผ ๊ฐ•์ œํ•˜๋Š” ํ™œ์„ฑํ™”๋œ ๋ฉ”์ปค๋‹ˆ์ฆ˜๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. zmprov mcf +zimbraResponseHeader "Strict-Transport-Security: max-age=31536000". ์ด ๋ช…๋ น์€ ํ•„์š”ํ•œ ํ—ค๋”๋ฅผ ๊ตฌ์„ฑ์— ์ถ”๊ฐ€ํ•˜๋ฉฐ, ์ƒˆ๋กœ์šด ์„ค์ •์„ ์ ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ Zimbra OSE๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. zmcontrol ๋‹ค์‹œ ์‹œ์ž‘.

์ด๋ฏธ ์ด ๋‹จ๊ณ„์—์„œ Qualys SSL Labs์˜ ํ…Œ์ŠคํŠธ๋Š” A+ ๋“ฑ๊ธ‰์„ ํ‘œ์‹œํ•˜์ง€๋งŒ, ์„œ๋ฒ„ ๋ณด์•ˆ์„ ๋”์šฑ ํ–ฅ์ƒ์‹œํ‚ค๋ ค๋Š” ๊ฒฝ์šฐ ์ทจํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ์กฐ์น˜๊ฐ€ ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Zimbra Collaboration Suite Open-Source Edition์—์„œ SSL ์—ฐ๊ฒฐ ๋ณด์•ˆ ์„ค์ • ๊ฐœ์„ 

์˜ˆ๋ฅผ ๋“ค์–ด, ํ”„๋กœ์„ธ์Šค ๊ฐ„ ์—ฐ๊ฒฐ์˜ ๊ฐ•์ œ ์•”ํ˜ธํ™”๋ฅผ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, Zimbra OSE ์„œ๋น„์Šค์— ์—ฐ๊ฒฐํ•  ๋•Œ ๊ฐ•์ œ ์•”ํ˜ธํ™”๋ฅผ ํ™œ์„ฑํ™”ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค ๊ฐ„ ์—ฐ๊ฒฐ์„ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜์‹ญ์‹œ์˜ค.

zmlocalconfig -e ldap_starttls_supported=1
zmlocalconfig -e zimbra_require_interprocess_security=1
zmlocalconfig -e ldap_starttls_required=true

๊ฐ•์ œ ์•”ํ˜ธํ™”๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

zmprov gs `zmhostname` zimbraReverseProxyMailMode
zmprov ms `zmhostname` zimbraReverseProxyMailMode https

zmprov gs `zmhostname` zimbraMailMode
zmprov ms `zmhostname` zimbraMailMode https

zmprov gs `zmhostname` zimbraReverseProxySSLToUpstreamEnabled
zmprov ms `zmhostname` zimbraReverseProxySSLToUpstreamEnabled TRUE

์ด๋Ÿฌํ•œ ๋ช…๋ น ๋•๋ถ„์— ํ”„๋ก์‹œ ์„œ๋ฒ„ ๋ฐ ๋ฉ”์ผ ์„œ๋ฒ„์— ๋Œ€ํ•œ ๋ชจ๋“  ์—ฐ๊ฒฐ์ด ์•”ํ˜ธํ™”๋˜๊ณ  ์ด๋Ÿฌํ•œ ๋ชจ๋“  ์—ฐ๊ฒฐ์ด ํ”„๋ก์‹œ๋ฉ๋‹ˆ๋‹ค.

Zimbra Collaboration Suite Open-Source Edition์—์„œ SSL ์—ฐ๊ฒฐ ๋ณด์•ˆ ์„ค์ • ๊ฐœ์„ 

๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ์˜ ๊ถŒ์žฅ ์‚ฌํ•ญ์„ ๋”ฐ๋ฅด๋ฉด SSL ์—ฐ๊ฒฐ ๋ณด์•ˆ ํ…Œ์ŠคํŠธ์—์„œ ๊ฐ€์žฅ ๋†’์€ ์ ์ˆ˜๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ „์ฒด Zimbra OSE ์ธํ”„๋ผ์˜ ๋ณด์•ˆ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Zextras Suite์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ์งˆ๋ฌธ์€ Zextras Ekaterina Triandafilidi ๋Œ€ํ‘œ์—๊ฒŒ ์ด๋ฉ”์ผ๋กœ ๋ฌธ์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. [์ด๋ฉ”์ผ ๋ณดํ˜ธ]

์ถœ์ฒ˜ : habr.com

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