遠隔でuptimeを調べる

/ Linux/Unix / Comment[0]
hping3の--tcp-timestampオプションとかで遠隔でTCP TimeStampを取得できる

# hping3 --tcp-timestamp -S -c 2 -s 53 10.0.1.1 -p 80
HPING 10.0.1.1 (eth0 10.0.1.1): S set, 40 headers + 0 data bytes
len=56 ip=10.0.1.1 ttl=64 DF id=0 sport=80 flags=SA seq=0 win=5792 rtt=0.2 ms
TCP timestamp: tcpts=72604833

len=56 ip=10.0.1.1 ttl=64 DF id=0 sport=80 flags=SA seq=1 win=5792 rtt=0.2 ms
TCP timestamp: tcpts=72604933
HZ seems hz=100
System uptime seems: 8 days, 9 hours, 40 minutes, 49 seconds


--- 10.0.1.1 hping statistic ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.2/0.2/0.2 ms

$ uptime
 19:26:53 up 8 days,  9:46,  1 user,  load average: 0.02, 0.05, 0.01
少しずれてるけどこんな感じでUnix系のシステム稼働時間を遠隔で調べることが可能


blog11.fc2.comのTCP TimeStamp
# hping3 --tcp-timestamp -S -c 2 blog11.fc2.com -p 80
HPING blog11.fc2.com (eth0 208.71.105.135): S set, 40 headers + 0 data bytes
len=56 ip=208.71.105.135 ttl=51 DF id=0 sport=80 flags=SA seq=0 win=5792 rtt=125.1 ms
TCP timestamp: tcpts=3945837977

len=56 ip=208.71.105.135 ttl=50 DF id=0 sport=80 flags=SA seq=1 win=5792 rtt=115.3 ms
TCP timestamp: tcpts=3945838225
HZ seems hz=100
System uptime seems: 456 days, 16 hours, 39 minutes, 42 seconds


--- blog11.fc2.com hping statistic ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 115.3/120.2/125.1 ms


ルーターのTCP TimeStamp
# hping3 --tcp-timestamp -S -c 2 10.25.0.1 -p 80
HPING 10.25.0.1 (eth0 10.25.0.1): S set, 40 headers + 0 data bytes
len=56 ip=10.25.0.1 ttl=64 DF id=0 sport=80 flags=SA seq=0 win=5792 rtt=0.5 ms
TCP timestamp: tcpts=192192555

len=56 ip=10.25.0.1 ttl=64 DF id=0 sport=80 flags=SA seq=1 win=5792 rtt=0.4 ms
TCP timestamp: tcpts=192192805
HZ seems hz=100
System uptime seems: 22 days, 5 hours, 52 minutes, 8 seconds


--- 10.25.0.1 hping statistic ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.4/0.5/0.5 ms

ルータのファームウェアだとか、カーネルなどをアップデートするときに再起動が必要になる場合が多い。
シャットダウンするとuptimeはリセットされるので、TCP TimeStampを見ることでどれくらい前に再起動(もしや何かのアップデート)をしたのかを推測できる。
TCP TimeStampが駄々漏れだと、何らかの脆弱性が見つかった時に攻撃者のターゲットにされる可能性が高くなる。かも

どうやらLinuxカーネルはデフォルトでTCP TimeStampを出力する設定になっているようで。
TCP TimeStampを無効にするには、カーネルパラメータ「net.ipv4.tcp_timestamps」を"0"にする。

# echo "net.ipv4.tcp_timestamps=0" >> /etc/sysctl.conf
# sysctl -w

外へ公開しているPCではTCP TimeStampを無効にしておいて損は無いかと思われ。
関連記事

コメント

:
:
:
:
:
管理人のみ表示を許可