๋ฌด์ฐจ๋ณ„ ๋Œ€์ž… ๋ฐ DoS ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ Zimbra OSE๋ฅผ ๋ณดํ˜ธํ•˜์„ธ์š”.

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

๋ฌด์ฐจ๋ณ„ ๋Œ€์ž… ๋ฐ DoS ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ Zimbra OSE๋ฅผ ๋ณดํ˜ธํ•˜์„ธ์š”.

์›์น™์ ์œผ๋กœ ํ‘œ์ค€ Zimbra OSE ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌด์ฐจ๋ณ„ ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ์ž์‹ ์„ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณด์•ˆ ์ •์ฑ… ์„ค์ •์„ ์‚ฌ์šฉํ•˜๋ฉด ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ ์‹œ๋„ ์‹คํŒจ ํšŸ์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ทธ ์ดํ›„์—๋Š” ๊ณต๊ฒฉ์„ ๋ฐ›์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ๊ณ„์ •์ด ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์˜ ์ฃผ์š” ๋ฌธ์ œ์ ์€ ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž… ๊ณต๊ฒฉ์œผ๋กœ ์ธํ•ด ํ•œ ๋ช… ์ด์ƒ์˜ ์ง์› ๊ณ„์ •์ด ์ฐจ๋‹จ๋  ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๊ณ , ์ด๋กœ ์ธํ•ด ์ง์› ์—…๋ฌด๊ฐ€ ์ค‘๋‹จ๋˜์–ด ์ง์›์—๊ฒŒ ํฐ ์†์‹ค์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ ํšŒ์‚ฌ. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž…์— ๋Œ€ํ•œ ๋ณดํ˜ธ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค.

๋ฌด์ฐจ๋ณ„ ๋Œ€์ž… ๋ฐ DoS ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ Zimbra OSE๋ฅผ ๋ณดํ˜ธํ•˜์„ธ์š”.

๋ฌด์ฐจ๋ณ„ ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๋ ค๋ฉด DoSFilter๋ผ๋Š” ํŠน์ˆ˜ ๋„๊ตฌ๊ฐ€ ํ›จ์”ฌ ๋” ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๋Š” Zimbra OSE์— ๋‚ด์žฅ๋˜์–ด ์žˆ์œผ๋ฉฐ HTTP๋ฅผ ํ†ตํ•ด Zimbra OSE์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์„ ์ž๋™์œผ๋กœ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, DoSFilter์˜ ์ž‘๋™ ์›๋ฆฌ๋Š” PostScreen์˜ ์ž‘๋™ ์›๋ฆฌ์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ ๋‹จ์ง€ ๋‹ค๋ฅธ ํ”„๋กœํ† ์ฝœ์— ์‚ฌ์šฉ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์›๋ž˜ ๋‹จ์ผ ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—… ์ˆ˜๋ฅผ ์ œํ•œํ•˜๋„๋ก ์„ค๊ณ„๋œ DoSFilter๋Š” ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž… ๋ณดํ˜ธ๋„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Zimbra์— ๋‚ด์žฅ๋œ ๋„๊ตฌ์™€์˜ ์ฃผ์š” ์ฐจ์ด์ ์€ ํŠน์ • ํšŸ์ˆ˜์˜ ์‹œ๋„ ์‹คํŒจ ํ›„ ์‚ฌ์šฉ์ž ์ž์‹ ์„ ์ฐจ๋‹จํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํŠน์ • ๊ณ„์ •์— ๋กœ๊ทธ์ธํ•˜๋ ค๋Š” ์—ฌ๋Ÿฌ ์‹œ๋„์˜ IP ์ฃผ์†Œ๋ฅผ ์ฐจ๋‹จํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋•๋ถ„์— ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋Š” ๋ฌด์ฐจ๋ณ„ ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํšŒ์‚ฌ ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ๋ฅผ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” IP ์ฃผ์†Œ ๋ฐ ์„œ๋ธŒ๋„ท ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ํšŒ์‚ฌ ์ง์›์„ ์ฐจ๋‹จํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

DoSFilter์˜ ๊ฐ€์žฅ ํฐ ์žฅ์ ์€ ํŠน์ • ๊ณ„์ •์— ๋Œ€ํ•œ ์ˆ˜๋งŽ์€ ๋กœ๊ทธ์ธ ์‹œ๋„ ์™ธ์—๋„ ์ด ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ง์›์˜ ์ธ์ฆ ๋ฐ์ดํ„ฐ๋ฅผ ์žฅ์•…ํ•œ ํ›„ ํ•ด๋‹น ๊ณ„์ •์— ์„ฑ๊ณต์ ์œผ๋กœ ๋กœ๊ทธ์ธํ•˜๊ณ  ์ˆ˜๋ฐฑ ๊ฑด์˜ ์š”์ฒญ์„ ๋ณด๋‚ด๊ธฐ ์‹œ์ž‘ํ•œ ๊ณต๊ฒฉ์ž๋ฅผ ์ž๋™์œผ๋กœ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์„œ๋ฒ„์—.

๋‹ค์Œ ์ฝ˜์†” ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ DoSFilter๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • zimbraHttpDosFilterMaxRequestsPerSec โ€” ์ด ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•œ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ—ˆ์šฉ๋˜๋Š” ์ตœ๋Œ€ ์—ฐ๊ฒฐ ์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด ๊ฐ’์€ 30๊ฐœ์˜ ์—ฐ๊ฒฐ์ž…๋‹ˆ๋‹ค.
  • zimbraHttpDosFilterDelayMillis - ์ด ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด์ „ ๋ช…๋ น์—์„œ ์ง€์ •ํ•œ ์ œํ•œ์„ ์ดˆ๊ณผํ•˜๋Š” ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ์ง€์—ฐ์„ ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •์ˆ˜ ๊ฐ’ ์™ธ์—๋„ ๊ด€๋ฆฌ์ž๋Š” ์ง€์—ฐ์ด ์ „ํ˜€ ์—†๋„๋ก 0์„ ์ง€์ •ํ•˜๊ณ  ์ง€์ •๋œ ์ œํ•œ์„ ์ดˆ๊ณผํ•˜๋Š” ๋ชจ๋“  ์—ฐ๊ฒฐ์ด ๋‹จ์ˆœํžˆ ์ค‘๋‹จ๋˜๋„๋ก -1์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ -1์ž…๋‹ˆ๋‹ค.
  • zimbraHttpThrottleSafeIP โ€” ๊ด€๋ฆฌ์ž๋Š” ์ด ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์œ„์— ๋‚˜์—ด๋œ ์ œํ•œ ์‚ฌํ•ญ์ด ์ ์šฉ๋˜์ง€ ์•Š๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” IP ์ฃผ์†Œ์™€ ์„œ๋ธŒ๋„ท์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์˜ ๊ตฌ๋ฌธ์€ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜๋ฉด zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1์„ ์‚ฌ์šฉํ•˜๋ฉด ์ „์ฒด ๋ชฉ๋ก์„ ์™„์ „ํžˆ ๋ฎ์–ด์“ฐ๊ณ  ๋ชฉ๋ก์— ํ•˜๋‚˜์˜ IP ์ฃผ์†Œ๋งŒ ๋‚จ๊น๋‹ˆ๋‹ค. ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด zmprov mcf +zimbraHttpThrottleSafeIPs 127.0.0.1, ์ž…๋ ฅํ•œ IP ์ฃผ์†Œ๊ฐ€ ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋นผ๊ธฐ ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ—ˆ์šฉ ๋ชฉ๋ก์—์„œ ๋ชจ๋“  IP๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

DoSFilter๋Š” Zextras Suite Pro ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•  ๋•Œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™์‹œ ์—ฐ๊ฒฐ ์ˆ˜๋ฅผ 30์—์„œ 100์œผ๋กœ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100. ๋˜ํ•œ ํ—ˆ์šฉ๋œ ๋„คํŠธ์›Œํฌ ๋ชฉ๋ก์— ๊ธฐ์—… ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด ์ž‘์—…์€ ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.0.0/24. DoSFilter๋ฅผ ๋ณ€๊ฒฝํ•œ ํ›„์—๋Š” ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”์ผ ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค. zmmailboxdctl ์žฌ์‹œ์ž‘.

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

Zimbra OSE๋กœ ๊ธฐ์—… ์„œ๋ฒ„๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ๋ณดํ˜ธํ•˜๋ ค๋ฉด Fail2ban๊ณผ ๊ฐ™์€ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. Fail2ban์€ ์ •๋ณด ์‹œ์Šคํ…œ ๋กœ๊ทธ๋ฅผ ์ง€์†์ ์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์—ฌ ๋ฐ˜๋ณต๋˜๋Š” ํ–‰์œ„์— ๋Œ€ํ•ด ๋ฐฉํ™”๋ฒฝ ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜์—ฌ ์นจ์ž…์ž๋ฅผ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋‚ฎ์€ ์ˆ˜์ค€์—์„œ ์ฐจ๋‹จํ•˜๋ฉด ์„œ๋ฒ„์— ๋Œ€ํ•œ IP ์—ฐ๊ฒฐ ๋‹จ๊ณ„์—์„œ ๋ฐ”๋กœ ๊ณต๊ฒฉ์ž๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Fail2Ban์€ DoSFilter๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์ถ•๋œ ๋ณดํ˜ธ ๊ธฐ๋Šฅ์„ ์™„๋ฒฝํ•˜๊ฒŒ ๋ณด์™„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. FailXNUMXBan์„ Zimbra OSE์™€ ์—ฐ๊ฒฐํ•˜์—ฌ ๊ธฐ์—…์˜ IT ์ธํ”„๋ผ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์„ธ์š”.

๋‹ค๋ฅธ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Zimbra Collaboration Suite Open-Source Edition์€ ์ž‘์—…์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋กœ๊ทธ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์€ ํด๋”์— ์ €์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. /opt/์ง๋ธŒ๋ผ/๋กœ๊ทธ/ ํŒŒ์ผ ํ˜•ํƒœ๋กœ. ๋‹ค์Œ์€ ๊ทธ์ค‘ ๋ช‡ ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

  • Mailbox.log โ€” Jetty ๋ฉ”์ผ ์„œ๋น„์Šค ๋กœ๊ทธ
  • audit.log - ์ธ์ฆ ๋กœ๊ทธ
  • clamd.log โ€” ๋ฐ”์ด๋Ÿฌ์Šค ๋ฐฑ์‹  ์ž‘์—… ๋กœ๊ทธ
  • freshclam.log - ๋ฐ”์ด๋Ÿฌ์Šค ๋ฐฑ์‹  ์—…๋ฐ์ดํŠธ ๋กœ๊ทธ
  • Convertd.log โ€” ์ฒจ๋ถ€ ํŒŒ์ผ ๋ณ€ํ™˜๊ธฐ ๋กœ๊ทธ
  • zimbrastats.csv - ์„œ๋ฒ„ ์„ฑ๋Šฅ ๋กœ๊ทธ

Zimbra ๋กœ๊ทธ๋Š” ํŒŒ์ผ์—์„œ๋„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. /var/log/zimbra.log, Postfix ๋ฐ Zimbra ์ž์ฒด์˜ ๋กœ๊ทธ๊ฐ€ ๋ณด๊ด€๋˜๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค.

๋ฌด์ฐจ๋ณ„ ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ์‹œ์Šคํ…œ์„ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ์‚ฌ์„œํ•จ.๋กœ๊ทธ, ๊ฐ์‚ฌ.๋กœ๊ทธ ะธ zimbra.log.

๋ชจ๋“  ๊ธฐ๋Šฅ์ด ์ž‘๋™ํ•˜๋ ค๋ฉด Zimbra OSE๊ฐ€ ์„ค์น˜๋œ ์„œ๋ฒ„์— Fail2Ban ๋ฐ iptables๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Ubuntu๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. dpkg -s ์‹คํŒจ2๋ฐ˜, CentOS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ƒ  ๋ชฉ๋ก์ด ์„ค์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.. Fail2Ban์ด ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ด ํŒจํ‚ค์ง€๋Š” ๊ฑฐ์˜ ๋ชจ๋“  ํ‘œ์ค€ ์ €์žฅ์†Œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์„ค์น˜ํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

ํ•„์š”ํ•œ ๋ชจ๋“  ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์„ค์น˜๋˜๋ฉด Fail2Ban ์„ค์ •์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๊ตฌ์„ฑ ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. /etc/fail2ban/filter.d/zimbra.conf, ์ž˜๋ชป๋œ ๋กœ๊ทธ์ธ ์‹œ๋„๋ฅผ ์ผ์น˜์‹œํ‚ค๊ณ  Fail2Ban ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” Zimbra OSE ๋กœ๊ทธ์— ๋Œ€ํ•œ ์ •๊ทœ์‹์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์ธ์ฆ ์‹œ๋„๊ฐ€ ์‹คํŒจํ•  ๋•Œ Zimbra OSE๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋‹ค์–‘ํ•œ ์˜ค๋ฅ˜์— ํ•ด๋‹นํ•˜๋Š” ์ •๊ทœ์‹ ์„ธํŠธ๊ฐ€ ํฌํ•จ๋œ zimbra.conf ๋‚ด์šฉ์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค.

# Fail2Ban configuration file
 
[Definition]
failregex = [ip=<HOST>;] account - authentication failed for .* (no such account)$
                        [ip=<HOST>;] security - cmd=Auth; .* error=authentication failed for .*, invalid password;$
                        ;oip=<HOST>;.* security - cmd=Auth; .* protocol=soap; error=authentication failed for .* invalid password;$
                        ;oip=<HOST>;.* security - cmd=Auth; .* protocol=imap; error=authentication failed for .* invalid password;$
                        [oip=<HOST>;.* SoapEngine - handler exception: authentication failed for .*, account not found$
                        WARN .*;ip=<HOST>;ua=ZimbraWebClient .* security - cmd=AdminAuth; .* error=authentication failed for .*;$

ignoreregex =

Zimbra OSE์˜ ์ •๊ทœ ํ‘œํ˜„์‹์ด ์ปดํŒŒ์ผ๋˜๋ฉด ์ด์ œ Fail2ban ์ž์ฒด์˜ ๊ตฌ์„ฑ ํŽธ์ง‘์„ ์‹œ์ž‘ํ•  ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค. ์ด ์œ ํ‹ธ๋ฆฌํ‹ฐ์˜ ์„ค์ •์€ ํŒŒ์ผ์— ์žˆ์Šต๋‹ˆ๋‹ค. /etc/fail2ban/jail.conf. ๋งŒ์ผ์„ ๋Œ€๋น„ํ•ด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฑ์—… ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. ๊ทธ ํ›„์—๋Š” ์ด ํŒŒ์ผ์„ ๋Œ€๋žต ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์ค„์ž…๋‹ˆ๋‹ค.

# Fail2Ban configuration file
 
[DEFAULT]
ignoreip = 192.168.0.1/24
bantime = 600
findtime = 600
maxretry = 5
backend = auto
 
[ssh-iptables]
enabled = false
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, [email protected], [email protected]]
logpath = /var/log/messages
maxretry = 5
 
[sasl-iptables]
enabled = false
filter = sasl
backend = polling
action = iptables[name=sasl, port=smtp, protocol=tcp]
sendmail-whois[name=sasl, [email protected]]
logpath = /var/log/zimbra.log
 
[ssh-tcpwrapper]
enabled = false
filter = sshd
action = hostsdeny
sendmail-whois[name=SSH, dest=support@ company.ru]
ignoreregex = for myuser from
logpath = /var/log/messages
 
[zimbra-account]
enabled = true
filter = zimbra
action = iptables-allports[name=zimbra-account]
sendmail[name=zimbra-account, [email protected] ]
logpath = /opt/zimbra/log/mailbox.log
bantime = 600
maxretry = 5
 
[zimbra-audit]
enabled = true
filter = zimbra
action = iptables-allports[name=zimbra-audit]
sendmail[name=Zimbra-audit, [email protected]]
logpath = /opt/zimbra/log/audit.log
bantime = 600
maxretry = 5
 
[zimbra-recipient]
enabled = true
filter = zimbra
action = iptables-allports[name=zimbra-recipient]
sendmail[name=Zimbra-recipient, [email protected]]
logpath = /var/log/zimbra.log
bantime = 172800
maxretry = 5
 
[postfix]
enabled = true
filter = postfix
action = iptables-multiport[name=postfix, port=smtp, protocol=tcp]
sendmail-buffered[name=Postfix, [email protected]]
logpath = /var/log/zimbra.log
bantime = -1
maxretry = 5

์ด ์˜ˆ๋Š” ๋งค์šฐ ์ผ๋ฐ˜์ ์ด์ง€๋งŒ Fail2Ban์„ ์ง์ ‘ ์„ค์ •ํ•  ๋•Œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ์ผ๋ถ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฌด์‹œ โ€” ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Fail2Ban์ด ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š์•„์•ผ ํ•˜๋Š” ํŠน์ • IP ๋˜๋Š” ์„œ๋ธŒ๋„ท์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๊ธฐ์—…์˜ ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ ๋ฐ ๊ธฐํƒ€ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ฃผ์†Œ๋Š” ๋ฌด์‹œ๋œ ์ฃผ์†Œ ๋ชฉ๋ก์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.
  • ๋ฐ˜ํƒ€์ž„ โ€” ์œ„๋ฐ˜์ž๊ฐ€ ๊ธˆ์ง€๋˜๋Š” ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค. ์ดˆ ๋‹จ์œ„๋กœ ์ธก์ •๋ฉ๋‹ˆ๋‹ค. -1 ๊ฐ’์€ ์˜๊ตฌ ๊ธˆ์ง€๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • ์ตœ๋Œ€ ์žฌ์‹œ๋„ โ€” ํ•˜๋‚˜์˜ IP ์ฃผ์†Œ๊ฐ€ ์„œ๋ฒ„์— ์•ก์„ธ์Šค๋ฅผ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • Sendmail โ€” Fail2Ban์ด ์‹คํ–‰๋  ๋•Œ ์ž๋™์œผ๋กœ ์ด๋ฉ”์ผ ์•Œ๋ฆผ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ์„ค์ •์ž…๋‹ˆ๋‹ค.
  • ์ฐพ๊ธฐ์‹œ๊ฐ„ โ€” ์ตœ๋Œ€ ์‹œ๋„ ์‹คํŒจ ํšŸ์ˆ˜๊ฐ€ ์†Œ์ง„๋œ ํ›„ IP ์ฃผ์†Œ๊ฐ€ ์„œ๋ฒ„์— ๋‹ค์‹œ ์•ก์„ธ์Šค๋ฅผ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์„ค์ •์ž…๋‹ˆ๋‹ค(maxretry ๋งค๊ฐœ๋ณ€์ˆ˜).

Fail2Ban ์„ค์ •์œผ๋กœ ํŒŒ์ผ์„ ์ €์žฅํ•œ ํ›„ ๋‚จ์€ ๊ฒƒ์€ ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์„œ๋น„์Šค ์‹คํŒจ2๋ฐ˜ ์žฌ์‹œ์ž‘. ๋‹ค์‹œ ์‹œ์ž‘ํ•œ ํ›„์—๋Š” ๊ธฐ๋ณธ Zimbra ๋กœ๊ทธ๊ฐ€ ์ •๊ทœ์‹ ์ค€์ˆ˜ ์—ฌ๋ถ€๋ฅผ ์ง€์†์ ์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋•๋ถ„์— ๊ด€๋ฆฌ์ž๋Š” ๊ณต๊ฒฉ์ž๊ฐ€ Zimbra Collaboration Suite Open-Source Edition ์‚ฌ์„œํ•จ์— ์นจํˆฌํ•  ๊ฐ€๋Šฅ์„ฑ์„ ์‚ฌ์‹ค์ƒ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Zimbra OSE ๋‚ด์—์„œ ์‹คํ–‰๋˜๋Š” ๋ชจ๋“  ์„œ๋น„์Šค๋ฅผ ๋ณดํ˜ธํ•˜๊ณ  ๋ฌด๋‹จ ์ ‘๊ทผ ์‹œ๋„๋ฅผ ์ธ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. .

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

์ถœ์ฒ˜ : habr.com

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