DMARC 보고서 수집 및 시각화

8003 단어 devopssecurity

DMARC, DKIM 및 SPF


공급자(예를 들어 mailbox.org)와의 전자메일을 처리하거나 자신의 메일 서버를 위탁 관리하는 사용자 정의 영역을 사용하고 있다면, 어느 순간 이런 용어를 만났을 수도 있습니다.이 세 가지 기술은 모두 전자메일의 안전성과 신분 검증을 향상시키는 데 쓰인다.그것들의 모든 목적은 메일이 실제로 메일을 보낸 것처럼 보이는 사람이 보낸 것, 즉 메일의 발송자 제목에 언급된 사람이 보낸 것을 확보하는 것이다.나는 여기서 너무 많이 상술하고 싶지 않다. 단지 간단하게 설명하고 싶을 뿐이다.

자외선 차단 인자


SPF - 발송자의 전략 구조는 매우 이해하기 쉽다.예를 들어, 도메인의 소유자입니다.org, 도메인의 DNS 기록에서 IP로 표시된 메일 서버가 이 도메인에 메일을 보낼 수 있도록 하는 것을 정확하게 지정할 수 있습니다.예를 들어 TXT 기록, 예를 들어 "v=spf1 ip4:164.68.116.134 a -all"을 설정하면 세계의 모든 메일을 받는 서버에 SMTP를 보내는 서버가 매우 확실한 IP를 가지고 있다면 *.example.org으로부터의 메일만 받고 다른 모든 메일을 삭제한다고 알려줍니다.물론 수신 서버에 의존하여 실제 DNS 검색과 검증을 수행해야 합니다.
SPF 레코드의 구문은 여전히 위의 예제를 초과하고 include s를 허용합니다. 이것은 기본적으로 실제 SPF 레코드의 사양을 다른 도메인에 위임하는 방법입니다.이것은 외부 메일 공급자를 사용할 때 특히 유용합니다. 고객으로서 SMTP 호스트로 보내는 모든 IP를 이해할 수 없기 때문입니다.

DKIM


DKIM의 개념도 간단명료하다.메일을 보내는 서버 (예를 들어 귀하나 숙주의 서버) 는 모든 메일에 암호화 서명을 추가합니다.발송자의 공개 키를 지정하면 수신 서버가 이 서명을 쉽게 검증할 수 있습니다.예시된 송신 서버에 속하는 공개 키를 찾습니다.org, 이 키는 예시된 다른 TXT 기록으로 저장됩니다.조직의 DNS 영역입니다.이렇게

DMARC


DMARC는 이전 두 가지 방법에 비해 사실상 인증이 아닌 보고에 사용됩니다.이것은 도메인 이름 소유자에게 인터넷상에서 전자메일과 관련된 문제를 통지하는 방법이다.DMARC는 본질적으로 GMail, Outlook, GMX 등 DNS를 통해 메일을 받는 서버에 SPF와 DKIM 검증에 실패한 보고서를 보내는 것을 알려준다.실제 구현 상황에 따라 장애 통지뿐 아니라 모든 일이 순조롭게 진행되더라도 정기적으로 요약 보고서를 보낼 수 있습니다.또한 DMARC는 이러한 보고서에 대한 XML 기반 파일 형식을 지정합니다.도메인 소유자로서 이 보고서를 읽고 이해할 수 있으며, 무엇이든지 행동을 취할 수 있습니다.
전체 DMARC 레코드의 예는 here을 참조하십시오.나는 단지 <record>부분의 일부분을 강조하고 싶다.
<row>
    <source_ip>80.241.xx.xxx</source_ip>
    <count>1</count>
    <policy_evaluated>
        <disposition>none</disposition>
        <dkim>pass</dkim>
        <spf>pass</spf>
    </policy_evaluated>
</row>
<identifiers>
    <header_from>wakapi.dev</header_from>
</identifiers>
이 보고서 (이 예는 구글에서 온 것) 는wakapi의 소유자인 나에게 통지했다.dev, 일정 시간 내에 상기 IP에서 온 메일을 받았으며 SPF와 DKIM 검사가 모두 정상입니다.내 DNS 기록이 옳은 것 같아서 아무도 내 이름으로 사기를 치려 하지 않았다.완벽해.

DMARC 구성


메일을 받는 사람이 스팸메일로 볼 확률이 현저히 낮기 때문에 도메인에 SPF와 DKIM을 설정하는 것을 강력히 권장합니다.이후에도 DMARC를 설정해야 합니다.아마도 구글에서 이 점을 어떻게 하는지 검색해 보는 것이 좋을 것이다. 그곳에는 아주 좋은 댓글이 많다. (예를 들어 this (German-language) one)
본질적으로 다음과 같은 DNS 레코드가 제공됩니다.
v=DMARC1; p=reject; adkim=r; aspf=r; rua=mailto:[email protected]; ruf=mailto:[email protected]
이 예에서 DMARC 보고서를 주동적으로 실행하는 메일 서버는 [email protected]으로 보내도록 지시됩니다.DMARC 레코드의 기본 주소와 다른 별도의 주소를 설정하면 모든 주소를 [email protected]의 IMAP 폴더로 이동하고 읽은 것으로 표시하는 등의 규칙을 쉽게 설정할 수 있습니다.

통합 및 시각화


위의 예에서 보듯이 DMARC 기록을 읽기가 좀 불편합니다. 보고서를 수동으로 보기 싫을 수도 있습니다. (매일 두 번)다행히도 빠른 GitHub 검색을 통해 이를 실현하는 데 도움이 되는 프로젝트를 찾았습니다. 특히 다음과 같습니다.
  • DMARC 보고서를 IMAP
  • 을 통해 받은 편지함에서 읽기
  • 해석 그것들
  • 데이터베이스에 저장
  • 웹 사이트
  • 에서 시각화

    (출처: https://www.techsneeze.com)
    정확히 말하자면, 이 도구는 두 개의 독립된 스크립트, 해석기, 웹 계기판이다.

    데이터베이스 설정


    우선, MySQL 또는MariaDB 데이터베이스가 필요합니다. 해석기는 데이터를 쓸 수 있고, 대시보드는 데이터를 읽을 수 있습니다.만약 실행 중인 MySQL 실례가 없다면, 예를 들어 Docker를 사용하는 것을 쉽게 설정할 수 있습니다.
    docker run -d -p 3306:3306 -e MYSQL_RANDOM_ROOT_PASSWORD=yes -e MYSQL_DATABASE=dmarc -e MYSQL_USER=dmarc -e MYSQL_PASSWORD=sshhh --name mariadb-dmarc mariadb
    
    이 명령은 데이터베이스와 사용자를 만들었습니다.새 데이터베이스 인스턴스를 생성하지 않거나 Docker를 사용하지 않으려면 데이터베이스와 사용자를 수동으로 만들어야 합니다.
    $ mysql -u root -p
    
    $ USE dmarc;
    $ CREATE USER 'dmarc'@'%' IDENTIFIED WITH mysql_native_password BY 'sshhh';
    $ GRANT ALL PRIVILEGES ON 'dmarc'.* TO 'dmarc'@'%';
    $ FLUSH PRIVILEGES;
    $ quit;
    

    분석기 설정


    techsneeze/dmarcts-report-parser에서 분석기를 찾을 수 있습니다. 이것은 하나의 파일인 Perl 스크립트로 작성된 것으로 설정 파일과 함께 작성되었습니다.재구매 협의의 자술문서는 설치 과정을 잘 설명했다.
    프로필에서 상기 데이터베이스 연결(일반적으로 imap.yourprovider.com, 포트 993, SSL)과 인증서, IMAP 인증서를 설정하여 메일 계정에 로그인해야 합니다.$imapreadfolder을 사용하면 해석기가 DMARC 메일을 검색하는 IMAP 폴더를 알려줄 수 있습니다.수신함의 루트 폴더로 사용하지 않는 것이 좋습니다. 해석기의 주의력을 분산시키고 메일을 잃어버릴 위험도 없습니다.1. 개인적으로 내 수신함에 하위 폴더 dmarc(IMAP 경로는 INBOX/dmarc)를 설정하고 모든 dmarc 메일을 자동으로 넣는 규칙을 만듭니다.
    해상도는 장시간 실행되는 프로세스가 아닌 일회용 스크립트이기 때문에 정기적으로 호출하기를 원할 수도 있습니다. crontab -e을 사용하여cron 작업을 설정할 수 있습니다.
    @hourly     cd ~/dev/dmarcts-report-parser && ./dmarcts-report-parser.pl -i
    

    뷰어 설정


    viewer/web dashboard는 techsneeze/dmarcts-report-viewer에 위치하고 간단한 PHP 응용 프로그램으로 실현됩니다.이것은 PHP(예를 들어 PHP-FPM 사용)를 설치하는 것 외에 Apache2, nginx 또는 Caddy와 같은 웹 서버가 필요하다는 것을 의미한다.이 물건들을 어떻게 설정하는지 설명하는 것은 본문의 범위를 넘어서지만 구글로 검색할 수 있다.데이터베이스 증빙서류를 다시 놓으면 시작할 수 있다.
    브라우저에서 http://localhost/dmarcts-report-viewer.php (또는 도메인 이름이 무엇이든지) 을 클릭하면, 모든 DMARC 보고서의 개관을 얻을 수 있는 아주 편리하고 실용적인 웹 UI (보기 좋지는 않지만, 날짜에 따라 그룹을 나눌 수 있습니다.XML 파일을 하나하나 읽는 것보다 훨씬 멋있어!
    @techsneeze의 위대한 일에 감사드립니다.

    좋은 웹페이지 즐겨찾기