Linuxサーバーの強化は、実稼働サーバーに関しては、システム管理者にとって重要なタスクの1つです。ログインまたはssh試行ポリシーを有効にすることをお勧めします。つまり、ログインまたはssh試行がn回失敗した(または正しくない)と、ユーザーのアカウントが自動的にロックされます。
CentOS、RHEL、FedoraなどのLinuxディストリビューションでは、これはpamモジュール「 pam_faillock」を使用して実現されます。 」およびDebianのようなディストリビューションの場合、これは「 pam_tally2」を使用して実現できます。 ”pamモジュール。
このチュートリアルでは、CentOS、RHEL、Fedora、Debian、Ubuntuでのログイン試行がn回失敗した後にユーザーアカウントをロックする方法を学習します
CentOS / RHEL/Fedoraの場合
次の行を2つのファイル/etc/pam.d/password-authと/etc/pam.d/system-authに追加します
auth required pam_faillock.so preauth silent audit deny=3 unlock_time=600 auth [default=die] pam_faillock.so authfail audit deny=3 unlock_time=600 account required pam_faillock.so
どこで、
- 監査–>安全なログファイルでのユーザーログイン試行の監査ログを有効にします
- Deny =3 –>ログインに3回失敗するとユーザーがロックされます。この数は、要件に応じて変更できます
- unlock_time =600 –>これは、ユーザーのアカウントが10分(600秒)ロックされたままになることを意味します。ユーザーアカウントを永久にロックする場合は、このパラメーターを「unlock_time=never」に設定します。
注 :n回の不正なログイン後にもrootアカウントをロックするには、「even_deny_root」を追加します authセクション行の「」パラメータ。例を以下に示します
auth required pam_faillock.so preauth silent audit even_deny_root deny=3 unlock_time=600 auth [default=die] pam_faillock.so authfail audit even_deny_root deny=3 unlock_time=600
上記のように、認証セクションに2行、アカウントセクションに1行あります。これらの行をファイルに追加するときは、順序が非常に重要です。これらの行を追加する必要がある例を以下に示します
[[email protected] ~]# vi /etc/pam.d/password-auth
[[email protected] ~]# vi /etc/pam.d/system-auth
両方のファイルに変更を加えた後、以下のsystemctlコマンドを使用してsshサービスを再起動します。
[[email protected] ~]# systemctl restart sshd
ログインに3回失敗した後、ユーザーアカウントがロックされるかどうかをテストしてみましょう。
「pkumar」という名前のローカルアカウントを持っていると仮定します。このアカウントを使用して、間違ったパスワードでLinuxシステムをSSH接続しようとします。
$ ssh [email protected] [email protected]'s password: [email protected]'s password: [email protected]'s password: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
次に、tailコマンドを使用して安全なログを表示します
[[email protected] ~]# tail /var/log/secure
上記のログは、3回の誤ったログイン試行の後にアカウントがロックされたことを確認します。また、faillockコマンドからも確認しましょう。
[[email protected] ~]# faillock --user pkumar pkumar: When Type Source Valid 2019-12-15 01:50:39 RHOST 192.168.29.157 V 2019-12-15 01:50:43 RHOST 192.168.29.157 V 2019-12-15 01:50:47 RHOST 192.168.29.157 V [[email protected] ~]#
これらの失敗したログイン試行をフラッシュまたはクリアするには、次のフェイルロックコマンドを実行します。
[[email protected] ~]# faillock --user pkumar --reset [[email protected] ~]# faillock --user pkumar pkumar: When Type Source Valid [[email protected] ~]#
ディストリビューションのようなDebian(Ubuntu、Linux Mint、Debian)に移りましょう
Debian、Ubuntu、LinuxMintの場合
ファイル「/etc/pam.d/common-auth」に次の行を追加します
auth required pam_tally2.so onerr=fail deny=3 unlock_time=600 audit
3回の誤ったログイン後にもrootアカウントをロックしたい場合は、次の行を追加してください。
auth required pam_tally2.so onerr=fail deny=3 unlock_time=600 audit even_deny_root root_unlock_time=600
場所:
- Onerr =fail –>エラーが発生した場合は失敗します
- deny =3 –>ログインに3回失敗すると、アカウントがロックされます
- unlock_time =600 –>これは、アカウントが10分または600秒間ロックされたままになることを意味します
- audit –>audit.logファイルのログを監査することを意味します
- Even_deny_root –>3回の誤ったログイン後にrootアカウントをロックします
- root_unlock_time =600 –>ログインが3回失敗した後、rootアカウントは10分または600秒間ロックされたままになります
上記のディスカッション行をファイル「/etc/pam.d/common-auth」に追加しましょう 」viエディタを使用して
[email protected]:~$ sudo vi /etc/pam.d/common-auth
上記の変更を行った後、ファイルを保存して終了し、次のコマンドを使用してsshサービスを再起動します。
[email protected]:~$ sudo systemctl restart sshd
3回の誤ったsshログイン後にアカウントがロックされているかどうかをテストしてみましょう。
ローカルの「devops」ユーザーがいると仮定して、間違ったパスワードでUbuntuシステムをsshしようとします
$ ssh [email protected] [email protected]'s password: [email protected]'s password: d [email protected]'s password: Permission denied (publickey,password).
次に、認証ログファイルを表示して、誤ったログイン試行がキャプチャされたかどうかを確認します。
[email protected]:~$ tail /var/log/auth.log
上記のログは、アカウントがロックされていることを確認します。pam_tally2コマンドから確認しましょう。
[email protected]:~$ sudo pam_tally2 -u devops Login Failures Latest failure From devops 6 12/15/19 07:45:02 192.168.29.157 [email protected]:~$
これらの失敗したログイン試行をクリアするには、次のpam_tally2コマンドを使用します。
[email protected]:~$ sudo pam_tally2 -u devops --reset Login Failures Latest failure From devops 6 12/15/19 07:45:02 192.168.29.157 [email protected]:~$ [email protected]:~$ sudo pam_tally2 -u devops Login Failures Latest failure From devops 0 [email protected]:~$
これで記事は終わりです。フィードバックやコメントをお気軽に共有してください。