何故この記事を書こうと思ったか
文系卒未経験エンジニアである自分がいつかの作業で割と主動で検証から手順書作成、リリースまで持っていいったものの一つで今後の必ず使う機会があるだろうなと思ったのでどんな作業をしたのか流れをこの記事を通してアウトプットとして残します。
流れとしては
・何故この記事を書こうと思ったか
・ユーザの作成
・パワードポリシーの変更
・パスワード設定
・まとめ
の順で記載をしていこうと思います。
何故この作業をすることになったのか
新しくシステム導入をすることになり、そのシステムの運用と操作のため新しくユーザを作成して利用できるようにする必要があったからです。
そのため要件に合わせたユーザの作成とパスワード設定を実施する必要がありました。
ユーザの追加
ここからは実際のユーザ追加の方法を記載します。
ユーザを追加する時はrootユーザを利用。
コマンドは以下を使用しました。
useradd '作成したいユーザ名'
ユーザ追加コマンドは追加の前に確認しておくべきことが1つあります。
それは同じユーザがあるかないかの確認です。
確認の仕方はとしてはpasswdファイルを見に行き、確認します。
コマンドとしては下記になります。
cat /etc/passwd | grep '作成したいユーザ'
grepを使いピンポイント検索することで、膨大な数のユーザが存在している中でも一番見やすく分かりやすく確認することができます。
passwdファイルを見て同じユーザがいないことを確認した後は実際にユーザ追加(useradd)を実施しました。
作成後もcatコマンドで追加されているかどうかを確認することでログとして証跡に残すことも可能ですし、何より可視化させることが大事です。
パスワードポリシーの変更
ユーザ追加後、パスワードを設定する際に最低限必要な条件を追加したいときの設定方法を記載してきます。
今回設定する必要があったファイルはsystem-suth、password-suthの2つ。
理由としてはローカルからのログインとSSHやリモートからのログインを両方でできるようにする必要があったからです。
最初に現状のマスタファイルの中身の確認をします。
ログに残しておくことで後々確認ができます。
cat /etc/pam.d/system-auth
cat /etc/pam.d/password-auth
その後変更を加える前に下記のようにバックアップを取っておきます。万一に備えましょう。(日付ファイルがバックアップ)
オプションで「i」をつけることでコピー前に確認してくれるので間違えてコピーしてしまうなどということを減らせます。
cp -i /etc/pam.d/system-auth /etc/pam.d/system-auth_yyyymmdd
cp -i /etc/pam.d/password-auth /etc/pam.d/password-auth_yyyymmdd
コピーした後はdiffをして確認します。変更前であれば差分が出なければ正解です。(まだ修正していないため中身の同じファイルができているはず)
diff /etc/pam.d/system-auth /etc/pam.d/system-auth_yyyymmdd
diff /etc/pam.d/password-auth /etc/pam.d/password-auth_yyyymmdd
ここまできたら実際に設定ファイルの変更をしていきます。
viで修正しつつ確認していきます。
vi /etc/pam.d/system-auth
vi /etc/pam.d/password-auth
viエディタが開いたら「i」を押下してinsertモード(編集可能)にする
(例)pasword requisite pam_cracklib.so...の記載している行を修正します。
例えば要件が下記5つの場合だったとします
・10文字以上
・大文字1つ以上
・小文字1つ以上
・記号を1文字以上
・数字1文字以上
修正の箇所はそれぞれ記載の通りで修正方法としては下記になる
「=-1」とすることで何文字以上といった意味であることに注意が必要。(2文字以上であれば=-2になる)
【10文字以上】
minlem=10
【数字1つ以上】
dicledit=-1
【大文字1つ以上】
ucredit=-1
【記号1つ以上】
ocredit=-1
【小文字1つ以上】
lcredit=-1
上記を元に修正すると下記のように変更することができる
(例)password requisite pam_cracklib.so try_first_pass minlen=10 retry=3 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 enforce_for_root
変更後は「:wq」で保存してviエディタを閉じる
ここまで完了したら最後にdiffコマンドを再度打ち差分を確認する
diff /etc/pam.d/system-auth /etc/pam.d/system-auth_yyyymmdd
diff /etc/pam.d/password-auth /etc/pam.d/password-auth_yyyymmdd
結果として変更を加えた箇所が返ってくれば問題ない
不安があればcatコマンドで再度中身全体を見ることで2重確認になるので安心です。
cat /etc/pam.d/system-auth
cat /etc/pam.d/password-auth
パスワード設定
パスワードポリシーの変更後はパスワード設定をします。
要件があるなら要件通りに、無いならパスワード作成してくれるサイトとかで作るのが楽かなと思います。
passwd '作成したユーザ'
ユーザー ユーザー名 のパスワードを変更。
新しいパスワード:
※入力の際はパスワード画面に表示されないのでメモ帳からコピペするのが安全かと思います。
teratermからログインできるか確認しましょう。
問題なくログインできれば設定について問題ないです。
まとめ
今回の作業でより確認コマンドの大切さを理解することができました。
自分自身確認不足な部分がでたりするタイプのためこれの意識はより一層高めていこうと思います。
最後に使用した大体のコマンド例のまとめを記載します。
【ユーザの追加】
作成したいユーザを作成し確認
ls -l etc/passwd
cat etc/passwd | grep '作成したいユーザ'
useradd '作成したいユーザ'
cat /etc/passwd | grep '作成したいユーザ'
【パスワードポリシー変更】
「system-authファイル」と「password-authファイル」をそれぞれ修正、差分確認
ls -l /etc/pam.d/system-auth
ls -l /etc/pam.d/password-auth
cat /etc/pam.d/system-auth
cat /etc/pam.d/password-auth
cp -i /etc/pam.d/system-auth /etc/pam.d/system-auth_yyyymmdd
cp -i /etc/pam.d/password-auth /etc/pam.d/password-auth_yyyymmdd
ls -l /etc/pam.d/etc/pam.d/system-auth /etc/pam.d/system-auth_yyyymmdd
ls -l /etc/pam.d/etc/pam.d/password-auth /etc/pam.d/password-auth_yyyymmdd
diff /etc/pam.d/system-auth /etc/pam.d/system-auth_yyyymmdd
diff /etc/pam.d/password-auth /etc/pam.d/password-auth_yyyymmdd
vi /etc/pam.d/system-auth
vi /etc/pam.d/password-auth
pasword requisite pam_cracklib.so...の記載している行を修正。
:wq
diff /etc/pam.d/system-auth /etc/pam.d/system-auth_yyyymmdd
diff /etc/pam.d/password-auth /etc/pam.d/password-auth_yyyymmdd
cat /etc/pam.d/system-auth
cat /etc/pam.d/password-auth