리눅스 Sendmail MTA 메일 서버 설치 및 도메인 발송 설정

💡 핵심 요약 (Executive Summary)

본 가이드는 sendmail 핵심 가이드 및 실전 아키텍처의 핵심 개념, 실전 구성 명령어 및 아키텍처 베스트 프랙티스를 다룹니다. 클라우드 네이티브 및 인프라 엔지니어링 실무에 즉시 활용 가능하도록 체계적으로 정리했습니다.

bash
#!/bin/sh

sudo apt-get update && sudo apt-get -y upgrade
sudo apt-get install -y libsasl2-modules sasl2-bin
sudo apt-get install -y libsasl2-2
sudo apt-get install -y sendmail

sudo sed -i "s/127.0.0.1 localhost/127.0.0.1 localhost.localdomain localhost/" /etc/hosts

sudo bash -c "cat << 'END_HELP' >> /etc/mail/sendmail.mc
TRUST_AUTH_MECH(\`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
END_HELP"
sudo bash -c "cat << 'END_HELP' >> /etc/mail/sendmail.mc
define(\`confAUTH_MECHANISMS', \`EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
END_HELP"

sudo sh -c "m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf"

sudo sh -c "echo Connect:172.16                    RELAY >> /etc/mail/access"
sudo sh -c "makemap hash /etc/mail/access < /etc/mail/access"

cd /usr/lib/sasl2/
sudo bash -c 'cat << EOF > Sendmail.conf
pwcheck_method:saslauthd
EOF'

sudo systemctl restart saslauthd
sudo saslauthd -a pam

sudo useradd -m -s /bin/false mailsender
sudo sh -c "echo mailsender:Mailsender123@ | sudo chpasswd"

sudo systemctl restart sendmail
  • 메일 발송 테스트

1. Telnet을 사용하여 25번 포트에 연결

2. HELO \<도메인> 명령으로 인사를 한다.

3. MAIL FROM:\<보내는사람> 명령으로 보내는 사람 지정

4. RCPT TO:\<받는사람> 명령으로 받는 사람 지정

5. DATA 명령으로 본문입력을 하겠다는 의사전달

6. 본문입력

7. . 를 입력 후 엔터 → 본문 입력 종료를 알림

8. quit 명령으로 종료

  • auth 인증 테스트
  1. echo -ne “\\0mailsender\\0Mailsender123@” \| base64
  2. 위 명령어로 나온 base64 결과값 복사
  3. telnet localhost 25
  4. ehlo localhost
  5. auth plain AG1haWxzZW5kZXIATWFpbHNlbmRlcjEyM0A=
  6. Ok Authenticated 문구 출력되면 인증 성공

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *