웹사이트 검색

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


소개

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

왜 그렇게 하시겠습니까?

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

이 자습서에서는 Postfix를 보내기 전용 SMTP 서버로 설치하고 구성하는 방법을 배웁니다.

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

전제 조건

이 자습서를 따르려면 다음이 필요합니다.

  • 루트가 아닌 sudo 사용자 생성을 포함하여 Ubuntu 16.04 초기 설정 가이드로 설정된 Ubuntu 16.04 Droplet 1개\n
  • 서버를 가리키는 유효한 도메인 이름(예: example.com). 이 호스트 이름 자습서를 따라 설정할 수 있습니다.\n

서버의 호스트 이름은 이 도메인 또는 하위 도메인과 일치해야 합니다. 명령 프롬프트에 hostname을 입력하여 서버의 호스트 이름을 확인할 수 있습니다. 출력은 생성될 때 Droplet에 지정한 이름과 일치해야 합니다.

1단계 — Postfix 설치

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

먼저 패키지 데이터베이스를 업데이트합니다.

  1. sudo apt-get update

마지막으로 Postfix를 설치합니다. mailtuils를 설치하면 Postfix와 Postfix가 작동하는 데 필요한 몇 가지 다른 프로그램이 설치됩니다.

  1. sudo apt install mailutils

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

그런 다음 다음 이미지와 같은 다른 창이 나타납니다. 시스템 메일 이름은 서버를 만들 때 할당한 이름과 같아야 합니다. subdomain.example.com과 같은 하위 도메인이 표시되면 example.com으로 변경하세요. 완료되면 TAB을 누른 다음 ENTER를 누르십시오.

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

2단계 - Postfix 구성

이 단계에서는 Postfix가 실행 중인 서버, 즉 localhost에서만 이메일을 보내도록 요청을 처리하도록 Postfix를 구성하는 방법을 읽습니다.

이를 위해서는 서버가 내부 통신에 사용하는 가상 네트워크 인터페이스인 루프백 인터페이스에서만 수신 대기하도록 Postfix를 구성해야 합니다. 변경하려면 nano 또는 선호하는 텍스트 편집기를 사용하여 기본 Postfix 구성 파일을 엽니다.

  1. 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
. . .

수정해야 하는 또 다른 지시문은 mydestination이며, 이는 local_transport 메일 배달 전송을 통해 배달되는 도메인 목록을 지정하는 데 사용됩니다. 기본적으로 값은 다음과 유사합니다.

/etc/postfix/main.cf
. . . mydestination = $myhostname, example.com, localhost.com, , localhost . . .

해당 시나리오에 대한 권장 기본값은 아래 코드 블록에 제공되어 있으므로 일치하도록 수정하십시오.

/etc/postfix/main.cf
. . . mydestination = $myhostname, localhost.$mydomain, $mydomain . . .

파일을 저장하고 닫습니다.

단일 서버에서 여러 도메인을 호스팅하는 경우 mydestination 지시문을 사용하여 다른 도메인도 Postfix에 전달할 수 있습니다. 그러나 확장 가능한 방식으로 Postfix를 구성하고 이러한 설정에 문제가 발생하지 않도록 하려면 이 문서의 범위를 벗어나는 추가 구성이 필요합니다.

마지막으로 Postfix를 다시 시작합니다.

  1. sudo systemctl restart postfix

3단계 - SMTP 서버 테스트

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

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

  1. echo "This is the body of the email" | mail -s "This is the subject line" your_email_address

자체 테스트를 수행할 때 본문과 제목 줄 텍스트를 있는 그대로 사용하거나 원하는 대로 변경할 수 있습니다. 그러나 your_email_address 대신 유효한 이메일 주소를 사용하십시오. 도메인 부분은 gmail.com, fastmail.com, yahoo.com 또는 사용 중인 다른 이메일 서비스 제공업체일 수 있습니다.

이제 테스트 메시지를 보낸 이메일 주소를 확인하십시오. 받은 편지함에 메시지가 표시되어야 합니다. 그렇지 않은 경우 스팸 폴더를 확인하십시오.

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

4단계 - 시스템 메일 전달

마지막으로 설정하고 싶은 것은 전달이므로 개인 외부 이메일 주소로 시스템의 루트로 이메일을 보내게 됩니다.

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

  1. sudo nano /etc/aliases

Ubuntu 16.04 기본 설치 파일의 전체 내용은 다음과 같습니다.

# See man 5 aliases for format
postmaster:    root

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

/etc/aliases
# See man 5 aliases for format postmaster: root root: your_email_address

your_email_address를 개인 이메일 주소로 바꿉니다. 완료되면 파일을 저장하고 닫습니다. 변경 사항을 적용하려면 다음 명령을 실행합니다.

  1. sudo newaliases

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

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

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

결론

Postfix를 사용하여 보내기 전용 이메일 서버를 설정하는 데 필요한 전부입니다. 스패머로부터 도메인을 보호하기 위해 몇 가지 추가 조치를 취할 수 있습니다.

사용 사례가 단일 주소에서 서버의 알림을 받는 것이라면 이메일을 화이트리스트에 추가할 수 있기 때문에 스팸으로 표시된 이메일은 주요 문제입니다. 그러나 사용 사례가 잠재적인 사이트 사용자에게 이메일을 보내는 것이라면(예: 게시판 가입 확인 이메일) 서버의 이메일이 합법적인 것으로 보일 가능성이 더 높도록 SPF 레코드와 DKIM을 확실히 설정해야 합니다.

  • SPF 레코드를 사용하여 스푸핑을 방지하고 전자 메일 안정성을 향상시키는 방법\n
  • Debian Wheezy에서 Postfix를 사용하여 DKIM을 설치 및 구성하는 방법 이 문서는 Debian Wheezy용으로 작성되었지만 동일한 단계가 Ubuntu 16.04에 적용됩니다.\n

올바르게 구성된 경우 도메인에서 발생한 것으로 보이는 주소로 스팸을 보내기가 어렵습니다. 이러한 추가 구성 단계를 수행하면 일반 메일 공급자가 서버의 이메일을 합법적인 것으로 볼 가능성이 높아집니다.