Installasi
DomainKeys
dan
DKIM
Debian
Lenny
‐
idris@eepis‐its.edu
‐
Installasi
• #
apt‐get
install
dk‐filter
dkim‐filter
Buat
key
• #
openssl
genrsa
‐out
private.key
1024
• #
openssl
rsa
‐in
private.key
‐out
public.key
‐ pubout
‐ouDorm
PEM
• Kemudian
pindahkan
kunci
ke
tempat
yang
lebih
aman.
• #
cp
private.key
/etc/posDix/domainkey.key
• #
cp
private.key
/etc/posDix/dkim.key
Config
DK‐Filter
Konfigurasi
DomainKeys
Konfigurasi
dk‐filter
terdapat
pada
satu
berkas,
yaitu:
/etc/default/dk‐filter
Pada
contoh
kali
ini,
domain
yang
digunakan
diasumsikan
adalah:
contoh.com
dan
selector
yang
dipakai
adalah:
surat.
[...]
#
Sane
defaults:
log
to
syslog
DAEMON_OPTS="‐l"
#
Sign
for
domain.tld
with
key
in
/etc/mail/domainkey.key
using
#
selector
'2007'
(e.g.
2007._domainkey.domain.tld)
DAEMON_OPTS="$DAEMON_OPTS
‐d
contoh.com
‐s
/etc/posPix/domainkey.key
‐S
surat"
#
See
dk‐filter(8)
for
a
complete
list
of
opTons
#
#
Uncomment
to
specify
an
alternate
socket
#SOCKET="/var/run/dk‐filter/dk‐filter.sock"
#
default
#SOCKET="inet:54321"
#
listen
on
all
interfaces
on
port
54321
SOCKET="inet:8892@localhost"
#
listen
on
loopback
on
port
8892
#SOCKET="inet:
[email protected]"
#
listen
on
192.0.2.1
on
port
12345
[...]
Variabel
DAEMON_OPTS
sangat
penVng
dalam
pengaturan.
Untuk
argumen
yang
lebih
lengkap
silakan
merujuk
pada
manual
dk‐filter.
$
dk‐filter
help
Config
DKIm‐Filter
• dkim‐filter
memiliki
dua
buah
berkas
konfigurasi,
yaitu:
/etc/dkim‐filter.conf
dan
/ etc/default/dkim‐filter
• Gunakan
editor
teks
kesayangan
Anda
dan
berikut
adalah
contoh
berkas
/etc/dkim‐ filter.conf
yang
telah
disesuaikan
dengan
kebutuhan
umumnya.
[...]
Syslog
yes
Domain
contoh.com
KeyFile
/etc/posVfx/dkim.key
Selector
surat
AutoRestart
yes
AutoRestartRate
10/1h
Background
yes
CanonicalizaVon
simple
DNSTimeout
5
Mode
sv
SignatureAlgorithm
rsa‐sha256
SubDomains
no
#UseASPDiscard
no
#Version
rfc4871
X‐Header
no
StaVsVcs
/var/log/dkim‐filter/dkim‐stats
#KeyList
/etc/dkim‐keys.conf
#ReportInfo
yes
#QuaranVne
yes
#RequiredHeaders
yes
[...]
•
Berkas
/etc/dkim‐filter.conf
merupakan
berkas
yang
sangat
penVng.
Berkas
ini
menyediakan
berbagai
informasi
yang
dibutuhkan
mengenai
selector
(yang
digunakan
untuk
request
DNS
dan
verifikasi
e‐mail)
dan
penggunaan
kunci
penandatangan.
•
Selanjutnya
berikut
adalah
contoh
untuk
berkas
/etc/default/dkim‐filter.
Berkas
ini
digunakan
untuk
menghubungkan
milter
ke
MTA.
[...]
#
Command‐line
opVons
specified
here
will
override
the
contents
of
#
/etc/dkim‐filter.conf.
See
dkim‐filter(8)
for
a
complete
list
of
opVons.
#DAEMON_OPTS=""
#
#
Uncomment
to
specify
an
alternate
socket
#
Note
that
selng
this
will
override
any
Socket
value
in
dkim‐filter.conf
#SOCKET="local:/var/run/dkim‐filter/dkim‐filter.sock"
#
Debian
default
#SOCKET="inet:54321"
#
listen
on
all
interfaces
on
port
54321
SOCKET="inet:8891@localhost"
#
Ubuntu
default
‐
listen
on
loopback
on
port
8891
#SOCKET="inet:
[email protected]"
#
listen
on
192.0.2.1
on
port
12345
[...]
• Konfigurasi
PosDix
• PerhaVkan
bahwa
pada
pengaturan
DomainKeys
dan
DKIM
di
atas,
milter
yang
digunakan
untuk
terhubung
ke
MTA
memanfaatkan
dua
buah
socket.
Masing‐masing
DomainKeys
pada
port
8892
dan
DKIM
pada
port
8891.
Sekarang
ubah
berkas
/etc/posDix/main.cf
dan
masukkan
data
di
bawah
ini
pada
bagian
akhir
berkas.
[...]
#
DomainKeys
and
DKIM
milter_default_acVon
=
accept
milter_protocol
=
2
smtpd_milters
=
inet:localhost:8891
non_smtpd_milters
=
inet:localhost:8891
[...]
• /etc/posDix/master.cf
127.0.0.1:10025
inet
n
‐
‐
‐
‐
smtpd
‐o
content_filter=
‐o
milter_default_acVon=accept
‐o
milter_macro_daemon_name=ORIGINATING
‐o
smtpd_milters=inet:127.0.0.1:8892
#
Add
this
to
the
PosDix
config
‐o
local_recipient_maps=
‐o
relay_recipient_maps=
‐o
smtpd_restricVon_classes=
‐o
smtpd_delay_reject=no
‐o
smtpd_client_restricVons=permit_mynetworks,reject
‐o
smtpd_helo_restricVons=
‐o
smtpd_sender_restricVons=
‐o
smtpd_recipient_restricVons=permit_mynetworks,reject
‐o
mynetworks_style=host
‐o
mynetworks=127.0.0.0/8
‐o
strict_rfc821_envelopes=yes
‐o
smtpd_error_sleep_Vme=0
‐o
smtpd_soo_error_limit=1001
‐o
smtpd_hard_error_limit=1000
‐o
smtpd_client_connecVon_count_limit=0
‐o
smtpd_client_connecVon_rate_limit=0
‐o
receive_override_opVons=no_header_body_checks,no_unknown_recipient_checks,no_address_mappings
Entry
di
DNS
Server
Buat
dua
buah
record
jenis
TXT
pada
DNS.
Dua
buah
record
ini
akan
digunakan
oleh
penerima
dalam
melakukan
verifikasi
e‐mail.
Record
DNS
tersebut
seperV
berikut.
_domainkey.contoh.com.
IN
TXT
"t=y;
o=~"
Argumen
"t=y"
berarV
bahwa
domain
tersebut
dalam
test
mode,
dan
nyatanya
menandakan
telah
akVf,
dan
argumen
"o=~;"
berarV
hanya
beberapa
e‐mail
yang
ditandatangani
dalam
domain
ini.
Jika
ingin
mengindikasikan
bahwa
seluruh
e‐mail
ini
ditandatangani
gunakan
argumen
"o=‐;".
Berikutnya
buat
record
di
bawah
ini.
surat._domainkey.contoh.com.
IN
TXT
"k=rsa;
t=y;
p=PpY...QAB"
Untuk
nilai
argumen
p=
adalah
apa
yang
terdapat
pada
kunci
public,
public.key
yang
telah
dibuat
pada
langkah
paling
awal.
PasVkan
menyalin
seluruh
isi
pada
berkas
tersebut,
terkecuali
tanda
komentar:
‐‐‐‐‐BEGIN
PUBLIC
KEY‐‐‐‐‐
dan
‐‐‐‐‐END
PUBLIC
KEY‐‐‐‐‐‐‐
Contoh
public.key
adalah
sebagai
berikut.
$
cat
public.key
‐‐‐‐‐BEGIN
PUBLIC
KEY‐‐‐‐‐
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC/KoknZ63F/FCdXniCmez0eCI6
P0o3Zq7tTvNaWau6+rvBtdJH2c3hW7HGwSxIdBDxJauf9Y4+YXFnOgtkMd+SS6CJ
YDgDmYuR1PDXeZmlcTu0HQDReHbbNV19rF7yUapJC48Xg4kV6bteVDImy2oIx52u
YBzDNoyqO6LqZQZdkwIDAQAB
‐‐‐‐‐END
PUBLIC
KEY‐‐‐‐‐
test
• Send
to
:
check‐auth@verifier.port25.com
=============================================== ===========
Summary
of
Results
=============================================== ===========
SPF
check:
pass
DomainKeys
check:
pass
DKIM
check:
pass
Sender‐ID
check:
pass
SpamAssassin
check:
ham