나는 같은 질문을했다특별한 부대하지만 여기가 더 좋은 곳이라는 걸 알아두세요. 내 Linux 컴퓨터 중 하나의 시스템 시간에 매우 이상한 문제가 있습니다. 시스템 시간은 항상 내 현지 시간보다 40초 앞서 자동으로 변경됩니다. 다음 출력에서 볼 수 있듯이 재설정할 때마다 몇 초 후에 변경됩니다.
[root@node ~]# date; date -s "2018-01-23 14:06:40";sleep 5;date
Tue Jan 23 14:07:21 CST 2018
Tue Jan 23 14:06:40 CST 2018
Tue Jan 23 14:07:26 CST 2018
서비스가 ntpd
중지되었으며 시스템 시간을 변경하기 위해 실행 중인 cronjob이 없습니다. 시간 변경 이벤트를 추적하기 위해 감사 규칙을 추가하려고 시도했지만 아무것도 기록되지 않았습니다. 감사 규칙은 다음에 첨부됩니다 /etc/audit/audit.rules
.
-a always,exit -F arch=b64 -S clock_adjtime -S adjtimex -S time -S timer_settime -S settimeofday -S clock_settime -k time_change
-w /etc/localtime -p rxwa -k access_localtime
-w /etc/adjtime -p rxwa -k access_adjtime
그런 다음 다음 중 하나를 통해 service auditd restart
시간 변경 로그를 볼 수 있습니다./var/log/audit/audit.log
ntpdate time.windows.com
[root@node ~]# ntpdate time.windows.com
23 Jan 13:08:24 ntpdate[14584]: step time server 52.178.161.41 offset -61.612892 sec
Logs of the above command:
type=SYSCALL msg=audit(1516684164.838:3093): arch=c000003e syscall=223 success=yes exit=0 a0=0 a1=0 a2=7fff507e2600 a3=0 items=0 ppid=14397 pid=14584 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=47 comm="ntpdate" exe="/usr/sbin/ntpdate" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="time_change"
type=SYSCALL msg=audit(1516684166.521:3094): arch=c000003e syscall=227 success=yes exit=0 a0=0 a1=7fff507e2110 a2=0 a3=0 items=0 ppid=14397 pid=14584 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=47 comm="ntpdate" exe="/usr/sbin/ntpdate" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="time_change"
또는 다음을 통해 date -s <date-time>
:
[root@node ~]# date -s "2018-01-23 13:12:30"
Tue Jan 23 13:12:30 CST 2018
Logs of the above command:
type=SYSCALL msg=audit(1516684402.125:3110): arch=c000003e syscall=227 success=yes exit=0 a0=0 a1=7fff55d0ced0 a2=0 a3=112e0be826d694b3 items=0 ppid=14397 pid=14626 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=47 comm="date" exe="/bin/date" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="time_change"
하지만 유용한 감사 로그도 없이 시간은 다시 빠르게 변합니다. 그런데 이것은 블레이드 서버의 Hyper-V 관리 가상 머신이지만 동일한 블레이드 서버의 다른 가상 머신에는 이 문제가 없습니다.
운영 체제 환경 정보:
[root@node ~]# uname -a
Linux node 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@node ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
왜 이런 일이 발생하는지에 대한 단서를 줄 수 있는 사람이 있나요? 감사합니다 :-)
답변1
Hyper-V에는 하이퍼바이저와 VM 커널 간에 작동하는 시간 동기화 서비스가 포함되어 있습니다. 사용자 공간 프로세스가 관련되지 않으므로 감사 로그가 없습니다.
말씀하신 것처럼 운영 체제가 매우 오래된 버전이라면 이번에는 동기화 서비스에 오래된 버그가 있을 수 있습니다. VM에 대한 시간 동기화를 비활성화하도록 Hyper-V 호스트 관리자에게 요청해야 할 수도 있습니다.