ExoVoIPManuale sviluppatori

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"

Per la piattaforma

Gli altri endpoint sono riservati alle chiavi globali (scope security:read / security:write):

FunzioneEndpoint
Stato generale (protezioni attive, indirizzi bloccati, tentativi per ora e per paese)GET /v1/security/status
Indirizzi bloccati, blocco e sblocco manualeGET/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 internoGET/POST /v1/security/whitelist, DELETE /v1/security/whitelist/:id
Impostazioni e registro eventiGET/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}'

Le chiavi API possono a loro volta essere limitate per indirizzo IP: vedi Autenticazione.

Endpoint

DescrizioneRichiestaScopeMetodo SDK
Riepilogo tentativi bloccati sugli interni dell’aziendaGET /v1/security/summaryextensions:readsecurity.summary()
Stato fail2ban/nftables/GeoIP e contatoriGET /v1/security/statussecurity:readsecurity.status()
IP bannatiGET /v1/security/banssecurity:readsecurity.bans()
Ban manuale IP/subnetPOST /v1/security/banssecurity:writesecurity.ban()
Sblocca IPPOST /v1/security/bans/unbansecurity:writesecurity.unban()
Parametri jailGET /v1/security/jailssecurity:readsecurity.jails()
Modifica jailPUT /v1/security/jails/:namesecurity:writesecurity.updateJail() · py: security.update_jail()
Paesi consentiti per servizioGET /v1/security/geosecurity:readsecurity.geo()
Modifica paesi consentitiPUT /v1/security/geo/:servicesecurity:writesecurity.updateGeo() · py: security.update_geo()
WhitelistGET /v1/security/whitelistsecurity:readsecurity.whitelist()
Aggiunge eccezione (IP/rete o paese, anche temporanea)POST /v1/security/whitelistsecurity:writesecurity.addWhitelist() · py: security.add_whitelist()
Rimuove eccezioneDELETE /v1/security/whitelist/:idsecurity:writesecurity.deleteWhitelist() · py: security.delete_whitelist()
Rate limit SIP, User-Agent bloccati, alertGET /v1/security/settingssecurity:readsecurity.getSettings() · py: security.get_settings()
Modifica impostazioni sicurezzaPUT /v1/security/settingssecurity:writesecurity.setSettings() · py: security.set_settings()
Log sicurezza filtrabiliGET /v1/security/logssecurity:readsecurity.logs()