最近アタックとスパムが多いのでしっかりしたIPリストを導入した

最近サーバーへのアタックが多くなり、しっかりとしたIPリストを導入しました。

スパムも増えてきており、WordPress やメールソフトウェア(MTA)で個別にアタックやスパムの対策をするのでは無く、サーバー全体でIPをブロックしてしまった方が楽です。

WordPress のログインはユーザー名がバレているのであと必要なのはパスワードだけ

WordPress は結構ログインの仕組みが脆弱で、ユーザー名とパスワードでログインするのですが、実はユーザー名は通常はソースに出力されるので誰でも簡単に分かります。

ユーザー名と記事を書いた人として表示されるニックネームを異なるものにしている人は希です。それぞれ個別に設定できるのもほとんどの人が知りませんし、テーマによってはニックネームではなくユーザー名を出力してしまっているかもしれません。

さらに、administrator は ID が 1番ですから、ID が 1番のユーザーにWEBからアクセスしてみれば良いのです。WordPress はURLルーティングの仕組みが悪いのです。

よって、WordPress のログインに必要なのは事実上パスワードだけです。

ログインのためのユーザー名を変更したいと思うわけですが、WordPress のシステム上ではできません。何でできるようにしないのでしょう?

実はユーザー名はデータベースを弄れば変更できます。ユーザー名を変更させるのはそんなに大変なシステムではありません。

WordPress はセキュリティ問題が広く知られるようになってからも、ユーザー名を変更する機能がずっと追加されないのが不思議です。

データベースを弄れる人はユーザー名を変更した方が良いです。というか、変更すべきです。ユーザー名はバレています。

"wp_users" テーブルで変更できます。

私はユーザー名を自動生成したものすごく長い文字列にしています。

あと、ログインにワンタイムパスワードが必要なように変えておくとより安心です。プラグインでたくさんあります。

さらにログインに失敗したらIPをブロックするプラグインがありますので、それも利用しましょう。

WordPress のコメントの脆弱性を突いた見事なスパムがあった

ログインのアタックは上の方法でそこそこはじいているのですが、先日見事なアタックというかスパムがありました。

WordPress はコメントシステムが弱いのですが、そこを付いたスパムです。

WordPress は記事へのコメントを設定で制限することができますが、実はメディアファイル(記事に添付される画像、動画など)へのコメントは制限できません。

WordPress は何故かメディアファイル個別のページが自動生成されます。これもルーティングの仕組みが悪いのです。

WordPress って何てダメなシステムなんだろう…。

PHPファイルを弄る必要がありますが、対応策があります。短いので載せておきます。

テーマの "functions.php" に以下を追加します。

function stop_media_comments($open, $post_id) {
$post = get_post($post_id);
if($post->post_type === 'attachment') $open = false;
return $open;
}
add_filter('comments_open', 'stop_media_comments', 10, 2 );

これで OK です。

ブロックのための、しっかりしたIPリストを導入

アタックやスパムはIPをブロックしてしまえば楽になります。ログインやスパムを試みられる前に、そもそもアクセスできない方が安心です。

IPのブロックは WordPress の設定やプラグインでは行いません。サーバー全体でブロックしたいからです。

問題はIPのブロックリストに何を選ぶかです。

私はこれまで Hestia の Malicious Block List を使っていたのですが、これではかなり不十分です。メールのスパムIPリストの SPAMHAUS も足りません。

今は色々とブロックリストがありますが、あまりにもアグレッシブなIPブロックだと誤ってブロックしてしまって困ります。

Apple が自社の iCloud メールで導入している proofpoint は悪名高いアグレッシブなIPブロッカーで、普通のメールも誤ってブロックされます。

少し見たところ AbuseIPDB は信頼できそうなリストで、私のサーバーに来たアタックやスパムのIPアドレスをこちらでチェックするとしっかり載っています。良さそうですが、無料で使いたいとなるとちょっと厳しそう(価格表)。

実は GitHub で AbuseIPDB の法的に問題ないところのIPリストをまとめて公開してくれている人が結構います。こちらを利用します。

これだけでは不十分でしょうから、FireHOL をメインにします。たくさんの種類のリストがあり、良さげなところをピックアップして導入します。

FireHOL はIPで検索できないのがちょっと使いにくいですね。自分のサーバーにアタックが来たIPを検索して、それが載っているIPリストを使いたいのですが…。

FireHOL のリストは頻繁にアップデートされます。危険なIPを保持する期間が1日間、7日間など分かれており、アタックに使われるIPが頻繁に変わる世界なので有り難いです。

なぜこのように分かれているかというと、アタッカーはIPをコロコロと変えますので、何も知らない人が危険指定されたIPに割り当てられてしまう可能性があるからです。共有IPの可能性もあります。

つまり、長く1つのIPをブロックしてしまうと誤ブロックがあるのです。

そういうのを怖れる場合、ブロックIPの保持期間が短いもの=1day などを選ぶと良いでしょう。

IPリストを無料で公開されているのは本当に助かります。

Nomeu / のめう
PCゲーマー

ゲームに没頭している時間は幸せ。

レビューとか良さげなセール情報とかを書いていきます。

コメントは X/Twitter にお願いします。

おすすめ