Qurilma jurnallarni chiqara oladi, yig‘uvchi internetning narigi tomonida turadi va hamma birinchi so‘raydigan savol qaysi tunnel qurish kerakligi. Bu ramka noto‘g‘ri joydan boshlanadi. Transportni qurilma ishlab chiqara oladigan format, yig‘uvchi qabul qiladigan autentifikatsiya va aloqa uzilganda «yetkazildi» nimani anglatishi kerakligi belgilaydi. Shu uch javobni yozib qo‘ying, transport odatda o‘zi tanlanadi.

Qurilma chiqara oladigan narsadan boshlang

Amalda faqat uch shakl bor. UDP yoki TCP orqali alohida syslog hodisalari, mahsulotga o‘rnatilgan autentifikatsiyalangan HTTPS yuklash yoki diskka yozilib, ko‘chirilishi kerak bo‘lgan to‘liq fayllar. Faqat UDP syslog yubora oladigan xavfsizlik devori tunnel qo‘shganingiz uchun TLS yuboruvchiga aylanmaydi; u hali ham tasdiqlanmagan datagrammalarni yuboradi, endi shifrlangan konvert ichida.

Shuning uchun avval yuboruvchini inventarizatsiya qiling: protokol, TLS qo‘llab-quvvatlashi va qaysi TLS kutubxonasi, yig‘uvchining sertifikatini tekshira oladimi, mijoz sertifikatini taqdim eta oladimi va yuborish buferi qayta yuklashdan o‘tadimi. Qurilma qila olmaydigan hamma narsani yo‘ldagi boshqa narsa qilishi kerak va o‘sha boshqa narsa dizayningizning qismiga aylanadi.

TLS syslog: ikki tomon ham gapirganda eng qisqa yo‘l

Agar qurilma TLS orqali syslogni qo‘llab-quvvatlasa va yig‘uvchi uni tugatsa, shundan foydalaning va to‘xtang. Ilova protokoli o‘zini himoya qiladi, yig‘uvchi yuboruvchini autentifikatsiya qiladi va endi sizga tegishli qo‘shimcha sakrash yo‘q. Qopqon shundaki, «TLS syslog» keng ko‘lamli tatbiqlarni qamrab oladi va xavfsiz syslog bo‘yicha joriy yo‘riqnoma eski qo‘llanmalardagi shifr ro‘yxatlaridan ilgarilab ketgan, shuning uchun ishlayotgan forwarder kutubxona yangilangandan keyin buziladi.

rsyslogda transport modulining nomi o‘zi qaysi davrda ekaningizni aytadi: lmnsd_gtls GnuTLSni o‘raydi, lmnsd_ossl esa OpenSSLni o‘raydi va joriy 8.x paketlari shuni yetkazib beradi. Sertifikat tekshiruvi bilan yuborish amali taxminan shunday ko‘rinadi va aniq parametr nomlarini o‘rnatilgan versiyangiz bilan solishtirishga arziydi:

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")

Yuboruvchini tuzatishdan oldin oxirgi nuqtani tekshiring. openssl s_client -connect collector.example:6514 -servername collector.example -CAfile /etc/pki/ca.pem -verify_return_error yoki haqiqiy zanjir bilan qo‘l berib ko‘rishishni yakunlaydi, yoki qaysi tekshiruv muvaffaqiyatsiz bo‘lganini aniq aytadi. Qurilmadan sinab ko‘ring, noutbukingizdan emas, chunki qurilmaning ishonch ombori muhim.

SFTP: fayllar uchun yaxshi, oqimlar uchun noto‘g‘ri

Faylga asoslangan yetkazib berish faqat aylanadigan jurnallarni yozadigan qurilmalarga mos keladi. SSH orqali uzatish sizga xost kalitlari, har bir hisob uchun kalitlar va audit qilishingiz mumkin bo‘lgan fayl tizimini beradi, bu TLSni umuman qila olmaydigan qurilma uchun oqilona ishonch hikoyasidir. Hodisalar oqimi uchun bu yomon tanlov, chunki «fayl har soatda yoziladi» degani uzilish sizga joriy soatning dumini yo‘qotishini bildiradi.

Xost tekshiruvini yoqilgan holda qoldiring. So‘rovdan qochish uchun uni o‘chiradigan to‘plam chaqiruvi transportning yagona autentifikatsiyasini yo‘q qiladi:

sftp -b /etc/logship/batch -o BatchMode=yes -o StrictHostKeyChecking=yes      -o IdentitiesOnly=yes -i /etc/logship/id_ed25519 [email protected]

Tayyorlash paytida xost kalitini hisobning known_hosts ichiga mahkamlang, hisobni maqsadli katalog bilan cheklang va chroot bilan internal-sftp quyi tizimini afzal ko‘ring. Qayta yuborish hikoyasini ham rejalashtiring: agar fayl qisman muvaffaqiyatsizlikdan keyin qayta yuborilsa, yig‘uvchi nusxani yangi fayldan ajrata olishi kerak, odatda nom va nazorat summasi bo‘yicha, kelish vaqti bo‘yicha emas.

Mahalliy shlyuz yoki tunnel halol javob bo‘lganda

Ba’zi qurilmalar hech kim oshkor qilishni xohlamaydigan formatdagina gapira oladi. Bunday holda qurilmaning o‘z tarmog‘idagi vakolatli yig‘uvchi tabiiy formatni qabul qiladi va uni TLS orqali oldinga uzatadi. Bu qonuniy dizayn, lekin u nima sotib olishini aniq ayting: shlyuzda boshlanadigan shifrlash qurilma va shlyuz orasidagi segmentni orqaga qarab himoya qilmaydi, shuning uchun bu sakrash hali ham o‘z ishonch chegarasi va kirish nazoratiga muhtoj.

Marshrutlangan sayt yoki qurilma tunneli eng og‘ir variant va yig‘uvchi shaxsiy manzilni saqlab qolishi kerak bir nechta xizmatni ko‘tarish kerak bo‘lganda to‘g‘ri, faqat jurnallarni emas. U manzillarni rejalashtirish, kirish qoidalari, qaytish yo‘llari va tunnel oxirgi nuqtasining hayot tsiklini olib keladi. U ichki protokolni ham yaxshilamaydi: IPsec tunneli ichidagi UDP syslog hali ham yetkazib berish tasdig‘i bo‘lmagan datagramma xizmati.

Nima tanlasangiz ham, yig‘uvchi vakolatini transportdan torroq saqlang. Tunnel identifikatori oxirgi nuqtaga tegishli va xabardagi ma’lum bir xost nomi maydonini qaysi quyi qurilma yaratgani haqida hech narsa aytmaydi.

Yuborishdan oldin yetkazib berish shartnomasini yozing

Shifrlash, autentifikatsiya va saqlash turli savollarga javob beradi, navbat esa saqlash siyosati emas. Birinchi jurnal qurilmadan chiqishidan oldin bu yig‘uvchida tasdiq aslida nimani anglatishini hal qiling: tarmoqda qabul qilindi, ishlov berish uchun qabul qilindi yoki omborga mustahkam yozildi. Bu uch xil kafolat va faqat oxirgisi yig‘uvchining qayta yuklanishidan o‘tadi.

So‘ngra operatsion savollarga yozma javob bering. Yuborilmagan hodisalar qayerda kutadi va bu bufer elektr uzilishiga chidaydimi? U to‘lganda nima bo‘ladi va kimga xabar beriladi? Qayta urinishlar qanday cheklanadi va nusxalar qanday aniqlanadi? Qaysi maydon yuboruvchining shaxsini isbotlaydi, axir yuborish sakrashi xost nomini qayta yozishi mumkin?

Dizaynni bitta xatboshida tushuntirish mumkin bo‘ladigan darajada kichik saqlang: kerakli hodisalarni tashiydigan eng kichik qo‘llab-quvvatlanadigan transport, ustiga u bermaydigan kafolatlar haqida aniq bayonot. Agar javob ikki sakrashni talab qilsa, buni runbookda ayting va har bir sakrashga mas’ul tayinlang.

O'xshash maqolalar