Sicurezza
Il centro sicurezza protegge il centralino da tentativi di accesso non autorizzati: blocco automatico degli indirizzi sospetti, restrizioni geografiche, elenco degli indirizzi fidati e registro degli eventi.
Per le aziende
GET /v1/security/summary (scope extensions:read) riepiloga i tentativi di accesso bloccati nelle ultime ore, interno per interno: utile per individuare credenziali SIP esposte o telefoni configurati male.
curl -s https://centralino.exovoip.it/api/v1/security/summary -H "X-API-Key: $EXOPBX_API_KEY"const summary = await pbx.security.summary(); // tentativi bloccati per interno$summary = $pbx->security->summary();summary = pbx.security.summary()Per la piattaforma
Gli altri endpoint sono riservati alle chiavi globali (scope security:read / security:write):
| Funzione | Endpoint |
|---|---|
| Stato generale (protezioni attive, indirizzi bloccati, tentativi per ora e per paese) | GET /v1/security/status |
| Indirizzi bloccati, blocco e sblocco manuale | GET/POST /v1/security/bans, POST /v1/security/bans/unban |
| Regole di blocco automatico (tentativi, finestra, durata) | GET /v1/security/jails, PUT /v1/security/jails/:name |
| Restrizioni geografiche per servizio (SIP, WebRTC, pannello, API, SSH) | GET /v1/security/geo, PUT /v1/security/geo/:service |
| Indirizzi fidati (mai bloccati), anche per singola azienda o interno | GET/POST /v1/security/whitelist, DELETE /v1/security/whitelist/:id |
| Impostazioni e registro eventi | GET/PUT /v1/security/settings, GET /v1/security/logs |
| Verifica delle linee (sovrapposizione di reti) | GET /v1/trunks/approvals, POST /v1/trunks/:id/approve, POST /v1/trunks/:id/reject |
curl -s https://centralino.exovoip.it/api/v1/security/status -H "X-API-Key: $EXOPBX_API_KEY"
curl -s -X POST https://centralino.exovoip.it/api/v1/security/bans -H "X-API-Key: $EXOPBX_API_KEY" \
-H "Content-Type: application/json" -d '{"ip":"203.0.113.10","durationS":3600,"reason":"manual"}'
curl -s -X POST https://centralino.exovoip.it/api/v1/security/bans/unban -H "X-API-Key: $EXOPBX_API_KEY" \
-H "Content-Type: application/json" -d '{"ip":"203.0.113.10"}'
curl -s -X POST https://centralino.exovoip.it/api/v1/security/whitelist -H "X-API-Key: $EXOPBX_API_KEY" \
-H "Content-Type: application/json" -d '{"cidr":"198.51.100.0/24","label":"Sede Acme","tenantId":3}'const status = await pbx.security.status();
await pbx.security.ban({ ip: '203.0.113.10', durationS: 3600, reason: 'manual' });
await pbx.security.unban({ ip: '203.0.113.10' });
await pbx.security.addWhitelist({ cidr: '198.51.100.0/24', label: 'Sede Acme', tenantId: 3 });$status = $pbx->security->status();
$pbx->security->ban(['ip' => '203.0.113.10', 'durationS' => 3600, 'reason' => 'manual']);
$pbx->security->unban(['ip' => '203.0.113.10']);
$pbx->security->addWhitelist(['cidr' => '198.51.100.0/24', 'label' => 'Sede Acme', 'tenantId' => 3]);status = pbx.security.status()
pbx.security.ban({"ip": "203.0.113.10", "durationS": 3600, "reason": "manual"})
pbx.security.unban({"ip": "203.0.113.10"})
pbx.security.add_whitelist({"cidr": "198.51.100.0/24", "label": "Sede Acme", "tenantId": 3})Le chiavi API possono a loro volta essere limitate per indirizzo IP: vedi Autenticazione.
Endpoint
| Descrizione | Richiesta | Scope | Metodo SDK |
|---|---|---|---|
| Riepilogo tentativi bloccati sugli interni dell’azienda | GET /v1/security/summary | extensions:read | security.summary() |
| Stato fail2ban/nftables/GeoIP e contatori | GET /v1/security/status | security:read | security.status() |
| IP bannati | GET /v1/security/bans | security:read | security.bans() |
| Ban manuale IP/subnet | POST /v1/security/bans | security:write | security.ban() |
| Sblocca IP | POST /v1/security/bans/unban | security:write | security.unban() |
| Parametri jail | GET /v1/security/jails | security:read | security.jails() |
| Modifica jail | PUT /v1/security/jails/:name | security:write | security.updateJail() · py: security.update_jail() |
| Paesi consentiti per servizio | GET /v1/security/geo | security:read | security.geo() |
| Modifica paesi consentiti | PUT /v1/security/geo/:service | security:write | security.updateGeo() · py: security.update_geo() |
| Whitelist | GET /v1/security/whitelist | security:read | security.whitelist() |
| Aggiunge eccezione (IP/rete o paese, anche temporanea) | POST /v1/security/whitelist | security:write | security.addWhitelist() · py: security.add_whitelist() |
| Rimuove eccezione | DELETE /v1/security/whitelist/:id | security:write | security.deleteWhitelist() · py: security.delete_whitelist() |
| Rate limit SIP, User-Agent bloccati, alert | GET /v1/security/settings | security:read | security.getSettings() · py: security.get_settings() |
| Modifica impostazioni sicurezza | PUT /v1/security/settings | security:write | security.setSettings() · py: security.set_settings() |
| Log sicurezza filtrabili | GET /v1/security/logs | security:read | security.logs() |
