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 설치 중
- "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 앱 비밀번호 생성 가이드에서 생성할 수 있습니다.
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
'리눅스' 카테고리의 다른 글
[draft] fuser 명령어 (0) | 2024.09.20 |
---|---|
[draft] 우분투에서 Office 365를 통한 Postfix 릴레이를 설정하는 방법 (0) | 2024.09.20 |
[draft] 우분투에 rsync를 설치하고 설정하는 방법 (1) | 2024.09.12 |
[draft] HPE 서버에서 RAID를 재구성하고 LVM으로 설정하는 방법 (1) | 2024.09.12 |
[draft] 리눅스에서 SSH 액세스 권한 부여하기 (0) | 2024.09.11 |