블로그로 돌아가기

메일 서버 구성 튜토리얼: Postfix, Dovecot, MySQL 및 SpamAssassin 사용 방법

메일 서버 구성 튜토리얼: Postfix, Dovecot, MySQL 및 SpamAssassin 사용 방법

소개

On Ubuntu 20.04에서 Postfix, Dovecot, MySQL, 그리고 SpamAssassin 과 같은 도구를 사용하여 메일 서버를 구성할 수 있습니다. 처음 시도하는 사람에게는 이 과정이 혼란스러울 수 있습니다. 이 튜토리얼은 상세한 단계를 통해 메일 서버 구성 과정을 간소화하는 것을 목표로 합니다. 이 튜토리얼을 마치면 가상 도메인, 사용자 및 별칭(alias)을 추가하는 방법을 알게 될 것입니다. 궁극적으로 가상 서버를 스팸 허브로부터 더 안전하게 보호할 수 있습니다.

사전 요구 사항

메일 서버 구성을 시작하기 전에 몇 가지 사전 요구 사항을 해결해야 합니다. 먼저, 가상 사설 서버(VPS)에 귀하의 서버로 포워딩되는 도메인이 있는지 확인하십시오. 또한 MySQL을 설치하고 구성해야 합니다. 또한, root 권한이 부여된 사용자가 있어야 하며, SSL 인증서를 설치해야 합니다. 마지막으로, FQDN이 구성되고 식별되었는지 확인하십시오.

root 사용자로 패키지를 설치하면 모든 권한을 갖게 됩니다. 그렇기 때문에 다음을 권장합니다:

사용자의 비밀번호를 입력합니다. 이 시점에서 $ 기호가 #(으)로 변경되는 것을 볼 수 있습니다. 다음으로, 구성의 다양한 측면을 하나씩 살펴보겠습니다.

1단계: 패키지 설치

먼저 패키지를 설치하는 방법부터 알아보겠습니다:

Postfix 구성 창이 나타나면 Internet Site:

Mail Server postfix config

옵션을 선택합니다. 다음으로 System mail 이름에 대한 질문을 받게 됩니다. 여기서는 FQDN 또는 기본 도메인을 사용할 수 있습니다:

postfix configuration 2

2단계: MySQL 데이터베이스, 가상 도메인, 사용자 및 별칭 생성

패키지 설치가 완료되면 구성을 진행합니다. 우리의 목표는 세 개의 테이블을 구성하는 것입니다. 하나는 도메인용, 하나는 사용자용, 다른 하나는 별칭용입니다. 이 테이블들은 우리가 생성할 MySQL 데이터베이스에 저장됩니다.

데이터베이스 이름을 servermail로 지정한다고 가정해 보겠습니다. 원하는 이름을 자유롭게 사용하셔도 됩니다. 생성 방법은 다음과 같습니다:

MySQL root 사용자로 로그인해야 합니다:

그런 다음 비밀번호를 입력합니다. 성공하면 다음과 같은 결과가 표시됩니다:

다음으로, 특히 메일 인증을 위한 새 사용자를 생성합니다. 다음과 같이 SELECT 권한을 부여합니다:

그 후, 권한을 성공적으로 적용하기 위해 MySQL 권한을 다시 로드합니다:

다음으로, 데이터베이스를 사용하여 테이블을 만들고 데이터를 입력합니다:

승인된 도메인으로 인식되는 특정 도메인을 위한 개별 테이블을 생성합니다:

목표는 사용자를 테이블에 등록하는 것입니다. 따라서 관련 이메일 주소와 비밀번호를 추가할 것입니다. 각 사용자를 도메인과 연결해야 한다는 점을 기억하십시오:

다음으로, 다른 이메일로 전달할 모든 이메일을 지정하기 위해 모든 가상 별칭(virtual alias)에 대한 테이블을 생성합니다:

이 과정이 끝나면 세 개의 테이블을 성공적으로 생성하게 됩니다. 다음으로 데이터를 입력해야 합니다.

  • 가상 도메인

이 섹션에서는 다음 테이블 내에 도메인을 입력하는 방법을 배웁니다. virtual_domains 테이블. 구체적으로, 기본 도메인(example.com) 및 FQDN (hostname.example.com):

  • 가상 이메일

다음으로 각 도메인에 대한 이메일 주소와 관련 비밀번호를 입력합니다. 모든 정보가 귀하의 특정 정보로 변경되었는지 확인하십시오:

  • 가상 별칭

이제 다른 이메일 주소로 전달할 이메일 주소를 입력할 수 있습니다. 전자는 발신지(source)이고 후자는 수신지(destination)입니다:

그런 다음 MySQL을 종료할 수 있습니다:

3단계: Postfix 구성

Postfix가 SMTP 연결을 관리할 수 있도록 구성하는 것이 중요합니다. 또한 MySQL 데이터베이스에 입력된 모든 사용자의 메시지를 보낼 수 있어야 합니다. 먼저 기본 파일의 복사본을 만드는 것부터 시작하겠습니다. 이는 필요한 경우 기본 구성으로 쉽게 되돌릴 수 있도록 하기 위함입니다:

이제 다음 파일을 엽니다. main.cf 파일을 열어 수정합니다:

먼저 TLS 매개변수를 주석 처리한 다음 다른 매개변수를 추가합니다. 이 예제에서는 Free SSL 인증서를 사용하고 있습니다. 물론 요구 사항에 따라 구성을 변경할 수 있습니다:

다음으로, TLS 설정 아래에 이 매개변수들을 추가합니다:

그 후, 다음을 주석 처리해야 합니다. mydestination 기본 설정. 그런 다음, 이것을 다음으로 대체합니다. localhost. 이 변경을 통해 VPS는 MySQL 테이블의 가상 도메인을 사용할 수 있게 됩니다:

이제 이 명령을 사용하여 다음이 설정되어 있는지 확인하십시오. myhostname 매개변수가 FQDN에 설정되어 있는지:

또한, 테이블에 나열된 모든 가상 도메인으로의 로컬 메일 전송을 활성화하려면 이 줄을 추가하십시오:

마지막으로, Postfix에 가상 도메인, 사용자 및 별칭을 구성하도록 지시하기 위해 다음 매개변수를 추가합니다:

오류가 없는지 확인하려면 이러한 변경 사항을 다음 파일과 비교하십시오:

https://www.dropbox.com/s/x9fpm9v1dr86gkw/etc-postfix-main.cf.txt

모든 확인이 끝나면, 다음에 추가할 세 개의 파일을 생성합니다. main.cf 파일. 여기서 목표는 Postfix에 MySQL과 연결하는 방법에 대한 지침을 제공하는 것입니다. 이를 위해 먼저 다음 파일을 생성하는 것부터 시작하겠습니다. mysql-virtual-mailbox-domains.cf file. Of course, in your file, you will make changes as per your personal configuration:

다음으로, Postfix를 재시작합니다:

Postfix가 도메인을 찾을 수 있는지 확인해야 합니다. 이를 테스트하려면 다음 명령을 사용하십시오:

명령이 성공하면 1을 반환합니다. 이 경우, 다음 파일을 생성하여 진행할 수 있습니다. mysql-virtual-mailbox-maps.cf file:

Postfix를 다시 한 번 재시작합니다:

다시 한 번, Postfix가 첫 번째 이메일 주소를 찾을 수 있는지 확인합니다. 이를 테스트하려면 다음 명령을 사용하십시오:

성공하면 결과값으로 1을 받게 됩니다. 따라서 마지막 파일을 생성하는 단계로 이동하겠습니다:

이것으로 Postfix와 MySQL 간의 설정이 완료되었습니다. 적용하려면 Postfix를 재시작하세요:

Postfix가 실제로 별칭을 찾고 있는지 확인하려면 다음 명령을 사용하세요:

이상적으로는 별칭으로 전달된 메일을 출력으로 받아야 합니다. 또한 다음과 같이 /etc/postfix/master.cf 파일을 수정하여 포트 587 을 이메일 클라이언트와 안전하게 연결할 수 있습니다:

특정 행의 주석을 해제하고 매개변수를 추가하는 방법은 다음과 같습니다:

때로는 포트가 열려 있는지 확인하기 위해 Postfix를 재시작해야 할 수도 있습니다:

이 도구는 도메인 포트를 스캔하는 데에도 사용할 수 있습니다. 이를 사용하여 포트 25587 이 열려 있는지 확인할 수 있습니다.

4단계: Dovecot 설정

이제 Dovecot을 설정할 차례입니다. 이 섹션에서는 수정하려는 7개의 파일을 복사해야 합니다. 이는 필요한 경우 되돌릴 수 있도록 하기 위함입니다. 다음 명령을 하나씩 입력하세요:

Dovecot의 설정 파일을 편집해야 합니다:

다음 옵션의 주석이 해제되어 있는지 확인하세요:

다음으로, 아래의 !include_try /usr/share/dovecot/protocols.d/*.protocol 행 아래에서 프로토콜을 활성화합니다. 원하는 경우 pop3:

실수가 없는지 확인하려면 이 파일과 비교해 보세요:

https://www.dropbox.com/s/wmbe3bwy0vcficj/etc-dovecot-dovecot.conf.txt

다음으로, 메일 설정 파일을 편집합니다:

다음 행을 찾습니다. mail_location 주석을 해제하고 다음 매개변수를 추가해야 합니다:

그 후, 다음 행을 찾습니다. mail_privileged_group 마찬가지로 주석을 해제하고 mail 매개변수를 추가합니다:

오류 가능성을 없애기 위해 이 파일과 비교해 보세요:

https://www.dropbox.com/s/hnfeieuy77m5b0a/etc.dovecot.conf.d-10-mail.conf.txt

  • 권한 확인

권한을 확인하려면 다음 명령을 사용하세요:

권한이 다음과 같이 표시되는지 확인하세요:

각 도메인에 대한 폴더를 생성할 수 있습니다. 이 모든 폴더는 MySQL 테이블에 등록됩니다:

다음 ID를 사용하여 vmail 사용자 및 그룹을 생성합니다. 5000:

다음으로, 다음 소유자를 변경해야 합니다: /var/mail 폴더의 소유자를 vmail 사용자로 변경합니다:

이제 다음을 편집합니다: /etc/dovecot/conf.d/10-auth.conf 파일:

일반 텍스트 인증의 주석을 해제한 후 다음 줄을 추가합니다:

이것을 사용하여 다음을 수정합니다: auth_mechanisms 매개변수:

이제 이 줄을 주석 처리합니다:

MySQL 인증을 활성화하려면 다음 줄의 주석을 해제해야 합니다:

오류를 감지하고 수정하려면 다음 파일을 사용하십시오:

https://www.dropbox.com/s/4h472nqrj700pqk/etc.dovecot.conf.d.10-auth.conf.txt

다음을 생성하면 /etc/dovecot/dovecot-sql.conf.ext 파일에 귀하의 정보를 입력하면 인증할 수 있습니다:

파일에 이 코드를 입력합니다:

사용자 정의 MySQL 정보를 사용하여 다음을 수정합니다: /etc/dovecot/dovecot-sql.conf.ext 파일:

다음과 같이 driver 매개변수의 주석을 해제한 후 MySQL을 매개변수로 설정합니다:

다음 줄의 주석을 해제하여 MySQL 관련 정보를 입력할 수 있습니다: connect 줄:

이제 다음 줄의 주석을 해제하고 default_pass_scheme 줄을 다음과 같이 변경해야 합니다: SHA-512:

다음의 주석을 해제한 후 아래 정보를 추가합니다: password_query:

오류를 감지하려면 이 파일과 비교하십시오:

https://www.dropbox.com/s/48a5r0mtgdz25cz/etc.dovecot.dovecot-sql.conf.ext.txt

다음으로, dovecot 폴더의 소유자와 그룹을 vmail 사용자로 변경할 수 있습니다:

다음 단계는 다음을 수정하는 것입니다: /etc/dovecot/conf.d/10-master.conf 파일. 여기서는 다른 매개변수들이 변경되므로 각별히 주의해야 합니다:

다음 코드를 사용하여 다음을 변경합니다: unix_listener 매개변수를 다음으로 변경: service_auth:

다음으로, 다음을 편집해야 합니다: service auth-작업자 다음과 같이:

이 파일과 비교하여 오류를 감지합니다:

https://www.dropbox.com/s/g0vnt233obh6v2h/etc.dovecot.conf.d.10-master.conf.txt

다음 단계는 Dovecot의 SSL 설정 파일을 수정하는 것입니다. 기본 설정을 사용할 계획이라면 이 단계를 건너뛰고 다음 섹션으로 진행할 수 있습니다.

다음으로, ssl 매개변수를 다음과 같이 required로 변경합니다:

또한 다음 두 가지 모두의 경로를 수정합니다. ssl_certssl_key:

Dovecot 재시작:

포트 993이(가) 열려 있는지 확인하십시오. 만약 pop3을(를) 활성화했다면, 포트 995:

여기까지 단계를 완료하셨다면 축하합니다! 메일 서버를 성공적으로 구성하셨습니다. 모든 단계를 올바르게 수행했는지 확인하려면 다음과 같이 이메일 클라이언트를 사용하여 계정을 테스트할 수 있습니다.

포트 993은(는) 보안 IMAP에 사용되며, 포트 587/포트 25은(는) SMTP에 사용됩니다.

5단계: SpamAssassin 구성하기

드디어 SpamAssassin을 구성하는 튜토리얼의 마지막 섹션에 도달했습니다. 먼저 SpamAssassin을 설치하는 것부터 시작하겠습니다:

다음과 같이 SpamAssassin용 사용자를 생성합니다:

SpamAssassin을 구성하려면 설정 파일을 열고 수정해야 합니다:

이제 여기서 ENABLED 매개변수를 변경하여 SpamAssassin 데몬을 활성화해야 합니다:

다음 코드로 home 및 options 매개변수를 수정합니다:

이 줄을 사용하여 PID_File 매개변수를 지정합니다:

다음으로, 이 명령을 사용하여 SpamAssassin의 규칙이 자동으로 업데이트되도록 지정합니다:

다음 문서와 비교하여 실수가 없는지 확인하십시오:

https://www.dropbox.com/s/ndvpgc2jipdd4bk/etc.default.spamassassin.txt

스팸 방지 규칙을 설정하려면 /etc/spamassassin/local.cf 파일을 다시 열어야 합니다:

SpamAssassin이 작동하는 방식은 사용자가 수신하는 모든 메일에 점수를 매기는 것입니다. 이메일의 점수를 평가하여 스팸 검사에서 5.0보다 높으면 해당 메일은 스팸으로 표시됩니다. 다음은 이러한 스팸 방지 규칙을 구성하는 데 사용할 수 있는 매개변수입니다:

스팸 방지 규칙이 설정되면, 각 이메일을 SpamAssassin으로 검사하도록 Postfix에 알려야 합니다. 이를 위해 다음을 수정해야 합니다. /etc/postfix/master.cf 파일:

다음 줄을 찾아 다음을 추가합니다. spamassassin 필터:

이제 다음 매개변수를 추가할 수 있습니다:

마지막으로, 변경 사항을 적용하기 위해 SpamAssassin을 시작하고 Postfix를 재시작합니다. 다시 시작하면 Postfix가 이메일에서 스팸을 검증하기 시작합니다:

이것으로 끝입니다! Postfix와 Dovecot을 사용하여 메일 서버를 성공적으로 구성했습니다. 또한 MySQL 인증을 수행하고 SpamAssassin으로 스팸 필터링을 설정했습니다.

결론

이 튜토리얼은 앞서 언급한 도구들을 사용하여 메일 서버 구성을 수행하기 위해 따라야 할 단계를 개략적으로 설명합니다. 이는 독자적으로 메일 서버를 설정하기 위한 포괄적인 가이드로 활용될 수 있습니다. 만약 Google의 SMTP 서버 기능을 활용하는 것에 관심이 있다면 이 튜토리얼을 따라해 보세요.

즐거운 컴퓨팅 되세요!

author

Pranay Kapgate

작성자 · CloudSigma

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

댓글

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