WordPress 이메일 보안에 대해 걱정해야 하는 이유는 무엇입니까?

게시 됨: 2023-05-31

이메일은 어디에나 있습니다. 그들은 인터넷을 통해 사람들 사이의 가장 일반적인 통신 방법 중 하나가 되었습니다. WordPress 관리자 및 웹 사이트 소유자는 개인 및 전문 커뮤니케이션, 마케팅, 채용 등과 같은 다양한 목적으로 이메일을 사용합니다.

이메일에는 사용자를 인증하거나 비밀번호 재설정 등과 같은 특정 작업을 수행할 수 있도록 하는 데 사용하는 민감한 정보가 포함될 수도 있습니다. 이 자습서에서는 웹사이트 소유자가 WordPress의 이메일 보안에 대해 알아야 하는 모든 내용에 대해 설명합니다.

WordPress 웹사이트 이메일 보안의 필요성에 대해 논의를 시작하겠습니다. 이메일을 안전하게 유지하면 다음과 같은 많은 일에 도움이 됩니다.

  • 민감한 정보 보호 — 앞서 언급했듯이 민감한 정보가 포함될 수 있는 이메일을 보내는 경우가 많습니다. 여기에는 사용자의 로그인 자격 증명과 건강 또는 재정과 관련된 개인 정보가 포함될 수 있습니다. 어떤 경우에도 악의적인 의도를 가진 사람이 이 정보를 가로채지 못하도록 해야 합니다.
  • 이메일 전달 — 스팸은 인터넷에서 큰 문제입니다. 우리는 귀하가 스팸 이메일의 공평한 몫을 받았음을 확신합니다. 최상의 시나리오에서는 짜증이 나고 다른 경우에는 더 심각한 결과를 초래할 수 있습니다. 이메일 서버가 잠재적인 스팸을 처리하는 한 가지 방법은 전혀 표준에 맞지 않는 이메일을 보내지 않는 것입니다. 마찬가지로, 다른 이메일 클라이언트에서 스팸으로 간주될 수 있는 이메일은 스팸으로 표시되고 기본 받은 편지함에서 떨어진 별도의 폴더에 보관됩니다.
  • 브랜드 평판 유지 — WordPress 이메일 보안을 심각하게 생각하지 않으면 브랜드 평판이 위험에 처할 수 있습니다. 생각해 보십시오. 이메일이 계속해서 스팸 필터에 걸리는 브랜드나 보안이 취약하여 개인 정보가 유출되는 브랜드에 대해 어떻게 생각하십니까?
  • 이메일 기반 공격 방지 — 악의적인 의도를 가진 사람들은 이메일 피싱을 사용하여 웹 사이트에 대한 액세스 권한을 얻거나 사용자 데이터에 액세스할 수 있습니다. 이로 인해 모든 종류의 보안 문제가 발생할 수 있습니다. 두 경우 모두 WordPress 이메일을 보호하기 위해 적절한 조치를 취해야 합니다.

WordPress에서 보안 이메일 보내기

WordPress에는 이메일을 보내는 데 사용하는 내장 wp_mail() 함수가 있습니다. 이 기능은 인기 있는 무료 및 오픈 소스 PHPMailer 라이브러리를 사용하여 모든 이메일을 보냅니다.

라이브러리 사용의 한 가지 이점은 로컬 메일 서버 없이도 모든 플랫폼에서 이메일을 보낼 수 있는 통합 SMTP 클라이언트가 있다는 것입니다.

SMTP라는 용어는 단순 메일 전송 프로토콜을 나타냅니다. SMTP 클라이언트는 한 서버에서 다른 서버로 이메일을 보내는 데 사용할 수 있는 프로그램입니다. 클라이언트는 이메일 서버와의 연결 설정, 보낸 사람 인증 및 이메일 전송과 같은 많은 중요한 작업을 수행합니다.

wp_mail() 함수를 사용한다고 해서 이메일 수신이 성공했다는 자동 보장은 아닙니다. 이메일의 배달 상태에 관계없이 요청이 성공하면 true를 반환합니다. 따라서 보낸 이메일이 제대로 전달되었는지 확인해야 합니다.

기존 소스 코드에 몇 줄의 PHP를 추가하여 wp-config.php 파일 내에 SMTP 관련 설정을 추가할 수 있습니다. 그러나 훨씬 더 쉬운 옵션은 플러그인을 사용하는 것입니다.
이메일을 효과적이고 안전하게 보낼 수 있도록 모든 설정을 구성하는 데 도움이 되는 많은 무료 WordPress SMTP 플러그인 중 하나를 사용할 수 있습니다. 우리는 이미 과거에 WordPress 이메일 배달 가능성에 대해 자세히 다루었습니다.

SMTP 플러그인 설정

웹 사이트에서 사용할 수 있는 여러 SMTP 플러그인이 있다는 점을 언급할 가치가 있습니다. 어느 것이 당신에게 가장 잘 맞는지 그들에게 시도해 볼 수 있습니다. 가장 인기 있는 것 중 하나는 WP Mail SMTP 플러그인입니다.

인기 있는 WordPress용 SMTP 플러그인

사용하는 모든 플러그인은 웹 사이트에 대한 SMTP 메일러를 선택하도록 요청합니다. SendLayer, Postmark, SendGrid, Zoho Mail 등과 같은 몇 가지 옵션을 사용할 수 있습니다. 설정 마법사는 API 키 등과 같은 필요한 모든 정보를 제공하는 초기 구성을 도와줍니다. 플러그인은 WordPress 대시보드에서 사용할 수 있습니다.

이러한 플러그인을 설정하는 동안 염두에 두어야 할 두 가지 중요한 사항이 있습니다.

  1. SMTP 클라이언트를 사용하여 SSL을 통해 이메일을 보내고 있는지 확인하십시오. 이렇게 하면 이메일이 전송되는 동안 가로채는 것을 방지하는 데 도움이 됩니다. SendLayer 등과 같은 많은 서비스가 SSL/TLS 암호화를 자동으로 처리합니다. 그러나 다른 SMTP를 SMTP 메일러로 선택한 경우 SMTP 호스트, 포트 번호, 암호화 등에 대한 정보를 수동으로 제공할 수도 있습니다.
  2. 이메일을 통해 민감한 정보를 보내는 경우 이메일 로깅을 비활성화할 수도 있습니다. 이렇게 하면 문제가 발생할 경우 원치 않는 데이터 유출을 방지할 수 있습니다. 테스트하는 동안 이 옵션을 켜는 것이 좋지만 다른 경우에는 이상적으로 꺼야 합니다.

일반적인 이메일 보안 프레임워크

이메일을 보내기 위해 SSL 인증서를 설치하고 사용하면 이메일 클라이언트와 이메일 서버 간에 전송되는 동안 이메일 콘텐츠가 안전합니다. 이는 전송 중 이메일에 대한 무단 액세스 또는 가로채기를 방지함으로써 가능합니다.

WordPress 이메일 보안을 개선하는 다음 단계는 의도된 수신자만 자신에게 전송된 이메일의 내용을 읽을 수 있도록 암호화를 사용하는 것입니다.

WordPress 사이트에서 이메일을 보호하는 데 사용할 수 있는 다양한 이메일 보안 프레임워크가 있습니다. 이메일 보안 프레임워크라는 용어는 모든 이메일 통신이 스팸, 피싱, 무단 액세스와 같은 보안 위험으로부터 안전하게 유지되도록 하기 위해 마련된 일련의 지침 및 표준을 의미합니다.

다른 SMTP 서버는 이메일 보안 목표를 달성하기 위해 여러 이메일 보안 프레임워크의 조합을 사용할 수 있습니다. 그들 중 일부에 대해 알아 봅시다.

발신자 정책 프레임워크

SPF라고도 하는 발신자 정책 프레임워크는 수신자의 이메일 서버가 이메일이 합법적인 출처에서 온 것인지 확인할 수 있는 이메일 인증 프레임워크입니다.

즉, SPF는 발신자 도메인의 DNS(도메인 이름 시스템) 레코드를 확인하여 발신자의 IP 주소가 해당 도메인에 대해 승인된 IP 주소와 일치하는지 확인하는 방식으로 작동합니다.

이메일이 전송되면 수신자 측의 메일 서버는 SPF 레코드를 확인하여 이메일이 실제로 발신자 측의 승인된 메일 서버에서 전송되었는지 확인합니다. SPF 레코드에는 특정 도메인을 대신하여 이메일을 보낼 수 있는 모든 IP 주소 및 도메인에 대한 정보가 포함됩니다. 일치하지 않으면 이메일이 의심스러운 것으로 표시됩니다.

SPF는 누군가가 자신이 아닌 것처럼 가장하는 스팸 및 피싱 공격을 방지하는 데 도움이 됩니다.

DomainKeys 식별 메일

DKIM(DomainKeys Identified Mail) 프레임워크는 디지털 서명을 사용하여 이메일 발신자가 합법적인 사람인지 확인합니다. 또한 이메일을 전송하는 동안 이메일 내용이 변경되지 않도록 합니다.

디지털 서명은 합법적인 도메인 이름과 연결된 개인 키를 사용하여 생성된 암호화 값에 불과합니다. 이메일 메시지에는 헤더에 DKIM 서명 필드로 암호화 값이 포함되어 있습니다.

수신자 측의 메일 서버는 DNS 레코드에서 발신자 도메인의 공개 키에 액세스할 수 있습니다. 전자 메일 시스템은 공개 키를 사용하여 서명을 해독하여 보낸 사람의 진위를 확인합니다. 시스템은 보낸 사람의 진위를 확인한 후 받는 사람의 사서함으로 전자 메일을 배달합니다.

여기서 비밀은 개인 키가 암호화 서명을 생성하는 데 사용되며 이 서명은 해당 공개 키로만 해독할 수 있다는 것입니다. 즉, 생성된 해시 값의 값이 개인 및 공개 키와 일치하면 이메일의 신뢰성이 보장됩니다.

도메인 기반 메시지 인증, 보고 및 적합성

앞의 두 프레임워크를 사용하면 이메일 발신자가 주장하는 사람인지 확인할 수 있습니다. 이를 통해 스팸 및 피싱 공격을 방지할 수 있습니다.

이메일이 SPF 또는 DKIM 검사에 실패하면 어떻게 됩니까?

합법적인 이메일이 어떻게 SPF 또는 DKIM 검사에 실패하는지 궁금할 수 있습니다. 이는 잘못 구성된 SPF 또는 DKIM 레코드, 평소보다 긴 전송 시간으로 인한 유효하지 않은 타임스탬프, 전달 서버가 원래 보낸 사람의 도메인을 대신하여 이메일을 보낼 권한이 없는 이메일 전달과 같은 다양한 상황에서 발생할 수 있습니다.

이 경우 DMARC(Domain-based Message Authentication, Reporting, and Conformance) 프레임워크가 도움이 됩니다.

도메인 소유자는 DNS 레코드에 DMARC 정책을 추가하여 SPF 또는 DKIM 인증 검사에 실패한 이메일 메시지에 대해 수행할 작업을 지정할 수 있습니다.

이메일이 이러한 확인에 실패하면 수신자의 이메일 서버는 발신자 도메인의 DMARC 정책을 찾습니다. DMARC 정책은 전자 메일을 거부, 검역 또는 수신자의 사서함으로 배달해야 하는지 여부를 지정합니다.

보낸 사람의 합법성을 확인하는 것 외에도 DMARC에는 도메인에서 보낸 이메일에 대한 모든 정보를 도메인 소유자에게 보고하는 메커니즘이 포함되어 있습니다. 이 정보에 대한 액세스는 도메인 소유자가 잠재적인 이메일 스푸핑 또는 피싱 공격을 식별하는 데 도움이 될 수 있습니다. 결과적으로 이메일 보안이 강화됩니다.

꽤 좋은 프라이버시

PGP(Pretty Good Privacy)는 전자 메일에 종단 간 암호화를 제공하여 의도한 수신자만 전자 메일을 읽을 수 있도록 하는 또 다른 흥미로운 전자 메일 보안 프레임워크입니다.

PGP 보안 프로토콜은 암호화 시스템을 위해 한 쌍의 공개 키와 개인 키에 의존합니다. PGP 프로토콜의 모든 사용자는 자신의 공개 키와 개인 키를 갖게 됩니다. PGP는 이메일 메시지를 암호화하기 위해 공개 키를 사용하고 이를 해독하기 위해 개인 키를 사용합니다. 사용자와 통신하려는 모든 사람은 공개 키에 액세스할 수 있습니다. 개인 키는 사용자에게 있습니다.

누군가에게 이메일을 보내고 싶다고 가정해 보겠습니다. 발신자는 수신자가 제공한 공개 키를 사용하여 메시지를 암호화합니다. 이렇게 하면 받는 사람만 개인 키를 가지므로 메시지를 해독할 수 있습니다.

PGP는 또한 디지털 서명을 사용하여 이메일의 진위와 무결성을 확인하고 전송 중에 변조가 없었는지 확인합니다.

개인 키는 보낸 사람의 진위를 확인하는 디지털 서명을 생성하는 데 유용합니다. 개인 키는 이메일 메시지의 해시를 만드는 데 사용됩니다. PGP는 공개 키 공유 원칙에 따라 작동하므로 이메일 수신자는 발신자의 공개 키에 액세스할 수 있습니다. 이 공개 키는 메시지가 변경되지 않았는지 확인하는 해시를 해독하는 데 유용합니다.

PGP의 또 다른 중요한 측면은 서로 다른 사용자가 키 소유자를 확인했음을 나타내기 위해 서로의 공개 키에 서명할 수 있는 "신뢰 웹" 시스템입니다. 이로 인해 악의적인 의도를 가진 사람이 사용자를 가장하기가 더욱 어려워집니다.

WordPress 사이트에서 이메일 보안 구현

이제 웹 사이트에서 다양한 이메일 보안 프레임워크를 구현하는 방법을 배웁니다.

발신자 정책 프레임워크

이전 섹션에서 언급했듯이 SPF는 보낸 사람 도메인의 DNS 레코드를 확인하여 작동합니다. 보낸 사람의 IP가 해당 도메인의 승인된 IP 주소와 일치하는지 확인합니다.

wpwhitesecurity.com을 예로 사용하여 이를 테스트할 수 있습니다. 다음과 같이 nslookup 명령을 사용하기만 하면 됩니다.
nslookup -type=txt 도메인 이름

WP 화이트 보안 SPF 레코드

결과는 우리가 이메일을 보내는 데 사용하는 시스템을 알려줍니다.

v=spf1 a mx include:_spf.google.com include:relay.kinstamailservice.com include:servers.mcsv.net include:helpscoutemail.com include:sendgrid.net ~all

귀하가 당사로부터 받은 이메일이 이러한 시스템에서 온 것이 아니라면 합법적이지 않을 가능성이 높습니다.

SPF를 구현하기 위해 해야 할 일은 도메인의 DNS 영역 파일에 TXT 레코드를 추가하는 것뿐입니다. TXT 레코드에는 도메인 이름과 연결하려는 임의의 텍스트가 포함될 수 있습니다. 이 경우 SPF 정보가 포함됩니다.

첫 번째 단계는 DNS 레코드를 관리하는 데 사용하는 서비스에 로그인하는 것입니다. 이 경우 Cloudflare를 사용합니다. 따라서 먼저 Cloudflare 계정에 로그인하고 DNS 레코드를 편집할 도메인을 선택합니다.

Cloudflare를 사용하는 경우 왼쪽 사이드바 또는 빠른 작업 아래에 DNS 설정을 변경하는 옵션이 표시되어야 합니다. DNS 레코드를 추가하려면 클릭하십시오. 다음 페이지에 레코드 추가 버튼이 있습니다. 그것을 클릭하면 다음 화면이 나타납니다.

Cloudflare에 DNS 레코드 추가

유형 드롭다운에서 TXT를 선택합니다. 이름을 도메인 루트로 설정합니다. TTL을 자동으로 유지하고 Content 값을 v=spf1 mx a ip4:XXX.XXX.XXX.XXX -all로 설정합니다. 아래 스크린샷을 참고하세요.

DNS 레코드는 여러 부분으로 구성됩니다. 그들이 의미하는 바를 한 번에 하나씩 살펴보겠습니다.

  1. v=spf1 — 이 부분은 사용 중인 SPF 프로토콜의 버전을 지정합니다. 이 경우 SPF 버전은 1입니다.
  2. mx — 이 부분은 도메인을 대신하여 이메일을 보내도록 도메인의 MX 레코드에 권한을 부여합니다.
  3. a — 이 부분은 도메인을 대신하여 이메일을 보낼 수 있도록 도메인의 A 레코드 또는 해당 ipv4 주소에 권한을 부여합니다.
  4. ip4:XXX.XXX.XXX.XXX — 이 부분을 추가하면 특정 IP 주소를 이메일 전송 화이트리스트에 추가할 수 있습니다.
  5. -all — 이 부분은 승인된 도메인 또는 IP 주소와 일치하지 않는 이메일에 대해 수행해야 하는 작업을 지정합니다.

XXX.XXX.XXX.XXX를 화이트리스트에 추가하려는 IP 주소로 바꾸십시오. 도메인에서 이메일 주소만 보낼 계획이라면 이 부분을 추가할 필요가 없습니다. 그러나 스푸핑을 방지하려면 여기에 메일 서버의 IP 주소를 포함해야 합니다.

DomainKey 식별 메일

DKIM 프레임워크는 또한 DNS 레코드에 저장된 값을 사용하여 이메일 발신자의 신뢰성을 확인합니다.

주요 차이점은 SPF는 DNS 레코드의 IP 주소를 확인하여 인증된 일부가 이메일을 보냈는지 확인하는 반면 DKIM은 공개 및 개인 키 사용에 의존한다는 것입니다.

Cloudflare를 사용하여 도메인을 관리하는 경우 이전 섹션에서 했던 것처럼 DNS 레코드를 추가할 수 있습니다. 그러나 호스팅 제공업체의 대시보드에서 DNS 레코드를 업데이트할 수도 있습니다.

다음은 호스팅 계정의 cPanel에 있는 현재 DKIM TXT 레코드의 스크린샷입니다. cPanel 계정에 로그인한 다음 이메일 배달 가능성을 확인한 후 이러한 옵션을 찾을 수 있습니다.

cPanel DKIM 레코드

DKIM 레코드의 이름은 다른 이메일 서비스 공급자가 쉽게 찾을 수 있도록 default._domainkey로 설정됩니다.

DKIM 레코드의 내용은 아래 설명과 같이 여러 부분으로 구성됩니다.

  1. v=DKIM1 — 이 부분은 사용 중인 DKIM 프로토콜의 버전을 지정합니다.
  2. k=rsa — 이 부분은 우리가 사용하는 공개 키가 RSA 키임을 지정합니다.
  3. p=KEY_VALUE — 이 부분은 Base64로 인코딩된 공개 키입니다.

도메인 기반 메시지 인증, 보고 및 적합성

이제 DNS TXT 레코드에 DMARC 정책을 추가하는 방법을 알아봅니다. DNS 레코드를 추가하는 프로세스는 여기서 동일하게 유지됩니다. 변경되는 유일한 것은 레코드의 이름과 내용입니다.

DNS TXT 레코드의 이름은 _dmarc.yourwebsite.com이며 yourwebsite.com은 실제 웹사이트입니다. 다시 말하지만 이는 DMARC 정책을 쉽게 식별하기 위한 표준 규칙일 뿐입니다.

총 11개의 태그-값 쌍을 DMARC 정책 DNS TXT 레코드의 콘텐츠로 추가할 수 있습니다. DMARC DNS TXT 레코드를 철저히 설명하는 이 페이지에서 이에 대해 읽을 수 있습니다.

Cloudflare에 새로 도입된 마법사를 사용하여 DMARC 정책을 추가해 보겠습니다.

Cloudflare에 DMARC 정책 추가

마법사 링크를 클릭하면 다음 화면이 표시됩니다. 추가 버튼을 클릭하기만 하면 됩니다.

DMARC 레코드 구성 화면

이제 DMARC 레코드 내부의 콘텐츠가 무엇을 의미하는지 알아보겠습니다.

  1. v=DMARC1 — 평소와 같이 사용 중인 DMARC 프로토콜의 버전을 지정합니다.
  2. p=none — 이 부분은 실패한 확인에 대해 정책 조치가 수행되지 않도록 지정합니다. 이 값을 격리 또는 거부로 설정할 수도 있습니다. 값을 검역소로 설정하면 전자 메일이 잠재적으로 의심스러운 것으로 표시되지만 여전히 수신자 사서함의 스팸 폴더로 전달됩니다.
  3. rua=mailto:[email protected] — 이 부분은 보고서를 받는 이메일 주소를 지정합니다. 보고서에는 DMRC 검사를 통과하거나 실패한 이메일 메시지에 대한 정보가 포함됩니다.

더 나은 보안을 위한 이메일 보안

오래된 속담처럼 체인은 가장 약한 링크만큼만 강합니다. 이것은 WordPress 관리자와 웹사이트 소유자가 WordPress 보안을 넘어 지원/주변 인프라를 해결해야 하는 보안과 관련하여 매우 사실입니다.

이메일 보안은 간과되는 경향이 있습니다. 그러나 방금 기사에서 본 것처럼 이메일 보안은 비교적 쉽고 접근이 용이합니다. DNS 레코드 구성에서 이메일 암호화에 이르기까지 이를 통해 고객과 사용자의 접근성을 높일 수 있을 뿐만 아니라 보안 위험을 크게 최소화할 수 있습니다.

WordPress 보안을 개선하기 위한 추가 팁

이메일을 안전하게 만드는 것은 전체 웹사이트 보안의 한 부분일 뿐입니다. 다음은 웹사이트의 전반적인 보안을 개선하기 위한 몇 가지 일반적인 팁입니다.

  • 정기적으로 업데이트 — 모든 WordPress 테마 또는 플러그인을 최신 상태로 유지하는 것이 중요합니다. 업데이트는 일반적으로 새로운 기능을 추가하고 알려진 취약점을 수정합니다.
  • 강력한 암호 사용 — 웹 호스트, 데이터베이스, FTP 계정, WordPress 관리자 계정 등을 포함한 모든 웹사이트 관련 계정에 대해 강력하고 고유한 암호를 사용해야 합니다. 이렇게 하면 무차별 대입 공격이 암호를 해독하는 것을 방지할 수 있습니다. MelaPress 로그인 보안 플러그인을 사용하여 강력한 암호, 너무 많은 로그인 시도 실패 차단 등과 같은 모든 최상의 로그인 보안 관행을 따를 수 있습니다.
  • 보안 플러그인 설치 — 보안 플러그인 설치도 고려해야 합니다. 가장 인기 있는 옵션 중 일부는 Wordfence, iThemes 보안, 올인원 보안 등입니다. WP 활동 로그와 같은 플러그인을 설치하여 WordPress 웹사이트에서 발생하는 모든 변경 사항을 기록할 수도 있습니다.
  • 2단계 인증 사용 — 2단계 인증을 사용하여 추가 보안 계층을 추가할 수 있습니다. WP 2FA와 같은 무료 플러그인을 사용하면 쉽게 할 수 있습니다.
  • 정기 백업 — 웹 사이트도 정기적으로 백업해야 합니다. 이렇게 하면 보안 침해 또는 기타 문제가 발생한 경우 웹사이트를 온라인에 빠르게 올릴 수 있습니다.
  • 신뢰할 수 있는 웹 호스트 사용 — 평판이 좋고 신뢰할 수 있는 웹 호스트를 사용하여 웹 사이트를 호스팅하고 있는지 확인하십시오. 웹 호스트는 웹 서버 보안, 업데이트, 백엔드 백업 등과 같은 여러 가지 일을 담당합니다.
  • 방화벽 사용 — 방화벽을 설치하면 일반적인 보안 위협과 DDOS 공격으로부터 보호하면서 무단 액세스를 방지할 수 있습니다. 웹 호스트에 의해 서버 수준에 방화벽을 설치하거나 WordPress 플러그인으로 웹사이트 수준에 방화벽을 설치할 수 있습니다. 좋은 소식은 Wordfence 등과 같은 플러그인이 이미 방화벽을 제공하고 있으며 맬웨어로부터 사용자를 보호한다는 것입니다.
  • 로그인 시도 제한 — 취할 수 있는 또 다른 보안 조치는 실패한 로그인 시도 횟수를 제한하여 봇의 무차별 대입 공격을 방지하는 것입니다.