web-dev-qa-db-ja.com

Wp adminへのアクセスを制限する

私はIPアドレスでwp_adminへのアクセスを制限しようとしていますが、まだいくつか通過しています。私のwp_adminフォルダーには、次のようなhtaccessファイルがあります。

# Block access to wp-admin.
order deny,allow
allow from x.x.x.x 
deny from all

私はリストに載っていないIPアドレスからログインページにアクセスしようとすることによって実装をテストしました、そしてそれはうまくいっているようです。私はWordfenceをインストールしており、私のリストに載っていないIPによる失敗したログイン試行通知を受け取り続けます。このセキュリティ実装はボットもブロックしますか?このIP /ボットがどのようにこっそり侵入しているのでしょうか。

1
brandozz

私見これはあなたのWP管理者を保護する最良の方法ではありません。 IPは偽装される可能性があります。この方法では、異なるオフィス/場所からアクセスしたい場合に迷惑になる可能性がある特定のIPにも制限されます。

私はどちらか簡単なサーバーベースのパスワード保護をwp-adminディレクトリにお勧めします。もちろん、欠点は、パスワードを覚えているか、非常に安全なWebベースの集中パスワードシステムを使用して、すべてのパスワードを1つだけ覚えておく必要があることです。

手順については、こちらをお読みください。 http://www.wpbeginner.com/wp-tutorials/how-to-password-protect-your-wordpress-admin-wp-admin-directory/

しかし、最良のアイデアは2要素認証です。パスワードを入力してから、携帯電話へのSMS、または同様の2段階のプロセスです。

すべての人にとって唯一の答えはありません - しかし、ほとんどの場合、実用性と厳重なセキュリティの間にはバランスが取れていなければなりません。

本当にシャットダウンしたい場合は、htaccessでdeny allを変更してから使用している特定のIPからのアクセスを一時的に許可し、完了したら元に戻す必要があるときはいつでもサーバーにSSHで接続します。 2因子認証を使用して、私は何かがこれまでに通過することになるとは思わない。

ブルートフォース攻撃はあなたのwp-login.phpに直接POSTリクエストを送ることに頼っているので、あなたのドメインがPOSTリクエストのための参照元であることを要求することはボットを止めるのを助けることができます。

あなたのWordPressサイトを保護することができるもう一つの方法はあなたのログインへのリンクを含みそしてあなたのドメイン名からのログイン要求のみを許可することです。 (example.comをあなたのドメインに置き換えてください)。

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteCond %{REQUEST_METHOD} POST 
RewriteCond %{HTTP_REFERER} !^http://(.*)?example.com [NC] 
RewriteCond %{REQUEST_URI} ^(.*)?wp-login.php(.*)$ [OR] 
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$ 
RewriteRule ^(.*)$ - [F] 
</IfModule>

Xmlrpc.phpへのアクセスを禁止することで攻撃を大幅に減らすことができますが、いくつかの外部サービスはこれによって影響を受ける可能性があります。

<Files ~ "xmlrpc.php"> 
Order allow,deny 
Deny from all 
</Files>
2
garth