lynis/include/tests_mail_messaging

215 lines
9.6 KiB
Plaintext
Raw Normal View History

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.
#
#################################################################################
#
# E-mail and messaging
#
#################################################################################
#
InsertSection "Software: e-mail and messaging"
#
#################################################################################
#
DOVECOT_RUNNING=0
EXIM_RUNNING=0
SMTP_DAEMON=""
POSTFIX_RUNNING=0
QMAIL_RUNNING=0
SENDMAIL_RUNNING=0
OPENSMTPD_RUNNING=0
2014-08-26 17:33:55 +02:00
#
#################################################################################
#
# Test : MAIL-8802
# Description : Check Exim process status
Register --test-no MAIL-8802 --weight L --network NO --category security --description "Check Exim status"
2014-08-26 17:33:55 +02:00
if [ ${SKIPTEST} -eq 0 ]; then
LogText "Test: check Exim status"
2014-08-26 17:33:55 +02:00
IsRunning exim
if [ ${RUNNING} -eq 1 ]; then
LogText "Result: found running Exim process"
Display --indent 2 --text "- Checking Exim status" --result "${STATUS_RUNNING}" --color GREEN
2014-08-26 17:33:55 +02:00
EXIM_RUNNING=1
SMTP_DAEMON="exim"
else
LogText "Result: no running Exim processes found"
Display --indent 2 --text "- Checking Exim status" --result "${STATUS_NOT_FOUND}" --color WHITE
2014-08-26 17:33:55 +02:00
fi
fi
#
#################################################################################
#
# Test : MAIL-8814
# Description : Check Postfix process
# Notes : qmgr and pickup run under postfix uid, without full path to binary
Register --test-no MAIL-8814 --weight L --network NO --category security --description "Check postfix process status"
2014-08-26 17:33:55 +02:00
if [ ${SKIPTEST} -eq 0 ]; then
LogText "Test: check Postfix status"
2014-08-26 17:33:55 +02:00
# Some other processes also use master, therefore it should include both master and postfix
FIND1=`${PSBINARY} ax | grep "master" | grep "postfix" | grep -v "grep"`
#FIND2=`${PSBINARY} ax | grep "qmgr" | grep "postfix" | grep -v "grep"`
#FIND3=`${PSBINARY} ax | grep "pickup" | grep "postfix" | grep -v "grep"`
if [ ! "${FIND1}" = "" ]; then
LogText "Result: found running Postfix process"
Display --indent 2 --text "- Checking Postfix status" --result "${STATUS_RUNNING}" --color GREEN
2014-08-26 17:33:55 +02:00
POSTFIX_RUNNING=1
SMTP_DAEMON="postfix"
else
LogText "Result: no running Postfix processes found"
Display --indent 2 --text "- Checking Postfix status" --result "${STATUS_NOT_FOUND}" --color WHITE
2014-08-26 17:33:55 +02:00
fi
fi
#
#################################################################################
#
# Test : MAIL-8816
# Description : Check Postfix configuration
if [ ${POSTFIX_RUNNING} -eq 1 -a ! "${POSTFIXBINARY}" = "" ]; then PREQS_MET="YES"; else PREQS_MET="NO"; fi
Register --test-no MAIL-8816 --preqs-met ${PREQS_MET} --weight L --network NO --category security --description "Check Postfix configuration"
2014-08-26 17:33:55 +02:00
if [ ${SKIPTEST} -eq 0 ]; then
Display --indent 2 --text "- Checking Postfix configuration" --result "${STATUS_FOUND}" --color GREEN
2015-12-21 17:07:31 +01:00
POSTFIX_CONFIGDIR=`${POSTCONFBINARY} 2> /dev/null | grep '^config_directory' | awk '{ print $3 }'`
2014-08-26 17:33:55 +02:00
POSTFIX_CONFIGFILE="${POSTFIX_CONFIGDIR}/main.cf"
LogText "Postfix configuration directory: ${POSTFIX_CONFIGDIR}"
LogText "Postfix configuration file: ${POSTFIX_CONFIGFILE}"
2014-08-26 17:33:55 +02:00
fi
#
#################################################################################
#
# Test : MAIL-8818
# Description : Check Postfix configuration
if [ ${POSTFIX_RUNNING} -eq 1 -a ! "${POSTFIXBINARY}" = "" ]; then PREQS_MET="YES"; else PREQS_MET="NO"; fi
Register --test-no MAIL-8818 --preqs-met ${PREQS_MET} --weight L --network NO --category security --description "Check Postfix configuration: banner"
2014-08-26 17:33:55 +02:00
if [ ${SKIPTEST} -eq 0 ]; then
LogText "Test: Checking Postfix banner"
2016-07-31 15:43:06 +02:00
FIND1=$(${POSTCONFBINARY} 2> /dev/null | grep '^smtpd_banner' | grep 'postfix')
FIND2=$(${POSTCONFBINARY} 2> /dev/null | grep '^smtpd_banner' | grep '$mail_name')
FIND3=$(${POSTCONFBINARY} 2> /dev/null | grep '^mail_name' | grep -i 'postfix')
#TODO Check if OS name shows up in banner
2015-12-21 17:07:31 +01:00
#FIND4=`${POSTCONFBINARY} 2> /dev/null | grep '^smtpd_banner' | egrep "${OS}|${LINUX_VERSION}`
2014-08-26 17:33:55 +02:00
SHOWWARNING=0
if [ ! "${FIND1}" = "" ]; then
SHOWWARNING=1
2016-07-31 15:43:06 +02:00
else
2014-08-26 17:33:55 +02:00
if [ ! "${FIND2}" = "" -a ! "${FIND3}" = "" ]; then
SHOWWARNING=1
2016-07-31 15:43:06 +02:00
else
Display --indent 4 --text "- Postfix banner" --result "${STATUS_OK}" --color GREEN
2014-08-26 17:33:55 +02:00
fi
fi
if [ ${SHOWWARNING} -eq 1 ]; then
2016-07-31 15:43:06 +02:00
Display --indent 4 --text "- Postfix banner" --result "${STATUS_WARNING}" --color RED
LogText "Result: found mail_name in SMTP banner, and/or mail_name contains 'Postfix'."
2016-07-31 15:43:06 +02:00
ReportWarning ${TEST_NO} "Found mail_name in SMTP banner, and/or mail_name contains 'Postfix'"
ReportSuggestion ${TEST_NO} "You are advised to hide the mail_name (option: smtpd_banner) from your postfix configuration. Use postconf -e or change your main.cf file (${POSTFIX_CONFIGFILE})"
2014-08-26 17:33:55 +02:00
fi
fi
#
#################################################################################
#
# Test : MAIL-8838
# Description : Check Dovecot process
Register --test-no MAIL-8838 --weight L --network NO --category security --description "Check dovecot process"
2014-08-26 17:33:55 +02:00
if [ ${SKIPTEST} -eq 0 ]; then
LogText "Test: check dovecot status"
2014-08-26 17:33:55 +02:00
IsRunning dovecot
if [ ${RUNNING} -eq 1 ]; then
LogText "Result: found running dovecot process"
Display --indent 2 --text "- Checking Dovecot status" --result "${STATUS_RUNNING}" --color GREEN
2014-08-26 17:33:55 +02:00
DOVECOT_RUNNING=1
IMAP_DAEMON="dovecot"
POP3_DAEMON="dovecot"
else
LogText "Result: dovecot not found"
Display --indent 2 --text "- Checking Dovecot status" --result "${STATUS_NOT_FOUND}" --color WHITE
2014-08-26 17:33:55 +02:00
fi
fi
#
#################################################################################
#
# Test : MAIL-8860
# Description : Check Qmail process status
Register --test-no MAIL-8860 --weight L --network NO --category security --description "Check Qmail status"
2014-08-26 17:33:55 +02:00
if [ ${SKIPTEST} -eq 0 ]; then
LogText "Test: check Qmail status"
2014-08-26 17:33:55 +02:00
IsRunning qmail-smtpd
if [ ${RUNNING} -eq 1 ]; then
LogText "Result: found running Qmail process"
Display --indent 2 --text "- Checking Qmail status" --result "${STATUS_RUNNING}" --color GREEN
2014-08-26 17:33:55 +02:00
QMAIL_RUNNING=1
2014-08-28 14:03:31 +02:00
SMTP_DAEMON="qmail"
2014-08-26 17:33:55 +02:00
else
LogText "Result: no running Qmail processes found"
Display --indent 2 --text "- Checking Qmail status" --result "${STATUS_NOT_FOUND}" --color WHITE
2014-08-26 17:33:55 +02:00
fi
fi
#
#################################################################################
#
# Test : MAIL-8880
# Description : Check Sendmail process status
Register --test-no MAIL-8880 --weight L --network NO --category security --description "Check Sendmail status"
2014-08-26 17:33:55 +02:00
if [ ${SKIPTEST} -eq 0 ]; then
LogText "Test: check sendmail status"
2014-08-26 17:33:55 +02:00
IsRunning sendmail
if [ ${RUNNING} -eq 1 ]; then
LogText "Result: found running Sendmail process"
Display --indent 2 --text "- Checking Sendmail status" --result "${STATUS_RUNNING}" --color GREEN
2014-08-26 17:33:55 +02:00
SENDMAIL_RUNNING=1
SMTP_DAEMON="sendmail"
else
LogText "Result: no running Sendmail processes found"
Display --indent 2 --text "- Checking Sendmail status" --result "${STATUS_NOT_FOUND}" --color WHITE
2014-08-26 17:33:55 +02:00
fi
fi
#
#################################################################################
#
# Test : MAIL-8920
# Description : Check OpenSMTPD process status
2014-11-29 16:22:36 +01:00
if [ ! "${SMTPCTLBINARY}" = "" ]; then PREQS_MET="YES"; else PREQS_MET="NO"; fi
Register --test-no MAIL-8920 --preqs-met ${PREQS_MET} --weight L --network NO --category security --description "Check OpenSMTPD status"
2014-08-26 17:33:55 +02:00
if [ ${SKIPTEST} -eq 0 ]; then
LogText "Test: check smtpd status"
FIND=`${PSBINARY} ax | egrep "(/smtpd|smtpd: \[priv\]|smtpd: smtp)" | grep -v "grep"`
2014-08-26 17:33:55 +02:00
if [ ! "${FIND}" = "" ]; then
LogText "Result: found running smtpd process"
Display --indent 2 --text "- Checking OpenSMTPD status" --result "${STATUS_RUNNING}" --color GREEN
OPENSMTPD_RUNNING=1
SMTP_DAEMON="opensmtpd"
2014-08-26 17:33:55 +02:00
else
LogText "Result: smtpd not found"
Display --indent 2 --text "- Checking OpenSMTPD status" --result "${STATUS_NOT_FOUND}" --color WHITE
2014-08-26 17:33:55 +02:00
fi
fi
#
#################################################################################
#
Report "imap_daemon=${IMAP_DAEMON}"
Report "pop3_daemon=${POP3_DAEMON}"
Report "smtp_daemon=${SMTP_DAEMON}"
2014-08-26 17:33:55 +02:00
WaitForKeyPress
2014-08-26 17:33:55 +02:00
#
#================================================================================
# Lynis - Security Auditing and System Hardening for Linux and UNIX - https://cisofy.com