웹사이트 검색

Ubuntu 14.04에서 Postfix를 Send-Only SMTP 서버로 설치 및 구성하는 방법


소개

Postfix는 이메일을 보내고 받는 데 사용되는 애플리케이션인 MTA(Mail Transfer Agent)입니다. 이 튜토리얼에서는 로컬 애플리케이션, 즉 Postfix가 설치된 동일한 서버에 설치된 애플리케이션에서만 이메일을 보내는 데 사용할 수 있도록 Postfix를 설치 및 구성합니다.

왜 그렇게 하시겠습니까?

이메일을 보내고 받는 데 이미 타사 이메일 제공업체를 사용하고 있다면 물론 자체 메일 서버를 실행할 필요가 없습니다. 그러나 이메일 알림을 보내야 하는 애플리케이션을 설치한 클라우드 서버를 관리하는 경우 로컬의 보내기 전용 SMTP 서버를 실행하는 것이 타사 이메일 서비스 공급자를 사용하거나 완전한 SMTP 서버를 실행하는 것보다 좋은 대안입니다. .

이메일 알림을 보내는 애플리케이션의 예로 OSSEC가 있으며, 이는 구성된 이메일 주소로 이메일 알림을 보냅니다(Ubuntu 14.04에서 OSSEC 보안 알림을 설치 및 구성하는 방법 참조). OSSEC 또는 이와 유사한 다른 애플리케이션은 타사 이메일 공급자의 SMTP 서버를 사용하여 이메일 경고를 보낼 수 있지만 로컬(전송 전용) SMTP 서버를 사용할 수도 있습니다.

Postfix를 송신 전용 SMTP 서버로 설치하고 구성하는 방법이 이 튜토리얼에서 배우는 내용입니다.

참고: 사용 사례가 단일 주소의 서버에서 알림을 받는 것이라면 이메일을 화이트리스트에 추가할 수 있으므로 스팸으로 표시된 이메일은 중요한 문제가 아닙니다.

사용 사례가 게시판 가입 확인 이메일과 같이 잠재적인 사이트 사용자에게 이메일을 보내는 것이라면 확실히 5단계를 수행해야 서버의 이메일이 합법적인 것으로 보일 가능성이 높아집니다. 서버의 이메일이 스팸으로 표시되는 데 여전히 문제가 있는 경우 직접 추가 문제 해결을 수행해야 합니다.

참고: 2022년 6월 22일부터 DigitalOcean은 모든 새 계정에 대해 SMTP를 차단합니다. 이 새로운 정책의 일환으로 우리는 SendGrid와 협력하여 고객이 여전히 쉽게 이메일을 보낼 수 있도록 했습니다. DigitalOcean의 SendGrid Marketplace 앱을 확인하여 이 파트너십에 대해 자세히 알아보고 SendGrid 사용을 시작할 수 있습니다.

전제 조건

다음 전제 조건을 완료하십시오.

  • 우분투 14.04 물방울
  • 초기 설정을 진행합니다. 즉, sudo 권한
  • 이 있는 표준 사용자 계정이 있어야 합니다.\n
  • 귀하의 Droplet을 가리키는 example.com과 같은 유효한 도메인 이름이 있어야 합니다.
  • 서버의 호스트 이름은 이 도메인 또는 하위 도메인과 일치해야 합니다. 명령 프롬프트에 hostname을 입력하여 서버의 호스트 이름을 확인할 수 있습니다. 출력은 droplet이 생성될 때 지정한 이름(예: example.com
  • )과 일치해야 합니다.\n

모든 전제 조건이 충족되었으면 이제 이 자습서의 첫 번째 단계를 시작할 준비가 된 것입니다.

1단계 - Postfix 설치

이 단계에서는 Postfix 설치 방법을 배웁니다. 이메일 테스트에 필요한 Postfix 및 기타 프로그램을 설치하는 가장 효율적인 방법은 다음을 입력하여 mailutils 패키지를 설치하는 것입니다.

sudo apt-get install mailutils

mailtuils를 설치하면 Postfix와 Postfix가 작동하는 데 필요한 몇 가지 다른 프로그램도 설치됩니다. 해당 명령을 입력하면 다음과 같은 출력이 표시됩니다.

The following NEW packages will be installed:
guile-2.0-libs libgsasl7 libkyotocabinet16 libltdl7 liblzo2-2 libmailutils4 libmysqlclient18 libntlm0 libunistring0 mailutils mailutils-common mysql-common postfix ssl-cert

0 upgraded, 14 newly installed, 0 to remove and 3 not upgraded.
Need to get 5,481 kB of archives.
After this operation, 26.9 MB of additional disk space will be used.
Do you want to continue? [Y/n]

설치하려면 Enter 키를 누르십시오. 설치 프로세스가 거의 끝날 무렵 아래 이미지와 똑같은 창이 나타납니다. 기본 옵션은 인터넷 사이트입니다. 이것이 이 튜토리얼에서 권장되는 옵션이므로 TAB을 누른 다음 ENTER를 누르십시오.

그런 다음 다음 이미지와 같은 다른 창이 나타납니다. 시스템 메일 이름은 Droplet을 만들 때 할당한 이름과 동일해야 합니다. example.com과 같은 하위 도메인을 표시하는 경우. 완료되면 TAB을 누른 다음 ENTER를 누릅니다.

설치가 성공적으로 완료되면 2단계로 진행합니다.

2단계 — Postfix 구성

이 단계에서는 Postfix가 실행 중인 서버, 즉 localhost에서만 이메일을 보내도록 요청을 처리하도록 Postfix를 구성하는 방법을 읽습니다. 이를 위해서는 서버가 내부 통신에 사용하는 가상 네트워크 인터페이스인 루프백 인터페이스에서만 수신 대기하도록 Postfix를 구성해야 합니다. 변경하려면 nano 편집기를 사용하여 기본 Postfix 구성 파일을 엽니다.

sudo nano /etc/postfix/main.cf

파일을 연 상태에서 이 코드 블록에 표시된 항목이 보일 때까지 아래로 스크롤합니다.

mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

inet_interfaces = all 줄을 inet_interfaces = loopback-only로 변경합니다. 작업을 마치면 파일의 동일한 섹션이 다음과 같아야 합니다.

mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only

loopback-only 대신 localhost를 사용할 수도 있으므로 수정된 섹션은 다음과 같이 읽을 수도 있습니다.

mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = localhost

파일 편집을 마쳤으면 저장하고 닫습니다(CTRL+X를 누른 다음 Y를 누른 다음 ENTER를 누름). 그런 다음 다음을 입력하여 Postfix를 다시 시작합니다.

sudo service postfix restart

3단계 - SMTP 서버가 이메일을 보낼 수 있는지 테스트

이 단계에서는 Postfix가 외부 이메일 계정으로 이메일을 보낼 수 있는지 여부를 테스트하는 방법을 읽습니다. 1단계에서 설치한 mailutils 패키지의 일부인 mail 명령을 사용하게 됩니다.

테스트 이메일을 보내려면 다음을 입력합니다.

echo "This is the body of the email" | mail -s "This is the subject line" user@example.com

자체 테스트를 수행할 때 본문과 제목 줄 텍스트를 있는 그대로 사용하거나 원하는 대로 변경할 수 있습니다. 그러나 useryahoo.com 또는 귀하가 사용하는 다른 이메일 서비스 제공업체를 대신합니다.

이제 테스트 메시지를 보낸 이메일 주소를 확인하십시오.

받은 편지함에 메시지가 표시되어야 합니다. 그렇지 않은 경우 스팸 폴더를 확인하십시오.

참고: 이 구성을 사용하면 보내는 테스트 이메일의 From 필드에 있는 주소는 sammy@example.com이 됩니다. 여기서 sammy는 Linux 사용자 이름이고 도메인 부분은 서버의 호스트 이름입니다. 사용자 이름을 변경하면 보낸 사람 주소도 변경됩니다.

4단계 - 시스템 메일 전달

마지막으로 설정하고 싶은 것은 포워딩이므로 시스템의 루트 개인 외부 이메일 주소로 이메일을 보낼 수 있습니다.

시스템 생성 이메일이 이메일 주소로 전송되도록 Postfix를 구성하려면 /etc/aliases 파일을 편집해야 합니다.

sudo nano /etc/aliases

Ubuntu 14.04의 기본 설치에 있는 파일의 전체 콘텐츠는 다음 코드 블록에 표시됩니다.

# See man 5 aliases for format
postmaster:    root

이 설정을 사용하면 시스템 생성 이메일이 루트 사용자에게 전송됩니다. 원하는 것은 해당 이메일이 귀하의 이메일 주소로 다시 라우팅되도록 편집하는 것입니다. 이를 수행하려면 다음과 같이 파일을 편집하십시오.

# See man 5 aliases for format
postmaster:    root
root:          sammy@example.com

sammy@example.com을 개인 이메일 주소로 바꾸십시오. 완료되면 파일을 저장하고 닫습니다. 변경 사항을 적용하려면 다음 명령을 실행합니다.

sudo newaliases

이제 다음을 사용하여 루트 계정에 이메일을 보내서 작동하는지 테스트할 수 있습니다.

echo "This is the body of the email" | mail -s "This is the subject line" root

귀하의 이메일 주소로 이메일을 수신해야 합니다. 그렇지 않은 경우 스팸 폴더를 확인하십시오.

(선택 사항) 5단계 - 스팸 발송자로부터 도메인 보호

이 단계에서는 도메인이 스팸에 사용되지 않도록 보호하는 데 도움이 되는 문서에 대한 링크가 제공됩니다. 이는 선택사항이지만 적극 권장되는 단계입니다. 올바르게 구성된 경우 귀하의 도메인에서 발생한 것으로 보이는 주소로 스팸을 보내기가 어렵기 때문입니다.

이러한 추가 구성 단계를 수행하면 일반 메일 공급자가 서버에서 보낸 전자 메일을 스팸으로 표시하는 대신 합법적인 전자 메일로 볼 가능성이 높아집니다.

  • SPF 레코드를 사용하여 스푸핑을 방지하고 이메일 신뢰성을 향상시키는 방법
  • Debian Wheezy에서 Postfix로 DKIM을 설치 및 구성하는 방법
  • 또한 서버의 PTR 레코드가 메일 서버가 메시지를 보낼 때 사용하는 호스트 이름과 일치하는지 확인하십시오. DigitalOcean에서는 제어판에서 Droplet의 이름을 변경하여 PTR 기록을 변경할 수 있습니다.

두 번째 기사는 Debian Wheezy용으로 작성되었지만 Ubuntu 14.04에도 동일한 단계가 적용됩니다.