🚀 Release v1.0.3
- Tipo: patch - Database backup: database-backups/ids_v1.0.3_20251117_160011.sql.gz - Data: 2025-11-17 16:00:18
This commit is contained in:
parent
f356181ada
commit
a367bb8f7b
4
.replit
4
.replit
@ -14,10 +14,6 @@ run = ["npm", "run", "start"]
|
||||
localPort = 5000
|
||||
externalPort = 80
|
||||
|
||||
[[ports]]
|
||||
localPort = 44261
|
||||
externalPort = 3000
|
||||
|
||||
[env]
|
||||
PORT = "5000"
|
||||
|
||||
|
||||
@ -213,6 +213,25 @@ sudo -u ids npm run db:push
|
||||
|
||||
Questo crea tutte le tabelle nel database PostgreSQL.
|
||||
|
||||
### Step 12b: FIX Autenticazione PostgreSQL ⚠️ **IMPORTANTE**
|
||||
|
||||
PostgreSQL di default usa autenticazione "ident" che non funziona con password. Dobbiamo cambiarla:
|
||||
|
||||
```bash
|
||||
cd /opt/ids/deployment
|
||||
chmod +x fix_postgresql_auth.sh
|
||||
./fix_postgresql_auth.sh
|
||||
```
|
||||
|
||||
Questo script:
|
||||
- ✅ Cambia autenticazione da `ident` a `scram-sha-256` (password-based)
|
||||
- ✅ Fa backup della configurazione originale
|
||||
- ✅ Ricarica PostgreSQL
|
||||
- ✅ Testa la connessione
|
||||
|
||||
**Verifica output:**
|
||||
Dovresti vedere: `✅ Connessione RIUSCITA!`
|
||||
|
||||
---
|
||||
|
||||
## 📡 PARTE 4: Configurazione Raccolta Log Router
|
||||
|
||||
167
deployment/RISOLUZIONE_ERRORE_POSTGRESQL.md
Normal file
167
deployment/RISOLUZIONE_ERRORE_POSTGRESQL.md
Normal file
@ -0,0 +1,167 @@
|
||||
# 🔧 Risoluzione Errore PostgreSQL
|
||||
|
||||
## Errore Riscontrato
|
||||
|
||||
```
|
||||
psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed:
|
||||
FATAL: Ident authentication failed for user "ids_user"
|
||||
```
|
||||
|
||||
## Causa
|
||||
|
||||
PostgreSQL su AlmaLinux 9 di default usa autenticazione **"ident"** invece di password. Python (psycopg2) non può connettersi con password.
|
||||
|
||||
## Soluzione (3 minuti)
|
||||
|
||||
### Step 1: Esegui Script di Fix
|
||||
|
||||
```bash
|
||||
cd /opt/ids/deployment
|
||||
chmod +x fix_postgresql_auth.sh
|
||||
./fix_postgresql_auth.sh
|
||||
```
|
||||
|
||||
**Output atteso:**
|
||||
```
|
||||
╔═══════════════════════════════════════════════╗
|
||||
║ PostgreSQL Authentication Fix ║
|
||||
╚═══════════════════════════════════════════════╝
|
||||
|
||||
📂 File pg_hba.conf: /var/lib/pgsql/data/pg_hba.conf
|
||||
|
||||
💾 Backup configurazione...
|
||||
✅ Backup salvato: /var/lib/pgsql/data/pg_hba.conf.backup_20250117_123456
|
||||
|
||||
📋 Configurazione ATTUALE:
|
||||
local all all ident
|
||||
host all all 127.0.0.1/32 ident
|
||||
host all all ::1/128 ident
|
||||
|
||||
🔧 Modifico pg_hba.conf...
|
||||
✅ Configurazione modificata
|
||||
|
||||
📋 Configurazione NUOVA:
|
||||
local all all scram-sha-256
|
||||
host all all 127.0.0.1/32 scram-sha-256
|
||||
host all all ::1/128 scram-sha-256
|
||||
|
||||
🔄 Ricarico configurazione PostgreSQL...
|
||||
✅ PostgreSQL ricaricato
|
||||
|
||||
🧪 Test connessione con password...
|
||||
✅ Connessione RIUSCITA!
|
||||
PostgreSQL ora accetta autenticazione con password
|
||||
|
||||
╔═══════════════════════════════════════════════╗
|
||||
║ ✅ FIX COMPLETATO ║
|
||||
╚═══════════════════════════════════════════════╝
|
||||
```
|
||||
|
||||
### Step 2: Riavvia Syslog Parser
|
||||
|
||||
```bash
|
||||
# Stop processo esistente
|
||||
pkill -f syslog_parser
|
||||
|
||||
# Avvia nuovamente
|
||||
cd /opt/ids/python_ml
|
||||
sudo -u ids nohup python3.11 syslog_parser.py > /var/log/ids/syslog_parser.log 2>&1 &
|
||||
```
|
||||
|
||||
### Step 3: Verifica Funzionamento
|
||||
|
||||
```bash
|
||||
# Verifica processo attivo
|
||||
ps aux | grep syslog_parser
|
||||
|
||||
# Monitora log (NON dovrebbero esserci più errori)
|
||||
tail -f /var/log/ids/syslog_parser.log
|
||||
```
|
||||
|
||||
**Output atteso:**
|
||||
```
|
||||
2025-01-17 12:34:56 - INFO - Syslog Parser avviato
|
||||
2025-01-17 12:34:56 - INFO - Connessione database riuscita
|
||||
2025-01-17 12:34:56 - INFO - In ascolto su /var/log/mikrotik/raw.log
|
||||
2025-01-17 12:34:57 - INFO - Log processato: 192.168.1.1 → 8.8.8.8:53
|
||||
```
|
||||
|
||||
### Step 4: Verifica Database Si Popola
|
||||
|
||||
```bash
|
||||
# Conta log nel database
|
||||
psql -U ids_user -d ids_database -c "SELECT COUNT(*) FROM network_logs;"
|
||||
|
||||
# Mostra ultimi 5 log
|
||||
psql -U ids_user -d ids_database -c "SELECT * FROM network_logs ORDER BY timestamp DESC LIMIT 5;"
|
||||
```
|
||||
|
||||
## Cosa Fa lo Script
|
||||
|
||||
1. **Trova pg_hba.conf** automaticamente
|
||||
2. **Backup** configurazione originale
|
||||
3. **Modifica** autenticazione:
|
||||
- `ident` → `scram-sha-256` (password-based)
|
||||
4. **Ricarica** PostgreSQL (senza restart)
|
||||
5. **Testa** connessione con password da `.env`
|
||||
|
||||
## Verifica Manuale (Opzionale)
|
||||
|
||||
Se vuoi verificare manualmente:
|
||||
|
||||
```bash
|
||||
# Test connessione PostgreSQL con password
|
||||
psql -h localhost -U ids_user -d ids_database -c "SELECT 1;"
|
||||
|
||||
# Se richiede password, inserisci quella in /opt/ids/.env (PGPASSWORD)
|
||||
```
|
||||
|
||||
## Rollback (Se Necessario)
|
||||
|
||||
Se qualcosa va storto, ripristina backup:
|
||||
|
||||
```bash
|
||||
# Lista backup disponibili
|
||||
ls -la /var/lib/pgsql/data/pg_hba.conf.backup_*
|
||||
|
||||
# Ripristina ultimo backup
|
||||
ULTIMO_BACKUP=$(ls -t /var/lib/pgsql/data/pg_hba.conf.backup_* | head -1)
|
||||
cp "$ULTIMO_BACKUP" /var/lib/pgsql/data/pg_hba.conf
|
||||
|
||||
# Ricarica PostgreSQL
|
||||
systemctl reload postgresql
|
||||
```
|
||||
|
||||
## Note Tecniche
|
||||
|
||||
**File modificato:**
|
||||
- `/var/lib/pgsql/data/pg_hba.conf` (su AlmaLinux 9)
|
||||
- `/etc/postgresql/15/main/pg_hba.conf` (su Debian/Ubuntu)
|
||||
|
||||
**Modifiche effettuate:**
|
||||
```diff
|
||||
- local all all ident
|
||||
+ local all all scram-sha-256
|
||||
|
||||
- host all all 127.0.0.1/32 ident
|
||||
+ host all all 127.0.0.1/32 scram-sha-256
|
||||
|
||||
- host all all ::1/128 ident
|
||||
+ host all all ::1/128 scram-sha-256
|
||||
```
|
||||
|
||||
**Metodi autenticazione PostgreSQL:**
|
||||
- `ident`: Usa nome utente sistema operativo (non password)
|
||||
- `md5`: Password MD5 hash (deprecato)
|
||||
- `scram-sha-256`: Password SHA-256 hash (✅ raccomandato, sicuro)
|
||||
|
||||
## Prevenzione Futura
|
||||
|
||||
Questo fix è **già incluso** nella guida aggiornata:
|
||||
- `deployment/INSTALLAZIONE_STEP_BY_STEP.md` → Step 12b
|
||||
|
||||
Nuove installazioni non avranno questo problema.
|
||||
|
||||
---
|
||||
|
||||
**Problema risolto! 🎉**
|
||||
108
deployment/fix_postgresql_auth.sh
Executable file
108
deployment/fix_postgresql_auth.sh
Executable file
@ -0,0 +1,108 @@
|
||||
#!/bin/bash
|
||||
|
||||
# =============================================================================
|
||||
# IDS - Fix PostgreSQL Authentication
|
||||
# =============================================================================
|
||||
# Risolve errore: "Ident authentication failed for user ids_user"
|
||||
# Cambia autenticazione da 'ident' a 'scram-sha-256' (password-based)
|
||||
# =============================================================================
|
||||
|
||||
set -e
|
||||
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m'
|
||||
|
||||
echo -e "${BLUE}"
|
||||
echo "╔═══════════════════════════════════════════════╗"
|
||||
echo "║ PostgreSQL Authentication Fix ║"
|
||||
echo "╚═══════════════════════════════════════════════╝"
|
||||
echo -e "${NC}"
|
||||
|
||||
# Trova pg_hba.conf
|
||||
PG_HBA_CONF=$(sudo -u postgres psql -t -P format=unaligned -c 'SHOW hba_file;')
|
||||
|
||||
if [ -z "$PG_HBA_CONF" ]; then
|
||||
echo -e "${RED}❌ Impossibile trovare pg_hba.conf${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "${BLUE}📂 File pg_hba.conf: ${PG_HBA_CONF}${NC}"
|
||||
echo ""
|
||||
|
||||
# Backup originale
|
||||
BACKUP_FILE="${PG_HBA_CONF}.backup_$(date +%Y%m%d_%H%M%S)"
|
||||
echo -e "${YELLOW}💾 Backup configurazione...${NC}"
|
||||
cp "$PG_HBA_CONF" "$BACKUP_FILE"
|
||||
echo -e "${GREEN}✅ Backup salvato: ${BACKUP_FILE}${NC}"
|
||||
echo ""
|
||||
|
||||
# Mostra configurazione attuale
|
||||
echo -e "${BLUE}📋 Configurazione ATTUALE:${NC}"
|
||||
grep -v "^#" "$PG_HBA_CONF" | grep -v "^$" | head -10
|
||||
echo ""
|
||||
|
||||
# Modifica pg_hba.conf
|
||||
echo -e "${YELLOW}🔧 Modifico pg_hba.conf...${NC}"
|
||||
|
||||
# Cambia tutte le occorrenze di 'ident' in 'scram-sha-256' per connessioni locali
|
||||
sed -i.bak \
|
||||
-e 's/^\(local\s\+all\s\+all\s\+\)ident$/\1scram-sha-256/' \
|
||||
-e 's/^\(host\s\+all\s\+all\s\+127\.0\.0\.1\/32\s\+\)ident$/\1scram-sha-256/' \
|
||||
-e 's/^\(host\s\+all\s\+all\s\+::1\/128\s\+\)ident$/\1scram-sha-256/' \
|
||||
"$PG_HBA_CONF"
|
||||
|
||||
echo -e "${GREEN}✅ Configurazione modificata${NC}"
|
||||
echo ""
|
||||
|
||||
# Mostra nuova configurazione
|
||||
echo -e "${BLUE}📋 Configurazione NUOVA:${NC}"
|
||||
grep -v "^#" "$PG_HBA_CONF" | grep -v "^$" | head -10
|
||||
echo ""
|
||||
|
||||
# Reload PostgreSQL
|
||||
echo -e "${YELLOW}🔄 Ricarico configurazione PostgreSQL...${NC}"
|
||||
systemctl reload postgresql
|
||||
|
||||
echo -e "${GREEN}✅ PostgreSQL ricaricato${NC}"
|
||||
echo ""
|
||||
|
||||
# Test connessione
|
||||
echo -e "${BLUE}🧪 Test connessione con password...${NC}"
|
||||
|
||||
# Leggi password da .env se esiste
|
||||
if [ -f "/opt/ids/.env" ]; then
|
||||
PGPASSWORD=$(grep "^PGPASSWORD=" /opt/ids/.env | cut -d'=' -f2)
|
||||
export PGPASSWORD
|
||||
|
||||
if psql -h localhost -U ids_user -d ids_database -c "SELECT 1;" > /dev/null 2>&1; then
|
||||
echo -e "${GREEN}✅ Connessione RIUSCITA!${NC}"
|
||||
echo -e "${GREEN} PostgreSQL ora accetta autenticazione con password${NC}"
|
||||
else
|
||||
echo -e "${RED}❌ Connessione FALLITA${NC}"
|
||||
echo -e "${YELLOW} Verifica password in /opt/ids/.env${NC}"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo -e "${YELLOW}⚠️ File .env non trovato, salto test connessione${NC}"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo -e "${GREEN}╔═══════════════════════════════════════════════╗${NC}"
|
||||
echo -e "${GREEN}║ ✅ FIX COMPLETATO ║${NC}"
|
||||
echo -e "${GREEN}╚═══════════════════════════════════════════════╝${NC}"
|
||||
echo ""
|
||||
echo "Modifiche effettuate:"
|
||||
echo " • Autenticazione cambiata: ident → scram-sha-256"
|
||||
echo " • Backup salvato: $BACKUP_FILE"
|
||||
echo " • PostgreSQL ricaricato"
|
||||
echo ""
|
||||
echo "Ora riavvia syslog_parser.py:"
|
||||
echo " pkill -f syslog_parser"
|
||||
echo " cd /opt/ids/python_ml"
|
||||
echo " sudo -u ids nohup python3.11 syslog_parser.py > /var/log/ids/syslog_parser.log 2>&1 &"
|
||||
echo ""
|
||||
|
||||
exit 0
|
||||
10
version.json
10
version.json
@ -1,7 +1,13 @@
|
||||
{
|
||||
"version": "1.0.2",
|
||||
"lastUpdate": "2025-11-17T08:49:16.297Z",
|
||||
"version": "1.0.3",
|
||||
"lastUpdate": "2025-11-17T16:00:18.653Z",
|
||||
"changelog": [
|
||||
{
|
||||
"version": "1.0.3",
|
||||
"date": "2025-11-17",
|
||||
"type": "patch",
|
||||
"description": "Deployment automatico v1.0.3"
|
||||
},
|
||||
{
|
||||
"version": "1.0.2",
|
||||
"date": "2025-11-17",
|
||||
|
||||
Loading…
Reference in New Issue
Block a user