Update application to use environment variables and force IPv4

Modify syslog_parser.py to load environment variables from .env file and force IPv4 connection to the database. Update replit.md to reflect recent fixes and workflow changes. Increment version in version.json.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 7a657272-55ba-4a79-9a2e-f1ed9bc7a528
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 727221f9-ad54-4498-b2e4-e87a951b4308
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/449cf7c4-c97a-45ae-8234-e5c5b8d6a84f/7a657272-55ba-4a79-9a2e-f1ed9bc7a528/c9ITWqD
This commit is contained in:
marco370 2025-11-17 16:48:22 +00:00
parent 7b6fc148a5
commit 62c3a2b238
5 changed files with 38 additions and 5 deletions

View File

@ -1,5 +1,6 @@
# Database PostgreSQL
PGHOST=localhost
# IMPORTANTE: Usa 127.0.0.1 invece di localhost per forzare IPv4 (evita problemi con ::1)
PGHOST=127.0.0.1
PGPORT=5432
PGDATABASE=ids_database
PGUSER=ids_user

View File

@ -14,6 +14,10 @@ run = ["npm", "run", "start"]
localPort = 5000
externalPort = 80
[[ports]]
localPort = 42789
externalPort = 3000
[env]
PORT = "5000"

View File

@ -183,9 +183,13 @@ class SyslogParser:
def main():
"""Main entry point"""
# Carica variabili d'ambiente da .env
load_dotenv("/opt/ids/.env")
# Configurazione database da environment
# IMPORTANTE: Usa 127.0.0.1 invece di localhost per forzare IPv4
db_config = {
'host': os.getenv('PGHOST', 'localhost'),
'host': os.getenv('PGHOST', '127.0.0.1'),
'port': os.getenv('PGPORT', '5432'),
'database': os.getenv('PGDATABASE', 'ids_database'),
'user': os.getenv('PGUSER', 'ids_user'),

View File

@ -36,11 +36,29 @@ Sistema di rilevamento intrusioni per router MikroTik basato su Machine Learning
## Workflow
1. **Log Collection**: Router → Syslog → PostgreSQL `network_logs`
1. **Log Collection**: Router → Syslog (UDP:514) → RSyslog → syslog_parser.py → PostgreSQL `network_logs`
2. **Training**: Python ML estrae 25 feature → Isolation Forest
3. **Detection**: Analisi real-time → Scoring 0-100 → Classificazione
4. **Auto-Block**: IP critico (>=80) → API REST → Tutti i router (parallelo)
## Fix Recenti (Novembre 2025)
### PostgreSQL Authentication Fix
- **Problema**: Password authentication failed (SCRAM-SHA-256 vs MD5)
- **Soluzione**: `deployment/fix_postgresql_auth.sh` configura SCRAM-SHA-256 in pg_hba.conf
- **Password encryption**: ALTER SYSTEM SET password_encryption = 'scram-sha-256'
- **Utente ricreato**: DROP + CREATE con formato SCRAM corretto
### IPv4 Force Fix
- **Problema**: syslog_parser si connetteva a ::1 (IPv6) invece di 127.0.0.1 (IPv4)
- **Soluzione**: PGHOST=127.0.0.1 in .env (NON usare localhost)
- **Parser**: load_dotenv() carica .env automaticamente
### Git Ownership Fix
- **Problema**: dubious ownership error in /opt/ids
- **Soluzione**: `deployment/fix_git_ownership.sh` aggiunge safe.directory
- **Update script**: `deployment/update_from_git.sh` ora esegue git come utente ids
## File Importanti
### Python ML Backend

View File

@ -1,7 +1,13 @@
{
"version": "1.0.4",
"lastUpdate": "2025-11-17T16:05:06.972Z",
"version": "1.0.5",
"lastUpdate": "2025-11-17T16:47:34.637Z",
"changelog": [
{
"version": "1.0.5",
"date": "2025-11-17",
"type": "patch",
"description": "Deployment automatico v1.0.5"
},
{
"version": "1.0.4",
"date": "2025-11-17",