アーカイブ

2008 年 2 月 のアーカイブ

VMWareのBIOS画面

VMWareの仮想マシンを起動してブートメニューを出したり、BIOS画面を出したりと、メニュー画面を出したいんだけど、速すぎてESCキーを押すのが間に合わないんじゃボケッという方に(2ch情報)
*.vmx(構成ファイル)へ以下を追加
5秒 (5000ミリ秒) 待つ

bios.bootDelay = "5000"

必ずBIOSメニューに入る

bios.forceSetupOnce = "TRUE"

Cannot press ESC to get into BIOS fast enough

カテゴリー: 仮想化 タグ:

iptab と ipcount

サブネットとか計算してくれるツールをたまたま発見したのでメモ
◆必要なパッケージ

yum install perl-Net-IP

◆サブネットの計算した表を表示

$ iptab
+----------------------------------------------+
| addrs   bits   pref   class  mask            |
+----------------------------------------------+
|     1      0    /32          255.255.255.255 |
|     2      1    /31          255.255.255.254 |
|     4      2    /30          255.255.255.252 |
|     8      3    /29          255.255.255.248 |
|    16      4    /28          255.255.255.240 |
|    32      5    /27          255.255.255.224 |
|    64      6    /26          255.255.255.192 |
|   128      7    /25          255.255.255.128 |
|   256      8    /24      1C  255.255.255.0   |
|   512      9    /23      2C  255.255.254.0   |
|    1K     10    /22      4C  255.255.252.0   |
|    2K     11    /21      8C  255.255.248.0   |
|    4K     12    /20     16C  255.255.240.0   |
|    8K     13    /19     32C  255.255.224.0   |
|   16K     14    /18     64C  255.255.192.0   |
|   32K     15    /17    128C  255.255.128.0   |
|   64K     16    /16      1B  255.255.0.0     |
|  128K     17    /15      2B  255.254.0.0     |
|  256K     18    /14      4B  255.252.0.0     |
|  512K     19    /13      8B  255.248.0.0     |
|    1M     20    /12     16B  255.240.0.0     |
|    2M     21    /11     32B  255.224.0.0     |
|    4M     22    /10     64B  255.192.0.0     |
|    8M     23     /9    128B  255.128.0.0     |
|   16M     24     /8      1A  255.0.0.0       |
|   32M     25     /7      2A  254.0.0.0       |
|   64M     26     /6      4A  252.0.0.0       |
|  128M     27     /5      8A  248.0.0.0       |
|  256M     28     /4     16A  240.0.0.0       |
|  512M     29     /3     32A  224.0.0.0       |
| 1024M     30     /2     64A  192.0.0.0       |
| 2048M     31     /1    128A  128.0.0.0       |
| 4096M     32     /0    256A  0.0.0.0         |
+----------------------------------------------+

◆IPの範囲をいれるとサブネット等を計算してくれる
IPの範囲でフィルタしたりするとき便利?

$ ipcount 192.168.0.0 - 192.168.10.0
192.168.0/21        192.168.0.0 - 192.168.7.255   [2048]
192.168.8/23        192.168.8.0 - 192.168.9.255   [512]
192.168.10.0/32       192.168.10.0 - 192.168.10.0    [1]
192.168.0.0/21,/23,/32        192.168.0.0 - 192.168.10.0    [2561]

◆サブネットからIPの範囲を計算してくれる

$ ipcount 192.168.0.0/16
192.168/16        192.168.0.0 - 192.168.255.255 [65536]
$ ipcount 192.16.0.0/12
192.16/12         192.16.0.0 - 192.31.255.255  [1048576]
$ ipcount 10.0.0.0/8
10/8           10.0.0.0 - 10.255.255.255  [16777216]
カテゴリー: Linux タグ:

Office2007のServicePack統合

Office2003のように統合CDのようなものは作れないようで、逆にSPのファイルをUpdatesのフォルダへ放り込んでおけば起動時に適応されるみたい。

office2007sp1-kb936982-fullfile-ja-jp.exe /extract:"c:\temp\Updates"

でできた「Updates」の中身をオフィスのイメージの中にある「Updates」のフォルダへいれておけばOKです。

カテゴリー: Windows タグ:

DKIM DomainKeys 対応(CentOS Postfix)

2008 年 2 月 3 日 コメント 1 件

メールサーバ(Postfix)にDKIM(DomainKeys)の対応をしてみる。SPFと違い出ていくメールにも仕掛けが必要、今回はdkim-milterとdk-milterを使用する。また、稼働環境は開発環境がインストールされていないのでRPMを作成してインストールする。

SPF対応はこちら

追記(2008/06/17)
ある先からメールが来ないらしく、以下のようなログが出てたので対応

Jun 17 16:11:11 server postfix/cleanup[32502]: 41B331E789E: milter-reject: END-OF-MESSAGE from hoge.example.com[xxx.xxx.xxx.xxx]: 4.7.1 Service unavailable - try again later; from= to= proto=ESMTP helo=

ダメなメールをみるとDKIM-Signature,DomainKey-Signature,SPF が全部入るパターンなのですが、よくわからず、「dkim-milter-2.4.4 + dk-milter-0.6.0」から「dkim-milter-2.6.0 + dk-milter-1.0.0」へバージョンアップしたところ通過するようになりました。
必要なパッケージのインストール(パッケージ作成用)

yum groupinstall "Development Tools"
yum install sendmail-devel openssl-devel checkinstall

ソースのダウンロード

http://sourceforge.net/projects/dkim-milter/
http://sourceforge.net/projects/dk-milter/ 

バイナリの作成とRPMパッケージの作成

tar xvzf dk-milter-1.0.0.tar.gz
tar xvzf dkim-milter-2.6.0.tar.gz

dkim-milterにdk-milterもリンクさせる
(DomainKeysのチェックもできるようにする)

cd dkim-milter-2.6.0
ln -s ../dk-milter-1.0.0/libdk ./

設定ファイルの作成

cp site.config.m4.dist devtools/Site/site.config.m4
DomainKeysも検査するようにする
define(`bld_VERIFY_DOMAINKEYS', `true')
最終行にでも追加Manページの場所を変更
define(`confMANROOT', `/usr/share/man/man')

コンパイル

sh ./Build

RPMパッケージファイルの作成

checkinstall -R

インストール

rpm -ihv /usr/src/redhat/RPMS/i386/dkim-milter-2.6.0-1.i386.rpm

dkim-milter用ユーザの作成(groupはmailにする)

useradd -g mail -m -d /var/milter -s /sbin/nologin milter
chmod 755 /var/milter

秘密鍵、証明書の作成
今回は「/etc/pki/dkim-milter」に必要なファイルを作成します。

mkdir /etc/pki/dkim-milter
cd /etc/pki/dkim-milter
dkim-genkey -s セレクタ名 -d ドメイン名
ex) dkim-genkey -s selector -d example.com
chmod 440 selector.private
chown milter:mail selector.private

署名をつけるInternalネットワークのリストを設定

/etc/pki/dkim-filter/ilist
127.0.0.1
192.168.1.0/24
chmod 440 ilist
chown milter:mail ilist

DNSへの設定
DNSのゾーン情報に情報を追加します。selectorの行は上のdkim-genkeyでできるselector.txtの中身をそのまま貼り付けます

_policy._domainkey IN TXT "t=y; o=~"
_domainkey IN TXT "t=y; o=~"
selector._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p= ~省略~" ; ----- DKIM selector for example.com

dkim-milterの起動スクリプト作成
/etc/init.d/dkim-milter

#!/bin/bash
#
#
# dkim-milter:
#
# chkconfig: 2345 75 35
# processname: dkim-milter
# description: dkim milter
source /etc/rc.d/init.d/functions
PROG=/usr/bin/dkim-filter
PID=/var/milter/dkim-milter.pid
SOCKET=inet:10026
#SOCKET=/var/milter/dkim-milter.socket   #Socketの場合
DOMAINLIST="example.com"  #カンマ区切り
SELECTOR="selector"       #セレクタ名
KEY="/etc/pki/dkim-milter/${SELECTOR}.private"
ILIST="/etc/pki/dkim-milter/ilist"
RETVAL=0
start() {
echo -n $"Starting dkim-milter: "
daemon --user milter \
"umask 117; $PROG -p $SOCKET -d $DOMAINLIST -k $KEY -l -P $PID -s $SELECTOR -i $ILIST"
#        "umask 117; $PROG -p local:$SOCKET -d $DOMAINLIST -k $KEY -l -P $PID -s $SELECTOR -i $ILIST"   #Socketの場合
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/dkim-milter
return $RETVAL
}
stop() {
echo -n $"Shutting down dkim-milter: "
killproc $PROG
#    rm -f $SOCKET
RETVAL=$?
echo
[ "$RETVAL" = 0 ] && rm -f /var/lock/subsys/dkim-milter
return $RETVAL
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
status $PROG
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|status}"
RETVAL=1
esac
exit;
chmod 755 dkim-milter
chkconfig --add dkim-milter
chkconfig dkim-milter on

/etc/postfix/main.cf

#DKIM
smtpd_milters = inet:10026
#smtpd_milters = unix:/var/milter/dkim-milter.socket  #Socketの場合
non_smtpd_milters = $smtpd_milters
milter_default_action = accept

「milter_default_action」はdkim-milterが死んでいたときはスルーさせるため「accept」にしておく
その他
amavisとかPostfixで他のポートへも転送したりしているものもある場合は、それぞれに「smtpd_milters」の設定をはずしておかないとダメかも

smtp-amavis unix -    -    n    -    2  smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o smtpd_milters=
127.0.0.1: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 smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_milters=
policy  unix  -       n       n       -       0       spawn
user=nobody argv=/usr/bin/perl /usr/local/lib/policyd-spf-perl
-o smtpd_milters=

確認
DKIMに対応しているアドレス(gmailなど)とやりとりしてヘッダーにDKIMの情報があるか確認

Authentication-Results: hoge.example.com; domainkeys=pass (testing) header.sender=hoge@gmail.com
Authentication-Results: hoge.example.com; dkim=pass (1024-bit key) header.i=@gmail.com
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;  ~省略

以下のアドレスへメールを送るとチェックしてメールが返信されてくる。(SPF,DKIM,DomainKeysなどがチェックできる)

check-auth@verifier.port25.com
sa-test@sendmail.net
http://senderid.espcoalition.org/

参考URL
CentOS5へのメール環境構築 (2007/11/01)(TOSAKA.ORG)
CentOS5で,DKIM/SPF/Domainkeyなど使ってみる(Hizumi Blog)
dkim-milter 2.4.2へのアップデート(yellowback’s blog)

カテゴリー: Linux タグ:

SPF対応(CentOS Postfix)

メールサーバ(Postfix)をSPF(Sender Policy Framework)の検査に対応してみる。相手にチェックさせるだけであればDNSにレコードがあるだけでいいので、DKIM,DomainKeysと比べて実装はしやすい。自身に届くメールのチェックをするにはPosftfixの「check_policy_service」でチェックするようにする。

DKIM(Domainkeys)対応はこちら

必要なパッケージのインストール

yum install perl-Mail-SPF perl-Sys-Hostname-Long

SPFのチェック用のモジュールはパッケージではないのでソースをダウンロードしてくる(perlスクリプト)
http://www.openspf.org/Softwareのあたりから、postfix-policyd-spf-perl-2.010.tar.gzをダウンロードしてくる。
ファイルの配置

tar xzvf postfix-policyd-spf-perl-2.010.tar.gz
cp postfix-policyd-spf-perl-2.010/postfix-policyd-spf-perl /usr/local/lib/postfix-policyd-spf-perl

/etc/postfix/master.cf

policy  unix  -       n       n       -       0       spawn
user=nobody argv=/usr/bin/perl /usr/local/lib/policyd-spf-perl

/etc/postfix/main.cf(Postgreyと併用)

smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, check_policy_service inet:127.0.0.1:10023, check_policy_service unix:private/policy
policy_time_limit = 3600

DNSのレコードにSPFの情報を記述(例)

spf01   IN TXT "v=spf1 +ip4:xxx.xxx.xxx.xxx/24 ~all"
spf02   IN TXT "v=spf1 +ip4:yyy.yyy.yyy.yyy/24  ~all"
@       IN TXT "v=spf1 include:spf01.example.com include:spf02.example.com ~all"

確認
SPFに対応しているアドレス(gmailなど)とやりとりしてヘッダーにSPFの情報があるか確認

Received-SPF: none  ~
Received-SPF: pass  ~
Received-SPF: softfail ~

以下のアドレスへメールを送るとチェックしてメールが返信されてくる。(SPF,DKIM,DomainKeysなどがチェックできる)

check-auth@verifier.port25.com
sa-test@sendmail.net
http://senderid.espcoalition.org/

 
 
 
<追記>
デフォルトだと、「fail」になった時に550でrejectしてしまうので、チェックだけしてスルーするように変更してみた。

<         return "550 $helo_authority_exp";
---
>         #return "550 $helo_authority_exp";
>         return "PREPEND $helo_spf_header"
>             unless $cache->{added_spf_header}++;
297c299,301
<         return "DEFER_IF_PERMIT SPF-Result=$helo_local_exp";
---
>         #return "DEFER_IF_PERMIT SPF-Result=$helo_local_exp";
>         return "PREPEND $helo_spf_header"
>             unless $cache->{added_spf_header}++;
371c375,377
<         return "550 $mfrom_authority_exp";
---
>         #return "550 $mfrom_authority_exp";
>         return "PREPEND $mfrom_spf_header"
>             unless $cache->{added_spf_header}++;
374c380,382
<         return "DEFER_IF_PERMIT SPF-Result=$mfrom_local_exp";
---
>         #return "DEFER_IF_PERMIT SPF-Result=$mfrom_local_exp";
>         return "PREPEND $mfrom_spf_header"
>             unless $cache->{added_spf_header}++;

</追記>

カテゴリー: Linux タグ: