블로그로 돌아가기

Ubuntu 20.04에서 Postfix를 발신 전용 SMTP 서버로 설치 및 구성하기

Ubuntu 20.04에서 Postfix를 발신 전용 SMTP 서버로 설치 및 구성하기

Postfix은(는) 메일 전송 에이전트(MTA) 역할을 하는 인기 있는 무료 오픈 소스 소프트웨어입니다. Postfix의 역할은 이메일을 라우팅하고 전달하는 것입니다. 일반적인 용도 외에도 Postfix는 로컬 애플리케이션에서만 이메일을 보내도록 구성할 수도 있습니다.

이러한 Postfix의 활용은 다양한 상황에서 유용하게 배포할 수 있는 방법입니다. 예를 들어, 정기적으로 이메일 알림을 보내거나 아웃바운드 트래픽이 제한된 타사 이메일 서비스 제공업체와 연동할 때 사용할 수 있습니다. 완전한 기능을 갖춘 SMTP 서버와 비교했을 때, Postfix는 필요한 기능을 모두 유지하면서도 더 가벼운 대안입니다.

이 튜토리얼에서는 Ubuntu에서 Postfix를 발신 전용 SMTP 서버로 설치하고 구성하는 방법을 확인해 보세요.

전제 조건

이 가이드를 따르려면 다음 전제 조건을 충족해야 합니다:

Postfix 설치하기

전제 조건이 충족되면 서버에 Postfix를 배포할 준비가 된 것입니다. Postfix를 설치하는 가장 간단한 방법은 mailutils 패키지를 설치하는 것입니다. 이 패키지는 공식 Ubuntu 리포지토리에서 직접 제공됩니다.

먼저 터미널을 실행하고 APT 패키지 데이터베이스를 업데이트합니다.

Package Update

그런 다음 Postfix를 설치할 수 있습니다.

Install MailUtils

설치 과정에서 다음과 같은 구성 창이 나타납니다. 기본 옵션은 Internet Site입니다. 선택을 확인하려면 TAB 키를 눌러 커서를 다음 섹션으로 이동합니다. 그런 다음 Enter:

Mail Server Config

를 누릅니다. 다음 단계에서는 시스템 메일 이름(System mail name)을 묻습니다. 이는 서버 생성 시 할당된 이름이 됩니다. 스크립트에 설명된 대로 로컬 호스트의 메일 주소가 “foo@example.org”인 경우 시스템 메일 이름은 example.org:

Mail Name Config

참고로 구성 스크립트는 나중에 언제든지 다음 명령을 사용하여 다시 실행할 수 있습니다:

Postfix 구성하기

이 단계에서는 localhost에서만 이메일을 보내고 받도록 Postfix를 구성합니다. 이를 위해 Postfix는 loopback 인터페이스에서 대기해야 합니다. 이는 서버가 내부 통신에 사용하는 가상 네트워크 인터페이스입니다. 다음으로, 원하는 텍스트 편집기를 사용하여 Postfix 구성 파일을 엽니다:

다음의 값을 inet_interface에서 loopback-only:

Inet Interface

로 변경합니다. 변경해야 할 또 다른 지시어는 mydestination입니다. 이는 local_transport 메일 전달 전송을 통해 전달되는 도메인 목록을 정의합니다. 기본값은 다음과 같습니다:

Mydestination Old

이 값을 다음과 같이 변경합니다:

Mydestination

도메인이 실제로는 서브도메인이고 이메일이 메인 도메인에서 발송된 것처럼 표시되기를 원하는 경우, Postfix 구성의 끝에 다음 지시어를 추가합니다. 이렇게 하면 이메일 주소에서 서브도메인이 제거됩니다:

Postfix Masquerade Domains

변경 사항을 적용하려면 Postfix를 재시작합니다:

restart_postfix

SMTP 서버 테스트하기

구성 과정이 성공적으로 완료되었다고 가정하고, 이제 테스트할 차례입니다. 테스트를 위해 Postfix가 mail 명령을 사용하여 외부 이메일 계정으로 이메일을 보낼 수 있는지 확인합니다. 이 명령은 mailutils 패키지의 일부입니다:

메시지는 지정된 이메일 주소로 도착해야 합니다. 이 시점에서는 전송되는 모든 이메일이 암호화되지 않은 상태입니다. 서비스 제공업체는 일반적으로 이러한 이메일을 스팸으로 분류하므로, 이메일이 도착했는지 스팸함을 꼭 확인하시기 바랍니다.

만약 mail 명령어가 오류를 보고하거나 오랜 시간이 지난 후에도 이메일이 도착하지 않으면, Postfix 설정을 다시 확인하고 서버 이름과 호스트 이름이 올바르게 설정되었는지 확인하십시오. 이 설정을 사용하면 이메일이 다음 주소에서 발송된 것처럼 표시됩니다:

여기서 username은 mail 명령을 실행한 서버 사용자의 사용자 이름이 됩니다.

시스템 메일 전달하기

이메일 서버가 올바르게 구성되고 작동하는지 성공적으로 확인했습니다. 이제 다음 사용자의 이메일을 전달하도록 구성해야 합니다. root. 서버로 전송되는 모든 시스템 생성 메시지는 외부 이메일 주소로 전달됩니다. 이메일 수신자의 경우, /etc/aliases 파일에 대체 이름 목록이 포함되어 있습니다. 원하는 텍스트 편집기를 사용하여 이 파일을 여십시오:

기본적으로 다음과 같이 표시됩니다:

Postfix Aliases

파일 끝에 다음 줄을 추가합니다:

Postfix Newaliases

이것은 다음으로 전송된 이메일이 root 이메일 주소로 전달됨을 나타냅니다. 변경 사항을 적용하려면 다음 명령을 실행하십시오. 이 명령은 mail 명령어가 사용하는 별칭(alias) 데이터베이스를 재구축합니다:

sudo newaliases

다음으로, 변경이 성공적이었는지 테스트해야 합니다. 다음으로 테스트 이메일을 보냅니다. root:

이메일이 지정된 이메일 주소로 도착해야 합니다. 아직 암호화가 설정되지 않았으므로 스팸 폴더를 확인하는 것을 잊지 마십시오.

SMTP 암호화 활성화하기

암호화되지 않은 형식으로 이메일을 보내는 것은 위험합니다. 안전을 보장하려면 SMTP 암호화를 활성화해야 합니다. 이를 위해 귀하의 도메인을 위해 Let’s Encrypt에서 무료 TLS 인증서를 요청할 것입니다.

Ubuntu의 경우, 이 작업을 수행하는 도구는 Certbot 도구입니다. 다행히도 공식 Ubuntu 저장소에서 직접 설치할 수 있습니다. 다음 명령으로 Certbot을 설치하십시오:

Postfix Install certbot

서버에 UFW가 구성되어 있다고 가정하면, 포트를80 열어두어야 도메인 확인이 진행될 수 있습니다. 이를 활성화하려면 다음 명령을 실행하십시오:

ufw allow Postfix

이제 Certbot을 실행하여 인증서를 생성합니다. 이 명령은 Certbot이 4096비트 RSA 키로 인증서를 발급하도록 지시합니다. 확인은 다음 포트를 통해 진행됩니다. 80 (HTTP):

출력은 다음과 같을 것입니다:

키는 다음 디렉터리에 저장됩니다:

인증서가 생성되었으므로 텍스트 편집기에서 Postfix 설정 파일을 엽니다:

다음 섹션을 찾으십시오 TLS 매개변수:

Postfix tls conf old

그 후, 다음 지시어의 값을 변경하십시오 smtpd_tls_cert_filesmtpd_tls_key_file:

Postfix tls conf

다음으로 파일을 저장하고 닫습니다. 변경 사항을 적용하려면 Postfix를 재시작하십시오:

마지막으로 대상 이메일 주소로 더미 이메일을 다시 보냅니다:

이제 이메일이 다른 이메일처럼 정상적으로 표시될 것입니다. 이메일의 기술 정보를 확인하면 암호화되어 표시됩니다.

마치며

축하합니다! Postfix로 구동되는 발신 전용 이메일 서버를 성공적으로 구성했습니다. 적절한 암호화 키를 사용하여 이메일 트랜잭션도 안전합니다.

이메일 전송을 최적화하는 더 많은 방법을 보려면 이 튜토리얼을 확인하십시오 Google SMTP 서버를 사용하는 가장 좋은 방법.

즐거운 컴퓨팅 되세요!

author

Pranay Kapgate

작성자 · CloudSigma

Preslav Dobrev는 CloudSigma의 크리에이티브 디자이너로서, 전통적이고 혁신적인 마케팅 채널을 활용하여 일관된 비즈니스 정체성을 구축하는 데 중점을 두고 있습니다. 그는 영향력 있는 브랜드 내러티브를 창출하기 위해 예술적 비전과 전략적 마케팅을 결합하는 데 능숙합니다.

댓글

아직 댓글이 없습니다. 첫 번째로 작성해 보세요.