๐Ÿ“ฌ valid_recipients ๊ตฌํ˜„ ํ›„ ๋ฐ˜๋ณต๋˜๋Š” Postfix ๊ฒฝ๊ณ  ๋ฐ ์—ฐ๊ฒฐ

Discourse์—์„œ Postfix๋ฅผ ๋‹ค์‹œ ๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ• AI

Ethsim2:

main.cf๋ฅผ ์ˆ˜์ •ํ•œ ๊ฒƒ์ด ๋งž๋‚˜์š”?

DiscourseHelper:

๊ฒ€์ƒ‰ ์ค‘

๊ฒ€์ƒ‰ ๋‚ด์šฉ: Discourse ๋ฉ”์ผ ์ˆ˜์‹ ๊ธฐ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์ˆ˜์‹ ์ž ์ œํ•œ์„ ์œ„ํ•ด valid_recipients ํŒŒ์ผ์„ ๊ตฌํ˜„ํ•  ๋•Œ postfix main.cf๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ๊ถŒ์žฅ๋˜๋‚˜์š”? main.cf๋ฅผ ์ง์ ‘ ํŽธ์ง‘ํ•ด์•ผ ํ•˜๋‚˜์š”, ์•„๋‹ˆ๋ฉด Discourse ๋ฉ”์ผ ์ˆ˜์‹ ๊ธฐ ์„ค์ •์˜ ๊ฒฝ์šฐ ๋ชจ๋“  ๊ถŒ์žฅ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด docker ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋‚˜ launcher yml ์„ค์ •์„ ํ†ตํ•ด ์ฒ˜๋ฆฌ๋˜๋‚˜์š”?

์ฝ๊ธฐ ์ค‘

์ฝ์€ ๋‚ด์šฉ: ๐Ÿ“ฌ valid_recipients ๊ตฌํ˜„ ํ›„ ๋ฐ˜๋ณต๋˜๋Š” Postfix ๊ฒฝ๊ณ  ๋ฐ ์—ฐ๊ฒฐ

์•„๋‹ˆ์š”, Discourse์˜ ํ‘œ์ค€ ์„ค์ •์„ ๋”ฐ๋ฅด๋Š” ๊ฒฝ์šฐ ์œ ํšจํ•œ ์ˆ˜์‹ ์ž ํ•„ํ„ฐ๋ง์„ ์œ„ํ•ด ๋ฉ”์ผ ์ˆ˜์‹ ๊ธฐ ์ปจํ…Œ์ด๋„ˆ์—์„œ main.cf๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์€ ํ•„์š”ํ•˜์ง€๋„ ๊ถŒ์žฅ๋˜์ง€๋„ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•:
Discourse์˜ ๊ณต์‹ ๋ฉ”์ผ ์ˆ˜์‹ ๊ธฐ ๊ฐ€์ด๋“œ ๋ฐ ์ปจํ…Œ์ด๋„ˆ ์„ค์ •์€ main.cf๋ฅผ ์ˆ˜๋™์œผ๋กœ ํŽธ์ง‘ํ•˜์ง€ ์•Š๋„๋ก ์„ค๊ณ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•˜์„ธ์š”:

  • mail-receiver.yml์˜ env ์„น์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ Postfix ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค:

    POSTCONF_smtpd_recipient_restrictions: texthash:/etc/postfix/valid_recipients
    

    ๋˜๋Š”, ๊ตฌํ˜• ์„ค์ • ์Šคํƒ€์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ:

    POSTCONF_smtpd_recipient_restrictions: check_recipient_access hash:/etc/postfix/valid_recipients, reject
    
  • Docker/launcher๋Š” ์ปจํ…Œ์ด๋„ˆ ์‹œ์ž‘ ์‹œ ์ด๋Ÿฌํ•œ ์„ค์ •์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ ์šฉํ•˜์—ฌ ํŒŒ์ผ์„ ์ง์ ‘ ํŽธ์ง‘ํ•  ํ•„์š” ์—†์ด Postfix์— ์ฃผ์ž…ํ•ฉ๋‹ˆ๋‹ค.

main.cf๋ฅผ ์ง์ ‘ ํŽธ์ง‘ํ•˜๋ฉด ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ ์ปจํ…Œ์ด๋„ˆ ์žฌ๋นŒ๋“œ ์‹œ ๋ฎ์–ด์“ฐ๊ธฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ๋ฐฉ์‹์œผ๋กœ ํŒŒ์ผ ํ˜•์‹์ด๋‚˜ ์ˆ˜์‹ ์ž ๋งคํ•‘ ๋“ฑ์„ ์‰ฝ๊ฒŒ ๊นจ๋œจ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋ฅ˜์— ๋Œ€ํ•ด:
ํ™•์ธํ•˜๋Š” ๊ฒฝ๊ณ :

warning: /etc/postfix/valid_recipients, line 1: expected format: key whitespace value -- ignoring this line

์€ valid_recipients ํŒŒ์ผ์˜ ํ˜•์‹์ด ์ž˜๋ชป๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด์ง€, ์„ค์ • ๋ฐฉ์‹(ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋Œ€ main.cf) ๋•Œ๋ฌธ์ด ์•„๋‹™๋‹ˆ๋‹ค. ํ•ญ๋ชฉ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•์‹์ธ์ง€ ํ™•์ธํ•˜์„ธ์š”:

alloweduser@yourdomain.com OK
another@yourdomain.com OK
default REJECT

์ฝœ๋ก , ๋“ฑํ˜ธ, ์‰ผํ‘œ๋Š” ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”โ€”์ฃผ์†Œ, ๊ณต๋ฐฑ, ๊ทธ๋ฆฌ๊ณ  OK(๋˜๋Š” REJECT)๋งŒ ์žˆ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.


main.cf๋ฅผ ํŽธ์ง‘ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋งค์šฐ ๊ณ ๊ธ‰์Šค๋Ÿฝ๊ณ  ์™„์ „ํžˆ ์‚ฌ์šฉ์ž ์ •์˜๋œ ๊ตฌ์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ  ์ •ํ™•ํžˆ ๋ฌด์—‡์„ ํ•˜๋Š”์ง€ ์ดํ•ดํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด.
๋ชจ๋“  ์ผ๋ฐ˜์ ์ธ ์ง€์นจ(์œ ํšจํ•œ ์ˆ˜์‹ ์ž ๋ฐ ๋ฐœ์‹ ์ž ํ•„ํ„ฐ๋ง ํฌํ•จ)์€ mail-receiver.yml์—์„œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜์—ฌ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.


์ฐธ๊ณ  ์ž๋ฃŒ:

์š”์•ฝ:
ํ‘œ์ค€ Discourse ๋ฉ”์ผ ์ˆ˜์‹ ๊ธฐ ์„ค์ •์˜ ๊ฒฝ์šฐ main.cf๋ฅผ ๊ฑด๋“œ๋ฆด ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. yml ํŒŒ์ผ์˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ๊ถŒ์žฅ๋˜๊ณ  ์ง€์›๋˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ˆ˜์‹ ์ž ๋งต์˜ ๊ฒฝ์šฐ ํ•ญ์ƒ ์ ์ ˆํ•œ hash/texthash ํ˜•์‹๊ณผ ์˜ฌ๋ฐ”๋ฅธ ํŒŒ์ผ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์„ธ์š”.


์‹ค์ œ๋กœ ์ €๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ๊ตฌ์„ฑ์„ ์™„์ „ํžˆ ์ œ๊ฑฐํ–ˆ๊ณ , ์—ฌ๊ธฐ์— ์„ค๋ช…๋œ ๊ตฌ์„ฑ์„ ์‚ฌ์šฉํ–ˆ์œผ๋ฉฐ, ์ œ ๋ฉ”์ผ ํ…Œ์ŠคํŠธ๋Š” ์ž˜ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

x86_64 arch detected.
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 600 mail-receiver
mail-receiver
release: Pulling from discourse/mail-receiver
Digest: sha256:2a0d45bb92a783c846a821e635413764eeadb3441ef6190085545a4[9 digits redacted]
Status: Image is up to date for discourse/mail-receiver:release
docker.io/discourse/mail-receiver:release
ERROR:  Can't find Ruby library file or shared library pups
cd /pups && /pups/bin/pups --stdin
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
sha256:[6 digits redacted]69734d779a95ec83c7103dc2fc04f1d690ebde62[18 digits redacted]
[64 character API Key? Redacted]
Removing old container
+ /usr/bin/docker rm mail-receiver
mail-receiver

+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e LC_ALL=en_US.UTF-8 -e LANGUAGE=en_US.UTF-8 -e MAIL_DOMAIN=discourse. MYDOMAINNAME.com -e DISCOURSE_BASE_URL=https:// MYDOMAINNAME.com -e DISCOURSE_API_KEY=[64 digit API key redacted] -e DISCOURSE_API_USERNAME=system -h ubuntu-mail-receiver -e DOCKER_HOST_IP=172.17.0.1 --name mail-receiver -t -p 25:25 -v /var/discourse/shared/mail-receiver/postfix-spool:/var/spool/postfix --mac-address [redacacted mac address] local_discourse/mail-receiver /sbin/boot
[64 digit API key? Redacted]
root@ubuntu:/var/discourse# ./launcher logs mail-receiver
x86_64 arch detected.
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
Operating environment:
HOSTNAME=ubuntu-mail-receiver
LANGUAGE=en_US.UTF-8
MAIL_DOMAIN=discourse.MYDOMAINNAME.com
DOCKER_HOST_IP=172.17.0.1
PWD=/
DISCOURSE_BASE_URL=https:// MYDOMAINNAME.com
HOME=/root
LANG=en_US.UTF-8
TERM=xterm
SHLVL=1
DISCOURSE_API_USERNAME=system
LC_ALL=en_US.UTF-8
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
INCLUDE_DMARC=true
DISCOURSE_API_KEY=[64 digit API key redacted]
_=/usr/bin/env
Delivering mail sent to discourse. MYDOMAINNAME.com to Discourse
Starting OpenDKIM...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "en_US.UTF-8",
        LC_ALL = "en_US.UTF-8",
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Adding user `postfix' to group `opendkim' ...
<86>Jul 23 13:27:19 usermod[16]: add 'postfix' to group 'opendkim'<86>Jul 23 13:27:19 usermod[16]: add 'postfix' to shadow group 'opendkim'Done.
Starting OpenDMARC...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "en_US.UTF-8",
        LC_ALL = "en_US.UTF-8",
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
<22>Jul 23 13:27:19 opendkim[24]: OpenDKIM Filter v2.11.0 starting (args: -x /etc/opendkim.conf)Adding user `postfix' to group `opendmarc' ...
<86>Jul 23 13:27:19 usermod[31]: add 'postfix' to group 'opendmarc'<86>Jul 23 13:27:19 usermod[31]: add 'postfix' to shadow group 'opendmarc'Done.
<22>Jul 23 13:27:19 opendmarc[39]: OpenDMARC Filter v1.4.2 starting (args: -c /etc/opendmarc.conf)<22>Jul 23 13:27:19 opendmarc[39]: additional trusted authentication services: (none)postfix: Postfix is using backwards-compatible default settings
Jul 23 13:27:19 ubuntu-mail-receiver postfix[51]: Postfix is using backwards-compatible default settings
postfix: See http://www.postfix.org/COMPATIBILITY_README.html for details
Jul 23 13:27:19 ubuntu-mail-receiver postfix[51]: See http://www.postfix.org/COMPATIBILITY_README.html for details
postfix: To disable backwards compatibility use "postconf compatibility_level=3.6" and "postfix reload"
Jul 23 13:27:19 ubuntu-mail-receiver postfix[51]: To disable backwards compatibility use "postconf compatibility_level=3.6" and "postfix reload"
Starting Postfix
Jul 23 13:27:19 ubuntu-mail-receiver postfix/master[1]: daemon started -- version 3.7.11, configuration /etc/postfix
Jul 23 13:27:53 ubuntu-mail-receiver postfix/smtpd[122]: connect from mail-il1-f180.google.com[209.85.166.180]
<22>Jul 23 13:27:54 policyd-spf[129]: : prepend Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=209.85.166.180; helo=mail-il1-f180.google.com; envelope-from= person@gmail.com; receiver=discourse. MYDOMAINNAME.com Jul 23 13:27:54 ubuntu-mail-receiver postfix/smtpd[122]: BC6D71BF9C8: client=mail-il1-f180.google.com[209.85.166.180]
Jul 23 13:27:54 ubuntu-mail-receiver postfix/cleanup[130]: BC6D71BF9C8: message-id=<CWXP1[redacted 8 digits]81B627937FA7F4B2CE65A15FA@CWXP123MB2918.GBRP123.PROD.OUTLOOK.COM>
<22>Jul 23 13:27:55 opendkim[24]: BC6D71BF9C8: DKIM verification successful<22>Jul 23 13:27:55 opendkim[24]: BC6D71BF9C8: s=20230601 d=gmail.com a=rsa-sha256 SSL <22>Jul 23 13:27:55 opendmarc[39]: implicit authentication service: ubuntu-mail-receiver.localdomain<22>Jul 23 13:27:55 opendmarc[39]: BC6D71BF9C8: gmail.com passJul 23 13:27:55 ubuntu-mail-receiver postfix/qmgr[120]: BC6D71BF9C8: from=<person@gmail.com>, size=75533, nrcpt=1 (queue active)
Jul 23 13:27:55 ubuntu-mail-receiver postfix/smtpd[122]: disconnect from mail-il1-f180.google.com[209.85.166.180] ehlo=1 mail=1 rcpt=1 bdat=2 quit=1 commands=6
<23>Jul 23 13:27:55 receive-mail[133]: Recipient: person.REDACTED@discourse. MYDOMAINNAME.comJul 23 13:27:55 ubuntu-mail-receiver postfix/pipe[132]: BC6D71BF9C8: to=< person.REDACTED@discourse. MYDOMAINNAME.com>, relay=discourse, delay=1.8, delays=1.6/0.01/0/0.22, dsn=2.0.0, status=sent (delivered via discourse service)
Jul 23 13:27:55 ubuntu-mail-receiver postfix/qmgr[120]: BC6D71BF9C8: removed