QNAP – caratteristiche particolari

VJBOD – E’ la possibilità di aumentare lo spazio del NAS connettendolo ad un’altro NAS – Sembra l’uovo di colombo, ma a volte si è in presenza di un NAS near-full e magari hai un’altro NAS in un’altra sede near-empty.. puoi connetterli assieme per scaricare il primo NAS. (fonte: https://www.youtube.com/watch?v=iEUJv-ke4dE https://www.youtube.com/watch?v=yNCqr5YlI8g )

MARS – E’ un’utility di backup che copia i dati da google foto (gia’ hai capito bene.. prima non si poteva fare) e li stora sul tuo nas.. e pensare che QNAP non la pubblicizza.. ovviamente gratuita con il NAS. (fonte: https://www.qnap.com/it-it/news/2022/la-miglior-soluzione-per-effettuare-il-backup-delle-foto-qnap-rilascia-la-soluzione-di-backup-di-google-foto-senza-limiti-di-capacit%C3%A0 )

Snapshot Vault/Replica – E’ la possibilità di copiare una snapshot effettuata dal un NAS Qnap verso un secondo NAS Qnap posto in un’altra locazione fisica. Mette il c..o a paratia (gergo militare) da errori umani e guasti e anche da virus. (fonte: https://www.qnap.com/en/how-to/tutorial/article/save-snapshots-to-other-qnap-nas-with-snapshot-replica)

Migrazione per guasto serio su un’altro NAS QNAP – In una vita puo’ capitare che un NAS smetta di funzionare per problemi non derivati da dischi o alimentatori, come ad esempio guasto sulla scheda madre e potrebbe essere conveniente acquistare un nuovo NAS.. con i QNAP è sufficiente migrare i dischi sul nuovo NAS QNAP e ripartire… puo’ sembrare una cosa da poco.. ma è una garanzia in ambiente industriale da non sottovalutare.. ( applicativo per migrazione https://www.qnap.com/it-it/nas-migration/ )

Boxafe – Backup di email e altro di Office 365 oppure Gmail Suite. Purtroppo a pagamento se su supera un cert numero di account. (fonte: https://www.youtube.com/watch?v=_TQQYVNFQUs )

Malware e Virus come evitare sorprese – Leggete questo articolo: https://www.qnap.com/solution/secure-storage/it-it/

Squid Proxy HA+LB

Qualche tempo fa, mi è stato chiesto di implementare un sistema proxy in alta affidabilità da un mio cliente. Ho notato che in rete non c’e’ un howto per costruire un sistema del genere, allora ho pensato di scrivere qualche nota.

Elenco dei requisiti:

  1. Il sistema proxy non deve avere delle licenze da pagare ne one-shot ne annualmente; insomma, deve essere gratis.
  2. Deve servire circa 150 utenti possibilmente senza rallentamenti anche in caso di failover del primo nodo.
  3. Non deve essere soggetto a sospensione del servizio dovuti a manutenzione (pianificati) o guasti (non pianificati).
  4. Il sistema proxera’ le richieste solo se aderenti ai dati presenti su tre white-list a cura dal personale IT contenenti indirizzi IP, URL e domini.
  5. Deve essere emessa una notifica in caso di down del nodo primario in modo che il personale IT sia a conoscenza che il sistema proxy sta funzionando in maniera degradata.
  6. Il sistema si deve automaticamente ritornare sul nodo MASTER quando il problema su di esse è cessato.
  7. In modalita’ normale sarebbe preferibile che il sistema processi le richieste in parallelo, bilanciando il carico tra le due macchine (active-active e non active-passive)

Briefing

Dunque, la prima cosa da decidere,  il sistema operativo, gratis significa Linux o BSD.. io lavoro da circa vent’anni con Redhat (ora a pagamento) e quindi oggi lavoro con CentOS il quale è basato sugli stessi sorgenti. Non ho trovato in rete un vero HOW-TO sul come fare questo progetto, quindi ho deciso di scriverne uno, in italiano. Per il sistema proxy, non c’e’ tanto da pensare, il cliente ha gia’ le liste in formato testo adatte a squid, qundi direi che il sistema proxy è squid. Inoltre è un software che c’e’ da sempre (non so se sia nato prima Linux o prima squid) quindi è affidabile e soprattutto open-source. Per quanto riguarda le White-list basta montarle su una share di un file server per avere tre liste sempre aggiornate su entrambi i proxy. Poi mi sono pensato un trucchetto in caso il file server contenente le White-list non fosse disponibile in modo che gli squid continuino a funzionare, su White-list non aggiornate ma continuino ad andare (e si potrebbero anche aggiornare ogni tanto via script). Ora manca un modulo che mi permetta di avere una sorta di alta affidabilità: un modulo che in caso rilevi un problema possa migrare un indirizzo IP sulla macchina secondaria. Keepalived è la mia scelta. Il motivo è che ci ho gia’ lavorato e che mi piace per la sua semplicità. I nodi comunicano tra loro in Multicast e sembra che questo demone sia molto leggero per il sistema. Per fornire il servizio dei proxy active-active ho pensato che HAPROXY potrebbe fornirmi il necessario. L’idea è stata di mettere in ascolto HAPROXY su qualsiasi IP della macchina linux su porta 3128 porta classica di Squid, e inoltrare in modalità tcp le richieste ai due Squid presenti sulle due macchine, controllando che siano attivi via istruzione check effettuato da HAPROXY. Ovviamente ho dovuto modificare la porta di ascolto degli Squid. Quindi in modalità normale, ovvero quando tutto è correttamente funzionante, la macchina MASTER invia tramite HAPROXY le richieste dei client ad entrambi gli Squid in modaità round-robin che per le sessioni http sembra sia la migliore strategia.

Il sistema operativo

Lavoro da un mare di tempo con CentOS e non mi viene proprio voglia di cambiare, quindi i due nodi saranno due linux box con CentOS V7.5. Finita l’installazione io ho effettuato le seguenti personalizzazioni:

  1. Disabilitato Selinux
  2. Installato net-tools – Per avere ifconfig
  3. Installato procps – Per avere killall che serve a keepalive
  4. Disabilitato e rimosso dall’autostart Firewalld
  5. Impostato in /etc/sysctl.conf la linea “net.ipv4.ip_nonlocal_bind = 1” che serve per ascoltare anche su ip che non esistono sulla macchina.

Keepalived

Ci sono diversi sistemi per avere una coppia di Linux box ad alta affidabilita’, ma io sono di quelli che “cavallo che vince non si cambia”: ho gia’ lavorato con keepalived e quindi implemento cio’ che conosco. Secondo me semplice come configurazione e si installa facilmente perché è di ‘serie’ su CentOS, ti basta fare:

[root@nodo1 ~]# yum install keepalived

# cat /etc/keepalived/keepalived.conf
global_defs {
  enable_script_security
  script_user root
  notification_email {
gbiondi@tech2.it
  }
  notification_email_from node1@tech2.it
  smtp_server localhost
  smtp_connect_timeout 30
}

vrrp_script chk_squid {
   script “/usr/bin/killall -0 squid”      # verify the pid existance
   interval 2                     # check every 2 seconds
   weight 2                       # add 2 points of prio if OK
}

vrrp_script chk_haproxy {
   script “/usr/bin/killall -0 haproxy”      # verify the pid existance
   interval 2                     # check every 2 seconds
   weight 2                       # add 2 points of prio if OK
}

vrrp_instance VI_1 {
   interface eth0                # interface to monitor
   state MASTER
   virtual_router_id 54          # Assign one ID for this route
   priority 101                  # 101 on master, 100 on backup
   advert_int 1
   smtp_alert
   virtual_ipaddress {
        10.12.14.140              # the virtual IP
   }
   track_script {
       chk_squid
       chk_haproxy
   }
}

In sostanza si vedono bene i due ‘vrrp_script’ che controllano che i due processi siano UP e il ‘vrrp_instance’ che è il cuore di keepalived. Questo è lo script del MASTER, quindi quando si sveglia si mette come MASTER e si autoassegna un priorita’. Si assegna un ‘router_id’ che serve al demone per comunicare con l’altro nodo via unicast. Inoltre quando deve operare perché qualcosa è andato storto (non vede l’altro nodo) ci avvisa via smtp. Il resto non credo che ci sia bisogno di spiegazioni. Allego anche lo script del secondo nodo per completezza:

global_defs {
  enable_script_security
  script_user root
  notification_email {
gbiondi@tech2.it
  }
  notification_email_from node2@tech2.it
  smtp_server localhost
  smtp_connect_timeout 30
}

vrrp_script chk_squid {
   script “/usr/bin/killall -0 squid”      # verify the pid existance
   interval 2                     # check every 2 seconds
   weight 2                       # add 2 points of prio if OK
}

vrrp_script chk_haproxy {
   script “/usr/bin/killall -0 haproxy”      # verify the pid existance
   interval 2                     # check every 2 seconds
   weight 2                       # add 2 points of prio if OK
}

vrrp_instance VI_1 {
   interface  eth0               # interface to monitor
   state BACKUP
   virtual_router_id 54          # Assign one ID for this route
   priority 100                  # 101 on master, 100 on backup
   advert_int 1
   smtp_alert
   virtual_ipaddress {
       10.12.14.140               # the virtual IP
   }
   track_script {
       chk_squid
       chk_haproxy
   }
}

HAProxy

Il demone HAProxy è il responsabile per il bilanciamento di carico dei proxy Squid. Esso riceve le richieste dei client su porta 3128 (ho scelto questa porta in quanto tutti sono abituati al fatto che se c’e’ un proxy Squid questo ascolta su questa porta) e inoltra le sessioni sui proxy Squid attivi in quel momento. Il demone conosce il proxy attivo il quanto effettua un check su entrambi i proxy Squid in modo da esere a conoscenza su quale Squid inoltrare le richieste. Il demone HAProxy è in grado di inoltrare migliaia di sessioni senza avere problemi di performance, leggete la documentazione e i test che sono stati effettuati su questo software se siete curiosi. Allego i file di configurazione dei due HAProxy montati sulle due macchine linux: i due file sono uguale su entrambe le macchine linux. Precisiamo che in questo particolare caso ci limitamo ad avere ‘solo’ due proxy Squid, ma si potrebbe aggiungere altre macchine linux, queste con i solo demone Squid configurato, per avere un cluster con un parallelismo maggiore di due. Si potrebbe avere altre due macchine linux con Squid montato e utilizzare quattro Squid per servire i nostri utenti.

global
daemon
maxconn 256
defaults
mode tcp
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms

frontend squid_frontend
bind *:3128

default_backend squid_backend
backend squid_backend
server node1 10.12.14.141:8001 check
server node2 10.12.14.142:8001 check
# Add more IPs here as required
balance roundrobin

listen stats # Define a listen section called “stats”
bind :9000 # Listen on localhost:9000
mode http
stats enable # Enable stats page
stats hide-version # Hide HAProxy version
stats realm Haproxy\ Statistics # Title text for popup window
stats uri /haproxy_stats # Stats URI
stats auth amin:paperina # Authentication credentials

Squid

Proxy Squid. Squid è un proxy che conosciamo tutti: chi ha messo in pista una macchina proxy con linux lo ha fatto con Squid. E’ robusto, e’ mantenuto aggiornato, e’ gratis e funziona, non c’e’ bisogno di provare qualcosa d’altro. Nel nostro sistema proxy, viene usato molto semplicemente con delle white-list, c’e’ un minimo di configurazione da fare ma la cosa piu’ importate è il cambio di porta di ascolto, nel nostro caso da 3128 viene modificata in 8001. Poi c’e’ il discorso delle white-list ma non mi pare che sia un argomento da trattare.. non ci interessa l’autenticazione, ma anche qui si trova tutto in rete. Invece voglio dirvi come ho fatto a fare in modo che, se per caso la share che condivide le white-list non fosse disponibile ,il sistema comunque continui a funzionare. Ho semplicemente copiate le white-list interessate nella directory /mnt/wl – certo che nel momento del problema non saranno aggiornate, ma sempre meglio che rimanere senza che su un sistema che lavora in white list significa non navigare piu’ da nessuna parte… e poi si potrebbe fare in modo via script che ogni giorno venga smontata la share, copiate le whitelist e rimontata la share..

Conclusioni

Il sistema sta funzionando correttamente, per ora non sono stati riscontrati disservizi, purtroppo non è sottoposto ad un carico pesantissimo, i due nodi sfiorano carico ‘1’ negli ultimi 5 minuti solo all’inizio delle ore mattutine e pomeridiane

Vmware Vcsa8 – Password di root scaduta

Se hai installato un vcsa8 piu’ o meno di default, la sacdenza delle password e’ impostata a 90 giorni. Siccome di solito le cose vanno nel verso giusto (almeno nei primi 90 giorni) potrebbe capitare che un giorno entri nel vcenter e vedi un paio di errori del tipo “la password di root e’ in scadenza” in giallo e un’altro in rosso “La password di root e’ scaduta”. In realta’ non c’e’ nulla che non funzioni, ma se provi ad entrare nella console del vcsa, quella su porta 5480 per capirci, ti da un errore del genere “Exception in invoking authentication handler user password expired”.

Meno male che risolvere e’ una minchiata: entri in ssh sull’ip del vcsa con la vecchia password.. ci pensa un po’ e poi lui stesso si rende conto che sta dicendo una minchiata e ti dice che la passeword di root e’ scaduta, ti chiede la vecchia password e ti fa inserire la nuova, due vole come al solito. A questo punto puoi entrare nella parte web e correre e cambiare la scadenza da “90 giorni” a “mai”.

Vmware – Blank screen editando una VM – Solved

Potrebbe succedere che, mentre provi ad editare una VM ti si presenti una schermata cosi’:

..esatto non si vede nulla. Il problema facilmente risolvibile è dipeso dall’aggiornamento del virtual hardware della VM. Semplicemente, schedula oppure spegni e aggiorna il virtual hardware al livello della tua installazione Vmware

Riavvia la vm e potrai editare i settings della vm.

Sessioni telnet che si sconnettono

Se una sessione telnet sta in idle per un pò di tempo, è normale che qualche dispositivo di rete tagli la connessione di rete. Normalmente questo accade quando un client si connette ad un server AS400 e l’operatore si assenta per qualche tempo, quando prova a lavorare sul PC dopo il primo enter viene forzato da rifare il login. Questo ovviamente stressa l’operatore. Per ovviare a questo problema si allunga il timeout tcp delle sessioni del firewall, che nel caso Sonicwall sono a 15 minuti e si modificano a 60 minuti. Però puo’ accadere che la sessione venga interrotta da qualche device che non è sotto il nostro diretto controllo. A questo punto si può ricorrere al tcp-keepalive sul server stesso. La soluzione è stata risolta su una macchina linux. Occorre soltanto modificare tre parametri del kenel:

net.ipv4.tcp_keepalive_time=60 # Quanti secondi passano prima di inviare una probe
net.ipv4.tcp_keepalive_intvl=30 # Quanti secondi passano prima di inviare una probe se non ottengo risposta
net.ipv4.tcp_keepalive_probes=6 # Dopo quanti tentativi senza risposta avvisa l’application layer che la sessione è stata interrotta.

I valori scelti sono stati decisi dopo alcuni test. Potresti volerli modificare.

Make sure that any services that have a space in their path are enclosed in quotes

Con Windows 11 il wmic non funziona dunque apri una powershell con diritti amministrativi e incolla questo script:

Get-CimInstance Win32_Service | ForEach-Object {
$path = $_.PathName
if ($path -match ‘ ‘ -and $path -notmatch ‘^”.*”$’) {
[PSCustomObject]@{
Name = $_.Name
PathName = $path
}
}
} | Format-Table -AutoSize

Dovresti vedere un output di questo tipo: si vede bene chi ha spazi nella path senza avere le ‘virgolette’

Vmware :: NFS Storage :: inaccessibile dopo power failure

In questo caso si deve procedere in questo modo.

  1. De-registra tutte le VM che sono sopra NFS. Se non ce ne sono meglio cosi’.
  2. Prendi nota di come si chiama il datastore, l’ip del server NFS, il tipo di NFS, l’export della directory del server NFS
  3. Smonta il datastore
  4. Crea un nuovo datastore con lo stesso nome, dovresti riuscirci con le info che ti sei annotato prima.
  5. Eventualmente ri-registra le VM che trovi sul datastore.

Symantec Messaging Gateway: installa il certificato SSL

Se non hai generato il CSR dal SMG, dovrai creare un file .pem del certificato fatto con questa procedura:

Convertire .key PKCS#8 int PKCS#1
openssl rsa -in newkey8.pem -out newkey1.pem

unire .crt+newkey1.pem -> certificato .pem da importare in SMG

Riassumendo, il file del certificato compresa la chiave RSA va importato ne tan “TLS & HTTPS Certificates“. Il file XXXX-CA-BUNDLE va importato nella tab “Certificate Authority”

ESEMPIO

Il file del certificato ha lo stesso nome del nome a dominio per il quale è stato richiesto, ad esempio www_sslcertificates_nl.crt,

  1. Salvare il certificato in una posizione accessibile dal gateway di gestione.
  2. Dal Centro di controllo, vai su Amministrazione > Impostazioni > Certificati .
  3. Fare clic sulla scheda Certificati TLS e HTTPS .
  4. Fare clic su Importa .
  5. Nella pagina Importa certificato , inserisci il percorso completo del certificato dal passaggio 1 o fai clic su Sfoglia per selezionarlo.
  6. Fare clic su Importa .

Ciò completa l’installazione del certificato personalizzato. Seguire i passaggi seguenti per installare anche i certificati root e intermedi.

  1. Scarica il pacchetto root e intermedio per il certificato. Salvarlo in una posizione accessibile da Symantec Messaging Gateway.
  2. Dal Centro di controllo, vai su Amministrazione > Impostazioni > Certificati .
  3. Fare clic sulla scheda Autorità di certificazione e quindi su Aggiorna .
  4. Nella pagina Aggiorna certificati CA , fare clic sul pulsante Sfoglia e accedere al percorso del file bundle dal passaggio 1.
  5. Fare clic su Aggiorna .

Tutti i passaggi di installazione del certificato sono stati completati. Assicurati che i file del certificato siano adeguatamente protetti e conserva un backup della chiave privata e del certificato in un luogo sicuro. Installa anche i certificati root e intermedi . Utilizza  SSLCheck per verificare se il certificato è stato installato correttamente e garantisci una configurazione ottimale del certificato SSL con questi suggerimenti e impostazioni.

Non esitate a  contattarci se avete problemi o messaggi di errore, saremo felici di aiutarvi!

Qnap – Snapshot replica/vault

Se non riesci ad far funzionare questo meccanismo e tutto sembra essere regolare, si risolve abilitando SSH nel nas SORGENTE e connettendosi in SSH alla destinazione. Potrebbe essere un bug della QNAP che non sa come comportars a prima volta che si collega alla destinazione che chiede se salvare o meno il fingerprint.

Vmware – spostare management da una rete ad un’altra

  1. Mettere l’host in maintenance mode
  2. Sconnettere l’host da Vcenter
  3. Rimuovere l’host dall’inventario
  4. Attraverso ILO oppure da console del vsphere cambiare l’ip di management/vlan
  5. Connettere l’host al Vcenter con il nuovo IP oppure con il nuovo nome
  6. Restart dell’host (a volte non vede NFS senza alcun motivo)
  7. Uscire dal maintenance mode
  8. Controllare di avere accesso ai vari NFS o iScsi (potrebbero essere sulla stessa net)
  9. Controllare eventuali policy firewall che coinvolgono la nuova rete
  10. Riavviare il server, meglio fare un ‘cold start’.
  11. Cambiare l’ip nel DNS
  12. Facendo questa procedura cambia l’UUID del nodo e Config.HostAgent.plugins.solo.enableMod si disabilita.

Per vedere l’UUID di un nodo vmware, abilitare SSH e inputare questo comando:

[root@localhost:~] esxcli system uuid get

Montare una share Windows su una VM Ubuntu

Installare le CIFS utilities con:

sudo apt update

sudo apt install cifs-utils

Crea un nodo sulla directory in modo da avere un handle per montare la directory remota:

sudo mkdir /mnt/windows_share

Crea un file di credenziali /etc/win-credentials e scrivi le credenziali dello user windows con questa modalità

username=user
password=password
domain=domain

Imposta i permessi:

sudo chown root: /etc/win-credentials

sudo chmod 600 /etc/win-credentials

ora edita /etc/fstab e inserisci un riga come questa:

//192.168.1.1/windows_share /mnt/windows_share cifs credentials=/etc/win-credentials,file_mode=0755,dir_mode=0755 0 0

Ora con mount /mnt/win_share dovresti vedere la directory della macchina windows.