mirror of
https://github.com/ovh/debian-cis.git
synced 2025-08-10 17:41:54 +02:00

* update lib/utils.sh - add 'is_pkg_a_dependency', to ensure a package is not needed by some others before removing it -> will be used in debian 12 CIS by at least the 2.1.5 recommendation - update 'is_service_enabled' to use 'systemd' instead of 'rc.d', as we are now only supporting debian LTS using systemd - add 'is_using_sbin_init' to ensure we can use systemctl, in case of running on non detected container - add 'manage_service' to enable / disable service using systemctl * chore: update script related to systemctl / service - configure_systemd-timesync.sh: use "is_service_enabled" instead of calling systemctl - disable_automounting.sh: use "manage_service" instead of "update-rc.d" - enable_auditd.sh: use "manage_service" instead of "update-rc.d" - enable_cron.sh: use "manage_service" instead of "update-rc.d" - enable_syslog-ng.sh: use "manage_service" instead of "update-rc.d" --------- Co-authored-by: Damien Cavagnini <damien.cavagnini@corp.ovh.com>
80 lines
2.1 KiB
Bash
Executable File
80 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# run-shellcheck
|
|
#
|
|
# CIS Debian Hardening
|
|
#
|
|
|
|
#
|
|
# Ensure syslog-ng service is enabled (Scored)
|
|
#
|
|
|
|
set -e # One error, it's over
|
|
set -u # One variable unset, it's over
|
|
|
|
# shellcheck disable=2034
|
|
HARDENING_LEVEL=3
|
|
# shellcheck disable=2034
|
|
DESCRIPTION="Ensure syslog-ng service is activated."
|
|
|
|
PACKAGE='syslog-ng'
|
|
SERVICE_NAME="syslog-ng"
|
|
|
|
# This function will be called if the script status is on enabled / audit mode
|
|
audit() {
|
|
is_pkg_installed "$PACKAGE"
|
|
if [ "$FNRET" != 0 ]; then
|
|
crit "$PACKAGE is not installed!"
|
|
else
|
|
info "Checking if $SERVICE_NAME is enabled"
|
|
is_service_enabled "$SERVICE_NAME"
|
|
if [ "$FNRET" = 0 ]; then
|
|
ok "$SERVICE_NAME is enabled"
|
|
else
|
|
crit "$SERVICE_NAME is disabled"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# This function will be called if the script status is on enabled mode
|
|
apply() {
|
|
is_pkg_installed "$PACKAGE"
|
|
if [ "$FNRET" != 0 ]; then
|
|
crit "$PACKAGE is not installed!"
|
|
else
|
|
info "Checking if $SERVICE_NAME is enabled"
|
|
is_service_enabled "$SERVICE_NAME"
|
|
if [ "$FNRET" != 0 ]; then
|
|
info "Enabling $SERVICE_NAME"
|
|
manage_service enable "$SERVICE_NAME" >/dev/null 2>&1
|
|
else
|
|
ok "$SERVICE_NAME is enabled"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# This function will check config parameters required
|
|
check_config() {
|
|
:
|
|
}
|
|
|
|
# Source Root Dir Parameter
|
|
if [ -r /etc/default/cis-hardening ]; then
|
|
# shellcheck source=../../debian/default
|
|
. /etc/default/cis-hardening
|
|
fi
|
|
if [ -z "$CIS_LIB_DIR" ]; then
|
|
echo "There is no /etc/default/cis-hardening file nor cis-hardening directory in current environment."
|
|
echo "Cannot source CIS_LIB_DIR variable, aborting."
|
|
exit 128
|
|
fi
|
|
|
|
# Main function, will call the proper functions given the configuration (audit, enabled, disabled)
|
|
if [ -r "${CIS_LIB_DIR}"/main.sh ]; then
|
|
# shellcheck source=../../lib/main.sh
|
|
. "${CIS_LIB_DIR}"/main.sh
|
|
else
|
|
echo "Cannot find main.sh, have you correctly defined your root directory? Current value is $CIS_LIB_DIR in /etc/default/cis-hardening"
|
|
exit 128
|
|
fi
|