2024-06-14 04:43:11 +00:00
|
|
|
# $OpenBSD
|
|
|
|
# Placed in the Public Domain.
|
|
|
|
|
|
|
|
tid="penalties"
|
|
|
|
|
|
|
|
grep -vi PerSourcePenalties $OBJ/sshd_config > $OBJ/sshd_config.bak
|
|
|
|
cp $OBJ/authorized_keys_${USER} $OBJ/authorized_keys_${USER}.bak
|
|
|
|
|
|
|
|
conf() {
|
|
|
|
test -z "$PIDFILE" || stop_sshd
|
|
|
|
(cat $OBJ/sshd_config.bak ;
|
|
|
|
echo "PerSourcePenalties $@") > $OBJ/sshd_config
|
|
|
|
cp $OBJ/authorized_keys_${USER}.bak $OBJ/authorized_keys_${USER}
|
|
|
|
start_sshd
|
|
|
|
}
|
|
|
|
|
|
|
|
conf "noauth:10s authfail:10s max:20s min:1s"
|
|
|
|
|
|
|
|
verbose "test connect"
|
|
|
|
${SSH} -F $OBJ/ssh_config somehost true || fatal "basic connect failed"
|
|
|
|
|
|
|
|
verbose "penalty expiry"
|
|
|
|
|
|
|
|
# Incur a penalty
|
|
|
|
cat /dev/null > $OBJ/authorized_keys_${USER}
|
|
|
|
${SSH} -F $OBJ/ssh_config somehost true && fatal "authfail connect succeeded"
|
2024-06-16 11:54:49 +00:00
|
|
|
sleep 2
|
2024-06-14 04:43:11 +00:00
|
|
|
|
|
|
|
# Check denied
|
|
|
|
cp $OBJ/authorized_keys_${USER}.bak $OBJ/authorized_keys_${USER}
|
|
|
|
${SSH} -F $OBJ/ssh_config somehost true && fatal "authfail not rejected"
|
|
|
|
|
|
|
|
# Let it expire and try again.
|
|
|
|
sleep 11
|
|
|
|
${SSH} -F $OBJ/ssh_config somehost true || fail "authfail not expired"
|