Kako sigurno poslati zapisnike uređaja na udaljeni kolektor
Prilagodite transport onome što uređaj može emitovati: TLS syslog, SFTP datoteke, lokalni mrežni prolaz ili rutirani tunel. Zatim napišite ugovor o isporuci.
Uređaj može emitovati zapisnike, kolektor stoji na drugoj strani interneta, a prvo pitanje koje svi postavljaju jeste koji tunel izgraditi. Taj okvir počinje na pogrešnom mjestu. Transport određuju format koji uređaj može proizvesti, autentifikacija koju će kolektor prihvatiti i što „isporučeno“ treba značiti kada veza padne. Zapišite ta tri odgovora i transport obično sam sebe izabere.
Pođite od onoga što uređaj može emitovati
U praksi postoje samo tri oblika. Pojedinačni syslog događaji preko UDP-a ili TCP-a, autentifikovano HTTPS slanje ugrađeno u proizvod ili cijele datoteke zapisane na disk koje treba premjestiti. Vatrozid koji može slati samo UDP syslog neće postati TLS pošiljalac zato što ste dodali tunel; i dalje će slati nepotvrđene datagrame, sada unutar šifrovanog omotača.
Zato prvo napravite popis pošiljaoca: protokol, TLS podršku i koja TLS biblioteka, može li provjeriti certifikat kolektora, može li predstaviti klijentski certifikat i preživljava li bafer za slanje restart. Sve što uređaj ne može učiniti mora učiniti nešto drugo na putu, a to nešto drugo postaje dio vašeg dizajna.
TLS syslog: najkraći put kada ga obje strane govore
Ako uređaj podržava syslog preko TLS-a i kolektor ga prekida, koristite to i stanite. Aplikacijski protokol štiti sebe, kolektor autentifikuje pošiljaoca i nema dodatnog skoka čiju dostupnost sada posjedujete. Kvaka je što „TLS syslog“ pokriva širok raspon implementacija i trenutne smjernice za siguran syslog su odmakle od lista šifri u starijim tutorijalima, zbog čega radni prosljeđivač postaje neispravan nakon nadogradnje biblioteke.
Na rsyslogu samo ime transportnog modula govori u kojoj ste eri: lmnsd_gtls obavija GnuTLS, dok lmnsd_ossl obavija OpenSSL i to isporučuju aktualni paketi 8.x. Radnja prosljeđivanja s provjerom certifikata izgleda otprilike ovako, a tačna imena parametara vrijedi provjeriti prema instaliranoj verziji:
action(type="omfwd" target="collector.example" port="6514" protocol="tcp"
StreamDriver.Name="ossl" StreamDriver.Mode="1" StreamDriver.AuthMode="x509/name"
StreamDriver.CAFile="/etc/pki/ca.pem"
queue.type="LinkedList" queue.filename="fwdq" queue.maxDiskSpace="1g"
queue.saveOnShutdown="on" action.resumeRetryCount="-1")
Provjerite krajnju tačku prije nego što počnete otklanjati greške na pošiljaocu. openssl s_client -connect collector.example:6514 -servername collector.example -CAfile /etc/pki/ca.pem -verify_return_error ili završava rukovanje s važećim lancem ili vam tačno kaže koja provjera nije uspjela. Testirajte s uređaja, ne s prijenosnog računara, jer je spremište povjerenja uređaja ono koje je važno.
SFTP: dobar za datoteke, pogrešan za tokove
Isporuka zasnovana na datotekama odgovara uređajima koji pišu rotirane zapisnike i ništa drugo. Prijenos preko SSH-a daje vam ključeve hosta, ključeve po računu i datotečni sistem koji možete revidirati, što je razumna priča o povjerenju za uređaj koji uopće ne može TLS. Loš je izbor za tokove događaja, gdje „datoteka se piše svakog sata“ znači da ispad košta rep tekućeg sata.
Držite provjeru hosta uključenom. Batch poziv koji je isključuje da bi izbjegao upit uništava jedinu autentifikaciju koju transport ima:
sftp -b /etc/logship/batch -o BatchMode=yes -o StrictHostKeyChecking=yes -o IdentitiesOnly=yes -i /etc/logship/id_ed25519 [email protected]
Prikvačite ključ hosta u known_hosts računa tokom pripreme, ograničite račun na ciljni direktorij i preferirajte internal-sftp podsistem s chrootom. Isplanirajte i priču o ponovnom slanju: ako se datoteka pošalje ponovo nakon djelimičnog neuspjeha, kolektor mora razlikovati duplikat od nove datoteke, obično po imenu plus kontrolnom zbiru, a ne po vremenu dolaska.
Kada su lokalni mrežni prolaz ili tunel iskren odgovor
Neki uređaji mogu govoriti samo format koji nitko ne želi izlagati. U tom slučaju ovlašteni kolektor na vlastitoj mreži uređaja prima izvorni format i prosljeđuje ga dalje preko TLS-a. To je legitiman dizajn, ali budite precizni o tome što kupuje: enkripcija koja počinje na mrežnom prolazu ne štiti retroaktivno segment između uređaja i prolaza, pa taj skok i dalje treba vlastitu granicu povjerenja i kontrolu pristupa.
Rutirani tunel lokacije ili uređaja najteža je opcija i prava kada kolektor mora zadržati privatnu adresu i nositi nekoliko usluga, ne samo zapisnike. Donosi planiranje adresa, pravila pristupa, povratne putanje i životni ciklus krajnje tačke tunela. Također ne poboljšava unutrašnji protokol: UDP syslog unutar IPsec tunela i dalje je datagram usluga bez potvrde isporuke.
Što god odabrali, držite autorizaciju kolektora užom od transporta. Identitet tunela pripada krajnjoj tački i ne govori ništa o tome koji je niže postavljeni uređaj proizveo određeno polje imena hosta u poruci.
Napišite ugovor o isporuci prije nego što pošaljete
Enkripcija, autentifikacija i zadržavanje odgovaraju na različita pitanja, a red nije politika zadržavanja. Prije nego prvi zapisnik napusti uređaj, odlučite šta potvrda zapravo znači na ovom kolektoru: primljeno na mreži, prihvaćeno za obradu ili trajno zapisano u pohranu. To su tri različite garancije i samo posljednja preživljava restart kolektora.
Zatim odgovorite na operativna pitanja pismeno. Gdje čekaju neposlani događaji i preživljava li taj bafer prekid napajanja? Šta se dešava kada se napuni i kome se javlja? Kako su ponovni pokušaji ograničeni i kako se prepoznaju duplikati? Koje polje dokazuje identitet pošiljaoca, s obzirom na to da skok prosljeđivanja može prepisati ime hosta?
Držite dizajn dovoljno malim da ga objasnite u jednom pasusu: najmanji podržani transport koji nosi potrebne događaje, plus izričita izjava o garancijama koje ne pruža. Ako odgovor zahtijeva dva skoka, recite to u runbooku i dodijelite svakom skoku vlasnika.