【KUSANAGI】WordPressの管理画面とSSHに固定IP制限を設定する方法

固定IPアドレスを利用してKUSANAGIのSSH、WordPressの管理画面にアクセス制限をかける方法を紹介します。

これらの設定を行うことで特定のネットワーク以外からのアクセスを遮断できるため、真正面からの不正なアクセスに対して非常に協力なセキュリティを築くことができます。

固定IPは「インターリンクのマイIP」が安く手軽に利用できるのでおすすめ。

インターリンクのマイIPで固定IPアドレスを取得

インターリンクの「マイIP」はVPNと固定IPが利用できるサービス。

簡単な設定を行えばPC、スマホなどからワンタップで「VPN+固定IP」の通信に切り替えることができ、どこのネットワークからでも固定IPでサーバーやWordPressの管理画面にアクセス可能

MacでマイIPを有効にする

MacでマイIPを有効にする

一つの固定IPがあれば手持ちのサイトすべてのセキュリティを高められる上、単純にVPNとして町中の無料WIFI接続時のセキュリティを高めたり、海外から日本でしか利用できないサービスにアクセスしたりできるので、WordPressサイト運営者なら契約しておいて損はありません。

2か月間は無料でお試しができ、初期費用、解約費用も無料なので固定IPに興味がある人はぜひ利用してみてください。

なおウェブサイトは古臭いですが、インターリンクは1995年から続いている古株のIT事業者です。

SSHを固定IPのみ接続可能にする

SSHを固定IPで制限する方法はいくつかありますが、ここではSSHデーモンで「特定のユーザー+固定IPのみSSHを許可」することにします。

なお、設定を誤るとSSHで接続できなくなる可能性があるため、必ずサーバーと接続したままのターミナルを一つ開いておき、別のウィンドウで作業をすること

#SSHの設定ファイルを編集
#vim /etc/ssh/sshd_config

ファイルの最後にもう一行「AllowUsers kusanagi@固定IPアドレス」を記述(ここでは例としてaaa.bbb.ccc.ddが固定IPアドレスとする)。

これで「aaa.bbb.ccc.ddから接続してきたkusanagiユーザーのみSSHを許可」する設定になる。

#編集前 最後の行
#ForceCommand cvs server

#編集後 一行追加
#ForceCommand cvs server
AllowUsers kusanagi@aaa.bbb.ccc.dd
#デーモンを再起動
#service sshd restart

固定IPにつないだ状態でkusanagiユーザーがSSHログインできること、固定IP以外のネットワークからログインできないことを確認。

#固定IP以外でログインできなければOK
$ ssh -p 54321 -i ~/.ssh/kusanagi.pem kusanagi@(サーバーの)IPアドレス

Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

WordPressの管理画面を固定IPのみ接続可能にする

nginxの設定ファイルを編集する。

#SSL化しているサイトの場合
#vim /etc/nginx/conf.d/プロファイル名_ssl.conf

#SSL未対応のhttpサイトの場合
#vim /etc/nginx/conf.d/プロファイル名_http.conf

75行目付近に記述がある。

固定IPアドレスが「aaa.bbb.ccc.dd」のとき、「allow 0.0.0.0/0」を「allow aaa.bbb.ccc.dd」に書き換え。

また「auth_basic “Basic Authentication”」をコメントアウトにしてベーシック認証を不要にしておく。

#編集前
location ~* /wp-login\.php|wp-admin/((?!(admin-ajax\.php|images/)).)*$ 
 {
    satisfy any;
    allow 0.0.0.0/0; 
    allow 127.0.0.1;
    deny all;
    auth_basic "Basic Authentication";
    auth_basic_user_file "/home/kusanagi/.htpasswd";

#編集後
location ~* /wp-login\.php|wp-admin/((?!(admin-ajax\.php|images/)).)*$ 
 {
    satisfy any;
    allow aaa.bbb.ccc.dd; 
    allow 127.0.0.1;
    deny all;
    #auth_basic "Basic Authentication";
    auth_basic_user_file "/home/kusanagi/.htpasswd";

nginxを再起動。

#nginxを再起動

#kusanagi nginx

固定IPアドレス以外で「独自ドメイン/wp-login.php」にアクセスできない(403エラーになる)ことを確認。

nginxの403エラー画面です

シェアする