웹사이트 검색

Debian 10에서 ISPConfig로 이메일 서버를 설치하는 방법


이 자습서에서는 단일 서버 설정을 예로 사용합니다. ISPConfig 3.1은 Debian 10.0, Buster에 설치됩니다(실제 서버 설치는 ISPConfig Perfect Server 설치 자습서 참조). 이 가이드의 목적은 초기 서버를 설치한 후 작동하는 메일 시스템을 설정하는 단계를 보여주기 위한 것입니다. 도메인 이름. 이 튜토리얼을 테스트하는 동안 ISPConfig를 3.1.15로 업그레이드했습니다.

필요한 것

제대로 작동하는 전자 메일 서버에 대해 이 자습서를 성공적으로 사용하려면 다음이 필요합니다.

  • ISPConfig(및 운영 체제)를 설치하는 호스트
  • 4GB 스왑이 있는 2GB 메모리를 권장합니다. 메일 서버에 충분해야 합니다.
  • 호스트는 포트 25가 양방향으로 열려 있는 인터넷 연결이 있어야 합니다.
  • 호스트에 고정 IP 주소가 있음
  • 호스트에는 IP 주소(또는 IPv6를 사용하는 경우 AAAA)에 대한 A 레코드가 있어야 합니다.
  • 호스트의 DNS 이름 서비스에 대한 MX 레코드를 만들어야 합니다.
  • 호스트 FQDN과 일치하는 호스트 역방향 DNS 이름 서비스 PTR 레코드를 가져와야 합니다.

메모리 요구 사항은 스팸 필터용입니다. 메모리 부족 상황을 피하기 위해 4GB 스왑이 있는 경우 SPAM 필터를 실행하는 경우에도 1GB 메모리를 사용할 수 있습니다.

열린 포트

메일 서버에는 수신 및 발신 모두 포트 25가 열려 있어야 합니다. 해당 호스트에서 전자 메일 서버를 설정하기 전에 해당 호스트에 해당 포트가 열려 있는지 확인하십시오.

포트 25가 열려 있지 않은 경우에도 이메일이 작동하도록 하는 방법이 있지만 포트 25가 열려 있는 다른 호스트를 통해 이메일을 보내는 것이 포함됩니다. 다른 호스트에 전자 메일 서버를 설치하고 전자 메일이 가는 한 전자 메일 서버를 모두 잊어버리는 것이 더 합리적일 수 있습니다.

DNS 이름 서비스 항목

메일 서버에는 FQDN, 정규화된 도메인 이름이 필요합니다(Wikipedia: FQDN 참조). 이 예에서 도메인 이름은 taleman.ovh입니다. 메일 서버 호스트 이름이 메일일 필요가 없음을 표시하기 위해 posti를 호스트 이름으로 사용합니다. 따라서 FQDN은 posti.taleman.ovh입니다.

이 호스트는 서비스 공급자 시스템에 설치되며 도메인 등록, 이름 서비스 및 역 이름 서비스를 제공합니다. 나는 그것들을 사용했다.

IP 주소는 178.33.154.66입니다. 나는 다음을 수행했습니다.

  • taleman.ovh 도메인을 등록했습니다.
  • 이 IP 주소를 이름이 posti.taleman.ovh인 DNS 이름 서비스에 A 레코드로 추가했습니다.
  • 값이 posti.taleman.ovh인 도메인 taleman.ovh에 대한 MX 레코드 추가
  • posti.taleman.ovh를 가리키는 해당 IP 주소에 대한 역방향 이름 서비스 PTR 레코드 추가

전자 메일 도메인에 대한 MX 레코드가 생성됩니다. 그래서 taleman.ovh용으로 만들고 해당 도메인에 대한 전자 메일을 받는 전자 메일 서버인 posti.taleman.ovh를 가리킵니다.

리버스 네임 서비스

이름 서비스 자습서에서 역방향 이름 서비스에 대해 읽어보십시오. 이 예제 사례에서 역방향 이름 서비스는 posti.taleman.ovh를 반환해야 합니다.

내 서비스 공급자는 해당 PTR을 추가하기 전에 A 레코드의 존재를 확인했는데 추가에 실패한 이유를 알기 전에 약간의 문제가 있었습니다.

이름 서비스 테스트

이름 서비스가 올바르게 설정되지 않으면 전자 메일 송수신이 작동하지 않으므로 지금 이름 서비스를 테스트하는 것이 좋습니다. 워크스테이션이 Linux 또는 Unix가 아닌 Windows인 경우 호스트 대신 nslookup 명령을 사용하십시오.

$ host taleman.ovh
taleman.ovh has address 188.165.143.5
taleman.ovh mail is handled by 10 posti.taleman.ovh.

위의 결과는 도메인 이름에 연결된 IP 번호(이 경우 이메일 서버 IP 번호와 다르지만 이메일에는 영향을 미치지 않음)가 있고 다음을 가리키는 MX 레코드가 있음을 보여줍니다. posti.taleman.ovh. \mail is handle by\ 부분은 MX 레코드에서 가져옵니다. @taleman.ovh 주소로 보낸 전자 메일을 posti.taleman.ovh에서 수신하려면 이 MX 레코드가 필요합니다.

그런 다음 메일 서버 FQDN(이 경우 posti.taleman.fi)의 이름 서비스 항목이 A 레코드이고 올바른 IP 번호를 가리키는지 확인합니다.

$ dig posti.taleman.ovh |grep "ANSWER SECTION" --after-context=3 
;; ANSWER SECTION:
posti.taleman.ovh. 3600 IN A 178.33.154.66
;; Query time: 56 msec

마지막으로 역방향 이름 서비스가 IP 번호를 메일 서버의 FQDN으로 다시 확인하는지 확인합니다.

$ host 178.33.154.66
66.154.33.178.in-addr.arpa domain name pointer posti.taleman.ovh.

host 및 dig 명령 대신 이름 서비스를 테스트하는 웹 페이지를 사용할 수 있습니다. MXToolbox에 대해 알고 있습니다.

위의 테스트를 성공적으로 수행할 수 없는 경우 이름 서비스 설정 - 자습서를 시도할 수 있습니다.

OS 설치

Debian 버전 10 Buster를 사용하므로 이 자습서를 따릅니다.

IP 번호, 호스트 이름 및 도메인 이름을 값으로 바꿉니다.

저는 이 튜토리얼을 영어로 작성했기 때문에 언어는 영어로, 국가는 핀란드, 로케일 설정은 United_Kingdom en_GB.UTF-8로 선택했습니다.

:/tmp# cat /etc/debian_version 10.0
:~# cat /etc/timezone
Europe/Helsinki

호스트 이름을 올바르게 설정했는지 확인하십시오. 메일 시스템 구성 ISPConfig는 호스트 이름이 잘못된 경우 작동하지 않습니다.

:~#

ISPConfig 설치

Apache를 웹 서버로 설치하기로 선택했기 때문에 Debian Buster의 경우 이 Perfect Server Guide를 따릅니다.

호스트에 openssh-server를 설치하고 ssh 키를 사용하여 루트 로그인을 설정하여 루트로 호스트에 직접 ssh할 수 있습니다. SSH로 암호 없는 로그인을 보호하십시오.

:/tmp# free -h

나는 nano보다 Emacs 스타일 편집기를 선호하므로 파일 편집을 더 즐겁게 하기 위해 지금 jed를 설치합니다.

운영 체제 설치 후 /etc/host 및 /etc/hostname이 올바르게 설정되었으므로 Perfect Server Guide에 따라 올바른지 방금 확인했습니다. 호스트 이름과 FQDN에 주의하십시오. 엉망이 되면 결국 이메일 서버가 작동하지 않는다는 것을 알게 될 것입니다. 손상은 복구할 수 있지만 처음부터 수정하는 것이 더 쉽습니다.

:/tmp# hostname -f
posti.taleman.ovh

나머지는 퍼펙트 서버 가이드를 따릅니다. 대부분 가이드에서 명령줄로 명령을 잘라내어 붙여넣을 수 있습니다.

Mailman을 설치하지 않았으며 이 호스트에서 Mailman을 사용할 계획이 없습니다. 마찬가지로 BIND DNS Server, Webalizer, AWStats 설치를 생략했습니다. 이 호스트가 이메일 서버가 되기 때문에 Roundcube Webmail을 설치했습니다.

18장(PHPMyAdmin 데이터베이스 관리 도구 설치)에서 명령을 사용했습니다.

/usr/bin/apg -m 32 -x 32

32자 길이의 복어 비밀을 생성합니다.

시스템 사용

이메일 도메인 및 사서함 생성

이제 ISPConfig에 관리자로 로그인하고

  • 새 클라이언트 추가
  • 새 도메인(이메일 도메인!)을 추가하고 양식을 작성합니다.
  • 새 사서함 추가

DKIM 키를 생성하고 이미지에 번호가 매겨진 순서대로 버튼을 클릭하여 기록합니다. Wikipedia에서 DKIM에 대해 읽을 수 있습니다.

그림 1: 메일 도메인 만들기

그런 다음 2분 동안 또는 ISPConfig 패널 상단에 숫자가 있는 빨간 공이 사라질 때까지 기다립니다.

첫 번째 테스트로 위에서 만든 메일함으로 Roundcube 웹메일에 로그인하고 동일한 주소로 메일을 보냅니다. ISPConfig는 생성된 모든 사서함에 환영 메시지를 보내므로 이미 하나의 메시지가 있어야 합니다. 작성 버튼을 사용하여 짧은 테스트 메시지를 작성합니다.

그림 2: Roundcube 웹메일

그림 3: Roundcube에서 보내기

메시지가 사서함에 곧 나타납니다.

그런 다음 가지고 있는 다른 사서함으로 전자 메일 보내기를 테스트하고 메일이 도착하는지 확인할 수 있습니다. 다음 테스트는 다른 곳에서 위에서 만든 사서함으로 보낼 수 있습니다.

사서함에 대해 그레이리스팅을 활성화한 경우 서버 외부에서 보낸 전자 메일이 사서함에 즉시 도착하지 않는다는 점에 유의하십시오. 그러나 메일이 서버에 도달할 수 있도록 시도된 배달의 메일 로그 항목이 즉시 표시되어야 합니다. /var/log/mail.log 파일의 그레이리스팅 항목은 다음과 같습니다.

Aug 29 19:08:42 posti postfix/smtpd[16911]: NOQUEUE: reject: 
  RCPT from mta-out1.inet.fi[62.71.2.194]: 450 4.2.0 
  <>: Recipient address rejected: Greylisted, 
  see http://postgrey.schweikert.ch/help/taleman.ovh.html; 
  from=<****@*****.***> to=<> proto=ESMTP 
  helo=<******.****.***>

예를 들어 다음과 같이 터미널 창에서 메일 로그를 모니터링할 수 있습니다.

tail -f /var/log/mail.log

또는 그레이리스팅 항목에만 관심이 있는 경우 다음 명령을 사용합니다.

tail -f /var/log/mail.log | grep Greylisted

또는

grep Greylisted /var/log/mail.log

그레이리스팅은 같은 보낸 사람이 같은 받는 사람에게 보낸 첫 번째 전자 메일만 지연시킵니다. 첫 번째 이메일이 수신되면 추가 지연 없이 다음 이메일이 도착합니다.

제 경우에는 모든 것이 첫 번째 시도에서 작동했습니다. 이것은 ISPConfig Perfect Server Guide가 실제로 작동한다는 것을 보여줍니다.

이메일 클라이언트 연결

Thunderbird를 예제 메일 클라이언트로 사용. 다른 메일 클라이언트 응용 프로그램도 비슷한 방식으로 작동합니다.

ISPConfig는 계정 이름을 이메일 주소로 만듭니다.

그림 4: Thunderbird 계정 설정

그림 5: Thunderbird 서버 설정

연결 보안 STARTTLS는 연결이 보호되지 않은 상태로 시작된 다음 양 당사자가 암호화를 지원하는 경우 암호화된 상태로 전환됨을 의미합니다. SSL/TSL은 세션이 처음부터 암호화됨을 의미합니다. SSL/TSL이 약간 더 안전할 수 있으므로 클라이언트가 SSL/TSL과 함께 작동하는지 확인하십시오.

그림 6: Thunderbird 발신 서버 설정

SPF 사용

Wikipedia에서 보낸 사람 정책 프레임워크에 대해 읽어보십시오. 원래 SPF는 Sender Permitted From의 약자였으며 의미를 기억하는 것이 좋습니다. SPF에 대해 읽은 후 레코드를 직접 만들 수 있습니다. 이름 서비스 제공업체가 SPF 레코드를 생성할 수 있는지 또는 인터넷 검색 엔진을 사용하여

SPF wizard

SPF 이름 서비스 레코드를 생성하는 웹사이트를 찾으십시오. 그런 다음 레코드를 잘라내어 이름 서비스에 붙여넣습니다. TXT 레코드를 추가하거나 일부 DNS 시스템에서 SPF 레코드를 추가할 수 있습니다.

다음과 같이 이름 서비스에서 SPF가 어떻게 보이는지 확인하십시오.

$ dig taleman.ovh -t TXT | grep spf
taleman.ovh. 3000 IN TXT "v=spf1 mx ~all"

또는 다음과 같이:

$ dig +short taleman.ovh TXT
"v=spf1 mx ~all"
"1|www.taleman.ovh"

DKIM 사용

Wikipedia에서 DomainKeys Identified Mail에 대해 읽어보십시오. ISPConfig는 전자 메일 도메인을 생성할 때 DKIM 키를 생성했습니다(DKIM 상자를 기억한 경우). 이름 서비스의 공개 키인 DNS 레코드를 잘라서 TXT 레코드로 붙여넣습니다. 서비스 제공업체 이름을 지정하면 DKIM 레코드를 더 쉽게 생성할 수 있는 도구를 제공할 수 있습니다. DKIM 개인 키를 비밀로 유지하십시오.

다음과 같이 이름 서비스에서 DKIM이 어떻게 보이는지 확인하십시오.

$ host -t txt default._domainkey.taleman.ovh.
default._domainkey.taleman.ovh descriptive text "v=DKIM1;h=sha256;s=*;p=MIIB(I cut long string shorter)0rp" "sTGLXyK(cut shorter)B;t=s;"

DKIM 키를 생성한 것이 ISPConfig인 경우 개인 키는 amavis 설정의 올바른 위치에 복사됩니다.

SPF 및 DKIM이 작동하는지 확인하는 데 유용한 웹 사이트 mail-tester.com이 있습니다. 해당 웹 사이트로 이동하면 전자 메일 주소가 제공되고 서버에서 전자 메일을 보냅니다. 그런 다음 잠시 기다렸다가 웹 사이트를 다시 확인하십시오.

인증서 생성

ISPConfig는 자체 서명된 인증서를 생성할 수 있으며 생성하지 않도록 선택하지 않는 한 ISPConfig 설치 중에 생성됩니다. 자체 서명된 인증서를 만들었더라도 브라우저, 전자 메일 프로그램 및 기타 전자 메일 서버가 신뢰하는 적절한 인증서를 만드는 것이 좋습니다.

훌륭한 튜토리얼이 있습니다: 무료 Lets Encrypt SSL 인증서로 ISPConfig 보안

그 튜토리얼을 따라 웹사이트에 대한 LE 인증서를 생성할 때까지 생성된 웹사이트가 데비안 기본 웹페이지를 표시하는 것을 확인했습니다. 또한 ISPConfig 패널은 불안정했습니다. 자체 서명된 인증서와 이제 이 새 인증서가 있거나 인증서가 전혀 없기 때문이라고 생각합니다. 브라우저에서 페이지를 새로 고치면 이 문제가 해결되었습니다.

인증서가 설정되면 브라우저에 서버의 https 주소를 입력합니다. 다른 마우스 버튼으로 브라우저 주소 표시줄 왼쪽에 있는 아이콘을 클릭하면 인증서에 대한 정보가 표시됩니다.

ISPConfig 패널 시스템 탭, 인터페이스 기본 구성 및 메일 탭으로 이동합니다. 거기 세트

Use SSL/TLS encrypted connection for SMTP

SSL에.

웹 사이트의 도구를 사용하여 인증서를 추가로 테스트할 수 있습니다.

ssl testing

검색어로. 이러한 도구는 일반적으로 웹 사이트를 테스트하고 전자 메일 서버에 있는 인증서를 테스트할 때 다음으로 검색합니다.

ssl testing mail server

ISPConfig Roundcube 플러그인

이 플러그인은 웹메일 사용자에게 유용합니다. 예를 들어 Roundcube에서 이메일 비밀번호를 변경할 수 있습니다. 일부 다른 설정도 Roundcube에서 수정할 수 있습니다. ISPConfig 패널에서 모두 수정할 수 있지만 일부 이메일 사용자는 패널 사용을 원하지 않을 수 있습니다.

Debian 9에서 Tutorial ISPConfig 3 Roundcube Plugin을 사용하여 ISPConfig Rouncube 플러그인을 설치했습니다. Tutorial은 Debian 10 Buster에서 정확히 작동했습니다. 단, 이제 ispconfig3_account/config/config.inc.php에는 한 줄이 더 있습니다.

$config['soap_validate_cert'] = true;

인증서가 이 자습서의 이전 장에서 올바르게 설정되고 테스트되었으므로 값은 true로 유지될 수 있습니다. 그러나 호스트에 유효한 인증서가 없으면 이 설정을 false로 변경하십시오.

한 가지 문제가 있었습니다. 계정 섹션의 일부 항목에 오류 메시지가 나타남

An error occurred.
Soap Error: The login is not allowed from <host ip-number>

나는 Remote Access를 선택하고 튜토리얼 이후에 생성한 rcmail-remote 사용자에 대해 posti.taleman.ovh를 작성하여 이 문제를 해결했습니다. \원격 액세스\를 선택하지 않아도 된다는 튜토리얼이 잘못된 것 같습니다. 이제는 단일 서버 설정과 별도의 전자 메일 서버가 있는 ISPConfig 다중 서버 설정 모두에 필요한 것 같습니다.

추가 사용

이제 다른 전자 메일 도메인을 만들 수 있습니다. 해당 도메인에 대한 MX 레코드를 만들고 전자 메일 서버를 가리키도록 해야 합니다. 생성한 모든 이메일 도메인에 동일한 이메일 서버를 사용할 수 있습니다. 각 전자 메일 도메인에 대해 별도의 전자 메일 서버를 만드는 것은 상당히 낭비이기 때문에 일반적으로 수행되는 방식입니다.

문제 해결

이 자습서를 따라 새로 설정한 전자 메일 서버가 작동합니다. 작동하지 않는 경우 이 자습서를 따랐고 일부 단계를 건너뛰지 않았는지 확인하십시오.

포럼을 읽으면 이메일 서버가 작동하지 않는 일반적인 방법이 호스트 이름 및 호스트 이름 -f에 대한 잘못된 설정 및/또는 /etc/postfix/main.cf 파일의 실수임을 알 수 있습니다.

DNS 이름 서비스에 문제가 있다고 생각되면 ISPConfig -tutorial을 사용하여 DNS 문제를 확인하십시오. intodns.com, dnschecker.com, mxtoolbox.com과 같이 DNS를 확인하는 웹사이트 도구가 있습니다.

이메일이 수신되지 않거나 전송되지 않으면 해당 기능을 수행하는 것이 postfix이며 /var/log/mail.log에 기록됩니다. 그래서

tail -f /var/log/mail.log | grep postfix to see what happens when mail is being received or sent.

전자 메일 클라이언트(예: Thunderbird)에 연결하는 데 문제가 있는 경우 다음을 사용하여 어떤 일이 발생하는지 확인하십시오.

tail -f /var/log/mail.log | grep dovecot

특정 이메일이 문제가 있는 경우 해당 이메일의 ID를 사용하여 메일 로그 항목을 찾을 수 있습니다. 예를 들어:

Sep 23 14:19:34 posti postfix/smtps/smtpd[10260]: A9F2880C76:
client=dsl-tkubng21-58c1ce-191.dhcp.inet.fi[99.99.99.99],
sasl_method=PLAIN, 

해당 이메일의 ID는 A9F2880C76입니다. 다음을 사용하여 해당 이메일에 대한 로그 항목을 찾을 수 있습니다.

# grep A9F2880C76 /var/log/mail.log

mailq 명령은 postfix 지연 대기열에 있는 전자 메일을 보여줍니다. 즉, 아직 배달되지 않은 이메일입니다. 최근 항목이 있는 것이 정상이며 이메일이 항상 즉시 전달되지는 않습니다. 다음과 같이 대기열 ID를 사용하여 해당 이메일의 내용을 볼 수 있습니다.

# postcat /var/spool/postfix/deferred/A/A9F2880C76

Howtoforge에는 ISPConfig 포럼이 있으므로 조언을 구하십시오.