CyberSecurity · 21-dars · 9-sinf (Server Defense Track)
Fan: Kiberxavfsizlik · Linux Server Defense Kohorta: 9-sinf Kiber-Muhandis Hafta: 5 (1-soat)

Linux Server Xavfsizligi va SSH Himoyasi

Internetga ulangan har bir Linux server har soniyada minglab avtomatlashgan botlar va parollarni taxmin qiluvchi Brute-force hujumlariga uchraydi. Standart sozlamalar va ochiq root paroli — buzib kirishga ochiq taklifnomadir. Bugungi darsda siz serverni sanoat standartida himoyalashni: Ed25519 SSH kalitlari orqali parolsiz kirishni, standart 22-portni o'zgartirishni, UFW Firewall devorini qurishni va Fail2ban orqali hujumchilarni avtomatik bloklashni o'rganasiz.

Internetdagi real xavf

22-Port Bo'ron: Nega Standart Server 5 Daqiqada Buziladi?

Brute-Force va Botnet Hujumlari

  • Global skanerlar: Shodan va botnetlar doimiy ravishda ochiq 22-portlarni qidiradi.
  • Lug'at hujumlari: 'root', 'admin', 'ubuntu' kabi foydalanuvchilarga millionlab parollar sinab ko'riladi.
  • Resurslar o'g'irlanishi: Server buzilsa, u darhol kiber-qurol yoki kripto-maynerga aylanadi.

Statistika va Faktlar

Yangi ochilgan virtual server (VPS) internetga ulangach, birinchi hujum o'rtacha 3 daqiqa 40 soniyada boshlanadi. Kuniga 1 ta serverga o'rtacha 12 000 dan ortiq ruxsatsiz kirish urinishlari yoziladi.

Kriptografik kirish

SSH Kalitlar Qanday Ishlaydi? Ochiq va Maxfiy Kalit Juftligi

1. Maxfiy Kalit (Private Key)

Sizning noutbukingizda qoladi (`~/.ssh/id_ed25519`). Hech qachon serverga yoki internetga yuborilmaydi. Shaxsiy raqamli imzo vazifasini bajaradi.

Maxfiy · Qattiq himoya

2. Ochiq Kalit (Public Key)

Serverdagi `~/.ssh/authorized_keys` fayliga yoziladi (`.pub`). Uni istalgan odam ko'rishi mumkin. Bu qulf vazifasini bajaradi.

Ochiq · Serverga yuklanadi

3. Challenge-Response Muloqot

Server tasodifiy son (challenge) yaratib ochiq kalit bilan shifrlaydi. Noutbuk uni maxfiy kalit bilan yechib qaytaradi. Parol tarmoqqa chiqmaydi!

100% Brute-Forcega chidamli
Standart muhandislik amaliyoti

Serverni Qulflashning 4 Ta Oltin Qoidasi (Hardening Checklist)

1. Root Parolini va Loginini O'chirish

  • `PermitRootLogin no` — to'g'ridan-to'g'ri root bo'lib kirishni man etish.
  • `PasswordAuthentication no` — parolli kirishni butunlay to'xtatish (faqat SSH kalit).
  • Har bir dasturchi o'z nomidagi `sudo` foydalanuvchisi bilan kirishi shart.

2. Port Ko'chirish va Tarmoq Himoyasi

  • Port 22 -> 2222: Standart portni o'zgartirish botnet skanerlarining 99% ini to'xtatadi.
  • UFW Firewall: Faqat kerakli portlarni (80, 443, 2222) ochib, qolgan barchasini yopish.
  • Fail2ban: 3 marta noto'g'ri uringan IP manzilni 24 soatga iptables darajasida qora ro'yxatga olish.
/etc/ssh/sshd_config

Haqiqiy Xavfsiz SSH Konfiguratsiyasi (sshd_config)

sshd_config Faylidagi Kalit Sozlamalar

  • Port 2222: Standart port o'rniga noan'anaviy yuqori port.
  • PermitRootLogin no: Root hisobi xakerlar uchun asosiy nishon bo'lgani sababli yopiladi.
  • PasswordAuthentication no: Parolli hujumlarni ildizi bilan yo'q qiladi.
  • MaxAuthTries 3: 3 ta muvaffaqiyatsiz urinishdan so'ng sessiya uziladi.

sshd_config Xavfsizlik Bloki

# /etc/ssh/sshd_config.d/hardened.conf
Port 2222
Protocol 2
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
X11Forwarding no
Tarmoq qalqoni

UFW (Uncomplicated Firewall): Server Chegarasini Himoyalash

UFW Xavfsizlik Buyruqlari

  • Default Deny: Barcha kiruvchi ulanishlarni sukut bo'yicha bloklash.
  • SSH Portini ochish: Avval yangi portni ochmasdan UFW ni yoqmang!
  • Veb-trafik: 80 (HTTP) va 443 (HTTPS) portlariga ruxsat berish.

Terminalda UFW Ni Ishga Tushirish

# 1. Barcha kiruvchilarni yopish
sudo ufw default deny incoming
sudo ufw default allow outgoing

# 2. Xavfsiz SSH va Veb portlarni ochish
sudo ufw allow 2222/tcp comment 'Hardened SSH'
sudo ufw allow 80/tcp   comment 'Web HTTP'
sudo ufw allow 443/tcp  comment 'Web HTTPS SSL'

# 3. Faollashtirish va holatni tekshirish
sudo ufw enable
sudo ufw status verbose
Aqlli mudofaa

Fail2ban: Hujumchilarni Jonli Efirda Izolyatsiya Qilish

Qanday Ishlaydi?

  • Loglarni skanerlaydi: `/var/log/auth.log` faylidagi har bir kirish urinishini kuzatadi.
  • Qoidabuzarlikni hisoblaydi: Masalan, 10 daqiqa ichida 3 ta xato urinish.
  • Iptables qoidasi yozadi: Hujumchi IP-si to'g'ridan-to'g'ri Linux yadrosida bloklanadi.

Fail2ban Jail Sozlamasi (jail.local)

# /etc/fail2ban/jail.d/sshd.local
[sshd]
enabled  = true
port     = 2222
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 3
findtime = 600
bantime  = 86400  # 24 soatga to'liq bloklash!

# Bloklangan IP larni ko'rish:
# sudo fail2ban-client status sshd
Haqiqiy insident tahlili

Kompaniyaning 50 000$ Lik Xatosi: Ochiq Root Paroli

Voqea Tafsiloti

Stajyor dasturchi test maqsadida AWS EC2 server ochadi va tezda kirish uchun root:admin2024! parolini o'rnatadi. 2 soat o'tgach, serverga Xitoy va Sharqiy Yevropa botnetlari kirib oladi.

Natijalar va Xarajatlar

  • Kripto-mayning: Serverda Monero mayneri ishga tushirilib, AWS hisobi 50 000$ ga yetadi.
  • Ma'lumotlar sizishi: Serverdagi barcha mijozlar bazasi o'g'irlanadi va Darknetga sotuvga qo'yiladi.
  • Oddiy yechim: Agar SSH kalit o'rnatilib, parol o'chirilganda, bu hujum 0% muvaffaqiyatga ega bo'lardi!
Mustaqil laboratoriya · 12 daqiqa

Amaliy Topshiriq: Kiber-Serverni Qulflash Protokoli

Laboratoriya Bosqichlari

  • 1. SSH Kalit generatsiya: `ssh-keygen -t ed25519 -C 'ismingiz@target.uz'`
  • 2. Kalitni serverga yuklash: `ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server`
  • 3. sshd_config ni tahrirlash: Port 2222, Root va Parol o'chiriladi.
  • 4. UFW va Fail2ban: Port 2222, 80, 443 ruxsat berilib, faollashtiriladi.

O'lchanadigan Natija (Definition of Done)

Terminalda parolsiz `ssh -p 2222 user@server` orqali ulanish muvaffaqiyatli o'tishi va parolli urinish "Permission denied (publickey)" xatosi bilan darhol rad etilishi shart!

Kiber-inspeksiya

Xavfsizlik Auditi: 5 Ta Nazorat Nuqtasi

1. Kalit Turi

Ed25519 ishlatildimi? RSA-1024 kabi eskirgan zaif kalitlar taqiqlanadi.

2. Parol O'chiqmi?

`PasswordAuthentication no` tekshirildimi? Parol bilan kirish urinishi xato berishi shart.

3. UFW Holati

`sudo ufw status` holati 'active' va faqat 2222, 80, 443 ochiqmi?

10 ballik tizim

Darsni Baholash Mezonlari (10 Ball)

A'lo (9–10 Ball)

  • Ed25519 kalit generatsiya qilingan.
  • Port 2222 ga o'zgartirilgan va root o'chirilgan.
  • UFW va Fail2ban faol ishlamoqda.
  • Varaqa 100% to'ldirilgan.

Yaxshi (7–8 Ball)

  • SSH kalit o'rnatilgan, parollar o'chirilgan.
  • UFW yoqilgan, lekin port 22 da qolgan.
  • Varaqa 80% to'ldirilgan.

Qoniqarli (5–6 Ball)

  • Faqat kalit yaratilgan, server sozlanmagan.
  • UFW yoqilmagan yoki xatoliklar bor.
  • Varaqa to'liq emas.
Uyga vazifa

Xulosa va Uy Vazifasi: O'z Serveringizni Himoyalang

Dars Xulosasi

Linux xavfsizligi tasodif emas — bu qat'iy qoidalar zanjiri. SSH kaliti + Port o'zgartirish + UFW Firewall + Fail2ban kombinatsiyasi serveringizni internetdagi ommaviy avtomatlashgan hujumlarning 99.9% idan ishonchli himoya qiladi.

Uy Vazifasi (10 Ball)

  • Amaliy: O'z kompyuteringizda yoki virtual mashinada Ed25519 SSH kalit juftligini yarating.
  • Tahlil: `auth.log` faylidan muvaffaqiyatsiz kirish urinishlarini `grep 'Failed password'` bilan tahlil qiling.
  • Varaqa: Ish varaqasidagi barcha kiber-xavfsizlik savollarini to'ldirib topshiring.
Target International School Target International School Введение 1 / 1 0–3