Rspamd 3.0 ์ŠคํŒธ ํ•„ํ„ฐ๋ง ์‹œ์Šคํ…œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

Rspamd 3.0 ์ŠคํŒธ ํ•„ํ„ฐ๋ง ์‹œ์Šคํ…œ์ด ์ถœ์‹œ๋˜์–ด ๋ฉ”์‹œ์ง€์˜ ์ตœ์ข… ๊ฐ€์ค‘์น˜๊ฐ€ ํ˜•์„ฑ๋˜๋Š” ๊ทœ์น™, ํ†ต๊ณ„ ๋ฐฉ๋ฒ• ๋ฐ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ๋ฅผ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ ๊ธฐ์ค€์— ๋”ฐ๋ผ ๋ฉ”์‹œ์ง€๋ฅผ ํ‰๊ฐ€ํ•˜๋Š” ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋‹ค์Œ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฐจ๋‹จํ•˜๋‹ค. Rspamd๋Š” SpamAssassin์— ๊ตฌํ˜„๋œ ๊ฑฐ์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋ฉฐ SpamAssassin๋ณด๋‹ค ํ‰๊ท  10๋ฐฐ ๋น ๋ฅด๊ฒŒ ๋ฉ”์ผ์„ ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋” ๋‚˜์€ ํ•„ํ„ฐ๋ง ํ’ˆ์งˆ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ์ฝ”๋“œ๋Š” C ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ Apache 2.0 ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

Rspamd๋Š” ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์ถ•๋˜์—ˆ์œผ๋ฉฐ ์ฒ˜์Œ์—๋Š” ๋กœ๋“œ๊ฐ€ ๋งŽ์€ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค๊ณ„๋˜์–ด ์ดˆ๋‹น ์ˆ˜๋ฐฑ ๊ฐœ์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ŠคํŒธ ์ง•ํ›„๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๊ทœ์น™์€ ๋งค์šฐ ์œ ์—ฐํ•˜๋ฉฐ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ํ˜•ํƒœ์—์„œ๋Š” ์ •๊ทœ ํ‘œํ˜„์‹์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ณด๋‹ค ๋ณต์žกํ•œ ์ƒํ™ฉ์—์„œ๋Š” Lua๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ ํ™•์žฅ๊ณผ ์ƒˆ๋กœ์šด ์œ ํ˜•์˜ ๊ฒ€์‚ฌ ์ถ”๊ฐ€๋Š” C ๋ฐ Lua ์–ธ์–ด๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“ˆ์„ ํ†ตํ•ด ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด SPF๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด๋‚ธ ์‚ฌ๋žŒ์„ ํ™•์ธํ•˜๊ณ , DKIM์„ ํ†ตํ•ด ๋ณด๋‚ธ ์‚ฌ๋žŒ์˜ ๋„๋ฉ”์ธ์„ ํ™•์ธํ•˜๊ณ , DNSBL ๋ชฉ๋ก์— ๋Œ€ํ•œ ์š”์ฒญ์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ์„ ๋‹จ์ˆœํ™”ํ•˜๊ณ , ๊ทœ์น™์„ ์ƒ์„ฑํ•˜๊ณ , ํ†ต๊ณ„๋ฅผ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•ด ๊ด€๋ฆฌ ์›น ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „ ๋ฒˆํ˜ธ๊ฐ€ ํฌ๊ฒŒ ์ฆ๊ฐ€ํ•œ ๊ฒƒ์€ ๋‚ด๋ถ€ ์•„ํ‚คํ…์ฒ˜, ํŠนํžˆ HTML ๊ตฌ๋ฌธ ๋ถ„์„ ๋ถ€๋ถ„์ด ์™„์ „ํžˆ ๋‹ค์‹œ ์ž‘์„ฑ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ํŒŒ์„œ๋Š” DOM์„ ์‚ฌ์šฉํ•˜๊ณ  ํƒœ๊ทธ ํŠธ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ HTML์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ๋ฆด๋ฆฌ์Šค์—๋Š” ์ƒˆ๋กœ์šด HTML ํŒŒ์„œ์™€ ๊ฒฐํ•ฉํ•  ๋•Œ ๋ณด์ด๋Š” ์ฝ˜ํ…์ธ ์™€ ๋ณด์ด์ง€ ์•Š๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ๊ตฌ๋ณ„ํ•˜๋Š” ๊ฒƒ์„ ํฌํ•จํ•˜์—ฌ ์ตœ์‹  HTML ๋งˆํฌ์—…์ด ํฌํ•จ๋œ ์ด๋ฉ”์ผ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋Š” CSS ํŒŒ์„œ๋„ ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์„œ ์ฝ”๋“œ๊ฐ€ C ์–ธ์–ด๊ฐ€ ์•„๋‹Œ C++17๋กœ ์ž‘์„ฑ๋˜์—ˆ๋‹ค๋Š” ์ ์€ ์ฃผ๋ชฉํ•  ๋งŒํ•˜๋ฉฐ, ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ์ด ํ‘œ์ค€์„ ์ง€์›ํ•˜๋Š” ์–ด์…ˆ๋ธ”๋ฆฌ ํ‘œ์ค€์„ ์ง€์›ํ•˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐํƒ€ ํ˜์‹ :

  • Lua API์—์„œ Amazon ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค์— ์ง์ ‘ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” Amazon Web Services(AWS) API์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Amazon S3 ์Šคํ† ๋ฆฌ์ง€์— ๋ชจ๋“  ๋ฉ”์‹œ์ง€๋ฅผ ์ €์žฅํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • DMARC ๊ธฐ์ˆ  ์‚ฌ์šฉ๊ณผ ๊ด€๋ จ๋œ ๋ณด๊ณ ์„œ ์ƒ์„ฑ ์ฝ”๋“œ๊ฐ€ ์žฌ์ž‘์—…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณด๊ณ ์„œ ์ „์†ก ๊ธฐ๋Šฅ์€ ๋ณ„๋„์˜ spamadm dmarc_report ๋ช…๋ น์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฉ”์ผ๋ง ๋ชฉ๋ก์˜ ๊ฒฝ์šฐ "DMARC munging"์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋ฉ”์‹œ์ง€์— ์˜ฌ๋ฐ”๋ฅธ DMARC ๊ทœ์น™์ด ์ง€์ •๋œ ๊ฒฝ์šฐ ๋ฉ”์‹œ์ง€์˜ ๋ณด๋‚ธ ์‚ฌ๋žŒ ์ฃผ์†Œ๋ฅผ ๋ฉ”์ผ๋ง ์ฃผ์†Œ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
  • ๋ณด๋‚ธ ์‚ฌ๋žŒ ์ฃผ์†Œ ๋Œ€์‹  ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์ผ ๋ฆด๋ ˆ์ด์˜ IP ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” SPF์™€ ๊ฐ™์€ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” external_relay ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Bayes ํ† ํฐ์„ ์ž‘์„ฑํ•˜๊ณ  ๋‹ค์šด๋กœ๋“œํ•˜๋Š” "rspamadm bayes_dump" ๋ช…๋ น์ด ์ถ”๊ฐ€๋˜์–ด ๋‹ค๋ฅธ Rspamd ์ธ์Šคํ„ด์Šค ๊ฐ„์— ํ† ํฐ์„ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Pyzor ๊ณต๋™ ์ŠคํŒธ ์ฐจ๋‹จ ์‹œ์Šคํ…œ์„ ์ง€์›ํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ชจ๋‹ˆํ„ฐ๋ง ๋„๊ตฌ๊ฐ€ ์žฌ์„ค๊ณ„๋˜์–ด ์ด์ œ ํ˜ธ์ถœ ๋นˆ๋„๊ฐ€ ์ค„์–ด๋“ค๊ณ  ์™ธ๋ถ€ ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ๋กœ๋“œ๊ฐ€ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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