ドメインのセキュリティを試してみた(途中) spf,dkim,dmarc,dnssec ver 0.1

44
2014/11/01 Sat すごい合同勉強会 2014 in 広島 ドメインのセキュリティを 試してみた(途中) SPF , DKIM , DMARC , DNSSEC

Upload: yoshitake-takata

Post on 02-Jul-2015

450 views

Category:

Internet


0 download

DESCRIPTION

ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1 2014/11/01 すごい合同勉強会2014 in 広島 http://j.mp/greatstudy2014 注: DNSSEC 等色々間違えているのでゴメンなさい。

TRANSCRIPT

Page 1: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

2014/11/01 Satすごい合同勉強会

2014 in 広島

ドメインのセキュリティを試してみた(途中)SPF , DKIM , DMARC ,DNSSEC

Page 2: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

お約束

この発表は個人的な物で

仕事や所属等は全然関係

ありません。

誤記や間違い等あれば

ご指摘頂けると

助かります。

@takatayoshitake

Page 3: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

自己紹介@takatayoshitake

広島を中心に勉強会に出没。広島サーバユーザ友の会(仮称)や

日本CloudStackユーザ会 広島支部やオープンソースカンファレンスのお手伝いやいろんな勉強会で

Ustとかやってます。

Page 4: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

会場のみなさんに質問

A. SPFB. DKIMC. DMARCD. DNSSEC

独自ドメイン持ってる方で下記に対応してる方

Page 5: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

それぞれの役割

メール

–SPF , DKIM , DMARC電子メールの送信者偽称を防ぐ送信ドメイン認証技術

ドメイン(DNS)

–DNSSECDNSデータの偽装を検知する

DNS拡張機能

Page 6: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

なぜ必要なの?

迷惑メールやフィッシング等が増加 対策が必要

Page 7: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

今回のテスト環境

ドメインhiroshimaserver.com

サーバIP 133.242.227.23

OS CentOS 6.5

※今回はさくらクラウドで試して

みましたがConoHaVPSでも

多分概ね同じ

Page 8: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

検証用ドメイン .com ¥196/年

Page 9: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

2014/11/01 AM 07:29 JST 取得

Page 10: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

DNSの準備yum update

yum install bind bind-chroot

rpm -q bind bind-chroot

bind-9.8.2-0.30.rc1.el6.x86_64

bind-chroot-9.8.2-0.30.rc1.el6.x86_64

cp -pi /etc/sysconfig/named /etc/sysconfig/named.org

vi /etc/sysconfig/named

追加

OPTIONS="-4"

Page 11: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

named.confcp -pi /etc/named.conf /etc/named.conf.org

vi /etc/named.conf

listen-on port 53 { 127.0.0.1; }; ↓

// listen-on port 53 { 127.0.0.1; };

listen-on-v6 port 53 { ::1; }; ↓

listen-on-v6 port 53 { none; };

allow-query { localhost; }; ↓

allow-query { any; };

recursion yes; ↓

recursion no;

version "unknown";

Page 12: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

named.conf zone追加

zone "hiroshimaserver.com" IN {

type master;

file "master/hiroshimaserver.com.zone";

};

Page 13: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

zone

mkdir /var/named/master/

cd /var/named/master/

cp /var/named/named.empty /var/named/master/hiroshimaserver.com.zone

vi /var/named/master/hiroshimaserver.com.zone

Page 14: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

# /var/named/master/hiroshimaserver.com.zone

$TTL 300 ; 5m

@ IN SOA @ ns1.hiroshimaserver.com. (

2014110104 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

IN NS ns1.hiroshimaserver.com.

IN NS ns2.hiroshimaserver.com.

IN MX 50 mail1.hiroshimaserver.com.

host1 IN A 133.242.227.23

ns1 IN A 133.242.227.23

ns2 IN A 133.242.227.23

mail1 IN A 133.242.227.23

smtp IN A 133.242.227.23

pop IN A 133.242.227.23

www IN A 133.242.227.23

Page 15: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

設定チェック,サービス開始

chown -R named:named /var/named/master/

/usr/sbin/named-checkconf /etc/named.conf

/usr/sbin/named-checkzone hiroshimaserver.com /var/named/master/hiroshimaserver.com.zone

service named start

dig @localhost ns1.hiroshimaserver.com a

dig @localhost hiroshimaserver.com soa

dig @localhost hiroshimaserver.com mx

Page 16: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

メールサーバConoHaの薄い本電子版Vol.2「メールサーバーを立てよう」

https://www.conoha.jp/blog/tech/books/1522.html

# rpm -q postfix

postfix-2.6.6-6.el6_5.x86_64

vi /etc/postfix/main.cf

cp -pi /etc/postfix/main.cf /etc/postfix/main.cf.org

vi /etc/postfix/main.cf

Page 17: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

myhostname = mail1.hiroshimaserver.com

mydomain = hiroshimaserver.com

myorigin = $mydomain

inet_interfaces = all

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

home_mailbox = Maildir/

smtpd_banner = $myhostname ESMTP unknown

smtpd_sasl_auth_enable = yes

smtpd_sasl_local_domain = $myhostname

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

mailbox_size_limit = 1073741824

main.cf

Page 18: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

postconf -n

cp -pi /etc/postfix/master.cf /etc/postfix/master.cf.org

vi /etc/postfix/master.cf

submission inet n - n - - smtpd

chkconfig saslauthd on

chkconfig --list saslauthd

service saslauthd start

service postfix restart

Page 19: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

dovecot

yum install dovecot

cp -pi /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.org

vi /etc/dovecot/conf.d/10-mail.conf

mail_location = maildir:~/Maildir

cp -pi /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.org

vi /etc/dovecot/conf.d/10-auth.conf

disable_plaintext_auth = no

auth_mechanisms = plain login

Page 20: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

cp -pi /etc/dovecot/conf.d/10-master.conf /etc/dovecot/conf.d/10-master.conf.org

vi /etc/dovecot/conf.d/10-master.conf

# Postfix smtp-auth

unix_listener /var/spool/postfix/private/auth {

mode = 0666

user = postfix

group = postfix

}

Page 21: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

dovecot -n

chkconfig dovecot on

chkconfig --list dovecot

service dovecot start

Page 22: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

テスト用 telnet インストール

yum install telnet

telnet localhost 25

telnet localhost 587

テストユーザ追加

useradd -s /sbin/nologin mailuser01

passwd mailuser01

Page 23: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

テストメール送信

telnet mail1.hiroshimaserver.com 25

helo xxxx

mail from: [email protected]

rcpt to: [email protected]

data

From: [email protected]

To: [email protected]

Subject: TEST MAIL YYYY/MM/DD HH:MM

TEST

.

Page 24: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

テストメール受信

telnet pop.hiroshimaserver.com 110

user mailuser01

pass xxxxxxxxx

list

retr 1

quit

Page 25: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

SPF

vi /var/named/master/hiroshimaserver.com.zone

hiroshimaserver.com. IN TXT"v=spf1 ip4:133.242.227.23 ~all"

hiroshimaserver.com. IN SPF "v=spf1 ip4:133.242.227.23 ~all"

※serialを増加させるのを忘れずに

rndc reload

dig @localhost hiroshimaserver.com txt

dig @localhost hiroshimaserver.com spf

http://www.sendmail.co.jp/sa/spfcheck.html

Page 26: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

DKIMrpm -q opendkim

yum install opendkim

# rpm -q opendkim

opendkim-2.9.0-2.el6.x86_64

mkdir /etc/opendkim/keys/hiroshimaserver.com

/usr/sbin/opendkim-genkey -D /etc/opendkim/keys/hiroshimaserver.com/ -d hiroshimaserver.com -s default

ls -l /etc/opendkim/keys/hiroshimaserver.com/

chown -R opendkim:opendkim /etc/opendkim/keys

mv /etc/opendkim/keys/hiroshimaserver.com/default.private /etc/opendkim/keys/hiroshimaserver.com/default

※今回は default で作成しますが本来はシリアル等入れて定期的に更新する

Page 27: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

opendkim.conf

cp -pi /etc/opendkim.conf /etc/opendkim.conf.org

vi /etc/opendkim.conf

Mode sv

##KeyFile /etc/opendkim/keys/default.private

KeyTable /etc/opendkim/KeyTable

SigningTable refile:/etc/opendkim/SigningTable

ExternalIgnoreListrefile:/etc/opendkim/TrustedHosts

InternalHosts refile:/etc/opendkim/TrustedHosts

Page 28: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

KeyTable

cp -pi /etc/opendkim/KeyTable /etc/opendkim/KeyTable.org

vi /etc/opendkim/KeyTable

default._domainkey.hiroshimaserver.com hiroshimaserver.com:default:/etc/opendkim/keys/hiroshimaserver.com/default

Page 29: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

TrustedHosts

cp -pi /etc/opendkim/TrustedHosts /etc/opendkim/TrustedHosts.org

vi /etc/opendkim/TrustedHosts

127.0.0.1localhost

mail1.hiroshimaserver.com

hiroshimaserver.com

Page 30: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

SigningTable

cp -pi /etc/opendkim/SigningTable /etc/opendkim/SigningTable.org

vi /etc/opendkim/SigningTable

*@hiroshimaserver.com default._domainkey.hiroshimaserver.com

Page 31: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

Postfix - main.cf

vi /etc/postfix/main.cf

#opendkim

smtpd_milters = inet:127.0.0.1:8891

non_smtpd_milters = $smtpd_milters

milter_default_action = accept

Page 32: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

DNS DKIM

cat /etc/opendkim/keys/hiroshimaserver.com/default.txt

default._domainkey IN TXT ( "v=DKIM1; k=rsa; " "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+urIo0ohDGrETcuo2lc9Hv1RJ7cX/430Ls1LrNZNadbqpNuDna3NdWxEgL5WEALFn6yPd0BuSVlaiMYs+D1qzqEJrvCpRNr1ko69ZAJZzerMRYiBINdT8ABWa92Pg+SlfaDEs1NtQ7cafY6SK97n0Ukxw1UHMBpzTgsrJL0vMQwIDAQAB" ) ; ----- DKIM key default for hiroshimaserver.com

_adsp._domainkey.hiroshimaserver.com. IN TXT "dkim=unknown"

vi /var/named/master/hiroshimaserver.com.zone

上記txtの中身を追加

※シリアルを加算

rndc reload

Page 33: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

opendkim

service opendkim start

service postfix restart

Page 34: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

送信テスト

telnet localhost 25

helo mail1.hiroshimaserver.com

mail from: [email protected]

rcpt to: [email protected]

data

From: [email protected]

To: [email protected]

Subject: TEST YYYY/MM/DD HH:MM

TEST

.

quit

※gmail等にメールを送ってメッセージのソース表示で判定結果を確認

Page 35: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

DMARC (DNS設定のみ)

vi /var/named/master/hiroshimaserver.com.zone

_dmarc.hiroshimaserver.com. IN TXT "v=DMARC1\; p=none\; rua=mailto:[email protected]\; ruf=mailto:[email protected]"

※シリアルを加算

rndc reload

Page 36: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

テスト結果

Received-SPF: pass (google.com: domain of [email protected] designates 133.242.227.23 as permitted sender) client-ip=133.242.227.23;

Authentication-Results: mx.google.com;

spf=pass (google.com: domain of [email protected] designates 133.242.227.23 as permitted sender) [email protected];

dkim=pass [email protected];

dmarc=pass (p=NONE dis=NONE) header.from=hiroshimaserver.com

Received: from mail1.hiroshimaserver.com (localhost [IPv6:::1])

by mail1.hiroshimaserver.com (Postfix) with SMTP id 16BFC60672

for <[email protected]>; Sat, 1 Nov 2014 15:11:43 +0900 (JST)

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hiroshimaserver.com;

s=default; t=1414822343;

bh=q5cyARPl5zX/knmvCnEy11G7/r6gcljJ44qrvv5DErY=;

h=From:To:Subject:Date;

b=liRt7CwuIswOjW5+JYJRYmxaQe9W2QzZF98LvfRF55AWCbolKPItsZq/ztKuxLRXH

QDiZvozmL7pKlYCzUabCQG+kwuZo20PfbCY4xQnqKO3ocLpESBukudru41RnzwzXFf

GnUrIjFQmaxxA8E070qFpgAkXXTvLr51AyT6LVlI=

Page 37: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

dnssec

mkdir /var/named/master/keys

chown -R named:named /var/named/master/keys

cp -pi /etc/named.conf /etc/named.conf.YYYYMMDD

vi /etc/named.conf

key-directory "master/keys";

update-policy local;

auto-dnssec maintain;

Page 38: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

named-checkconf /etc/named.conf

cd /var/named/master/keys

dnssec-keygen -a RSASHA256 -b 2048 -r /dev/urandom -f ksk hiroshimaserver.com

ls -l

chown named:named *

rndc loadkeys hiroshimaserver.com

KSK

Page 39: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

DS

dnssec-dsfromkey Khiroshimaserver.com.+008+40447.key > dsset-hiroshimaserver.com

# cat dsset-hiroshimaserver.com

hiroshimaserver.com. IN DS 40447 8 1 16B3F146217ABDB046C7F4B58CD876FC8AE175F4

hiroshimaserver.com. IN DS 40447 8 2 A0709807AA9AACEDDAAE3C0AE565321C1FAA3F33774974E863FF743B 7255CB84

Page 40: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

zone編集時は freeze

cd /var/named/master/

rndc freeze hiroshimaserver.com

vi hiroshimaserver.com.zone

rndc thaw hiroshimaserver.com

Page 41: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

DSレコードの登録

DNSレジストラによって異なります。

※どなたかGodaddyへのDS登録方法をご存知の方が居られたら教えて下さい。

.jpドメインでJPDirectでは出来ました。

※JPDirectは新規受付停止(泣

Page 42: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

DNSSEC Check

http://dnssec-debugger.verisignlabs.com/

Page 43: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

まとめ

DNS等のセキュリティの検証は間違えると通信が出来なくなったりする危険がありますが,テスト用のドメインは数百円で買えるのでぜひチャレンジしてみましょう!・・・失敗しても痛くない(汗

Page 44: ドメインのセキュリティを試してみた(途中) SPF,DKIM,DMARC,DNSSEC ver 0.1

ご清聴

ありがとう

ございました。

今日は間に合いません

でしたが,DNSSEC

出来たらUpdate予定