Merge pull request 'Name /etc/nginx in alerts, and say both reasons known_hosts changes' (#28) from nginx-area into main
Reviewed-on: #28 Reviewed-by: branderson <brad@branderson.io>
This commit was merged in pull request #28.
This commit is contained in:
@@ -460,8 +460,9 @@ the path like `critical_paths`:
|
|||||||
ignore_paths = /.ssh/known_hosts
|
ignore_paths = /.ssh/known_hosts
|
||||||
```
|
```
|
||||||
|
|
||||||
`~/.ssh/known_hosts` is the usual candidate. It changes whenever the devbox
|
`~/.ssh/known_hosts` is the usual candidate. It changes when the devbox first
|
||||||
first connects to an SSH host, such as cloning from a new git server. Ignored
|
connects to an SSH host, and when a host it already knows offers a key not yet
|
||||||
|
recorded: ssh adds it and keeps the old file as `known_hosts.old`. Ignored
|
||||||
changes still show in `report`, under their own heading, and a critical path
|
changes still show in `report`, under their own heading, and a critical path
|
||||||
cannot be ignored.
|
cannot be ignored.
|
||||||
|
|
||||||
|
|||||||
+5
-2
@@ -428,6 +428,7 @@ describe() { # describe DIFF_FILE
|
|||||||
if (p ~ /^\/etc\/apt\//) return "/etc/apt"
|
if (p ~ /^\/etc\/apt\//) return "/etc/apt"
|
||||||
if (p ~ /^\/etc\/systemd\//) return "/etc/systemd"
|
if (p ~ /^\/etc\/systemd\//) return "/etc/systemd"
|
||||||
if (p ~ /^\/etc\/ssh\//) return "/etc/ssh"
|
if (p ~ /^\/etc\/ssh\//) return "/etc/ssh"
|
||||||
|
if (p ~ /^\/etc\/nginx\//) return "/etc/nginx"
|
||||||
if (p ~ /^\/etc\//) return "/etc"
|
if (p ~ /^\/etc\//) return "/etc"
|
||||||
if (p ~ /^\/usr\/local\/bin\//) return "/usr/local/bin"
|
if (p ~ /^\/usr\/local\/bin\//) return "/usr/local/bin"
|
||||||
if (p ~ /^\/usr\/local\/sbin\//) return "/usr/local/sbin"
|
if (p ~ /^\/usr\/local\/sbin\//) return "/usr/local/sbin"
|
||||||
@@ -447,11 +448,13 @@ describe() { # describe DIFF_FILE
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Said beside a change to known_hosts, which is the one most often harmless and
|
# Said beside a change to known_hosts, which is the one most often harmless and
|
||||||
# least obviously so.
|
# least obviously so. ssh's UpdateHostKeys, on by default, adds keys a known
|
||||||
|
# host offers that are not recorded yet, and keeps the previous file as
|
||||||
|
# known_hosts.old: so a familiar host can change it too, as two files.
|
||||||
known_hosts_note() { # known_hosts_note DESCRIPTION
|
known_hosts_note() { # known_hosts_note DESCRIPTION
|
||||||
case "$1" in
|
case "$1" in
|
||||||
*"~/.ssh/known_hosts"*)
|
*"~/.ssh/known_hosts"*)
|
||||||
printf ' known_hosts changes when the devbox first connects to an SSH host it has not seen, such as cloning from a new git server.' ;;
|
printf ' known_hosts changes when the devbox first connects to an SSH host, or when a host it already knows offers a key not yet recorded, which ssh adds while keeping the old file as known_hosts.old.' ;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-2
@@ -72,8 +72,9 @@ ssh_known_hosts = /var/lib/dejima-guard/known_hosts
|
|||||||
# Paths whose change is reported but not alerted on, space-separated, each
|
# Paths whose change is reported but not alerted on, space-separated, each
|
||||||
# matched as a substring of the path. None by default.
|
# matched as a substring of the path. None by default.
|
||||||
#
|
#
|
||||||
# ~/.ssh/known_hosts is the usual one: it changes whenever the devbox first
|
# ~/.ssh/known_hosts is the usual one: it changes when the devbox first
|
||||||
# connects to an SSH host, such as cloning from a new git server. Ignored
|
# connects to an SSH host, and when a host it already knows offers a key not
|
||||||
|
# yet recorded, which ssh adds while keeping known_hosts.old. Ignored
|
||||||
# changes still appear in `dejima-guard report`, and a critical path above is
|
# changes still appear in `dejima-guard report`, and a critical path above is
|
||||||
# never ignored, whatever this says.
|
# never ignored, whatever this says.
|
||||||
# ignore_paths = /.ssh/known_hosts
|
# ignore_paths = /.ssh/known_hosts
|
||||||
|
|||||||
+11
-1
@@ -1394,11 +1394,21 @@ FILE ccc /etc/apt/sources.list.d/new.list" 0
|
|||||||
run_watch check
|
run_watch check
|
||||||
[[ "$(curl_log)" == *"1 file(s) modified in ~/.ssh/known_hosts"* ]]
|
[[ "$(curl_log)" == *"1 file(s) modified in ~/.ssh/known_hosts"* ]]
|
||||||
[[ "$(curl_log)" == *"1 file(s) added in /etc/apt"* ]]
|
[[ "$(curl_log)" == *"1 file(s) added in /etc/apt"* ]]
|
||||||
[[ "$(curl_log)" == *"first connects to an SSH host"* ]]
|
[[ "$(curl_log)" == *"a host it already knows offers a key"* ]]
|
||||||
[[ "$(curl_log)" != *intruder-chosen* ]]
|
[[ "$(curl_log)" != *intruder-chosen* ]]
|
||||||
[[ "$(curl_log)" != *new.list* ]]
|
[[ "$(curl_log)" != *new.list* ]]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "remote access's nginx config is named as its own area" {
|
||||||
|
# dejima documents /etc/nginx for remote access on the devbox, so a change
|
||||||
|
# there is common and worth telling apart from the rest of /etc.
|
||||||
|
stub_ssh "FILE aaa /etc/nginx/sites-available/dejima" 0
|
||||||
|
run_watch accept
|
||||||
|
stub_ssh "FILE bbb /etc/nginx/sites-available/dejima" 0
|
||||||
|
run_watch check
|
||||||
|
[[ "$(curl_log)" == *"1 file(s) modified in /etc/nginx"* ]]
|
||||||
|
}
|
||||||
|
|
||||||
@test "the report pairs an edit into one modified line" {
|
@test "the report pairs an edit into one modified line" {
|
||||||
stub_ssh "FILE aaa /etc/one
|
stub_ssh "FILE aaa /etc/one
|
||||||
FILE ddd /etc/gone" 0
|
FILE ddd /etc/gone" 0
|
||||||
|
|||||||
Reference in New Issue
Block a user