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

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

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

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

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

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

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

์ถœ์ฒ˜ : opennet.ru