GNU/Linux >> Linux の 問題 >  >> Linux

Nginxのディレクトリとサブディレクトリへのアクセスを制限する方法

皆さん、こんにちは。この投稿では、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

これで、フォルダにアクセスするときに、パスワードの入力を求められます。

結論

この短くて簡単な投稿では、Webサーバー上のフォルダへのアクセスを制限することと同じくらい重要なことを説明しました。

Nginxドキュメント


Linux
  1. 特定のディレクトリ内のファイルとサブディレクトリの数をカウントする方法

  2. ディレクトリとサブディレクトリ内のファイル数を見つける方法

  3. ディレクトリとそのすべてのサブディレクトリ内の文字列を grep する方法は?

  1. cPanelでphpMyAdminとphpPgAdminにアクセスする方法

  2. Windows10およびWSL2でLinuxファイルシステムにアクセスする方法

  3. nginxの背後でKibana 4とelasticsearchを構成するには?

  1. CentOS7にNginxをインストールして構成する方法

  2. Linuxでディレクトリとフォルダを削除する方法は?

  3. wgetを使用してディレクトリ全体とサブディレクトリをダウンロードする方法は?