2014-08-26 17:33:55 +02:00
#!/bin/sh
#################################################################################
#
# Lynis
# ------------------
#
2016-03-13 16:00:39 +01:00
# Copyright 2007-2013, Michael Boelen
# Copyright 2013-2016, CISOfy
#
# Website : https://cisofy.com
# Blog : http://linux-audit.com
# GitHub : https://github.com/CISOfy/lynis
2014-08-26 17:33:55 +02:00
#
# 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.
#
#################################################################################
#
# Memory and processes
#
#################################################################################
#
InsertSection "Memory and processes"
#
#################################################################################
#
# Test : PROC-3602
# Description : Query /proc/meminfo
Register --test-no PROC-3602 --os Linux --weight L --network NO --description "Checking /proc/meminfo for memory details"
if [ ${SKIPTEST} -eq 0 ]; then
if [ -f /proc/meminfo ]; then
2015-12-21 21:17:15 +01:00
LogText "Result: found /proc/meminfo"
2014-09-15 12:01:09 +02:00
Display --indent 2 --text "- Checking /proc/meminfo" --result FOUND --color GREEN
2015-10-10 13:25:14 +02:00
FIND=`awk '/^MemTotal/ { print $2, $3 }' /proc/meminfo`
2014-08-26 17:33:55 +02:00
MEMORY_SIZE=`echo ${FIND} | awk '{ print $1 }'`
MEMORY_UNITS=`echo ${FIND} | awk '{ print $2 }'`
2015-12-21 21:17:15 +01:00
LogText "Result: Found ${MEMORY_SIZE} ${MEMORY_UNITS} memory"
Report "memory_size=${MEMORY_SIZE}"
Report "memory_units=${MEMORY_UNITS}"
2014-08-26 17:33:55 +02:00
else
2015-12-21 21:17:15 +01:00
LogText "Result: /proc/meminfo file not found on this system"
2014-08-26 17:33:55 +02:00
fi
fi
#
#################################################################################
#
# Test : PROC-3604
# Description : Query /proc/meminfo
Register --test-no PROC-3604 --os Solaris --weight L --network NO --description "Query prtconf for memory details"
if [ ${SKIPTEST} -eq 0 ]; then
2015-12-21 21:17:15 +01:00
LogText "Test: Searching /usr/sbin/prtconf"
2014-08-26 17:33:55 +02:00
if [ -x /usr/sbin/prtconf ]; then
2014-09-15 12:01:09 +02:00
Display --indent 2 --text "- Querying prtconf for installed memory" --result DONE --color GREEN
2014-08-26 17:33:55 +02:00
MEMORY_SIZE=`/usr/sbin/prtconf | grep "^Memory size:" | cut -d ' ' -f3`
MEMORY_UNITS=`/usr/sbin/prtconf | grep "^Memory size:" | cut -d ' ' -f4`
2015-12-21 21:17:15 +01:00
LogText "Result: Found ${MEMORY_SIZE} ${MEMORY_UNITS} memory"
Report "memory_size=${MEMORY_SIZE}"
Report "memory_units=${MEMORY_UNITS}"
2014-08-26 17:33:55 +02:00
else
2014-09-15 12:01:09 +02:00
Display --indent 2 --text "- Querying prtconf for installed memory" --result SKIPPED --color WHITE
2015-12-21 21:17:15 +01:00
LogText "Result: /usr/sbin/prtconf not found"
2014-08-26 17:33:55 +02:00
fi
fi
#
#################################################################################
#
# Test : PROC-3612
# Description : Searching for dead and zombie processes
2015-09-07 17:35:07 +02:00
# Notes : Don't perform test on Solaris
2014-08-26 17:33:55 +02:00
if [ ! "${OS}" = "Solaris" ]; then PREQS_MET="YES"; else PREQS_MET="NO"; fi
Register --test-no PROC-3612 --preqs-met ${PREQS_MET} --weight L --network NO --description "Check dead or zombie processes"
if [ ${SKIPTEST} -eq 0 ]; then
if [ "${OS}" = "AIX" ]; then
2016-04-27 10:30:40 +02:00
FIND=`${PSBINARY} -Ae -o pid,stat,comm | awk '{ if ($2 ~ /Z|X/) print $1 }' | xargs`
2014-08-26 17:33:55 +02:00
else
2016-04-27 10:30:40 +02:00
FIND=`${PSBINARY} x -o pid,stat,comm | awk '{ if ($2 ~ /Z|X/) print $1 }' | xargs`
2014-08-26 17:33:55 +02:00
fi
if [ "${FIND}" = "" ]; then
2015-12-21 21:17:15 +01:00
LogText "Result: no zombie processes found"
2014-09-15 12:01:09 +02:00
Display --indent 2 --text "- Searching for dead/zombie processes" --result OK --color GREEN
2014-08-26 17:33:55 +02:00
else
2015-12-21 21:17:15 +01:00
LogText "Result: found one or more dead or zombie processes"
LogText "Output: PIDs ${FIND}"
2014-09-15 12:01:09 +02:00
Display --indent 2 --text "- Searching for dead/zombie processes" --result WARNING --color RED
2014-08-26 17:33:55 +02:00
ReportSuggestion ${TEST_NO} "Check the output of ps for dead or zombie processes"
fi
fi
#
#################################################################################
#
# Test : PROC-3614
# Description : Searching for heavy IO based waiting processes
# Notes : Don't perform test on Solaris
if [ ! "${OS}" = "Solaris" ]; then PREQS_MET="YES"; else PREQS_MET="NO"; fi
Register --test-no PROC-3614 --preqs-met ${PREQS_MET} --weight L --network NO --description "Check heavy IO waiting based processes"
if [ ${SKIPTEST} -eq 0 ]; then
if [ "${OS}" = "AIX" ]; then
2016-05-02 13:24:19 +02:00
FIND=`${PSBINARY} -Ae -o pid,stat,comm | awk '{ if ($2=="D") print $1 }' | xargs`
2014-08-26 17:33:55 +02:00
else
2016-05-02 13:24:19 +02:00
FIND=`${PSBINARY} x -o pid,stat,comm | awk '{ if ($2=="D") print $1 }' | xargs`
2014-08-26 17:33:55 +02:00
fi
if [ "${FIND}" = "" ]; then
2015-12-21 21:17:15 +01:00
LogText "Result: No processes were waiting for IO requests to be handled first"
2014-09-15 12:01:09 +02:00
Display --indent 2 --text "- Searching for IO waiting processes" --result OK --color GREEN
2014-08-26 17:33:55 +02:00
else
2015-12-21 21:17:15 +01:00
LogText "Result: found one or more processes which were waiting to get IO requests handled first"
LogText "More info: processes which show up with the status flag 'D' are often stuck, until a disk IO event finished. This can happen for example with network storage, where the connection or protocol settings are not logtext well configured."
LogText "Output: PIDs ${FIND}"
2014-09-15 12:01:09 +02:00
Display --indent 2 --text "- Searching for IO waiting processes" --result WARNING --color RED
2014-08-26 17:33:55 +02:00
ReportSuggestion ${TEST_NO} "Check process listing for processes waiting for IO requests"
fi
fi
#
#################################################################################
#
2016-04-28 12:31:57 +02:00
WaitForKeyPress
2014-08-26 17:33:55 +02:00
#
#================================================================================
2016-03-13 16:03:46 +01:00
# Lynis - Security Auditing and System Hardening for Linux and UNIX - https://cisofy.com