96 lines
2.5 KiB
Bash
96 lines
2.5 KiB
Bash
#!/bin/bash
|
|
# =============================================================================
|
|
# Linux Security Hardening Script for Debian/Ubuntu
|
|
# =============================================================================
|
|
|
|
# Script version
|
|
VERSION="1.0.0"
|
|
|
|
# Set script directory
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
# Source common functions and variables
|
|
source "$SCRIPT_DIR/common.sh"
|
|
|
|
# Ensure the script is run as root
|
|
if [ "$EUID" -ne 0 ]; then
|
|
echo " * This script must be run with sudo privileges."
|
|
echo " * Please run it again using: sudo $0"
|
|
echo
|
|
|
|
exit 1
|
|
fi
|
|
|
|
# Check if the system is Debian or Ubuntu
|
|
if ! grep -q -E "Debian|Ubuntu" /etc/issue && ! grep -q -E "Debian|Ubuntu" /etc/os-release; then
|
|
echo "This script is designed for Debian or Ubuntu systems only."
|
|
|
|
exit 1
|
|
fi
|
|
|
|
# Create necessary directories
|
|
create_directories
|
|
|
|
# Display banner
|
|
display_banner
|
|
|
|
# Display OS information
|
|
display_os_info
|
|
|
|
# Main execution
|
|
log_message "INFO" "Starting security hardening process"
|
|
|
|
# Initialize progress
|
|
TOTAL_STEPS=14
|
|
CURRENT_STEP=0
|
|
|
|
# Update and configure package management
|
|
$SCRIPT_DIR/modules/package_management.sh "Configuring package management"
|
|
|
|
# Configure SSH
|
|
$SCRIPT_DIR/modules/ssh_hardening.sh "Hardening SSH configuration"
|
|
|
|
# Configure firewall
|
|
$SCRIPT_DIR/modules/firewall.sh "Configuring firewall rules"
|
|
|
|
# Setup fail2ban
|
|
$SCRIPT_DIR/modules/fail2ban.sh "Setting up fail2ban"
|
|
|
|
# Configure system auditing
|
|
$SCRIPT_DIR/modules/auditing.sh "Configuring system auditing"
|
|
|
|
# Setup DNS
|
|
$SCRIPT_DIR/modules/dns_config.sh "Configuring DNS settings"
|
|
|
|
# Configure NTP
|
|
$SCRIPT_DIR/modules/ntp.sh "Configuring NTP"
|
|
|
|
# Setup automatic updates
|
|
$SCRIPT_DIR/modules/auto_updates.sh "Setting up automatic updates"
|
|
|
|
# Install and configure ClamAV
|
|
$SCRIPT_DIR/modules/antivirus.sh "Installing and configuring ClamAV"
|
|
|
|
# Setup custom prompt
|
|
$SCRIPT_DIR/modules/custom_prompt.sh "Setting up custom system prompt"
|
|
|
|
# Install GLPI agent
|
|
$SCRIPT_DIR/modules/glpi_agent.sh "Installing GLPI agent"
|
|
|
|
# Install Wazuh agent
|
|
$SCRIPT_DIR/modules/wazuh_agent.sh "Installing Wazuh agent"
|
|
|
|
# Setup monitoring (SNMP and NRPE)
|
|
$SCRIPT_DIR/modules/monitoring.sh "Setting up monitoring services"
|
|
|
|
# Apply additional security measures
|
|
$SCRIPT_DIR/modules/additional_hardening.sh "Applying additional security measures"
|
|
|
|
# Display completion message
|
|
echo
|
|
log_message "SUCCESS" "Security hardening completed successfully!"
|
|
echo "Log file available at: $LOG_FILE"
|
|
echo "System backup files stored at: $BACKUP_DIR"
|
|
echo
|
|
|
|
exit 0 |