mochikoAsTechのdig日記

当方好きなコマンドはdigです!お友達から!!よろしくお願いします!!!

sshd_configのAUTHとAUTHPRIVの違い

/etc/ssh/sshd_config には、ログのファシリティ(要はカテゴリ)とプライオリティを指定する設定項目がある。

#SyslogFacility AUTH
SyslogFacility AUTHPRIV
#LogLevel INFO
LogLevel VERBOSE

このファシリティ、デフォルトでわざわざAUTHをコメントアウトしてAUTHPRIVにしてあるので、この2つって何の違いがあるのかなー?と調べてみた。(LogLevelをINFOからVERBOSEにしてあるのは、なんでログイン出来ないのか?という原因を探るときに、VERBOSEくらいログ出てる方が便利だから、私が自分で変えた)

# man 3 syslog

LOG_AUTH       セキュリティ/認証 メッセージ (非推奨。代わりに LOG_AUTH-PRIV を使用すること)
LOG_AUTHPRIV   セキュリティ/認証 メッセージ (プライベート)

とあるし、

# man 5 rsyslog.conf

を見ても "The  keyword  "security (same as auth)" should  not  be used anymore and mark is only for internal use and therefore should not be used in applications."とあるので、どうやらsyslogやrsyslog的にはAUTHは非推奨な模様。(http://unix.stackexchange.com/questions/59525/difference-between-authpriv-and-auth にもそんなようなことが書いてある)

各ログの吐き出し先を指定している /etc/rsyslog.conf のデフォルト設定も、下記のように「AUTHPRIVのすべての全プライオリティを /var/log/secure に吐き出す」としていて、AUTHについては何もしていない。

# vi /etc/rsyslog.conf

# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

じゃあ単にファシリティ名としてAUTHはもう使わないでね、これからはAUTHPRIV使ってね、別にどっち使っても出力内容は変わらないけどね、という話なのかなと思ったけど、念のため確認。AUTHにしたときと、AUTHPRIVにしたときで、 /var/log/secure に吐き出される中身を比較してみた。

  • ファシリティがAUTHPRIVで、プライオリティ(ログレベル)がVERBOSEのときに鍵認証に成功したログ
Aug 21 11:09:47 ホスト名 sshd[13220]: Set /proc/self/oom_score_adj to 0
Aug 21 11:09:47 ホスト名 sshd[13220]: Connection from 接続元のIPアドレス port 42697
Aug 21 11:09:47 ホスト名 sshd[13220]: Found matching RSA key: 43:9f:12:09:60:5b:ea:de:26:3d:6d:03:db:34:22:58
Aug 21 11:09:47 ホスト名 sshd[13221]: Postponed publickey for ログインユーザ名 from 接続元のIPアドレス port 42697 ssh2
Aug 21 11:09:47 ホスト名 sshd[13220]: Found matching RSA key: 43:9f:12:09:60:5b:ea:de:26:3d:6d:03:db:34:22:58
Aug 21 11:09:47 ホスト名 sshd[13220]: Accepted publickey for ログインユーザ名 from 接続元のIPアドレス port 42697 ssh2
Aug 21 11:09:47 ホスト名 sshd[13220]: User child is on pid 13222
  • ファシリティがAUTHで、プライオリティ(ログレベル)がVERBOSEのときに鍵認証に成功したログ
Aug 21 11:11:24 ホスト名 sshd[13274]: Set /proc/self/oom_score_adj to 0
Aug 21 11:11:24 ホスト名 sshd[13274]: Connection from 接続元のIPアドレス port 57068
Aug 21 11:11:25 ホスト名 sshd[13274]: Found matching RSA key: 43:9f:12:09:60:5b:ea:de:26:3d:6d:03:db:34:22:58
Aug 21 11:11:25 ホスト名 sshd[13275]: Postponed publickey for ログインユーザ名 from 接続元のIPアドレス port 57068 ssh2
Aug 21 11:11:25 ホスト名 sshd[13274]: Found matching RSA key: 43:9f:12:09:60:5b:ea:de:26:3d:6d:03:db:34:22:58
Aug 21 11:11:25 ホスト名 sshd[13274]: Accepted publickey for ログインユーザ名 from 接続元のIPアドレス port 57068 ssh2
Aug 21 11:11:25 ホスト名 sshd[13274]: User child is on pid 13276

上記のように、鍵認証でログイン成功時はAUTHもAUTHPRIVも差はなかった。ではパスワード認証の失敗時はどうだろう?

  • ファシリティがAUTHPRIVで、プライオリティ(ログレベル)がVERBOSEのときにパスワード認証で失敗→失敗→成功したログ
Aug 21 11:33:06 ホスト名 sshd[13521]: Set /proc/self/oom_score_adj to 0
Aug 21 11:33:06 ホスト名 sshd[13521]: Connection from 接続元のIPアドレス port 30194
Aug 21 11:33:11 ホスト名 sshd[13521]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=接続元のドメイン名  user=ログインユーザ名
Aug 21 11:33:13 ホスト名 sshd[13521]: Failed password for ログインユーザ名 from 接続元のIPアドレス port 30194 ssh2
Aug 21 11:33:17 ホスト名 sshd[13521]: Failed password for ログインユーザ名 from 接続元のIPアドレス port 30194 ssh2
Aug 21 11:33:22 ホスト名 sshd[13521]: Accepted password for ログインユーザ名 from 接続元のIPアドレス port 30194 ssh2
Aug 21 11:33:22 ホスト名 sshd[13521]: pam_unix(sshd:session): session opened for user ログインユーザ名 by (uid=0)
Aug 21 11:33:22 ホスト名 sshd[13521]: User child is on pid 13523
  • ファシリティがAUTHで、プライオリティ(ログレベル)がVERBOSEのときにパスワード認証で失敗→失敗→成功したログ
Aug 21 11:42:14 ホスト名 sshd[13581]: Set /proc/self/oom_score_adj to 0
Aug 21 11:42:14 ホスト名 sshd[13581]: Connection from 接続元のIPアドレス port 22138
Aug 21 11:42:20 ホスト名 sshd[13581]: Failed password for ログインユーザ名 from 接続元のIPアドレス port 22138 ssh2
Aug 21 11:42:24 ホスト名 sshd[13581]: Failed password for ログインユーザ名 from 接続元のIPアドレス port 22138 ssh2
Aug 21 11:42:27 ホスト名 sshd[13581]: Accepted password for ログインユーザ名 from 接続元のIPアドレス port 22138 ssh2
Aug 21 11:42:27 ホスト名 sshd[13581]: User child is on pid 13583

おおおおお、AUTHPRIVの方が若干出力されるログが多い!ファシリティの名前がAUTHからAUTHPRIVに変わったところで、ログの中身変わるわけでもないだろう、と思ってたけど違ったー。

という訳で、sshd_configのAUTHとAUTHPRIVってどっちにすればいいの?と悩んだら、AUTH非推奨だし、AUTHPRIVの方がログが多いしで、AUTHPRIVにすべし!ちゃんと違いがあるんだね。