๋ค์ค ํ๋ซํผ ๊ณ ์ฑ๋ฅ POP3/IMAP4 ์๋ฒ Dovecot 2.3.21์ ์ ๋ฒ์ ์ด ์ถ์๋์ด SORT, THREAD ๋ฐ IDLE๊ณผ ๊ฐ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ํ์ฅ ๊ธฐ๋ฅ๊ณผ ์ธ์ฆ ๋ฐ ์ํธํ ๋ฉ์ปค๋์ฆ(SASL, TLS, ๊ธด๊ธ ์ ์ง). Dovecot์ ์ฑ๋ฅ ํฅ์์ ์ํด ์ธ๋ถ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ์ฌ ํด๋์ mbox ๋ฐ Maildir๊ณผ ์๋ฒฝํ๊ฒ ํธํ๋ฉ๋๋ค. ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ์ฌ ๊ธฐ๋ฅ์ ํ์ฅํ ์ ์์ต๋๋ค(์: ํ ๋น๋ ๋ฐ ACL์ ํ๋ฌ๊ทธ์ธ์ ํตํด ๊ตฌํ๋ฉ๋๋ค). ํ๋ก์ ํธ ์ฝ๋๋ LGPL ๋ฐ MIT ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค.
์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ :
- lib-oauth2: "typ" ํ๋๊ฐ ๋๋ฝ๋ JWT ํ ํฐ์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํ์ฉํฉ๋๋ค. ์ผ๋ถ ์ฃผ์ ๋ฐ๊ธ์, ํนํ kubernetes์์๋ ๊ณต๊ฐ์ ์ ์ฝํ๊ธฐ ์ํด "typ" ํ๋๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค. ์ด์ "typ"๊ฐ ์์ด๋ ํ์ฉ๋์ง๋ง, ์กด์ฌํ๋ค๋ฉด ์ฌ์ ํ "jwt"์ฌ์ผ ํฉ๋๋ค.
- auth: passdb ๋ฐ userdb์ "Auth" ์๋ต์๋ "event_" ๊ฐ์ด ํฌํจ๋ ์ ์์ต๋๋ค. =value"๋ ๋ก๊ทธ์ธ ์ด๋ฒคํธ์ ๋ฉ์ผ ์ฌ์ฉ์ ์ด๋ฒคํธ์ ๊ฐ๊ฐ ์ถ๊ฐ๋ฉ๋๋ค.
- lib-master: ํ๋ก์ธ์ค๊ฐ ๋ฌด์์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋์ง ๋ช ํํ ํ๊ธฐ ์ํด ๋ค์ํ ์ด๊ธฐํ ๋จ๊ณ์์ ํ๋ก์ธ์ค ์ ๋ชฉ์ ์ค์ ํฉ๋๋ค.
- lib-storage: ๋ก๋ ๊ธ์ฆ ๊ฐ๋ฅ์ฑ์ ์ค์ด๊ธฐ ์ํด ์ด์ mail_temp_scan_interval์ด ์ฌ์ฉ์ ์ด๋ฆ ํด์๋ฅผ ๊ธฐ์ค์ผ๋ก 0~30% ์ฆ๊ฐํฉ๋๋ค.
- lib-storage: ์ฌ์ฉ์๊ฐ ๊ฒฝํํ๋ ์ง์ฐ์ ์ค์ด๊ธฐ ์ํด ์์ ํ์ผ ๊ฒ์์ ์ฌ์ํจ์ด ์ด๋ฆฌ๋ ์๊ฐ๋ถํฐ ๋ซํ๋ ์๊ฐ์ผ๋ก ์ด๋ํ์ต๋๋ค.
- ํต๊ณ: ์งํ์ ํ๋๊ฐ ์ง์ ๋๋ฉด ์ด๋ฌํ ๋ชจ๋ ํ๋๋ ์ค๋ช ํ์์ ํ๋ก๋ฉํ ์ฐ์ค์ ๋ํ ์นด์ดํฐ๋ก ๋ด๋ณด๋ด์ง๋๋ค.
- "*-login": SSL ์ฐ๊ฒฐ์ด ์ค์๋ก ์ข ๋ฃ๋ ๊ฒฝ์ฐ ํ๋ก์ธ์ค๊ฐ ์ค๋จ๋ ์ ์์ต๋๋ค. - acl: ํ๋ฌ๊ทธ์ธ์ ๋ก๋ํ ๋ ์ด๋ฆ์ '*' ๋ฐ '%'๊ฐ ํฌํจ๋ ์ฌ์ํจ์ ๋ํด \\HasChildren ๋ฐ \\HasNoChildren ํ๋๊ทธ๊ฐ ์๋ชป ๊ณ์ฐ๋์์ต๋๋ค.
- auth: ์์ํ๋ ๋์ PostgreSQL DBMS์ ์ฐ๊ฒฐํ ๋ ์ถฉ๋์ด ๋ฐ์ํ์ต๋๋ค.
- auth: ์๋ชป๋ ๋น๋ฐ๋ฒํธ(์: ์ ์ ์๋ ๊ตฌ์ฑํ)๋ก ๋ก๊ทธ์ธํ๋ฉด passdb์์ "๋ด๋ถ ์ค๋ฅ" ๋์ "๋น๋ฐ๋ฒํธ ๋ถ์ผ์น" ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
- auth: XOAUTH2 ๋ฐ OAUTHBEARER ๋ฉ์ปค๋์ฆ์ ์ค๋ฅ์ ๋ํด ํ๋กํ ์ฝ๋ณ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ๋ฐํํ์ง ์์์ต๋๋ค. ์ด๋ ํนํ OIDC ํ์ง๋ฅผ ๋ฐฉํดํ์ต๋๋ค.
- dbox: last_temp_file_scan ํค๋๊ฐ ์ค์ ๋์ง ์์ ๊ฒฝ์ฐ(ํนํ dsync ๋ง์ด๊ทธ๋ ์ด์ ํ) ๋ค์์ ์ฌ์ํจ์ด ์ด๋ฆด ๋ ํญ์ ์์ ํ์ผ ๊ฒ์ฌ๊ฐ ์์๋ฉ๋๋ค. ์ด๋ก ์ธํด ๋ง์ด๊ทธ๋ ์ด์ ํ ๋ก๋ ๊ธ์ฆ์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ํค๋๊ฐ ์์ ๋ ๋ฉ์ผ๋ฐ์ค ๋๋ ํ ๋ฆฌ atime์ ์ฌ์ฉํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ์ด๋ก ์ธํด ์ผ๋ฐ์ ์ผ๋ก ์ค์บ ์๊ฐ์ด ๋ฏธ๋๋ก ๋ฏธ๋ค์ง๋๋ค.
- dict-redis: ํธ๋์ญ์ ๋กค๋ฐฑ์ ์คํจํ์ต๋๋ค.
- dsync: ์๊ฒฉ ์ธก์ ์ฌ์ํจ์ ์ญ์ ํ ๋ ๊ณ์ธต ๊ตฌ๋ถ ๊ธฐํธ๊ฐ ์ผ์นํ์ง ์์ผ๋ฉด ๋ฌดํ ๋ฃจํ๊ฐ ๋ฐ์ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ต๋๋ค.
- dsync: BROKENCHAR๊ฐ ์ค์ ๋์ง ์์ ๊ฒฝ์ฐ '%'๋ก ๋๋๋ ํด๋ ์ด๋ฆ์ ๋ํด ์ฆ๋ถ dsync๊ฐ ์ํ๋์ง ์์์ต๋๋ค. ๋ํ ๋ค๋ฅธ ์์น์ '%'๊ฐ ์๋ ํด๋ ์ด๋ฆ์ผ๋ก ์ธํด ํด๋ ์ด๋ฆ์ด ๋ถํ์ํ๊ฒ ์์ ์ด๋ฆ์ผ๋ก ๋ฐ๋์๋ค๊ฐ ๊ฐ ์ฆ๋ถ dsync์์ ๋ค์ ์๋ ์ด๋ฆ์ผ๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค. ํ๊ท v2.3.19.
- imap-hibernate: ์ ๊ธ ํด์ ์ค "(๋ฒ์ ์์ ๋จ)" ๋ฉ์์ง์ ํจ๊ป IMAP ํด๋ผ์ด์ธํธ๊ฐ ์๊ฐ ์ด๊ณผ๋ ๊ฒฝ์ฐ ๋์ค์ ์ ๊ธ ํด์ ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋๊ณ ์ ์์ ์ธ ์์ ์ ๊ณ์ํ ์ ์์ต๋๋ค. imap-hibernate๊ฐ ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ์ด ๋์ด์ก์์ ์ด๋ฏธ ๊ฐ์งํ๊ธฐ ๋๋ฌธ์ ์ด๋ ํผ๋์ค๋ฌ์ ์ต๋๋ค. ์ต๋ ์ ์ ๋ชจ๋ ์๊ฐ ์ด๊ณผ๋ก ์ฐ๊ฒฐ์ ๊ฐ์ ๋ก ์ข ๋ฃํ๋ฉด ์ด๋ฅผ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
- imapc: ๊ฐ์ ํ๋ฌ๊ทธ์ธ์ ํตํด ํ์๋ ํด๋๊ฐ ์ ์ฅ์์์ ์ฌ๋ผ์ง๋ฉด ์ถฉ๋์ด ๋ฐ์ํฉ๋๋ค.
- imapc: ์ด์ ์ ์ ํํ ๋ฉ์ผํจ์ ๋ํ ์๋ฒ์ EXPUNGE, EXISTS ๋๋ FETCH ์๋ต์ ํ์ฌ ์ ํํ ์ ๋ฉ์ผํจ์ ์ํ ๊ฒ์ฒ๋ผ ์ฒ๋ฆฌ๋ ์ ์์ต๋๋ค. ์ด๋ก ์ธํด ๊ฒฝ๊ณ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
- lib-http: Dovecot HTTP ์๋ฒ(doveadm, stats/openmetrics)๋ ์๋ต์ด ์์ ํ ์ ์ก๋๊ธฐ ์ ์ HTTP ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ์ ๋์ ์ ์์ต๋๋ค. ์ด๋ ์ปค๋ ์์ผ ๋ฒํผ๊ฐ ๊ฐ๋ ์ฐฌ ๋ฐ์ ์๋ฒ์์๋ง ๋ฐ์ํ์ต๋๋ค.
- lib-http: ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ์ด ์ผ์ฐ ๋์ด์ง๋ฉด http ์๋ฒ๊ฐ ์ถฉ๋ํ ์ ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. 2.3.18์ ํ๊ท.
- lib-index: ์ธ๋ฑ์ค ํ์ผ์ด ์์๋๋ฉด ์ถฉ๋์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ํด๊ฒฐ๋จ: ํจ๋: ํ์ผ mail-transaction-log-view.c: 165ํ(mail_transaction_log_view_set): ์ด์ค์ ์คํจ: (min_file_seq <= max_file_seq).
- lib-index: 1GB๋ณด๋ค ํฐ ๊ธฐ์กด ์บ์ ํ์ผ์ ์ง์ฐ๋ฉด ์ถฉ๋์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด์ ์ญ์ ํ์๋ ์ฌ์ ํ 1GB๋ณด๋ค ํฐ ์บ์ ํ์ผ์ด ์ญ์ ๋ฉ๋๋ค. ์์ ๋จ: ํจ๋: ํ์ผ mail-index-util.c: 10ํ(mail_index_uint32_to_offset): ์ด์ค์ ์คํจ: (์คํ์ < 0x40000000).
- lib-lua: HTTP ํด๋ผ์ด์ธํธ๋ "dns-client" ์์ผ์ด ํ์ฌ ๋๋ ํฐ๋ฆฌ์ ์์ ๊ฒ์ผ๋ก ์์ํ๊ธฐ ๋๋ฌธ์ ๋ฉ์ผ ํ๋ก์ธ์ค์์ DNS ์ด๋ฆ์ ํ์ธํ ์ ์์ต๋๋ค.
- lib-oauth2: Dovecot์ client_id ๋ฐ client_secret์ POST ๋งค๊ฐ๋ณ์๋ก ์ธํธ๋ก์คํ์ ์๋ฒ์ ๋ณด๋์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ธฐ๋ณธ ์ธ์ฆ์ ๊ฒฝ์ฐ ์ฌ์ฉ์ ์ ํ ์ฌํญ์ ๋๋ค.
- lib-oauth2: "aud"๊ฐ ํ ํฐ์ ์์ง๋ง Dovecot์ ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ JWT "aud" ์ ํจ์ฑ ๊ฒ์ฌ๊ฐ ์ํ๋์ง ์์์ต๋๋ค.
- lib-oauth2: JWT ํค ์ ํ ํ์ธ์ด ๋๋ฌด ์๊ฒฉํฉ๋๋ค.
- lib-oauth2: ์ฌ์์์ ์๊ตฌํ๋ ๋๋ก JWT ํ ํฐ ๋์์ด client_id์ ๋ํด ํ์ธ๋์ง ์์์ต๋๋ค.
- lib-ssl-iostream: ssl_require_crl=yes ์ต์ ์ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ SSL ์ธ์ฆ์์ ๋ํ CRL ํ์ธ์๋ง ์ํฅ์ ์ฃผ๊ธฐ ์ํ ๊ฒ์ด์ง๋ง ๋๊ฐ๋ SSL/TLS ์ฐ๊ฒฐ์ ๋ํ CRL ํ์ธ์ด ์คํจํ ์ ์์ต๋๋ค. v2.3.17 ํ๊ท.
- lib-sql: ์ฐ๊ฒฐ ์คํจ ์ MySQL ๋๋ผ์ด๋ฒ์์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋์ถ๋์์ต๋๋ค.
- lib-storage: ๋์คํฌ ๊ณต๊ฐ ๋ถ์กฑ์ ๋ํ ๋ค์ํ ์์ ์ฌํญ.
- master: ์ฌ์ฉ๋์ด ๋ง์ ์๋ฒ์์๋dle_kill ์๋น์ค ์ค์ ์ด ์ ๋๋ก ์๋ํ์ง ์์์ต๋๋ค. ์ด๋ค ํ๋ก์ธ์ค๋ ์ข ๋ฃ๋ ๋งํผ ์ค๋ซ๋์ ์ ํด ์ํ๋ก ์์ ๊ฐ๋ฅ์ฑ์ ๊ฑฐ์ ์์ต๋๋ค. ๊ฒ๋ค๊ฐ ํ๋ก์ธ์ค ์๊ฐ ๋ง์ ๊ฒฝ์ฐ(์: imap), Idle_kill ์ฒ๋ฆฌ ์ฝ๋๋ ๋ฉ์ธ ํ๋ก์ธ์ค์ CPU๋ฅผ ์๋นํ ๋ง์ด ์ฌ์ฉํ์ต๋๋ค. ์ด์ ๊ฐ ์ ํด_kill ์๊ฐ ๊ฐ๊ฒฉ์ ๊ฐ์ฅ ์ ์ ์์ ์ ํด ํ๋ก์ธ์ค๋ฅผ ๋ชจ๋ํฐ๋งํ ๋ค์ ํด๋น ์๋ฅผ ์ข ๋ฃํฉ๋๋ค.
- mdbox: ํญ์ ๋น์ด ์๋ ๋๋ ํฐ๋ฆฌ์ ๋ํด ์์ ํ์ผ ๊ฒ์ฌ๊ฐ ์ํ๋์์ต๋๋ค.
- mdbox: ์ด๋ฉ์ผ์ ์์ฑํ ๋ fdatasync() ํธ์ถ์ด ์๋ชป๋ ์์ ๋๋ ํ ๋ฆฌ์์ ์คํ๋์์ต๋๋ค. ๋ํ ์ถฉ๋์ด ๋ฐ์ํ๋ฉด ๋ก๊ทธ์ ์ค๋ฅ๋ฅผ ๊ธฐ๋กํ๋ ๋์ ์ถฉ๋์ด ๋ฐ์ํ์ต๋๋ค.
- inform_status: ์ฌ์ฉ์ ์ด๊ธฐํ์ ์คํจํ๋ฉด ํ๋ฌ๊ทธ์ธ์ด ์ถฉ๋ํฉ๋๋ค. - pop3: ':'์ด ํฌํจ๋ ๋ช ๋ น์ ๋ณด๋ด๋ฉด "assert-crash"๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ฆด๋ฆฌ์ค 2.3.18์ ํ๊ท.
- stats: "doveadm stats add" ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์ ์งํ๋ฅผ ๋์ ์ผ๋ก ์ถ๊ฐํ ๋ ์กด์ฌํ์ง ์๋ ์ด๋ฒคํธ ๋ด๋ณด๋ด๊ธฐ์ ์ก์ธ์คํ ๋ ๋ฐ์ํ๋ ํจ๋์ ์์ ํ์ต๋๋ค. ์ด์ ์ฌ๋ฐ๋ฅธ ์ค๋ฅ๊ฐ ์ ๊ณต๋ฉ๋๋ค.
- ํต๊ณ: ํ๋ก์ธ์ค๊ฐ ๋ง์ ์ด๋ฒคํธ๋ฅผ ๋ด๋ณด๋ธ ๋ค์ ์ข ๋ฃํ ๊ฒฝ์ฐ ์ต์ ์ด๋ฒคํธ ์ค ์ผ๋ถ๊ฐ ์์ค๋์์ ์ ์์ต๋๋ค.
- ํต๊ณ: ํน์ ํ์คํ ๊ทธ๋จ group_by ๊ตฌ์ฑ์ผ๋ก ์๋ชป๋ Prometheus ๋ผ๋ฒจ ์ด๋ฆ์ด ์์ฑ๋์์ต๋๋ค. ํ๋ก๋ฉํ ์ฐ์ค๋ ์ด๋ฌํ ๋ผ๋ฒจ์ ๊ฑฐ๋ถํ์ต๋๋ค.
- Welcome: INBOX๊ฐ ์์ฑ๋์์ง๋ง ์ด๋ฆฌ์ง ์์ ์ผ๋ถ ์ํฉ(์: INBOX๋ฅผ ์ด๊ธฐ ์ ์ GETMETADATA๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ)์์ ํ๋ฌ๊ทธ์ธ์ด ์คํจํ์ต๋๋ค.
์ถ์ฒ : opennet.ru