Patch DKIM pentru ISPConfig

– Mai întâi trebuie să menționez și mulțumesc pentru acest tutorial DKIM și pentru tot ce a făcut lui DKIMhttp://blog.schaal-24.de/?p=2223&lang=en

– semnarea e-mail-urilor pentru autenticitate este o practică din ce în ce mai utilizată în zilele noastre. Există însă mai multe metode, printre care și DKIM, care presupune existența unei chei private pe serverul de unde pleacă email-ul, cu ajutorul căreia mail-ul este semnat și a unei chei publice stocată într-o înregistrare DNS a domeniului, ce poate fi folosită pentru verificarea semnăturii. Astfel serverele de mail ce folosesc această verificare (Google, Yahoo, etc..) o să vă accepte mai ușor mailurile și nu o să mai ajungă atâtea în spam.

– ne autentificăm în mysql (Nu faceți acest pas decât dacă aveți ISPConfig mai vechi de 3.0.5.4 – altfel faceți direct instalarea. următorul pas):

mysql -u root -p

use dbispconfig;
 ALTER TABLE `mail_domain` ADD `dkim_public` MEDIUMTEXT NOT NULL AFTER `domain`; ALTER TABLE `mail_domain` ADD `dkim_private` MEDIUMTEXT NOT NULL AFTER `domain`; ALTER TABLE `mail_domain` ADD `dkim` ENUM( 'n', 'y' ) NOT NULL AFTER `domain`;
 quit;

– instalăm DKIM patch:

cd /tmp
 mkdir dkim
 cd dkim
 wget blog.schaal-24.de/files/dkim-latest_ispconfig3.tar.gz
 tar xfvz dkim-latest_ispconfig3.tar.gz

– schimbăm drepturile:

cd dkim-patch
chown -R ispconfig.ispconfig *

– copiem noile fișiere:

cp -Rp interface /usr/local/ispconfig
 cp -Rp server /usr/local/ispconfig

– pentru că avem română, și nu engleza punem și patch-ul de română (limbi străine):

mkdir /tmp/dkim-ro
cd /tmp/dkim-ro
wget blog.schaal-24.de/files/dkim-patch-all-languages.tar.gz
tar xzvf dkim-patch-all-languages.tar.gz 
cd dkim-patch-all-languages
chown -R ispconfig:ispconfig interface
cp -Rp interface /usr/local/ispconfig

– activăm plugin-ul:

ln -s /usr/local/ispconfig/server/plugins-available/mail_plugin_dkim.inc.php /usr/local/ispconfig/server/plugins-enabled/mail_plugin_dkim.inc.php

– ne ocupăm de amavis

– instalăm perl-Mail-DKIM în caz ca nu este instalat, și răspundeți la întrebări, nu dați să găsească el automat mirror-urile că dă greș de multe ori (Would you like me to automatically choose some CPAN mirror
sites for you? (This means connecting to the Internet) [no] și vă sfătuiesc să alegeți pe toate din românia):

apt-get install libmail-dkim-perl
 perl -MCPAN -e 'install Mail::DKIM'
 

– modificăm amavis, și bineînțeles facem back-up înainte:

cp /etc/amavis/conf.d/50-user /etc/amavis/conf.d/50-user.`date +%F.%T`
 vi /etc/amavis/conf.d/50-user

– și adaugăm la sfârșit înainte de do not modify anything below this line:

$inet_socket_port = [10024,10026];
 $forward_method = 'smtp:[127.0.0.1]:10025';
 $notify_method = 'smtp:[127.0.0.1]:10027';
 $interface_policy{'10026'} = 'ORIGINATING';
 $policy_bank{'ORIGINATING'} = {
 originating => 1,
 smtpd_discard_ehlo_keywords => ['8BITMIME'],
 forward_method => 'smtp:[127.0.0.1]:10027',
 };
 @mynetworks = qw(0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12
 192.168.0.0/16);
 $signed_header_fields{'received'} = 0; # turn off signing of Received
 $enable_dkim_verification = 1;
 $enable_dkim_signing = 1;
 @dkim_signature_options_bysender_maps = (
 { '.' => { ttl => 21*24*3600, c => 'relaxed/simple' } } );

– modificăm postfix main.cf cu back-up preventiv al fișierului de configurare:

cp /etc/postfix/main.cf /etc/postfix/main.cf.`date +%F.%T`
 vi /etc/postfix/main.cf

– verificați dacă există și introduceți dacă nu există:

content_filter = amavis:[127.0.0.1]:10024

– cautați smtpd_sender_restrictions și comentați linia punând # în fată, și adăugați:

#smtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf
smtpd_sender_restrictions =
   check_sender_access regexp:/etc/postfix/tag_as_originating.re
   permit_mynetworks
   permit_sasl_authenticated
   check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf, regexp:/etc/postfix/tag_as_foreign.re
 

– creăm /etc/postfix/tag_as_originating.re:

vi /etc/postfix/tag_as_originating.re

– cu următorul conținut:

/^/ FILTER amavis:[127.0.0.1]:10026

– creăm /etc/postfix/tag_as_foreign.re:

vi /etc/postfix/tag_as_foreign.re

– cu următorul conținut:

/^/ FILTER amavis:[127.0.0.1]:10024

– modificăm /etc/postfix/master.cf cu back-up în prealabil:

cp /etc/postfix/master.cf /etc/postfix/master.cf.`date +%F.%T`
 vi /etc/postfix/master.cf

– și adaugăm la sfârșit:

10025 inet n - n - - smtpd
 -o content_filter=
 -o local_recipient_maps=
 -o relay_recipient_maps=
 -o smtpd_restriction_classes=
 -o smtpd_client_restrictions=
 -o smtpd_helo_restrictions=
 -o smtpd_sender_restrictions=
 -o smtpd_recipient_restrictions=permit_mynetworks,reject
 -o mynetworks=127.0.0.0/8
 -o strict_rfc821_envelopes=yes
 -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
10027 inet n - n - - smtpd
 -o content_filter=
 -o local_recipient_maps=
 -o relay_recipient_maps=
 -o smtpd_restriction_classes=
 -o smtpd_client_restrictions=
 -o smtpd_helo_restrictions=
 -o smtpd_sender_restrictions=
 -o smtpd_recipient_restrictions=permit_mynetworks,reject
 -o mynetworks=127.0.0.0/8
 -o strict_rfc821_envelopes=yes
 -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
 -o smtp_send_xforward_command=yes

– restartăm postifx și amavis și vedem dacă merg după restart

/etc/init.d/amavis restart
 /etc/init.d/amavis status
 /etc/init.d/postfix restart
  /etc/init.d/postfix status
 

– creăm un folder pentru DKIM-keys

mkdir /etc/postfix/dkim

Acum trecem la ISPConfig să facem modificările:

– adaugăm calea la dkim în configurare:

dkim1

– pentru a adaugă cheia la un domeniu existent, mergem în ispconfig la mail/domain, intrăm în domeniul dorit și generăm cheia:

dkim2

– deschideți DNS și salvați (cheia ar trebui sa fie deja acolo)

dkim3

– la DNS va arăta așa de acum:

dkim4

– ca să verificăm dacă merge, rulăm:

# amavisd-new testkeys
 TESTING#1: default._domainkey.domeniu.com   => pass

– pentru a face permanent automat la adăugarea unui domeniu nou, schimbăm template-ul DNS/TEMPLATES și click pe default, și introducem:

dkim5

– acum un mail trimis din acest domeniu în gmail, în header va zice:

Received-SPF: pass (google.com: domain of xxx@widehosting.net designates xx.xx.xx.xx as permitted sender) client-ip=xx.xx.xx.xx;
Authentication-Results: mx.google.com;
       spf=pass (google.com: domain of xxx@widehosting.net designates xx.xx.xx.xx as permitted sender) smtp.mail=xxx@widehosting.net;
       dkim=pass header.i=@widehosting.net
Received: from localhost (localhost [127.0.0.1])
	by mail.widehosting.net (Postfix) with ESMTP id EE52A16C1D6B
	for <xxx@gmail.com>; Sat, 22 Nov 2014 10:27:10 +0200 (EET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=widehosting.net;
	 h=content-language:x-mailer:content-type:content-type
	:mime-version:message-id:date:date:subject:subject:from:from; s=
	default1416644764; t=1416644830; x=1418459231; bh=u8wGbfWE35bQFW
	cJ9g4AkVktK8C7Ddr7WxSXs7hTOAE=; b=okWQEQ9dNjUjOn//HmGO+ijPfuMPJT
	1+mwRZ1iE2YQZmAExpASUvnzMVvDrkK7ALuJ4A/9jUxIfG8BX8q894salDBC8PPRfg
	1bIIjekmvohQfRKXUC+qH16Oz0np1ZgpfCSIGeyxBQtPrbK/IH08Pvr8fkKy9VvFU
	YFNdxNNxrnQVVQ=

– și unul trimis către yahoo va zice:

Authentication-Results: mta1010.mail.gq1.yahoo.com  from=domeniu.net; domainkeys=neutral (no sig);  from=domeniu.net; dkim=pass (ok)
 Received: from 127.0.0.1  (EHLO mail.domeniu.net) (193.192.xx.xx)
 by mta1010.mail.gq1.yahoo.com with SMTP; Sun, 16 Feb 2014 05:12:21 -0800
 Received: from localhost (localhost [127.0.0.1])
 by mail.domeniu.net (Postfix) with ESMTP id 26C0B16C0F0A
 for <adresa@yahoo.com>; Sun, 16 Feb 2014 15:12:19 +0200 (EET)
 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=domeniu.net;
 h=content-language:x-mailer:content-type:content-type
 :mime-version:message-id:date:date:subject:subject:from:from; s=
 default; t=1392556338; x=1394370739; bh=mwNtAol2fsnZkdjduCGEMY1a
 VV7oQ8T5Yxt+jMn3BXc=; b=nqa3gmhIUVQ/YHR40wAs0i2dkEUH5cVSXXdyTqff
 tD5E0HwHI51vEM6/LFuNnruOkgBj8uaP14UBVdgSuM/X0oPBdNkjVNEz88pUX515
 MfMHeGQ3JuDqvLPvHw9R/s96ZES7yMFQ81mBP7tuZhEF1iK84PwDr9s9OSdpsqs8
 lco=

– belea….

 

Ultimele știri pentru ispconfig:

 

2 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply to Florian Schaal Cancel reply