소개
Postfix는 Linux 시스템에서 이메일을 라우팅하고 전달하는 데 사용할 수 있는 인기 있는 오픈 소스 MTA (Mail Transfer Agent)입니다. 인터넷상의 공용 메일 서버의 약 25 %가 Postfix를 실행하는 것으로 추정됩니다.
이 가이드에서는 Ubuntu 20.04 서버에 Postfix를 설치하고 구성하는 방법을 알아 봅니다. 그런 다음 이메일 클라이언트라고도 하는 MUA (Mail User Agent) 인 s-nail을 설치하여 Postfix가 메일을 올바르게 라우팅 할 수 있는지 테스트합니다.
이 튜토리얼의 목표는 일부 베어 본 이메일 기능만으로 Postfix를 빠르게 시작하고 실행할 수 있도록 돕는 것입니다. 이 가이드가 끝날 때까지 완전한 기능을 갖춘 이메일 서버를 가지지는 않을 것이지만, 시작하는 데 도움이 되는 이러한 설정의 기본 구성 요소 중 일부가 제공됩니다.
전제 조건
자신의 메일 서버를 설정하고 유지하는 것은 복잡하고 시간이 많이 걸립니다. 대부분의 사용자에게는 유료 메일 서비스에 의존하는 것이 더 실용적입니다.
자체 메일 서버를 운영하려는 경우 이 문서를 검토하여 원하지 않는 이유를 확인하는 것이 좋습니다.
이 가이드에 따라 Postfix를 설치하고 구성하려면 먼저 다음이 있어야 합니다.
이 자습서에서는 FQDN이 mail.example.com 인 호스트를 구성한다고 가정합니다. 필요할 때마다 자신의 FQDN을 반영하도록 example.com 또는 mail.example.com을 변경해야 합니다.
1 단계 — Postfix 설치
Postfix는 Ubuntu의 기본 저장소에 포함되어 있으므로 APT로 설치할 수 있습니다.
시작하려면 로컬 apt 패키지 캐시를 업데이트하십시오.
그런 다음 다음 명령을 사용하여 postfix 패키지를 설치하십시오. 여기서는 DEBIAN_PRIORITY = low 환경 변수를 이 설치 명령에 전달합니다. 이렇게 하면 설치 프로세스에서 몇 가지 추가 옵션을 구성하라는 메시지가 표시됩니다.
이 설치 프로세스는 일련의 대화 형 프롬프트를 엽니다. 이 자습서의 목적을 위해 다음 정보를 사용하여 프롬프트를 채웁니다.
이 가이드에서 사용하는 설정은 다음과 같습니다.
참고 : 이러한 설정을 변경하기 위해 돌아와야 하는 경우 다음을 입력하여 변경할 수 있습니다.
프롬프트는 이전 응답으로 미리 채워집니다.
설치 프로세스가 완료되면 Postfix 구성을 몇 가지 업데이트 할 준비가 된 것입니다.
2 단계 — Postfix 구성 변경
이제 패키지 설치 프로세스에서 요청하지 않은 일부 설정을 조정할 수 있습니다. 대부분의 Postfix 구성 설정은 /etc/postfix/main.cf 파일에 정의되어 있습니다. 이 파일을 직접 편집하는 대신 Postfix의 postconf 명령을 사용하여 구성 설정을 쿼리하거나 설정할 수 있습니다.
시작하려면 루트가 아닌 Ubuntu 사용자의 사서함 위치를 설정합니다. 이 가이드에서는 메일을 개별 파일로 분리 한 다음 사용자 작업에 따라 디렉토리간에 이동하는 Maildir 형식을 사용합니다. 이 가이드에서 다루지 않는 대체 옵션은 모든 메시지를 단일 파일에 저장하는 mbox 형식입니다.
home_mailbox 변수를 Maildir /로 설정합니다. 나중에 사용자의 홈 디렉토리 내에서 해당 이름으로 디렉토리 구조를 만듭니다. 다음을 입력하여 home_mailbox를 구성합니다.
다음으로, 임의의 이메일 계정을 Linux 시스템 계정에 매핑하는 virtual_alias_maps 테이블의 위치를 설정합니다. 테이블 위치를 / etc / postfix / virtual이라는 해시 데이터베이스 파일에 매핑하는 다음 명령을 실행합니다.
이제 main.cf 파일에서 가상 맵 파일의 위치를 정의 했으므로 파일 자체를 만들고 Linux 시스템의 사용자 계정에 이메일 계정 매핑을 시작할 수 있습니다. 선호하는 텍스트 편집기로 파일을 작성하십시오. 이 예에서는 nano를 사용합니다.
이메일을 수락 할 주소를 나열한 다음 공백과 메일을 받을 Linux 사용자를 차례로 입력합니다.
예를 들어 contact@example.com 및 admin@example.com에서 이메일을 수락하고 해당 이메일이 sammy Linux 사용자에게 전달되도록 하려면 다음과 같이 파일을 설정할 수 있습니다.
/etc/postfix/virtual
contact@example.com sammy
admin@example.com sammy
모든 주소를 적절한 서버 계정에 매핑 한 후 파일을 저장하고 닫습니다. nano를 사용한 경우 CTRL + X, Y, ENTER를 차례로 눌러 이 작업을 수행합니다.
다음을 입력하여 매핑을 적용합니다.
Postfix 프로세스를 다시 시작하여 모든 변경 사항이 적용되었는지 확인하십시오.
필수 초기 서버 설정 가이드를 따랐다 고 가정하면 UFW로 방화벽을 구성한 것입니다. 이 방화벽은 이러한 연결이 명시 적으로 허용되지 않는 한 기본적으로 서버의 서비스에 대한 외부 연결을 차단하므로 Postfix에 대한 예외를 허용하려면 방화벽 규칙을 추가해야 합니다.
다음을 입력하여 서비스에 대한 연결을 허용 할 수 있습니다.
이를 통해 Postfix가 구성되고 외부 연결을 수락 할 준비가 되었습니다. 그러나 아직 메일 클라이언트로 테스트 할 준비가 되지 않았습니다. 클라이언트를 설치하고 이를 사용하여 서버로 전달되는 메일과 상호 작용하려면 먼저 Ubuntu 서버의 설정을 몇 가지 변경해야 합니다.
3 단계 — 메일 클라이언트 설치 및 Maildir 구조 초기화
배달되는 메일과 상호 작용하기 위해 이 단계에서는 s-nail 패키지를 설치하는 과정을 안내합니다. 이것은 Maildir 형식을 올바르게 처리 할 수 있는 BSD xmail 클라이언트의 풍부한 기능 변형입니다.
하지만 클라이언트를 설치하기 전에 MAIL 환경 변수가 올바르게 설정되었는지 확인하는 것이 현명합니다. s-nail은 사용자의 메일을 찾을 위치를 파악하기 위해 이 변수를 찾습니다.
예를 들어 ssh, su, su 또는 sudo를 통해 계정에 액세스하는 방법에 관계없이 MAIL 변수가 설정되었는지 확인하려면 /etc/bash.bashrc 파일에 변수를 설정하고 추가해야 합니다. /etc/profile.d 내의 파일에 복사하여 기본적으로 모든 사용자에 대해 설정되었는지 확인하십시오.
이러한 파일에 변수를 추가하려면 다음을 입력하십시오.
현재 세션으로 변수를 읽으려면 /etc/profile.d/mail.sh 파일을 소싱하십시오.
완료되면 APT로 달팽이 이메일 클라이언트를 설치하십시오.
클라이언트를 실행하기 전에 조정해야 할 몇 가지 설정이 있습니다. 편집기에서 /etc/s-nail.rc 파일을 엽니다.
파일 맨 아래에 다음 옵션을 추가하십시오.
/etc/s-nail.rc
. . .
set emptystart
set folder=Maildir
set record=+sent
이 라인의 기능은 다음과 같습니다.
완료되면 파일을 저장하고 닫습니다. 이제 시스템의 Maildir 구조를 초기화 할 준비가 되었습니다.
홈 디렉터리 내에 Maildir 구조를 만드는 빠른 방법은 s-nail 명령을 사용하여 자신에게 이메일을 보내는 것입니다. 보낸 파일은 Maildir이 생성 된 후에 만 사용할 수 있으므로 이 초기 이메일에 대한 쓰기를 비활성화 해야 합니다. -Snorecord 옵션을 전달하여 이를 수행하십시오.
s-nail 명령에 문자열을 파이핑하여 이메일을 보냅니다. Linux 사용자를 수신자로 표시하도록 명령을 조정하십시오.
참고 : 다음과 같은 응답을 받을 수 있습니다.
Output
Can't canonicalize "/home/sammy/Maildir"
이것은 정상적인 현상이며 이 첫 번째 메시지를 보낼 때만 나타날 수 있습니다.
~ / Maildir 디렉토리를 찾아서 디렉토리가 생성되었는지 확인할 수 있습니다.
디렉토리 구조가 생성되고 새 메시지 파일이 ~ / Maildir / new 디렉토리에 있음을 확인할 수 있습니다.
Output
/home/sammy/Maildir/:
cur new tmp
/home/sammy/Maildir/cur:
/home/sammy/Maildir/new:
1463177269.Vfd01I40e4dM691221.mail.example.com
/home/sammy/Maildir/tmp:
이제 디렉토리 구조가 생성되었으므로 보낸 초기화 메시지를 보고 외부 이메일 주소로 메시지를 보내 s-nail 클라이언트를 테스트 할 준비가 되었습니다.
4 단계 — 클라이언트 테스트
클라이언트를 열려면 s-nail 명령을 실행하십시오.
콘솔에 대기 중인 초기화 메시지가 포함 된 기본적인 받은 편지함이 표시됩니다.
Output
s-nail version v14.9.15. Type `?' for help
"/home/sammy/Maildir": 1 message 1 new
>N 1 sammy@example.com 2020-05-19 15:40 14/392 init
ENTER를 눌러 메시지를 표시합니다.
Output
[-- Message 1 -- 14 lines, 369 bytes --]:
From sammy@example.com Tue May 19 15:40:48 2020
Date: Tue, 19 May 2020 15:40:48 +0000
To: sammy@example.com
Subject: init
Message-Id: <20160513220749.A278F228D9@mail.example.com>
From: sammy@example.com
init
h를 입력 한 다음 Enter 키를 눌러 메시지 목록으로 돌아갈 수 있습니다.
Output
>R 1 sammy@example.com 2020-05-19 15:40 14/392 init
이제 메시지가 읽혔음을 나타내는 R 상태가 됩니다.
이 메시지는 그다지 유용하지 않으므로 d를 누른 다음 ENTER를 눌러 삭제할 수 있습니다.
터미널로 돌아가려면 q를 입력 한 다음 Enter 키를 누릅니다.
최종 테스트로 달팽이가 이메일 메시지를 올바르게 보낼 수 있는지 확인합니다. 이를 위해 이전 단계에서 보낸 init 메시지에서 했던 것처럼 텍스트 파일의 내용을 s-nail 프로세스로 파이프 할 수 있습니다.
텍스트 편집기에서 테스트 메시지를 작성하여 시작하십시오.
내부에 보낼 텍스트를 입력하세요.
메시지를 작성한 후 파일을 저장하고 닫습니다.
그런 다음 cat 명령을 사용하여 메시지를 s-nail 프로세스로 파이프 하십시오. 이러한 옵션을 사용하는 다음 예제를 사용하여 이를 수행 할 수 있습니다.
또한 user@email.com을 액세스 할 수 있는 유효한 이메일 주소로 변경해야 합니다.
그런 다음 메시지를 보낸 이메일 주소의 받은 편지함으로 이동합니다. 거의 즉시 거기에서 기다리는 메시지를 볼 수 있습니다.
참고 : 메일이 받은 편지함에 없는 경우 스팸 폴더로 전송되었을 수 있습니다.
당신은 당신의 달팽이 클라이언트 내에서 보낸 메시지를 볼 수 있습니다. 대화 형 클라이언트를 다시 시작합니다.
이메일 클라이언트에서 다음을 입력하여 보낸 메시지를 봅니다.
다음과 같은 출력이 표시됩니다.
Output
+[/home/sammy/Maildir/]sent: 1 message 1 new
▸N 1 contact@example.com 2020-05-19 15:47 12/297 Test email subject line
수신 메일에 사용하는 것과 동일한 명령을 사용하여 보낸 메일을 관리 할 수 있습니다.
결론
이제 Ubuntu 20.04 서버에 Postfix가 구성되었습니다. 이메일 서버 관리는 새로운 시스템 관리자에게 어려운 작업이 될 수 있지만 이 구성을 사용하면 시작하기에 충분한 MTA 이메일 기능이 있어야 합니다.
등록된 댓글이 없습니다.