Test SSH service and application firewall cleanup

This commit is contained in:
Afonso Oliveira committed 2026-09-24 10:18:44 +01:00
1 parent 27e1f73e35
commit f8ead5cf5f
1 file changed
+5 -2
@@ -28,6 +28,9 @@ case "$*" in
"--force delete limit 22/tcp") failure=delete-limit; rule='limit 22/tcp' ;; "--force delete limit 22/tcp") failure=delete-limit; rule='limit 22/tcp' ;;
"--force delete allow 22/tcp") failure=delete-port; rule='allow 22/tcp' ;; "--force delete allow 22/tcp") failure=delete-port; rule='allow 22/tcp' ;;
"--force delete allow ssh") failure=delete-service; rule='allow ssh' ;; "--force delete allow ssh") failure=delete-service; rule='allow ssh' ;;
"--force delete limit ssh") failure=delete-service-limit; rule='limit ssh' ;;
"--force delete allow to any app SSH") failure=delete-app-allow; rule='allow app SSH' ;;
"--force delete limit to any app SSH") failure=delete-app-limit; rule='limit app SSH' ;;
reload) failure=reload ;; reload) failure=reload ;;
*) exit 97 ;; *) exit 97 ;;
esac esac
@@ -62,7 +65,7 @@ prepare_case() {
mkdir -p "$home/.ssh" mkdir -p "$home/.ssh"
printf 'ssh-ed25519 fake-key test@example\n' >"$home/.ssh/authorized_keys" printf 'ssh-ed25519 fake-key test@example\n' >"$home/.ssh/authorized_keys"
: >"$calls" : >"$calls"
printf '%s\n' 'limit 22/tcp' 'allow 22/tcp' 'allow ssh' 'allow 443/tcp' >"$state" printf '%s\n' 'limit 22/tcp' 'allow 22/tcp' 'allow ssh' 'limit ssh' 'allow app SSH' 'limit app SSH' 'allow 443/tcp' >"$state"
} }
run_remove() { run_remove() {
@@ -92,7 +95,7 @@ run_remove
[[ $(<"$state") == 'allow 443/tcp' ]] || fail "repeated removal preserves unrelated rules" [[ $(<"$state") == 'allow 443/tcp' ]] || fail "repeated removal preserves unrelated rules"
pass "removal deletes all standard SSH rules, preserves HTTPS, and is idempotent" pass "removal deletes all standard SSH rules, preserves HTTPS, and is idempotent"
for failure in delete-limit delete-port delete-service reload; do for failure in delete-limit delete-port delete-service delete-service-limit delete-app-allow delete-app-limit reload; do
prepare_case "$failure" prepare_case "$failure"
run_remove "$failure" run_remove "$failure"
(( status != 0 )) || fail "$failure failure makes removal fail" "$output" (( status != 0 )) || fail "$failure failure makes removal fail" "$output"