第 5 章 アカウントのセキュリティ 対 策 5.2 パスワードの 管 理 5.2.1 パスワードの 期 限 設 定 シャドウパスワードを 使 用 してアカウントの 管 理 を 行 っている 場 合 パスワードエージング 機 能 (パス ワードの 期 限 設 定 )が 使 用 できます パスワードエージング 機 能 は ユーザーに 対 して 定 期 的 にパスワード 変 更 を 強 制 することができるた め セキュリティの 向 上 を 図 ることができます パスワード 期 限 の 確 認 パスワードの 期 限 確 認 は chageコマンドの -l オプションを 用 います #chage-l micke y Last password change Nov 12,2012 Password expires never Password inactive never Account expires never Minimum number of daysbetweenpasswordchange 0 Maximum number of daysbetweenpasswordchange 9999 Numberofdays of warning before pasword expires 7 Lastpasswordchange Passwordexpires Passwordinactive Accountexpires Minimum numberofdays betweenpasswordchange Maximum numberofdays betweenpasswordchange Numberofdaysofwarning beforepasswordexpires パスワードの 最 終 更 新 日 を 表 します パスワードの 有 効 期 限 日 を 表 します Lastpasswordchange と Maximumnumber... から 自 動 的 に 算 出 されます パスワードの 有 効 期 限 に 依 存 するアカウント 期 限 日 を 表 します Lastpasswordchange Maximumnumber... inactive から 自 動 的 に 算 出 されます パスワードの 変 更 とは 無 関 係 な アカウントの 期 限 日 を 表 します 無 期 限 にする 場 合 は 1969-12-31を 設 定 します パスワード 変 更 後 再 度 のパスワード 変 更 を 禁 止 する 期 間 です 期 限 を 指 定 しない 場 合 0を 設 定 します パスワードの 有 効 期 限 です パスワード 変 更 後 にこの 期 間 を 過 ぎた 場 合 ログイン 時 にパスワー ド 変 更 を 強 制 します パスワード 期 限 を 無 効 にする 場 合 9999を 設 定 します パスワードの 期 限 切 れの 何 日 前 から 警 告 するか 設 定 します 警 告 期 間 に 入 ると ログイン 時 に 警 告 が 表 示 されます 72
5.2 パスワードの 管 理 パスワード 期 限 の 設 定 chageコマンドの 引 数 にユーザー 名 のみを 指 定 した 場 合 は 対 話 的 にユーザーのパスワード 期 限 を 変 更 することができます 変 更 点 のみを 入 力 します #chage ymicke Changing theaginginformationfor mickey Enter thenew value, orpress ENTER forthe default # Minimum Password Age [0] Maximum Password Age [99999]90 Last Password Change (YYYY-MM-DD)[2012-09-01] Password Expiration Warning[7]14 Password Inactive [-1] Account ExpirationDate(YYYY-MM-DD)[1969-12-31] また オプションを 指 定 することにより 非 対 話 で 設 定 することができます #chage -M 90-W 14mickey #chage -l mickey Last password change Sep 01,2012 Passwordexpires Nov 30,2012 Password inactive never Account expires never Minimum number of daysbetweenpasswordchange 0 Maximum number of days e between 90 password chang Number of days of warning s before 14 password expire 書 式 chage [-m 最 小 ] [-M 最 大 ] [-W 警 告 ] [-I 無 効 ] [-d 最 近 の 変 更 ] [-Eアカウント 期 限 切 れ] ユーザー 名 初 回 のログイン 時 にパスワード 変 更 を 強 制 したい 場 合 には パスワード 変 更 日 付 に 0を 指 定 します #chage -d 0 mickey パスワードの 有 効 期 限 は 最 短 でも30 日 は 設 定 します 73
第 5 章 アカウントのセキュリティ 対 策 パスワード 有 効 期 限 が 切 れた 場 合 は ログイン 時 にパスワードの 変 更 が 強 制 されます loginmicke y Pasword 現 在 のパスワード Youarerequired to change your password immediately(pasword aged) Changing pasword formickey (current)unix pasword 現 在 のパスワード NewUNIX pasword 新 しいパスワード Retypenew UNIXpassword 新 しいパスワード $ パスワード 期 限 のデフォルト 値 ユーザー 登 録 時 にパスワード 期 限 やアカウント 期 限 を 明 示 しない 場 合 にはデフォルト 値 が 使 用 され ます デフォルト 値 は 以 下 のファイルに 記 述 されています /etc/default/useradd /etc/login.defs /etc/default/useradd # useradddefaultsfile GROUP=100 HOME=/home INACTIVE =-1 パスワード 無 効 日 数 EXPIRE = アカウントの 期 限 SHELL=/bin/bash SKEL=/etc/skel /etc/login.defs PASS_MAX_DAYS 9999 9 パスワードの 有 効 期 限 PASS_MIN_DAYS 0 パスワードの 最 小 日 数 PASS_MIN_LEN 5 PASS_WARN_AGE 7 パスワード 期 限 切 れ 警 告 開 始 日 数 74
5.2 パスワードの 管 理 5.2.2 アカウントのロック 一 時 的 にユーザーのログインを 禁 止 したり 各 種 サービスの 提 供 を 中 止 したりする 場 合 には アカウ ントをロックします アカウントのロックは passwdコマンド もしくは usermodコマンドを 使 用 します passwdコマンドの 例 #grep micke y /etc/shado w mickey$1$chklwlkr$n4yzfadqets71jvc0vzn//13123099997 #passwd -l micke y アカウントのロック Locking password for usermickey. passwd Success #grepmicke y /etc/shado w 暗 号 化 文 字 列 の 先 頭 に!! が 付 加 される mickey!!$1$chklwlkr$n4yzfadqets71jvc0vzn/13123099997 #passwd -u micke y アカウントのロック 解 除 Unlockingpasswordforusermickey. passwd Success. #grep user1 w /etc/shado 暗 号 化 文 字 列 の 先 頭 の!! が 削 除 される mickey$1$chklwlkr$n4yzfadqets71jvc0vzn//13123099997 usermodコマンドの 例 #usermod -L micke y #grep micke y /etc/shado w 暗 号 化 文 字 列 の 先 頭 に! が 付 加 される mickey!$1$chklwlkr$n4yzfadqets71jvc0vzn//13123099997 #usermod -U micke y #grep micke y /etc/shado w mickey$1$chklwlkr$n4yzfadqets71jvc0vzn//13123099997 passwdコマンドとusermodコマンドによるアカウントロックの 方 法 には 若 干 の 違 いがあるため ロック を 行 ったコマンドで 解 除 する 必 要 があります また アカウントロックは/etc/shadow 内 のパスワードフィールドの 暗 号 化 文 字 列 を 操 作 するため 独 自 に 認 証 機 能 を 持 つ(システムアカウントのパスワードを 使 わない)アプリケーションでは 利 用 できま せん 75
第 5 章 アカウントのセキュリティ 対 策 5.2.3 パスワード 強 化 設 定 パスワードは 文 字 数 を 多 く 様 々な 種 類 の 文 字 を 組 み 合 わせることによって 他 人 に 推 測 されにくくす ることができます passwdコマンドを 用 いてパスワードを 変 更 する 際 に 以 下 の 設 定 を 行 うことにより 単 純 なパスワードの 設 定 を 拒 否 することができます crackli b pam_cracklib crackli bは 単 純 なパスワードや 辞 書 に 登 録 されているパスワードを 検 査 するライブラリです 一 般 的 なディストリビューションでは passwdコマンドが 用 いるPAMモジュール 23 に pam_crackli bモジュール を 設 定 することにより passwdコマンド 実 行 時 に crackli bを 使 用 することができます pam_crackli bモジ ュールの 設 定 を 変 更 することにより パスワード 文 字 列 に 含 まれる 小 文 字 大 文 字 数 字 その 他 の 文 字 数 を 制 限 することができます /etc/pam.d/system-auth pam_crackli bモジュールの 設 定 は /etc/pam.d/system-authファイルに 記 述 します /etc/pam.d/system-auth #%PAM-1.0 auth required pam_env.so auth suficient pam_fprintd.so auth suficient pam_unix.so nullok try_first_pass auth requisite pam_suceed_if.so uid>= 500quiet auth required pam_deny.so account required pam_unix.so account suficient pam_localuser.so account suficient pam_suceed_if.so uid< 500 quiet account required pam_permit.so password requisite pam_cracklib.so try_first_pass = retr password suficient pam_unix.so sha512 shadownullok try_first_pass use_au thtok password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so session [success=1default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so 23 PAM(PluggableAuthenticationModules)とは loginや suなどのユーザー 認 証 を 必 要 とするアプリケーションが 利 用 する 共 通 の 認 証 の 仕 組 みです 認 証 部 分 がモジュールとして 提 供 されるため 各 アプリケーションは 使 用 する モジュールを 選 択 することにより 認 証 方 法 を 選 択 することができます 76
5.2 パスワードの 管 理 pam_crackli bモジュールでは 一 般 ユーザーが 自 分 のパスワードを passwdコマンドで 変 更 する 際 に 文 字 の 種 類 ごとにパスワードに 設 定 する 文 字 数 を 制 限 することができます 文 字 数 や 種 類 の 制 限 には 以 下 のオプションをpam_crackli bモジュールの 設 定 に 追 加 します オプション 名 効 果 デフォルト 値 dcredit パスワードに 含 むべき 数 字 の 数 を 負 数 で 指 定 1 ucredit lcredit ocredit パスワードに 含 むべきアルファベットの 大 文 字 の 数 を 負 数 で 指 定 パスワードに 含 むべきアルファベットの 小 文 字 の 数 を 負 数 で 指 定 パスワードに 含 むべき 数 字 アルファベット 以 外 の 文 字 数 を 負 数 で 指 定 1 1 1 minlen パスワードの 最 小 文 字 数 9 例 ) 数 字 大 文 字 その 他 の 文 字 を 最 低 1 文 字 含 む 8 文 字 以 上 のパスワードを 要 求 する 場 合 account required pam_permit.so password requisite pam_cracklib.so try_first_pas sretry= 3type = \ dcredit =-1 ucredit =-1 credit=0 l =-1 ocredit nlen= mi8 password suficient pam_unix.sosha512 shadownullok try_first_pass use_au thtok 参 考 minlenとdcredit ucredit lcredit ocreditの 関 係 dcreditなどに 0 以 上 の 値 を 設 定 した 場 合 は 文 字 種 ごとの 文 字 数 を 制 限 する 代 わりに minlenで 設 定 するパスワードの 最 小 文 字 数 からdcreditなどの 文 字 数 が 引 かれた 値 を 最 小 文 字 数 として 設 定 するはたらきを 持 ちます パスワードに 含 まれる 字 種 によらずパスワードの 最 小 文 字 数 を10に 設 定 する dcredit=0ucredit=0 lcredit=0 ocredit=0minlen=10 パスワードに 数 字 を 含 む 場 合 には 1 文 字 分 に 限 り パスワードの 最 小 文 字 数 を 短 く 設 定 することを 許 可 する ( 数 字 を 含 むパスワードであればパスワードの 最 小 文 字 数 は 9 文 字 数 字 を 含 まない 場 合 には 10 文 字 ) dcredit=1 ucredit=0 lcredit=0ocredit=0minlen=10 77
第 5 章 アカウントのセキュリティ 対 策 実 習 パスワードの 管 理 1. atomユーザーにパスワード 期 限 を90 日 に 設 定 し パスワードの 最 近 の 変 更 の 日 付 を0に 設 定 します これにより atom ユーザーは 次 回 ログイン 時 にパスワードの 変 更 を 強 制 されま す #chage -M 09-d 0 atom #chage -l atom 2. Ctrl + Alt + F2 によりコンソールに 切 り 替 えて atomユーザーでログインします こ のとき パスワードの 変 更 が 強 制 されます stationxlogin atom Password system5 (current)unix pasword system5 NewUNIX pasword qwer1 2#$ Retypenew UNIXpassword qwer1 2#$ 3. Alt + F1 または Alt + F7 で Xの 画 面 に 戻 ります 4. パ スワードの 設 定 を 強 化 するため pam_crackli b モジュールに 設 定 を 追 加 します /etc/pam.d/system-authを 以 下 の 通 り 編 集 し 数 字 アルファベットの 大 文 字 記 号 を 含 む 8 文 字 以 上 のパスワードを 要 求 するように 設 定 します #vi /etc /pam.d/syste m-auth /etc/pam.d/system-auth password requisitepam_cracklib.sotry_first_passretry=3type= \ dcredit=-1 ucredit =-1 lcr edit=0 ocredit =-1 minl en=8 password sufficient /lib/security/$isa/pam_unix.so nullok use_authtokmd5 shadow password required /lib/security/$isa/pam_deny.so 78
5.2 パスワードの 管 理 5. Ctrl + Alt + F2 によりコンソールに 切 り 替 えて atomユーザーのパスワードを 変 更 します ログインしていない 場 合 はログインを 行 う stationx loginatom Password qwer12# $ $passw d Changing pasword foruser atom. Changing pasword foratom (current)unix pasword qwer12# $ cracklibの 制 限 をクリア NewUNIX pasword atom1234 していないパスワード BADPASSWORD is too simple NewUNIX pasword 5678ATOM!/ Retypenew UNIXpassword 5678ATOM! / passwd all authentication tokensupdated sucessfully. $exit 6. Alt + F1 または Alt + F7 で Xの 画 面 に 戻 り rootユーザーで atomユーザー のパスワードを 戻 しておきます #passwd m ato Changing pasword foruser atom. NewUNIX pasword sys1234 Retypenew UNIXpassword sys1234 passwd all authentication tokensupdated sucessfully. # rootユーザーは pam_crackli bモジュールの 制 限 を 受 けません 79