13
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SSHでのログインにアカウントロックをかけたい

Last updated at Posted at 2015-08-28

CentOsはデフォルトでは,sshの履歴(?)を監視するだけのはずなので,ログイン失敗回数を数えて,そのアカウントが定めた失敗回数に達したらログインできないようにした.

CentOsのバージョン

6.4

PAMによる認証を許可する

pam_tally2 で一定回数ログインに失敗したアカウントをロックするを参考にさせていただきました.

自分は研究室のサーバであらかじめ,PAMでのssh認証がyesになっていたのでPAMに絞ってしらべました.

とりあえずPAMを使いたい場合はまず,/etc/ssh/sshd_config で UsePAMをYesにすること

sshd_config
・
・
# UsePAM no
UsePAM yes
・
・

pam_tally2を使ってアカウントロックする

/etc/pam.d/password-auth を編集する.

password-auth
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
# この下1行追記
auth        required      pam_tally2.so deny=5
#
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        required      pam_deny.so

この2行目のdenyで定義した値とログイン失敗回数が一致したらアカウントがロックされる.

4行目は常にログイン失敗時にログを残すというもので,もはや不要かとも思ったが,試す勇気もなかったのでそのまま残した.

試しに失敗してみる

ログインに失敗した回数は /var/log/tallylogを見ればわかるのだが,これはバイナリファイルであるため,pam_tally2 コマンドを使う.

$ pam_tally2 -u locktestusername
Login           Failures Latest failure     From
locktestusername      1      08/28/15 19:43:45  xxx.xxx.xxx.xxx

記録された.

勇気をだして5回失敗してみたら,次からちゃんとしたパスワードを打ってもpermission deniedのエラーになってログインできなくなってた

ロックを解除する

ロック解除もpam_tally2 コマンドを使う

$ pam_tally2 -u locktestusername --reset

確認

$ pam_tally2 -u locktestusername
Login           Failures Latest failure     From
locktestusername      0      

ちゃんと0になった

感想

今回はアカウントをベースにしてロックをかけた.
けども,もしIDが漏洩した場合,ログインを失敗しまくってアカウントをロックさせるということが可能になってしまうため,ipベースのロックも調べたい.

ただ,他人のIDを取得し,サービスや情報にアクセスするのが目的の攻撃はこれで十分防げる(?)のかな.

13
16
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
13
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?