2015/11/09

DKIM導入

1.環境

CentOS 6.7 x86_64

2.OpenDkim設定

epelリポジトリ追加

# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6

opendkimインストール

# yum install opendkim

公開鍵、秘密鍵作成

# opendkim-genkey -D /etc/opendkim/keys -d mylines.org -s 20151108-key
/etc/opendkim/keys/20151108-key.private //秘密鍵
/etc/opendkim/keys/20151108-key.txt //公開鍵
# chown opendkim. /etc/opendkim/keys/20151108-key.* //所有者変更

ゾーンファイルに公開鍵レコードとADSPレコードを追加

# vi /var/named/chroot/var/named/mylines.org.zone
20151108-key._domainkey.mylines.org. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDUbKMp1yzlRGwygs/D5nb5L2Mkui2mvWqiVoETbzttz5XW5+yqwGAigqM9D+PUR7h0vRWrMEMhlOH8FuQJEo9WiDcq6UiZAlbQ4IVaCKiVZi43MfJNNbXFVLAw4mv3A1y0Xvn46QY0FrIvjbOU4JJ2F7FiBzIMY7ER3xFsM35QlwIDAQAB"
_adsp._domainkey.mylines.org. IN TXT "dkim=unknown"

レコード確認

# service named restart
# dig 20151108-key._domainkey.mylines.org txt
;; ANSWER SECTION:
20151108-key._domainkey.mylines.org. 3600 IN TXT "v=DKIM1\; k=rsa\; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDUbKMp1yzlRGwygs/D5nb5L2Mkui2mvWqiVoETbzttz5XW5+yqwGAigqM9D+PUR7h0vRWrMEMhlOH8FuQJEo9WiDcq6UiZAlbQ4IVaCKiVZi43MfJNNbXFVLAw4mv3A1y0Xvn46QY0FrIvjbOU4JJ2F7FiBzIMY7ER3xFsM35QlwIDAQAB"
# dig _adsp._domainkey.mylines.org txt
;; ANSWER SECTION:
_adsp._domainkey.mylines.org. 3600 IN TXT "dkim=unknown"

OpenDkimのconfファイル変更

# vi /etc/opendkim.conf
Mode    v
 ↓
Mode sv

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

#KeyTable /etc/opendkim/KeyTable
 ↓
KeyTable refile:/etc/opendkim/KeyTable

#SigningTable refile:/etc/opendkim/SigningTable
 ↓
SigningTable refile:/etc/opendkim/SigningTable

#ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
 ↓
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts

#InternalHosts refile:/etc/opendkim/TrustedHosts
 ↓
InternalHosts refile:/etc/opendkim/TrustedHosts
# vi /etc/opendkim/KeyTable
#default._domainkey.example.com example.com:default:/etc/opendkim/keys/default.private
20151108-key._domainkey.mylines.org mylines.org:20151108-key:/etc/opendkim/keys/20151108-key.private
# vi /etc/opendkim/SigningTable
#example.com default._domainkey.example.com
*@mylines.org 20151108-key._domainkey.mylines.org
# vi /etc/opendkim/TrustedHosts
127.0.0.1

OpenDkim スタート&登録

# service opendkim start
# chkconfig opendkim on

3.Postfix設定

# vi /etc/postfix/main.cf //最終行に追加
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
# service postfix restart //postfix再起動

4.動作確認

  1. Mail@mylines.orgからtest@gmail.com宛にテストメールを送る
    メールヘッダ確認
Dkim-Signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=mylines.org; s=20151108-key; t=1446967794; bh=dYCBGdXYXm7VH/8DhOb6ToDJxu+DlZMIOV3QrmUEzYQ=; h=From:Subject:Date:To:From; b=TdXmM13P/agkXgI+Ne2dHBSxAG1xu7e4dL/5UZl56BiWYA7+eGwF09YlFZCVr5fcN WEAgZIqBIOeu6GpTZTgVkLs0/hpiqVS+ElsRzuUd3g6HJKDYwSQNVHwIXZqddtzc9i IDXa8pK68XOx9pdhg6Sc2mUgYqGjNPjjSkCCT/7s=
Received-Spf:pass (google.com: domain of Mail@mylines.org designates 49.212.197.167 as permitted sender) client-ip=49.212.197.167;
Dkim-Filter:OpenDKIM Filter v2.10.3 mail.mylines.org CE4053E0191
Authentication-Results:mx.google.com; spf=pass (google.com: domain of Mail@mylines.org designates 49.212.197.167 as permitted sender) smtp.mailfrom=Mail@mylines.org; dkim=pass header.i=@mylines.org
  1. test@gmail.comからMail@mylines.org宛にテストメールを送る
    # less /var/log/maillog
Nov  8 16:42:34 sakura opendkim[7592]: 9D6733E0191: DKIM verification successful

参考


SPF導入-Postfix

1.事前準備

以前に途中で設定を投げ出していたので古いモジュールを削除
# cd pypolicyd-spf-1.2
# python setup.py install --record remove.txt
# cat remove.txt |xargs rm -vrf
removed `/usr/lib/python2.6/site-packages/policydspfsupp.py'
removed
`/usr/lib/python2.6/site-packages/policydspfuser.py'
removed `/usr/lib/python2.6/site-packages/policydspfsupp.pyc'

removed `/usr/lib/python2.6/site-packages/policydspfuser.pyc'
removed
`/usr/bin/policyd-spf'
removed `/usr/share/man/man1/policyd-spf.1'

removed `/usr/share/man/man5/policyd-spf.conf.5'
removed
`/etc/python-policyd-spf/policyd-spf.conf'
removed `/usr/share/man/man5/policyd-spf.peruser.5'

removed `/usr/lib/python2.6/site-packages/pypolicyd_spf-1.2-py2.6.egg-info'

2.設定

ダウンロード

  • pydns-2.3.6.tar
  • pypolicyd-spf-1.3.2.tar.gz
  • pyspf-2.0.12.tar.gz

インストール

  • pydns
    # tar xvf pydns-2.3.6.tar
    # cd pydns-2.3.6
    # python setup.py install
  • pypolicyd-spf
    # tar zxvf pypolicyd-spf-1.3.2.tar.gz
    # cd pypolicyd-spf-1.3.2
    # python setup.py install
  • pyspf-2.0.12
    # tar zxvf pyspf-2.0.12.tar.gz
    # cd pyspf-2.0.12
    # python setup.py install

モジュールの動作確認

# python /usr/bin/policyd-spf /etc/python-policyd-spf/policyd-spf.conf
//何も表示されなければOK

設定変更

  • confファイルをコメント付きファイルに変更
    # mv /etc/python-policyd-spf/policyd-spf.conf /etc/python-policyd-spf/policyd-spf.conf.org
    # cp pypolicyd-spf-1.3.2/policyd-spf.conf.commented /etc/python-policyd-spf/policyd-spf.conf
  • SPF判定のみをヘッダに追加するように変更(rejectなし)
    # vi /etc/python-policyd-spf/policyd-spf.conf
#HELO_reject = SPF_Not_Pass //comment
HELO_reject = False //add
#Mail_From_reject = Fail //comment
Mail_From_reject = False //add

Postfix設定

  • master.cf
    # vi /etc/postfix/master.cf //最終行に以下を追加
#spf //comment
policyd-spf unix - n n - 0 spawn
user=nobody argv=/usr/bin/python /usr/bin/policyd-spf /etc/python-policyd-spf/policyd-spf.conf
  • mail.cf
    # vi /etc/postfix/main.cf //check_policy_service以降を追加する
#smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination,check_policy_service unix:private/policyd-spf
  • 再起動
    # service postfix restart

3.動作確認

  • gmailから@mylines.org宛に送ってみる
Received-Spf:Pass (sender SPF authorized) identity=mailfrom; client-ip=209.85.220.48; helo=mail-pa0-f48.google.com; envelope-from=test@gmail.com; receiver=Mail@mylines.org 
  • 送信元を詐称して@mylnies.org宛に送ってみる
Received-Spf:Softfail (domain owner discourages use of this host) identity=mailfrom; client-ip=112.78.117.190; helo=sv9.star-plus.netowl.jp; envelope-from=test@gmail.com; receiver=Mail@mylines.org 

参考


2015/11/08

SPF導入-BIND編

BINDゾーン編集

# vi /var/named/chroot/var/named/mylines.org.zone
@ IN TXT "v=spf1 +ip4:49.212.197.167 -all" //add

テスト

Mail@mylines.org からgmailにメールを送ってヘッダを確認する
Received-Spf:pass (google.com: domain of Mail@mylines.org designates 49.212.197.167 as permitted sender) client-ip=49.212.197.167;
Authentication-Results:mx.google.com; spf=pass (google.com: domain of Mail@mylines.org designates 49.212.197.167 as permitted sender) smtp.mailfrom=Mail@mylines.org

2013/08/28

1812J 再設定5

目的:1812Jに再帰ACLを設定
環境1:cisco1812J Version 12.4(24)
参考:http://www.infraexpert.com/study/acl6.htm
外部インターフェースDialer1に再帰ACLを設定して
内部ネットワークから外部ネットワークに出て行くトラフィック
reflect RACLで記憶して
外部ネットワークから内部ネットワークへのトラフィック
httpd用に80のみ固定で許可し
それ以外は、reflect RACLを元に戻ってきたトラフィックか判断して
通過させるかを決定する。
外部インターフェース用のACL設定(内部から外部に出て行く時用)
1812J(config)#ip access-list extended RACL-OUTB
#RACLを設定してパケットが戻った時の判断用に設定
1812J(config-ext-nacl)#permit ip any any reflect RACL timeout 300
外部インターフェースのアウトバウンドにACLを適用
1812J(config)#interface Dialer1
1812J(config-if)#ip access-group RACL-OUTB out

外部インターフェース用のACL設定(外部から内部に入っていく時用)
1812J(config)#ip access-list extended RACL-INB
#httpdの公開用に許可
1812J(config-ext-nacl)##permit tcp any any eq www
#RACLを元に戻ってきたトラフィックを通過させるかどうか判断する
1812J(config-ext-nacl)#)#evaluate RACL       
外部インターフェースのインバウンドにACLを適用
1812J(config)#interface Dialer1
1812J(config-if)#ip access-group RACL-INB in

centos 6 設定 zabbix ログ監視

環境1:CentOS 6.4 ×86_64
環境2:Zabbix-Server 2.06 Zabbix-Agent 2.06
参考1:http://www.checksite.jp/zabbix-log-watch/
参考2:http://www.sraoss.co.jp/technology/zabbix/introduction/02-2ndstep.php監視対象ログ:ルータのログをsyslogサーバに転送したものを監視
・zabbix-agent設定
#vi zabbix_agentd.confServerActive=127.0.0.1
RefreshActiveChecks=120 <- #を外す
AllowRoot=1 <- #を外して0を1に変えて有効にする(root権限のファイルを読めるようにする)
・zabbix-server設定
Web画面で監視アイテムを追加
  ホスト Zabbix server
  名前 1812J_ネットワークログ
  タイプ Zabbix agent(アクティブ)
  キー log[/var/log/networklog]
  データ型 ログ
  更新間隔(秒) 30
  ヒストリの保存期間(日) 90
  ログの時間の形式 空白
  アプリケーションの作成 LogWatch
  アプリケーション 空白
  説明 空白
  ステータス 有効
保存
Web画面でトリガーを設定する
  説明 空白
  アイテム そのまま
  条件式 error
  深刻度 警告
  コメント 空白
  URL 空白
  無効 チェック入れない
保存
テストのためログにerrorキーワードを追加
#echo “network error test” >> /var/log/networklog
Web画面でerrorの障害が出ているか確認
ほぼ参考サイトそのままです

2013/08/23

1812J 再設定4

目的:1812Jのログをrsyslogサーバへ転送
環境1:CentOS 6.4 ×86_64
環境2:cisco1812J Version 12.4(24) 
参考:http://www41375u.sakura.ne.jp/network/cisco_sysmanage/logging.html参考:http://shirokuma-industry.com/wordpress/?p=759
ciscoのログ関連
タイムゾーンJSTにする
#(conf)clock timezone JST 9
ログとデバックの表示時間の仕方を設定
#(conf)service timestamps debug datetime msec localtime
#(conf)service timestamps log datetime msec localtime
時間設定
#clock set 19:56:00 Aug 21 2013
時間確認
#show clock
19:56:27.195 JST Wed Aug 21 2013
ログレベルの概要
Aug 21 20:05:28.543: %SYS-5-CONFIG_I:
Configured from console by admin on
%SYS-5-CONFIG_I  <-ここの5がログレベル
7 debug デバッグレベルメッセージ
6 info 情報メッセージ
5 notice 通知状態
4 warning 警告状態
3 error エラー状態
2 crit 致命的な状態
1 alerts 早急に対応しなければならない状態
0 emerg システムが利用できないような緊急状態
ログレベルの出力設定
#(conf)logging on
ログ出力を有効にする。デフォルトでオン。
no logging onにすると一切のログ出力がなくなる。
#(conf)logging buffered [size] [ログレベル]
ログを内部バッファに保存したい場合に使用し、show loggingで内容を表示する。
ログのsizeを指定しない場合は4096バイト。
ログレベルを指定しない場合はdebug。
#(conf)logging console [ログレベル]
コンソールに出力するログレベルの設定とログ出力を有効にする。
no logging consoleにするとログ出力が無効になる
#(conf)logging monitor [ログレベル]
telnet接続時に出力するログレベルの設定とログ出力を有効にする。
no logging monitorにするとログ出力が無効になる
syslogサーバへログを送る設定
#logging trap [ログレベル]
syslogサーバに出力するログレベルの設定とログ出力を有効にする。
no logging trapにするとログ出力が無効になる
#logging host IPアドレス
syslogサーバを指定
#logging facility ファシリティ名
facility名を指定(facilityは分類のこと)
#logging origin-id hostname
ログに目印をつけるための名前を入力
hostnameがログの前につくようになる
#logging source-interface インターフェース
ログを出力する際に使用する送信元インターフェースを設定
CentOS設定
ログを保存するファイルを作成
# touch /var/log/networklog
rsyslogの設定
# vi /etc/rsyslog.conf
# Provides UDP syslog reception
$ModLoad imudp <- #を外す
$UDPServerRun 514 <- #を外す
# Provides TCP syslog reception
$ModLoad imtcp      <- #を外す
$InputTCPServerRun 514  <- #を外す
# Save network device log
local0.* /var/log/networklog <-追加
*.info;mail.none;local0.none /var/log/messages  <- local0.noneを追加
ログをローテーションさせる
# vi /etc/logrotate.d/syslog/var/log/networklog <-追加
firewall
tcp/udpの514を開く
rsyslog再起動
#service rsyslog restart
システムロガーを停止中: [ OK ]
システムロガーを起動中: [ OK ]
ログの確認
#tail -f /var/log/networklog

2013/08/19

centos 6 設定 bind

環境:CentOS 6.4 ×86_64  bind 9.8.2 さくらのVPS
参考:http://www.oss-d.net/bind/9.7/in_zone参考:http://open-groove.net/lpic/dns-named-conf/
外向けのみのコンテンツDNSサーバでスレーブはさくらのDNSを利用
・bindインストール
#yum install bind bind-chroot
chrootファイルコピー
#cd /usr/share/doc/bind-9.8.2/sample/
#cp -rp etc/* /var/named/chroot/etc/
#cp -rp var/named/* /var/named/chroot/var/named/
#chown -R root:named /var/named/chroot
・ルートディレクトリが変更されていることを確認
#less /etc/sysconfig/named 
ROOTDIR=/var/named/chroot 
・bindをipv4に限定
# vi /etc/sysconfig/named
OPTIONS=”-4″
bind設定
#vi /var/named/chroot/etc/named.conf 
options {
#listen-on port 53 { 127.0.0.1; }; #<-リッスンするIPを限定しない
#listen-on-v6 port 53 { ::1; }; #<-リッスンするIPを限定しない
directory “/var/named”;
dump-file “/var/named/data/cache_dump.db”;
statistics-file “/var/named/data/named_stats.txt”;
memstatistics-file “/var/named/data/named_mem_stats.txt”;
allow-query { any; }; #<- 問合せを受け付けるホスト
allow-transfer { 210.188.224.9; 210.224.172.13; };  #<-ゾーン転送を許可するホスト(スレーブDNS)
recursion no; #<- 再帰問い合わせを拒否
dnssec-enable no;
dnssec-validation no;
#dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file “/etc/named.iscdlv.key”;
managed-keys-directory “/var/named/dynamic”;
};
logging {
channel default_debug {
file “data/named.run”;
severity dynamic;
};
};
zone “.” IN {
type hint;
file “named.ca”;
};
zone “mylines.org” {         #<-ドメイン名を記述
type master;                       #<-ゾーンタイプを指定
file “mylines.org.zone”;    #<-ゾーンファイル名を指定
};
#ゾーンタイプ
#hint       ルートDNSサーバを指定
#master マスターDNSサーバに指定
#slave スレーブDNSサーバに指定
include “/etc/named.rfc1912.zones”;
include “/etc/named.root.key”;
ゾーンの設定
#vi /var/named/chroot/var/named/mylines.org.zone
$TTL 3600
@ IN SOA ns1.mylines.org. root.mylines.org.(
                                              2013081801 ; Serial
                                                            7200 ; Refresh
                                                            7200 ; Retry
                                                     2419200 ; Expire
                                                       3600  )   ; Minimum
               IN NS ns1.mylines.org.
               IN MX 10 mylines.org.
ns1         IN A 49.212.197.167
@            IN A 49.212.197.167
mail        IN A 49.212.197.167
# $TTL     
正引き逆引きに成功した情報をキャッシュする期間
MNAMEこのゾーンのプライマリーDNSサーバのFQDNを指定したもので
AレコードでIPアドレスを定義したものでないと指定出来ない。
RNAME 
このゾーンの責任者のメールアドレスで@のかわりに.で指定する。
SERIALゾーンファイルのバージョン番号で通常は日付に2桁の数値を
加算したものを使用。更新した場合は必ず前よりも大きな数値にする。
REFRESH
SERIAL
値の増加の有無を確認して増えていればスレーブサーバに
ゾーン転送し、再度SERIAL値の確認するまでの待ち時間。
RETRYREFRESHでゾーン情報を更新できなかった場合に
再度更新を行うまでの待ち時間。
EXPIREセカンダリDNSサーバが、プライマリDNSサーバへ
アクセスできない状態が続いた場合、
そのゾーンデータを無効にするまでの時間
MINIMUMドメイン名が存在しなかったという情報を
保持(ネガティブキャッシュ)する時間
レジストラの設定
レジストラの設定画面でネームサーバを設定する
ネームサーバ1  ns1.mylines.org
ネームサーバ2  ns1.dns.ne.jp
ネームサーバ3  ns2.dns.ne.jp
・さくらのVPSのネームサーバ登録でセカンダリサーバを設定
・bind起動
# service named start 
・動作確認
#dig @49.212.197.167 mylines.org ;; ANSWER SECTION:
;; ns1.mylines.org. 3600 IN A 49.212.197.167
;; AUTHORITY SECTION:
;; mylines.org. 3600 IN NS ns1.mylines.org.
;; Query time: 0 msec
;; SERVER: 49.212.197.167#53(49.212.197.167)
#dig @8.8.8.8 mylines.org;; ANSWER SECTION:
;; mylines.org. 1129 IN A 49.212.197.167
;; Query time: 43 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
 # dig @210.188.224.9 mylines.org;; ANSWER SECTION:
;; mylines.org. 3600 IN A 49.212.197.167
;; Query time: 11 msec
;; SERVER: 210.188.224.9#53(210.188.224.9)

L2TP/IPSEC-VPN IX2025 リモートアクセス.

リモートアクセス VPN テスト シナリオ 想定1:インターネット VPN を使用したリモートアクセス VPN 想定2: VPN 構築後に iphone からインターネットに接続する 機器: NEC  IX2025(8.11.11) と iphone 目標1: LTE 通信の i...