#!/bin/sh ################################################################################# # # Lynis # ------------------ # # Copyright 2007-2013, Michael Boelen # Copyright 2007-2021, CISOfy # # Website : https://cisofy.com # Blog : http://linux-audit.com # GitHub : https://github.com/CISOfy/lynis # # Lynis comes with ABSOLUTELY NO WARRANTY. This is free software, and you are # welcome to redistribute it under the terms of the GNU General Public License. # See LICENSE file for usage of this software. # ################################################################################# # # SNMP related tests # ################################################################################# # SNMP_DAEMON_CONFIG_LOCS="${ROOTDIR}etc/snmp" SNMP_DAEMON_CONFIG="" SNMP_DAEMON_RUNNING=0 # ################################################################################# # InsertSection "${SECTION_SNMP_SUPPORT}" # Test : SNMP-3302 # Description : Check for a running SNMP daemon Register --test-no SNMP-3302 --weight L --network NO --category security --description "Check for running SNMP daemon" if [ ${SKIPTEST} -eq 0 ]; then LogText "Test: Searching for a SNMP daemon" if IsRunning "snmpd"; then SNMP_DAEMON_RUNNING=1 LogText "Result: SNMP daemon is running" Display --indent 2 --text "- Checking running SNMP daemon" --result "${STATUS_FOUND}" --color GREEN else LogText "Result: No running SNMP daemon found" Display --indent 2 --text "- Checking running SNMP daemon" --result "${STATUS_NOT_FOUND}" --color WHITE fi fi # ################################################################################# # # Test : SNMP-3304 # Description : Determine SNMP daemon configuration file location if [ ${SNMP_DAEMON_RUNNING} -eq 1 ]; then PREQS_MET="YES"; else PREQS_MET="NO"; fi Register --test-no SNMP-3304 --preqs-met ${PREQS_MET} --weight L --network NO --category security --description "Check SNMP daemon file location" if [ ${SKIPTEST} -eq 0 ]; then LogText "Test: searching for snmpd.conf file" for I in ${SNMP_DAEMON_CONFIG_LOCS}; do if [ -f "${I}/snmpd.conf" ]; then LogText "Result: ${I}/snmpd.conf exists" SNMP_DAEMON_CONFIG="${I}/snmpd.conf" fi done if [ -z "${SNMP_DAEMON_CONFIG}" ]; then LogText "Result: No snmpd configuration found" Display --indent 4 --text "- Checking SNMP configuration" --result "${STATUS_NOT_FOUND}" --color WHITE else LogText "Result: using last found configuration file: ${SNMP_DAEMON_CONFIG}" Display --indent 4 --text "- Checking SNMP configuration" --result "${STATUS_FOUND}" --color GREEN fi fi # ################################################################################# # # Test : SNMP-3306 # Description : Determine SNMP communities if [ -n "${SNMP_DAEMON_CONFIG}" ]; then PREQS_MET="YES"; else PREQS_MET="NO"; fi Register --test-no SNMP-3306 --preqs-met ${PREQS_MET} --weight L --network NO --category security --description "Check SNMP communities" if [ ${SKIPTEST} -eq 0 ]; then WARN=0 LogText "Test: reading active snmp communities" FIND=$(${AWKBINARY} '/^com2sec/ { print $4 }' ${SNMP_DAEMON_CONFIG}) for I in ${FIND}; do LogText "Output: ${I}" if [ "${I}" = "public" -o "${I}" = "private" ]; then LogText "Result: found easy guessable snmp community string (${I})" WARN=1 AddHP 1 3 fi done # Check status of test if [ ${WARN} -eq 0 ]; then Display --indent 2 --text "- Checking SNMP community strings" --result "${STATUS_OK}" --color GREEN AddHP 2 2 else Display --indent 2 --text "- Checking SNMP community strings" --result "${STATUS_WARNING}" --color RED ReportWarning "${TEST_NO}" "Found easy guessable SNMP community string" fi fi # ################################################################################# # WaitForKeyPress # #================================================================================ # Lynis - Copyright 2007-2021 Michael Boelen, CISOfy - https://cisofy.com