Telegram
+998 (71) 205-80-00

Serverning bazaviy himoyasi: SSH, firewall, fail2ban

E’lon qilingan: 25.07.26
Ulashish

Sozlanmagan yangi VPS — ochiq eshik: botlar sutkalab SSH orqali parollarni tanlaydi va teshiklarni qidiradi. Yaxshi xabar — bazaviy himoya 15–20 daqiqa oladi va avtomatik hujumlarning aksariyatini yopadi. Quyida ikki OS oilasi uchun bosqichma-bosqich minimum: Ubuntu / Debian (paket menejeri apt, firewall ufw) va AlmaLinux / Rocky / CentOS (paket menejeri dnf, firewall firewalld).

Nimadan boshlash kerak

  • Tizimni yangilang server yaratilgandan so‘ng darhol.
  • Alohida administrator huquqli foydalanuvchi yarating — root ostida ishlamang.
  • SSH-kalit orqali kirishni sozlang va parol bilan kirishni o‘chiring.
  • Firewall’ni yoqing va faqat kerakli portlarni qoldiring.
  • fail2ban va avtomatik xavfsizlik yangilanishlarini o‘rnating.

Tartib muhim. Avval yangi foydalanuvchi uchun kalit bilan kirishni sozlang va tekshiring, faqat shundan keyin parol va root’ni o‘chiring — aks holda o‘zingizni kirishdan mahrum qilishingiz mumkin. Yangi kirish ishlashiga ishonch hosil qilguningizcha ikkinchi SSH-sessiyani ochiq saqlang.

1. Tizim yangilanishlari

Ubuntu / Debian

sudo apt update && sudo apt upgrade -y

AlmaLinux / Rocky / CentOS

sudo dnf upgrade -y

So‘ng avtomatik xavfsizlik yangilanishlarini yoqing, muhim patchlar o‘zi o‘rnatilishi uchun.

Ubuntu / Debian

sudo apt install -y unattended-upgrades sudo dpkg-reconfigure -plow unattended-upgrades   # «Yes» ni tanlang

AlmaLinux / Rocky / CentOS

sudo dnf install -y dnf-automatic # /etc/dnf/automatic.conf da ko‘rsating: apply_updates = yes sudo systemctl enable --now dnf-automatic.timer

2. root o‘rniga alohida foydalanuvchi

root ostida ishlash xavfli: har qanday xato yoki buzish darhol to‘liq nazoratni beradi. Oddiy foydalanuvchi yarating va unga administrator huquqlarini bering. E’tibor bering: Ubuntu/Debian’da bu sudo guruhi, AlmaLinux/Rocky/CentOS’da — wheel guruhi.

Ubuntu / Debian

sudo adduser myuser sudo usermod -aG sudo myuser

AlmaLinux / Rocky / CentOS

sudo useradd myuser sudo passwd myuser sudo usermod -aG wheel myuser

root’ni cheklashdan oldin yangi foydalanuvchi sudo orqali buyruq bajara olishini tekshiring.

3. SSH-kalit orqali kirish

Kalit paroldan ishonchliroq va tanlab bo‘lmaydi. Quyidagi buyruqlar barcha OS uchun bir xil. Agar kalit hali bo‘lmasa, uni o‘z kompyuteringizda yarating:

ssh-keygen -t ed25519 -C "moy-noutbuk"

Ochiq kalitni serverga nusxalang (kerakli foydalanuvchi uchun):

ssh-copy-id myuser@server_IP # so‘ng kalit bilan kirishni tekshiring: ssh myuser@server_IP

Maxfiy kalitni hech kimga bermang. Serverga faqat ochiq kalit (.pub) yuklanadi. Maxfiysi qurilmangizda qoladi.

4. SSH sozlamalarini kuchaytirish

Kalit bilan kirish ishlagandan so‘ng, root va parol bilan kirishni o‘chiring. Konfiguratsiya fayli /etc/ssh/sshd_config barcha OS uchun bir xil. Parametrlarni bering (yoki izohdan chiqaring):

PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes

O‘zgarishlarni qo‘llang. Muhim: SSH xizmati Ubuntu/Debian’da ssh, AlmaLinux/Rocky/CentOS’da — sshd deb ataladi.

Ubuntu / Debian

sudo systemctl restart ssh

AlmaLinux / Rocky / CentOS

sudo systemctl restart sshd

Joriy sessiyani darhol yopmang. Yangi SSH-ulanish oching va kalit bilan kirish ishlashiga ishonch hosil qiling. Nimadir noto‘g‘ri bo‘lsa — ochiq sessiyada sozlamalarni qaytarasiz.

Standart 22-portni nostandartga o‘zgartirish — majburiy emas, lekin botlardan loglardagi shovqinni kamaytiradi. Portni o‘zgartirsangiz, uni firewall’da oching (RHEL’da SELinux yoqilgan bo‘lsa — portga ruxsat ham bering: sudo semanage port -a -t ssh_port_t -p tcp <port>).

5. Firewall

Qoida oddiy: hammasini yopish, faqat kerakligini ochish (odatda SSH va veb-portlar). Ubuntu/Debian’da bu ufw, AlmaLinux/Rocky/CentOS’da — firewalld.

Ubuntu / Debian (ufw)

sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow OpenSSH        # yoki sizning SSH-portingiz sudo ufw allow 80 sudo ufw allow 443 sudo ufw enable sudo ufw status

AlmaLinux / Rocky / CentOS (firewalld)

sudo systemctl enable --now firewalld sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload sudo firewall-cmd --list-all

Avval SSH’ga ruxsat bering, keyin firewall’ni yoqing. Kiruvchilarni SSH qoidasisiz yopsangiz, serverga kirishni yo‘qotishingiz mumkin.

6. Tanlashdan himoya (fail2ban)

fail2ban loglarni o‘qiydi va parollarni tanlayotgan IP’larni banlaydi. Ubuntu/Debian’da u to‘g‘ridan-to‘g‘ri o‘rnatiladi; AlmaLinux/Rocky/CentOS’da EPEL repozitoriysi kerak.

Ubuntu / Debian

sudo apt install -y fail2ban sudo systemctl enable --now fail2ban

AlmaLinux / Rocky / CentOS

sudo dnf install -y epel-release sudo dnf install -y fail2ban sudo systemctl enable --now fail2ban

SSH bo‘yicha holat va banlangan manzillarni tekshirish (bir xil):

sudo fail2ban-client status sshd

Sozlash — /etc/fail2ban/jail.local da. U yerda ban vaqti va urinishlar soni beriladi. RHEL’da SSH himoyasi uchun [sshd] seksiyasini enabled = true va backend = systemd (yoki logpath = /var/log/secure) bilan yarating; Ubuntu/Debian’da SSH-jail sukut bo‘yicha yoqilgan.

7. Ortiqchasini olib tashlash

  • Xizmatlar kamroq — xavf kamroq. Ishlatmaydiganingizni o‘chiring: sudo systemctl disable --now <xizmat>.
  • Ochiq portlarni tekshiring: sudo ss -tulpn — tashqariga faqat kerakligi qarashi kerak (buyruq barcha OS’da ishlaydi).
  • Boevoy serverga «sinab ko‘rish uchun» dastur o‘rnatmang va ishlatilmaydigan paketlarni o‘chiring.

AlmaLinux/Rocky/CentOS’da SELinux — o‘chirmang. U himoya qatlamini qo‘shadi. enforcing rejimini qoldiring (tekshirish — getenforce). Ubuntu/Debian’da shunga o‘xshash rolni sukut bo‘yicha yoqilgan AppArmor bajaradi.

8. Zaxiralar — xavfsizlikning bir qismi

Hatto mukammal himoyalangan serverni ham tiklash imkoniyati bo‘lgani ma’qul. Zaxira nusxalari — shifrlovchilardan, xatolardan va nosozliklardan himoya.

  • Snapshotlar serverplus panelida — tez qaytish.
  • Ma’lumotlarni S3 obyekt xotirasiga yuklash serverplus — serverdan alohida nusxa.
  • 3-2-1 qoidasi: uchta nusxa, ikki xil tashuvchida, biri — serverdan tashqarida.

Tiklashni tekshiring. Hech qachon tiklanmagan zaxira — bu hali zaxira emas. Vaqti-vaqti bilan nusxani yoyib ko‘ring.

Qisqa nazorat ro‘yxati

  • Tizim yangilangan, avtomatik xavfsizlik yangilanishlari yoqilgan.
  • Alohida administrator foydalanuvchi bor (sudo yoki wheel), root SSH orqali o‘chirilgan.
  • SSH-kalit orqali kirish, SSH paroli o‘chirilgan.
  • Firewall yoqilgan (ufw yoki firewalld), faqat kerakli portlar ochiq.
  • fail2ban ishlaydi.
  • SELinux/AppArmor ishchi rejimda; snapshotlar va S3 zaxiralari sozlangan.

Ko‘p beriladigan savollar

Parol bilan kirishni o‘chirish majburiymi?

Qat’iy tavsiya etiladi. Parolni tanlab bo‘ladi, kalitni — deyarli yo‘q. Agar parol zaxira variant sifatida kerak bo‘lsa, uni uzun va noyob qiling va albatta fail2ban o‘rnating.

Buyruqlar mening OS’imga mos kelmayapti.

Maqolada ikki to‘plam: apt/ufw — Ubuntu/Debian uchun, dnf/firewalld — AlmaLinux/Rocky/CentOS uchun. Tizimingizni bilish: cat /etc/os-release.

Standart SSH-portni o‘zgartirish kerakmi?

Bu o‘zi «himoya» emas, lekin avtomatik hujumlar oqimini va loglardagi axlatni kamaytiradi. RHEL’da SELinux bilan yangi portga ruxsat berishni unutmang (SSH bo‘limiga qarang). Kalitlar va fail2ban bilan birga foydali, ular o‘rniga emas.

Men tasodifan SSH kirishni yopib qo‘ydim. Nima qilish kerak?

serverplus panelidagi veb-konsoldan (VNC) foydalaning — u SSH’ni chetlab serverga kirish beradi. U orqali sshd_config sozlamalarini yoki firewall qoidalarini qaytarish mumkin.

Serverni buzishga urinishganini qanday bilaman?

Kirish loglariga va fail2ban holatiga qarang. Kirish jurnali: Ubuntu/Debian’da /var/log/auth.log, AlmaLinux/Rocky/CentOS’da /var/log/secure (yoki sudo journalctl -u ssh / sshd). Ko‘p muvaffaqiyatsiz urinishlar — internet uchun me’yor; kalitlar va firewall bilan ular natijasiz.

Tavsiya etamiz
Loyihangiz uchun eng yaxshi yechimni tanlaymiz
Ma’lumotlarni to‘ldiring va menejer tasdiqlash uchun siz bilan bog‘lanadi
Texnik qo‘llab-quvvatlash raqami
+998 (71) 205-80-00
Bog‘lanish uchun e-mail
info@serverplus.uz
Ish soatlari
Maslahatni qanday olish sizga qulay?
Sizni nima qiziqtiradi? (ixtiyoriy)
Bepul maslahat
Operator emas, muhandis javob beradi
Spam va ortiqcha savdolarsiz
Avval mustaqil sinab ko‘rmoqchimisiz?Har bir yangi foydalanuvchiga VPS, Dedicated Server, S3-xotira va Kubernetesni test qilish uchun 100 000 so‘m bonus beriladi.
Ro‘yxatdan o‘tish va bonus olish
Ma’lumotlaringizni uchinchi shaxslarga bermaymiz
Tarqatmalarimizga obuna bo‘ling

Xosting sohasidagi yangiliklardan birinchilardan bo‘lib xabardor bo‘ling