Production uchun Ubuntu serverni dastlabki sozlash: chek-list
Amaliyot2 daqInnovialabs tahririyati
Qisqacha
Yangi serverda tizimni yangilang, SSH kalit bilan kiradigan sudo foydalanuvchi yarating, root va parol bilan kirishni yoping, ufw’ni yoqing, vaqtni sozlang, swap qo‘shing, fail2ban va xavfsizlik avtoyangilanishlarini o‘rnating.
Qisqa javob
Ochiq IP’li yangi serverni deyarli darhol skanerlay boshlashadi. Shuning uchun ilovani o‘rnatishdan oldin bazaviy chek-listdan o‘ting:
- Paketlarni yangilash.
- SSH kalit orqali kiradigan sudo foydalanuvchi yaratish.
- Root va parol bilan kirishni taqiqlash.
- ufw firewall’ni yoqish.
- Vaqt zonasi va vaqt sinxronizatsiyasini sozlash.
- Xotira kam bo‘lsa, swap qo‘shish.
- fail2ban va unattended-upgrades o‘rnatish.
- Bazaviy dasturlarni o‘rnatish.
Quyidagi buyruqlar Ubuntu’ning amaldagi LTS versiyalari uchun.
1. Yangilanishlar
apt update && apt upgrade -y
reboot # agar yadro yangilangan bo‘lsa
2. Sudo foydalanuvchi
Doim root ostida ishlash xavfli: har qanday xato to‘liq huquqlar bilan bajariladi.
adduser deploy
usermod -aG sudo deploy
Ochiq kalitingizni serverga nusxalang (lokal kompyuterdan):
ssh-copy-id deploy@SERVER_IP
SSH sozlamalarini o‘zgartirishdan oldin yangi foydalanuvchi bilan kirishni alohida oynada tekshiring.
3. SSH himoyasi
/etc/ssh/sshd_config (yoki /etc/ssh/sshd_config.d/ ichidagi fayl)da quyidagilarni belgilang:
PermitRootLogin no
PasswordAuthentication no
So‘ng sudo systemctl restart ssh. SSH portini o‘zgartirish loglardagi shovqinni kamaytiradi, lekin kalit orqali kirishning o‘rnini bosmaydi.
4. ufw firewall
sudo ufw allow OpenSSH
sudo ufw allow 80,443/tcp
sudo ufw enable
sudo ufw status
Avval SSH’ga ruxsat bering, keyin ufw’ni yoqing — aks holda kirish imkonini yo‘qotishingiz mumkin. Ma’lumotlar bazasi va ichki servislarni tashqariga ochmang.
E’tibor bering: Docker portlarni ufw qoidalarini chetlab o‘tib nashr qiladi. Docker ishlatsangiz, portlarni 127.0.0.1ga bog‘lang yoki filtrlashni alohida sozlang.
5. Vaqt
sudo timedatectl set-timezone Asia/Tashkent
timedatectl
Vaqt sinxronizatsiyasi faol ekanini tekshiring. Ko‘p jamoalar turli tizimlar loglari mos kelishi uchun serverlarni UTC’da saqlaydi — bitta variantni tanlang va unga amal qiling.
6. Swap
RAM kam bo‘lgan serverlarda swap xotira cho‘qqilarida jarayonlar o‘chib qolishidan saqlaydi:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Hajmini yuklamaga qarab tanlang. Swap — sug‘urta, xotiraning o‘rnini bosmaydi.
7. fail2ban va avtoyangilanishlar
sudo apt install -y fail2ban unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
fail2ban bir qator muvaffaqiyatsiz kirish urinishlaridan keyin IP’ni bloklaydi. unattended-upgrades xavfsizlik yangilanishlarini avtomatik o‘rnatadi.
8. Bazaviy dasturlar
Odatiy to‘plam: git, curl, htop, reverse proxy sifatida nginx, Docker yoki kerakli runtime, HTTPS uchun certbot. Faqat haqiqatan ishlatiladigan narsani o‘rnating.
Ko‘p uchraydigan xatolar
- Kalit orqali kirishni tekshirmasdan parol bilan kirishni o‘chirish.
- SSH qoidasisiz ufw’ni yoqish.
- Ma’lumotlar bazasi portini internetga ochish.
- Backup va disk monitoringini sozlamaslik — joy tugaguncha server «ishlayveradi».