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

data_upload « include - github.com/CISOfy/lynis.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 7b41a3c7ff8f6af25cddc0c0e9bdbe5fa6e5c791 (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
108
109
110
#!/bin/sh

#################################################################################
#
#   Lynis
# ------------------
#
# Copyright 2007-2014, Michael Boelen (michael@cisofy.com), The Netherlands
# Web site: http://cisofy.com
#
# 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.
#
#################################################################################
#
# Data upload
#
#################################################################################
#
#    logtextbreak
PROGRAM_VERSION="101"
DATA_SERVER="https://cisofy.com"
# Additional options to curl
CURL_OPTIONS=""
SETTINGS_FILE="${PROFILE}"
#DEBUG=1

# Only output text to stdout if DEBUG mode is not used
output()
  {
    if [ ${DEBUG} -eq 1 ]; then echo "$1"; fi
  }

#####################################################################################
#
# SYSTEM CHECKS
#
#####################################################################################

output "Lynis Enterprise data uploader starting"
output "Settings file: ${SETTINGS_FILE}"

    # Check if we can find curl
    # Suggestion: If you want to keep the system hardened, copying the binary from a trusted source is a good alternative.
    #             Restrict access to this binary to the user who is running this script.
    if [ "${CURLBINARY}" = "" ]; then
        echo "Fatal: can't find curl binary. Please install the related package or put the binary in the PATH. Quitting.."
        exit 1
    fi

    # Extra the license key from the settings file
    if [ "${LICENSE_KEY}" = "" ]; then
        echo "Fatal: no license key found. Quitting.."
        exit 1
      else
        output "License key = ${LICENSE_KEY}"
    fi


#####################################################################################
#
# JOB CONTROL
#
#####################################################################################

    # Check report file
    if [ -f ${REPORTFILE} ]; then
        output "${WHITE}Report file found.${NORMAL} Starting with connectivity check.."
        # Quit if license is not valid, to reduce load on both client and server.
        UPLOAD=`${CURLBINARY} ${CURL_OPTIONS} -s -S --data-urlencode "licensekey=${LICENSE_KEY}" --data-urlencode "collector_version=${PROGRAM_VERSION}" ${DATA_SERVER}/license/`
        UPLOAD_CODE=`echo ${UPLOAD} | head -n 1 | awk '{ if ($1=="Response") { print $2 }}'`
        if [ "${UPLOAD_CODE}" = "100" ]; then
            output "${WHITE}License is valid{$NORMAL}"
          else
            echo "${RED}Fatal error: provided license key is unknown or invalid.${NORMAL}"
            output "Debug information: ${UPLOAD}"
            # Quit
            ExitClean
        fi
        # Extract the hostid from the parse file
        HOSTID=`cat ${REPORTFILE} | grep "^hostid=" | awk -F= '{ print $2 }'`
        if [ ! "${HOSTID}" = "" ]; then
            output "${WHITE}Found hostid: ${HOSTID}${NORMAL}"
            # Try to connect
            output "Uploading data.."
            UPLOAD=`${CURLBINARY} ${CURL_OPTIONS} -s -S --data-urlencode "data@${REPORTFILE}" --data-urlencode "licensekey=${LICENSE_KEY}" --data-urlencode "hostid=${HOSTID}" ${DATA_SERVER}/upload/`
            UPLOAD_CODE=`echo ${UPLOAD} | head -n 1 | awk '{ print $2 }'`
            output "Output code from upload: ${UPLOAD_CODE}"
            if [ "${UPLOAD_CODE}" = "100" ]; then
                output "${GREEN}Data uploaded successfully${NORMAL}"
              else
                echo "${RED}Error occured, please check documentation for code ${UPLOAD_CODE}.${NORMAL}"
                output "Debug:"
                output ${UPLOAD}
                # Quit
                ExitClean
            fi
          else
            echo "${RED}Fatal error${NORMAL}: No hostid found in report file. Can not upload report file."
            # Quit
            ExitClean
        fi
      else
         output "${YELLOW}No report file found to upload.${NORMAL}"
    fi

#
#================================================================================
# Lynis - Copyright 2007-2014, Michael Boelen - www.rootkit.nl - The Netherlands