Linux serverlarini mustahkamlash: Kiberxavfsizlikning izchil yo‘riqnomasi

Bugungi kunda butun dunyo infratuzilmasining yuragi sifatida xizmat qilayotgan Linux serverlari korporativ tarmoqlar, bulut xizmatlari hamda davlat muassasalari uchun tayanch nuqtaga aylangan. Ammo texnologiya qanchalik rivojlanmasin, uni quvvatlaydigan serverlar himoyasiz bo‘lsa, barcha zamonaviy imkoniyatlar xavf ostida qoladi. Shuning uchun Linux serverlarining xavfsizligini ta’minlash — har bir tizim ma’murining asosiy vazifalaridan biridir.

Ushbu maqolada sizga Linux serverini har tomonlama mustahkamlash bo‘yicha bosqichma-bosqich, amaliy misollar va buyruqlar bilan boyitilgan, keng qamrovli kiberxavfsizlik yo‘riqnomasi taqdim etiladi.

1. Tizimni dastlabki sozlash va hujjatlashtirish

Har qanday xavfsizlik choralarini boshlashdan oldin, serverga oid muhim ma’lumotlarni qayd etib borish lozim. Bu nafaqat hisobdorlik, balki kelgusida amalga oshirilgan ishlarni nazorat qilish uchun ham zarur.

echo "Serverni mustahkamlash hujjati" > ~/server_hardening.txt
echo "Mashina nomi: $(hostname)" >> ~/server_hardening.txt
echo "IP manzil: $(hostname -I)" >> ~/server_hardening.txt
echo "MAC manzil: $(ip link | grep link/ether | awk '{print $2}')" >> ~/server_hardening.txt
echo "Qat'iylashtirish sanasi: $(date)" >> ~/server_hardening.txt

2. BIOS/UEFI himoyasi

Server xavfsizligini apparat darajasidan boshlang. Quyidagilarni bajaring:

  • Kuchli BIOS/UEFI parolini o‘rnating
  • Secure Boot funksiyasini yoqing
  • Tashqi qurilmalardan yuklanishni taqiqlang
  • Mikrodastur (firmware) yangilanishlarini doimiy amalga oshiring

3. Diskni LUKS orqali shifrlash

Ma’lumotlar o‘g‘irlanishini oldini olish uchun diskni to‘liq shifrlang:

cryptsetup luksFormat /dev/sdb1
cryptsetup luksOpen /dev/sdb1 encrypted_volume
mkfs.ext4 /dev/mapper/encrypted_volume

LUKS bir nechta kalit joylarini qo‘llab-quvvatlaydi, bu esa tiklash imkonini ta’minlab, xavfsizlikni oshiradi.

4. GRUB yuklash dasturini parol bilan himoyalash

GRUB paroli orqali tizim yuklanishidagi istalgan o‘zgartirishlarning oldi olinadi:

grub-mkpasswd-pbkdf2

So‘ngra /etc/grub.d/40_custom fayliga quyidagilarni qo‘shing:

set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.[hash]

Tuzilmani yangilash uchun:

update-grub

5. Kuchli parollar va foydalanuvchi siyosati

Parol siyosatini kuchaytirish orqali foydalanuvchilar hisoblarini himoya qiling:

/etc/pam.d/common-password fayliga quyidagilarni qo‘shing:

password requisite pam_pwquality.so retry=3 minlen=12 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 enforce_for_root

/etc/login.defs faylida esa:

PASS_MAX_DAYS 90
PASS_MIN_DAYS 7
PASS_WARN_AGE 14

6. SSH uchun ikki bosqichli autentifikatsiya

Har bir foydalanuvchining autentifikatsiyasiga qo‘shimcha qatlam qo‘shing:

apt install libpam-google-authenticator

SSH konfiguratsiyasiga quyidagilarni qo‘shing:

auth required pam_google_authenticator.so

/etc/ssh/sshd_config faylini tahrirlab, ChallengeResponseAuthentication yes qatorini yoqing.

7. UFW yordamida xavfsiz tarmoq konfiguratsiyasi

Uncomplicated Firewall (UFW) orqali asosiy portlarga ruxsat bering:

ufw default deny incoming
ufw default allow outgoing
ufw allow ssh
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

8. Iptables bilan chuqurroq tarmoq himoyasi

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
iptables -F
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables-save > /etc/iptables/rules.v4

9. SSH ni mustahkamlash

Port 2222
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AllowUsers user1

10. Fail2Ban bilan xujumlarni bloklash

apt install fail2ban

/etc/fail2ban/jail.local fayliga quyidagilarni yozing:

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5

11. Auditd orqali tizimni kuzatish

apt install auditd audispd-plugins
auditctl -w /etc/passwd -p wa -k user_changes
auditctl -w /etc/shadow -p wa -k password_changes

12. SELinux yoki AppArmor yordamida majburiy ruxsatlar nazorati

apt install apparmor-utils
aa-enforce /etc/apparmor.d/*

SELinux uchun:

setenforce 1

13. Fayl ruxsatlarini to‘g‘ri sozlash

chmod 600 /etc/shadow
chmod 644 /etc/passwd
find /home -type d -exec chmod 750 {} \;
find /etc/ssh/ -name "ssh_host_*_key" -exec chmod 600 {} \;

14. Avtomatik xavfsizlik yangilanishlarini yoqish

apt install unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades

15. Rootkitlarni aniqlash vositalari

apt install rkhunter
rkhunter --update
rkhunter --check

16. Yadro (kernel) darajasida sysctl sozlamalari

cat > /etc/sysctl.d/99-security.conf << EOF
net.ipv4.conf.all.rp_filter=1
net.ipv4.tcp_syncookies=1
fs.suid_dumpable=0
kernel.kptr_restrict=2
EOF
sysctl -p /etc/sysctl.d/99-security.conf

Linux serverini mustahkamlash — bu yakuniy bosqichga ega bo‘lmagan doimiy jarayondir. Yuqoridagi har bir qadam server xavfsizligini oshirishda muhim o‘rin tutadi. Ammo eng muhim tamoyil shuki: har qanday xavfsizlik chorasi — muntazam tekshiruv va yangilanish bilan to‘ldirilmasa, vaqt o‘tishi bilan o‘z kuchini yo‘qotadi.

Aynan shu sababli, siz CIS Benchmarks kabi standartlarga rioya qilgan holda, serverlaringiz uchun yagona xavfsizlik mezonini ishlab chiqing va uni doimiy ravishda amalda qo‘llang.