๐Ÿ“ฌ ์šฐ๋ถ„ํˆฌ Postfix + Gmail SMTP Relay ์„ค์ • ๋ฐ ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ฐ€์ด๋“œ

์ด ํฌ์ŠคํŒ…์€ ์šฐ๋ถ„ํˆฌ ์„œ๋ฒ„์— Postfix๋ฅผ ์„ค์น˜ํ•˜๊ณ  Gmail SMTP Relay๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์™ธ๋ถ€ ๋ฉ”์ผ ๋ฐœ์†ก ๊ธฐ๋Šฅ์„ ์„ค์ •ํ•˜๋Š” ๊ณผ์ •, ๊ทธ๋ฆฌ๊ณ  ๋ฐœ์ƒ ๊ฐ€๋Šฅํ•œ ๋ฌธ์ œ์™€ ๋‹ค์ค‘ ๋„๋ฉ”์ธ ๊ด€๋ฆฌ ๋ฐฉ์•ˆ์„ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

1. Postfix ๊ธฐ๋ณธ ์„ค์น˜ ๋ฐ ์„ค์ •

SSH ํ™˜๊ฒฝ์—์„œ Postfix ์„ค์น˜ ์‹œ debconf ์„ค์ • ํ™”๋ฉด์„ ์กฐ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ํ•„์ˆ˜ ์„ค์ • ๊ฐ’์ž…๋‹ˆ๋‹ค.

1-1. SSH ํ™˜๊ฒฝ ์„ค์ • ์กฐ์ž‘

SSH ํ„ฐ๋ฏธ๋„์—์„œ๋Š” ํ‚ค๋ณด๋“œ์˜ Tab ํ‚ค๋กœ <Ok> ๋ฒ„ํŠผ ๋“ฑ ๋ฉ”๋‰ด ํ•ญ๋ชฉ ๊ฐ„ ํฌ์ปค์Šค๋ฅผ ์ด๋™ํ•˜๊ณ , Enter ํ‚ค๋กœ ์„ ํƒ ๋˜๋Š” ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

1-2. Postfix ์žฌ์„ค์ • ๋ช…๋ น์–ด

์„ค์ • ๋„์ค‘ ์‹ค์ˆ˜๋กœ ๋น ์ ธ๋‚˜์™”๊ฑฐ๋‚˜ ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

sudo dpkg-reconfigure postfix

1-3. ์ฃผ์š” ์„ค์ • ๊ฐ’ (Gmail Relay ๋ชฉ์ )

์งˆ๋ฌธ๊ถŒ์žฅ ์„ ํƒ ๊ฐ’์„ค๋ช…
General type of mail configurationInternet Site๋ฉ”์ผ ์„œ๋ฒ„ ์œ ํ˜• ์„ค์ •
System mail namemydomain.com (์‹ค์ œ ๋„๋ฉ”์ธ)์„œ๋ฒ„์—์„œ ๋ฐœ์†ก๋˜๋Š” ๋ฉ”์ผ์˜ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ ์ด๋ฆ„
Recipient for root and postmaster mailyour-actual-email@gmail.com์‹œ์Šคํ…œ ์•Œ๋ฆผ์„ ๋ฐ›์„ ์‹ค์ œ ์™ธ๋ถ€ ๋ฉ”์ผ ์ฃผ์†Œ
Other destinations to accept mail for(Blank)๋ฐœ์†ก ์ „์šฉ์ด๋ฏ€๋กœ ๋น„์›Œ๋‘ก๋‹ˆ๋‹ค(์—”ํ„ฐ).
Force synchronous updates on mail queue?No์„ฑ๋Šฅ์„ ์œ„ํ•ด ๋น„๋™๊ธฐ์‹ ์ฒ˜๋ฆฌ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
Local networks127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128์„œ๋ฒ„ ์ž์ฒด(Loopback)๋งŒ ์‹ ๋ขฐํ•˜๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
Mailbox size limit (bytes)0๋กœ์ปฌ ์‚ฌ์„œํ•จ ํฌ๊ธฐ ์ œํ•œ ์—†์Œ
Local address extension character+๊ธฐ๋ณธ๊ฐ’ ์œ ์ง€
Internet protocols to useipv4์•ˆ์ •์ ์ธ ์—ฐ๊ฒฐ๊ณผ IPv6 ์˜ค๋ฅ˜ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด ๊ถŒ์žฅ

2. ๋ฉ”์ผ ๋ฐœ์†ก ์‹คํŒจ ๋ฌธ์ œ ์ง„๋‹จ ๋ฐ ํ•ด๊ฒฐ (๋กœ๊ทธ ๋ถ„์„)

Postfix ์„ค์ • ์™„๋ฃŒ ํ›„ ๋ฉ”์ผ ๋ฐœ์†ก ํ…Œ์ŠคํŠธ ์‹œ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋กœ๊ทธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉฐ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.

connect to smtp.gmail.com[...]:587: Network is unreachable
connect to smtp.gmail.com[...]:587: Connection timed out
connect to mydomain.com[...]:25: Connection timed out

2-1. ๋ฌธ์ œ ์›์ธ ๋ถ„์„

  1. ๋ฐฉํ™”๋ฒฝ ์ฐจ๋‹จ (๊ฐ€์žฅ ํฐ ์›์ธ): ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์˜ ๋ณด์•ˆ ๊ทธ๋ฃน(Security Group) ๋˜๋Š” ๋ฐฉํ™”๋ฒฝ์—์„œ ์™ธ๋ถ€๋กœ ๋‚˜๊ฐ€๋Š” 587๋ฒˆ ํฌํŠธ(SMTP submission)๊ฐ€ ๋ง‰ํ˜€ ์žˆ์Œ.
  2. ๋ถˆ์™„์ „ํ•œ Relay ์„ค์ •: relayhost = [smtp.gmail.com]:587 ์„ค์ • ์ด์ „์— ๋“ค์–ด๊ฐ„ ๋ฉ”์ผ์ด 25๋ฒˆ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•ด ์ž์ฒด์ ์œผ๋กœ ๋ฐœ์†ก์„ ์‹œ๋„ํ•จ.
  3. IPv6 ์—ฐ๊ฒฐ ๋ฌธ์ œ: IPv6 ๋„คํŠธ์›Œํฌ๊ฐ€ ๋ถˆ์•ˆ์ •ํ•œ ๊ฒฝ์šฐ ํƒ€์ž„์•„์›ƒ ๋ฐœ์ƒ.

2-2. ํ•ด๊ฒฐ ์กฐ์น˜

  1. ๋ณด์•ˆ ๊ทธ๋ฃน(๋ฐฉํ™”๋ฒฝ) ์ˆ˜์ •: ํด๋ผ์šฐ๋“œ ์ฝ˜์†”(AWS, GCP, OpenStack ๋“ฑ)์—์„œ 587๋ฒˆ ํฌํŠธ ์•„์›ƒ๋ฐ”์šด๋“œ(Outbound)๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
  2. IPv4 ๊ฐ•์ œ ์‚ฌ์šฉ: /etc/postfix/main.cf ํŒŒ์ผ์„ ์—ด์–ด ์•„๋ž˜ ์„ค์ •์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
    text inet_protocols = ipv4
  3. ํ ๊ฐ•์ œ ์ „์†ก: ๋ฐฉํ™”๋ฒฝ ํ•ด๊ฒฐ ํ›„, ์ง€์—ฐ๋œ ๋ฉ”์ผ์ด ์žฌ์‹œ๋„๋˜๋„๋ก ๋ช…๋ นํ•ฉ๋‹ˆ๋‹ค.
    bash sudo postfix flush

2-3. ๋ฉ”์ผ ํ ํ™•์ธ ๋ช…๋ น์–ด

mailq
# ๋˜๋Š”
postqueue -p

๋ฉ”์ผ์ด ์ •์ƒ์ ์œผ๋กœ ๋ฐœ์†ก๋˜๋ฉด ํ์—์„œ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.


3. ๋‹ค์ค‘ ๋„๋ฉ”์ธ ๋ฐœ์†ก/์ˆ˜์‹  ๊ด€๋ฆฌ ์ „๋žต

๋‹จ์ผ Postfix ์„œ๋ฒ„์—์„œ 10๊ฐœ ์ด์ƒ์˜ ๋‹ค์ค‘ ์‚ฌ์ดํŠธ ๋ฉ”์ผ์„ ๊ด€๋ฆฌํ•˜๊ณ  ์ŠคํŒธ ์œ„ํ—˜์„ ๋‚ฎ์ถ”๋Š” ์•ˆ์ „ํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

3-1. ๋ฐœ์†ก (Sending) ์ „๋žต

  • ๋ชฉํ‘œ: info@site1.com, contact@site2.com ๋“ฑ ์‚ฌ์ดํŠธ๋ณ„ ์ฃผ์†Œ๋กœ ๋ฐœ์†ก.
  • ๋ฌธ์ œ: Gmail Relay๋Š” ์ธ์ฆ๋œ ๊ณ„์ •(abcd@gmail.com) ์™ธ์˜ ์ฃผ์†Œ๋กœ ๋ณด๋‚ด๋ฉด ๊ฐ•์ œ๋กœ ์ฃผ์†Œ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์ŠคํŒธ์œผ๋กœ ๋ถ„๋ฅ˜๋  ์ˆ˜ ์žˆ์Œ.
  • ํ•ด๊ฒฐ์ฑ… (๊ฐ€์žฅ ์•ˆ์ „):Gmail ๋Œ€์ฒด ๋ฐœ์‹  ์ฃผ์†Œ ๋“ฑ๋ก
    1. Gmail ์„ค์ •(abcd@gmail.com) > ๊ณ„์ • ๋ฐ ๊ฐ€์ ธ์˜ค๊ธฐ > ๋‹ค๋ฅธ ์ฃผ์†Œ์—์„œ ๋ฉ”์ผ ๋ณด๋‚ด๊ธฐ๋กœ ์ด๋™.
    2. info@site1.com ๋“ฑ ๋ชจ๋“  ๋ฐœ์‹  ์ฃผ์†Œ๋ฅผ ๋“ฑ๋กํ•˜๊ณ  ์ธ์ฆ.
    3. ์„œ๋ฒ„์—์„œ๋Š” ๋ฐœ์‹  ์ฃผ์†Œ๋ฅผ ํ•ด๋‹น ์ฃผ์†Œ๋กœ ์„ค์ •ํ•˜์—ฌ ๋ฐœ์†ก.

3-2. ์ˆ˜์‹  (Receiving) ์ „๋žต

  • ๋ชฉํ‘œ: ๋ชจ๋“  ์‚ฌ์ดํŠธ(info@site1.com ๋“ฑ)๋กœ ์˜จ ๋ฉ”์ผ์„ ํ•˜๋‚˜์˜ ๊ณ„์ •(abcd@gmail.com)์œผ๋กœ ๋ชจ์•„์„œ ์ˆ˜์‹ .
  • ํ•ด๊ฒฐ์ฑ…: Postfix ๊ฐ€์ƒ ๋„๋ฉ”์ธ(Virtual Domain) ๋ฐ ํฌ์›Œ๋”ฉ
  1. /etc/postfix/main.cf ์„ค์ • ์ถ”๊ฐ€: virtual_alias_domains = site1.com site2.com ... (๋„๋ฉ”์ธ ๋‚˜์—ด) virtual_alias_maps = hash:/etc/postfix/vmail_aliases
  2. /etc/postfix/vmail_aliases ํŒŒ์ผ ์ƒ์„ฑ ๋ฐ ํฌ์›Œ๋”ฉ ๊ทœ์น™ ์ž‘์„ฑ: info@site1.com abcd@gmail.com contact@site2.com abcd@gmail.com
  3. ์„ค์ • ์ ์šฉ:
    bash sudo postmap /etc/postfix/vmail_aliases sudo systemctl restart postfix

โš ๏ธ ์ค‘์š”: ์ˆ˜์‹  ๊ธฐ๋Šฅ์ด ์ž‘๋™ํ•˜๋ ค๋ฉด ๊ฐ ๋„๋ฉ”์ธ์˜ MX ๋ ˆ์ฝ”๋“œ๊ฐ€ ํ˜„์žฌ Postfix ์„œ๋ฒ„์˜ ๊ณต์ธ IP๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋Œ“๊ธ€ ๋‹ฌ๊ธฐ

์ด๋ฉ”์ผ ์ฃผ์†Œ๋Š” ๊ณต๊ฐœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•„์ˆ˜ ํ•„๋“œ๋Š” *๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค

์œ„๋กœ ์Šคํฌ๋กค