
UNIX Cafe 第103回
プラグインでやさしく守り、.htaccessで一歩深く理解する
WordPressは、とても便利な仕組みです。
世界中の人が使っていて、ブログも企業サイトも、このシステムの上で動いています。
けれども、それは同時に「世界中から見えている」ということでもあります。
怖がる必要はありません。
大切なのは、きちんと整えておくことです。
このページでは、
- まずはプラグインでやさしく守る方法
- そして一歩進んで .htaccess を理解する方法
この2つを、やさしく解説していきます。
なぜWordPressにセキュリティ対策が必要なの?
WordPressはオープンソースです。
世界中の開発者が改良を続けています。
だからこそ、多くの人に使われ、同時に多くの人に見られています。
特に狙われやすいのは、次の2つです。
- wp-login.php(ログイン画面)
- xmlrpc.php(外部接続用機能)
これらは、世界中のボットが日常的にアクセスしてきます。
といっても、特別なサイトだから狙われるわけではありません。
「存在しているから試される」それだけのことです。
ですから、防御を整えておけば大丈夫です。
まずは安心:初心者におすすめのセキュリティプラグイン
難しい設定をしなくても、
プラグインを1つ入れるだけで、基本的な防御はできます。
代表的なものを紹介します。
SiteGuard WP Plugin
日本製で、初心者にも扱いやすいプラグインです。
作画面がすべて日本語のため、設定ミスが起きにくいのが最大の利点です。
主な機能:
- ログインURLの変更
- 画像認証の追加
- ログイン試行回数制限
機能の特徴: ログインURLの変更や画像認証など、「玄関(ログイン画面)」の防衛に特化しています。操作画面がすべて日本語のため、設定ミスが起きにくいのが最大の利点です。
こんな人に向いている: 設定ミスを避けたい初心者から、確実な動作を求める管理者まで。
注意点: サイト全体のファイルをスキャンするような機能は弱いため、後述する「構造的な防御」と組み合わせるのが理想的です。
Wordfence Security
世界で最も多く利用されている、まさに「要塞」のようなプラグインです。
- ファイアウォール(WAF)
- マルウェアスキャン
- 詳細なログ表示
機能の特徴: 最大の武器は、強力な「ファイアウォール(WAF)」と「マルウェアスキャン」です。不正なアクセスをリアルタイムで遮断するだけでなく、万が一サイトが書き換えられた際も、すぐに異常を検知してくれます。
こんな人に向いている: 海外からの攻撃に本格的に備えたい方や、セキュリティの「厚み」を重視する中級者以上の方。
注意点: 非常に高機能な反面、サーバーへの負荷が少し高くなる傾向があります。設定画面は英語がメインとなるため、翻訳ツールを片手にじっくり向き合う必要があります。
All In One WP Security & Firewall
自分のサイトがいま「どのくらい安全か」を数値化してくれる、ユニークなプラグインです。
- ログイン保護
- データベース保護
- ファイル保護
機能の特徴: ログイン保護からデータベースの保護まで、幅広い対策を「ポイント制」で表示してくれます。複雑な設定をON/OFFのスイッチ感覚で行えるのが特徴です。
こんな人に向いている: どこまで対策が進んでいるかを視覚的に把握したい方や、サイト全体の「設定の甘さ」を一つずつ潰していきたい方。
注意点: 項目が非常に多いため、一気にすべての機能をONにすると、自分まで締め出されてしまうリスクがあります。慎重に一つずつ項目を確認しながら進めるのがコツです。
ポイント
セキュリティプラグインは、基本的に1つで十分です。複数入れると機能が重複し、かえって不具合の原因になります。一つの信頼できるプラグインを正しく設定し、その使い方を理解することが大切です。
ログファイルを見てみよう
アクセスログとは何か
ここから少し、視点を深くしてみましょう。サーバーには、誰がいつ、どのページを訪れたかという「足跡」が記録されています。これが「アクセスログ」です。
攻撃は日常的に来ている
ログを眺めると、自分が寝ている間も、海外のIPアドレスから執拗にログインを試みている記録を見つけることがあります。それは「見えない戦い」の証拠です。これを知ることで、セキュリティ対策が単なる「設定」ではなく「実戦」であることを実感できます。
「自動」と「人間の目」のバランス
基本の防衛はプラグイン(自動)に任せつつ、時折こうしてログを眺める。この「道具に頼りつつも、最後は自分の目で確認する」という姿勢こそが、UNIX的な哲学であり、サイト運営の精度を一段高めてくれるのです。
例えば、ターミナルでgrepコマンドを使えば、
grep "wp-login.php" access.logこんな形でログイン画面にアクセスした記録を確認することができます。
143.110.186.252 - - [25/Feb/2026:12:35:48 +0900] "GET /wp-login.php HTTP/1.1" 403一見すると、ただの英数字の羅列ですが、ちゃんとした意味があります。
順番に見ていきましょう。
1. 143.110.186.252
これはアクセスしてきた相手のインターネット上の住所です。
これさえわかれば、あとで「どこの国の誰か」を詳しく調べることができます。
2. [25/Feb/2026:12:35:48 +0900]
- これは アクセスした日時です 。
- 2026年2月25日12時35分48秒 +0900 は日本時間、いつ来たのかが正確に記録されています。
3. “GET /wp-login.php HTTP/1.1”
重要ポイント
- GET → ページを取得しようとした
- /wp-login.php → ログイン画面
- HTTP/1.1 → 通信の規格
つまり、「ログイン画面を開こうとした」という意味です。
4. 403
これは ステータスコード です。
この「403」という数字は、「アクセス拒否(Forbidden)」という意味です。
つまり、あなたの設置したプラグインや、「.htccess」が、見事に敵を追い返した証拠です。
「whois」で暴く、訪問者の正体
相手は誰?(Organization)
whois 143.110.186.252このIPアドレスは、
DigitalOcean, LLC という会社に割り当てられています。
NetRange: 143.110.128.0 - 143.110.255.255
CIDR: 143.110.128.0/17
Organization: DigitalOcean, LLC (DO-13)
OrgId: DO-13
Address: 105 Edgeview Drive, Suite 425
City: Broomfield
StateProv: CO
PostalCode: 80021
Country: US
RegDate: 2012-05-14
Updated: 2025-04-11Organization
DigitalOceanは、アメリカにある有名なクラウドホスティングの名前です。
世界中の開発者が、
- VPS(仮想サーバー)
- クラウドサーバー
- Webアプリの実行環境
として利用しています。
つまり、このアクセスは一般の読者がスマホやパソコンから見に来たものではなく、「どこかのサーバー上で動いている自動プログラム(ボット)」が、あなたのサイトを狙ってやってきたことを意味します。
NetRange
NetRangeは、DigitalOceanが保有しているIPアドレスの範囲を示しています。
どこから来た?(Country)
Country: US
「US」、つまりアメリカ合衆国からのアクセスです。もし、あなたが日本語だけでブログを書いていて、ターゲットが日本国内の読者であれば、アメリカのサーバーからログイン画面にアクセスがあること自体、非常に不自然だといえます。
どのくらいの「広さ」で動いている?(CIDR)
CIDR: 143.110.128.0/17
これは、この攻撃者が所属しているネットワークの「住所の範囲」です。この大きなグループの中に、今回の攻撃用サーバーが含まれています。
もし、この範囲からの攻撃があまりにもしつこい場合は、先ほどお話しした .htaccess を使って、この「面」ごとまとめてシャットアウトするという強力な対策が打てるようになります。
OrgAbuseEmail
OrgAbuseEmail:は、不正利用があった場合の通報窓口です。OrgAbuseEmail:
もし本当に被害が発生している場合は、ここへ報告できます。
ただし、通常のスキャン程度であれば、通報する必要はありません。
whois に記載されていた住所
105 Edgeview Drive, Suite 425 Broomfield, CO US
アメリカ合衆国 コロラド州 ブルームフィールド エッジビュー・ドライブ 105番地 425号室
これは実際にアクセスしてきた人の居場所ではなく、DigitalOceanという会社の住所です。
オプション編:.htaccessでできること
プラグインで整えたら、
次は少しだけ仕組みを理解してみましょう。
.htaccessは、Apacheサーバーの設定ファイルです。
サーバーに対して、
「こう動いてください」と伝える命令書のようなものです。
.htaccessとは何か
.htaccessは、Webサーバー(Apache)に対するディレクトリ単位の設定ファイルです。
WordPressのルートディレクトリに置かれています。
ログイン画面をIP制限する例
例えば、固定IPを使っているなら、ホワイトリストで、ログイン画面を自分だけに限定できます。
<Files wp-login.php>
Require ip 123.45.67.89
</Files>これで、指定したIP以外はアクセスできません。
【ここがポイント!】
Requireという言葉には、「指定したもの以外は全て拒否する」という強い意味が含まれています。 ですから、たった1行「自分だけのIP」を書くだけで、世界中の攻撃者からログイン画面を隠すことができるのです。
※設定前には必ずバックアップを取ってください。
IP制限の基本例(特定の敵を弾く)
ホワイトリストの設定ができたら、次はブラックリストの設定です。
先ほど whois で調べた DigitalOcean のような、明らかに怪しい相手をピンポイントで出入り禁止にする設定です。
<RequireAll>
Require all granted
# ここに追い返したいIPを書く
Require not ip 143.110.186.252
</RequireAll>このように記述して保存するだけで、その相手が次に来たときには、WordPressにアクセスする前に 403(門前払い)を突きつけてくれます。
HTTPSを強制する例
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]httpへのアクセスをhttpsへ 301リダイレクトします。
WordPress 簡単インストールを使うとhttpとhttps の両方からアクセスできてしまう不具合を解消し、常にSSL接続に統一できます。
プラグインと .htaccess の役割分担
整理すると、こうなります。
| 役割 | 担当 |
|---|---|
| 自動防御・通知 | プラグイン |
| 構造的な制限 | .htaccess |
| 観察と判断 | 人間 |
どちらか一方だけでも運用できますが、仕組みを理解すると管理が楽しくなります。
まとめ|静かに、長く守る
WordPressは、決して怖いものではありません。
きちんと整えておけば、
あなたのサイトは、長く安定して動き続けます。
まずは、プラグインで基本の守りを固める。
そして、少しずつ仕組みを理解していく。
ログをときどき眺めて、慌てず、静かに対応する。
それだけで、十分です。
大切なのは、
せっかく時間をかけて作ったサイトが、
誰かに壊されたり、書き換えられたりしないようにすること。
過剰な対策ではなく、
丁寧な整備を続けることが、いちばんの防御になります。
セキュリティが整えられた環境は、
安心して文章を書き、作品を生み出せる場所になります。
守ることは、不安になることではありません。
創作を続けるための、静かな準備なのです。
さらに学びたいあなたへ
📘 用途ごとに選ぶ Linux のおすすめ本

