sendmailでバージョン情報を隠蔽するためにバナーを変更する(ヘッダ)




sendmailはデフォルトでバージョン情報をいくつかのバナーとして表示してしまう
これらの情報を隠蔽したい場合、以下の3箇所を修正する必要がある
今回使用したバージョンはsendmail-8.13.7

ヘルプ
・ヘッダ
グリーティングメッセージ

ここでは、ヘッダに関して隠蔽の方法を見ていく

デフォルトの状態でメールを送信すると受信側でのメールのヘッダには次のように記載される
Received: from test.co.jp (test1.test.co.jp [2.2.2.2]) by [サーバのフルホスト名] (8.13.7/8.13.7) with SMTP id k6J0bYeG028958 for <宛先メールアドレス>; Wed, 19 Jul 2006 09:37:51 +0900 (JST)

これに関するデフォルトのsendmail.cfは次の通り
HReceived: $?sfrom $s $.$?_($?s$|from $.$_)
        $.$?{auth_type}(authenticated$?{auth_ssf} bits=${auth_ssf}$.)
        $.by $j ($v/$Z)$?r with $r$. id $i$?{tls_version}
        (version=${tls_version} cipher=${cipher} bits=${cipher_bits} verify=${verify})$.$?u
        for $u; $|;
        $.$b

sendmail.mcを使って変更する

次の内容をsendmail.mcに追加
define(`confRECEIVED_HEADER',`$?sfrom $s $.$?_($?s$|from $.$_)
      $.$?{auth_type}(authenticated$?{auth_ssf} bits=${auth_ssf}$.)
      $.by $j (unknown)$?r with $r$. id $i$?{tls_version}
      (version=${tls_version} cipher=${cipher} bits=${cipher_bits} verify=${verify})$.$?u
      for $u; $|;
      $.$b')dnl
1行にして追加しても良いし、上のように改行とスペースを使用しても問題無い

sendmail.cfを作成し直して、sendmailを再起動

この時のsendmail.cfは次の通り
HReceived: $?sfrom $s $.$?_($?s$|from $.$_)
        $.$?{auth_type}(authenticated$?{auth_ssf} bits=${auth_ssf}$.)
        $.by $j (unknown)$?r with $r$. id $i$?{tls_version}
        (version=${tls_version} cipher=${cipher} bits=${cipher_bits} verify=${verify})$.$?u
        for $u; $|;
        $.$b

メールを送信すると受信側でのメールのヘッダには次のように記載される
Received: from test.co.jp (test1.test.co.jp [2.2.2.2]) by [サーバのフルホスト名] (unknown) with SMTP id k6J0bYeG028958 for <宛先メールアドレス>; Wed, 19 Jul 2006 10:10:51 +0900 (JST)