print_config_title 'CHECK SSH CONFIG' conf_file_to_test="/etc/ssh/sshd_config" # Check if conf file exist if [[ ! -f "${conf_file_to_test}" ]] then echo -e "${RED}ERROR : file ${conf_file_to_test} NOT FOUND.${NC}\n" SSH_CONFIG_CHECK_FAILED=${SSH_CONFIG_CHECK_FAILED}" Error, file ${conf_file_to_test} not found;" else # PasswordAuthentication check_value_in_conf_file "SSH" "${conf_file_to_test}" "PasswordAuthentication" "no" case ${?} in 0) # OK, nothing to do ;; 1) # Error (wrong number of param or other) SSH_CONFIG_CHECK_FAILED=${SSH_CONFIG_CHECK_FAILED}" Error during PasswordAuthentication with function check_value_in_conf_file, maybe incorrect number of parameter or file not found;" ;; 2) # Unexpected value is set SSH_CONFIG_CHECK_FAILED=${SSH_CONFIG_CHECK_FAILED}" PasswordAuthentication is not set to 'no' or has other value, set 'PasswordAuthentication no' ;" ;; 3) # All expected values are NOT configured SSH_CONFIG_CHECK_FAILED=${SSH_CONFIG_CHECK_FAILED}" PasswordAuthentication is not set to 'no', set 'PasswordAuthentication no' ;" ;; *) # Unknown return code... SSH_CONFIG_CHECK_FAILED=${SSH_CONFIG_CHECK_FAILED}" Error, unknown return code when calling check_value_in_conf_file to check PasswordAuthentication;" ;; esac # PermitRootLogin check_value_in_conf_file "SSH" "${conf_file_to_test}" "PermitRootLogin" "no" case ${?} in 0) # OK, nothing to do ;; 1) # Error (wrong number of param or other) SSH_CONFIG_CHECK_FAILED=${SSH_CONFIG_CHECK_FAILED}" Error during PermitRootLogin with function check_value_in_conf_file, maybe incorrect number of parameter or incorrect parameter or file not found;" ;; 2) # Unexpected value is set SSH_CONFIG_CHECK_FAILED=${SSH_CONFIG_CHECK_FAILED}" PermitRootLogin is not set to 'no' or has other value, set 'PermitRootLogin no' ;" ;; 3) # All expected values are NOT configured SSH_CONFIG_CHECK_FAILED=${SSH_CONFIG_CHECK_FAILED}" PermitRootLogin is not set to 'no', set 'PermitRootLogin no' ;" ;; *) # Unknown return code... SSH_CONFIG_CHECK_FAILED=${SSH_CONFIG_CHECK_FAILED}" Error, unknown return code when calling check_value_in_conf_file to check PermitRootLogin;" ;; esac # ListenAddress check_value_in_conf_file "SSH" "${conf_file_to_test}" "ListenAddress" "${IPV4_ADMIN_LAN_IP} ${IPV6_ADMIN_LAN_IP}" case ${?} in 0) # OK, nothing to do ;; 1) # Error (wrong number of param or other) SSH_CONFIG_CHECK_FAILED=${SSH_CONFIG_CHECK_FAILED}" Error during ListenAddress check with function check_value_in_conf_file, maybe incorrect number of parameter or file not found or no IPV4/IPV6 ADMIN LAN IP for this host;" ;; 2) # Unexpected value is set SSH_CONFIG_CHECK_FAILED=${SSH_CONFIG_CHECK_FAILED}" ListenAddress are not well configured or has other value, set ListenAddress for IPv4 and IPv6;" ;; 3) # All expected values are NOT configured SSH_CONFIG_CHECK_FAILED=${SSH_CONFIG_CHECK_FAILED}" ListenAddress are not well configured, set ListenAddress for IPv4 and IPv6;" ;; *) # Unknown return code... SSH_CONFIG_CHECK_FAILED=${SSH_CONFIG_CHECK_FAILED}" Error, unknown return code when calling check_value_in_conf_file to check ListenAddress;" ;; esac fi