web-dev-qa-db-ja.com

PAMモジュールが原因でSSHセッションが乱れる

_/var/log/auth.log_を尾行しているときに、ユーザー「foo」の分単位で複数のエントリが(即座に)入力されていることに気付きました。 _auth.log_(以下のログサンプル)を調整している間、私は個人的にユーザー「root_bar」として1つの接続のみを開いていました。ご覧のとおり、この着信SSH接続のIP情報はありません。着信SSH接続のIPアドレスをトレースする最良の方法は何ですか?

_Aug 10 14:30:04 ps2000 suexec: (pam_unix) session opened for user root_bar by (uid=999)
Aug 10 14:30:04 ps2000 suexec: (pam_unix) session closed for user root_bar
Aug 10 14:30:06 ps2000 suexec: (pam_unix) session opened for user root_bar by (uid=999)
Aug 10 14:30:06 ps2000 suexec: (pam_unix) session closed for user root_bar
Aug 10 14:30:08 ps2000 CRON[16879]: (pam_unix) session closed for user root_bar
Aug 10 14:30:14 ps2000 suexec: (pam_unix) session opened for user root_bar by (uid=999)
Aug 10 14:30:14 ps2000 suexec: (pam_unix) session closed for user root_bar
Aug 10 14:30:16 ps2000 suexec: (pam_unix) session opened for user root_bar by (uid=999)
Aug 10 14:30:16 ps2000 suexec: (pam_unix) session closed for user root_bar
Aug 10 14:30:27 ps2000 suexec: (pam_unix) session opened for user root_bar by (uid=999)
Aug 10 14:30:27 ps2000 suexec: (pam_unix) session closed for user root_bar
Aug 10 14:30:39 ps2000 suexec: (pam_unix) session opened for user root_bar by (uid=999)
Aug 10 14:30:39 ps2000 suexec: (pam_unix) session closed for user root_bar
_

免責事項:サーバー名、およびすべてのユーザー情報はセキュリティ上の理由から変更されました。

修正:質問「トレース着信SSH接続」は、以下の投稿者によって適切に回答されました。メッセージsuexec(pam_unix)sessionは、@ aseqによって明確にされたsshdアクティビティを必ずしも示していません。私は無知のため、これをsshd質問として投稿しました。元の質問とその回答は参考になるので、最も役立つ回答を受け入れます。トレースsuexec: (pam_unix) sessionは別の質問の候補だと思います。

最終更新:上記のメッセージがsshdに関係していることを発見しました。 /etc/pam.d/common-authでいくつかの調整を行った後、次のような行が表示され始めました。

_Aug 10 16:45:23 candy_bass sshd[427]: (pam_unix) session opened for user summer_flag by (uid=0)
Aug 10 16:45:23 candy_bass sshd[427]: PAM pam_parse: expecting return value; [...sucess=1 default=ignore]
Aug 10 16:45:23 candy_bass sshd[427]: PAM pam_parse: expecting return value; [...sucess=1 default=ignore]
Aug 10 16:45:23 candy_bass sshd[427]: Accepted publickey for summer_flag from xxx.zzz.yyy.abc port 35964 ssh2
Aug 10 16:45:23 candy_bass sshd[427]: (pam_unix) session opened for user summer_flag by (uid=0)
Aug 10 16:45:23 candy_bass pam_limits[427]: setrlimit limit #11 to soft=-1, hard=-1 failed: Operation not permitted; uid=0 euid=0
Aug 10 16:45:23 candy_bass pam_limits[427]: setrlimit limit #12 to soft=-1, hard=-1 failed: Operation not permitted; uid=0 euid=0
Aug 10 16:45:23 candy_bass sshd[427]: (pam_unix) session closed for user summer_flag
_

したがって、これはsshdに関連しています。ただし、これはトークン認証ベンダー(その名前はプライバシーのために開示しない)に固有であるため、これはベンダーによって解決される可能性が高いと思います。

2
amateur barista

それらのログエントリはどのように見えますか?

Sshサーバーは、デフォルトで/var/log/auth.logおよびその他のログファイルにIPアドレスを記録する必要があります。

Aug 1 12:21:30 example.Host sshd[1174]: Failed password for invalid user example from 192.0.2.1 port 9460 ssh2
Aug 1 12:21:32 example.Host sshd[1176]: Invalid user root from 192.0.2.10

質問しているログエントリに文字列「sshd」が含まれていない場合、それらが実際にsshサーバーからのものであるとは思えないため、他の場所を探す必要があります。ホスト名の後に続く文字列を見てください。どのプログラムがログを書き込んでいたかがわかります。

/ etc/ssh/sshd_configをチェックして、ログレベルが正しいかどうかを確認することもできます。squeezeのデフォルトは次のとおりです。

# Logging
SyslogFacility AUTH
LogLevel INFO

おそらく、詳細度を上げると、より多くの情報が明らかになる可能性があります。質問に追加したログエントリの前には、上記で貼り付けたログエントリが必要です。

3
aseq

誰かが正常にログインしたかどうかに関係なく、接続が確立されるたびにSSHの接続が開いたり閉じたりします。

Sshを介したログイン試行の成功と失敗に関する詳細を表示するには、/var/log/secureまたは/var/log/messagesを参照してください。

***場所はLinuxのディストリビューションやホスティングプロバイダーによって異なる場合があることに注意してください。*

1
tacotuesday

サーバー上のrootユーザーにアクセスできる場合は、iptablesを利用して、tcpポート22のすべての新しい接続に対して「LOG」ステートメントを実装できます。これにより、/ var/log/messagesファイルに接続の開始を示す情報が追加されます。サーバーへのインバウンド。

IPv6を実行している場合、そのためのファイアウォールはiptables6になると思います。

0
Nick V

auth.logChallengeResponseAuthenticationUsePAMの設定をコメントアウトすることで、/etc/ssh/sshd_configの問題のセッションの開始と終了の急増を解決しました。

ChallengeResponseAuthentication yes
UsePAM yes

#ChallengeResponseAuthentication yes
#UsePAM yes

つまり、ベンダーに正しい設定を見つけている間、PAMモジュールを一時的に無効にしました。

0
amateur barista