Welcome to mirror list, hosted at ThFree Co, Russian Federation.

tests_snmp « include - github.com/CISOfy/lynis.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 93755e80f2856fecda2ae3cd24199f74de65db32 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#!/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