Kelly

閲覧数: 78(0)

This is Kelly from Jiangsu Longcheng Casting Machinery with more than 15 years’ experience, our core competence is shot blasting machine and sand blasting room.

中国から、レアメタル買わないかとか、ショットブラスト買わないかとか、しょーもないメールがサイトの連絡先に届きます。宛先はこのサイトではなくて、Tsubopediaの方ですが。Kellyはショットブラスト担当ですw ちなみにレアメタルはJamesが担当でした。

そもそもメールサーバーを止めればいいだけの話なんですが、SSL化の際にドメイン認証のために使っているのと、アドセンスやアマゾンアフィリエイトではコンタクト先は必須なので、安易に止めるわけにもいかず、転送先のメールボックスにルール設定して削除してきましたが、ちょっと手間をかけて根本的に対策してみようかと、だいたい、この手のSPAMと呼ばれるメールは、送信者のアドレスと、FROMアドレスが不一致であることが大半です。勝手によそのメールサーバーを経由して送信するのが常套手段なのです。

ヘッダーを見ると、以下のようにotte.comというカナダのプロバイダのアドレスです。

Sender:Kelly <bnqhkbhd@otte.com>

ところが、本当の送信元は、163.comという中国のプロバイダです。

smtp.mailfrom=bnqhkbhd@otte.com; dkim=none header.d=163.com; x-hmca=none header.id=ci760719@163.com

そもそも、中国のプロバイダからのメールなんて、SPAMしか来ないので、完全にブロックしていますが、通常の163.comをブロックするだけでは、otte.comを偽装(経由)されると通過してしまいます。otte.comをブロックすると、また新たな実在するドメインを偽装して送ってきます。

対策をするモジュールは、postfixで、基本的な設定としては、存在しないドメインからのメールを受信しない、とかです。この設定をすると2週間ぐらいは防げます。SPAMを送りつける時、適当なアドレスから送ると、postfixで弾いてくれますが、2週間ぐらいすると、実在するアドレスを勝手に使って送りつけるようになります。ここからイタチごっこが始まりますw

追加で対策したのは、SPF、Sender Policy Frameworkと呼ばれるSPAM対策です。FROMアドレスをいかに偽装しようとも、送信元のアドレスは偽装しようがないので、その両者を比較して偽装アドレスからのメールを拒否します。

モジュール自体はyumを使ってインストールします。

yum install pypolicyd-spf

AWS上のAmazon Linuxでは以下のモジュールがインストールされます。

================================================================================
 Package              アーキテクチャー
                                  バージョン               リポジトリー    容量
================================================================================
インストール中:
 pypolicyd-spf        noarch      1.3.2-1.el6              epel            44 k
依存性関連でのインストールをします:
 python-pydns         noarch      2.3.6-1.el6              epel            39 k
 python-pyspf         noarch      2.0.11-1.el6             epel            47 k
 python26             x86_64      2.6.9-2.88.amzn1         amzn-main      5.8 M
 python26-ipaddr      noarch      2.1.9-5.5.amzn1          amzn-main       58 k
 python26-libs        x86_64      2.6.9-2.88.amzn1         amzn-main      697 k

Pythonは既にインストールされているはずなのですが、ここであえてバージョン違いのPythonがインストールされます。これが原因で後で少しハマりました。正常にインストールされたことを確認するために、Pythonコマンドで確認しますが、エラーが出ます。

/usr/bin/python /usr/libexec/postfix/policyd-spf /etc/python-policyd-spf/policyd-spf.conf

テスト系では何のエラーも出なかったのに、本番系ではエラーが出てしまいます。

Traceback (most recent call last):
  File "/usr/libexec/postfix/policyd-spf", line 35, in <module>
    import spf
ImportError: No module named spf

標準で入っているのはPython2.7でPythonのリンク先は2.7となっていますが、policyd-spfはPython2.6が互換バージョンだったことが原因です。/usr/bin/python2.6と指定することで、先ほどの確認もエラーが出なくなります。実際の起動はPostfixから行われるので、/etc/postfix/master.cfの設定でpython2.6を指定するように変更します。master.cfの最終行へ追加します。

policy-spf     unix  -       n       n       -       0       spawn
  user=nobody argv=/usr/bin/python2.6 /usr/libexec/postfix/policyd-spf /etc/python-policyd-spf/policyd-spf.conf

main.cfへは次の設定を追加します。

smtpd_recipient_restrictions =
   == 途中省略 ==
   check_policy_service unix:private/policy-spf
 
   == 最終行へ追加 ==
policy_time_limit = 3600

Postfixを再起動すれば、設定は完了です。今回はデフォルトの「Fail」設定のまま行くので、設定ファイルは変更していませんが、確認しながら行く場合は、まずは状況を見て、「False」という選択もあります。

#  For a fully commented sample config file see policyd-spf.conf.commented

debugLevel = 1
defaultSeedOnly = 1

HELO_reject = Fail
Mail_From_reject = Fail

PermError_reject = False
TempError_Defer = False

skip_addresses = 127.0.0.0/8,::ffff:127.0.0.0/104,::1

Gmailなどでメールを送って見て、maillogにSPF-PASSと記録されていればOKだと思います。

img_1787
昨日、鳥取で大きな地震があって、お隣の島根県でも出雲市は震度4を記録、古い実家が崩れていないか確認のため、朝一で出雲入り。とりあえず見える範囲では無事でした。

カテゴリーIT閑話, 公開
タイトルを抜粋する
blank

関連記事プラグインを使って、記事本文の下に「関連記事」を表示している。情報としては、タイトル、画像、  続きを読む

北海道ドライブ旅2日目
blank

今日は宗谷岬から日の出岬への旅です。タイトル画像が宗谷岬にある最北端の碑です。前日の宿泊地は宗谷パレ  続きを読む

Zabbix 5.0を導入する
blank

もうね、完全にネタ切れw、ITネタで突っ走るしかない。今回は久しぶりのZABBIXネタと、それが稼働  続きを読む

非互換対応再び
blank

サイトのお守りというのは、言い換えれば「それらを構成するソフトウェア群とそれらが稼働するハードウェア  続きを読む

緊急事態宣言で外出自粛になり...
blank

せっかくのゴールデンウィークなのに、2年連続で緊急事態宣言下となり、外出自粛中。暇なので小ネタで遊ぶ  続きを読む

ラズパイ4のメンテナンス
blank

海外からの接続用として大活躍しているラズベリーパイなのですが、以前使っていたバージョン3から現在は4  続きを読む

スポンサーリンク

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください