Server hardening nima va nima uchun kerak
Hardening so'zma-so'z "qotirish" degani โ serverni hujumlarga chidamli qilish jarayoni. Default Linux distributiv ko'p funksional bo'lishi uchun ko'p xizmatlarni yoqib qo'yadi: FTP, Telnet, RPC, Samba va boshqalar. Bularning hammasi attack surface โ ya'ni hujum yuzasini kengaytiradi. Hardening esa shu yuzani imkon qadar kichraytirishni maqsad qiladi.
Sayt.uz amaliyotida har bir yangi server avtomatlashtirilgan hardening skripti orqali sozlanadi. Bu skript CIS Benchmark va NIST tavsiyalariga asoslangan va 200 dan ortiq qoidani bajaradi. Bunday yondashuv qo'lda xato qilish ehtimolini bartaraf etadi va auditda standart natija beradi.
Linux audit va boshlang'ich tekshiruv
Birinchi qadam โ joriy holatni tushunish. Lynis, OpenSCAP yoki tiger kabi vositalar serverni skanerlaydi va xavfsizlik bo'yicha hisobot beradi. Hisobotda ochiq portlar, ishlovchi xizmatlar, fayl ruxsatlari, foydalanuvchi hisoblari va sozlamalar tekshiriladi. Har bir muammo uchun "severity" darajasi va tuzatish bo'yicha tavsiya beriladi.
Audit faqat boshlang'ich emas, balki davom etuvchi jarayon. Sayt.uz da Lynis har hafta avtomatik ishlaydi va natijasi Slack ga yuboriladi. Score 90 dan tushsa, javobgar muhandisga ticket avtomatik yaratiladi va 48 soat ichida tuzatilishi shart.
Keraksiz xizmatlarni o'chirish
"Ishlatilmagan xizmat โ hujum vektor" qoidasi har doim amal qiladi. systemctl list-unit-files buyrug'i barcha enabled xizmatlarni ko'rsatadi. Veb serverga FTP, Telnet, Avahi, CUPS yoki Bluetooth kerak emas. Ularni systemctl disable va systemctl mask buyruqlari orqali butunlay to'xtatish kerak.
Sayt.uz tavsiyasi: production serverga minimum to'plam โ sshd, sizning ilovangiz, monitoring agenti va log forwarder. Boshqa hamma narsa o'chiriladi. Qulaylik uchun base image (Docker yoki AMI) tayyorlanadi va undan barcha serverlar bir xil holatda chiqadi.
Firewall va tarmoq segmentatsiyasi
Firewall hardening ning asosiy qismi. Default ruxsat bilan ishlashdan voz keching โ default deny qoidasi joriy qiling. Faqat ma'lum portlar va ma'lum manbalardan ruxsat bering. iptables, nftables yoki ufw vositalari orqali oddiy va aniq qoidalar yoziladi.
Sayt.uz tarmoq sxemasi: tashqi firewall (Cloudflare WAF) faqat 80 va 443 portlarini ochadi, ichki firewall esa SSH ni faqat bastion IP dan, ma'lumotlar bazasi portini faqat app server IP lardan ruxsat beradi. Bunday segmentatsiya hatto bitta server buzilsa ham, hujumchi boshqa tizimlarga o'tib bo'lmaydi.
SELinux va majburiy ruxsatlar
SELinux Linux yadrosining qo'shimcha xavfsizlik qatlami bo'lib, har bir process va fayl uchun majburiy ruxsatlar tizimini joriy qiladi. Hatto root foydalanuvchi ham SELinux qoidasini buza olmaydi. AppArmor โ Ubuntu va Debian uchun shunga o'xshash mexanizm.
Ko'pchilik administrator SELinux ni "ishlamaydi" deb o'chirib qo'yadi, lekin bu katta xato. Sayt.uz amaliyotida SELinux enforcing rejimda ishlaydi va har bir custom ilova uchun maxsus policy yoziladi. Boshlang'ich vaqtda permissive rejimda qoldirib, audit log ni tahlil qilish va shundan keyin enforcing ga o'tish to'g'ri yondashuvdir.
Sayt.uz amaliyot
Sayt.uz da hardening jarayoni: barcha serverlar Ansible playbook orqali sozlanadi (CIS Benchmark Level 2), SELinux enforcing, fail2ban SSH va veb uchun, auditd barcha critical fayllar uchun, unattended-upgrades yoqilgan, root login butunlay man qilingan, sudo har bir buyruq uchun loglanadi. Har oyda Lynis audit, har choragda penetration test o'tkaziladi va natijalar boshqaruvga hisobot beriladi.