{"id":367,"date":"2022-01-26T17:01:57","date_gmt":"2022-01-26T15:01:57","guid":{"rendered":"https:\/\/greenhouse.cv.ua\/?p=367"},"modified":"2022-02-15T12:42:26","modified_gmt":"2022-02-15T10:42:26","slug":"how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy","status":"publish","type":"post","link":"https:\/\/greenhouse.cv.ua\/?p=367","title":{"rendered":"How To Install and Configure DKIM with Postfix on Debian"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy\" target=\"_blank\" rel=\"noreferrer noopener\">\u041f\u0435\u0440\u0432\u043e\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a https:\/\/www.digitalocean.com<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.digitalocean.com\/community\/tags\/security\">Security<\/a><a href=\"https:\/\/www.digitalocean.com\/community\/tags\/debian\">Debian<\/a><a href=\"https:\/\/www.digitalocean.com\/community\/tags\/email\">Email<\/a><a href=\"https:\/\/www.digitalocean.com\/community\/tags\/dns\">DNS<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>By&nbsp;Popute Sebastian ArminPublished onFebruary 28, 2014&nbsp;624.2kviews<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"introduction\">Introduction<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The frustration of getting falsely flagged as a spammer is not strange to most of the mail server admins. By excluding the possibility of a compromised server, a false flag is usually caused by one of the following:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>the server is an open mail relay<\/li><li>the sender\u2019s or server\u2019s IP address is blacklisted<\/li><li>the server does not have a Fully Qualified Domain Name (<a href=\"http:\/\/en.wikipedia.org\/wiki\/Fully_qualified_domain_name\">FQDN<\/a>) and a PTR record<\/li><li>the Sender Policy Framework (<a href=\"http:\/\/www.openspf.org\/\">SPF<\/a>) DNS record is missing or it is misconfigured<\/li><li>the DomainKeys Identified Mail (<a href=\"http:\/\/www.dkim.org\/\">DKIM<\/a>) implementation is missing or it\u2019s not properly set up<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">These are some of the basic properties that are being checked by the majority of proprietary and open source spam filters (including SpamAssassin). Passing these tests is extremely important for a well configured mail server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This tutorial will focus on installing and configuring&nbsp;<a href=\"http:\/\/www.opendkim.org\/\">OpenDKIM<\/a>]: an open source implementation of the DKIM sender authentication system.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It is assumed that the reader knows how to access the server over SSH, Postfix and Dovecot is already installed and configured (<a href=\"https:\/\/www.digitalocean.com\/community\/articles\/how-to-set-up-a-postfix-e-mail-server-with-dovecot\">tutorial<\/a>), the host name and the FQDN are set up (<a href=\"https:\/\/github.com\/DigitalOcean-User-Projects\/Articles-and-Tutorials\/blob\/master\/set_hostname_fqdn_on_ubuntu_centos.md\">tutorial<\/a>,&nbsp;<a href=\"https:\/\/www.digitalocean.com\/community\/articles\/how-to-set-up-a-host-name-with-digitalocean\">tutorial<\/a>) and the SPF record is in place (<a href=\"https:\/\/www.digitalocean.com\/community\/articles\/how-to-use-an-spf-record-to-prevent-spoofing-improve-e-mail-reliability\">tutorial<\/a>).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"about-dkim\">About DKIM<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">DKIM is an Internet Standard that enables a person or organisation to associate a domain name with an email message. This, in effect, serves as a method of claiming responsibility for a message. At its core, DKIM is powered by asymmetric cryptography. The sender\u2019s Mail Transfer Agent (MTA) signs every outgoing message with a private key. The recipient retrieves the public key from the sender\u2019s DNS records and verifies if the message body and some of the header fields were not altered since the message signing took place.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"install-opendkim\">Install OpenDKIM<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before starting the installation, a system update is recommended:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get update\nsudo apt-get dist-upgrade\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Install OpenDKIM and it\u2019s dependencies:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get install opendkim opendkim-tools\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Additional packages will be listed as dependencies, type&nbsp;<code>yes<\/code>&nbsp;and press&nbsp;<code>Enter<\/code>&nbsp;to continue.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"configure-opendkim\">Configure OpenDKIM<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A couple of files must be created and edited in order to configure OpenDKIM.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Important: replace every instance of example.com with your own domain in all commands and configuration files. Don\u2019t forget to save your files after editing.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let\u2019s start with the main configuration file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/opendkim.conf\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Append the following lines to the end of the conf file (each parameter is explained below). Optionally, you can choose a custom port number for the&nbsp;<code>Socket<\/code>. Make sure that it\u2019s not used by a different application.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>AutoRestart             Yes\nAutoRestartRate         10\/1h\nUMask                   002\nSyslog                  yes\nSyslogSuccess           Yes\nLogWhy                  Yes\n\nCanonicalization        relaxed\/simple\n\nExternalIgnoreList      refile:\/etc\/opendkim\/TrustedHosts\nInternalHosts           refile:\/etc\/opendkim\/TrustedHosts\nKeyTable                refile:\/etc\/opendkim\/KeyTable\nSigningTable            refile:\/etc\/opendkim\/SigningTable\n\nMode                    sv\nPidFile                 \/var\/run\/opendkim\/opendkim.pid\nSignatureAlgorithm      rsa-sha256\n\nUserID                  opendkim:opendkim\n\nSocket                  inet:12301@localhost\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>AutoRestart<\/strong>: auto restart the filter on failures<\/li><li><strong>AutoRestartRate<\/strong>: specifies the filter\u2019s maximum restart rate, if restarts begin to happen faster than this rate, the filter will terminate;&nbsp;<code>10\/1h<\/code>&nbsp;&#8211; 10 restarts\/hour are allowed at most<\/li><li><strong>UMask<\/strong>: gives all access permissions to the user group defined by&nbsp;<code>UserID<\/code>&nbsp;and allows other users to read and execute files, in this case it will allow the creation and modification of a Pid file.<\/li><li><strong>Syslog<\/strong>,&nbsp;<strong>SyslogSuccess<\/strong>, *<em>LogWhy<\/em>: these parameters enable detailed logging via calls to syslog<\/li><li><strong>Canonicalization<\/strong>: defines the canonicalization methods used at message signing, the&nbsp;<code>simple<\/code>&nbsp;method allows almost no modification while the&nbsp;<code>relaxed<\/code>&nbsp;one tolerates minor changes such as<br>whitespace replacement;&nbsp;<code>relaxed\/simple<\/code>&nbsp;&#8211; the message header will be processed with the&nbsp;<code>relaxed<\/code>&nbsp;algorithm and the body with the&nbsp;<code>simple<\/code>&nbsp;one<\/li><li><strong>ExternalIgnoreList<\/strong>: specifies the external hosts that can send mail through the server as one of the signing domains without credentials<\/li><li><strong>InternalHosts<\/strong>: defines a list of internal hosts whose mail should not be verified but signed instead<\/li><li><strong>KeyTable<\/strong>: maps key names to signing keys<\/li><li><strong>SigningTable<\/strong>: lists the signatures to apply to a message based on the address found in the&nbsp;<code>From:<\/code>&nbsp;header field<\/li><li><strong>Mode<\/strong>: declares operating modes; in this case the milter acts as a signer (<code>s<\/code>) and a verifier (<code>v<\/code>)<\/li><li><strong>PidFile<\/strong>: the path to the Pid file which contains the process identification number<\/li><li><strong>SignatureAlgorithm<\/strong>: selects the signing algorithm to use when creating signatures<\/li><li><strong>UserID<\/strong>: the opendkim process runs under this user and group<\/li><li><strong>Socket<\/strong>: the milter will listen on the socket specified here, Posfix will send messages to opendkim for signing and verification through this socket;&nbsp;<code>12301@localhost<\/code>&nbsp;defines a TCP socket that listens on&nbsp;<code>localhost<\/code>, port&nbsp;<code>12301<\/code><\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This simple configuration is meant to allow message signing for one or more domains, to learn about other options please go&nbsp;<a href=\"http:\/\/www.opendkim.org\/opendkim.conf.5.html\">here<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Connect the milter to Postfix:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/default\/opendkim\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Add the following line, edit the port number only if a custom one is used:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SOCKET=\"inet:12301@localhost\"\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Configure postfix to use this milter:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/postfix\/main.cf\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Make sure that these two lines are present in the Postfix config file and are not commented out:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>milter_protocol = 2\nmilter_default_action = accept\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">It is likely that a filter (SpamAssasin, Clamav etc.) is already used by Postfix; if the following parameters are present, just append the opendkim milter to them (milters are separated by a comma), the port number should be the same as in&nbsp;<code>opendkim.conf<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>smtpd_milters = unix:\/spamass\/spamass.sock, inet:localhost:12301\nnon_smtpd_milters = unix:\/spamass\/spamass.sock, inet:localhost:12301\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If the parameters are missing, define them as follows:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>smtpd_milters = inet:localhost:12301\nnon_smtpd_milters = inet:localhost:12301\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Create a directory structure that will hold the trusted hosts, key tables, signing tables and crypto keys:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mkdir \/etc\/opendkim\nsudo mkdir \/etc\/opendkim\/keys\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Specify trusted hosts:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/opendkim\/TrustedHosts\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">We will use this file to define both&nbsp;<code>ExternalIgnoreList<\/code>&nbsp;and&nbsp;<code>InternalHosts<\/code>, messages originating from these hosts, domains and IP addresses will be trusted and signed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Because our main configuration file declares&nbsp;<code>TrustedHosts<\/code>&nbsp;as a regular expression file (<code>refile<\/code>), we can use wildcard patters,&nbsp;<code>*.example.com<\/code>&nbsp;means that messages coming from example.com\u2019s subdomains will be trusted too, not just the ones sent from the root domain.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Customize and add the following lines to the newly created file. Multiple domains can be specified, do not edit the first three lines:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>127.0.0.1\nlocalhost\n192.168.0.1\/24\n\n*.example.com\n\n#*.example.net\n#*.example.org\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Create a key table:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/opendkim\/KeyTable\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">A key table contains each selector\/domain pair and the path to their private key. Any alphanumeric string can be used as a selector, in this example&nbsp;<code>mail<\/code>&nbsp;is used and it\u2019s not necessary to change it.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mail._domainkey.example.com example.com:mail:\/etc\/opendkim\/keys\/example.com\/mail.private\n\n#mail._domainkey.example.net example.net:mail:\/etc\/opendkim\/keys\/example.net\/mail.private\n#mail._domainkey.example.org example.org:mail:\/etc\/opendkim\/keys\/example.org\/mail.private\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Create a signing table:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/opendkim\/SigningTable\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This file is used for declaring the domains\/email addresses and their selectors.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>*@example.com mail._domainkey.example.com\n\n#*@example.net mail._domainkey.example.net\n#*@example.org mail._domainkey.example.org\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"generate-the-public-and-private-keys\">Generate the public and private keys<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Change to the keys directory:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/etc\/opendkim\/keys\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Create a separate folder for the domain to hold the keys:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mkdir example.com\ncd example.com\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Generate the keys:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo opendkim-genkey -s mail -d example.com\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>-s<\/code>&nbsp;specifies the selector and&nbsp;<code>-d<\/code>&nbsp;the domain, this command will create two files,&nbsp;<code>mail.private<\/code>&nbsp;is our private key and&nbsp;<code>mail.txt<\/code>&nbsp;contains the public key.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Change the owner of the private key to&nbsp;<code>opendkim<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo chown opendkim:opendkim mail.private\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"add-the-public-key-to-the-domain-39-s-dns-records\">Add the public key to the domain\u2019s DNS records<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Open&nbsp;<code>mail.txt<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano -$ mail.txt\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The public key is defined under the&nbsp;<code>p<\/code>&nbsp;parameter. Do not use the example key below, it\u2019s only an illustration and will not work on your server.<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>mail._domainkey IN TXT \"v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5N3lnvvrYgPCRSoqn+awTpE+iGYcKBPpo8HHbcFfCIIV1\n0Hwo4PhCoGZSaKVHOjDm4yefKXhQjM7iKzEPuBatE7O47hAx1CJpNuIdLxhILSbEmbMxJrJAG0HZVn8z6EAoOH\nZNaPHmK2h4UUrjOG8zA5BHfzJf7tGwI+K619fFUwIDAQAB\" ; ----- DKIM \nkey mail for example.com\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Copy that key and add a TXT record to your domain\u2019s DNS entries:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Name: mail._domainkey.example.com.\n\nText: \"v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5N3lnvvrYgPCRSoqn+awTpE+\niGYcKBPpo8HHbcFfCIIV10Hwo4PhCoGZSaKVHOjDm4yefKXhQjM7iKzEPuBatE7O47hAx1CJpNuIdLxhILSbEmb\nMxJrJAG0HZVn8z6EAoOHZNaPHmK2h4UUrjOG8zA5BHfzJf7tGwI+K619fFUwIDAQAB\"\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041f\u0435\u0440\u0432\u043e\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a https:\/\/www.digitalocean.com SecurityDebianEmailDNS By&nbsp;Popute Sebastian ArminPublished onFebruary 28, 2014&nbsp;624.2kviews Introduction The frustration of getting falsely flagged as a spammer is not strange to most of . . .<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[7,9,3],"tags":[],"class_list":["post-367","post","type-post","status-publish","format-standard","hentry","category-linux","category-comunications","category-3"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0435\u0440\u0432\u043e\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a https:\/\/www.digitalocean.com SecurityDebianEmailDNS By Popute Sebastian ArminPublished onFebruary 28, 2014 624.2kviews Introduction The frustration of getting falsely flagged as a spammer is not strange to most of the mail server admins. By excluding the possibility of a compromised server, a false flag is usually caused by one of the following: the server is an open mail relaythe\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Bernyk Dmytro\"\/>\n\t<meta name=\"google-site-verification\" content=\"WWaetEUWLRU2jydwFnZj-zGdTpyEbfyHu0JsCf4I2p8\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/greenhouse.cv.ua\/?p=367\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"uk_UA\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Greenhouse - \u041c\u0456\u0439 \u0437\u0430\u0442\u0438\u0448\u043d\u0438\u0439 \u0437\u0435\u043b\u0435\u043d\u0438\u0439 \u0431\u0443\u0434\u0438\u043d\u043e\u043a\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"How To Install and Configure DKIM with Postfix on Debian - Greenhouse\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0435\u0440\u0432\u043e\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a https:\/\/www.digitalocean.com SecurityDebianEmailDNS By Popute Sebastian ArminPublished onFebruary 28, 2014 624.2kviews Introduction The frustration of getting falsely flagged as a spammer is not strange to most of the mail server admins. By excluding the possibility of a compromised server, a false flag is usually caused by one of the following: the server is an open mail relaythe\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/greenhouse.cv.ua\/?p=367\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2022-01-26T15:01:57+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-02-15T10:42:26+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"How To Install and Configure DKIM with Postfix on Debian - Greenhouse\" \/>\n\t\t<meta name=\"twitter:description\" content=\"\u041f\u0435\u0440\u0432\u043e\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a https:\/\/www.digitalocean.com SecurityDebianEmailDNS By Popute Sebastian ArminPublished onFebruary 28, 2014 624.2kviews Introduction The frustration of getting falsely flagged as a spammer is not strange to most of the mail server admins. By excluding the possibility of a compromised server, a false flag is usually caused by one of the following: the server is an open mail relaythe\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/greenhouse.cv.ua\\\/?p=367#blogposting\",\"name\":\"How To Install and Configure DKIM with Postfix on Debian - Greenhouse\",\"headline\":\"How To Install and Configure DKIM with Postfix on Debian\",\"author\":{\"@id\":\"https:\\\/\\\/greenhouse.cv.ua\\\/?author=2#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/greenhouse.cv.ua\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/greenhouse.cv.ua\\\/?p=367#articleImage\",\"url\":\"https:\\\/\\\/greenhouse.cv.ua\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/avatar_user_2_1612907072-96x96.gif\",\"width\":96,\"height\":96,\"caption\":\"Bernyk Dmytro\"},\"datePublished\":\"2022-01-26T17:01:57+02:00\",\"dateModified\":\"2022-02-15T12:42:26+02:00\",\"inLanguage\":\"uk\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/greenhouse.cv.ua\\\/?p=367#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/greenhouse.cv.ua\\\/?p=367#webpage\"},\"articleSection\":\"Linux, \\u0417\\u0432'\\u044f\\u0437\\u043e\\u043a, \\u0422\\u0435\\u043e\\u0440\\u0456\\u044f\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/greenhouse.cv.ua\\\/?p=367#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/greenhouse.cv.ua#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/greenhouse.cv.ua\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/greenhouse.cv.ua\\\/?cat=3#listItem\",\"name\":\"\\u0422\\u0435\\u043e\\u0440\\u0456\\u044f\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/greenhouse.cv.ua\\\/?cat=3#listItem\",\"position\":2,\"name\":\"\\u0422\\u0435\\u043e\\u0440\\u0456\\u044f\",\"item\":\"https:\\\/\\\/greenhouse.cv.ua\\\/?cat=3\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/greenhouse.cv.ua\\\/?p=367#listItem\",\"name\":\"How To Install and Configure DKIM with Postfix on Debian\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/greenhouse.cv.ua#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/greenhouse.cv.ua\\\/?p=367#listItem\",\"position\":3,\"name\":\"How To Install and Configure DKIM with Postfix on Debian\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/greenhouse.cv.ua\\\/?cat=3#listItem\",\"name\":\"\\u0422\\u0435\\u043e\\u0440\\u0456\\u044f\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/greenhouse.cv.ua\\\/#person\",\"name\":\"Bernyk Dmytro\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/greenhouse.cv.ua\\\/?p=367#personImage\",\"url\":\"https:\\\/\\\/greenhouse.cv.ua\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/avatar_user_2_1612907072-96x96.gif\",\"width\":96,\"height\":96,\"caption\":\"Bernyk Dmytro\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/greenhouse.cv.ua\\\/?author=2#author\",\"url\":\"https:\\\/\\\/greenhouse.cv.ua\\\/?author=2\",\"name\":\"Bernyk Dmytro\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/greenhouse.cv.ua\\\/?p=367#authorImage\",\"url\":\"https:\\\/\\\/greenhouse.cv.ua\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/avatar_user_2_1612907072-96x96.gif\",\"width\":96,\"height\":96,\"caption\":\"Bernyk Dmytro\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/greenhouse.cv.ua\\\/?p=367#webpage\",\"url\":\"https:\\\/\\\/greenhouse.cv.ua\\\/?p=367\",\"name\":\"How To Install and Configure DKIM with Postfix on Debian - Greenhouse\",\"description\":\"\\u041f\\u0435\\u0440\\u0432\\u043e\\u0438\\u0441\\u0442\\u043e\\u0447\\u043d\\u0438\\u043a https:\\\/\\\/www.digitalocean.com SecurityDebianEmailDNS By Popute Sebastian ArminPublished onFebruary 28, 2014 624.2kviews Introduction The frustration of getting falsely flagged as a spammer is not strange to most of the mail server admins. By excluding the possibility of a compromised server, a false flag is usually caused by one of the following: the server is an open mail relaythe\",\"inLanguage\":\"uk\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/greenhouse.cv.ua\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/greenhouse.cv.ua\\\/?p=367#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/greenhouse.cv.ua\\\/?author=2#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/greenhouse.cv.ua\\\/?author=2#author\"},\"datePublished\":\"2022-01-26T17:01:57+02:00\",\"dateModified\":\"2022-02-15T12:42:26+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/greenhouse.cv.ua\\\/#website\",\"url\":\"https:\\\/\\\/greenhouse.cv.ua\\\/\",\"name\":\"Greenhouse\",\"description\":\"\\u041c\\u0456\\u0439 \\u0437\\u0430\\u0442\\u0438\\u0448\\u043d\\u0438\\u0439 \\u0437\\u0435\\u043b\\u0435\\u043d\\u0438\\u0439 \\u0431\\u0443\\u0434\\u0438\\u043d\\u043e\\u043a\",\"inLanguage\":\"uk\",\"publisher\":{\"@id\":\"https:\\\/\\\/greenhouse.cv.ua\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"How To Install and Configure DKIM with Postfix on Debian - Greenhouse","description":"\u041f\u0435\u0440\u0432\u043e\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a https:\/\/www.digitalocean.com SecurityDebianEmailDNS By Popute Sebastian ArminPublished onFebruary 28, 2014 624.2kviews Introduction The frustration of getting falsely flagged as a spammer is not strange to most of the mail server admins. By excluding the possibility of a compromised server, a false flag is usually caused by one of the following: the server is an open mail relaythe","canonical_url":"https:\/\/greenhouse.cv.ua\/?p=367","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"WWaetEUWLRU2jydwFnZj-zGdTpyEbfyHu0JsCf4I2p8","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/greenhouse.cv.ua\/?p=367#blogposting","name":"How To Install and Configure DKIM with Postfix on Debian - Greenhouse","headline":"How To Install and Configure DKIM with Postfix on Debian","author":{"@id":"https:\/\/greenhouse.cv.ua\/?author=2#author"},"publisher":{"@id":"https:\/\/greenhouse.cv.ua\/#person"},"image":{"@type":"ImageObject","@id":"https:\/\/greenhouse.cv.ua\/?p=367#articleImage","url":"https:\/\/greenhouse.cv.ua\/wp-content\/uploads\/2021\/02\/avatar_user_2_1612907072-96x96.gif","width":96,"height":96,"caption":"Bernyk Dmytro"},"datePublished":"2022-01-26T17:01:57+02:00","dateModified":"2022-02-15T12:42:26+02:00","inLanguage":"uk","mainEntityOfPage":{"@id":"https:\/\/greenhouse.cv.ua\/?p=367#webpage"},"isPartOf":{"@id":"https:\/\/greenhouse.cv.ua\/?p=367#webpage"},"articleSection":"Linux, \u0417\u0432'\u044f\u0437\u043e\u043a, \u0422\u0435\u043e\u0440\u0456\u044f"},{"@type":"BreadcrumbList","@id":"https:\/\/greenhouse.cv.ua\/?p=367#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/greenhouse.cv.ua#listItem","position":1,"name":"Home","item":"https:\/\/greenhouse.cv.ua","nextItem":{"@type":"ListItem","@id":"https:\/\/greenhouse.cv.ua\/?cat=3#listItem","name":"\u0422\u0435\u043e\u0440\u0456\u044f"}},{"@type":"ListItem","@id":"https:\/\/greenhouse.cv.ua\/?cat=3#listItem","position":2,"name":"\u0422\u0435\u043e\u0440\u0456\u044f","item":"https:\/\/greenhouse.cv.ua\/?cat=3","nextItem":{"@type":"ListItem","@id":"https:\/\/greenhouse.cv.ua\/?p=367#listItem","name":"How To Install and Configure DKIM with Postfix on Debian"},"previousItem":{"@type":"ListItem","@id":"https:\/\/greenhouse.cv.ua#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/greenhouse.cv.ua\/?p=367#listItem","position":3,"name":"How To Install and Configure DKIM with Postfix on Debian","previousItem":{"@type":"ListItem","@id":"https:\/\/greenhouse.cv.ua\/?cat=3#listItem","name":"\u0422\u0435\u043e\u0440\u0456\u044f"}}]},{"@type":"Person","@id":"https:\/\/greenhouse.cv.ua\/#person","name":"Bernyk Dmytro","image":{"@type":"ImageObject","@id":"https:\/\/greenhouse.cv.ua\/?p=367#personImage","url":"https:\/\/greenhouse.cv.ua\/wp-content\/uploads\/2021\/02\/avatar_user_2_1612907072-96x96.gif","width":96,"height":96,"caption":"Bernyk Dmytro"}},{"@type":"Person","@id":"https:\/\/greenhouse.cv.ua\/?author=2#author","url":"https:\/\/greenhouse.cv.ua\/?author=2","name":"Bernyk Dmytro","image":{"@type":"ImageObject","@id":"https:\/\/greenhouse.cv.ua\/?p=367#authorImage","url":"https:\/\/greenhouse.cv.ua\/wp-content\/uploads\/2021\/02\/avatar_user_2_1612907072-96x96.gif","width":96,"height":96,"caption":"Bernyk Dmytro"}},{"@type":"WebPage","@id":"https:\/\/greenhouse.cv.ua\/?p=367#webpage","url":"https:\/\/greenhouse.cv.ua\/?p=367","name":"How To Install and Configure DKIM with Postfix on Debian - Greenhouse","description":"\u041f\u0435\u0440\u0432\u043e\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a https:\/\/www.digitalocean.com SecurityDebianEmailDNS By Popute Sebastian ArminPublished onFebruary 28, 2014 624.2kviews Introduction The frustration of getting falsely flagged as a spammer is not strange to most of the mail server admins. By excluding the possibility of a compromised server, a false flag is usually caused by one of the following: the server is an open mail relaythe","inLanguage":"uk","isPartOf":{"@id":"https:\/\/greenhouse.cv.ua\/#website"},"breadcrumb":{"@id":"https:\/\/greenhouse.cv.ua\/?p=367#breadcrumblist"},"author":{"@id":"https:\/\/greenhouse.cv.ua\/?author=2#author"},"creator":{"@id":"https:\/\/greenhouse.cv.ua\/?author=2#author"},"datePublished":"2022-01-26T17:01:57+02:00","dateModified":"2022-02-15T12:42:26+02:00"},{"@type":"WebSite","@id":"https:\/\/greenhouse.cv.ua\/#website","url":"https:\/\/greenhouse.cv.ua\/","name":"Greenhouse","description":"\u041c\u0456\u0439 \u0437\u0430\u0442\u0438\u0448\u043d\u0438\u0439 \u0437\u0435\u043b\u0435\u043d\u0438\u0439 \u0431\u0443\u0434\u0438\u043d\u043e\u043a","inLanguage":"uk","publisher":{"@id":"https:\/\/greenhouse.cv.ua\/#person"}}]},"og:locale":"uk_UA","og:site_name":"Greenhouse - \u041c\u0456\u0439 \u0437\u0430\u0442\u0438\u0448\u043d\u0438\u0439 \u0437\u0435\u043b\u0435\u043d\u0438\u0439 \u0431\u0443\u0434\u0438\u043d\u043e\u043a","og:type":"article","og:title":"How To Install and Configure DKIM with Postfix on Debian - Greenhouse","og:description":"\u041f\u0435\u0440\u0432\u043e\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a https:\/\/www.digitalocean.com SecurityDebianEmailDNS By Popute Sebastian ArminPublished onFebruary 28, 2014 624.2kviews Introduction The frustration of getting falsely flagged as a spammer is not strange to most of the mail server admins. By excluding the possibility of a compromised server, a false flag is usually caused by one of the following: the server is an open mail relaythe","og:url":"https:\/\/greenhouse.cv.ua\/?p=367","article:published_time":"2022-01-26T15:01:57+00:00","article:modified_time":"2022-02-15T10:42:26+00:00","twitter:card":"summary_large_image","twitter:title":"How To Install and Configure DKIM with Postfix on Debian - Greenhouse","twitter:description":"\u041f\u0435\u0440\u0432\u043e\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a https:\/\/www.digitalocean.com SecurityDebianEmailDNS By Popute Sebastian ArminPublished onFebruary 28, 2014 624.2kviews Introduction The frustration of getting falsely flagged as a spammer is not strange to most of the mail server admins. By excluding the possibility of a compromised server, a false flag is usually caused by one of the following: the server is an open mail relaythe"},"aioseo_meta_data":{"post_id":"367","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2024-05-13 04:47:41","updated":"2025-09-15 14:03:29","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/greenhouse.cv.ua\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/greenhouse.cv.ua\/?cat=3\" title=\"\u0422\u0435\u043e\u0440\u0456\u044f\">\u0422\u0435\u043e\u0440\u0456\u044f<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tHow To Install and Configure DKIM with Postfix on Debian\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/greenhouse.cv.ua"},{"label":"\u0422\u0435\u043e\u0440\u0456\u044f","link":"https:\/\/greenhouse.cv.ua\/?cat=3"},{"label":"How To Install and Configure DKIM with Postfix on Debian","link":"https:\/\/greenhouse.cv.ua\/?p=367"}],"featured_image_src":null,"author_info":{"display_name":"Bernyk Dmytro","author_link":"https:\/\/greenhouse.cv.ua\/?author=2"},"_links":{"self":[{"href":"https:\/\/greenhouse.cv.ua\/index.php?rest_route=\/wp\/v2\/posts\/367","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/greenhouse.cv.ua\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/greenhouse.cv.ua\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/greenhouse.cv.ua\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/greenhouse.cv.ua\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=367"}],"version-history":[{"count":7,"href":"https:\/\/greenhouse.cv.ua\/index.php?rest_route=\/wp\/v2\/posts\/367\/revisions"}],"predecessor-version":[{"id":378,"href":"https:\/\/greenhouse.cv.ua\/index.php?rest_route=\/wp\/v2\/posts\/367\/revisions\/378"}],"wp:attachment":[{"href":"https:\/\/greenhouse.cv.ua\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=367"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/greenhouse.cv.ua\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=367"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/greenhouse.cv.ua\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}