このドキュメントで説明するソフトウェアは、Extended SupportまたはSustaining Supportのいずれかにあります。 詳細は、https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdfを参照してください。
Oracleでは、このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお薦めします。
次のようなコマンドを使用して、ロック解除されたユーザー・アカウントがあるかどうか定期的にシステムを確認します。
# for u in `cat /etc/passwd | cut -d: -f1 | sort`; do passwd -S $u; done
abrt LK 2012-06-28 0 99999 7 -1 (Password locked.)
adm LK 2011-10-13 0 99999 7 -1 (Alternate authentication scheme in use.)
apache LK 2012-06-28 0 99999 7 -1 (Password locked.)
avahi LK 2012-06-28 0 99999 7 -1 (Password locked.)
avahi-autoipd LK 2012-06-28 0 99999 7 -1 (Password locked.)
bin LK 2011-10-13 0 99999 7 -1 (Alternate authentication scheme in use.)
...このコマンドの出力の2番目のフィールドに、ユーザー・アカウントがロックされているかどうか(LK)、パスワードがないかどうか(NP)、または有効なパスワードがあるかどうか(PS)が示されます。 3番目のフィールドには、ユーザーがパスワードを最後に変更した日付が示されます。 残りのフィールドには、パスワードの最小経過期間、最大経過期間、警告期間、パスワードの非アクティブ期間およびパスワードのステータスに関するその他の情報が示されます。 期間の単位は日数です。
保護されていないアカウントにパスワードを設定するには、passwdコマンドを使用します。
未使用のアカウントをロックするには、passwd -lを使用します。 userdelを使用して、アカウントを完全に削除することもできます。
詳細は、passwd(1)およびuserdel(8)の各マニュアル・ページを参照してください。
ユーザー・パスワードのエージング方法を指定するには、/etc/login.defsファイルで次の設定を編集します。
|
設定 |
説明 |
|---|---|
|
|
パスワードを変更するまでに使用できる最大日数。 デフォルト値は99,999日です。 |
|
|
パスワードを変更する間隔として許容される最大日数。 デフォルト値は0日です。 |
|
|
パスワードの期限が切れる前に警告が表示される日数。 デフォルト値は7日です。 |
詳細は、login.defs(5)マニュアル・ページを参照してください。
ユーザー・アカウントが非アクティブになってからロックされるまでの期間を変更するには、usermodコマンドを使用します。 たとえば、非アクティブ期間を30日に設定します。
# usermod -f 30 username
新規ユーザー・アカウントのデフォルトの非アクティブ期間を変更するには、useraddコマンドを使用します。
# useradd -D -f 30
値-1は、非アクティブのためにユーザー・アカウントがロックされることはないことを示します。
詳細は、useradd(8)およびusermod(8)の各マニュアル・ページを参照してください。
root以外のユーザー・アカウントのユーザーIDが0でないことを確認します。
# awk -F":" '$3 == 0 { print $1 }' /etc/passwd
rootデフォルトのユーザー・アカウントとパスワードを作成するソフトウェアをインストールする場合は、ベンダーのデフォルト・パスワードをただちに変更します。 OpenLDAPなどのLDAP実装を使用する集中ユーザー認証は、ユーザー認証および管理タスクを簡易化するのに役立ちます。また、未使用のアカウントまたパスワードなしのアカウントから発生するリスクを減らすことができます。
デフォルトでは、Oracle Linuxシステムはrootとして直接ログインできないように構成されています。 事前に指定ユーザーとしてログインしてから、suまたはsudoを使用してrootとしてタスクを実行します。 この構成により、システム・アカウンティングで特権管理アクションを実行するユーザーの元のログイン名を追跡できます。 特定ユーザーにsudoを使用して特定の管理タスクを実行できる権限を付与するには、visudoコマンドを使用して/etc/sudoersファイルを変更します。 たとえば、次のエントリでは、ユーザーerinはsudoを使用した場合にrootと同じ権限を得ますが、 frankにはchkconfig、service、rpm、yumなどのコマンドを実行できる限定された権限セットを定義しています。
erin ALL=(ALL) ALL frank ALL= SERVICES, SOFTWARE
Oracle LinuxはPluggable Authentication Module (PAM)機能をサポートしているため、強力なユーザー認証およびパスワードの複雑さ、長さ、経過期間、有効期限、前のパスワードの再利用を規定するルールを含むパスワード・ポリシーを容易に実施することができます。 ログイン試行に何回も失敗した後、通常の勤務時間後、または同時セッションが多数開かれている場合に、ユーザー・アクセスをブロックするようPAMを構成できます。
PAMは様々なモジュールおよびカスタマイズ可能なパラメータが使用されているため、高度にカスタマイズできます。 たとえば、デフォルトのパスワード整合性チェック・モジュールpam_cracklib.soはパスワードの強度をテストします。 PAM構成ファイル(/etc/pam.d/system-auth)には、パスワードの強度をテストするための次のデフォルト・エントリが含まれます。
password requisite pam_cracklib.so try_first_pass retry=3 type= password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok password required pam_deny.so
pam_cracklib.soの行では、適切なパスワードを選択するために3回試行できることが定義されています。 モジュールのデフォルト設定では、パスワード長は最小6文字で、そのうち3文字は前のパスワードと異なる必要があることが定義されています。
pam_unix.soの行では、モジュールでパスワード・チェックを実行せず(pam_cracklibですでにチェックを実行したため)、SHA-512パスワー・ハッシュを使用し、既存のパスワードがnullの場合にアクセスを許可し、/etc/shadowファイルを使用することを指定しています。
制御フラグとモジュール・パラメータを変更して、ユーザーがパスワードを変更するときに実行されるチェックを変更できます。例を示します。
password required pam_cracklib.so retry=3 minlen=8 difok=5 minclass=-1 password required pam_unix.so use_authtok sha512 shadow remember=5 password required pam_deny.so
pam_cracklib.soの行では、適切なパスワードを選択するためにユーザーは3回試行でき、パスワード長は最小8文字で、そのうち5文字は前のパスワードと異なる必要があり、大文字、小文字、数字、英数字以外の文字を少なくとも1つずつ使用する必要があることを指定しています。
pam_unix.soの行では、モジュールではパスワード・チェックを実行せず、SHA-512パスワー・ハッシュを使用し、/etc/shadowファイルを使用し、各ユーザーの過去5つのパスワードに関する情報を/etc/security/opasswdファイルに保存することを指定しています。 nullokが指定されていないため、既存のパスワードがnullの場合、ユーザーはパスワードを変更できません。
try_first_passキーワードが省略されているため、同じモジュールまたはスタックの前のモジュールで入力した場合でも、ユーザーは常に既存のパスワードを尋ねられます。
パスワード・チェックに、pam_passwdqc.soなどの代替モジュールを使用できます。
詳細は、3.5項「Pluggable Authentication Moduleの構成および使用」およびpam_cracklib(8)、pam_deny(8)、pam_passwdqc(8)およびpam_unix(8)の各マニュアル・ページを参照してください。

