Linux distributions
TMA-ROCKY8-5.1.5
Ensure access to SSH public host key files is configured
Beschreibung
An SSH public key is one of two files used in SSH public key authentication. In this authentication method, a public key is a key that can be used for verifying digital signatures generated using a corresponding private key. Only a public key that corresponds to a private key will be able to authenticate successfully.
So wird geprüft
Prüfmethode: Shell-Befehl
alt0() { o=$(bash -c '#!/usr/bin/env bash
{
a_output=(); a_output2=()
l_pmask="0133"; l_maxperm="$( printf '"'"'%o'"'"' $(( 0777 & ~$l_pmask )) )"
f_file_chk()
{
while IFS=: read -r l_file_mode l_file_owner l_file_group; do
a_out2=()
if [ $(( $l_file_mode & $l_pmask )) -gt 0 ]; then
a_out2+=(" Mode: \"$l_file_mode\" should be mode: \"$l_maxperm\" or more restrictive")
fi
if [ "$l_file_owner" != "root" ]; then
a_out2+=(" Owned by: \"$l_file_owner\" should be owned by: \"root\"")
fi
if [ "$l_file_group" != "root" ]; then
a_out2+=(" Owned by group \"$l_file_group\" should be group owned by group: \"root\"")
fi
if [ "${#a_out2[@]}" -gt "0" ]; then
a_output2+=(" - File: \"$l_file\"" "${a_out2[@]}")
else
a_output+=(" - File: \"$l_file\"" \
" Correct: mode: \"$l_file_mode\", owner: \"$l_file_owner\" and group owner: \"$l_file_group\" configured")
fi
done < <(stat -Lc '"'"'%#a:%U:%G'"'"' "$l_file")
}
while IFS= read -r -d $'"'"'\0'"'"' l_file; do
if ssh-keygen -lf &>/dev/null "$l_file"; then
file "$l_file" | grep -Piq -- '"'"'\bopenssh\h+([^#\n\r]+\h+)?public\h+key\b'"'"' && f_file_chk
fi
done < <(find -L /etc/ssh -xdev -type f -print0 2>/dev/null)
if [ "${#a_output2[@]}" -le 0 ]; then
[ "${#a_output[@]}" -le 0 ] && a_output+=(" - No openSSH public keys found")
printf '"'"'%s\n'"'"' "" "- Audit Result:" " ** PASS **" "${a_output[@]}" ""
else
printf '"'"'%s\n'"'"' "" "- Audit Result:" " ** FAIL **" " - Reason(s) for audit failure:" "${a_output2[@]}"
[ "${#a_output[@]}" -gt 0 ] && printf '"'"'%s\n'"'"' "" "- Correctly set:" "${a_output[@]}" ""
fi
}' 2>&1); printf '%s\n' "$o" | grep -q '\*\* PASS \*\*' || { echo "step1: script did not report PASS"; return 1; }; }; if alt0; then echo compliant; fi- Erwartete Ausgabe
compliant
So wird behoben
Behebungsmethode: Anleitung oder Infrastruktur-Patch
Run the following script to set mode, ownership, and group on the public SSH host key files: #!/usr/bin/env bash { a_output=(); a_output2=() l_pmask="0133"; l_maxperm="$( printf '%o' $(( 0777 & ~$l_pmask )) )" f_file_access_fix() { while IFS=: read -r l_file_mode l_file_owner l_file_group; do a_out2=() [ $(( $l_file_mode & $l_pmask )) -gt 0 ] && \ a_out2+=(" Mode: \"$l_file_mode\" should be mode: \"$l_maxperm\" or more restrictive" \ " updating to mode: \"$l_maxperm\"") && chmod u-x,go-wx "$l_file" [ "$l_file_owner" != "root" ] && \ a_out2+=(" Owned by: \"$l_file_owner\" should be owned by \"root\"" \ " Changing ownership to \"root\"") && chown root "$l_file" [ "$l_file_group" != "root" ] &&…
Eigenschaften
- Betriebssysteme
- rocky-8
- Tags
- cis-convertedlinux
- Referenz
- CIS Rocky Linux 8 Benchmark v3.0.0 - 5.1.5
Diesen Host prüfen
Führen Sie dies auf einem Rechner aus, den Sie prüfen dürfen. Der Scan ist schreibgeschützt.
tmaegis scan --target linux