Šta je novo?

Potrebno mi je nešto više od klasičnog MFT-a...

luja

Cenjen
Učlanjen(a)
03.04.2011
Poruke
11
Poena
155
Moja oprema  
CPU & Cooler
AMD FX-8320 @4,2GHz
Matična ploča
Gigabyte GA-990X-Gaming SLI
RAM
32GB DDR3 @1600MHz (4x SK Hynix HMT41GU6MFR8C-PB)
GPU
HD 7770, 1GB GDDR5 (Gigabyte GV-R777OC-1GD (rev. 2.0) - nisam gejmer, dakle najmanje bitna stavka)
Storage
500GB SSD, NVMe (Samsung MZ-V7S500B/AM)
PSU
650W, 80+ Gold (Antec TP-650C)
Kućište
Cooler Master CM 690 II Advanced Black & White Edition (USB 3.0 version) (RC-692A-KKN5-BW)
Monitor
2x Dell U2312HM, 1x Dell U2311H
Miš & tastatura
Logitech K350, K400, 3x M171
Laptop
Dell Latitude 5410, Dell Dock WD19
Mobilni telefon
Po nepisanom pravilu, uvek pretposlednja generacija Galaksije S.
Pametni uređaji
Amazfit Bip 3, Roborock S7 MaxV Ultra, SonOff smart prekidači, Sonoff senzori za temp i vlažnost vazduha, Philips Hue sijalice, smart GPS tracking auta (remote kontrola alarma, uređaja napajanih preko ACC, kočenja i dotoka goriva).
Pristup internetu
  1. Optički internet
  2. Kablovski internet
  3. Mobilni internet
Pozdrav kolege,

U potrazi sam za malo kompleksnijom vrstom MFT aplikacije, ako bih smeo tako da je nazovem, a kakva možda i ne postoji u nekoj komercijalnoj ponudi...

Na poslu koristimo neko frankenštajnsko rešenje, koje je razvijeno u kući i skoro savršeno radi već decenijama.
Međutim, imamo problematiku u tome što se isto vrti na prastaroj platformi, koja je puna bezbednosnih propusta i ranjivosti (iz tih razloga, osim potrebnih funkcionalnosti, dalje neću spominjati detalje o samoj aplikaciji), a niko nema vremena da se pozabavi ozbiljnijim razvojem kako bi je doveo na očekivani nivo.

S tim na umu, bacio sam se u potragu za serverskom aplikacijom sa sledećim mogućnostima:
  • Da šalje i prima fajlove preko MFT, SFTP/FTP(S) protokola, ali i kroz šerovane (UNC) direktorijume;
  • Da radi i sa FQDN, nazivima hostova, alijasima, ne samo IP adresama;
  • Da nigde ne čuva kredencijale za pristup u čistom tekstualnom formatu (sve kriptovano, nigde vidljive lozinke);
  • Da obavlja operacije kopiranja, premeštanja, brisanja, preimenovanja fajlova - daljinski i lokalno (+mogućnost kombinovanja: npr. jednopotezno premeštanje+preimenovanje);
  • Da pakuje i ekstraktuje Zip, RAR, ARJ, tar, gz, i ostale vrste arhiva;
  • Da kriptuje i dekriptuje PGP/GPG fajlove;
  • Da gore navedeno obavlja na osnovu zadate putanje (npr. poveže se preko SFTP-a na server i preuzima bilo koji fajl (.) koji se trenutno nalazi u određenom direktorijumu);
  • Da gore navedeno obavlja na osnovu naziva, odnosno "maske" fajla (npr. da bilo koji fajl sa nazivom nikola*.* preimenuje u petar.txt);
  • Da u nazivima fajlova očitava i upisuje kombinacije datuma, vremena (tekući dan, +-x dana u odnosu na tekući dan/sat/mesec itd.);
  • Da može da upravlja i kombinuje svim onim što je gore navedeno kroz neku vrstu poslova i koraka
    • -ne mora, niti se očekuje se da bude to bude jednostavan postupak, ali ne sme da podrazumeva poznavanje bilo kog programskog jezika (programeri treba da se bave programiranjem, dok ovo smatramo poslom nekih operatera, tehničara, analitičara itd.);
  • Zakazivanje tih "poslova" ili određenih koraka da se pokreću u određeno vreme ili u određenom vremenskom intervalu, a u određenom periodu u toku dana.
    • Npr.:
      • svakog dana, na svakih 5 min. od 04:00 do 13:00;
      • svakog drugog ponedeljka u mesecu, na svakih pola sata u periodu između 08:00 i 16:00 itd.
  • Da vrši hiljade takvih predefinisanih operacija u minutu (poželjno i u sekundi);
  • Da loguje bukvalno SVE što uradi
    • -poželjno je da ima i neki ljudski-čitljiv log, koji ne bi sadržao sitne detalje ostvarenih komandi (npr. protokol, sajferi itd. koji su korišćeni za otvaranje sesije), već neku vrstu generalnog pregleda ulaza, izlaza i uspešnosti operacije (recimo, u nekom web GUI-u sa mogućnošću lakog filtriranja);
  • Da putem e-pošte ili na neki drugi način (dešbord i slično) šalje, odnosno prikazuje obaveštenja o neuspešnim poslovima ili koracima;
  • Da može lako da se ponovi određeni korak na kom je neki posao eventualno zaglavio, ili pruži mogućnost ručnog pokretanja celog posla od početka;
  • Mora da bude u skladu da PCI DSS standardima
    • radi se sa osetljivim kartičnim, finansijskim, ličnim i GDPR podacima, pa je ovo OBAVEZNA stavka
    • jako poželjno: PCI DSS v4.0
    • trenutno, apsolutni minimum bi bio PCI DSS v3.2.1, ali isključivo ukoliko vendor aplikacije već ima definisan plan i obavezu za usklađivanjem sa v4.0 u dogledno vreme (<1y).
Dodatni plusevi bi bili:
  • enterprajz podrška, adekvatna dokumentacija;
  • mogućnost modifikovanja sadržaja txt, csv fajlova;
  • eventualna konverzija kodiranja i formata tekstualnih fajlova (npr. iz nekog x koda u UTF8, pa možda i parsiranje podataka u neki novi fajl, a na osnovu predodređenih pravila za to);
  • poželjno je da ima višefaktorsku autentifikaciju za gore pomenuto upravljanje ili/i pristup GUI-u za logove (ako ga ima) - u smislu PCI DSS-a, ovo jeste jako važna stavka, ali nama nije od presudnog značaja pošto imamo neko zaobilazno rešenje ukoliko baš nema MFA.
Aplikacija ne mora da bude besplatna, a čak je i poželjno da se ne bude, kako bismo ugovorili neku vrstu obaveze održavanja na kraći ili duži vremenski period (za početak proba i demonstracija, naravno).

Da malo dočaram situaciju, jedan od scenarija iz prakse bi bio posao sa sledećim koracima, recimo:
  • da se poveže se na udaljeni SFTP server:
    • \\server1
  • proveri da li u određenom direktorijumu postoji fajl sa maskom MiM<YYYY><MM><DD-1>*.gpg (dakle, da naziv počinje sa stringom "mim", praćeno jučerašnjim datumom, praćeno bilo kojim stringom, sa GPG ekstenzijom),
  • ukoliko ne postoji takav fajl, otkači se sa servera i ne mora čak ni da popunjava log;
  • ukoliko fajl postoji, preuzme ga lokalno ili na neku mrežnu putanju (+obavi proveru integriteta, ponovo preuzme fajl ako ne prođe proveru iz prve) - dobijemo npr.:
    • \\server2\prijem\MiM20240205štagod.gpg,
  • dekriptuje GPG fajl u radni poddirektorijum (podrazumeva se da je prethodno već obavljena razmena potrebnih ključeva i uvoz u aplikaciju):
    • \\server2\prijem\radni\MiM20240205štagod.zip,
  • originalni kriptovan fajl preimenuje u MiM20240206.gpg (tekući datum),
  • premesti kriptovan fajl na treću lokaciju:
    • \\server2\prijem\arhiva\MiM20240206.gpg
  • vrati se na dekriptovani fajl MiM<YYYY><MM><DD-1>.zipi otpakuje ga - dobijemo 2 fajla sa različitim nazivima (i različitim datumima u nazivima):
    • \\server2\prijem\radni\Marko20240205.txt
    • \\server2\prijem\radni\Marina20240129.txt
Eventualni dodatni koraci tog ili nekog drugog posla bi mogli biti:
  • da premesti fajl Marko20240205.txt iz radnog direktorijuma u direktorijum Marko (na osnovu maske marko*.txt) i odgovarajući ugnežđen poddirektorijum, po godini i datumu, i preimenuje ga u hodu (predefinisano datumskim maskama - naravno, u konkretnom primeru podrazumevajući da aplikacija ume da napravi razliku između <MM> i <MMM>):
    • \\server2\prijem\marko\2024\FEB\izveštaj.txt
  • isto uradi sa fajlom Marina20240129.txt:
    • \\server2\prijem\marina\2024\JAN\izveštaj.txt
  • i npr. konvertuje fajl \\server2\prijem\marina\2024\JAN\izveštaj.txt iz EBCDIC u ASCII kod,
  • (još jedan korak dalje bi bio da iz konvertovanog fajla izvlači podatke, a na osnovu određenih karaktera ili stringova koji bi predstavljali neke vrste separatora, pa da rezultat spakuje u neki novi).

Dakle, za sada tražimo gotovo rešenje koje bi bilo približno onome što sam u ovom svom opširnom tekstu već opisao.
Ukoliko postoji nešto slično, ja nisam uspeo da ga pronađem pa je svaka pomoć dobrodošla.

Unapred hvala na odgovorima i savetima.
 
Poslednja izmena:
Nazad
Vrh Dno