ご存知のとおり、rootユーザーは王様であり、Linuxシステムに対して無制限の特権を行使します。 ただし、root以外のユーザーは基本的なタスクに制限されています。 加えて、 sudoユーザー 特定の昇格されたタスクを実行するためにrootユーザーが適切と見なした場合にのみ、ある程度のroot権限が付与されます。
通常のユーザーがリソースに制御不能にアクセスしたり、意図せずにルートにエスカレートしたりすると、問題が発生します。 これは重大なセキュリティリスクであり、侵害、望ましくない変更、最悪のシナリオではシステムのクラッシュを引き起こす可能性があります。 もう1つの潜在的なリスクは、ファイルのファイル権限の安全性が低い場合です。 たとえば、グローバルユーザーの書き込み権限を持つブートファイルは、簡単に変更または破損して、システムが破損する可能性があります。
[ あなたはおそらくそれも好きでしょう: データとLinuxを保護するための便利なヒント ]
物理、ネットワーク、およびデータのセキュリティを実装することはできますが、悪意のあるユーザーはセキュリティ対策を回避し、そのようなセキュリティの抜け穴を利用する可能性があります。 このため、ファイルシステムのセキュリティを真剣に検討する必要があります。 これは、ファイルにアクセスするためのセキュリティ対策を回避するために手間のかかる作業を行う必要がない悪意のある従業員からの攻撃や内部脅威に直面した場合に、追加の防御層を提供します。
システムセキュリティでは、以下のポイントに注力します。
あなたはおそらくそれを聞いたことがあるに違いありません Linuxのすべてがファイルと見なされます. そうでない場合、それはプロセスです。 Linuxシステム上のすべてのファイルは、ユーザーとグループユーザーによって所有されます。 また、次の3つのユーザーカテゴリのファイル権限もあります。ユーザー(u)、 グループ (NS)、 その他 (o). 権限は、読み取り、書き込み、および実行で表されます( rwx )各ユーザーカテゴリ。
rwx rwxrwx。 ユーザーグループその他。
前に見たように、 Linuxの基本セクション、の長い形式を使用してファイルのアクセス許可を表示できます lsコマンド 示されているように。
$ ls-l。
要約すると、権限は通常9文字で表されます。 最初の3文字は、ファイルを所有している実際のユーザーのアクセス権を表します。 2番目の文字セットは、ファイルのグループ所有者のアクセス許可を表します。 最後に、他のユーザーまたはグローバルユーザーの最後のセット。 これらのキャラクターは永久に 読む, 書きます, 実行する (rwx) 注文。
権限の後に、ユーザーとグループの所有権があり、次にファイルまたはディレクトリのサイズ、変更日、最後にファイルの名前が続きます。
ファイルとディレクトリのユーザー権限は、適切と思われるように変更できます。 経験則では、最小特権のセキュリティ原則を使用します。 簡単に言えば、ユーザーが作業を完了するために必要な最小限のアクセス権またはアクセス許可を取得していることを確認してください。
最小特権の原則は、ユーザーを特定の役割のみに制限し、そうすることで、攻撃者が低レバーのユーザーアカウントを利用して、重要なデータにアクセスして変更するリスクを最小限に抑えます。 また、攻撃対象領域を減らし、攻撃者がシステムを制御した場合のマルウェアの伝播を制限します。
したがって、ユーザーがファイルまたはディレクトリの内容を表示するだけでよい場合は、実行または書き込みのアクセス許可を付与しないでください。 非常に基本的なレベルでは、タスクを実行するためにユーザーが必要とする最小限のアクセス許可と所有権のみを付与します。 でchmodコマンドとchownコマンドを使用して、ファイル/ディレクトリのユーザー権限と所有権を変更する方法に取り組みました。 基本的なLinuxコマンド トピック。
システム管理者がアクセス許可を管理しやすくするために、ディレクトリ全体に特別なアクセス許可またはアクセス権を付与できます。 ファイルまたはディレクトリの削除と変更を制限するために適用できる特別な権限の1つは、スティッキービットです。
シナリオでは 共有ディレクトリはすべてのユーザーがアクセスできます システムまたはネットワークでは、一部のユーザーがディレクトリ内のファイルを削除または変更できる可能性があるという潜在的なリスクがあります。 ディレクトリの内容の整合性を維持したい場合、これは望ましくありません。 そして、これがスティッキービットの出番です。
スティッキービットは、ファイルまたはディレクトリ全体に設定される特別なファイル権限です。 そのファイル/ディレクトリの所有者にのみ、ファイルまたはディレクトリの内容を削除または変更する権限を付与します。 他のユーザーはファイル/ディレクトリを削除または変更できません。 それはの象徴的な価値を持っています NS
およびの数値 1000.
ディレクトリのスティッキービットをオンにするには、 chmodコマンド 次のように:
$ chmod + tdirectory_name。
以下の例では、スティッキービットをというディレクトリに適用しています。 テスト. ディレクトリの場合、すべてのコンテンツがスティッキービットのアクセス許可を継承します。 スティッキービットのアクセス許可は、 ls -ld 指図。 必ず注意してください NS
ファイルのアクセス許可の最後にある記号。
$ ls-ldテスト。
別のユーザーがディレクトリを削除したり、ディレクトリ内のファイルを変更したりしようとすると、次のメッセージが表示されます。 アクセス拒否 エラー。
そして、それがスティックビットファイルの許可の要点です。
NS SUID (ユーザーIDを設定する)は、別の通常のユーザーがファイル所有者のファイル権限でファイルを実行できるようにする別の特別なファイル権限です。 通常、記号値で示されます NS
ファイル権限のユーザー側ではなく、 NS
これは実行権限を表します。 SUIDの数値は4000です。
NS SGID、(グループIDの設定)を使用すると、通常のユーザーはファイルグループ所有者のグループ権限を継承できます。 ではなく NS
実行権限については、 NS
ファイルパーミッションのグループ部分。 NS SGID の数値は 2000.
彼らがどんなに便利であることが判明しても、 SUID と SGID 権限はセキュリティリスクに関連しているため、絶対に避けてください。 これは、通常のユーザーに特別な特権を付与するためです。 通常のユーザーを装った侵入者が、rootユーザーが所有する実行可能ファイルに出くわした場合 SUID それにビットを設定すると、彼らはその抜け穴を使用してシステムを悪用することができます。
ですべてのファイルを検索するには SUID Linuxで設定されたビットは 検索コマンド rootユーザーとして。
$ find / -perm -4000 type-f。
ディレクトリの実行:
$ find / -perm -4000 type-d。
ですべてのファイルを検索するには SGID ビットセット実行:
$ find / -perm -2000 type-f。
ディレクトリの場合、以下を実行します。
$ find / -perm -2000 type-d。
を削除するには SUID ファイルのビットを表示するには、次のようにchmodコマンドを実行します。
$ chmod u-s / path / to / file。
ファイルのSGIDビットを削除するには、次のコマンドを実行します。
$ chmodg-sファイル名/ path / to / file。
ユーザーが弱いパスワードを設定することは珍しくありません。 ログイン時にパスワードを忘れないように、適切な数のパスワードを短く、わかりやすく、簡単に推測できるように設定します。 弱いパスワードは便利ですが、ブルートフォース攻撃スクリプトを使用して簡単に侵害される可能性があります。
NS PAM モジュール( プラグ可能な認証モジュール )は、システム管理者がLinuxシステムにパスワードポリシーを適用できるようにするモジュールです。 これを達成するには、 pam_pwquality によって提供されるモジュール libpam_pwquality 図書館。 NS pam_pwquality モジュールは、一連のルールとシステムディクショナリに対してパスワードの強度をチェックし、弱いパスワードの選択を特定します。
をインストールするには pam_pwquality モジュールオン Ubuntu 18.04 以降のバージョンでは、次を実行します。
$ sudo apt installlibpam_pwquality。
にとって RHEL / CentOS 8、次のコマンドを実行します。
$ sudo dnf installlibpwquality。
構成ファイルは次の場所にあります。
変更を開始する前に PAM 構成ファイルでは、最初にパスワードエージングコントロールに関する洞察を収集することを検討しましょう。
これらはで見つけることができます /etc/login.defs ファイル。
このファイルには、次の主要なパスワードコントロールが含まれています。
デフォルト値を以下に示します。
NS PASS_MAX_DAYS 属性は、ユーザーがパスワードを使用できる日数を制限します。 この値に達するか、パスワードの有効期限が切れると、ユーザーはシステムにログインするためにパスワードを変更する必要があります。 デフォルトでは、この値はに設定されています 99999、これは 273 年。 ユーザーは生涯にわたってパスワードを使い続けることができるため、セキュリティに関する限り、これはあまり意味がありません。
これを意味のある値に設定できます。たとえば、図のように30日です。
PASS_MAX_DAYS30。
30日が経過すると、ユーザーはパスワードを別のパスワードに変更する必要があります。
NS PASS_MIN_DAYS 属性は、ユーザーがパスワードを変更する前に使用できる最小期間を示しています。 これは何を意味するのでしょうか? たとえば、この値が15日に設定されている場合、ユーザーは15日が経過するまでパスワードを再度変更することはできません。
PASS_MAX_DAYS15。
NS PASS_WARN_AGE 属性は、パスワードの有効期限が切れる前に、ユーザーがパスワードの有効期限が迫っていることに関する警告を受け取る日数を指定します。 たとえば、次のようにこれを7日に設定できます。
PASS_MAX_DAYS7。
ノート:これらのパスワードコントロールは、既存のアカウントでは機能しません。 これらは、ルールの定義後に作成された新しいアカウントにのみ適用されます。
編集する前に /etc/pam.d/common-password ファイル、バックアップコピーを作成します。 この例では、 common-password.bak バックアップコピーファイル。
$ sudo cp /etc/pam.d/common-password/etc/pam.d/common-password.bak。
次に、ファイルを開きます。
$ sudo vim /etc/pam.d/common-password
以下に示す行を見つけます。
パスワードが必要ですpam_pwquality.soretry = 3。
NS リトライ オプションは、エラーが発生する前に正しいパスワードを入力する必要がある最大回数を設定します。 デフォルトでは、これは3に設定されています。 これは1つのオプションにすぎず、いくつかのオプションを含めます。
次の属性を行に追加します。
minlen = 10 difok = 3 lcredit = -1 ucredit = -1 dcredit = -1 ocredit = -1 react_username
これらの属性を具体化してみましょう。
パスワードポリシーに満たない新しいユーザーを作成しようとすると、次のようなエラーが発生します。
これで、システムセキュリティと一般的なセキュリティの基礎に関するトピックは終わりです。 この章全体で、実装できる基本的なセキュリティ対策に光を当てました。 Linuxシステムを悪意のあるものから保護します ハッカーや不満を持つ従業員などのユーザー。