{"id":490848,"date":"2026-08-13T14:15:15","date_gmt":"2026-08-13T14:15:15","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=490848"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2026-08-13T14:15:15","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=490848","title":{"rendered":"Self-hosted \u043f\u043e\u0447\u0442\u0430 \u043d\u0430 arch linux, postfix, dovecot \u0438 let&#8217;s encrypt"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043f\u043e\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u0434\u043b\u044f \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u043e\u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0431\u0435\u0437 \u0432\u0435\u0431-\u043c\u043e\u0440\u0434, docker-\u043e\u0432, \u0442\u0435\u043b\u0435\u0433\u0440\u0430\u043c-\u043f\u043e\u043c\u043e\u0435\u043a \u0438 LLM-\u0432\u044b\u0441\u0435\u0440\u043e\u0432.<\/p>\n<p>\u0416\u0430\u043b\u043a\u0438\u0435 \u043e\u0442\u043f^W^W \u0414\u0438\u0441\u043a\u043b\u0435\u0439\u043c\u0435\u0440: \u044f &#8212; \u0430\u0434\u043c\u0438\u043d \u043b\u043e\u043a\u0430\u043b\u0445\u043e\u0441\u0442\u0430. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u043e\u043b\u043d\u043e \u0430\u043d\u0433\u043b\u0438\u0446\u0438\u0437\u043c\u043e\u0432 \u0438 \u043d\u0435\u0434\u043e\u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0445 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u0432.<\/p>\n<h2>\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442? \u0413\u0434\u0435 \u044f? \u041f\u043e\u043c\u043e\u0433\u0438\u0442\u0435!<\/h2>\n<p>\u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u2014 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 <a href=\"https:\/\/kostovsky.me\/blog\/email_server\/\" rel=\"noopener noreferrer nofollow\">\u043c\u043e\u0435\u0433\u043e \u0436\u0435 \u043f\u043e\u0441\u0442\u0430<\/a>, \u043f\u043e \u0441\u0443\u0442\u0438 \u043a\u043e\u043f\u0438\u0438 <a href=\"https:\/\/blog.costan.ro\/post\/2022-04-27-personal-email-server-with-postfix-dovecot\/\" rel=\"noopener noreferrer nofollow\">\u0432\u043e\u0442 \u044d\u0442\u043e\u0433\u043e<\/a> \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0433\u043e \u043f\u043e\u0441\u0442\u0430 \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u0431\u043b\u043e\u0433\u0435 (<a href=\"https:\/\/web.archive.org\/web\/20260000000000*\/https:\/\/blog.costan.ro\/post\/2022-04-27-personal-email-server-with-postfix-dovecot\/\" rel=\"noopener noreferrer nofollow\">\u0430\u0440\u0445\u0438\u0432\u043d\u0430\u044f \u043a\u043e\u043f\u0438\u044f<\/a>) (\u0434\u0430\u043b\u0435\u0435 \u2014 \u00ab\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0433\u0430\u0439\u0434\u00bb), \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043d\u0435 \u0432 \u0441\u0432\u043e\u0451 \u0432\u0440\u0435\u043c\u044f \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0432\u0435\u0437\u043b\u043e \u043d\u0430\u0442\u043a\u043d\u0443\u0442\u044c\u0441\u044f.<\/p>\n<p>\u0411\u0443\u0434\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u041e\u0421 \u0431\u044b\u043b\u0430 \u0441\u0432\u043e\u044f \u043f\u043e\u0447\u0442\u0430, \u0430 \u043f\u0438\u0441\u044c\u043c\u0430 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0441\u044c \u0432 ~\/Maildir.<\/p>\n<h3>\u0418\u043d\u0434\u0438\u0433\u0440\u0438\u0435\u043d\u0442\u044b \u00a9<\/h3>\n<p>\u041f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u043d\u0430\u043c, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0430 arch linux \u0441 \u0431\u0435\u043b\u044b\u043c IP, \u0434\u043e\u043c\u0435\u043d\u043d\u043e\u0435 \u0438\u043c\u044f, \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0438, \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e, reverse DNS.<\/p>\n<p>\u0421\u0435\u0440\u0432\u0435\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 arch, \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430\u0445 \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e.<\/p>\n<p>Reverse DNS \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043c, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e IP-\u0430\u0434\u0440\u0435\u0441\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u043c\u0435\u043d\u043d\u043e\u0435 \u0438\u043c\u044f, \u043d\u0430 \u044d\u0442\u043e\u0442 \u0430\u0434\u0440\u0435\u0441 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0435\u0435, \u0430 \u043d\u0443\u0436\u0435\u043d \u043e\u043d \u043d\u0430\u043c \u0437\u0430\u0442\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u0443 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u043d\u0430\u0448 \u0441\u0435\u0440\u0432\u0435\u0440, \u0431\u044b\u043b\u0430 yet another \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430, \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u044e\u0449\u0430\u044f \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0432 \u0441\u043f\u0430\u043c-\u043b\u0438\u0441\u0442\u044b.<\/p>\n<p>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u043f\u043e \u0441\u0435\u0431\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u0438 \u0432 \u0441\u043f\u0430\u043c-\u043b\u0438\u0441\u0442\u044b \u043c\u043e\u0438 \u043f\u043e\u043b\u043d\u043e\u043c\u043e\u0447\u0438\u044f \u0432\u0441\u0451, \u043d\u043e \u0434\u043b\u044f \u0432\u044b\u0445\u043e\u0434\u0430 \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u043e\u0433\u043e, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043f\u0430\u0434\u0430\u043b \u044f, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u044b\u043b\u043e \u0442\u043a\u043d\u0443\u0442\u044c \u043c\u044b\u0448\u043a\u043e\u0439 \u043e\u0434\u043d\u0443 \u043a\u043d\u043e\u043f\u043a\u0443 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0441\u043f\u0430\u043c-\u043b\u0438\u0441\u0442\u0430.<\/p>\n<p>\u0412\u044b\u0447\u0438\u0442\u0430\u0442\u044c reverse DNS \u0434\u043b\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>8.8.8.8<\/code> \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0442 \u0442\u0430\u043a (\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u043d\u043e \u043d\u0430 <code>dns.google<\/code>, \u0442\u043e\u0447\u043a\u0430 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043d\u0430\u0441 \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442):<\/p>\n<pre><code>$ dig -x 8.8.8.8 | grep -vE \"^$|^;\"8.8.8.8.in-addr.arpa.75882INPTRdns.google.<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0441\u0442\u0430\u0432\u0438\u0442\u044c reverse DNS \u043c\u043e\u0436\u043d\u043e \u043b\u0438\u0431\u043e \u0432 \u0430\u0434\u043c\u0438\u043d\u043a\u0435 \u0432\u0430\u0448\u0435\u0433\u043e \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0433\u043e \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u0438\u043b\u0438 \u0445\u043e\u0441\u0442\u0435\u0440\u0430, \u043b\u0438\u0431\u043e, \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u043b \u044f, \u043d\u0430\u043f\u0438\u0441\u0430\u0432 e-mail \u0432 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u0438 \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u0432 \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0443\u0436\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 reverse DNS \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0433\u043e IP-\u0430\u0434\u0440\u0435\u0441\u0430. \u0418\u0427\u0421\u0425, \u043c\u043d\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u044d\u0442\u043e \u0437\u0430 15 \u043c\u0438\u043d\u0443\u0442 \u0431\u0435\u0437 \u043b\u0438\u0448\u043d\u0438\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432, \u044f \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u0434\u0438\u0432\u0438\u043b\u0441\u044f.<\/p>\n<p>\u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0433\u0430\u0439\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 self-signed \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442, \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e let\u2019s encrypt, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u043d\u0435 \u0434\u0430\u0436\u0435 \u0434\u0443\u043c\u0430\u0442\u044c \u043b\u0435\u043d\u044c \u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0445, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u043d\u044b\u043c\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043c\u0438. \u041a\u043e\u0433\u0434\u0430-\u043d\u0438\u0431\u0443\u0434\u044c, \u0434\u0443\u043c\u0430\u044e, \u043f\u043e\u0434\u0443\u043c\u0430\u044e \u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0445 \u0441 let\u2019s encrypt, \u043d\u043e \u041b\u0435\u043e\u043d\u0438\u0434 \u041a\u0430\u043d\u0435\u0432\u0441\u043a\u0438\u0439.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0438\u0441\u044c\u043c\u0430 \u0441\u043e \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u043e\u0447\u0442\u043e\u0432\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u043f\u0440\u044f\u043c\u043e \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0432\u043e\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441 \u043c\u044b\u0441\u043b\u044c\u044e \u00ab\u044f, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0433\u0430\u0439\u0434 \u043d\u0435 \u0434\u043e\u0447\u0438\u0442\u0430\u043b, \u043d\u043e \u0430 \u0432\u0434\u0440\u0443\u0433 \u043e\u043d\u043e \u0443\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u00bb, \u043f\u043e\u0442\u0440\u0435\u043d\u0438\u0440\u0443\u0439\u0442\u0435\u0441\u044c \u043d\u0430 <a href=\"https:\/\/www.mail-tester.com\/\" rel=\"noopener noreferrer nofollow\">\u043a\u043e\u0448\u043a\u0430\u0445<\/a>, \u0438\u043d\u0430\u0447\u0435 \u0435\u0441\u0442\u044c \u0440\u0438\u0441\u043a \u0437\u0430\u0433\u0440\u0435\u043c\u0435\u0442\u044c \u0432 \u0441\u043f\u0430\u043c-\u043b\u0438\u0441\u0442\u044b.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u0443 \u0432\u0430\u0441 \u0432\u0441\u0451 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0438\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432, \u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0431\u0435\u043a\u0430\u043f\u044b. \u041f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, dovecot \u043d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u0441\u043b\u043e\u043c\u0430\u043b \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043f\u043e\u0434 \u0440\u0443\u043a\u043e\u0439 \u0435\u0441\u0442\u044c \u0431\u0435\u043a\u0430\u043f \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u043a\u0430\u0442\u0438\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044e postfix\/dovecot\/whatever \u0438\u0437 <code>\/var\/cache\/pacman\/pkg\/<\/code>, \u0430 \u0443\u0436\u0435 \u043f\u043e\u0442\u043e\u043c, \u0438\u043c\u0435\u044f \u0440\u0430\u0431\u043e\u0447\u0443\u044e \u043f\u043e\u0447\u0442\u0443, \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u0441\u043b\u043e\u043c\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u043e\u0444\u0442\u0430.<\/p>\n<p>\u041d\u0438\u0436\u0435, \u043a\u0430\u043a \u0438 \u0432 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u043c \u0433\u0430\u0439\u0434\u0435, \u043f\u043e\u0439\u0434\u0443\u0442 \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u044b\u0435 \u0433\u043b\u0430\u0432\u044b \u0441 \u043f\u043e\u0434\u0433\u043b\u0430\u0432\u0430\u043c\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u2014 \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0438\u043c\u044b\u0435 \u0447\u0430\u0441\u0442\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432, \u0438 \u0438\u0445, \u043a\u043e\u043c\u0430\u043d\u0434, \u0432\u044b\u0432\u043e\u0434. \u0412 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u043c \u0433\u0430\u0439\u0434\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f \u043f\u043e \u0441\u0443\u0442\u0438 \u0441\u043b\u044f\u043c\u0437\u0438\u043b, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u043f\u043e\u044f\u0441\u043d\u044f\u044e\u0449\u0438\u0445 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432. \u0422\u0443\u0434\u0430 \u044f \u0432\u0430\u0441 \u0437\u0430 \u043d\u0438\u043c\u0438 \u0438 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u044e, \u0430 \u0437\u0434\u0435\u0441\u044c \u0431\u0443\u0434\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0443\u043c, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.<\/p>\n<p>\u0427\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043e \u0432\u0441\u0435\u043c \u043d\u0438\u0436\u0435\u0438\u0437\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c? \u0412 \u043a\u0430\u0436\u0434\u043e\u0439 \u0433\u043b\u0430\u0432\u0435 \u043d\u0430\u043a\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u0441\u043e\u0444\u0442, \u043f\u043e\u0442\u043e\u043c <code>grep<\/code>-\u0430\u0442\u044c \u043f\u043e <code>\/etc\/&lt;tool-name&gt;<\/code>, \u0432 \u043a\u0430\u043a\u0438\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0430\u0445 \u0443 \u0432\u0430\u0441 \u043b\u0435\u0436\u0438\u0442 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435\u0435, \u0438 \u0434\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u044d\u0442\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0438 \u0434\u043e \u043d\u0443\u0436\u043d\u043e\u0439 \u043a\u043e\u043d\u0434\u0438\u0446\u0438\u0438.<\/p>\n<h3>\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b<\/h3>\n<pre><code>$ pacman -S certbot$ certbot -d mydomain.name <\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u044d\u0442\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043d\u0435\u0442 \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 \u0432\u0438\u043a\u0438: <a href=\"https:\/\/wiki.archlinux.org\/title\/Certbot\" rel=\"noopener noreferrer nofollow\">https:\/\/wiki.archlinux.org\/title\/Certbot<\/a><\/p>\n<h3>Dovecot<\/h3>\n<p><a href=\"https:\/\/wiki.archlinux.org\/title\/Dovecot\" rel=\"noopener noreferrer nofollow\">https:\/\/wiki.archlinux.org\/title\/Dovecot<\/a><\/p>\n<h4>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430<\/h4>\n<pre><code>pacman -S dovecot<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h4>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430<\/h4>\n<h3>\u0422\u0438\u043f \u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0447\u0442\u044b, \u00ab\u043f\u0430\u043f\u043a\u0438\u00bb<\/h3>\n<pre><code>doveconf -n mail_path mail_driver namespace inbox<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434:<\/p>\n<pre><code>mail_path = ~\/Maildirmail_driver = maildirnamespace inbox {  inbox = yes  separator = \/  mailbox Drafts {    special_use = \"\\\\Drafts\"  }  mailbox Junk {    special_use = \"\\\\Junk\"  }  mailbox Trash {    special_use = \"\\\\Trash\"  }  mailbox Sent {    special_use = \"\\\\Sent\"  }  mailbox \"Sent Messages\" {    special_use = \"\\\\Sent\"  }}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u044e\u0437\u0435\u0440\u0430 dovecot \u0432 \u0433\u0440\u0443\u043f\u043f\u0443 mail<\/h3>\n<pre><code>usermod -aG mail dovecotid dovecot<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434:<\/p>\n<pre><code>uid=76(dovecot) gid=76(dovecot) groups=76(dovecot),12(mail)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b<\/h3>\n<h3>SSL<\/h3>\n<pre><code>doveconf ssl ssl_server_cert_file ssl_server_key_file ssl_server_dh_file<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434:<\/p>\n<pre><code>ssl = yesssl_server_cert_file = \/etc\/letsencrypt\/live\/kostovsky.me\/fullchain.pemssl_server_key_file = \/etc\/letsencrypt\/live\/kostovsky.me\/privkey.pemssl_server_dh_file = \/etc\/dovecot\/dh.pem<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u0410\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f<\/h3>\n<pre><code>doveconf -n userdb passdb<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434 (\u0438\u043c\u0435\u043d\u0430 \u0441\u0435\u043a\u0446\u0438\u0439 \u0437\u0434\u0435\u0441\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u044b \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e: \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 dovecot \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b \u0438\u0445, \u0438\u043c\u0435\u043d\u0430, \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c, \u044f \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043b):<\/p>\n<pre><code>userdb fuck_dovecot {  driver = passwd}passdb fuck_dovecot {  driver = pam}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<pre><code>cat \/etc\/pam.d\/dovecot<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434:<\/p>\n<pre><code>#%PAM-1.0auth include system-authaccount include system-authsession include system-authpassword include system-auth<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u044e\u0437\u0435\u0440\u0430<\/h3>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0434\u0440\u0443\u0433 \u0443 \u0432\u0430\u0441 \u0435\u0433\u043e \u0435\u0449\u0451 \u043d\u0435\u0442. \u0415\u0433\u043e \u043b\u043e\u0433\u0438\u043d \u0438 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043f\u043e\u0447\u0442\u043e\u0432\u043e\u043c \u0430\u0434\u0440\u0435\u0441\u0435. \u0423 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u00ab\u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e\u00bb \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u0432\u043e\u0439 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u044f\u0449\u0438\u043a, \u0430 \u0434\u043b\u044f \u043b\u043e\u0433\u0438\u043d\u0430 \u0432 \u043f\u043e\u0447\u0442\u0443 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0430\u0440\u043e\u043b\u044c \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u041e\u0421.<\/p>\n<pre><code>useradd nikita -mpasswd nikita<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u0412\u0435\u0441\u044c \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433<\/h3>\n<details class=\"spoiler\">\n<summary>\u0421\u043f\u0440\u044f\u0442\u0430\u043b \u043f\u043e\u0434 \u0441\u043f\u043e\u0439\u043b\u0435\u0440<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>doveconf -n<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>Output:<\/p>\n<pre><code>## 2.4.4 (8b687aa65c): \/etc\/dovecot\/dovecot.conf## OS: Linux 7.1.5-arch1-2 x86_64  ## Hostname: home## 29 default setting changes since version 2.4.1dovecot_config_version = 2.4.1auth_mechanisms = plaindovecot_storage_version = 2.4.1mail_driver = maildirmail_path = ~\/Maildirprotocols {  imap = yes  lmtp = yes}passdb fuck_dovecot {  driver = pam}userdb fuck_dovecot {  driver = passwd}service director {  listen = * ::  unix_listener login\/director {  }  fifo_listener login\/proxy-notify {  }  unix_listener director-userdb {  }}service imap-login {  inet_listener imap {  }  inet_listener imaps {  }}service pop3-login {  inet_listener pop3 {  }  inet_listener pop3s {  }}service submission-login {  inet_listener submission {  }  inet_listener submissions {  }}namespace inbox {  inbox = yes  separator = \/  mailbox Drafts {    special_use = \"\\\\Drafts\"  }  mailbox Junk {    special_use = \"\\\\Junk\"  }  mailbox Trash {    special_use = \"\\\\Trash\"  }  mailbox Sent {    special_use = \"\\\\Sent\"  }  mailbox \"Sent Messages\" {    special_use = \"\\\\Sent\"  }}service lmtp {  unix_listener lmtp {  }}service imap {}service pop3 {}service submission {}service auth {  unix_listener \/var\/spool\/postfix\/private\/auth {    group = postfix    mode = 0666    user = postfix  }}service auth-worker {}service dict {  unix_listener dict {  }}ssl_server {  cert_file = \/etc\/letsencrypt\/live\/kostovsky.me\/fullchain.pem  dh_file = \/etc\/dovecot\/dh.pem  key_file = \/etc\/letsencrypt\/live\/kostovsky.me\/privkey.pem}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<h4>\u0421\u0435\u0440\u0432\u0438\u0441<\/h4>\n<pre><code>systemctl enable --now dovecot.service<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 <code>ufw<\/code>, \u0437\u0430\u0433\u043b\u044f\u043d\u0438\u0442\u0435 \u0432 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0433\u0430\u0439\u0434, \u0442\u0430\u043c \u0435\u0441\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438.<\/p>\n<h4>\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/h4>\n<ul>\n<li>\n<p><a href=\"https:\/\/www.dotcom-tools.com\/email-server-test\" rel=\"noopener noreferrer nofollow\">https:\/\/www.dotcom-tools.com\/email-server-test<\/a><\/p>\n<\/li>\n<\/ul>\n<h3>Postfix<\/h3>\n<p><a href=\"https:\/\/wiki.archlinux.org\/title\/Postfix\" rel=\"noopener noreferrer nofollow\">https:\/\/wiki.archlinux.org\/title\/Postfix<\/a><\/p>\n<h4>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430<\/h4>\n<pre><code>pacman -S postfix<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u041a\u0430\u0442\u0430\u043b\u043e\u0433\u0438<\/h3>\n<pre><code>postconf -n | grep -E \"directory\\s\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434:<\/p>\n<pre><code>command_directory = \/usr\/bindaemon_directory = \/usr\/lib\/postfix\/bindata_directory = \/var\/lib\/postfixhtml_directory = nomanpage_directory = \/usr\/share\/manmeta_directory = \/etc\/postfixqueue_directory = \/var\/spool\/postfixreadme_directory = \/usr\/share\/doc\/postfixsample_directory = \/etc\/postfixshlib_directory = \/usr\/lib\/postfix<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u0414\u043e\u043c\u0435\u043d<\/h3>\n<pre><code>postconf -n | grep ^my<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>Output:<\/p>\n<pre><code>mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, mail.$mydomainmydomain = kostovsky.memyhostname = kostovsky.memyorigin = $mydomain<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>Aliases<\/h3>\n<pre><code>postconf -n | grep -E \"^alias|newaliases\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434:<\/p>\n<pre><code>alias_database = $alias_mapsalias_maps = lmdb:\/etc\/postfix\/aliasesnewaliases_path = \/usr\/bin\/newaliases<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>Catch-all email<\/h3>\n<p>\u00ab\u0412\u0441\u0435\u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0439\u00bb(?) \u0430\u0434\u0440\u0435\u0441. \u0417\u0434\u0435\u0441\u044c \u0430\u0432\u0442\u043e\u0440 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0433\u0430\u0439\u0434\u0430 \u0443\u043a\u0430\u0437\u0430\u043b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043f\u043e\u0447\u0442\u0443 (\u0432 \u0441\u043c\u044b\u0441\u043b\u0435 \u0441\u043f\u0430\u043c), \u0430\u0434\u0440\u0435\u0441\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043d\u0435\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c. \u0423 \u043c\u0435\u043d\u044f \u0437\u0434\u0435\u0441\u044c \u043f\u0443\u0441\u0442\u043e.<\/p>\n<pre><code>postconf -n luser_relay local_recipient_maps<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>Output:<\/p>\n<pre><code>local_recipient_maps =<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u0428\u0438\u0444\u0440\u0443\u0435\u043c\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e TLS<\/h3>\n<p>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0447\u0442\u044b:<\/p>\n<pre><code>postconf -n | grep smtpd_ | grep tls<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434:<\/p>\n<pre><code>smtpd_sasl_tls_security_options = noanonymoussmtpd_tls_auth_only = yessmtpd_tls_cert_file = \/etc\/letsencrypt\/live\/kostovsky.me\/fullchain.pemsmtpd_tls_key_file = \/etc\/letsencrypt\/live\/kostovsky.me\/privkey.pemsmtpd_use_tls = yes<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u043f\u043e\u0447\u0442\u044b:<\/p>\n<pre><code>postconf -n | grep smtp_ | grep tls<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434:<\/p>\n<pre><code>smtp_tls_security_level = may<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u0410\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f\/\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f<\/h3>\n<p>\u041a\u043e\u043d\u0444\u0438\u0433 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 postfix:<\/p>\n<pre><code>postconf -n | grep ^smtpd_sasl<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434:<\/p>\n<pre><code>smtpd_sasl_auth_enable = yessmtpd_sasl_local_domain = $mydomainsmtpd_sasl_path = private\/authsmtpd_sasl_security_options = noanonymous, noplaintextsmtpd_sasl_tls_security_options = noanonymoussmtpd_sasl_type = dovecot<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0435\u0439 dovecot<\/p>\n<pre><code>doveconf -n service\/auth<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434:<\/p>\n<pre><code>service auth {  unix_listener \/var\/spool\/postfix\/private\/auth {    group = postfix    mode = 0666    user = postfix  }}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>Relay (\u0448\u043b\u044e\u0437?) \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f<\/h3>\n<pre><code>postconf -n | grep -E \"helo|relay\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434:<\/p>\n<pre><code>smtpd_helo_required = yessmtpd_helo_restrictions = reject_invalid_helo_hostname, reject_non_fqdn_helo_hostnamesmtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>Mail submission<\/h3>\n<p>\u042f \u043d\u0435 \u0437\u043d\u0430\u044e, \u043a\u0430\u043a \u0438 \u0435\u0441\u0442\u044c \u043b\u0438 \u0441\u043c\u044b\u0441\u043b \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043b\u043e\u0432\u043e\u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f, \u043d\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u201cmail submission\u201d \u043d\u0435 \u0442\u0430\u043a \u0443\u0436 \u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.<\/p>\n<pre><code>postconf -M submission<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434:<\/p>\n<pre><code>submission inet  n       -       n       -       -       smtpd -o syslog_name=postfix\/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_tls_auth_only=yes -o smtpd_reject_unlisted_recipient=no -o smtpd_relay_restrictions= -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>DNS-\u0437\u0430\u043f\u0438\u0441\u044c TXT<\/h3>\n<pre><code>drill -Q kostovsky.me TXTdrill -Q smtp.kostovsky.me TXT<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434:<\/p>\n<pre><code>\"v=spf1 a mx ip4:195.234.21.24 ~all\"\"v=spf1 a mx ip4:195.234.21.24 ~all\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u0417\u0430\u043f\u0438\u0441\u044c reverse DNS<\/h3>\n<pre><code>drill -Q 195.234.21.24 -x<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434:<\/p>\n<pre><code>kostovsky.me.<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u0412\u0435\u0441\u044c \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433<\/h3>\n<details class=\"spoiler\">\n<summary>\u0421\u043f\u0440\u044f\u0442\u0430\u043b \u043f\u043e\u0434 \u0441\u043f\u043e\u0439\u043b\u0435\u0440<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>postconf -n<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434:<\/p>\n<pre><code>alias_database = $alias_mapsalias_maps = lmdb:\/etc\/postfix\/aliasescommand_directory = \/usr\/bincompatibility_level = 3.11daemon_directory = \/usr\/lib\/postfix\/bindata_directory = \/var\/lib\/postfixdebug_peer_level = 2debugger_command = PATH=\/bin:\/usr\/bin:\/usr\/local\/bin:\/usr\/X11R6\/bin ddd $daemon_directory\/$process_name $process_id &amp; sleep 5home_mailbox = Maildir\/html_directory = noinet_protocols = ipv4local_recipient_maps =mail_owner = postfixmailbox_size_limit = 512000000mailq_path = \/usr\/bin\/mailqmanpage_directory = \/usr\/share\/manmessage_size_limit = 512000000meta_directory = \/etc\/postfixmilter_default_action = acceptmydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, mail.$mydomainmydomain = kostovsky.memyhostname = kostovsky.memynetworks = 10.66.66.0\/24myorigin = $mydomainnewaliases_path = \/usr\/bin\/newaliasesnon_smtpd_milters = $smtpd_miltersqueue_directory = \/var\/spool\/postfixreadme_directory = \/usr\/share\/doc\/postfixsample_directory = \/etc\/postfixsendmail_path = \/usr\/bin\/sendmailsetgid_group = postdropshlib_directory = \/usr\/lib\/postfixsmtp_header_checks = regexp:\/etc\/postfix\/smtp_header_checkssmtp_tls_security_level = maysmtpd_banner = eximsmtpd_helo_required = yessmtpd_helo_restrictions = reject_invalid_helo_hostname, reject_non_fqdn_helo_hostnamesmtpd_milters = inet:localhost:8891, inet:localhost:8893smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destinationsmtpd_sasl_auth_enable = yessmtpd_sasl_local_domain = $mydomainsmtpd_sasl_path = private\/authsmtpd_sasl_security_options = noanonymous, noplaintextsmtpd_sasl_tls_security_options = noanonymoussmtpd_sasl_type = dovecotsmtpd_tls_auth_only = yessmtpd_tls_cert_file = \/etc\/letsencrypt\/live\/kostovsky.me\/fullchain.pemsmtpd_tls_key_file = \/etc\/letsencrypt\/live\/kostovsky.me\/privkey.pemsmtpd_use_tls = yesunknown_local_recipient_reject_code = 550<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<h4>\u0421\u0435\u0440\u0432\u0438\u0441<\/h4>\n<pre><code>systemctl enable --now postfix.service<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 <code>ufw<\/code>, \u0437\u0430\u0433\u043b\u044f\u043d\u0438\u0442\u0435 \u0432 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0433\u0430\u0439\u0434, \u0442\u0430\u043c \u0435\u0441\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438.<\/p>\n<h4>\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/h4>\n<ul>\n<li>\n<p><a href=\"https:\/\/mxtoolbox.com\/diagnostic.aspx\" rel=\"noopener noreferrer nofollow\">https:\/\/mxtoolbox.com\/diagnostic.aspx<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.appmaildev.com\/\" rel=\"noopener noreferrer nofollow\">https:\/\/www.appmaildev.com\/<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.checktls.com\/index.html\" rel=\"noopener noreferrer nofollow\">https:\/\/www.checktls.com\/index.html<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/decoder.link\/sslchecker\/kostovsky.me\/25\" rel=\"noopener noreferrer nofollow\">https:\/\/decoder.link\/sslchecker\/kostovsky.me\/25<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/check.spamhaus.org\/results\/?query=195.234.21.24\" rel=\"noopener noreferrer nofollow\">https:\/\/check.spamhaus.org\/results\/?query=195.234.21.24<\/a> &#8212; hidden behind cloudflare<\/p>\n<\/li>\n<\/ul>\n<p>\u041e\u0441\u043e\u0431\u043e \u0443\u043f\u043e\u0440\u043e\u0442\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0441\u0442\u0440\u0435\u043d\u044c\u043a\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c SMTP \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>openssl<\/code>:<\/p>\n<pre><code>openssl s_client -connect kostovsky.me:25 -starttls smtp<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>DomainKeys Identified Mail &#8212; DKIM<\/h3>\n<h4>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430<\/h4>\n<p><a href=\"https:\/\/wiki.archlinux.org\/title\/OpenDKIM\" rel=\"noopener noreferrer nofollow\">https:\/\/wiki.archlinux.org\/title\/OpenDKIM<\/a><\/p>\n<pre><code>pacman -S opendkim<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h4>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430<\/h4>\n<h3>\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433<\/h3>\n<pre><code>grep -v -e '^#' -e '^[[:space:]]*$' \/etc\/opendkim\/opendkim.conf<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434:<\/p>\n<pre><code>Canonicalization  relaxed\/simpleDomain  kostovsky.meKeyFile  \/etc\/opendkim\/rig.privateSelector  rigSocket                    inet:8891@localhostSyslog  YesUserID                    opendkim:postfix<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u043a\u043b\u044e\u0447\u0435\u0439<\/h3>\n<p>Generate rig.private and rig.txt files.<\/p>\n<pre><code>opendkim-genkey --restrict --selector rig --domain kostovsky.me --directory \/etc\/opendkim<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 postfix<\/h3>\n<pre><code>postconf -n | grep milter<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434:<\/p>\n<pre><code>milter_default_action = acceptnon_smtpd_milters = $smtpd_milterssmtpd_milters = inet:localhost:8891, inet:localhost:8893<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u0441 postfix \u043e\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 \u0441\u043e\u043a\u0435\u0442 inet:localhost:8891.<\/p>\n<h3>DNS-\u0437\u0430\u043f\u0438\u0441\u044c TXT<\/h3>\n<pre><code>cat \/etc\/opendkim\/rig.txt<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434:<\/p>\n<pre><code>rig._domainkeyINTXT( \"v=DKIM1; k=rsa; s=email; \"          \"p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDA8dfa8T7Hhn5\/nWVivUpeBEs339fa9bCUHN7tqWxchzy5vBw\/8Z3\/9Pp8XIXo\/0GnpOCu0Fh4P27tMnIdH5N4Sy3E\/XcNHL7cRAB7gqKjEMuT2S49L7j3g19Dns7qN8rbArC7Krzq5mdHPHk1EqGsytGlv9CMD5gegpUsM7wd3QIDAQAB\" )  ; ----- DKIM key rig for kostovsky.me<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<pre><code>drill -Q rig._domainkey.kostovsky.me TXT<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434:<\/p>\n<pre><code>\"v=DKIM1; k=rsa; s=email; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDA8dfa8T7Hhn5\/nWVivUpeBEs339fa9bCUHN7tqWxchzy5vBw\/8Z3\/9Pp8XIXo\/0GnpOCu0Fh4P27tMnIdH5N4Sy3E\/XcNHL7cRAB7gqKjEMuT2S49L7j3g19Dns7qN8rbArC7Krzq5mdHPHk1EqGsytGlv9CMD5gegpUsM7wd3QIDAQAB\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h4>\u0421\u0435\u0440\u0432\u0438\u0441<\/h4>\n<pre><code>systemctl enable --now opendkim.service<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h4>\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/h4>\n<ul>\n<li>\n<p><a href=\"https:\/\/dkimcore.org\/tools\/\" rel=\"noopener noreferrer nofollow\">https:\/\/dkimcore.org\/tools\/<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/dmarcian.com\/dkim-inspector\/\" rel=\"noopener noreferrer nofollow\">https:\/\/dmarcian.com\/dkim-inspector\/<\/a> &#8212; \u0432\u043e\u0442, \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430, <a href=\"https:\/\/dmarcian.com\/dkim-inspector\/?domain=kostovsky.me&amp;selector=rig\" rel=\"noopener noreferrer nofollow\">\u043c\u043e\u0439 \u043e\u0442\u0447\u0451\u0442<\/a><\/p>\n<\/li>\n<\/ul>\n<h3>Domain-based Message Authentication, Reporting and Conformance &#8212; DMARC<\/h3>\n<p><a href=\"https:\/\/wiki.archlinux.org\/title\/OpenDMARC\" rel=\"noopener noreferrer nofollow\">https:\/\/wiki.archlinux.org\/title\/OpenDMARC<\/a><\/p>\n<h4>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430<\/h4>\n<pre><code>pacman -S opendmarc<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h4>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430<\/h4>\n<h3>\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433<\/h3>\n<pre><code>grep -vE \"^#|^\\s*$\" \/etc\/opendmarc\/opendmarc.conf<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434:<\/p>\n<pre><code>AuthservID HOSTNAMEIgnoreAuthenticatedClients trueSocket inet:8893@localhostSPFSelfValidate trueUMask 002<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 postfix<\/h3>\n<pre><code>postconf -n | grep milter<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434:<\/p>\n<pre><code>milter_default_action = acceptnon_smtpd_milters = $smtpd_milterssmtpd_milters = inet:localhost:8891, inet:localhost:8893<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u0441 postfix \u043e\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 \u0441\u043e\u043a\u0435\u0442 inet:localhost:8893.<\/p>\n<h3>DNS-\u0437\u0430\u043f\u0438\u0441\u044c TXT<\/h3>\n<pre><code>drill -Q _dmarc.kostovsky.me TXT<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0432\u043e\u0434:<\/p>\n<pre><code>\"v=DMARC1; p=quarantine; rua=mailto:postmaster@kostovsky.me; ruf=mailto:forensic@kostovsky.me; adkim=s; aspf=s; fo=1; pct=25\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u0421\u0435\u0440\u0432\u0438\u0441<\/h3>\n<pre><code>systemctl enable --now opendmarc.service<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/h3>\n<ul>\n<li>\n<p><a href=\"https:\/\/mxtoolbox.com\/DMARC.aspx\" rel=\"noopener noreferrer nofollow\">https:\/\/mxtoolbox.com\/DMARC.aspx<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/dmarcian.com\/dmarc-inspector\/\" rel=\"noopener noreferrer nofollow\">https:\/\/dmarcian.com\/dmarc-inspector\/<\/a> &#8212; see my <a href=\"https:\/\/dmarcian.com\/dmarc-inspector\/?domain=kostovsky.me\" rel=\"noopener noreferrer nofollow\">test report<\/a><\/p>\n<\/li>\n<\/ul>\n<h3>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Thunderbird<\/h3>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0432\u0435\u0441\u044c \u0433\u0443\u0439 \u0432\u0435\u0437\u0434\u0435 \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u043e\u0448\u0443 \u0438\u0437\u0432\u0438\u043d\u0438\u0442\u044c.<\/p>\n<h4>Outgoing server<\/h4>\n<p>\u201cAccount Settings\u201d-&gt;\u201cEdit outgoing server\u2026\u201d<\/p>\n<ul>\n<li>\n<p>Server Name: kostovsky.me<\/p>\n<\/li>\n<li>\n<p>Port: 587<\/p>\n<\/li>\n<li>\n<p>Connection security: STARTTLS<\/p>\n<\/li>\n<li>\n<p>Authentication method: Normal password<\/p>\n<\/li>\n<li>\n<p>User Name: nikita<\/p>\n<\/li>\n<\/ul>\n<h4>Incoming server<\/h4>\n<p>\u201cServer settings\u201d section<\/p>\n<ul>\n<li>\n<p>Server Type: IMAP Mail Server<\/p>\n<\/li>\n<li>\n<p>Server Name: kostovsky.me<\/p>\n<\/li>\n<li>\n<p>Port: 993<\/p>\n<\/li>\n<li>\n<p>User Name: nikita<\/p>\n<\/li>\n<li>\n<p>Connection security: SSL\/TLS<\/p>\n<\/li>\n<li>\n<p>Authentication method: Normal password<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u043e\u0442, \u0432\u0440\u043e\u0434\u0435 \u0431\u044b, \u0432\u0441\u0451 \u0438 \u0433\u043e\u0442\u043e\u0432\u043e, \u043d\u043e, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0431\u0435\u0437 \u0440\u0435\u0437\u043a\u0438\u0445 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0439. \u0428\u0443\u0440\u0443\u0439\u0442\u0435 \u043d\u0430 <a href=\"https:\/\/www.mail-tester.com\/\" rel=\"noopener noreferrer nofollow\">mail-tester<\/a> \u0438\u043b\u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u0438 \u0434\u043e\u0431\u0438\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u0432\u0441\u0435\u0445 (\u0437\u043d\u0430\u0447\u0438\u043c\u044b\u0445, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043f\u0438\u0441\u044c\u043c\u0430 \u043d\u0435 \u0432 \u0441\u0447\u0451\u0442) \u0437\u0435\u043b\u0451\u043d\u044b\u0445 \u0433\u0430\u043b\u043e\u0447\u0435\u043a \u0438\u0437 \u0432\u0441\u0435\u0445, \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0451 \u043f\u0435\u0440\u0432\u043e\u0435 \u043f\u0438\u0441\u044c\u043c\u043e \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u0430\u0434\u0440\u0435\u0441.<\/p>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1070196\/\">https:\/\/habr.com\/ru\/articles\/1070196\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043f\u043e\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u0434\u043b\u044f \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u043e\u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0431\u0435\u0437 \u0432\u0435\u0431-\u043c\u043e\u0440\u0434, docker-\u043e\u0432, \u0442\u0435\u043b\u0435\u0433\u0440\u0430\u043c-\u043f\u043e\u043c\u043e\u0435\u043a \u0438 LLM-\u0432\u044b\u0441\u0435\u0440\u043e\u0432.\u0416\u0430\u043b\u043a\u0438\u0435 \u043e\u0442\u043f^W^W \u0414\u0438\u0441\u043a\u043b\u0435\u0439\u043c\u0435\u0440: \u044f &#8212; \u0430\u0434\u043c\u0438\u043d \u043b\u043e\u043a\u0430\u043b\u0445\u043e\u0441\u0442\u0430. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u043e\u043b\u043d\u043e \u0430\u043d\u0433\u043b\u0438\u0446\u0438\u0437\u043c\u043e\u0432 \u0438 \u043d\u0435\u0434\u043e\u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0445 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u0432.\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442? \u0413\u0434\u0435 \u044f? \u041f\u043e\u043c\u043e\u0433\u0438\u0442\u0435!\u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u2014 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043c\u043e\u0435\u0433\u043e \u0436\u0435 \u043f\u043e\u0441\u0442\u0430, \u043f\u043e \u0441\u0443\u0442\u0438 \u043a\u043e\u043f\u0438\u0438 \u0432\u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0433\u043e \u043f\u043e\u0441\u0442\u0430 \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u0431\u043b\u043e\u0433\u0435 (\u0430\u0440\u0445\u0438\u0432\u043d\u0430\u044f \u043a\u043e\u043f\u0438\u044f) (\u0434\u0430\u043b\u0435\u0435 \u2014 \u00ab\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0433\u0430\u0439\u0434\u00bb), \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043d\u0435 \u0432 \u0441\u0432\u043e\u0451 \u0432\u0440\u0435\u043c\u044f \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0432\u0435\u0437\u043b\u043e \u043d\u0430\u0442\u043a\u043d\u0443\u0442\u044c\u0441\u044f.\u0411\u0443\u0434\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u041e\u0421 \u0431\u044b\u043b\u0430 \u0441\u0432\u043e\u044f \u043f\u043e\u0447\u0442\u0430, \u0430 \u043f\u0438\u0441\u044c\u043c\u0430 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0441\u044c \u0432 ~\/Maildir.\u0418\u043d\u0434\u0438\u0433\u0440\u0438\u0435\u043d\u0442\u044b \u00a9\u041f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u043d\u0430\u043c, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0430 arch linux \u0441 \u0431\u0435\u043b\u044b\u043c IP, \u0434\u043e\u043c\u0435\u043d\u043d\u043e\u0435 \u0438\u043c\u044f, \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0438, \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e, reverse DNS.\u0421\u0435\u0440\u0432\u0435\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 arch, \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430\u0445 \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e.Reverse DNS \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043c, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e IP-\u0430\u0434\u0440\u0435\u0441\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u043c\u0435\u043d\u043d\u043e\u0435 \u0438\u043c\u044f, \u043d\u0430 \u044d\u0442\u043e\u0442 \u0430\u0434\u0440\u0435\u0441 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0435\u0435, \u0430 \u043d\u0443\u0436\u0435\u043d \u043e\u043d \u043d\u0430\u043c \u0437\u0430\u0442\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u0443 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u043d\u0430\u0448 \u0441\u0435\u0440\u0432\u0435\u0440, \u0431\u044b\u043b\u0430 yet another \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430, \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u044e\u0449\u0430\u044f \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0432 \u0441\u043f\u0430\u043c-\u043b\u0438\u0441\u0442\u044b.\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u043f\u043e \u0441\u0435\u0431\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u0438 \u0432 \u0441\u043f\u0430\u043c-\u043b\u0438\u0441\u0442\u044b \u043c\u043e\u0438 \u043f\u043e\u043b\u043d\u043e\u043c\u043e\u0447\u0438\u044f \u0432\u0441\u0451, \u043d\u043e \u0434\u043b\u044f \u0432\u044b\u0445\u043e\u0434\u0430 \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u043e\u0433\u043e, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043f\u0430\u0434\u0430\u043b \u044f, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u044b\u043b\u043e \u0442\u043a\u043d\u0443\u0442\u044c \u043c\u044b\u0448\u043a\u043e\u0439 \u043e\u0434\u043d\u0443 \u043a\u043d\u043e\u043f\u043a\u0443 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0441\u043f\u0430\u043c-\u043b\u0438\u0441\u0442\u0430.\u0412\u044b\u0447\u0438\u0442\u0430\u0442\u044c reverse DNS \u0434\u043b\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, 8.8.8.8 \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0442 \u0442\u0430\u043a (\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u043d\u043e \u043d\u0430 dns.google, \u0442\u043e\u0447\u043a\u0430 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043d\u0430\u0441 \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442):$ dig -x 8.8.8.8 | grep -vE &#171;^$|^;&#187;8.8.8.8.in-addr.arpa.75882INPTRdns.google.\u0412\u044b\u0441\u0442\u0430\u0432\u0438\u0442\u044c reverse DNS \u043c\u043e\u0436\u043d\u043e \u043b\u0438\u0431\u043e \u0432 \u0430\u0434\u043c\u0438\u043d\u043a\u0435 \u0432\u0430\u0448\u0435\u0433\u043e \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0433\u043e \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u0438\u043b\u0438 \u0445\u043e\u0441\u0442\u0435\u0440\u0430, \u043b\u0438\u0431\u043e, \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u043b \u044f, \u043d\u0430\u043f\u0438\u0441\u0430\u0432 e-mail \u0432 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u0438 \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u0432 \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0443\u0436\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 reverse DNS \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0433\u043e IP-\u0430\u0434\u0440\u0435\u0441\u0430. \u0418\u0427\u0421\u0425, \u043c\u043d\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u044d\u0442\u043e \u0437\u0430 15 \u043c\u0438\u043d\u0443\u0442 \u0431\u0435\u0437 \u043b\u0438\u0448\u043d\u0438\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432, \u044f \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u0434\u0438\u0432\u0438\u043b\u0441\u044f.\u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0433\u0430\u0439\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 self-signed \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442, \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e let\u2019s encrypt, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u043d\u0435 \u0434\u0430\u0436\u0435 \u0434\u0443\u043c\u0430\u0442\u044c \u043b\u0435\u043d\u044c \u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0445, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u043d\u044b\u043c\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043c\u0438. \u041a\u043e\u0433\u0434\u0430-\u043d\u0438\u0431\u0443\u0434\u044c, \u0434\u0443\u043c\u0430\u044e, \u043f\u043e\u0434\u0443\u043c\u0430\u044e \u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0445 \u0441 let\u2019s encrypt, \u043d\u043e \u041b\u0435\u043e\u043d\u0438\u0434 \u041a\u0430\u043d\u0435\u0432\u0441\u043a\u0438\u0439.\u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0438\u0441\u044c\u043c\u0430 \u0441\u043e \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u043e\u0447\u0442\u043e\u0432\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u043f\u0440\u044f\u043c\u043e \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0432\u043e\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441 \u043c\u044b\u0441\u043b\u044c\u044e \u00ab\u044f, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0433\u0430\u0439\u0434 \u043d\u0435 \u0434\u043e\u0447\u0438\u0442\u0430\u043b, \u043d\u043e \u0430 \u0432\u0434\u0440\u0443\u0433 \u043e\u043d\u043e \u0443\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u00bb, \u043f\u043e\u0442\u0440\u0435\u043d\u0438\u0440\u0443\u0439\u0442\u0435\u0441\u044c \u043d\u0430 \u043a\u043e\u0448\u043a\u0430\u0445, \u0438\u043d\u0430\u0447\u0435 \u0435\u0441\u0442\u044c \u0440\u0438\u0441\u043a \u0437\u0430\u0433\u0440\u0435\u043c\u0435\u0442\u044c \u0432 \u0441\u043f\u0430\u043c-\u043b\u0438\u0441\u0442\u044b.\u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u0443 \u0432\u0430\u0441 \u0432\u0441\u0451 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0438\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432, \u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0431\u0435\u043a\u0430\u043f\u044b. \u041f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, dovecot \u043d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u0441\u043b\u043e\u043c\u0430\u043b \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043f\u043e\u0434 \u0440\u0443\u043a\u043e\u0439 \u0435\u0441\u0442\u044c \u0431\u0435\u043a\u0430\u043f \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u043a\u0430\u0442\u0438\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044e postfix\/dovecot\/whatever \u0438\u0437 \/var\/cache\/pacman\/pkg\/, \u0430 \u0443\u0436\u0435 \u043f\u043e\u0442\u043e\u043c, \u0438\u043c\u0435\u044f \u0440\u0430\u0431\u043e\u0447\u0443\u044e \u043f\u043e\u0447\u0442\u0443, \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u0441\u043b\u043e\u043c\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u043e\u0444\u0442\u0430.\u041d\u0438\u0436\u0435, \u043a\u0430\u043a \u0438 \u0432 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u043c \u0433\u0430\u0439\u0434\u0435, \u043f\u043e\u0439\u0434\u0443\u0442 \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u044b\u0435 \u0433\u043b\u0430\u0432\u044b \u0441 \u043f\u043e\u0434\u0433\u043b\u0430\u0432\u0430\u043c\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u2014 \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0438\u043c\u044b\u0435 \u0447\u0430\u0441\u0442\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432, \u0438 \u0438\u0445, \u043a\u043e\u043c\u0430\u043d\u0434, \u0432\u044b\u0432\u043e\u0434. \u0412 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u043c \u0433\u0430\u0439\u0434\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f \u043f\u043e \u0441\u0443\u0442\u0438 \u0441\u043b\u044f\u043c\u0437\u0438\u043b, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u043f\u043e\u044f\u0441\u043d\u044f\u044e\u0449\u0438\u0445 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432. \u0422\u0443\u0434\u0430 \u044f \u0432\u0430\u0441 \u0437\u0430 \u043d\u0438\u043c\u0438 \u0438 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u044e, \u0430 \u0437\u0434\u0435\u0441\u044c \u0431\u0443\u0434\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0443\u043c, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.\u0427\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043e \u0432\u0441\u0435\u043c \u043d\u0438\u0436\u0435\u0438\u0437\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c? \u0412 \u043a\u0430\u0436\u0434\u043e\u0439 \u0433\u043b\u0430\u0432\u0435 \u043d\u0430\u043a\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u0441\u043e\u0444\u0442, \u043f\u043e\u0442\u043e\u043c grep-\u0430\u0442\u044c \u043f\u043e \/etc\/&lt;tool-name&gt;, \u0432 \u043a\u0430\u043a\u0438\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0430\u0445 \u0443 \u0432\u0430\u0441 \u043b\u0435\u0436\u0438\u0442 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435\u0435, \u0438 \u0434\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u044d\u0442\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0438 \u0434\u043e \u043d\u0443\u0436\u043d\u043e\u0439 \u043a\u043e\u043d\u0434\u0438\u0446\u0438\u0438.\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b$ pacman -S certbot$ certbot -d mydomain.name \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u044d\u0442\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043d\u0435\u0442 \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 \u0432\u0438\u043a\u0438: https:\/\/wiki.archlinux.org\/title\/CertbotDovecothttps:\/\/wiki.archlinux.org\/title\/Dovecot\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430pacman -S dovecot\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0422\u0438\u043f \u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0447\u0442\u044b, \u00ab\u043f\u0430\u043f\u043a\u0438\u00bbdoveconf -n mail_path mail_driver namespace inbox\u0412\u044b\u0432\u043e\u0434:mail_path = ~\/Maildirmail_driver = maildirnamespace inbox {  inbox = yes  separator = \/  mailbox Drafts {    special_use = &#171;\\\\Drafts&#187;  }  mailbox Junk {    special_use = &#171;\\\\Junk&#187;  }  mailbox Trash {    special_use = &#171;\\\\Trash&#187;  }  mailbox Sent {    special_use = &#171;\\\\Sent&#187;  }  mailbox &#171;Sent Messages&#187; {    special_use = &#171;\\\\Sent&#187;  }}\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u044e\u0437\u0435\u0440\u0430 dovecot \u0432 \u0433\u0440\u0443\u043f\u043f\u0443 mailusermod -aG mail dovecotid dovecot\u0412\u044b\u0432\u043e\u0434:uid=76(dovecot) gid=76(dovecot) groups=76(dovecot),12(mail)SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044bSSLdoveconf ssl ssl_server_cert_file ssl_server_key_file ssl_server_dh_file\u0412\u044b\u0432\u043e\u0434:ssl = yesssl_server_cert_file = \/etc\/letsencrypt\/live\/kostovsky.me\/fullchain.pemssl_server_key_file = \/etc\/letsencrypt\/live\/kostovsky.me\/privkey.pemssl_server_dh_file = \/etc\/dovecot\/dh.pem\u0410\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044fdoveconf -n userdb passdb\u0412\u044b\u0432\u043e\u0434 (\u0438\u043c\u0435\u043d\u0430 \u0441\u0435\u043a\u0446\u0438\u0439 \u0437\u0434\u0435\u0441\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u044b \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e: \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 dovecot \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b \u0438\u0445, \u0438\u043c\u0435\u043d\u0430, \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c, \u044f \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043b):userdb fuck_dovecot {  driver = passwd}passdb fuck_dovecot {  driver = pam}cat \/etc\/pam.d\/dovecot\u0412\u044b\u0432\u043e\u0434:#%PAM-1.0auth include system-authaccount include system-authsession include system-authpassword include system-auth\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u044e\u0437\u0435\u0440\u0430\u0415\u0441\u043b\u0438 \u0432\u0434\u0440\u0443\u0433 \u0443 \u0432\u0430\u0441 \u0435\u0433\u043e \u0435\u0449\u0451 \u043d\u0435\u0442. \u0415\u0433\u043e \u043b\u043e\u0433\u0438\u043d \u0438 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043f\u043e\u0447\u0442\u043e\u0432\u043e\u043c \u0430\u0434\u0440\u0435\u0441\u0435. \u0423 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u00ab\u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e\u00bb \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u0432\u043e\u0439 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u044f\u0449\u0438\u043a, \u0430 \u0434\u043b\u044f \u043b\u043e\u0433\u0438\u043d\u0430 \u0432 \u043f\u043e\u0447\u0442\u0443 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0430\u0440\u043e\u043b\u044c \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u041e\u0421.useradd nikita -mpasswd nikita\u0412\u0435\u0441\u044c \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0421\u043f\u0440\u044f\u0442\u0430\u043b \u043f\u043e\u0434 \u0441\u043f\u043e\u0439\u043b\u0435\u0440doveconf -nOutput:## 2.4.4 (8b687aa65c): \/etc\/dovecot\/dovecot.conf## OS: Linux 7.1.5-arch1-2 x86_64  ## Hostname: home## 29 default setting changes since version 2.4.1dovecot_config_version = 2.4.1auth_mechanisms = plaindovecot_storage_version = 2.4.1mail_driver = maildirmail_path = ~\/Maildirprotocols {  imap = yes  lmtp = yes}passdb fuck_dovecot {  driver = pam}userdb fuck_dovecot {  driver = passwd}service director {  listen = * ::  unix_listener login\/director {  }  fifo_listener login\/proxy-notify {  }  unix_listener director-userdb {  }}service imap-login {  inet_listener imap {  }  inet_listener imaps {  }}service pop3-login {  inet_listener pop3 {  }  inet_listener pop3s {  }}service submission-login {  inet_listener submission {  }  inet_listener submissions {  }}namespace inbox {  inbox = yes  separator = \/  mailbox Drafts {    special_use = &#171;\\\\Drafts&#187;  }  mailbox Junk {    special_use = &#171;\\\\Junk&#187;  }  mailbox Trash {    special_use = &#171;\\\\Trash&#187;  }  mailbox Sent {    special_use = &#171;\\\\Sent&#187;  }  mailbox &#171;Sent Messages&#187; {    special_use = &#171;\\\\Sent&#187;  }}service lmtp {  unix_listener lmtp {  }}service imap {}service pop3 {}service submission {}service auth {  unix_listener \/var\/spool\/postfix\/private\/auth {    group = postfix    mode = 0666    user = postfix  }}service auth-worker {}service dict {  unix_listener dict {  }}ssl_server {  cert_file = \/etc\/letsencrypt\/live\/kostovsky.me\/fullchain.pem  dh_file = \/etc\/dovecot\/dh.pem  key_file = \/etc\/letsencrypt\/live\/kostovsky.me\/privkey.pem}\u0421\u0435\u0440\u0432\u0438\u0441systemctl enable &#8212;now dovecot.service\u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 ufw, \u0437\u0430\u0433\u043b\u044f\u043d\u0438\u0442\u0435 \u0432 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0433\u0430\u0439\u0434, \u0442\u0430\u043c \u0435\u0441\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438.\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044fhttps:\/\/www.dotcom-tools.com\/email-server-testPostfixhttps:\/\/wiki.archlinux.org\/title\/Postfix\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430pacman -S postfix\u041a\u0430\u0442\u0430\u043b\u043e\u0433\u0438postconf -n | grep -E &#171;directory\\s&#187;\u0412\u044b\u0432\u043e\u0434:command_directory = \/usr\/bindaemon_directory = \/usr\/lib\/postfix\/bindata_directory = \/var\/lib\/postfixhtml_directory = nomanpage_directory = \/usr\/share\/manmeta_directory = \/etc\/postfixqueue_directory = \/var\/spool\/postfixreadme_directory = \/usr\/share\/doc\/postfixsample_directory = \/etc\/postfixshlib_directory = \/usr\/lib\/postfix\u0414\u043e\u043c\u0435\u043dpostconf -n | grep ^myOutput:mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, mail.$mydomainmydomain = kostovsky.memyhostname = kostovsky.memyorigin = $mydomainAliasespostconf -n | grep -E &#171;^alias|newaliases&#187;\u0412\u044b\u0432\u043e\u0434:alias_database = $alias_mapsalias_maps = lmdb:\/etc\/postfix\/aliasesnewaliases_path = \/usr\/bin\/newaliasesCatch-all email\u00ab\u0412\u0441\u0435\u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0439\u00bb(?) \u0430\u0434\u0440\u0435\u0441. \u0417\u0434\u0435\u0441\u044c \u0430\u0432\u0442\u043e\u0440 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0433\u0430\u0439\u0434\u0430 \u0443\u043a\u0430\u0437\u0430\u043b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043f\u043e\u0447\u0442\u0443 (\u0432 \u0441\u043c\u044b\u0441\u043b\u0435 \u0441\u043f\u0430\u043c), \u0430\u0434\u0440\u0435\u0441\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043d\u0435\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c. \u0423 \u043c\u0435\u043d\u044f \u0437\u0434\u0435\u0441\u044c \u043f\u0443\u0441\u0442\u043e.postconf -n luser_relay local_recipient_mapsOutput:local_recipient_maps =\u0428\u0438\u0444\u0440\u0443\u0435\u043c\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e TLS\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0447\u0442\u044b:postconf -n | grep smtpd_ | grep tls\u0412\u044b\u0432\u043e\u0434:smtpd_sasl_tls_security_options = noanonymoussmtpd_tls_auth_only = yessmtpd_tls_cert_file = \/etc\/letsencrypt\/live\/kostovsky.me\/fullchain.pemsmtpd_tls_key_file = \/etc\/letsencrypt\/live\/kostovsky.me\/privkey.pemsmtpd_use_tls = yes\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u043f\u043e\u0447\u0442\u044b:postconf -n | grep smtp_ | grep tls\u0412\u044b\u0432\u043e\u0434:smtp_tls_security_level = may\u0410\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f\/\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f\u041a\u043e\u043d\u0444\u0438\u0433 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 postfix:postconf -n | grep ^smtpd_sasl\u0412\u044b\u0432\u043e\u0434:smtpd_sasl_auth_enable = yessmtpd_sasl_local_domain = $mydomainsmtpd_sasl_path = private\/authsmtpd_sasl_security_options = noanonymous, noplaintextsmtpd_sasl_tls_security_options = noanonymoussmtpd_sasl_type = dovecot\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0435\u0439 dovecotdoveconf -n service\/auth\u0412\u044b\u0432\u043e\u0434:service auth {  unix_listener \/var\/spool\/postfix\/private\/auth {    group = postfix    mode = 0666    user = postfix  }}Relay (\u0448\u043b\u044e\u0437?) \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044fpostconf -n | grep -E &#171;helo|relay&#187;\u0412\u044b\u0432\u043e\u0434:smtpd_helo_required = yessmtpd_helo_restrictions = reject_invalid_helo_hostname, reject_non_fqdn_helo_hostnamesmtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destinationMail submission\u042f \u043d\u0435 \u0437\u043d\u0430\u044e, \u043a\u0430\u043a \u0438 \u0435\u0441\u0442\u044c \u043b\u0438 \u0441\u043c\u044b\u0441\u043b \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043b\u043e\u0432\u043e\u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f, \u043d\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u201cmail submission\u201d \u043d\u0435 \u0442\u0430\u043a \u0443\u0436 \u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.postconf -M submission\u0412\u044b\u0432\u043e\u0434:submission inet  n       &#8212;       n       &#8212;       &#8212;       smtpd -o syslog_name=postfix\/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_tls_auth_only=yes -o smtpd_reject_unlisted_recipient=no -o smtpd_relay_restrictions= -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATINGDNS-\u0437\u0430\u043f\u0438\u0441\u044c TXTdrill -Q kostovsky.me TXTdrill -Q smtp.kostovsky.me TXT\u0412\u044b\u0432\u043e\u0434:&#187;v=spf1 a mx ip4:195.234.21.24 ~all&#187;&#187;v=spf1 a mx ip4:195.234.21.24 ~all&#187;\u0417\u0430\u043f\u0438\u0441\u044c reverse DNSdrill -Q 195.234.21.24 -x\u0412\u044b\u0432\u043e\u0434:kostovsky.me.\u0412\u0435\u0441\u044c \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0421\u043f\u0440\u044f\u0442\u0430\u043b \u043f\u043e\u0434 \u0441\u043f\u043e\u0439\u043b\u0435\u0440postconf -n\u0412\u044b\u0432\u043e\u0434:alias_database = $alias_mapsalias_maps = lmdb:\/etc\/postfix\/aliasescommand_directory = \/usr\/bincompatibility_level = 3.11daemon_directory =&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-490848","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/490848","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=490848"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/490848\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=490848"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=490848"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=490848"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}