ブラウザからのIPアドレスでのアクセスを禁止する
更新日:2021/01/27
先日、本サイトのサーバーへのIPアドレスでのアクセスを禁止しました。
IPアドレスのみのサイトから大量にリンクされていた
以前から気になっていたのですが、Google Serch Consoleを見ると、IPアドレスのみのサイトから大量にリンクが貼られていました。
気持ち悪いなと思いつつ忙しかったので放置していたのですが…
よく考えると、自分のサーバーのアドレスだということに気が付きました。
このまま放置しておくのもセキュリティ上問題があるような気がするので、IPアドレスでのアクセスを禁止してみます。
設定方法
以前サーバー設定について調べて詳しくなったのですが、1年以上経った今では記憶が跳んでどこかへ行ってしまいました。
そのため、ネットで再調査です。
すると、次の記事がヒットしました。
■Apache 2.4のhttpとhttpsでIPアドレスや違うFQDNによるアクセスを拒否する
他にも有効な記事があったのですが、こちらの方法は既存ファイルを変更する必要がなかったので、めちゃくちゃ簡単に設定できました。
- 設定ファイルが格納されているディレクトリを開く
※ssl.confなどがあるディレクトリ
cd /etc/httpd/conf.d
- アルファベット順で一番初めに来るような名前(xxxx.conf)で、新規ファイルを作成する
vi 00-reject.conf
- 次の内容を入力して保存
<VirtualHost *:80> ServerName any <Location /> Require all denied </Location> </VirtualHost> <VirtualHost *:443> ServerName any SSLEngine on SSLCertificateFile サーバー証明書ファイルのパス SSLCertificateKeyFile 秘密鍵ファイルのパス <Location /> Require all denied </Location> </VirtualHost>
ファイルは、SSLを設定したときに作成されたファイル
- 設定を確認して、再起動
apachectl configtest systemctl restart httpd
IPアドレスで接続された…失敗か?
設定が終わったので、IPアドレスでアクセスしてみました。
すると…
『SSLの警告が出たってことは、IPアドレスで接続されたってことか???』
と思いつつ、「詳細設定」→「XXX.XX.XX.XXXにアクセスする(安全ではありません)」の手順でWebページを表示してみると…
Forbiddenが表示された!
どうやら、上手く設定ができていたようです。
よかったよかった。
Let’ Encrytpの更新でエラー
数日後、Let' Encrytpの更新でエラーが出ました。
「なんでだー!!」と思いながら、サーバーにログインしてLet' Encrytpのテスト更新コマンドを実行してみました。
#certbot renew --dry-run
MPORTANT NOTES:
- The following errors were reported by the server:
Domain: affi-sapo-sv.com
Type: unauthorized
Detail: Invalid response from
http://affi-sapo-sv.com/.well-known/acme-challenge/vbet7YEPNcQOcghT-Yui-Op8aSDfGhJklz1qWer4t5d
[123.45.67.890]: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML
2.0//EN\">\n<html><head>\n<title>403
Forbidden</title>\n</head><body>\n<h1>Forbidden</h1>\n<p"
To fix these errors, please make sure that your domain name was
entered correctly and the DNS A/AAAA record(s) for that domain
contain(s) the right IP address.
どうやらhttpでサイトにアクセスできないため、エラーになっていたようです。
よく考えると、先ほどの00-reject.confの設定でhttpへのアクセスを無効にしています。
<VirtualHost *:80>
ServerName any
<Location />
Require all denied
</Location>
</VirtualHost>
しかし、httpでドメイン名でのVirtualHost設定をしていなかったため、httpへのアクセス全てが無効になっていました。
そこで次のように、00-reject.confを変更しました。
<VirtualHost *:80>
ServerName any
<Location />
Require all denied
</Location>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot ルートパス
ServerName affi-sapo-sv.com
</VirtualHost>
<VirtualHost *:443>
ServerName any
SSLEngine on
SSLCertificateFile サーバー証明書ファイルのパス
SSLCertificateKeyFile 秘密鍵ファイルのパス
<Location />
Require all denied
</Location>
</VirtualHost>
コンフィグの書式確認→httpd再起動後に再度、Let’ Encrytpのテスト更新コマンドを実行。
#httpd -t
Syntax OK
#systemctl restart httpd
#certbot renew --dry-run
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations, all simulated renewals succeeded:
/etc/letsencrypt/live/affi-sapo-sv.com/fullchain.pem (success)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
成功したので、実際に更新してみます。
# certbot renew
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/affi-sapo-sv.com.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert not yet due for renewal
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
The following certificates are not due for renewal yet:
/etc/letsencrypt/live/affi-sapo-sv.com/fullchain.pem expires on 2021-05-26 (skipped)
No renewals were attempted.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
The following certs are not due for renewal yet
「次の証明書はまだ更新の期限ではありません」
と表示されました…
証明書の期限を確認してみます。
# certbot certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Found the following certs:
Certificate Name: affi-sapo-sv.com
Serial Number: 1a23bd567cd8e901fgh12i345j6789kfg1
Key Type: RSA
Domains: affi-sapo-sv.com
Expiry Date: 2021-05-26 07:24:35+00:00 (VALID: 89 days)
Certificate Path: /etc/letsencrypt/live/affi-sapo-sv.com/fullchain.pem
Private Key Path: /etc/letsencrypt/live/affi-sapo-sv.com/privkey.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
いつの間にか更新されています。
なんでだろう…
更新日:2021/01/27
関連記事
スポンサーリンク
記事の内容について
こんにちはけーちゃんです。
説明するのって難しいですね。
「なんか言ってることおかしくない?」
たぶん、こんなご意見あると思います。
裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。
そんなときは、ご意見もらえたら嬉しいです。
掲載コードについては事前に動作確認をしていますが、貼り付け後に体裁を整えるなどをした結果動作しないものになっていることがあります。
生暖かい視線でスルーするか、ご指摘ください。
ご意見、ご指摘はこちら。
https://note.affi-sapo-sv.com/info.php
このサイトは、リンクフリーです。大歓迎です。