메일 서버 진단은 올바른 이메일 작업을 보장하는 데 중요한 역할을 합니다. 이를 통해 이메일 메시지 전송, 수신 및 처리와 관련된 문제를 식별하고 해결할 수 있습니다. 진단의 핵심 요소 중 하나는 스팸, 바이러스 및 기타 보안 위협으로부터 보호해주는 메일 서버의 필터 사용입니다.
이 글에서는 메일 서버 작동 상태를 원격으로 확인할 수 있는 외부 서비스와 서버에서 직접 진단을 실행할 수 있는 내부 도구를 모두 살펴봅니다. 모든 작업은 예시로 Postfix와 Dovecot이 구성된 Ubuntu 20.04.6 운영 체제의 개인 서버 에서 수행되지만 , 제시된 방법은 거의 모든 운영 체제 및 메일 클라이언트에 적용할 수 있습니다.
메일 서버 검사를 위한 온라인 서비스
첫 번째이자 가장 중요한 단계는 외부 온라인 서비스를 사용하여 검증하는 것입니다. 이렇게 하면 메일 서버에서 노출, SPF, DKIM 및 DMARC 설정을 확인하고 이메일이 전송된 IP 주소의 평판도 확인할 수 있습니다. 대부분의 경우 이러한 도구만 사용하면 원하는 결과를 얻을 수 있습니다.
주요 검증 서비스와 그 기능을 자세히 살펴보겠습니다.
MxToolBox를 사용하면 거의 모든 메일 서버의 매개변수를 확인할 수 있습니다. 이 서비스는 모든 도메인 레코드, 도메인 가용성, SSL 인증서, IP 주소 상태 등을 확인하는 도구를 제공합니다. 진단을 위해서는 서비스 페이지 로 이동하여 IP 주소 또는 도메인을 입력하고 필요한 도구를 선택한 후 검사를 실행하면 됩니다.
사용 가능한 모든 도구의 자세한 목록은 스크린샷에 표시됩니다.
위에서 보듯이, 이 웹사이트는 또한 블랙리스트에 IP/도메인이 있는지 확인합니다. 모든 주요 소스가 확인됩니다: Spamhaus, Barracuda, SURBL 및 기타 여러 소스. 주소가 데이터베이스에 있는 경우, 이 서비스는 블랙리스트에 오른 이유에 대한 정보를 제공합니다. 이렇게 하면 문제를 해결하기 위한 조치를 취할 수 있습니다.
MailTester는 메일 서버 점검 도구 중 두 번째로 인기 있는 서비스입니다. 이 서비스를 이용하면 지정된 주소로 테스트 이메일을 보내고, 전송된 메시지의 품질에 대한 자세한 보고서를 받아볼 수 있습니다. MxToolBox와 달리 MailTester는 메일 서버 진단보다는 이메일 서비스 개선에 더 중점을 두고 있습니다. 하지만 그렇다고 해서 발신자 서버에 대한 종합적인 분석 기능을 제공하지 않는다는 의미는 아닙니다. MailTester는 메일 전송을 테스트하고, 관련 정보를 분석하여 전반적인 메일 서비스 개선을 위한 권장 사항을 제시합니다.
검증을 완료하려면 해당 자료의 웹사이트 로 이동 하여 이메일을 받을 고유한 이메일 주소를 확인하세요. 제출 후 "검증 평가"를 선택하고 페이지가 새로고침될 때까지 기다리세요. 정상적인 결과는 다음과 같습니다.
문제가 있거나 권장 사항이 있는 경우 해당 서비스에서는 보고서의 해당 섹션에 이를 보고합니다.
위에서 언급한 서비스는 메일 서버를 측면에서 완전히 검사하기에 충분합니다. 이를 통해 이메일 배달의 잠재적 문제를 식별하고, 보안 설정을 확인하고, 가능한 오류를 해결하기 위한 권장 사항을 받을 수 있습니다. 다음으로, 서버 측에서 테스트를 수행합니다.
메일 서버 설정 확인
DNS 레코드 확인
메일 서버 측에서 가장 흔한 문제 중 하나는 DNS 레코드 구성 오류입니다. 앞서 언급한 타사 서비스를 통해 DNS 레코드의 정확성을 확인할 수 있습니다. 하지만 경우에 따라 이메일이 타사 사서함으로 전달되지 않을 수 있습니다. 이 경우 모든 항목을 수동으로 확인해야 합니다. DNS 편집기를 열고 검사 기능을 실행하세요. 예를 들어, 다음과 같은 데이터 소스를 사용하겠습니다. 도메인 profit.com, IP 주소 11.22.33.44 (등록기관에서 이 형식을 허용하지 않는 경우 @를 도메인 이름으로 사용할 수 있습니다). 모든 값은 본인의 상황에 맞게 변경해야 합니다.
A 레코드는 메일 서버의 IP 주소를 정의합니다. 간단히 말해, 도메인을 메일 서버 주소로 연결하는 역할을 합니다. 형식은 다음과 같습니다.
| 타입 | 주인 | 가치관 | TTL |
| A | @ | 11.22.33.44 | 1 분 |
MX 레코드 는 메일 서버에서 가장 중요한 요소이며, 메일 전달 경로를 결정하는 역할을 합니다. 다시 말해, 메일을 특정 사서함으로 보내는 역할을 합니다.
| 타입 | 주인 | 가치관 | TTL |
| MX | @ | 메일.프로핏.com | 1 분 |
SPF 레코드는 특정 도메인에서 이메일을 보낼 수 있는 서버를 가리킵니다 . 참고: SPF 레코드는 TXT 형식으로 게시됩니다. 가능한 값 중 하나만 표시됩니다.
| 타입 | 주인 | 가치관 | TTL |
| TXT | @ | v=spf1 ip4:11.22.33.44 -all | 1 분 |
DKIM 레코드는 이메일의 진위 여부를 확인하는 데 사용됩니다. 생성된 공개 키가 반드시 포함되어야 합니다. 마찬가지로, 값 옵션 중 하나만 선택해야 합니다.
| 타입 | 주인 | 가치관 | TTL |
| TXT | s1._도메인키.수익.com | v=DKIM1; k=rsa; p=QWIOJNDSLUB… | 1 분 |
DMARC 기록은 다음이자 마지막 보호 단계입니다. 이는 SPF 및 DKIM 검사를 통과하지 못한 이메일에 적용됩니다.
| 타입 | 주인 | 가치관 | TTL |
| TXT | _dmarc.profit.com | v=DMARC1; p=없음; pct=100; rua=mailto:[이메일 보호] | 1 분 |
또한 메일 서버에서 가장 중요한 레코드 중 하나는 PTR 레코드 입니다 . PTR 레코드는 A 레코드 와 반대로 IP 주소와 도메인을 연결하는 역할을 합니다. 이 레코드는 호스팅 제공업체의 기술 지원팀에 요청해야만 추가할 수 있으며, `nslookup IP` 명령어를 통해 확인할 수 있습니다 . 여기서 `IP`는 서버 주소이며, 응답 결과에 연결된 도메인이 표시되어야 합니다.
포트 체크
포트 폐쇄 문제는 메일 서버 전체 오작동으로 이어질 수도 있습니다. 우선, 제공업체 측에서 필요한 포트에 대한 제한 사항이 있는지 확인해야 합니다. 저희는 전용 서버 나 가상 서버 에서 고객이 열 수 있는 포트 수를 제한하지 않습니다 . 하지만 많은 호스팅 서비스 제공업체는 이와 다르게 운영됩니다.
설치된 netstat 유틸리티를 사용하여 열려 있는 포트를 확인할 수 있습니다. 다음 명령어를 입력하기만 하면 됩니다.
netstat – nat
SMTP/IMAP/POP3 서버가 설치되고 구성되면 해당 개방 포트가 표시됩니다.
스크린샷에서 볼 수 있듯이 주요 메일 클라이언트 포트, 즉 SMTP (25), IMAPS (143, 993), POP3S (110, 995)가 열려 있습니다. 각 포트의 메일 서비스도 개별적으로 확인할 수 있습니다. telnet 도구를 사용하면 이 작업을 쉽게 수행할 수 있습니다. POP3, 즉 110번 포트를 예로 들어 보겠습니다.
telnet mail.yourdomain.com 110
종료 명령어를 사용하여 도구를 종료 하고, 동일한 원칙에 따라 나머지 필요한 포트를 확인합니다. 이 도구는 추가 인터페이스 없이 이메일 전송을 테스트할 수 있는 기능도 제공합니다. 이는 사용자가 서버만 설정하고 로컬에서 메일을 전송하려는 경우에 유용할 수 있습니다.
포트 열기에 어려움이 있는 경우 설치된 방화벽을 확인해야 합니다. 대부분의 배포판에는 Iptables/Firewalld가 사전 설치되어 있습니다.
iptables를 실행하려면 다음 명령어를 사용합니다.
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 995 -j ACCEPT
iptables -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -A INPUT -p tcp --dport 993 -j ACCEPT
방화벽의 경우:
firewall-cmd --permanent --add-port=25/tcp
firewall-cmd --permanent --add-port=110/tcp
firewall-cmd --permanent --add-port=995/tcp
firewall-cmd --permanent --add-port=143/tcp
firewall-cmd --permanent --add-port=993/tcp
경우에 따라 SMTP 서비스가 정상적으로 작동하려면 465번 포트와 587번 포트를 열어야 합니다. 이러한 포트를 여는 방법은 동일합니다. 새 규칙을 추가한 후에는 방화벽 서비스를 다시 시작하십시오.
메일 서버의 SSL/TLS 인증서 확인
SSL/TLS 인증서는 메일 클라이언트와 서버 간의 안전한 데이터 전송을 보장하기 위해 메일 서버에서 사용되며, 발신자의 메일 서버 자체의 신뢰성을 확인하여 중간자 공격 가능성을 제거합니다. 그러나 메일을 보내거나 받는 데 문제가 발생할 수도 있습니다. 진단을 시작하려면 서버 측에 인증서가 설치되어 있는지 확인해야 합니다. 다음 명령으로 인증서가 있는지 확인해 보겠습니다.
openssl s_client -showcerts -server mail.profit.com -connect IP:port
이 명령에서 각 값을 자신의 값으로 바꿔야 합니다. " mail.profit.com "은 메일 서버 주소이고, IP:port는 서버 정보입니다. 예를 들어, IMAP 프로토콜 에 사용되는 포트 993 을 확인해 보겠습니다 . 다른 프로토콜도 같은 방식으로 확인합니다.
이에 응답하여 서버는 인증서 데이터를 보내야 합니다.
대부분의 메일 클라이언트는 인증서를 자동으로 설치합니다. 하지만 경우에 따라 특정 클라이언트에 인증서를 수동으로 발급하고 추가해야 할 수 있습니다. 플랫폼마다 설치 및 구성 방법이 다를 수 있으므로, 특정 솔루션에 대한 지침을 참조하시기 바랍니다. 인증서로는 Let's Encrypt를 , 설치 및 구성에는 Certbot을 보조 도구로 사용하는 것을 권장합니다.
로그 확인
마침내, 우리는 대부분의 경우에 도움이 되는 해결책을 찾았습니다. 바로 메일 서버 로그를 확인하는 것입니다. 대부분의 사용자는 자신의 문제에 대한 해결책이 없다고 생각하며 스스로를 속입니다. 그러나 최신 메일 클라이언트는 로그에 많은 양의 정보를 저장합니다.
- 메일을 보내고 받은 날짜와 시간.
- 보낸 사람과 받는 사람의 주소.
- 스팸 및 바이러스에 대한 결과를 필터링합니다.
- 메일을 보내고 받는 대기열의 상태입니다.
- 메일 서버와 관련된 관리자 및 사용자의 작업(예: 사서함 만들기, 삭제, 설정 변경).
- 이메일 처리 및 전달 과정에서 발생한 오류 및 문제.
대부분의 명령에 대한 로그가 저장되는 표준 디렉터리는 / var/log/ 입니다 . 사용하는 솔루션에 따라 특정 로그 파일의 이름은 다를 수 있습니다. 예를 들어, Postfix의 경우 mail.log 파일은 동일한 디렉터리에 있습니다. 메일 클라이언트 성능 저하의 초기 징후가 나타나면 즉시 로그를 확인하여 진단하는 것이 좋습니다. Linux 로그 읽는 방법에 대한 자세한 내용은 설명서를 참조하십시오.
메일 서버 확인 방법 이해
우리는 메일 서버에 대한 자세한 진단을 수행했습니다. 테스트하는 동안 자세한 조사를 위한 온라인 도구와 가능한 문제를 감지하기 위한 로컬 솔루션이 모두 영향을 받았습니다. 필요한 모든 테스트를 수행한 후, 메일 서버의 현재 상태에 대한 완전한 그림과 잠재적 어려움을 제거하기 위한 권장 사항을 얻었습니다.