Software Client FTP / SDIFTP

“noi” non siamo ancora stati contattati dallo SdI… attendo l’amara conferma la prossima settimana :frowning:

Scusatemi se approfitto: qualcuno ha gestito anche la versione semplificata del tracciato fatture?
Nel sito www.fatturapa.gov.it ci sono esempi con lo schema “ordinario” ma non con il semplificato.
Sapete chi lo può/deve utilizzare?
Inoltre, la struttura del documento recapitato dallo SdI resta conforme alla sorgente o viene normalizzata da una versione specifica (ordinaria piuttosto che semplificata)?
Grazie

1 QUESITO
-> Vedo che il loro contenuto e’ del tipo
-> ssh-rsa AAAAB3NzaC1yc2…cCoUMr fatturazione@SFTP-SDI1-AT.srv.sogei.it
Il contenuto dei due files .PUB deve essere inserito all’interno dell file authorized_keys nel formato che trovi nei due files .PUB;
Es. (nel il mio authorized_keys)
ssh-rsa AAAAB3NzaC1 … fatturazione@ftp.matrixtechnology.it
ssh-rsa AAAAB3NzaC1 … fatturazione@SFTP-SDI1-AT.srv.sogei.it
ssh-rsa AAAAB3NzaC1… fatturazione@SFTP-SDI2-AT.srv.sogei.it
La prima è una chiave pubblica che mi sono generato per fare i test e per accedere dall’esterno come se fossi Sogei, mentre gli altri due sono il contenuto dei due .PUB; il tutto senza interruzioni di linea.

2 QUESITO
Ti suggerisco, sommessamente, di usare OpenSSH, anche per ragioni di sicurezza, in quanto pare che FreeFtp abbia avuto qualche problema. Io uso proprio OpenSSH, su Windows Server 2012 R2,ci ho sbattuto il grugno per un paio di giorni ma alla fine l’ho “addomesticato”. Sogei si è già collegata, ha letto il file di prova, e mi ha spedito un file di prova che ho già decifrato e verificato, quindi pare che sia andato tutto liscio.

1 Mi Piace

Credo ci sia una piccola “falla” nella documentazione SOGEI “Istruzioni per il servizio SDIFTP [ver. 4.0]” e cercavo il vostro parere : alla sezione “5.1.2 File verso SdI”, a pag. 19 la Sogei descrive il flusso reale dei file verso SdI, quindi in uscita dal nostro Server SFTP ed in entrata per lo SdI. Sogei scrive : “il Nodo sposta (o rinomina) il file FI.12345678901.2012015.1230.001.zip nella directory DatiVersoSdI”, ma se sposto quel file per farlo leggere allo SdI, dovrebbe avere estensione .zip.p7m.enc non soltanto .zip, è corretto o non ho capito bene qualcosa io ? o magari è un trucco per vedere se abbiamo letto BENE la documentazione Sogei ? :smiley:

Ciao Antonino , innanzitutto ti ringrazio per la disponibilità , vorrei capire questo OpenSSh come dovrebbe funzionare, stiamo sviluppando la gestione tramite SDIFTP, la cosa che mi chiedo è fisicamente dove mettere OpenSSH: mi vengono in mente due alternative, la prima (che eviterei come la peste) è quella di installarlo lato client insieme al nostro software: creati gli XML (o meglio gli zip), firmo direttamente in loco e poi invio su ftp. Questa ipotesi però implica un grosso dispendio di lavoro per installare ad ogni singolo cliente il software oltre a problematiche relative al distribuire password a destra e a manca , anche se credo elimini un passaggio.
La seconda ipotesi è che i miei clienti creino i file col nostro software e li inviino sull FTP, (magari in una cartella diversa da quelle dell’SDI) e a questo punto in qualche modo io avrò installato OpenSSH sul server FTP e sempre in qualche modo (che al momento ignoro) da remoto potrò lanciare (si spera in automatico)i comandi per firmare i file (e spostarli poi nelle cartelle SDI).Il problema è che non ho inimamente idea di come installare OpenSSH su server remoto e farlo lavorare autonomamente! Spero tu possa aiutarmi, ti rignrazio in ogni caso per l’attenzione, Ciao!

Ok mi rispondo da solo sono riuscito a capire come installare openSSL sull’ftp che abbiamo in hosting. Senza la guida che ho trovato non ci sarei mai riuscito, qunidi la linko, magari serve a qualcuno:
https://geeksww.com/tutorials/libraries/openssl/installation/installing_openssl_on_ubuntu_linux.php
Mi sarei aspettato di trovarla su OpenSSL.org …ma vabbè.

Hai fatto la scelta più corretta, comunque sopra c’è una inesattezza, nel senso che OpenSSH è il software che implementa SFTP, mentre il software che si occupa di firmare e cifrare i file xml o zip è appunto OpenSSL. Nel mio caso il problema non l’ho avuto in quanto il gestionale si trova già sul server quindi è molto più semplice.

Ringrazio molto per la risposta

1- Posso sapere come hai fatto a creare la coppia chiave pubblica/privata cona la quale poi puoi testare l’accesso al tuo server ftp? Avevo anch’io quest’idea ma poi mai realizzata per la non disponibilita’ di una coppia chiave pubblica/privata da usare

2- Vorrei seguire il tuo consiglio e usare OpenSSH, ma mi sto perdendo sulla’installazione e configurazione del server ftp, potresti aiutarmi indicandomi che documenti hai seguito o che configurazione hai usato per avvire il server ftp ?

Ciao e grazie

Vero , ho fatto un po’ di confusione :smile:…a questo punto mi manca solo di capire in che modo automatizzare il lancio dei comandi OpenSSL, per ottenere firma e cifratura dei files sul server senza alcun intervento umano. Qualsiasi indizio sarebbe molto ben accetto :wink: !!!

Guarda per la domanda numero 1 ho seguito questa guida. Spiega molto bene (e in italiano che non guasta) come creare una coppia di chiavi attraverso il software PuTTY.

Ciao, ti aiuto con piacere, nel frattempo sono appena stato ammesso alla fase di test di interoperabilità e sto ancora festeggiando :slight_smile: appena mi riprendo dai festeggiamenti ti invio qui alcune tips e il file di configurazione del mio OpenSSH. Ovviamente parliamo di OpenSSH su sistema Windows giusto ?

Prima cosa, la versione OpenSSH di cui parliamo è la OpenSSH-Win64, dovreste avere una cartella zippata contenente tutto l’occorrente. Quella cartella va unzippata all’interno di c:/Program Files. Io nell’installazione ne ho anche cambiato il nome in OpenSSH semplicemente, quindi avrete una cartella c:/Program Files/OpenSSH con all’interno tutti gli .exe necessari, oltre che alcuni files .ps1 che sono file di configurazione e di installazione che saranno lanciati tramite Widnows Power Shell. Prendete nota che lo spazio, nella path, fra “Program” e “Files” ci creerà qualche problema ma sarà risolto in fase di configurazione.

Il file di configurazione sshd_config verrà invece posizionato in c:\ProgramData\ssh, quindi c:\ProgramData\ssh\sshd_config . In questo file metteremo tutti i parametri di configurazione che faranno funzionare OpenSSH su piattaforma Windows, nonostante, come sapete, non sia nato su Windows ma vi è stato “portato” da ambiente Unix. Uno dei problemi che affronteremo sarà quello relativo al CHROOT … ma ne parleremo dopo.
Il pacchetto gira tramite “servizio” windows, quindi dopo l’installazione avremo un servizio “OpenSSH SSH Server” che ne gestisce l’esecuzione. Ma di tanto in tanto, da Power Shell, lanceremo sshd.exe direttamente da prompt, con parametro -dddd per acquisire info sa qualcosa dovesse andar male.

Gli obiettivi da raggingere, imho, sono :

  1. spostare tutti gli applicativi sul file system Windows, nel loro posto;
  2. Procedere all’installazione del pacchetto, on line trovate ampia configurazione;
  3. creare, dentro c:/program Files/OpenSSH, la cartella authozied_keys, che conterrà le chiavi pubbliche autorizzate ad accedere al server, quindi avremo il file c:/program Files/OpenSSH/authorized_keys/authorized_keys. In questo file metteremo le chiavi pubbliche contenute nei due file .PUB che ci hanno inviato la Sogei.
  4. una copia del file authorized_keys va messa anche dentro il profilo utente “fatturazione” che ne frattempo avremo creato e che avrà come path c:/users/fatturazione. La copia di authorized_keys andrà dentro il path c:/Users/fatturazione/Files/OpenSSH/authorized_keys
  5. attivare il servizio : sappiate che le prime volte vi darà errore per motivi di permessi su alcuni files, ma li aggiusteremo; per vedere quali siano gli errori basterà lanciare sshd.exe da power shell con parametro debug -dddd e lui ci dirà quello che non va;
  6. Configurare OpenSSH con i parametri necessari agendo su sshd_config dentro c:/programData/ssh.

Ricordiamoci di crearci una coppia di chiave privata/pubblica che inseriremo in authorized_key insieme alle due di Sogei, cosi possiamo fare le prove dall’esterno tranquillamente come fossimo Sogei, tramite putty, come suggerito da Andy75.
Attenzione, se dovessimo fare delle prove anche utilizzando come client un sistema Linux (come ho dovuto fare io) tramite ad esempio il client ssh o sftp, la chiave privata nel formato putty non andrà bene e bisognerà cambiarla in un formato diverso, con una utility che si chiama putty-tools.

Ringrazio molto, la condivisione tua esperienza sara’ per me estremamente utile
Attualmente abbiamo superato la fase dei test preliminari e sono iniziati i test di interoperabilita’
Abbiamo ancora FtpShell installato e funzionante, conterei di attivare OpenSSH magari su una porta diversa per fare le necessarie prove e poi spegnere il primo e accendere il secondo sperando che da lato Sogei non si accorgano di niente
Ma dove hai letto che FtpShell ha avuto dei problemi?

Me lo comunicò Genesio Lini, ma si trattava più che altro di un consiglio, dato che OpenSSH è il software di riferimento; visto che avrei dovuto metter su comunque un server SFTP, tanto valeva provare a metter su OpenSSH. Ma puoi effettuare la migrazione con calma, Sogei se ne accorgerà sicuramente ma credo ne sarà felice.

Ciao, una domanda. Come hai settato la chroot per ssh?

E’ stato uno dei problemi più pesanti da affrontare, ma sembra sia riuscito a trovare un punto di equilibrio accettabile. Basta inserire, in sshd_config il parametro
ForceCommand internal-sftp
questo implica, lato client Linux, l’utilizzo del client sftp invece che ssh. Ora sto valutando, sulla base dei dati di debug che ricevo, se per Sogei è una soluzione accettabile.
L’alternativa, e cioè non mettere quel parametro e consentire l’uso di ssh come client, significherebbe dare a Sogei la possibilità di scorazzare liberamente nel mio file system, a meno di non impostare una serie molto numerosa di permessi tra le varie cartelle del mio server e, francamente, per adesso non mi va.

Ma scusa, se chiudi l’user in una chroot jail al limite scorazza lì dentro e non fa nulla. Le stesse cose che Sogei potrebbe fare con una shell le può fare con l’sftp. O forse non ho capito bene che cosa hai scritto.