GNU Rush 2.2, Pies 1.7 ๋ฐ mailutils 3.14์˜ ์ƒˆ ๋ฒ„์ „

์‚ฌ์šฉ์ž ์ž‘์—…์„ ์ œํ•œํ•ด์•ผ ํ•˜๋Š” ์›๊ฒฉ ์•ก์„ธ์Šค๊ฐ€ ์ œํ•œ๋œ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค๊ณ„๋œ ํŠน์ˆ˜ ๋ช…๋ น ์…ธ์ธ GNU Rush 2.2(์ œํ•œ๋œ ์‚ฌ์šฉ์ž ์…ธ) ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Rush๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์ค„ ๊ธฐ๋Šฅ๊ณผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณต๋˜๋Š” ๋ฆฌ์†Œ์Šค(๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ, ํ”„๋กœ์„ธ์„œ ์‹œ๊ฐ„ ๋“ฑ)๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Rush๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด chrooted ํ™˜๊ฒฝ์—์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์›๊ฒฉ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ „์ฒด ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” sftp-server ๋˜๋Š” scp์™€ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋žจ์„ ํ†ตํ•ด ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•  ๋•Œ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋Œ€ํ•œ ์ƒํƒœ ํ™•์ธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ด์ œ ๊ทœ์น™์„ ํ†ตํ•ด ํŒŒ์ผ ํ˜•์‹, ์•ก์„ธ์Šค ๊ถŒํ•œ ๋ฐ ์†Œ์œ ์ž๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™•์ธ์„ ์œ„ํ•œ ์˜ต์…˜ ํ˜•์‹์€ "test" ๋ช…๋ น ์ž‘์—…๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฒฝ๋กœ๊ฐ€ ์กด์žฌํ•˜๊ณ  ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด "match -d /var/lock/sd" ๊ตฌ์„ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹œ์ž‘๊ณผ ์‹คํ–‰์„ ์กฐ์ •ํ•˜๋„๋ก ์„ค๊ณ„๋œ GNU pies 1.7 ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ง€์ •๋œ ๊ตฌ์„ฑ์— ๋”ฐ๋ผ ํ”„๋กœ๊ทธ๋žจ์€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰ ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜๊ณ  ์‹คํ–‰์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋ฉฐ ๋‹ค์–‘ํ•œ ์ƒํƒœ์— ๋Œ€ํ•œ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋ฐ”์ธ๋”ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋น„์ •์ƒ์ ์ธ ์ข…๋ฃŒ ์‹œ ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ์•Œ๋ฆผ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž์—๊ฒŒ. GNU ํŒŒ์ด๋ฅผ ํฌํ•จํ•˜๋ฉด init ํ”„๋กœ์„ธ์Šค๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๊ณ  ์‹œ์Šคํ…œ ๋ถ€ํŒ… ์ค‘์— ์ฒ˜์Œ ์‹œ์ž‘๋˜๋ฉฐ /etc/inittab ํ˜•์‹์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

GNU Pies์˜ ์ƒˆ ๋ฒ„์ „์—์„œ๋Š” ๊ตฌ์„ฑ ํŒŒ์ผ๊ณผ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด์žฅ ์ „์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ์œผ๋ฉฐ "#include" ๋ฐ "#include_once" ํ‘œํ˜„์‹์— ์ง€์ •๋œ ๊ฐ ํŒŒ์ผ์€ ์ด์ œ ์™ธ๋ถ€ ์ „์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ„๋„๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค(์ด์ „์—๋Š” ๋‚ด์žฅ ์ „์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ๋จผ์ € ๋ชจ๋“  "#include" ๋Œ€์ฒด ํ•ญ๋ชฉ์„ ํ™•์žฅํ–ˆ์œผ๋ฉฐ, ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ฒฐ๊ณผ๋Š” ์™ธ๋ถ€ m4 ์ „์ฒ˜๋ฆฌ๊ธฐ์— ์˜ํ•ด ์ „์ฒด์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฝ๊ณ ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์˜ค๋ฅ˜๋ฅผ ํ‘œ์‹œํ•˜๋Š” ์ƒˆ๋กœ์šด ์ง„๋‹จ ํ‘œํ˜„์‹ '#warning "TEXT"', '#error "TEXT"' ๋ฐ '#abend "TEXT"'๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋ฉ”์‹œ์ง€์˜ ํ•„๋“œ ๊ตฌ๋ฌธ ๋ถ„์„, ๋ฉ”์ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(mailbox, maildrop, maildir) ์ž‘์—…, ๋ฉ”์‹œ์ง€ ํ•„ํ„ฐ๋ง, ์ด๋ฉ”์ผ ๊ฐ•์กฐ ํ‘œ์‹œ ๋“ฑ ์ด๋ฉ”์ผ๊ณผ ๊ด€๋ จ๋œ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” GNU mailutils 3.14 ์ œํ’ˆ๊ตฐ์˜ ๋ฆด๋ฆฌ์Šค์— ์ฃผ๋ชฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ์†Œ ๋ฐ URL, MIME ๋ธ”๋ก ์ฒ˜๋ฆฌ, IMAP4 ๋ฐ POP3 ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์™ธ๋ถ€ ์„œ๋ฒ„์—์„œ ์ด๋ฉ”์ผ ๊ฒ€์ƒ‰, TLS, SASL ๋ฐ GSSAPI ์‚ฌ์šฉ์„ ํฌํ•จํ•˜์—ฌ SMTP๋ฅผ ํ†ตํ•ด ์ด๋ฉ”์ผ ์ „์†ก.

GNU mailutils์˜ ์ƒˆ ๋ฒ„์ „์€ TLS ์ง€์›์„ ์™„์ „ํžˆ ๋‹ค์‹œ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. TLS์— ๋Œ€ํ•œ ์‹œ๊ฐ„ ์ œํ•œ์„ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด tls.handshake-timeout ์„ค์ •์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”์ผํ•จ์— ๋ฉ”์‹œ์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•œ mu_mailbox_append_message_ext ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”์ผ ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ์ฝ์ง€ ์•Š์Œ(U) ๋ช…๋ น์ด ์ถ”๊ฐ€๋˜์–ด ๋ฉ”์‹œ์ง€ ์ฝ๊ธฐ ํ‘œ์‹œ๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ์œผ๋ฉฐ, ๋‹ค๋ฅธ ํŽธ์ง€ํ•จ์œผ๋กœ ๋ณต์‚ฌ ๋ช…๋ น ์‹œ ์ƒํƒœ ์ €์žฅ(์ฝ์Œ ๋˜๋Š” ์ฝ์ง€ ์•Š์Œ)์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค. ํŒŒ์„œ ๋ฐ ์Šค์บ๋„ˆ์˜ ์ฝ”๋“œ๊ฐ€ ๋‹ค์‹œ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์–ด์…ˆ๋ธ”๋ฆฌ์— GNU bison ๋ฐ flex๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. libmailutils ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— MIME ์œ ํ˜•์„ ํฌํ•จํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Maildir ๋ฐ MH๋Š” X-Envelope-Sender ๋ฐ X-Envelope-Date ํ—ค๋”์˜ SMTP ์„ธ์…˜ ์ค‘์— MAIL FROM ๋ช…๋ น์œผ๋กœ ์ „์†ก๋œ ๋ณด๋‚ธ ์‚ฌ๋žŒ ์ •๋ณด๋ฅผ ๋” ์ด์ƒ ํ‘œ์‹œํ•˜์ง€ ์•Š๊ณ  ๋Œ€์‹  ์ด ์ •๋ณด๋ฅผ Return-Path ๋ฐ Receiverd ํ—ค๋”์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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