Time

syslog (auth log) 報告不正確的時間

  • February 17, 2010

我注意到我的系統日誌報告某些身份驗證條目的時間不正確。典型行為如下所示:

Feb 16 13:32:20 dev sshd[29537]: Invalid user oracle from 110.188.0.123
Feb 16 12:32:20 dev sshd[29538]: input_userauth_request: invalid user oracle
Feb 16 13:32:20 dev sshd[29537]: pam_unix(sshd:auth): check pass; user unknown
Feb 16 13:32:20 dev sshd[29537]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=110.188.0.123
Feb 16 13:32:20 dev sshd[29537]: pam_succeed_if(sshd:auth): error retrieving information about user oracle
Feb 16 13:32:22 dev sshd[29537]: Failed password for invalid user oracle from 110.188.0.123 port 64368 ssh2
Feb 16 12:32:23 dev sshd[29538]: Received disconnect from 110.188.0.123: 11: Bye Bye

注意小時是如何來回交換的。有沒有人見過類似的行為?什麼可能導致這種情況?這似乎是系統的,並且每次連接嘗試的相同條目都比應有的時間早一個小時報告。系統時鐘為 GMT。時區 GMT+1。

請注意,一個程序 29537 總是發送標記為比程序 29538 晚一小時的消息。系統日誌協議指定客戶端發送以文本 MMM DD HH:MM:SS 格式標記的消息,這根本不是明智之舉。

在 UNIX/Linux 上,有一個系統時間(自 1970 年以來的秒數),但係統上的每個程序都可以將其解釋為就好像它位於不同的時區一樣。這是如何處理的,每個想要將秒數轉換為實際 HH:MM:SS 文本的程序,首先讀取 $ TZ environment variable. Because each process has its very own separate environment, each process can have a different value of $ TZ 並顯示來自不同時區的日期。

在您的系統上,如果 $ TZ has been changed in /etc/environment, but sshd process has not been restarted since that time, it will use the original $ TZ。因此,請重新啟動所有 sshd 程序並重複您的測試。

引用自:https://serverfault.com/questions/113776