もっと詳しく

Linuxでは、sudoersファイルはユーザーに昇格された特権を付与する場所です。 デフォルトでは、rootユーザーのみがこれらの特権を持っています。 ただし、場合によっては、通常のユーザーにも昇格された特権が必要になることがあります。

sudoersファイルは、主にシステム管理者が管理するためのものであり、初心者にとっては少し気が遠くなる可能性があります。 それがあなたを落胆させないでください! 忍耐と細部への注意があれば、誰でもsudoersファイルを効果的に管理する方法を学ぶことができます。

このガイドでは、sudoerを編集し、ユーザーに昇格された特権を安全に与える方法を説明します。 また、sudoersを操作するときに覚えておくべきいくつかのベストプラクティスについても学びます。 どこにも行かないでください。 Linuxユーザー権限管理を次のレベルに引き上げる準備をしてください!

前提条件

このチュートリアルは、実践的なデモンストレーションになります。 フォローしたい場合は、使用できる通常のユーザーアカウントを持つLinuxシステムがあることを確認してください。 このガイドではUbuntu20.04システムを使用していますが、他のLinuxディストリビューションでも機能するはずです。

LinuxSudoersファイルの概要

sudoersファイルは/etc/ sudoersにあります。これは、sudoコマンドの実行時にユーザーが取得する特権に関するポリシーを含むプレーンテキストファイルです。 先に進む前に、sudoersファイルのデフォルトのコンテンツとセクションをよく理解しておくことが重要です。

以下のスクリーンショットは、Ubuntu20.04のデフォルトのsudoersファイルの内容を示しています。 sudoersファイルのデフォルトの内容は、Linuxディストリビューション間で異なる場合があります。

以下は、sudoersファイルのセクションの概要です。

デフォルトセクション

Sudoersファイルのデフォルトエントリ
  • Defaults env_reset - Executing commands with sudo creates a new environment with minimal or default environment variables. In most Linux distros, sudo will load the environment variable in the /etc/environment file.
  • デフォルトmail_badpass–この行は、ユーザーがsudoで間違ったパスワードを入力すると、ルートに電子メールを送信するトリガーになります。
  • Defaults secure_path - This line defines the PATH environment variable that sudo uses instead of the user’s PATH environment.

ユーザーおよびグループのSudo権限

この行は、特定のユーザーまたはグループのメンバーに対するsudo特権を定義します。

Sudoersは特権ポリシーを提出します
Sudoersは特権ポリシーを提出します

注:最初の%は、ポリシーがグループメンバーに適用されることを示します。

  • 最初のフィールドは、彼のポリシーがに適用されることを定義します root ユーザーとのメンバー adminsudo グループ。
  • 最初 ALL ルールがすべてのホストに適用されることを意味します。
  • 二番目 ALL を許可します root 任意のユーザーとしてコマンドを実行するためのアカウント。
  • 第3 ALL を許可します root 任意のグループとしてコマンドを実行するためのアカウント。
  • 最後 ALL このポリシーがコマンドコマンドに適用されることを意味します。

ディレクティブを含める

ファイルの最後に、コメントのように見えるがそうではない行が表示されます。 #includeおよび#includedirで始まる行が呼び出されます ディレクティブを含める

Sudoersファイル#includeディレクティブ
Sudoersファイル#includeディレクティブ

#includedir /etc/sudoers.d –この行は、sudoに/etc/sudoers.dを調べるように指示します。 追加の構成ファイルのディレクトリ。

適切なツールを使用したSudoersファイルの編集

sudoersファイルは、好みのテキストエディタで開くことができるプレーンテキストファイルですが、そうすることはお勧めできません。 なんで? sudoersファイルの内容は特定の構文に従っているため、通常のテキストエディターには、sudoersファイルを台無しにすることを防ぐためのセーフガードがありません。

不適切な構成はセキュリティの問題につながる可能性があります。 最悪の場合、すべてのユーザーが特権を昇格する機能を失う可能性があります。

正しいツールは何ですか? — visudo。 このツールは、デフォルトのテキストエディタでsudoersファイルを開きます。 さらに、 visudo 同時編集を防ぎ、終了する前にエラーチェックを実行します。

Ubuntu 20.04では、デフォルトのエディターは vim、ただし、次のような代替エディタを設定できます nano、必要に応じて。

1.LinuxマシンでターミナルセッションまたはSSHを開きます。

2.以下のコマンドを実行して、コンピューターで使用可能なテキストエディターを一覧表示します。

sudo update-alternatives --config editor

ご覧のとおり、現在のデフォルトのエディターはselection 5、つまりvimです。 デフォルトのままにしておきたい場合は、Enterキーを押します。 別のエディターが必要な場合は、対応する選択番号(nanoの場合は0など)を押して、Enterキーを押します。

デフォルトのsudoersファイルエディタの設定
デフォルトのsudoersファイルエディタの設定

3.次に、以下のコマンドを実行して、デフォルトのエディターでsudoersファイルを開きます。

sudoersファイルが別のセッションで開かれている場合、以下のエラーが表示され、visudoによってファイルを開くことができなくなります。 このように、2人のユーザーが同時に競合する変更を行うことはできません。

visudo:/ etc / sudoersがビジーです、後で再試行してください

4. sudoersファイルが開いたら、 意図的に構文エラーを引き起こす ALLの最後のインスタンスを削除してから、保存してエディターを終了します。

sudoersファイルを編集して構文エラーを発生させる
sudoersファイルを編集して構文エラーを発生させる

5.5。 visudo will warn you that there’s a syntax error and asks, “What now?”. At this point, you have three options.

  • タイプ e Enterキーを押して、ファイルを再編集します。 このオプションを使用すると、エディターでsudoersファイルを再度修正できます。
  • タイプ x Enterキーを押して変更を破棄し、終了します visudo
  • Qと入力し、Enterキーを押してエラーを無視し、sudoersファイルを保存して、visudoを終了します。 結果が確実でない限り、このオプションを選択しないでください。

この例では、xを押して変更を破棄し、古いsudoersファイルの内容を保持します。

visudosudoersファイルの構文エラーの処理
visudosudoersファイルの構文エラーの処理

ご覧のとおり、sudoersファイルを台無しにするのは難しいでしょう。 visudo 永久に。

特定の特権の付与

sudoersファイルに直接変更を加えることは可能ですが、ポリシーとルールが大きくなるにつれて管理できなくなる可能性があります。 より良い代替方法は、代わりにincludeディレクティブを使用することです。 このようにして、さまざまなカスタムポリシーとルールを含む複数の構成ファイルを作成できます。

ユーザーのグループに特定のネットワークコマンドをrootとして実行するように指定するとします。 これを行うには、そのグループのカスタムルールを含むファイルを/etc/sudoers.dディレクトリに作成する必要があります。

1.まず、カスタムルールのターゲットとなる必要なグループを作成します。 この例では、グループの名前はnetadminです。

netadmin
netadmin

2.次に、通常のユーザーアカウントを作成し、netadminグループのメンバーにします。

sudo adduser ata
sudo usermod -aG netadmin ata
id ata
新しい通常ユーザーを作成し、netadminグループのメンバーとして追加します
新しい通常ユーザーを作成し、netadminグループのメンバーとして追加します

3.ここで、/ etc / sudoers.d / networkという名前の新しいsudoersファイルを作成し、visudoで開きます。

sudo visudo -f /etc/sudoers.d/networking

4.次の行をコピーしてに貼り付けます ネットワーキング ファイル。

Cmnd_Alias     CAPTURE = /usr/sbin/tcpdump
Cmnd_Alias     SERVERS = /usr/sbin/apache2ctl, /usr/bin/htpasswd
Cmnd_Alias     NETALL = CAPTURE, SERVERS
%netadmin ALL=NETALL

Cmnd_Alias行は、コマンドのエイリアスを作成しています。 この例では、tcpdumpコマンドにエイリアスCAPTUREを割り当て、apache2ctlコマンドとhtpasswdコマンドにSERVERSを割り当てます。 これらの行は、コマンドをグループ化してまとめた名前を付けるものと考えてください。

最後の行は、netadminグループのメンバーがNETALL別名の任意のコマンドをrootとして実行できることを指定しています。 この行は、Cmnd_Alias行の後に来る必要があります。

終了したら、ネットワークファイルを保存して閉じます。
保存して閉じます ネットワーキング 終了したらファイルします。

5. ataアカウントのsudo権限をテストするには、ataユーザーアカウントに切り替えます。

ユーザーアカウントの切り替え
ユーザーアカウントの切り替え

6.ここで、tcpdumpなど、ユーザーがsudoアクセスできるコマンドの1つを実行します。

以下に示すように、sudoコマンドは、アカウントがそれを実行するためのアクセス権を持っているため、機能するはずです。

sudoアクセスを試行しています
sudoアクセスを試行しています

7.次に、アカウントがlshwなどのカスタムルールにない他のコマンドを実行できないことをテストして確認します。

その結果、アカウントにrootとしてコマンドを実行する権限がないため、sudoの試行は失敗します。

sudoが失敗しました
sudoが失敗しました

8.最後に、以下のコマンドを実行して、アカウントに戻ります。

passwd_triesオプションを使用したセキュリティの強化

sudoを使用して間違ったパスワードを何度でも入力しようとすることはできません。これは、ブルートフォース攻撃やパスワードスプレー攻撃への公然の招待です。 予防策として、sudoersファイル内にpasswd_triesオプションを追加して、再試行の最大数を設定する必要があります。

1.まず、visudoを使用してカスタムsudoersファイルを開きます。

sudo visudo -f /etc/sudoers.d/networking

2.sudoersファイルの最後に以下の行を追加します。 この行では、これ以上の試行を防ぐ前に、最大4回の誤ったsudoパスワードの試行が許可されます。

カスタムsudoersファイルは以下のスクリーンショットと同じように見えるはずです。 必ずファイルを保存して、エディターを終了してください。

passwrd_triesオプションの追加
passwrd_triesオプションの追加

3.ここで、ataユーザーアカウントに切り替えて、rootとしてtcpdumpコマンドを再実行します。 ただし、今回は、パスワードプロンプトが終了するまで、間違ったパスワードを入力します。

間違ったパスワードで4回試行した後、sudoが5回目の別のパスワードの入力を停止していることがわかります。

誤ったsudoパスワードの試行を制限する
誤ったsudoパスワードの試行を制限する

結論

このチュートリアルでは、デフォルトのsudoersファイルの基本を学びました。 カスタム特権を付与するために、別のsudoersファイルにカスタムルールを作成しました。 カスタムルールの作成と適用は、ユーザーをに追加するよりも安全です。 sudo グループ。

また、passwd_triesオプションを適用して、sudoが認証の試行を終了する前にユーザーが実行できる不正なパスワードの試行回数を指定する方法も学習しました。 どのユーザーがどのコマンドにアクセスできるかをきめ細かく制御できます。

ここで止まらないでください! sudoersファイルを使用すると、次のようにさらに多くのことができます。 講義ファイルを追加してスパイスを効かせる ユーザーのsudoエクスペリエンス。 読んでいただきありがとうございます。Linuxシステムの保護を楽しんでください。

The post SudoersファイルでLinuxを保護する appeared first on Gamingsym Japan.