カテゴリー
CentOS5.x postfix インストールメモ

CentOS5.5 Postfix で DKIM ( OpenDKIM ) に対応する

こんなエントリ(ネットショップ運営者必見?迷惑メール扱いを回避する手順 :: drk7jp )があるので、とりあえずDKIMを導入してみる。

DKIMを導入するに以前は dkim-milter を使うのが一般的だったようだけど、最近では OpenDKIM を使うようだ。

参考:

  • CentOS6.2でOpenDKIM(DomainKeys Identified Mail)のインストール、設定 | 実験酒場
  • Postfix + dkim-milterからOpenDKIMに移行する » blog::dameningen
  • 準備

    OpenDKIMのインストール

    ※rpmforgeまたはepelリポジトリが必要。

    $ sudo yum install opendkim
    
    ==============================================================================================================
    Package                    Arch                Version                         Repository               Size
    ==============================================================================================================
    Installing:
    opendkim                   i386                2.5.2-1.el5.rf                  rpmforge                258 k
    Installing for dependencies:
    libopendkim                i386                2.5.2-1.el5.rf                  rpmforge                159 k
    
    Transaction Summary
    ==============================================================================================================
    Install       2 Package(s)
    Upgrade       0 Package(s)

    秘密鍵の作成

    ドメインごとに保管場所を作成する必要があるのでまずは保管場所を作る。

    $ sudo mkdir /etc/opendkim/keys/clicktx.jp

    OpenDKIMに付属しているスクリプトで鍵ペアを作成する

    $ sudo opendkim-genkey -D /etc/opendkim/keys/clicktx.jp/ -d clicktx.jp -s default

    default.private default.txt という鍵ペアが出来る。

    DNSに登録

    default.txt の内容(TXTレコード)をDNSに設定するのだけれど、バグがあるので注意。

    元の内容

    default._domainkey IN TXT "v=DKIM1;=rsa; p=MIGfMA...." ; ----- DKIM default for clicktx.jp

    修正後の内容

    default._domainkey IN TXT "v=DKIM1;k=rsa; p=MIGfMA...." ; ----- DKIM default for clicktx.jp

    ※ =rsa を k=rsa に直すこと。

    うちはValueDomainのDNSサーバを使っているので、

    txt default._domainkey v=DKIM1;k=rsa; p=MIGf...中略...IDAQAB

    として設定する。
    うちのDNSサーバは ns*.value-domain.com を使っているのでこの方法でいいみたいだけど、eNom「dns*.name-services.com」の場合は設定方法が違うみたいなので注意。
    参考:Google Appsの「DKIM」をVALUE-DOMAINで設定する - 風見鶏の目

    TXTレコードの確認

    DNSが浸透してから行う必要がある。
    nslookup コマンドで

    $ nslookup -q=txt default._domainkey.clicktx.jp
    Non-authoritative answer:
    *** Can't find default._domainkey.clicktx.jp: No answer

    こんなんでたらまだ浸透していません。

    オーナー変更

    TXTレコードが正しく引けるようなら秘密鍵の所有者を変更してopendkim が読み込めるようにする。

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

    OpenDKIMの設定

    設定ファイル /etc/opendkim.conf

    $ sudo vi /etc/opendkim.conf
    
    # Selects operating modes. Valid modes are s (signer) and v (verifier). Default is v.
    #Mode    v
    Mode    sv  ←追記 sは送信時の署名、vは受信時の確認
    
    # Gives the location of a private key to be used for signing ALL messages.
    # KeyFile /etc/opendkim/keys/default.private  ←コメントアウト
    
    # Gives the location of a file mapping key names to signing keys. In simple terms,
    # this tells OpenDKIM where to find your keys. If present, overrides any KeyFile
    # setting in the configuration file.
    #KeyTable       /etc/opendkim/KeyTable
    KeyTable       refile:/etc/opendkim/KeyTable  ←追記
    
    # Defines a table used to select one or more signatures to apply to a message ba
    sed
    # on the address found in the From: header field. In simple terms, this tells
    # OpenDKIM how to use your keys.
    #SigningTable   /etc/opendkim/SigningTable
    SigningTable    refile:/etc/opendkim/SigningTable  ←追記
    
    # Identifies a set of "external" hosts that may send mail through the server as
    one
    # of the signing domains without credentials as such.
    ExternalIgnoreList     refile:/etc/opendkim/TrustedHosts  ←コメントを外す
    
    # Identifies a set internal hosts whose mail should be signed rather than verifi
    ed.
    InternalHosts  refile:/etc/opendkim/TrustedHosts    ←コメントを外す

    KeyTableの設定

    KeyTable には、TXT フィールドとシグニチャをつけるドメイン、セレクタ、対応する秘密鍵を1行につき1ドメインずつ書いていく。

    ドメインに対する秘密鍵を指定いてあげるのかな。

    $ sudo vi /etc/opendkim/KeyTable
    default._domainkey.clicktx.jp clicktx.jp:default:/etc/opendkim/keys/clicktx.jp/default.private

    SigningTableの設定

    SigningTable には、どのメールアドレスに対してはどの TXT フィールドを参照するかを指定する。ここではワイルドカードが使える。

    ワイルドカードを使って ***@clicktx.jp のメールが参照するTXTレコードを指定してあげる。

    $ sudo vi /etc/opendkim/SigningTable
    *@clicktx.jp default._domainkey.clicktx.jp

    TrustedHostsの設定

    TrustedHosts には、DKIM シグニチャをつけるべきメールサーバをリストアップしておく。

    との事。ローカルサーバだけでいいのかな?
    デフォルトで 127.0.0.1 が指定してある。そのままでもおkの模様。

    $ sudo vi /etc/opendkim/TrustedHosts
    127.0.0.1

    # opendkim起動

    $ sudo /etc/rc.d/init.d/opendkim start

    # 自動起動の設定
    マシンを再起動した時に自動起動。

    $ sudo /sbin/chkconfig opendkim on

    Postfixの設定

    main.cfの最終行に追記

    $ sudo vi /etc/postfix/main.cf
    # DKIM
    smtpd_milters     =    inet:127.0.0.1:8891

    Postfixを再起動

    $ sudo /etc/rc.d/init.d/postfix restart

    DKIMのテスト

    sa-test@sendmail.net へ空メールを送る。
    DKIMだけじゃなく他のチェックもしてくれる。
    Spamhausとかに登録されているとブラックリストに載っているよ!って弾かれます...。

    ヘッダではなく本文に記載されます。
    以下のようになっていればおk?

    Authentication System:       DomainKeys Identified Mail (DKIM)
       Result:                   DKIM signature confirmed GOOD
       Description:              Signature verified, message arrived intact
       Reporting host:           services.sendmail.com
       More information:         http://dkim.org/
       Sendmail milter:          http://opendkim.org/

    その他

    ドメインごとに用意しなくてはならないのかな?
    自分で管理しているドメインならデフォルトのキーペアを設定して使い回してしまってもいいのかしら?

    カテゴリー
    CentOS5.x PHP サーバ管理

    CentOS 5.5 php5.3.6からphp5.2.17へyumでダウングレード

    remiリポジトリでphp5.3をyumでインストールしたけど、php5.2で動いていたスクリプトが動かない。
    困るのでphpをダウングレードする。

    php関連パッケージを調べる。

    # yum list installed | grep php*
    php.i386                               5.3.6-1.el5.remi                installed
    php-cli.i386                           5.3.6-1.el5.remi                installed
    php-common.i386                        5.3.6-1.el5.remi                installed
    php-gd.i386                            5.3.6-1.el5.remi                installed
    php-imap.i386                          5.3.6-1.el5.remi                installed
    php-ldap.i386                          5.3.6-1.el5.remi                installed
    php-mbstring.i386                      5.3.6-1.el5.remi                installed
    php-mcrypt.i386                        5.3.6-1.el5.remi                installed
    php-mysql.i386                         5.3.6-1.el5.remi                installed
    php-pdo.i386                           5.3.6-1.el5.remi                installed
    php-pear.noarch                        1:1.9.2-3.el5.remi              installed
    php-pgsql.i386                         5.3.6-1.el5.remi                installed
    php-xml.i386                           5.3.6-1.el5.remi                installed

    # yum remove php*
    だと、全てのパッケージが削除されない?ようなので、手動設定でパッケージを削除。

    # yum remove php php-cli php-common php-gd php-imap php-ldap php-mbstring php-mcrypt php-mysql php-pdo php-pear php-pgsql php-xml

    ※ /etc/php.ini は /etc/php.ini.rpmsave として保存される。

    カテゴリー
    LINUX インストールメモ

    speedyCGIのインストール

    rpmforgeリポジトリを導入していればyumでインストール出来る。

    yum install perl-CGI-SpeedyCGI
    カテゴリー
    CentOS5.x サーバ管理

    CentOS5.5 x86_64 環境で RaidMan を使う @IBM eserver X3550

    かなり個人的メモ

    環境

    IBM eserver X3550(7978MAJ)
    CentOS 5.5 インストール時にJAVAをインストール済み

    Raid作成、RaidManインストール用CD

    IBM ServerRaid Suport CD v9.00J
    IBM serverRaid v9.00J マネージャ

    1)Raid1構成を作成

    IBM ServerRaid Suport CD v9.00J でCDブートして、Radi manager を起動し、Raid1構成を作成する。

    2)OSをインストール

    CentOS5.5をネットインストール。
    ftp.riken.jp
    /Linux/centos/5/os/x86_64

    ※OSインストールの際、JAVAを入れておくこと。

    3)RaidManをインストール

    OSインストールが終わったらリブート後、IBM serverRaid v9.00J マネージャCDにある、
    linux_x86_64/manager/RaidMan-9.0.x86_64.rpm
    をインストール。

    /usr/RaidMan/RaidMan.sh

    をコンソールから実行すると注意が出る。

    CentOS5環境では libXp が必要とのこと。
    インストール出来るパッケージを調べる。

    # yum list | grep libXp
    libXpm.x86_64                            3.5.5-3                installed
    libXpm.i386                              3.5.5-3                base
    libXpm-devel.x86_64                      3.5.5-3                base
    libXp.x86_64                             1.0.0-8.1.el5          base
    libXp.i386                               1.0.0-8.1.el5          base
    libXp-devel.i386                         1.0.0-8.1.el5          base
    libXp-devel.x86_64                       1.0.0-8.1.el5          base
    libXpm-devel.i386                        3.5.5-3                base

    目的のパッケージは libXp.i386 libXp.x86_64 なのでインストール。

    # yum install libXp.i386 libXp.x86_64

    再度 /usr/RaidMan/RaidMan.sh を実行するとRaidManager が立ち上がった。

    カテゴリー
    LINUX

    Linuxのswapパーティションの容量 仮想マシンの場合は?

    Linux のswap領域の謎

    OSをインストール際に悩むのがパーティションの容量設定。物理メモリが大量に搭載される昨今、通例の「メモリの2倍」をswapに適用すると8Gメモリなら16Gものディスクを消費してしまう。

    物理マシンならまだしも、(それでもSCSIやSASなどのディスクを消費するのはどうかと思うが)仮想環境で仮想ディスクを使う場合、swap領域の確保の為にイメージディスクのサイズを大きくしなくてはならない。

    サーバ用途として利用する場合、swapを使うような状態になるとほぼ運用できないくらいのパフォーマンスになってしまう。最低限のswap領域を確保しておけばいいのか調べてみる。

    最低500M?それとも物理メモリと同程度?

    その1

    swap領域を最低500M確保しておけばいいという記事を見かけた。
    スワップ区画のサイズはどのぐらいに設定すべきでしょうか - Linux Q&A:ITpro

    もっとも物理メモリー量そのままのサイズがスワップ区画に必要なわけではありません。/sys/power/image_sizeに設定されるサイズ(標準では500Mバイト)までメモリー・イメージをシュリンクしてからスワップ区画に書き出します。そのため,500Mバイトあれば十分です。

    その2

    linux DBサーバのswapの容量について(ORACLE)

    Oracle Databaseの場合だが、このような記事も
    Oracle Databaseのインストール前の要件

    RAM スワップ領域
    1024MB~2048MB RAMのサイズの1.5倍
    2049MB~8192MB RAMのサイズと同じ
    8192MB超 RAMのサイズの0.75倍

    それでも実メモリと同等程度のswap領域を確保する必要がありそう。

    その3

    Linux での swap の容量について - @nifty教えて広場

    Linux ではそんなことはなく、メモリが多ければ swap なしでも問題なく動くとつい先ほどまで信じていたんですが、「Linux教科書 LIPCレベル1 (ISBN4-7981-0292-X)」という本を買って、swap に関する説明を見たら「スワップ領域は塔載メモリと同程度を確保します。」と書いてありました。

    このQ&Aでの回答に

    OSの使用量+同時稼動させるアプリの使用量の総和が実メモリ以下ならswapは要りません。ただ、そんな計算は事前にちゃんと出来ないでしょうから、最初はswapを作らないで、メモリ不足が出てから作るか、ある程度(2倍は要らないでしょうが)作っておいて使用量をモニタして不要そうなら削るか、どっちでもいいと思います。

    と、まぁ不足してから作るか、ちょっとだけ用意しておけばいいんじゃね?的な回答が。
    Linuxの場合、物理メモリが多ければswapは必要ないのだろうか?