皆さん、こんにちは。この投稿では、Nginxのいくつかのトリックを続けます。それで、今日、あなたはNginxのディレクトリとサブディレクトリへのアクセスを制限する方法を学びます。行きましょう。
まず、これを行う必要がありますか?
簡単な答えは「はい」です。間違いなく。アプリケーションやWebサイトには、機能させるために機密ファイルを含むフォルダーが多数あるためです。
上記の理由から、これらのフォルダへのアクセスを禁止し、サイトのセキュリティを向上させるルールを確立することをお勧めします。
これらの制限はIPアドレスによって適用できるため、必要な構成を柔軟に適用できます。
楽です。行きましょう。
続行する前に、問題なく投稿を完了するための要件を満たしていることを確認する必要があります
- Nginxをインストールして構成する必要があります。したがって、Linuxディストリビューションの公式リポジトリを使用していることを確認してください。
- Nginxのバージョンは1.9.5より前である必要があります。ほとんどのディストリビューションには最新バージョンが含まれているため、問題はありません。
- 端末の使用に関する基本的な知識を持っている。
- sudoアクセスまたはrootアクセスを持つユーザー。
行きましょう。
Nginxのディレクトリとサブディレクトリへのアクセスを制限する方法
サーバー上に複数のサーバーブロックがあるのは通常のことです。ただし、構成をグローバルに適用する場合、または構成を作成していない場合は、/etc/nginx/nginx.conf
を変更する必要があります。 –それ以外の場合は、各サーバーブロックの構成ファイルを編集する必要があります。たとえば、
sudo nano /etc/nginx/sites-enabled/domain.conf
この投稿では、data
というフォルダーを使用します ウェブサイトのルートにあります。したがって、相対パスは/data
になります。 。
アクセス拒否を実行するNginxディレクティブはDeny
です。 ただし、ディレクトリを参照するスクリプト内で指定する必要があります。
そのディレクトリへのアクセスを制限する場合は、構成ファイルに含める必要があります
location /data {
...
deny all;
...
}
特定のIPアドレスへのアクセスを制限することもできます。例:
location /data {
...
deny 192.168.2.5;
...
}
複数のIPアドレスがある場合は、次のように指定できます
location /data {
...
deny 192.168.2.5;
deny 192.168.2.9;
...
}
IPアドレス範囲を使用することもできます
location /data {
...
Deny 192.168.1.0/24;
...
}
変更を保存して、エディターを閉じます。変更を適用するには、Nginxを再起動します。
sudo systemctl restart nginx
これで完了です。
Nginxのパスワード保護ディレクトリ
もう1つの便利なオプションは、パスワードを追加することです。この方法は非常に安全であり、誰がアクセスできるかをより細かく制御できます。
これを行うには、apache2-utils
をインストールします Debian、Ubuntuおよび派生物のパッケージ。およびhttpd-tools
RHEL、RockyLinuxおよびその派生物。
次に、パスワードがホストされ、その後にユーザーが続くファイルを作成します。例:
sudo htpasswd -c /home/username/.htpasswd user
実行すると、ユーザーの新しいパスワードを入力するように求められます。
NginxまたはServerBlocks構成ファイルを編集します
sudo nano /etc/nginx/sites-enabled/domain.conf
そして、このようなものを追加します
location /data {
auth_basic "Restricted";
auth_basic_user_file /home/username/.htpasswd;
}
変更を保存し、エディターを閉じてNginxを再起動します。
sudo systemctl restart nginx
これで、フォルダにアクセスするときに、パスワードの入力を求められます。
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042816180597.png)
結論
この短くて簡単な投稿では、Webサーバー上のフォルダへのアクセスを制限することと同じくらい重要なことを説明しました。
Nginxドキュメント