ids.alfacom.it/deployment/setup_almalinux.sh
Marco Lanzara 2041d3926f 🚀 Release v1.0.23
- Tipo: patch
- Database schema: database-schema/schema.sql (solo struttura)
- Data: 2025-11-21 15:45:57
2025-11-21 15:45:57 +00:00

96 lines
3.4 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Script di installazione IDS su AlmaLinux 9
# Eseguire con: chmod +x setup_almalinux.sh && sudo ./setup_almalinux.sh
# Colori per output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
echo -e "${BLUE}🛡️ INSTALLAZIONE IDS - INTRUSION DETECTION SYSTEM${NC}"
echo "===================================================="
# Verifica esecuzione come root
if [ "$EUID" -ne 0 ]; then
echo -e "${RED}❌ Esegui questo script come root (sudo)${NC}"
exit 1
fi
# 1. Aggiorna sistema
echo -e "\n${BLUE}📦 Aggiornamento sistema AlmaLinux 9...${NC}"
dnf update -y
# 2. Installa dipendenze sistema
echo -e "\n${BLUE}📦 Installazione dipendenze sistema...${NC}"
dnf install -y epel-release
dnf install -y python3.11 python3.11-pip nodejs npm postgresql-server postgresql-contrib git
# 3. Installa Node.js 20 (LTS)
echo -e "\n${BLUE}📦 Installazione Node.js 20...${NC}"
dnf module reset nodejs -y
dnf module enable nodejs:20 -y
dnf install -y nodejs
# 4. Inizializza PostgreSQL
echo -e "\n${BLUE}🗄️ Inizializzazione PostgreSQL...${NC}"
if [ ! -d "/var/lib/pgsql/data/base" ]; then
postgresql-setup --initdb
systemctl enable postgresql
systemctl start postgresql
echo -e "${GREEN}✅ PostgreSQL inizializzato${NC}"
else
echo -e "${YELLOW} PostgreSQL già inizializzato${NC}"
fi
# 5. Configura PostgreSQL
echo -e "\n${BLUE}🔧 Configurazione PostgreSQL...${NC}"
sudo -u postgres psql -c "CREATE DATABASE ids_database;" 2>/dev/null || echo "Database già esistente"
sudo -u postgres psql -c "CREATE USER ids_user WITH PASSWORD 'ids_password_change_me';" 2>/dev/null || echo "Utente già esistente"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE ids_database TO ids_user;" 2>/dev/null
# Configura pg_hba.conf per connessioni locali
PG_HBA="/var/lib/pgsql/data/pg_hba.conf"
if ! grep -q "ids_user" "$PG_HBA"; then
echo "local ids_database ids_user md5" >> "$PG_HBA"
echo "host ids_database ids_user 127.0.0.1/32 md5" >> "$PG_HBA"
systemctl restart postgresql
fi
# 6. Crea utente IDS
echo -e "\n${BLUE}👤 Creazione utente ids...${NC}"
if ! id "ids" &>/dev/null; then
useradd -m -s /bin/bash ids
echo -e "${GREEN}✅ Utente ids creato${NC}"
else
echo -e "${YELLOW} Utente ids già esistente${NC}"
fi
# 7. Crea directory di lavoro
echo -e "\n${BLUE}📁 Creazione directory di lavoro...${NC}"
mkdir -p /opt/ids
chown -R ids:ids /opt/ids
echo -e "\n${GREEN}✅ INSTALLAZIONE BASE COMPLETATA!${NC}"
echo ""
echo -e "${YELLOW}📋 PROSSIMI PASSI:${NC}"
echo -e " 1. Clona il repository da git.alfacom.it:"
echo -e " ${BLUE}cd /opt/ids${NC}"
echo -e " ${BLUE}sudo -u ids git clone https://git.alfacom.it/your-repo/ids.git .${NC}"
echo ""
echo -e " 2. Configura environment variables:"
echo -e " ${BLUE}sudo -u ids nano /opt/ids/.env${NC}"
echo ""
echo -e " 3. Installa dipendenze Node.js:"
echo -e " ${BLUE}cd /opt/ids && sudo -u ids npm install${NC}"
echo ""
echo -e " 4. Installa dipendenze Python:"
echo -e " ${BLUE}cd /opt/ids/python_ml && sudo -u ids pip3.11 install -r requirements.txt${NC}"
echo ""
echo -e " 5. Esegui lo script di configurazione crontab:"
echo -e " ${BLUE}cd /opt/ids/deployment && sudo ./setup_crontab.sh${NC}"
echo ""
echo -e "${GREEN}🎉 Sistema pronto per il deployment!${NC}"