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 http://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:
– pentru a adaugă cheia la un domeniu existent, mergem în ispconfig la mail/domain, intrăm în domeniul dorit și generăm cheia:
– deschideți DNS și salvați (cheia ar trebui sa fie deja acolo)
– la DNS va arăta așa de acum:
– 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:
– 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:
Thanks for sharing / translating my patch. Would you like to translate the lng-files for ISPConfig?
Hello, I’m working on it already.