{"id":10677,"date":"2024-07-18T17:30:59","date_gmt":"2024-07-18T08:30:59","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=10677"},"modified":"2025-08-21T16:16:01","modified_gmt":"2025-08-21T07:16:01","slug":"sendmail-%ec%88%98%ec%8b%a0%eb%90%98%eb%8a%94-%eb%a9%94%ec%9d%bc-dkim-spf-dmarc-tls-%ea%b2%80%ec%a6%9d","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=10677","title":{"rendered":"sendmail &#8211; \uc218\uc2e0\ub418\ub294 \uba54\uc77c DKIM\/SPF\/DMARC \uac80\uc99d"},"content":{"rendered":"<h1>sendmail &#8211; \uc218\uc2e0\ub418\ub294 \uba54\uc77c DKIM\/SPF\/DMARC \uac80\uc99d<\/h1>\n<p>\uc2a4\ud338 \ubc0f \ud53c\uc2f1 \uba54\uc77c\uc744 \ub9c9\uae30 \uc704\ud574 SPF, DKIM, DMARC \uac80\uc0ac\ub97c \uc124\uc815\ud569\ub2c8\ub2e4.<\/p>\n<h2>DNS \uc124\uc815 (\ubc1c\uc1a1\uc790 \ub3c4\uba54\uc778 \uce21\uc5d0\uc11c \ud574\uc57c \ud568)<\/h2>\n<p>\uc218\uc2e0 \uc11c\ubc84\uac00 \uba54\uc77c\uc744 \uac80\uc0ac\ud560 \uc218 \uc788\ub3c4\ub85d, \ubc1c\uc1a1\uc790 \ub3c4\uba54\uc778\uc5d0\ub294 \ubc18\ub4dc\uc2dc \uc544\ub798\uc640 \uac19\uc740 \ub808\ucf54\ub4dc\uac00 \ub4f1\ub85d\ub418\uc5b4 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<p>; SPF<br \/>\n@      IN TXT &quot;v=spf1 mx a include:mail.yourdomain.com ~all&quot;<\/p>\n<p>; DKIM<br \/>\ndefault._domainkey   IN TXT &quot;v=DKIM1; k=rsa; p=MIIBIjANBgkqh&#8230;&quot;<\/p>\n<p>; DMARC<br \/>\n_dmarc IN TXT &quot;v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@yourdomain.com&quot;<\/p>\n<h2>SPF \uac80\uc0ac \uc124\uc815<\/h2>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt install build-essential sendmail libmilter-dev libspf2-2 libspf2-dev<\/code><\/pre>\n<pre><code class=\"language-bash\">wget https:\/\/www.acme.com\/software\/spfmilter\/spfmilter-2.2.tar.gz\ntar zxvf spfmilter-2.2.tar.gz\ncd spfmilter-2.2\n.\/configure\nmake\nsudo make install<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo su -\nspfmilter unix:\/var\/run\/spfmilter.sock<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo vi \/etc\/mail\/sendmail.mc\n----------------------\nINPUT_MAIL_FILTER(`spfmilter&#039;, `S=local:\/var\/run\/spfmilter.sock, T=S:4m;R:4m;E:4m&#039;)dnl\n----------------------<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo make -C \/etc\/mail\nsudo systemctl restart sendmail\nsudo systemctl status sendmail<\/code><\/pre>\n<p>\uc678\ubd80\uc5d0\uc11c \uba54\uc77c\uc744 \ubc1c\uc1a1\ud558\uc5ec SPF \ud5e4\ub354\uac00 \ucca8\uac00\ub418\ub294 \uac83\uc744 \ud655\uc778\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">sudo tail -200 \/var\/spool\/mail\/root\n......\nReceived-SPF: pass (plus-ai.co.kr: domain of skyer9@gmail.com designates 209.85.219.181 as permitted sender) receiver=plus-ai.co.kr; client-ip=209.85.219.181; helo=mail-yb1-f181.google.com; envelope-from=skyer9@gmail.com; x-software=spfmilter 2.2 http:\/\/www.acme.com\/software\/spfmilter\/ with libspf2-1.2.10;\n......<\/code><\/pre>\n<p>\uc131\uacf5\ud558\uba74 \uc544\ub798\uc640 \uac19\uc774 \uc11c\ubc84 \ubd80\ud305\uc2dc spfmilter \uac00 \uc2e4\ud589\ub418\ub3c4\ub85d \uc124\uc815\ud574 \uc90d\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">sudo vi \/etc\/systemd\/system\/spfmilter.service\n----------------------\n[Unit]\nDescription=SPF Milter\nAfter=network.target\n\n[Service]\nType=forking\nExecStart=\/usr\/local\/sbin\/spfmilter unix:\/var\/run\/spfmilter.sock\nUser=root\n\n[Install]\nWantedBy=multi-user.target\n----------------------<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo systemctl daemon-reload\nsudo systemctl enable spfmilter\nsudo systemctl start spfmilter<\/code><\/pre>\n<h2>DKIM \uc124\uc815<\/h2>\n<p><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=472\">\uc5ec\uae30<\/a> \uc5d0\uc11c \uc124\uc815\ub429\ub2c8\ub2e4.<\/p>\n<p><code>Mode                    sv<\/code> \uc774 \ubd80\ubd84\uc5d0\uc11c s \ub294 send, v \ub294 verify \uc785\ub2c8\ub2e4.<\/p>\n<h2>DMARC \uac80\uc0ac<\/h2>\n<pre><code class=\"language-bash\">sudo apt install opendmarc<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo vi \/etc\/opendmarc.conf\n----------------------\nAuthservID          yourmailserver.example.com\nTrustedAuthservIDs  yourmailserver.example.com\nSocket              inet:12303@localhost\nSyslog              true\n----------------------<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo vi \/etc\/mail\/sendmail.mc\n----------------------\nINPUT_MAIL_FILTER(`opendmarc&#039;, `S=inet:12303@localhost&#039;)\n----------------------<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo systemctl restart opendmarc\nsudo make -C \/etc\/mail\nsudo systemctl restart sendmail<\/code><\/pre>\n<h2>rspamd : Authentication-Results \ud1b5\ud569<\/h2>\n<pre><code class=\"language-bash\">sudo apt install rspamd<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo vi \/etc\/rspamd\/local.d\/milter_headers.conf\n----------------------\nuse = [&quot;authentication-results&quot;];\n----------------------<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo vi \/etc\/mail\/sendmail.mc\n----------------------\nINPUT_MAIL_FILTER(`rspamd&#039;, `S=inet:11332@localhost&#039;)dnl\n----------------------<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo systemctl enable rspamd\nsudo systemctl restart spfmilter opendmarc opendkim rspamd\nsudo make -C \/etc\/mail\nsudo systemctl restart sendmail<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo tail -200 \/var\/spool\/mail\/root\n......\nAuthentication-Results: MTA;\n        dkim=pass header.d=gmail.com header.s=20230601 header.b=&quot;TKdk+AZ\/&quot;;\n        spf=pass (MTA: domain of skyer9@gmail.com designates 209.85.219.180 as permitted sender) smtp.mailfrom=skyer9@gmail.com;\n        dmarc=pass (policy=none) header.from=gmail.com\n......<\/code><\/pre>\n<h2>rspamd \ubc84\uc804\uc5c5<\/h2>\n<p>\ub108\ubb34 \ub0ae\uc740 \ubc84\uc804\uc758 rspamd \ub294 \uc624\uc791\ub3d9\uc744 \ud560 \uc218 \uc788\ub2e4.<\/p>\n<pre><code class=\"language-bash\">rspamd --version\nRspamd daemon version 1.9.4<\/code><\/pre>\n<pre><code class=\"language-bash\">wget -O- https:\/\/rspamd.com\/apt-stable\/gpg.key | sudo apt-key add -\necho &quot;deb [arch=amd64] http:\/\/rspamd.com\/apt-stable\/ focal main&quot; | sudo tee \/etc\/apt\/sources.list.d\/rspamd.list<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo apt update\napt policy rspamd\nsudo apt install rspamd<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo cp -r \/etc\/rspamd \/etc\/rspamd.backup.$(date +%Y%m%d)\nsudo systemctl restart rspamd<\/code><\/pre>\n<pre><code class=\"language-bash\">rspamd --version\nRspamd daemon version 3.12.1<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>sendmail &#8211; \uc218\uc2e0\ub418\ub294 \uba54\uc77c DKIM\/SPF\/DMARC \uac80\uc99d \uc2a4\ud338 \ubc0f \ud53c\uc2f1 \uba54\uc77c\uc744 \ub9c9\uae30 \uc704\ud574 SPF, DKIM, DMARC \uac80\uc0ac\ub97c \uc124\uc815\ud569\ub2c8\ub2e4. DNS \uc124\uc815 (\ubc1c\uc1a1\uc790 \ub3c4\uba54\uc778 \uce21\uc5d0\uc11c \ud574\uc57c \ud568) \uc218\uc2e0 \uc11c\ubc84\uac00 \uba54\uc77c\uc744 \uac80\uc0ac\ud560 \uc218 \uc788\ub3c4\ub85d, \ubc1c\uc1a1\uc790 \ub3c4\uba54\uc778\uc5d0\ub294 \ubc18\ub4dc\uc2dc \uc544\ub798\uc640 \uac19\uc740 \ub808\ucf54\ub4dc\uac00 \ub4f1\ub85d\ub418\uc5b4 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4. ; SPF @ IN TXT &quot;v=spf1 mx a include:mail.yourdomain.com ~all&quot; ; DKIM default._domainkey IN TXT &quot;v=DKIM1;\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=10677\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[],"class_list":["post-10677","post","type-post","status-publish","format-standard","hentry","category-sendmail"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/10677","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10677"}],"version-history":[{"count":33,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/10677\/revisions"}],"predecessor-version":[{"id":10726,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/10677\/revisions\/10726"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10677"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10677"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10677"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}