0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Linux基本設定】 pam.d設定(パスワードポリシー/ログイン制限/コマンド監視)

Last updated at Posted at 2025-03-11

前提

サーバーはEC2で構築
基礎的なコマンドは打てる前提

目的

PAMの主要な設定
・ユーザーのパスワード設定
・ユーザーのパスワードポリシー
・パスワードの再試行回数設定
・コマンド監視

ユーザーのパスワード設定

passwd <ユーザー名>

設定パスワードを確認含めて2回入力すると変更可能

パスワードポリシー設定

PAMについて

パスワード関連の設定はLinuxに標準で入ってるPAMモジュールで制御されている(ことが多い)

正直PAMは奥が深すぎるし全然理解できていないので主要なものだけ記載します....

中でも
/etc/pam.d/system-auth/etc/security/pwquality.conf
が大事

パスワードポリシールール

/etc/security/pwquality.conf内でパスワードポリシーを制御する

12文字以上+特殊文字数字大文字小文字含む場合

minlen = 12        # 最低文字数
dcredit = -1       # 少なくとも1つの数字を含む
ucredit = -1       # 少なくとも1つの大文字を含む
lcredit = -1       # 少なくとも1つの小文字を含む
ocredit = -1       # 少なくとも1つの特殊文字を含む

パスワード認証ルール

/etc/pam.d/system-authでパスワード認証ルールを設定する
SSH,SUDO,passwdなど複数のサービスの認証の共通設定となる

auth :: ログイン時に適用するルール
account :: ログインユーザーのシステムログイン権限をチェック
password :: パスワード変更の際に適用
session :: ユーザーのログインセッション管理
↑これらは管理グループといいsystem-auth内ではこの単位で設定を適応する

それぞれ詳細な設定を記載していく

ログイン試行回数制限

pam_faillock.so でログイン失敗のアカウントロックなどを制御する

auth  required      pam_faillock.so preauth silent audit deny=回数 unlock_time=解除時間
auth  [default=die] pam_faillock.so authfail audit deny=回数 unlock_time=解除時間
account     required      pam_unix.so
account required pam_faillock.so

UNIX認証でのパスワードをN回失敗するとT秒間アカウントロックする

ロック解除はsudoユーザーから下記コマンド入力

faillock --user <ユーザー名> --reset 

パスワード強度チェック

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3

/etc/security/pwquality.conf の設定を元にパスワードの強度を検証

パスワードをハッシュ化して保存

password    sufficient    pam_unix.so try_first_pass use_authtok nullok sha512 shadow

/etc/shadowにsha512でハッシュ化されてパスワードが保存

特定ユーザーのリモートログイン禁止

アクセスに関するルールは/etc/security/access.confに記載

/etc/security/access.conf
-:<ユーザー名>:ALL EXCEPT <IPアドレス>
-:root:ALL EXCEPT 192.168.1.100

rootへの192.168.1.100以外からのログイン禁止(SSH)

account     required      pam_access.so

↑アクセス設定適応

特定の時間だけログイン

ログイン時間帯制御は```/etc/security/time.conf


```/etc/security/time.conf
login;*;<ユーザー名>;<時間指定>

<時間指定>の部分はここでは記載しない

/etc/security/time.conf
login;*;root;!Wk0900-1800

root ユーザーのログインを平日の9:00~18:00だけ許可

account     required      pam_time.so

↑時間帯設定適応
とはいえ、夜間作業等でrootユーザーが使えないと困るケースの方が多いのでこんな設定しないか

コマンド監視

pam_tty_auditモジュールでコマンド監査用のログを取得できる

設定ファイルはetc/audit/auditd.confに記載

etc/audit/auditd.conf
log_file = /var/log/audit/audit.log  #監査ログの保存先
max_log_file = 8  #監査ログファイルの最大サイズ(MB単位)。このサイズを超えるとローテーション
max_log_file_action = ROTATE  #ログをローテーション(古いものを削除)

↓pam_tyy_auditの適応

session required pam_tty_audit.so disable=username,username2 enable=username

コマンドログ監査対象から除外したいユーザーはdisableで明記

基本的にroot/sudo許可ユーザーなど重要な操作を行えるユーザーだけ対象にしよ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?