{"id":64,"date":"2019-07-02T14:50:03","date_gmt":"2019-07-02T14:50:03","guid":{"rendered":"https:\/\/silviamarin.ro\/?p=64"},"modified":"2019-07-02T14:50:03","modified_gmt":"2019-07-02T14:50:03","slug":"instalare-server-de-mail-cu-dovecot-si-postfix-2","status":"publish","type":"post","link":"https:\/\/marinelvis.xyz\/index.php\/2019\/07\/02\/instalare-server-de-mail-cu-dovecot-si-postfix-2\/","title":{"rendered":"INSTALARE SERVER DE MAIL CU DOVECOT SI POSTFIX"},"content":{"rendered":"<p><em><strong>Se instaleaza pachetele \u201cdnsutils\u201d si \u201ctelnet\u201d<\/strong><\/em><\/p>\n<pre>apt-get install dnsutils telnet -y<\/pre>\n<p>Se verifica daca portul 25 este deblocat:<\/p>\n<pre>dig mx +short yahoo.com |awk -F ' '\u00a0 '{print $2}'<\/pre>\n<blockquote><p><em>mta6.am0.yahoodns.net.<\/em><br \/>\n<em>mta5.am0.yahoodns.net.<\/em><br \/>\n<em>mta7.am0.yahoodns.net.<\/em><\/p><\/blockquote>\n<pre>telnet mta6.am0.yahoodns.net 25<\/pre>\n<blockquote><p><em>Trying 98.138.112.34\u2026<\/em><br \/>\n<em>Connected to mta6.am0.yahoodns.net.<\/em><br \/>\n<em>Escape character is \u2018^]\u2019.<\/em><br \/>\n<em>220 mta1278.mail.ne1.yahoo.com ESMTP ready<\/em><\/p><\/blockquote>\n<p>Daca output-ul este <em>\u201cConection timed out\u201d<\/em> atunci portul este blocat<br \/>\nSe concateneaza certificatele digitale:<\/p>\n<pre>cat <span style=\"color: #ff0000;\">domeniu.com<\/span>.crt intermediate.crt &gt; <span style=\"color: #ff0000;\">domeniu.com.<\/span>chain.crt<\/pre>\n<p><em><strong>Se instaleaza Dovecot si Postfix<\/strong><\/em><\/p>\n<pre>apt-get install dovecot-imapd dovecot-lmtpd\u00a0\napt-get install postfix postgrey postfix-policyd-spf-python<\/pre>\n<p>Se elimina pachetul Exim instalat odata cu sistemul de operare:<\/p>\n<pre>apt-get purge exim4 exim4-*<\/pre>\n<p>Postfix asculta porturile SMTP(25) si Submission(587) iar Dovecot asculta portul IMAP(993).<br \/>\n<em><strong>Configurari initiale<\/strong><\/em><\/p>\n<p><strong>POSTFIX<\/strong><br \/>\nPentru configurarea porturilor se editeaza master.cf<\/p>\n<pre>nano \/etc\/postfix\/master.cf<\/pre>\n<p>Se activeaza serviciul Submission eliminand comentariul (#) de la linia 17<\/p>\n<blockquote><p><em>\u2026\u2026<\/em><br \/>\n<em>smtp\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 inet\u00a0 n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2013\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2013\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2013\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2013\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 smtpd<\/em><br \/>\n<em>#smtp\u00a0\u00a0\u00a0\u00a0\u00a0 inet\u00a0 n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2013\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2013\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2013\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 postscreen<\/em><br \/>\n<em>\u2026\u2026<\/em><br \/>\n<em>submission inet n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2013\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2013\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2013\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2013\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 smtpd<\/em><br \/>\n<em>#\u00a0 -o syslog_name=postfix\/submission<\/em><br \/>\n<em>\u2026\u2026<\/em><\/p><\/blockquote>\n<p>Serviciul SMTP este activat implicit.<br \/>\nSe editeaza fisierul de configurare<em> main.cf<\/em>:<\/p>\n<pre>nano \/etc\/postfix\/main.cf<\/pre>\n<p>Se specifica certificatele de siguranta<br \/>\nSe inlocuieste\u00a0 <em>smtpd_use_tls = yes<\/em> cu <em>smtpd_tls_security_level = may<\/em><br \/>\nSe introduce <em>smtp_tls_security_level = may<\/em><\/p>\n<blockquote><p><em>smtpd_tls_cert_file=\/var\/SSL\/marinelvis.biz.chain.crt<\/em><br \/>\n<em>smtpd_tls_key_file=\/var\/SSL\/marinelvis.biz.key<\/em><br \/>\n<em>smtpd_tls_security_level = may<\/em><br \/>\n<em>smtp_tls_security_level = may<\/em><\/p><\/blockquote>\n<p><span style=\"line-height: 1.5;\">DOVECOT<\/span><br \/>\nSe creeaza un singur fisier de configurare <em>dovecot.conf<\/em>:<\/p>\n<pre>doveconf -n &gt; \/etc\/dovecot\/dovecot.conf.new\nmv \/etc\/dovecot\/dovecot.conf \/etc\/dovecot\/dovecot.conf.orig\nmv \/etc\/dovecot\/dovecot.conf.new \/etc\/dovecot\/dovecot.conf\nnano \/etc\/dovecot\/dovecot.conf<\/pre>\n<p>Linia <em>ssl = no<\/em> se sterge si se inlocuieste cu urmatorul bloc:<\/p>\n<blockquote><p><em>service imap-login {<\/em><br \/>\n<em>inet_listener imap {<\/em><br \/>\n<em>port = 0<\/em><br \/>\n<em>}<\/em><br \/>\n<em>inet_listener imaps {<\/em><br \/>\n<em>port = 993<\/em><br \/>\n<em>}<\/em><br \/>\n<em>}<\/em><br \/>\n<em>ssl = required<\/em><br \/>\n<em>ssl_ca = &lt;\/etc\/ssl\/certs\/ca-certificates.crt<\/em><br \/>\n<em>ssl_cert = \/var\/SSL\/<span style=\"color: #ff0000;\">domeniu.com<\/span>.chain.crt<\/em><br \/>\n<em>ssl_key = &lt;\/var\/SSL\/<span style=\"color: #ff0000;\">domeniu.com<\/span>.key<\/em><\/p><\/blockquote>\n<p>Se elimina monitorizarea de catre systemd a portului IMAP(143) pentru a preveni aparitia de erori:<\/p>\n<pre>cp \/lib\/systemd\/system\/dovecot.socket \/etc\/systemd\/system\/\nsystemctl reenable dovecot.socket\nsed -i '\/:143$\/s\/^\/#\/' \/etc\/systemd\/system\/dovecot.socket<\/pre>\n<p><em>PROBA<\/em><br \/>\nPe serverul unde se instaleaza:<\/p>\n<pre>systemctl restart postfix\nsystemctl restart dovecot\nnetstat -lnpt<\/pre>\n<p>In output trebuie sa fie listate porturile 25, 587 si 993 in coloana \u201eLocal Address\u201d<br \/>\nSe verifica daca sunt semnalate erori in log-uri:<\/p>\n<pre>less | \/var\/log\/mail.log\nless | \/var\/log\/syslog<\/pre>\n<p>Din calculatorul local:<\/p>\n<pre>openssl s_client -starttls smtp -crlf -connect <span style=\"color: #ff0000;\">domeniu.com<\/span>:587\nopenssl s_client -connect <span style=\"color: #ff0000;\">domeniu.com<\/span>:993<\/pre>\n<p>In ambele cazuri antepenultimul rand din output trebuie sa fie:<\/p>\n<blockquote><p><em>\u2026\u2026<\/em><br \/>\n<em>Verify return code: 0 (ok)<\/em><br \/>\n<em>\u2026\u2026<\/em><\/p><\/blockquote>\n<p>Se revine la root cu Ctrl + c<br \/>\n<em><strong>Autentificare si mailbox-uri<\/strong><\/em><\/p>\n<p><strong>POSTFIX<\/strong><\/p>\n<pre>nano \/etc\/postfix\/main.cf<\/pre>\n<p>Se modifica modul de autentificare in Dovecot.<br \/>\nSe introduce urmatorul bloc:<\/p>\n<blockquote><p><em>smtpd_sasl_auth_enable = yes<\/em><br \/>\n<em>smtpd_sasl_type = dovecot<\/em><br \/>\n<em># The path is relative to $queue_directory:<\/em><br \/>\n<em>#\u00a0\u00a0 postconf |grep queue_directory<\/em><br \/>\n<em>#\u00a0\u00a0 queue_directory = \/var\/spool\/postfix<\/em><br \/>\n<em>smtpd_sasl_path = private\/auth<\/em><br \/>\n<em># Do not accept SASL authentication over unencrypted connections<\/em><br \/>\n<em>smtpd_tls_auth_only = yes<\/em><\/p><\/blockquote>\n<p><strong>DOVECOT<\/strong><\/p>\n<pre>nano \/etc\/dovecot\/dovecot.conf<\/pre>\n<p>Se introduce urmatorul bloc:<\/p>\n<blockquote><p><em># Allows plaintext authentication only when SSL\/TLS is used first.<\/em><br \/>\n<em># <a href=\"http:\/\/wiki2.dovecot.org\/Authentication\">http:\/\/wiki2.dovecot.org\/Authentication<\/a><\/em><br \/>\n<em>auth_mechanisms = plain login<\/em><br \/>\n<em>disable_plaintext_auth = yes<\/em><br \/>\n<em>service auth-worker {<\/em><br \/>\n<em># Forbid to access \/etc\/shadow<\/em><br \/>\n<em>user = $default_internal_user<\/em><br \/>\n<em>}<\/em><br \/>\n<em>service auth {<\/em><br \/>\n<em># IMPORTANT: Match the path to smtpd_sasl_path of Postfix<\/em><br \/>\n<em>unix_listener \/var\/spool\/postfix\/private\/auth {<\/em><br \/>\n<em>group = postfix<\/em><br \/>\n<em>user = postfix<\/em><br \/>\n<em>mode = 0666<\/em><br \/>\n<em>}<\/em><br \/>\n<em>}<\/em><\/p><\/blockquote>\n<p>Se inlocuiesc <em>mail_location, passdb<\/em> si <em>userdb<\/em>:<\/p>\n<blockquote><p><em>mail_location = maildir:\/var\/vmail\/%d\/%n<\/em><\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<blockquote><p><em>passdb {<\/em><br \/>\n<em>driver = passwd-file<\/em><br \/>\n<em># The entire email address will be used as the username for email client.<\/em><br \/>\n<em># Don\u2019t bother about the scheme here, will be overwritten by a strong scheme from file.<\/em><br \/>\n<em>#\u00a0\u00a0\u00a0 (<a href=\"http:\/\/wiki2.dovecot.org\/AuthDatabase\/PasswdFile\">http:\/\/wiki2.dovecot.org\/AuthDatabase\/PasswdFile<\/a>)<\/em><br \/>\n<em>args = scheme=CRYPT username_format=%u \/etc\/dovecot\/users<\/em><br \/>\n<em>}<\/em><\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<blockquote><p><em>userdb {<\/em><br \/>\n<em># For static type, LDA verify the user\u2019s existence by lookup passdb<\/em><br \/>\n<em>#\u00a0\u00a0 ( <a href=\"http:\/\/wiki2.dovecot.org\/UserDatabase\/Static\">http:\/\/wiki2.dovecot.org\/UserDatabase\/Static<\/a> )<\/em><br \/>\n<em>driver = static<\/em><br \/>\n<em>args = uid=vmail gid=vmail home=\/var\/vmail\/%d\/%n<\/em><br \/>\n<em>}<\/em><\/p><\/blockquote>\n<p>Toate directoarele speciale ale casutei postale vor fi create automat de Dovecot pentru fiecare cont in parte. Trebuie specificat formatul casutei postale in <em>mail_location<\/em> si un utilizator de sistem care sa execute operatiile corespunzatoare in mailbox-uri<br \/>\nSe creeaza utilizatorul de sistem <em>vmail<\/em>:<\/p>\n<pre>adduser --system --home \/var\/vmail --uid 550 --group --disabled-login vmail<\/pre>\n<p>A fost creat folderul \/<em>var\/vmail\u00a0<\/em> detinut de utilizatorul de sistem <em>vmail.<\/em><br \/>\nSe creaza primul cont de e-mail si se introduce parola utilizand algoritmul de criptare SHA512 dupa urmatorul model:<\/p>\n<pre>doveadm pw -s SHA512-CRYPT<\/pre>\n<p>Exemplu de rezultat:<\/p>\n<blockquote><p><em>{SHA512-CRYPT}$6$jBJaXdjpgiAZVRUh$ysJbSwCDAZvxrJNUHr8urqKWOUmyQ7mNxl7ptWDf7htMB9s9lZZuNYTXuDPST2W226nOQG5IrHHmo0PCnhF\/d0<\/em><\/p><\/blockquote>\n<p>Se creeaza un fisier nou in <em>\/etc\/dovecot<\/em> si se introduce parola criptata:<\/p>\n<pre>nano \/etc\/dovecot\/users<\/pre>\n<p>dupa modelul:<\/p>\n<blockquote><p><em>user@<span style=\"color: #ff0000;\">domeniu.com<\/span>:{SHA512-CRYPT}$6$jBJaXdjpgiAZVRUh$ysJbSwCDAZvxrJNUHr8urqKWOUmyQ7mNxl7ptWDf7htMB9s9lZZuNYTXuDPST2W226nOQG5IrHHmo0PCnhF\/d0<\/em><\/p><\/blockquote>\n<p>Se schimba propietarul si permisiunile:<\/p>\n<pre>chmod 640 \/etc\/dovecot\/users\nchown root:dovecot \/etc\/dovecot\/users<\/pre>\n<p>Dovecot nu depinde de domenii, deci pot fi folosite mai multe sau nici un domeniu. Utilizatorii pot fi administra\u021bi utilizand acest fisier.<\/p>\n<p><em>PROBA<\/em><br \/>\nDin calculatorul local:<\/p>\n<pre>openssl s_client -connect <span style=\"color: #ff0000;\">domeniu.com<\/span>:993<\/pre>\n<p>Se realizeaza conexiunea la serverul de mail:<br \/>\n\u2026\u2026<\/p>\n<p>* OK<br \/>\n\u2026\u2026<\/p>\n<p>In terminal se scriu comenzile pentru conectarea la contul de utilizator creat anterior:<\/p>\n<pre>a login user@<span style=\"color: #ff0000;\">domeniu.com<\/span> \u00a0parola<\/pre>\n<blockquote><p><em>a OK [\u2026\u2026] Logged in<\/em><\/p><\/blockquote>\n<p>Pentru iesire si revenire la cursorul de root:<\/p>\n<pre>b logout<\/pre>\n<p>Se poate reveni la root si cu Ctrl + c<br \/>\n<em><strong>LMTP (Local Mail Transfer Protocol)<\/strong><\/em><\/p>\n<p>POSTFIX<\/p>\n<pre>nano \/etc\/postfix\/main.cf<\/pre>\n<p>Se introduce linia mydomain = <span style=\"color: #ff0000;\">domeniu.com<\/span> inainte de $myhostname. Se schimba variabilele urmatoare:<\/p>\n<blockquote><p><em>mydomain = <span style=\"color: #ff0000;\">domeniu.com<\/span><\/em><br \/>\n<em>myhostname = $mydomain<\/em><br \/>\n<em>myorigin = $mydomain<\/em><br \/>\n<em>mydestination = localhost<\/em><\/p><\/blockquote>\n<p>Valorile variabilelor $mydomain si $myhostname trebuie sa fie aceleasi din certificatele SSL.<br \/>\nModul de utilizare al variabilelor:<br \/>\n$myhostname: numele transmis prin comenzile SMTP HELO sau EHLO si banerul de intampinare SMTP.<br \/>\n$myorigin, $mydestination: In <em>\/etc\/postfix\/virtual_aliases<\/em> mai jos.<br \/>\n$myorigin, $virtual_mailbox_domains, $virtual_alias_maps: reject_unauth_destination<br \/>\nSe introduc urmatoarele linii:<\/p>\n<blockquote><p><em># Handing off local delivery to Dovecot\u2019s LMTP<\/em><br \/>\n<em># <a href=\"http:\/\/wiki2.dovecot.org\/HowTo\/PostfixDovecotLMTP\">http:\/\/wiki2.dovecot.org\/HowTo\/PostfixDovecotLMTP<\/a><\/em><br \/>\n<em>#<\/em><br \/>\n<em># The path relative to $queue_directory, that is:<\/em><br \/>\n<em>#\u00a0\u00a0\u00a0 \/var\/spool\/postfix\/private\/dovecot-lmtp<\/em><br \/>\n<em>virtual_transport = lmtp:unix:private\/dovecot-lmtp<\/em><br \/>\n<em># Check domains only, query users and aliases in Dovecot<\/em><br \/>\n<em>#<\/em><br \/>\n<em># IMPORTANT: Don\u2019t overlap with $mydestination<\/em><br \/>\n<em>#virtual_mailbox_domains = example1.com, example2.com<\/em><br \/>\n<em>virtual_mailbox_domains = $mydomain<\/em><br \/>\n<em>#virtual_alias_domains = $virtual_alias_maps<\/em><br \/>\n<em>virtual_alias_maps = hash:\/etc\/postfix\/virtual_aliases<\/em><\/p><\/blockquote>\n<p><em><strong>Alias-uri<\/strong><\/em><br \/>\nSe creeaza fisierul <em>virtual_aliases<\/em><\/p>\n<pre>nano \/etc\/postfix\/virtual_aliases<\/pre>\n<p>si se introduc urmatoarele linii:<\/p>\n<blockquote><p><em># The input(left column) without domain, will match user@$myorigin<\/em><br \/>\n<em># and user@$mydestination (e.g. root@example.com, root@localhost)<\/em><br \/>\n<em>#<\/em><br \/>\n<em># The result(right column) without domain, Postfix will append<\/em><br \/>\n<em>#\u00a0\u00a0 $myorigin as $append_at_myorigin=yes<\/em><br \/>\n<em># So the user user@<span style=\"color: #ff0000;\">domeniu.com<\/span> must exists in \/etc\/dovecot\/users<\/em><br \/>\n<em># See: The section TABLE FORMAT in manual virtual(5)<\/em><br \/>\n<em>postmaster \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 root<\/em><br \/>\n<em>webmaster\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 root<\/em><br \/>\n<em>abuse \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0root<\/em><br \/>\n<em># Person who should get root\u2019s mail<\/em><br \/>\n<em>root\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 user<\/em><br \/>\n<em>info@<span style=\"color: #ff0000;\">domeniu.com<\/span> \u00a0 \u00a0user<\/em><br \/>\n<em># A catch-all address is at the risk of spam<\/em><br \/>\n<em>#@<span style=\"color: #ff0000;\">domeniu.com<\/span> \u00a0 \u00a0user<\/em><\/p><\/blockquote>\n<p>Apoi se creeaza baza de date alocata alias-urilor:<\/p>\n<pre>postmap \/etc\/postfix\/virtual_aliases\npostfix reload<\/pre>\n<p><strong>DOVECOT<\/strong><\/p>\n<pre>nano \/etc\/dovecot\/dovecot.conf<\/pre>\n<p>Se introduce urmatorul bloc:<\/p>\n<blockquote><p><em>service lmtp {<\/em><br \/>\n<em>unix_listener \/var\/spool\/postfix\/private\/dovecot-lmtp {<\/em><br \/>\n<em>mode = 0666<\/em><br \/>\n<em>user = postfix<\/em><br \/>\n<em>group = postfix<\/em><br \/>\n<em>}<\/em><br \/>\n<em>}<\/em><\/p><\/blockquote>\n<p>Calea absoluta catre\u00a0 dovecot-lmtp trebuie sa fie aceeasi ca valoarea variabilei <em>$virtual_transport<\/em> in Postfix.<\/p>\n<p><em>PROBA<\/em><br \/>\nPe serverul unde se instaleaza:<\/p>\n<pre>systemctl restart postfix\nsystemctl restart dovecot<\/pre>\n<p>Se verifica daca s-a creat fisierul \u201edovecot-lmtp\u201d<\/p>\n<pre>ls -l \/var\/spool\/postfix\/private\/dovecot-lmtp<\/pre>\n<p>Se trimite un e-mail. Datorita alias-urilor create anterior contul user@<span style=\"color: #ff0000;\">domeniu.com<\/span> va primi un mesaj in directorul <em>new<\/em>:<\/p>\n<pre>sendmail -bv webmaster<\/pre>\n<p>sudo ls -l \/var\/vmail\/<span style=\"color: #ff0000;\">domeniu.com<\/span>\/user\/new<\/p>\n<p><strong>Inregistrarile DNS<\/strong><\/p>\n<blockquote><p><em>Hostname -&gt; A -&gt; IPv4<\/em><br \/>\n<em>domeniu.com\u00a0 -&gt; MX -&gt; mail.domeniu.com<\/em><br \/>\n<em>domeniu.com\u00a0 -&gt; TXT -&gt; v=spf1 a mx ip4:IPv4 ip6:IPv6 \u2013all<\/em><\/p><\/blockquote>\n<p>Pentru ca serverul de mail este acelasi cu serverul domeniului <span style=\"color: #000000;\">domeniu.com = mail.domeniu.com<\/span><br \/>\nRaspunsul inregistrarii MX trebuie sa fie aceeasi cu variabila <em>$myhostname<\/em> din <em>\/etc\/postfix\/main.cf<\/em><\/p>\n<blockquote><p><em>domeniu.com -&gt; A -&gt; 5.189.138.195 (IP-ul domeniului)<\/em><br \/>\n<em>domeniu.com -&gt; MX -&gt; domeniu.com<\/em><br \/>\n<em>domeniu.com -&gt; TXT -&gt; v=spf1 a mx ip4:5.189.138.195 ip6:2a02:c207:2013:6973:0000:0000:0000:0001 -all<\/em><\/p><\/blockquote>\n<p>Pentru reverseDNS se introduce IP-ul inversat in inregistrarea PTR:<\/p>\n<blockquote><p><em>195.138.189.5.in-addr.arpa<\/em><\/p><\/blockquote>\n<p><em>PROBA<\/em><br \/>\nSe testeaza cu comanda dig:<\/p>\n<pre>dig +short mx <span style=\"color: #ff0000;\">domeniu.com<\/span> |awk '{print $2}'<\/pre>\n<p>Output-ul trebuie sa fie numele domeniului unde a fost directionata inregistrarea MX<\/p>\n<blockquote><p><em><span style=\"color: #ff0000;\">domeniu.com<\/span><\/em><\/p><\/blockquote>\n<pre>dig +short a <em><span style=\"color: #ff0000;\">domeniu.com<\/span><\/em><\/pre>\n<p>Output-ul trebuie sa fie IP-ul mailserver-ului<\/p>\n<blockquote><p>5.189.138.195<\/p><\/blockquote>\n<pre>dig +short -x 5.189.138.195<\/pre>\n<p>Output-ul trebuie sa fie numele domeniului<\/p>\n<blockquote><p><em><span style=\"color: #ff0000;\">domeniu.com<\/span><\/em><\/p><\/blockquote>\n<p><em><strong>Mail User Agent<\/strong><\/em><\/p>\n<p>Date de configurare pentru clientii de mail (Microsoft Outlook, Thunderbird, etc.):<br \/>\nIMAP<\/p>\n<blockquote><p><em>Server Name: <span style=\"color: #ff0000;\">domeniu.com<\/span><\/em><br \/>\n<em>Port: 993<\/em><br \/>\n<em>Connection security: SSL\/TLS<\/em><br \/>\n<em>Authentication method: Normal password<\/em><br \/>\n<em>User Name: user@ <span style=\"color: #ff0000;\">domeniu.com<\/span><\/em><\/p><\/blockquote>\n<p>SMTP<\/p>\n<blockquote><p><em>Server Name: <span style=\"color: #ff0000;\">domeniu.com<\/span><\/em><br \/>\n<em>Port: 587<\/em><br \/>\n<em>Connection security: STARTTLS<\/em><br \/>\n<em>Authentication method: Normal password<\/em><br \/>\n<em>User Name: user@ <span style=\"color: #ff0000;\">domeniu.com<\/span><\/em><\/p><\/blockquote>\n<p><em><strong>Antispam<\/strong><\/em><\/p>\n<p><strong>POSTFIX<\/strong><\/p>\n<pre>nano \/etc\/postfix\/main.cf<\/pre>\n<p>Se sterge linia cu variabila <em>smtpd_relay_restrictions<\/em>. In locul ei se introduce blocul urmator:<\/p>\n<blockquote><p><em># Restrictions in order: client, helo, sender, relay\/recipient<\/em><br \/>\n<em>smtpd_client_restrictions = permit_mynetworks,<\/em><br \/>\n<em>reject_unauth_pipelining,<\/em><br \/>\n<em>smtpd_helo_required = yes<\/em><br \/>\n<em>smtpd_helo_restrictions = permit_mynetworks,<\/em><br \/>\n<em>reject_invalid_helo_hostname,<\/em><br \/>\n<em>reject_non_fqdn_helo_hostname,<\/em><br \/>\n<em>smtpd_sender_restrictions = permit_mynetworks,<\/em><br \/>\n<em>reject_non_fqdn_sender,<\/em><br \/>\n<em>reject_unknown_sender_domain,<\/em><br \/>\n<em>check_sender_access hash:\/etc\/postfix\/sender_access,<\/em><br \/>\n<em># Reject destination we\u2019re not responsible for, limit abuse or<\/em><br \/>\n<em># prevent postfix become an open relay. (version &gt;= 2.10 required)<\/em><br \/>\n<em>smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated,<\/em><br \/>\n<em>reject_unauth_destination,<\/em><br \/>\n<em>smtpd_recipient_restrictions =<\/em><br \/>\n<em># General rules<\/em><br \/>\n<em>reject_non_fqdn_recipient,<\/em><br \/>\n<em>reject_unknown_recipient_domain,<\/em><br \/>\n<em># Our users<\/em><br \/>\n<em>permit_mynetworks,<\/em><br \/>\n<em>permit_sasl_authenticated,<\/em><br \/>\n<em># Spam filters<\/em><br \/>\n<em>reject_rbl_client zen.spamhaus.org,<\/em><br \/>\n<em>reject_rbl_client dnsbl.sorbs.net,<\/em><br \/>\n<em>reject_rhsbl_reverse_client dbl.spamhaus.org,<\/em><br \/>\n<em>reject_rhsbl_helo dbl.spamhaus.org,<\/em><br \/>\n<em>reject_rhsbl_sender dbl.spamhaus.org,<\/em><br \/>\n<em># This should be next-to-last<\/em><br \/>\n<em>check_policy_service unix:private\/postgrey,<\/em><br \/>\n<em>permit<\/em><\/p><\/blockquote>\n<p>Regula\u00a0<em> reject_unauth_destination<\/em> impiedica mailserver-ul sa devina <em>open relay.<\/em><\/p>\n<p><strong>POSTGREY<\/strong><br \/>\nSe modifica optiunile Postgrey:<\/p>\n<pre>nano \/etc\/default\/postgrey<\/pre>\n<blockquote><p><em>POSTGREY_OPTS=\u201d\u2013unix=\/var\/spool\/postfix\/private\/postgrey \u2013delay=66\u2033<\/em><\/p><\/blockquote>\n<p>Restart Postgrey:<\/p>\n<pre>systemctl restart postgrey<\/pre>\n<p><strong>BLACKLIST OF SENDER<\/strong><br \/>\nUnii spam-eri pot trece de filtrele impuse de Postfix. In acest caz se foloseste Blacklist.<\/p>\n<pre>nano \/etc\/postfix\/sender_access<\/pre>\n<p>Calea <em>\/etc\/postfix\/sender_access<\/em> trebuie sa fie aceeasi ca setarea variabilei\u00a0 <em>check_sender_access<\/em> din <em>main.cf<\/em>:<br \/>\nSe creeaza baza de date\u00a0<em>sender_access.db<\/em>:<\/p>\n<pre>postmap hash:sender_access<\/pre>\n<p>Apoi se introduc manual domeniile spam-erilor in baza de date:<br \/>\nExemplu:<\/p>\n<pre>cd \/etc\/postfix\/\necho spam@yandex.ru REJECT &gt;&gt; sender_access\necho ya.ru REJECT &gt;&gt; sender_access\npostmap hash:sender_access<\/pre>\n<p><em><strong>FAIL2BAN<\/strong><\/em><\/p>\n<p>Se instaleaza fail2ban:<\/p>\n<pre>apt-get install fail2ban -y<\/pre>\n<p>Se face o copie locala a fisierului de configurare si se editeaza:<\/p>\n<pre>cd \/etc\/fail2ban\/filter.d\/\ncp postfix.conf postfix.local\nnano postfix.local<\/pre>\n<p>Se adauga linia:<\/p>\n<blockquote><p><em>^%(__prefix_line)slost connection after (?:AUTH|UNKNOWN) from \\S+\\[&lt;HOST&gt;\\]$<\/em><\/p><\/blockquote>\n<p>la <em>failregex<\/em>, care ar trebui sa arate asa:<\/p>\n<blockquote><p><em>failregex = ^%(__prefix_line)sNOQUEUE: reject: RCPT from \\S+\\[&lt;HOST&gt;\\]: 554 5\\.7\\.1 .*$<\/em><br \/>\n<em>^%(__prefix_line)sNOQUEUE: reject: RCPT from \\S+\\[&lt;HOST&gt;\\]: 450 4\\.7\\.1 : Helo command rejected: Host not found; from=&lt;&gt; to=&lt;&gt; proto=ESMTP helo= *$<\/em><br \/>\n<em>^%(__prefix_line)sNOQUEUE: reject: VRFY from \\S+\\[&lt;HOST&gt;\\]: 550 5\\.1\\.1 .*$<\/em><br \/>\n<em>^%(__prefix_line)simproper command pipelining after \\S+ from [^[]*\\[&lt;HOST&gt;\\]:?$<\/em><br \/>\n<em>^%(__prefix_line)slost connection after (?:AUTH|UNKNOWN) from \\S+\\[&lt;HOST&gt;\\]$<\/em><\/p><\/blockquote>\n<p>Se editeaza <em>jail.local<\/em>:<\/p>\n<pre>nano \/etc\/fail2ban\/jail.local<\/pre>\n<p>Se activeaza Postfix:<\/p>\n<blockquote><p><em>[postfix]<\/em><br \/>\n<em>Enabled\u00a0 =\u00a0 true<\/em><\/p><\/blockquote>\n<p>Se reporneste Fail2ban<\/p>\n<pre>fail2ban-client reload postfixfail2ban-client status<\/pre>\n<p><em>SPF<\/em><\/p>\n<pre>nano \/etc\/postfix\/main.cf<\/pre>\n<p>Inainte de linia <em>check_policy_service unix:private\/postgrey<\/em> se intorduce linia aferenta SPF:<\/p>\n<blockquote><p><em>\u2026\u2026<\/em><br \/>\n<em>check_policy_service unix:private\/policyd-spf,<\/em><br \/>\n<em>check_policy_service unix:private\/postgrey,<\/em><br \/>\n<em>permit<\/em><\/p><\/blockquote>\n<p>Linia\u00a0 <em>check_policy_service<\/em> trebuie introdusa dupa <em>reject_unauth_destination<\/em> pentru a evita ca mailserver-ul sa devina <em>open relay<\/em>.<br \/>\nLa sfarsitul fisierului <em>main.cf<\/em> se introduce linia:<\/p>\n<blockquote><p><em>policy-spf_time_limit = 3600s<\/em><\/p><\/blockquote>\n<p>Se editeaza fisierul <em>master.cf<\/em> si se introduc cele 2 linii la sfarsitul fisierului:<\/p>\n<pre>nano \/etc\/postfix\/master.cf<\/pre>\n<blockquote><p><em>policyd-spf\u00a0 unix\u00a0 \u2013\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2013\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 spawn<\/em><br \/>\n<em>user=policyd-spf argv=\/usr\/bin\/policyd-spf<\/em><\/p><\/blockquote>\n<p>Se reporneste Postfix:<\/p>\n<pre>systemctl restart postfix<\/pre>\n<p><em><strong>DKIM (DomainKeys Identified Mail)<\/strong><\/em><br \/>\nDKIM implica configurarea pachetului OpenDKIM, conectarea lui cu Postfix si alocarea inregistrarilor DNS specifice.<br \/>\nSe instaleaza OpenDKIM:<\/p>\n<pre>apt-get install opendkim opendkim-tools -y<\/pre>\n<p>Fisierul de configurare \/etc\/opendkim.conf trebuie sa arate astfel:<\/p>\n<pre>nano \/etc\/opendkim.conf<\/pre>\n<blockquote><p><em># This is a basic configuration that can easily be adapted to suit a standard<\/em><br \/>\n<em># installation. For more advanced options, see opendkim.conf(5) and\/or<\/em><br \/>\n<em># \/usr\/share\/doc\/opendkim\/examples\/opendkim.conf.sample.<\/em><br \/>\n<em># Log to syslog<\/em><br \/>\n<em>Syslog\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 yes<\/em><br \/>\n<em># Required to use local socket with MTAs that access the socket as a non-<\/em><br \/>\n<em># privileged user (e.g. Postfix)<\/em><br \/>\n<em>UMask\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 002<\/em><br \/>\n<em># OpenDKIM user<\/em><br \/>\n<em># Remember to add user postfix to group opendkim<\/em><br \/>\n<em>UserID\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 opendkim<\/em><br \/>\n<em># Map domains in From addresses to keys used to sign messages<\/em><br \/>\n<em>KeyTable\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/etc\/opendkim\/key.table<\/em><br \/>\n<em>SigningTable\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 refile:\/etc\/opendkim\/signing.table<\/em><br \/>\n<em># Hosts to ignore when verifying signatures<\/em><br \/>\n<em>ExternalIgnoreList\u00a0 \/etc\/opendkim\/trusted.hosts<\/em><br \/>\n<em>InternalHosts\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/etc\/opendkim\/trusted.hosts<\/em><br \/>\n<em># Commonly-used options; the commented-out versions show the defaults.<\/em><br \/>\n<em>Canonicalization\u00a0\u00a0\u00a0 relaxed\/simple<\/em><br \/>\n<em>Mode\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 sv<\/em><br \/>\n<em>SubDomains\u00a0\u00a0\u00a0\u00a0\u00a0 no<\/em><br \/>\n<em>#ADSPAction\u00a0\u00a0\u00a0\u00a0 continue<\/em><br \/>\n<em>AutoRestart\u00a0\u00a0\u00a0\u00a0 yes<\/em><br \/>\n<em>AutoRestartRate\u00a0\u00a0\u00a0\u00a0 10\/1M<\/em><br \/>\n<em>Background\u00a0\u00a0\u00a0\u00a0\u00a0 yes<\/em><br \/>\n<em>DNSTimeout\u00a0\u00a0\u00a0\u00a0\u00a0 5<\/em><br \/>\n<em>SignatureAlgorithm\u00a0 rsa-sha256<\/em><br \/>\n<em># Always oversign From (sign using actual From and a null From to prevent<\/em><br \/>\n<em># malicious signatures header fields (From and\/or others) between the signer<\/em><br \/>\n<em># and the verifier.\u00a0 From is oversigned by default in the Debian package<\/em><br \/>\n<em># because it is often the identity key used by reputation systems and thus<\/em><br \/>\n<em># somewhat security sensitive.<\/em><br \/>\n<em>OversignHeaders\u00a0\u00a0\u00a0\u00a0 From<\/em><\/p><\/blockquote>\n<p>Se aloca permisiunile fisierului:<\/p>\n<pre>chmod u=rw,go=r \/etc\/opendkim.conf<\/pre>\n<p>Se creeaza folderele pentru datele OpenDKIM, se desemneaza user-ul <em>opendkim<\/em> ca propietar al folderelor si se configureaza permisiunile fisierelor:<\/p>\n<pre>mkdir \/etc\/opendkim\nmkdir \/etc\/opendkim\/keys\nchown -R opendkim:opendkim \/etc\/opendkim\nchmod go-rw \/etc\/opendkim\/keys<\/pre>\n<p>Se creeaza tabelul de semnaturi\u00a0 <em>\/etc\/opendkim\/signing.table<\/em> in care se introduce cate o linie pentru fiecare domeniu care are alocat un server de mail dupa modelul de mai jos:<\/p>\n<pre>nano \/etc\/opendkim\/signing.table<\/pre>\n<blockquote><p><em>*@<span style=\"color: #ff0000;\">domeniu.com<\/span>\u00a0 <span style=\"color: #ff0000;\">domeniu<\/span><\/em><\/p><\/blockquote>\n<p>Se creeaza tabelul cheilor private <em>\/etc\/opendkim\/key.table<\/em> cu cate o linie pentru fiecare domeniu inscris in signing.table dupa modelul de mai jos:<\/p>\n<pre>nano \/etc\/opendkim\/key.table<\/pre>\n<blockquote><p><em><span style=\"color: #ff0000;\">domeniu.com<\/span><\/em> \u00a0 \u00a0 <em><span style=\"color: #ff0000;\">domeniu.com<\/span><\/em>:YYYYMM:\/etc\/opendkim\/keys\/<em><span style=\"color: #ff0000;\">domeniu<\/span><\/em>.private<\/p><\/blockquote>\n<p>Primul camp conecteaza tabelul de semnaturi cu tabelul cheilor private.<br \/>\nAl doilea camp e impartit in 3 sectiuni separate de \u201e:\u201d<br \/>\nprima sectiune e numele de domeniu pentru care este alocata cheia.<br \/>\na doua sectiune este selectorul (YYYYMM) folosit cand este cautata cheia inscrisa in inregistrarile DNS<br \/>\na treia sectiune desemneaza fisierul care contine cheia de criptare alocata domeniului.<br \/>\nFluxul pentru cautarea DKIM incepe cu adresa expeditorului. Tabelul de semnaturi este scanat pana la o intrare al carei model (primul element) se potriveste cu adresa. Apoi, valoarea celui de-al doilea element este utilizata pentru a localiza intrarea in tabelul cheilor a carei informatie cheie va fi utilizata. Pentru mesajele primite, domeniul si selectorul sunt apoi folosite pentru a gasi \u00eenregistrarea TXT a cheii publice in DNS si cheia publica este utilizat\u0103 pentru a valida semnatura. Pentru e-mailul de iesire, cheia privata este citit\u0103 din fisierul numit s utilizata pentru a genera semnatura pe mesaj.<br \/>\nSe creeaza fisierul\u00a0 <em>\/etc\/opendkim\/trusted.hosts<\/em> cu urmatorul continut:<\/p>\n<pre>nano \/etc\/opendkim\/trusted.hosts<\/pre>\n<blockquote><p><em>127.0.0.1<\/em><br \/>\n<em>::1<\/em><br \/>\n<em>localhost<\/em><br \/>\n<em>mail.<span style=\"color: #ff0000;\">domeniu.com<\/span><\/em><br \/>\n<em><span style=\"color: #ff0000;\">domeniu.com<\/span><\/em><\/p><\/blockquote>\n<p>Se aloca permisiunile si propietarul fisierelor:<\/p>\n<pre>chown -R opendkim:opendkim \/etc\/opendkim\nchmod -R go-rwx \/etc\/opendkim\/keys<\/pre>\n<p>Se genereaza cheile de criptare:<\/p>\n<pre>opendkim-genkey -b 2048 -h rsa-sha256 -r -s 201710 -d <em><span style=\"color: #ff0000;\">domeniu.com<\/span><\/em> -v<\/pre>\n<p>Se genereaza doua fisiere: YYYYMM.private care contine cheia de criptare si YYYYMM.txt care contine inregistrareaTXT pentru setarile DNS. Se redenumesc fisierele ca sa se potriveasca cu a treia sectiune a celui de-al doilea camp din key.table:<br \/>\nmv 201710.private <em><span style=\"color: #ff0000;\">domeniu<\/span><\/em>.private<br \/>\nmv 201710.txt <em><span style=\"color: #ff0000;\">domeniu<\/span><\/em>.txt<br \/>\nSe configureaza permisiunile si propietarul folderului <em>\/etc\/opendkim:<\/em><\/p>\n<blockquote><p><em>chown -R opendkim:opendkim \/etc\/opendkim<\/em><br \/>\n<em>chmod -R go-rw \/etc\/opendkim\/keys<\/em><\/p><\/blockquote>\n<p>Se reporneste OpenDKIM:<\/p>\n<pre>systemctl restart opendkim<\/pre>\n<p>Daca sunt semnalate erori<\/p>\n<pre>systemctl status -l opendkim<\/pre>\n<p>DKIM foloseste inregistrarile TXT ca sa pastreze informatiile despre semnatura fiecarui domeniu.<br \/>\nContinutul fisierului \/etc\/opendkim\/keys\/<em><span style=\"color: #ff0000;\">domeniu<\/span><\/em>.txt\u00a0 arata asa:<\/p>\n<blockquote><p><em>YYYYMM._domainkey\u00a0 IN\u00a0 TXT ( \u201c**v=DKIM1; h=rsa-sha256; k=rsa; s=email; \u201c\u00a0\u00a0\u00a0 \u201cp=MIIBIjANBgkqX94YbLJ8NHcFPbaZTW8R2HthYxRaCyqodxlLHiABRuAM0WG0JEDSyakMFqIO40ghj\/h7DUc\/+PdtqIwXR\u201d\u00a0\u00a0\u00a0 \u201cZksfuXh7m30kuyavp3UasoMgMjO+YjG8JsdcwIDAQAB**\u201d )\u00a0 ; \u2014\u2013 DKIM key YYYYMM for <span style=\"color: #ff0000;\">domeniu.com<\/span><\/em><\/p><\/blockquote>\n<p>Valoarea dintre paranteze se copie intr-un fisier-text separat fara ghilimele si spatii goale. De asemenea se inlocuieste h=rsa-sha256\u00a0 cu h=sha256:<\/p>\n<blockquote><p><em>v=DKIM1; h=sha256; k=rsa; s=email;<\/em><br \/>\n<em>p= MIIBIjANBgkqX94YbLJ8NHcFPbaZTW8R2HthYxRaCyqodxlLHiABRuAM0WG0JEDSyakMFqIO40ghj\/h7DUc\/+PdtqIwXR ZksfuXh7m30kuyavp3UasoMgMjO+YjG8JsdcwIDAQAB<\/em><\/p><\/blockquote>\n<p>Continutul de mai sus se introduce intr-o intr-o inregistrare TXT in managerul DNS<\/p>\n<p><em>PROBA<\/em><br \/>\nPentru verificare se foloseste comanda <em>opendkim-testkey<\/em>:<\/p>\n<pre>opendkim-testkey -d <em><span style=\"color: #ff0000;\">domeniu.com<\/span><\/em> -s YYYYMM<\/pre>\n<p>Daca nu exista output atunci totul este configurat corect. Daca apar erori, pentru mai multe informatii se adauga optiunea <em>\u2013vvv<\/em> la sfarsitul comenzii. Output-ul trebuie sa fie <em>\u201ekey OK\u201d<\/em>. Va aparea si mesajul <em>\u201ckey not secure\u201d<\/em> care va fi corectat prin configurarile urmatoare.<\/p>\n<pre>mkdir \/var\/spool\/postfix\/opendkim\nchown opendkim:postfix \/var\/spool\/postfix\/opendkim<\/pre>\n<p>Se configureaza socket-ul pentru Postfix in fisierul de configurare implicit al OpenDKIM:<\/p>\n<pre>nano \/etc\/default\/opendkim<\/pre>\n<blockquote><p><em># Command-line options specified here will override the contents of<\/em><br \/>\n<em># \/etc\/opendkim.conf. See opendkim(8) for a complete list of options.<\/em><br \/>\n<em>#DAEMON_OPTS=\u201d\u201d<\/em><br \/>\n<em>#<\/em><br \/>\n<em># Uncomment to specify an alternate socket<\/em><br \/>\n<em># Note that setting this will override any Socket value in opendkim.conf<\/em><br \/>\n<em>SOCKET=\u201dlocal:\/var\/spool\/postfix\/opendkim\/opendkim.sock\u201d<\/em><br \/>\n<em>#SOCKET=\u201dinet:54321\u2033 # listen on all interfaces on port 54321<\/em><br \/>\n<em>#SOCKET=\u201dinet:12345@localhost\u201d # listen on loopback on port 12345<\/em><br \/>\n<em>#SOCKET=\u201dinet:12345@192.0.2.1\u2033 # listen on 192.0.2.1 on port 12345<\/em><\/p><\/blockquote>\n<p>Calea catre socket este diferita de cea implicita pentru ca, incepand cu Debian 8 procesele Postfix ruleaza in <em>chroot jail<\/em> si nu pot accesa locatia implicita<br \/>\nSe editeaza <em>\/etc\/postfix\/main.cf<\/em> si se completeaza cu blocul urmator dupa <em>smtpd_recipient_restrictions<\/em>:<\/p>\n<pre>nano \/etc\/postfix\/main.cf<\/pre>\n<blockquote><p><em># Milter configuration<\/em><br \/>\n<em># OpenDKIM<\/em><br \/>\n<em>milter_default_action = accept<\/em><br \/>\n<em># Postfix \u2265 2.6 milter_protocol = 6, Postfix \u2264 2.5 milter_protocol = 2<\/em><br \/>\n<em>milter_protocol = 6<\/em><br \/>\n<em>smtpd_milters = local:\/opendkim\/opendkim.sock<\/em><br \/>\n<em>non_smtpd_milters = local:\/opendkim\/opendkim.sock<\/em><\/p><\/blockquote>\n<p>Se repornesc OpenDKIM si Postfix<\/p>\n<pre>systemctl restart opendkim\nsystemctl restart postfix<\/pre>\n<p><em>PROBA<\/em><br \/>\nSe trimite un e-mail\u00a0 de test\u00a0 la check-auth@verifier.port25.com folosind un client de e-mail<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Se instaleaza pachetele \u201cdnsutils\u201d si \u201ctelnet\u201d apt-get install dnsutils telnet -y Se verifica daca portul 25 este deblocat: dig mx +short yahoo.com |awk -F &#8216; &#8216;\u00a0 &#8216;{print $2}&#8217; mta6.am0.yahoodns.net. mta5.am0.yahoodns.net. mta7.am0.yahoodns.net. telnet mta6.am0.yahoodns.net 25 Trying 98.138.112.34\u2026 Connected to mta6.am0.yahoodns.net. Escape character is \u2018^]\u2019. 220 mta1278.mail.ne1.yahoo.com ESMTP ready Daca output-ul este \u201cConection timed out\u201d atunci portul [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-64","post","type-post","status-publish","format-standard","hentry","category-fara-categorie"],"_links":{"self":[{"href":"https:\/\/marinelvis.xyz\/index.php\/wp-json\/wp\/v2\/posts\/64","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/marinelvis.xyz\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/marinelvis.xyz\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/marinelvis.xyz\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/marinelvis.xyz\/index.php\/wp-json\/wp\/v2\/comments?post=64"}],"version-history":[{"count":0,"href":"https:\/\/marinelvis.xyz\/index.php\/wp-json\/wp\/v2\/posts\/64\/revisions"}],"wp:attachment":[{"href":"https:\/\/marinelvis.xyz\/index.php\/wp-json\/wp\/v2\/media?parent=64"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/marinelvis.xyz\/index.php\/wp-json\/wp\/v2\/categories?post=64"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/marinelvis.xyz\/index.php\/wp-json\/wp\/v2\/tags?post=64"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}