Torna al monitor canali

Strumenti per amministratori

TWI-CWcom Server Observer Fix

v1.0

Estensione indipendente · non ufficiale

Scarica Server Observer Fix v1.0 (.ZIP)

Gli observer TWI-SCOPE sono connessioni tecniche usate da TWI-CWcom per ascoltare più canali Morse contemporaneamente, separate dalla connessione principale dell’operatore.

KOBServer può registrarli come normali stazioni e mostrarli nella directory pubblica e nei nuovi eventi del registro. Alcuni observer cambiano canale conservando l’identificativo precedente: il suffisso non descrive sempre il canale attuale.

Il fix esclude soltanto i nominativi tecnici conformi dalle pagine pubbliche. Le sessioni restano attive internamente, continuano a ricevere Morse e a contribuire al rilevamento degli ascoltatori dei feed. La connessione principale con nominativo dell’operatore rimane visibile, se non usa il formato tecnico.

Non è un aggiornamento ufficiale di KOBServer, CWCOM o MorseKOB e non implica approvazione degli autori upstream.

Compatibilità

KOBServer 6.5.3: soltanto due varianti di bytes verificate.

Sono supportate una precisa variante legacy con terminatori CRLF e la stessa identica variante convertita in LF. Altre copie che dichiarano 6.5.3 possono essere incompatibili. L’installer controlla sia VERSION sia SHA256 e rifiuta sorgenti sconosciuti, modificati o versioni diverse, inclusa 6.5.7. Nessuna compatibilità universale e nessuna opzione --force.

KOBServer 6.5.3 · CRLF

SHA256 dell’originale ammesso

810586a17e44e35ec4aac2fc624540937b6727b4154d011d3a8fb63fc509b46d
KOBServer 6.5.3 · LF

SHA256 dell’originale ammesso

2a3c4c0a28778bb67739681dab489fa3b30ef2f9fbd483ba89c0b2ffed7e6e18

Prerequisiti

  • Accesso amministrativo e permessi per modificare il sorgente e gestire il solo relay.
  • Linux/POSIX e Python 3.10 o superiore; distribuzione collaudata con Python 3.13. Sola libreria standard, nessuna dipendenza pip.
  • Accesso al vero file KOBServer.py, o al sorgente equivalente effettivamente avviato.
  • Conoscenza di interprete, UID/GID runtime, porta, DocumentRoot e servizio o altro meccanismo che avvia il relay.
  • Possibilità di creare backup privati e verificarne il ripristino. Filesystem locale con flock, fsync e rename atomico.
  • Sorgente, config, audit e backup fuori dalla webroot e da ogni alias HTTP. Il genitore della directory backup deve esistere.

Guida passo passo

Questi comandi provengono dai README e dall’interfaccia verificata di install.py nel pacchetto v1.0. Sono esempi per altri amministratori, non istruzioni con i percorsi del nostro VPS. Non vengono eseguiti dalla pagina.

  1. Scarica ed estrai

    Dal browser del tuo PC scarica lo ZIP qui sotto. Estrai l’archivio con il gestore archivi del tuo sistema e trasferisci la cartella estratta sul server, in una posizione privata a tua scelta. Non estrarre nella directory pubblica del sito.

  2. Verifica integrità e compatibilità

    Apri il terminale SSH sul server ed entra nella directory estratta indicata sotto ogni comando. Confronta anche la dimensione e il checksum ZIP pubblicati in questa pagina attraverso un canale attendibile. Il manifest rileva corruzione, non è una firma digitale.

    Verifica versione e SHA256 dei file distribuiti tramite MANIFEST.json.
    python3 install.py verify-package
    Ambiente
    Linux/POSIX · terminale SSH sul proprio server
    Da dove eseguire
    Directory estratta TWI-CWcom-Server-Observer-Fix-v1.0/, nel percorso scelto sul proprio server.
    Da personalizzare
    Nessun parametro del server da impostare. Usare la copia estratta del pacchetto.
    Controlla VERSION e SHA256 del sorgente scelto, senza eseguirlo.
    python3 install.py check --server /srv/morse/CustomRelay.py
    Ambiente
    Linux/POSIX · terminale SSH sul proprio server
    Da dove eseguire
    Directory estratta TWI-CWcom-Server-Observer-Fix-v1.0/, nel percorso scelto sul proprio server.
    Da personalizzare
    I percorsi /srv sono esempi: sostituirli con quelli reali. Il nome del sorgente può differire da KOBServer.py.
  3. Esegui i test offline

    Le socket e i dati sono simulati: nessun pacchetto al relay, richiesta RSS o gestione di servizi. La prova con --original legge il sorgente ammesso senza importarlo sul server reale. La fixture neutra inclusa è solo per test, non è installabile.

    Esegue la suite offline sulla fixture neutra inclusa.
    PYTHONDONTWRITEBYTECODE=1 python3 tests/test_offline.py
    Ambiente
    Linux/POSIX · terminale SSH sul proprio server
    Da dove eseguire
    Directory estratta TWI-CWcom-Server-Observer-Fix-v1.0/, nel percorso scelto sul proprio server.
    Da personalizzare
    Nessun parametro del server da impostare. Usare la copia estratta del pacchetto.
    Esegue facoltativamente la suite offline su una copia originale supportata.
    PYTHONDONTWRITEBYTECODE=1 python3 tests/test_offline.py --original /srv/morse/CustomRelay.py
    Ambiente
    Linux/POSIX · terminale SSH sul proprio server
    Da dove eseguire
    Directory estratta TWI-CWcom-Server-Observer-Fix-v1.0/, nel percorso scelto sul proprio server.
    Da personalizzare
    I percorsi /srv sono esempi: sostituirli con quelli reali. Il nome del sorgente può differire da KOBServer.py.
  4. Prepara la finestra e il backup

    Identifica una sola istanza, il gestore corretto e gli eventuali avvii concorrenti. Ferma soltanto il relay con la procedura già verificata del tuo server e conferma processo terminato e porta libera. Non fermare feed o HTTP. Alcuni script SysV avviano un duplicato anche con stop: non usarli alla cieca. L’installer crea e verifica automaticamente un nuovo backup privato prima di ogni modifica; conservarne il percorso stampato.

  5. Installa sul disco con filtro inizialmente disabilitato

    Personalizza tutti i percorsi e gli UID/GID. La directory backup viene creata 0700 se il genitore esiste; config nuova 0640 e audit 0700 appartengono all’utente runtime. Una config enabled/disabled già presente viene preservata: --filter in conflitto viene rifiutato. --confirm-stopped è la tua dichiarazione di arresto, non una verifica automatica del PID o della porta. Lo script non riavvia nulla.

    Verifica sorgente e patch, crea backup e applica il fix sul disco.
    sudo python3 install.py install \
      --server /srv/morse/CustomRelay.py \
      --webroot /srv/http/morse \
      --backup-dir /srv/morse-backups \
      --runtime-uid 1001 --runtime-gid 1001 \
      --filter disabled --confirm-stopped
    Ambiente
    Linux/POSIX · terminale SSH sul proprio server
    Da dove eseguire
    Directory estratta TWI-CWcom-Server-Observer-Fix-v1.0/, nel percorso scelto sul proprio server.
    Da personalizzare
    Sostituire /srv/morse/CustomRelay.py, /srv/http/morse e /srv/morse-backups; 1001/1001 sono UID/GID di esempio, non valori consigliati. --confirm-stopped solo dopo arresto verificato. Usare sudo solo se necessario e autorizzato per i permessi del proprio server.
  6. Riavvio controllato del solo relay

    Usa il tuo gestore verificato e gli stessi argomenti, interprete, CWD, porta e webroot precedenti. Non esiste un comando di servizio universale nel pacchetto. Copiare Python non modifica un processo già in esecuzione: solo il nuovo processo carica il fix. Il cambio interrompe brevemente UDP e perde lo stato RAM. Non rilanciare feed o una seconda copia del relay. Verifica PID/socket unici e assenza di errori.

  7. Attiva il filtro

    Dopo le verifiche abilita il filtro. La modifica alla config viene preceduta da un backup ed è atomica; il processo patched rilegge il flag circa ogni secondo. Per questa sola modifica non serve un riavvio.

    Scrive enabled in observer-visibility.conf con backup automatico.
    sudo python3 install.py set-filter \
      --server /srv/morse/CustomRelay.py --webroot /srv/http/morse \
      --backup-dir /srv/morse-backups --filter enabled
    Ambiente
    Linux/POSIX · terminale SSH sul proprio server
    Da dove eseguire
    Directory estratta TWI-CWcom-Server-Observer-Fix-v1.0/, nel percorso scelto sul proprio server.
    Da personalizzare
    I percorsi /srv sono esempi: sostituirli con quelli reali. Il nome del sorgente può differire da KOBServer.py. Usare sudo solo se necessario e autorizzato per i permessi del proprio server.
  8. Verifica il funzionamento

    Osserva passivamente index.html e soltanto i nuovi eventi di log.html: gli observer conformi devono essere assenti anche con suffisso diverso dal canale. Gli operatori normali devono restare visibili. Controlla privatamente l’audit, i feed e il segnale orario del tuo server senza eseguire prove sui canali pubblici. I test del pacchetto simulano il contratto listener, non eseguono i feed reali.

  9. Disabilita rapidamente, se necessario

    disabled ripristina la visibilità nel backend senza chiudere sessioni UDP; non ripristina il codice legacy esatto e non rimuove eventuali filtri della dashboard. Conserva anche i backup prodotti da set-filter.

    Scrive disabled in observer-visibility.conf con backup automatico.
    sudo python3 install.py set-filter \
      --server /srv/morse/CustomRelay.py --webroot /srv/http/morse \
      --backup-dir /srv/morse-backups --filter disabled
    Ambiente
    Linux/POSIX · terminale SSH sul proprio server
    Da dove eseguire
    Directory estratta TWI-CWcom-Server-Observer-Fix-v1.0/, nel percorso scelto sul proprio server.
    Da personalizzare
    I percorsi /srv sono esempi: sostituirli con quelli reali. Il nome del sorgente può differire da KOBServer.py. Usare sudo solo se necessario e autorizzato per i permessi del proprio server.
  10. Rollback e disinstallazione

    Ferma soltanto il relay con la tua procedura e verifica porta libera. Se hai cambiato config dopo l’installazione, annulla quelle modifiche in ordine inverso usando i rispettivi backup prima del rollback dell’install. Verifica il backup scelto, poi ripristina. Il rollback crea a sua volta un backup e controlla gli hash; rifiuta corruzione o modifiche sconosciute. Riavvia una sola istanza perché il ripristino sul disco diventi attivo. Non ripristinare index.html/log.html. Audit e backup vengono conservati; eliminare la cartella ZIP estratta non disinstalla il fix.

    Verifica che i file del backup scelto coincidano con i loro SHA256.
    sudo python3 install.py verify-backup /srv/morse-backups/BACKUP-ID
    Ambiente
    Linux/POSIX · terminale SSH sul proprio server
    Da dove eseguire
    Directory estratta TWI-CWcom-Server-Observer-Fix-v1.0/, nel percorso scelto sul proprio server.
    Da personalizzare
    Sostituire BACKUP-ID con la cartella esatta stampata dall’operazione da annullare; /srv/morse-backups è un esempio. Usare sudo solo se necessario e autorizzato per i permessi del proprio server.
    Ripristina sorgente/config e metadati dal backup verificato.
    sudo python3 install.py rollback \
      --server /srv/morse/CustomRelay.py --webroot /srv/http/morse \
      --backup-dir /srv/morse-backups \
      --from-backup /srv/morse-backups/BACKUP-ID --confirm-stopped
    Ambiente
    Linux/POSIX · terminale SSH sul proprio server
    Da dove eseguire
    Directory estratta TWI-CWcom-Server-Observer-Fix-v1.0/, nel percorso scelto sul proprio server.
    Da personalizzare
    I percorsi /srv sono esempi: sostituirli con quelli reali. Il nome del sorgente può differire da KOBServer.py. Sostituire BACKUP-ID con la cartella esatta stampata dall’operazione da annullare; /srv/morse-backups è un esempio. Usare sudo solo se necessario e autorizzato per i permessi del proprio server.

Funzionamento tecnico

Riconoscimento esatto
Solo TWI-SCOPE-[0-9]+-[0-9]+, per intero, case-sensitive e cifre ASCII. Il numero finale non è confrontato col canale corrente. Nomi simili non conformi restano pubblici.
Ricezione e protocollo
Il filtro agisce sulla presentazione, non sulle sessioni UDP. CONNECT, IDENT, DATA, ACK, heartbeat, timeout, DISCONNECT, PIN, canali e inoltro Morse restano invariati. Nessuna estensione del protocollo CWCOM.
Directory e nuovi eventi
Gli observer filtrati non compaiono in index.html né nei nuovi eventi nominativi pubblici. Lo storico resta intatto. Conn alla ricomparsa è marcato [public visibility]; Visibility registra un cambio di politica senza nominativi. Un vecchio Conn può restare senza Disc pubblico per evitare di rivelare il nome nascosto.
Flag enabled/disabled
observer-visibility.conf si trova accanto al sorgente. enabled filtra; disabled ripristina visibilità backend. Config mancante, invalida o illeggibile disabilita il filtro. I/O e scheduling possono allungare la rilettura; il flag non aggiorna un vecchio processo privo del fix.
Audit privato asincrono
Worker daemon e coda massima di 1.024 eventi. Il producer non attende disco o spazio; a coda piena scarta il nuovo evento. Audit best-effort: errori, saturazione e arresto possono perdere record; nessuna durabilità/fsync. dropped_total ed errors_total nelle righe successive; avvisi stderr generici limitati a uno/minuto. I/O pubblico e lettura config restano sincroni.
Rotazione e riservatezza
Audit in .observer-private/observer-events.jsonl fuori webroot: directory 0700, file 0600. Registra tempo, azione, nominativo, canale effettivo, endpoint e versione client; nessun PIN o contenuto DATA. Attivo più .1/.2/.3, massimo 1 MiB ciascuno per il set creato dal fix; record massimo 4.096 byte. Definire una politica privacy locale. Non ruota i log pubblici.
Identificativo non autenticato
Qualsiasi client può usare il formato tecnico per non apparire nelle pagine. Nessuna prova di autenticità, identità umana o appartenenza al software. Gli IDENT restano inoltrati e visibili ai client; nessuna garanzia hard real-time o di anonimato.

Risoluzione dei problemi

VERSION o SHA256 non supportati

Il numero 6.5.3 non basta. Confronta il sorgente reale con SUPPORTED.json usando check. Non cambiare l’allowlist e non cercare una forzatura: occorrono revisione e una release compatibile.

Observer ancora visibili

Controlla il formato esatto, il flag enabled e il sorgente effettivamente avviato. Con questo fix il suffisso diverso dal canale non impedisce il riconoscimento. Strumenti che leggono direttamente IDENT o directory esterne non sono filtrati.

Eventi storici presenti

Il fix riguarda i nuovi eventi. Non cancella log o archivi precedenti: un nominativo nello storico non prova che la sessione sia ancora pubblica o connessa.

Filtro non attivo o relay non sostituito

Config mancante, invalida o non leggibile equivale a filtro disabilitato. Un processo precedente continua a eseguire il codice già caricato anche dopo la copia del file. Verifica il processo nuovo con il tuo gestore, senza lanciare duplicati.

Percorsi o permessi errati

Usa percorsi assoluti reali e UID/GID runtime corretti. Sorgente, audit e backup devono essere privati e fuori webroot/alias HTTP. Il genitore dei backup deve esistere. Controlla permessi e attributi/ACL senza esporre file privati sul sito.

Rollback rifiutato

Verifica il backup e l’ordine delle modifiche alla config; drift non riconosciuto e backup corrotto vengono rifiutati. Non sovrascrivere alla cieca: esamina hash e snapshot privatamente e pianifica il ripristino. L’audit non viene eliminato.

Download

Archivio originale, senza dashboard personalizzata, feed RSS, PIN, configurazioni del VPS, backup o log. Include patch, installer, test, helper JavaScript facoltativo, licenza MIT e guide italiana/inglese.

Scarica Server Observer Fix v1.0 (.ZIP)
Versione
1.0
Dimensione esatta
35.554 byte

SHA256 dell’archivio ZIP

2e72439d936a1b0f239b9ca6c59e616e60de347d7bb5a32275bdba557886bc1b

Confronta questi dati prima dell’installazione. SHA256 rileva corruzione, non sostituisce una firma digitale o una fonte attendibile.

Fonte delle istruzioni: README.it.md, README.en.md, SUPPORTED.json e install.py nell’archivio v1.0 verificato.