cmdmon: add cookie length to authdata report
This commit is contained in:
parent
28cf4acf13
commit
51fe589aeb
6 changed files with 24 additions and 14 deletions
2
candm.h
2
candm.h
|
@ -735,7 +735,9 @@ typedef struct {
|
||||||
uint16_t ke_attempts;
|
uint16_t ke_attempts;
|
||||||
uint32_t last_ke_ago;
|
uint32_t last_ke_ago;
|
||||||
uint16_t cookies;
|
uint16_t cookies;
|
||||||
|
uint16_t cookie_length;
|
||||||
uint16_t nak;
|
uint16_t nak;
|
||||||
|
uint16_t pad;
|
||||||
int32_t EOR;
|
int32_t EOR;
|
||||||
} RPY_AuthData;
|
} RPY_AuthData;
|
||||||
|
|
||||||
|
|
9
client.c
9
client.c
|
@ -2383,9 +2383,9 @@ process_cmd_authdata(char *line)
|
||||||
|
|
||||||
n_sources = ntohl(reply.data.n_sources.n_sources);
|
n_sources = ntohl(reply.data.n_sources.n_sources);
|
||||||
|
|
||||||
print_header("Name/IP address Mode KeyID Type Len Last Atmp Cook NAK");
|
print_header("Name/IP address Mode KeyID Type KLen Last Atmp NAK Cook CLen");
|
||||||
|
|
||||||
/* "NNNNNNNNNNNNNNNNNNNNNNNNNNN MMMM KKKKK AAAA LLLL LLLL AAAA CCCC NNNN" */
|
/* "NNNNNNNNNNNNNNNNNNNNNNNNNNN MMMM KKKKK AAAA LLLL LLLL AAAA NNNN CCCC LLLL" */
|
||||||
|
|
||||||
for (i = 0; i < n_sources; i++) {
|
for (i = 0; i < n_sources; i++) {
|
||||||
request.command = htons(REQ_SOURCE_DATA);
|
request.command = htons(REQ_SOURCE_DATA);
|
||||||
|
@ -2423,15 +2423,16 @@ process_cmd_authdata(char *line)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
print_report("%-27s %4s %5U %4d %4d %I %4d %4d %4d\n",
|
print_report("%-27s %4s %5U %4d %4d %I %4d %4d %4d %4d\n",
|
||||||
name, mode_str,
|
name, mode_str,
|
||||||
(unsigned long)ntohl(reply.data.auth_data.key_id),
|
(unsigned long)ntohl(reply.data.auth_data.key_id),
|
||||||
ntohs(reply.data.auth_data.key_type),
|
ntohs(reply.data.auth_data.key_type),
|
||||||
ntohs(reply.data.auth_data.key_length),
|
ntohs(reply.data.auth_data.key_length),
|
||||||
(unsigned long)ntohl(reply.data.auth_data.last_ke_ago),
|
(unsigned long)ntohl(reply.data.auth_data.last_ke_ago),
|
||||||
ntohs(reply.data.auth_data.ke_attempts),
|
ntohs(reply.data.auth_data.ke_attempts),
|
||||||
ntohs(reply.data.auth_data.cookies),
|
|
||||||
ntohs(reply.data.auth_data.nak),
|
ntohs(reply.data.auth_data.nak),
|
||||||
|
ntohs(reply.data.auth_data.cookies),
|
||||||
|
ntohs(reply.data.auth_data.cookie_length),
|
||||||
REPORT_END);
|
REPORT_END);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
1
cmdmon.c
1
cmdmon.c
|
@ -1276,6 +1276,7 @@ handle_auth_data(CMD_Request *rx_message, CMD_Reply *tx_message)
|
||||||
tx_message->data.auth_data.ke_attempts = htons(report.ke_attempts);
|
tx_message->data.auth_data.ke_attempts = htons(report.ke_attempts);
|
||||||
tx_message->data.auth_data.last_ke_ago = htonl(report.last_ke_ago);
|
tx_message->data.auth_data.last_ke_ago = htonl(report.last_ke_ago);
|
||||||
tx_message->data.auth_data.cookies = htons(report.cookies);
|
tx_message->data.auth_data.cookies = htons(report.cookies);
|
||||||
|
tx_message->data.auth_data.cookie_length = htons(report.cookie_length);
|
||||||
tx_message->data.auth_data.nak = htons(report.nak);
|
tx_message->data.auth_data.nak = htons(report.nak);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -461,11 +461,11 @@ those that do not have a known address yet. An example of the output is
|
||||||
shown below.
|
shown below.
|
||||||
+
|
+
|
||||||
----
|
----
|
||||||
Name/IP address Mode KeyID Type Len Last Atmp Cook NAK
|
Name/IP address Mode KeyID Type KLen Last Atmp NAK Cook CLen
|
||||||
====================================================================
|
=========================================================================
|
||||||
foo.example.com NTS 1 15 256 135m 0 8 0
|
foo.example.net NTS 1 15 256 135m 0 0 8 100
|
||||||
bar.example.com SK 30 13 128 - 0 0 0
|
bar.example.net SK 30 13 128 - 0 0 0 0
|
||||||
baz.example.com - 0 0 0 - 0 0 0
|
baz.example.net - 0 0 0 - 0 0 0 0
|
||||||
----
|
----
|
||||||
+
|
+
|
||||||
The columns are as follows:
|
The columns are as follows:
|
||||||
|
@ -502,7 +502,7 @@ be reported:
|
||||||
* 13: AES128
|
* 13: AES128
|
||||||
* 14: AES256
|
* 14: AES256
|
||||||
* 15: AEAD-AES-SIV-CMAC-256
|
* 15: AEAD-AES-SIV-CMAC-256
|
||||||
*Len*:::
|
*KLen*:::
|
||||||
This column shows the length of the key in bits.
|
This column shows the length of the key in bits.
|
||||||
*Last*:::
|
*Last*:::
|
||||||
This column shows how long ago the last successful key establishment was
|
This column shows how long ago the last successful key establishment was
|
||||||
|
@ -512,14 +512,18 @@ hours, days, or years.
|
||||||
This column shows the number of attempts to perform the key establishment since
|
This column shows the number of attempts to perform the key establishment since
|
||||||
the last successful key establishment. A number larger than 1 indicates a
|
the last successful key establishment. A number larger than 1 indicates a
|
||||||
problem with the network or server.
|
problem with the network or server.
|
||||||
|
*NAK*:::
|
||||||
|
This column shows whether an NTS NAK was received since the last authenticated
|
||||||
|
response. A NAK indicates that authentication failed on the server side due to
|
||||||
|
*chronyd* using a cookie which is no longer valid and that it needs to perform
|
||||||
|
the key establishment again in order to get new cookies.
|
||||||
*Cook*:::
|
*Cook*:::
|
||||||
This column shows the number of NTS cookies that *chronyd* currently has. If
|
This column shows the number of NTS cookies that *chronyd* currently has. If
|
||||||
the key establishment was successful, a number smaller than 8 indicates a
|
the key establishment was successful, a number smaller than 8 indicates a
|
||||||
problem with the network or server.
|
problem with the network or server.
|
||||||
*NAK*:::
|
*CLen*:::
|
||||||
This column shows whether an NTS NAK was received since the last authenticated
|
This column shows the length in bytes of the NTS cookie which will be used in
|
||||||
response. A non-zero number indicates that *chronyd* has used a cookie which is
|
the next request.
|
||||||
no longer valid, or it might be under a denial-of-service attack.
|
|
||||||
|
|
||||||
[[ntpdata]]*ntpdata* [_address_]::
|
[[ntpdata]]*ntpdata* [_address_]::
|
||||||
The *ntpdata* command displays the last valid measurement and other
|
The *ntpdata* command displays the last valid measurement and other
|
||||||
|
|
|
@ -648,5 +648,6 @@ NNC_GetReport(NNC_Instance inst, RPT_AuthReport *report)
|
||||||
else
|
else
|
||||||
report->last_ke_ago = -1;
|
report->last_ke_ago = -1;
|
||||||
report->cookies = inst->num_cookies;
|
report->cookies = inst->num_cookies;
|
||||||
|
report->cookie_length = inst->num_cookies > 0 ? inst->cookies[inst->cookie_index].length : 0;
|
||||||
report->nak = inst->nak_response;
|
report->nak = inst->nak_response;
|
||||||
}
|
}
|
||||||
|
|
|
@ -168,6 +168,7 @@ typedef struct {
|
||||||
int ke_attempts;
|
int ke_attempts;
|
||||||
uint32_t last_ke_ago;
|
uint32_t last_ke_ago;
|
||||||
int cookies;
|
int cookies;
|
||||||
|
int cookie_length;
|
||||||
int nak;
|
int nak;
|
||||||
} RPT_AuthReport;
|
} RPT_AuthReport;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue