diff options
| author | Lorenz <12514511+RincewindsHat@users.noreply.github.com> | 2022-01-03 13:48:39 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-03 13:48:39 +0100 |
| commit | 2714df42fd27ec377228a102acff3744d6bff86d (patch) | |
| tree | 3098fa3d9be4826e5da9d1df39ecf6b42bf3570b /.github | |
| parent | 11af74de386ba7c02d5d0e53f2500b5029a4537d (diff) | |
| parent | 78a999edd4dd3305ef8fa3e06c43f6a893fb6fea (diff) | |
| download | monitoring-plugins-2714df4.tar.gz | |
Merge branch 'master' into master
Diffstat (limited to '.github')
| -rw-r--r-- | .github/NPTest.cache | 54 | ||||
| -rwxr-xr-x | .github/prepare_debian.sh | 101 | ||||
| -rw-r--r-- | .github/workflows/codeql-analysis.yml | 71 | ||||
| -rw-r--r-- | .github/workflows/test.yml | 47 |
4 files changed, 273 insertions, 0 deletions
diff --git a/.github/NPTest.cache b/.github/NPTest.cache new file mode 100644 index 00000000..232305a7 --- /dev/null +++ b/.github/NPTest.cache | |||
| @@ -0,0 +1,54 @@ | |||
| 1 | { | ||
| 2 | 'NP_ALLOW_SUDO' => 'yes', | ||
| 3 | 'NP_DNS_SERVER' => '8.8.8.8', | ||
| 4 | 'NP_GOOD_NTP_SERVICE' => '', | ||
| 5 | 'NP_HOST_DHCP_RESPONSIVE' => '', | ||
| 6 | 'NP_HOST_HPJD_PORT_INVALID' => '161', | ||
| 7 | 'NP_HOST_HPJD_PORT_VALID' => '', | ||
| 8 | 'NP_HOSTNAME_INVALID_CIDR' => '130.133.8.39/30', | ||
| 9 | 'NP_HOSTNAME_INVALID' => 'nosuchhost', | ||
| 10 | 'NP_HOSTNAME_VALID_CIDR' => '130.133.8.41/30', | ||
| 11 | 'NP_HOSTNAME_VALID_IP' => '130.133.8.40', | ||
| 12 | 'NP_HOSTNAME_VALID' => 'monitoring-plugins.org', | ||
| 13 | 'NP_HOSTNAME_VALID_REVERSE' => 'orwell.monitoring-plugins.org.', | ||
| 14 | 'NP_HOST_NONRESPONSIVE' => '192.168.1.2', | ||
| 15 | 'NP_HOST_RESPONSIVE' => 'localhost', | ||
| 16 | 'NP_HOST_SMB' => '', | ||
| 17 | 'NP_HOST_SNMP' => '', | ||
| 18 | 'NP_HOST_TCP_FTP' => '', | ||
| 19 | 'NP_HOST_TCP_HPJD' => '', | ||
| 20 | 'NP_HOST_TCP_HTTP2' => 'test.monitoring-plugins.org', | ||
| 21 | 'NP_HOST_TCP_HTTP' => 'localhost', | ||
| 22 | 'NP_HOST_TCP_IMAP' => 'imap.web.de', | ||
| 23 | 'NP_HOST_TCP_JABBER' => 'jabber.org', | ||
| 24 | 'NP_HOST_TCP_LDAP' => 'localhost', | ||
| 25 | 'NP_HOST_TCP_POP' => 'pop.web.de', | ||
| 26 | 'NP_HOST_TCP_PROXY' => 'localhost', | ||
| 27 | 'NP_HOST_TCP_SMTP' => 'localhost', | ||
| 28 | 'NP_HOST_TCP_SMTP_NOTLS' => '', | ||
| 29 | 'NP_HOST_TCP_SMTP_TLS' => '', | ||
| 30 | 'NP_HOST_TLS_CERT' => 'localhost', | ||
| 31 | 'NP_HOST_TLS_HTTP' => 'localhost', | ||
| 32 | 'NP_HOST_UDP_TIME' => 'none', | ||
| 33 | 'NP_INTERNET_ACCESS' => 'yes', | ||
| 34 | 'NP_LDAP_BASE_DN' => 'dc=nodomain', | ||
| 35 | 'NP_MOUNTPOINT2_VALID' => '/media/ramdisk1', | ||
| 36 | 'NP_MOUNTPOINT_VALID' => '/', | ||
| 37 | 'NP_MYSQL_LOGIN_DETAILS' => '-u root -d test', | ||
| 38 | 'NP_MYSQL_SERVER' => 'localhost', | ||
| 39 | 'NP_MYSQL_SOCKET' => '/var/run/mysqld/mysqld.sock', | ||
| 40 | 'NP_MYSQL_WITH_SLAVE' => '', | ||
| 41 | 'NP_MYSQL_WITH_SLAVE_LOGIN' => '', | ||
| 42 | 'NP_NO_NTP_SERVICE' => 'localhost', | ||
| 43 | 'NP_PORT_TCP_PROXY' => '3128', | ||
| 44 | 'NP_SMB_SHARE' => '', | ||
| 45 | 'NP_SMB_SHARE_DENY' => '', | ||
| 46 | 'NP_SMB_SHARE_SPC' => '', | ||
| 47 | 'NP_SMB_VALID_USER' => '', | ||
| 48 | 'NP_SMB_VALID_USER_PASS' => '', | ||
| 49 | 'NP_SNMP_COMMUNITY' => '', | ||
| 50 | 'NP_SNMP_USER' => '', | ||
| 51 | 'NP_SSH_CONFIGFILE' => '~/.ssh/config', | ||
| 52 | 'NP_SSH_HOST' => 'localhost', | ||
| 53 | 'NP_SSH_IDENTITY' => '~/.ssh/id_rsa' | ||
| 54 | } | ||
diff --git a/.github/prepare_debian.sh b/.github/prepare_debian.sh new file mode 100755 index 00000000..4021c104 --- /dev/null +++ b/.github/prepare_debian.sh | |||
| @@ -0,0 +1,101 @@ | |||
| 1 | #!/bin/bash | ||
| 2 | |||
| 3 | set -x | ||
| 4 | set -e | ||
| 5 | |||
| 6 | export DEBIAN_FRONTEND=noninteractive | ||
| 7 | |||
| 8 | apt-get update | ||
| 9 | apt-get -y install software-properties-common | ||
| 10 | if [ $(lsb_release -is) = "Debian" ]; then | ||
| 11 | apt-add-repository non-free | ||
| 12 | apt-get update | ||
| 13 | fi | ||
| 14 | apt-get -y install perl autotools-dev libdbi-dev libldap2-dev libpq-dev libradcli-dev libnet-snmp-perl procps | ||
| 15 | apt-get -y install libdbi0-dev libdbd-sqlite3 libssl-dev dnsutils snmp-mibs-downloader libsnmp-perl snmpd | ||
| 16 | apt-get -y install fping snmp netcat-openbsd smbclient vsftpd apache2 ssl-cert postfix libhttp-daemon-ssl-perl | ||
| 17 | apt-get -y install libdbd-sybase-perl libnet-dns-perl | ||
| 18 | apt-get -y install slapd ldap-utils | ||
| 19 | apt-get -y install gcc make autoconf automake gettext | ||
| 20 | apt-get -y install faketime | ||
| 21 | apt-get -y install libmonitoring-plugin-perl | ||
| 22 | apt-get -y install libcurl4-openssl-dev | ||
| 23 | apt-get -y install liburiparser-dev | ||
| 24 | apt-get -y install squid | ||
| 25 | apt-get -y install openssh-server | ||
| 26 | apt-get -y install mariadb-server mariadb-client libmariadb-dev | ||
| 27 | apt-get -y install cron iputils-ping | ||
| 28 | apt-get -y install iproute2 | ||
| 29 | |||
| 30 | # remove ipv6 interface from hosts | ||
| 31 | if [ $(ip addr show | grep "inet6 ::1" | wc -l) -eq "0" ]; then | ||
| 32 | sed '/^::1/d' /etc/hosts > /tmp/hosts | ||
| 33 | cp -f /tmp/hosts /etc/hosts | ||
| 34 | fi | ||
| 35 | |||
| 36 | ip addr show | ||
| 37 | |||
| 38 | cat /etc/hosts | ||
| 39 | |||
| 40 | |||
| 41 | # apache | ||
| 42 | a2enmod ssl | ||
| 43 | a2ensite default-ssl | ||
| 44 | # replace snakeoil certs with openssl generated ones as the make-ssl-cert ones | ||
| 45 | # seems to cause problems with our plugins | ||
| 46 | rm /etc/ssl/certs/ssl-cert-snakeoil.pem | ||
| 47 | rm /etc/ssl/private/ssl-cert-snakeoil.key | ||
| 48 | openssl req -nodes -newkey rsa:2048 -x509 -sha256 -days 365 -nodes -keyout /etc/ssl/private/ssl-cert-snakeoil.key -out /etc/ssl/certs/ssl-cert-snakeoil.pem -subj "/C=GB/ST=London/L=London/O=Global Security/OU=IT Department/CN=$(hostname)" | ||
| 49 | service apache2 restart | ||
| 50 | |||
| 51 | # squid | ||
| 52 | cp tools/squid.conf /etc/squid/squid.conf | ||
| 53 | service squid start | ||
| 54 | |||
| 55 | # mariadb | ||
| 56 | service mariadb start | ||
| 57 | mysql -e "create database IF NOT EXISTS test;" -uroot | ||
| 58 | |||
| 59 | # ldap | ||
| 60 | sed -e 's/cn=admin,dc=nodomain/'$(/usr/sbin/slapcat|grep ^dn:|awk '{print $2}')'/' -i .github/NPTest.cache | ||
| 61 | service slapd start | ||
| 62 | |||
| 63 | # sshd | ||
| 64 | ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa | ||
| 65 | cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys | ||
| 66 | service ssh start | ||
| 67 | sleep 1 | ||
| 68 | ssh-keyscan localhost >> ~/.ssh/known_hosts | ||
| 69 | touch ~/.ssh/config | ||
| 70 | |||
| 71 | # start one login session, required for check_users | ||
| 72 | ssh -tt localhost </dev/null >/dev/null 2>/dev/null & | ||
| 73 | disown %1 | ||
| 74 | |||
| 75 | # snmpd | ||
| 76 | for DIR in /usr/share/snmp/mibs /usr/share/mibs; do | ||
| 77 | rm -f $DIR/ietf/SNMPv2-PDU \ | ||
| 78 | $DIR/ietf/IPSEC-SPD-MIB \ | ||
| 79 | $DIR/ietf/IPATM-IPMC-MIB \ | ||
| 80 | $DIR/iana/IANA-IPPM-METRICS-REGISTRY-MIB | ||
| 81 | done | ||
| 82 | mkdir -p /var/lib/snmp/mib_indexes | ||
| 83 | sed -e 's/^agentaddress.*/agentaddress 127.0.0.1/' -i /etc/snmp/snmpd.conf | ||
| 84 | service snmpd start | ||
| 85 | |||
| 86 | # start cron, will be used by check_nagios | ||
| 87 | cron | ||
| 88 | |||
| 89 | # start postfix | ||
| 90 | service postfix start | ||
| 91 | |||
| 92 | # start ftpd | ||
| 93 | service vsftpd start | ||
| 94 | |||
| 95 | # hostname | ||
| 96 | sed "/NP_HOST_TLS_CERT/s/.*/'NP_HOST_TLS_CERT' => '$(hostname)',/" -i /src/.github/NPTest.cache | ||
| 97 | |||
| 98 | # create some test files to lower inodes | ||
| 99 | for i in $(seq 10); do | ||
| 100 | touch /media/ramdisk2/test.$1 | ||
| 101 | done | ||
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml new file mode 100644 index 00000000..9de367e5 --- /dev/null +++ b/.github/workflows/codeql-analysis.yml | |||
| @@ -0,0 +1,71 @@ | |||
| 1 | # For most projects, this workflow file will not need changing; you simply need | ||
| 2 | # to commit it to your repository. | ||
| 3 | # | ||
| 4 | # You may wish to alter this file to override the set of languages analyzed, | ||
| 5 | # or to provide custom queries or build logic. | ||
| 6 | # | ||
| 7 | # ******** NOTE ******** | ||
| 8 | # We have attempted to detect the languages in your repository. Please check | ||
| 9 | # the `language` matrix defined below to confirm you have the correct set of | ||
| 10 | # supported CodeQL languages. | ||
| 11 | # | ||
| 12 | name: "CodeQL" | ||
| 13 | |||
| 14 | on: | ||
| 15 | push: | ||
| 16 | branches: [ master ] | ||
| 17 | pull_request: | ||
| 18 | # The branches below must be a subset of the branches above | ||
| 19 | branches: [ master ] | ||
| 20 | schedule: | ||
| 21 | - cron: '15 18 * * 0' | ||
| 22 | |||
| 23 | jobs: | ||
| 24 | analyze: | ||
| 25 | name: Analyze | ||
| 26 | runs-on: ubuntu-latest | ||
| 27 | permissions: | ||
| 28 | actions: read | ||
| 29 | contents: read | ||
| 30 | security-events: write | ||
| 31 | |||
| 32 | strategy: | ||
| 33 | fail-fast: false | ||
| 34 | matrix: | ||
| 35 | language: [ 'cpp' ] | ||
| 36 | # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] | ||
| 37 | # Learn more: | ||
| 38 | # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed | ||
| 39 | |||
| 40 | steps: | ||
| 41 | - name: Checkout repository | ||
| 42 | uses: actions/checkout@v2 | ||
| 43 | |||
| 44 | # Initializes the CodeQL tools for scanning. | ||
| 45 | - name: Initialize CodeQL | ||
| 46 | uses: github/codeql-action/init@v1 | ||
| 47 | with: | ||
| 48 | languages: ${{ matrix.language }} | ||
| 49 | # If you wish to specify custom queries, you can do so here or in a config file. | ||
| 50 | # By default, queries listed here will override any specified in a config file. | ||
| 51 | # Prefix the list here with "+" to use these queries and those in the config file. | ||
| 52 | # queries: ./path/to/local/query, your-org/your-repo/queries@main | ||
| 53 | |||
| 54 | - name: Install packages | ||
| 55 | run: | | ||
| 56 | sudo apt-get install -y --no-install-recommends m4 gettext automake autoconf make build-essential | ||
| 57 | sudo apt-get install -y --no-install-recommends perl autotools-dev libdbi-dev libldap2-dev libpq-dev \ | ||
| 58 | libmysqlclient-dev libradcli-dev libkrb5-dev libdbi0-dev \ | ||
| 59 | libdbd-sqlite3 libssl-dev libcurl4-openssl-dev liburiparser-dev | ||
| 60 | |||
| 61 | - name: Configure build | ||
| 62 | run: | | ||
| 63 | ./tools/setup | ||
| 64 | ./configure --enable-libtap | ||
| 65 | |||
| 66 | - name: Build | ||
| 67 | run: | | ||
| 68 | make | ||
| 69 | |||
| 70 | - name: Perform CodeQL Analysis | ||
| 71 | uses: github/codeql-action/analyze@v1 | ||
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000..0f93930a --- /dev/null +++ b/.github/workflows/test.yml | |||
| @@ -0,0 +1,47 @@ | |||
| 1 | name: Test | ||
| 2 | |||
| 3 | on: | ||
| 4 | push: | ||
| 5 | branches: | ||
| 6 | - '*' | ||
| 7 | pull_request: | ||
| 8 | |||
| 9 | jobs: | ||
| 10 | # macos: | ||
| 11 | # ... | ||
| 12 | linux: | ||
| 13 | runs-on: ubuntu-latest | ||
| 14 | name: Running tests on ${{ matrix.distro }} | ||
| 15 | strategy: | ||
| 16 | fail-fast: false | ||
| 17 | matrix: | ||
| 18 | distro: | ||
| 19 | - 'debian:testing' | ||
| 20 | #... | ||
| 21 | include: | ||
| 22 | - distro: 'debian:testing' | ||
| 23 | prepare: .github/prepare_debian.sh | ||
| 24 | #... | ||
| 25 | steps: | ||
| 26 | - name: Git clone repository | ||
| 27 | uses: actions/checkout@v2 | ||
| 28 | #- name: Setup tmate session, see https://github.com/marketplace/actions/debugging-with-tmate | ||
| 29 | # uses: mxschmitt/action-tmate@v3 | ||
| 30 | - name: Run the tests on ${{ matrix.distro }} | ||
| 31 | run: | | ||
| 32 | docker volume create --driver local --opt type=tmpfs --opt device=tmpfs --opt o=size=100m,uid=1000 tmp-vol | ||
| 33 | docker run \ | ||
| 34 | -e NPTEST_ACCEPTDEFAULT=1 \ | ||
| 35 | -e NPTEST_CACHE="/src/.github/NPTest.cache" \ | ||
| 36 | -w /src -v ${PWD}:/src \ | ||
| 37 | --tmpfs /media/ramdisk1 \ | ||
| 38 | -v /var/run/utmp:/var/run/utmp \ | ||
| 39 | --mount source=tmp-vol,destination=/src,target=/media/ramdisk2 \ | ||
| 40 | ${{ matrix.distro }} \ | ||
| 41 | /bin/sh -c '${{ matrix.prepare }} && \ | ||
| 42 | tools/setup && \ | ||
| 43 | ./configure --enable-libtap --with-ipv6=no && \ | ||
| 44 | make && \ | ||
| 45 | make test' | ||
| 46 | docker container prune -f | ||
| 47 | docker volume prune -f | ||
