본문 바로가기

리눅스

[draft] 우분투에서 Gmail을 통한 Postfix 릴레이를 설정하는 방법

728x90

우분투에서 Gmail을 통한 Postfix 릴레이를 설정하는 방법

Postfix 설치

Postfix와 메일 유틸리티를 설치

sudo apt-get update
sudo apt-get install -y postfix mailutils
$ sudo apt install postfix mailutils
...
The following additional packages will be installed:
  gsasl-common guile-3.0-libs libgc1 libgsasl7 libidn12 libltdl7 libmailutils8 libmysqlclient21 libntlm0 libpq5 mailutils-common mysql-common ssl-cert
Suggested packages:
  mailutils-mh mailutils-doc procmail postfix-mysql postfix-pgsql postfix-ldap postfix-pcre postfix-lmdb postfix-sqlite sasl2-bin | dovecot-common resolvconf postfix-cdb postfix-mta-sts-resolver postfix-doc
The following NEW packages will be installed:
  gsasl-common guile-3.0-libs libgc1 libgsasl7 libidn12 libltdl7 libmailutils8 libmysqlclient21 libntlm0 libpq5 mailutils mailutils-common mysql-common postfix ssl-cert
0 upgraded, 15 newly installed, 0 to remove and 112 not upgraded.
Need to get 11.7 MB of archives.
After this operation, 71.6 MB of additional disk space will be used.
Do you want to continue? [Y/n]

Postfix_Configuration

Postfix 설치 중

  • "Internet Site" : Postfix가 일반적인 이메일 서버처럼 동작하도록 설정.
  • FQDN(Fully Qualified Domain Name) : 서버의 도메인 이름 또는 postfix.sangchul.kr형태의 주소를 입력.

Gmail을 통한 Postfix 릴레이 설정

1. Postfix 설정 파일 수정

sudo cp /etc/postfix/main.cf /etc/postfix/main.cf.backup
sudo vim /etc/postfix/main.cf
더보기

---

cat /etc/postfix/main.cf | egrep -v "^#|^$"
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
readme_directory = no
compatibility_level = 3.6
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_security_level=may
smtp_tls_CApath=/etc/ssl/certs
smtp_tls_security_level=may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = control-plane
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = $myhostname, postfix.sangchul.kr, control-plane, localhost.localdomain, localhost
relayhost = 
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all

relayhost, smtp_tls_security_level 제거

---

relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_tls_security_level = encrypt
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
  • relayhost : Gmail의 SMTP 서버 (smtp.gmail.com)와 포트(587)를 설정합니다.
  • smtp_sasl_auth_enable : SASL 인증을 활성화합니다.
  • smtp_sasl_password_maps : Gmail 인증 정보를 저장할 파일 경로입니다.
  • smtp_sasl_security_options 및 smtp_sasl_tls_security_options : 익명 로그인을 방지하고 TLS를 강제하는 설정입니다.
  • smtp_tls_security_level : TLS 암호화를 적용합니다.
  • smtp_tls_CAfile : 인증 기관(CA) 파일 경로입니다.
728x90

2. 인증 정보 설정

Postfix가 Gmail에 로그인할 수 있도록 인증 정보를 파일에 저장해야 합니다. 인증 정보를 저장할 파일을 생성합니다.

  • your-email@gmail.com : Gmail 계정의 이메일 주소
  • your-app-password : Gmail 계정의 앱 비밀번호
  • 참고 : Gmail은 보안상의 이유로 일반 비밀번호 대신 앱 비밀번호를 요구합니다. Gmail 계정에서 2단계 인증을 활성화하고 앱 비밀번호를 생성해야 합니다.Google 앱 비밀번호 생성 가이드에서 생성할 수 있습니다.

App_Passwords

sudo vim /etc/postfix/sasl_passwd
[smtp.gmail.com]:587 your-email@gmail.com:your-app-password

3. 파일 권한 설정 및 해시 맵 생성

인증 정보를 저장한 파일에 적절한 권한을 설정하고 Postfix에서 사용할 수 있는 해시 맵을 생성합니다.

sudo chmod 600 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd

4. Postfix 재시작

Postfix 설정을 적용하려면 Postfix 서비스를 재시작합니다.

sudo systemctl restart postfix

5. 방화벽 설정(필요한 경우)

SMTP 트래픽을 허용하려면 포트 587을 방화벽에서 열어야 할 수 있습니다.

sudo ufw allow 587/tcp

테스트 메일 발송

Postfix를 통해 Gmail로 메일을 보낼 수 있는지 테스트합니다.

  • recipient@example.com : 수신자의 이메일 주소를 입력합니다.
echo "테스트 이메일 내용" | mail -s "테스트 제목" recipient@example.com

로그 확인

Postfix에서 메일이 정상적으로 전송되었는지 확인하려면 로그 파일을 확인합니다.

  • 이 로그에서 메일이 성공적으로 전송되었는지 또는 오류가 발생했는지 확인할 수 있습니다.
sudo tail -f /var/log/mail.log

추가 보안 설정(선택 사항)

SPF 설정

Gmail을 통한 메일 릴레이의 경우 SPF 레코드를 추가하여 메일 전송을 인증할 수 있습니다.

 

Google의 SPF 레코드를 설정하는 방법입니다.

v=spf1 include:_spf.google.com ~all

DKIM 설정

Gmail의 DKIM 서명은 Google에서 관리하므로 따로 설정할 필요는 없습니다.

 

우분투에서 Postfix를 설치하고 Gmail을 통해 안전하게 이메일을 릴레이할 수 있습니다. Gmail의 SMTP 서버와 TLS 암호화를 사용하여 메일을 안전하게 전송하며 인증 정보는 Postfix가 보안된 파일에 저장하여 관리합니다.

 

728x90