Wolkra

Bələdçilər

Ubuntu serverini necə qorumalı

Ubuntu 24.04 serverini addım-addım qoruyun: yalnız SSH açarları, UFW, Fail2ban, avtomatik yeniləmələr, bulud firewall-u, audit və ehtiyat nüsxələr. Real əmrlər və yoxlamalar.

Yenilənib: 5 dəq oxu

Ubuntu serverini qorumaq üçün SSH-a yalnız açarlarla icazə verin, standart olaraq hər şeyi rədd edən firewall işlədin, təhlükəsizlik yeniləmələrini avtomatik quraşdırın, təkrarlanan uğursuz girişləri bloklayın, yalnız lazım olan servisləri açıq saxlayın və yoxlanılmış ehtiyat nüsxələriniz olsun. Bu altı addım ictimai serverin qarşılaşdığı hücumların böyük əksəriyyətini dayandırır.

Əmrlər Ubuntu 24.04 LTS üçündür və kiçik fərqlərlə Debian 12-də də işləyir. Onları sudo hüququ olan istifadəçi kimi işlədin. Əsas addımları hələ atmamısınızsa, yeni VPS-də ilk addımlar bələdçisindən başlayın.

1. Əvvəlcə yeniləyin, sonra yenilənmiş qalın

bash
sudo apt update && sudo apt full-upgrade -y
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

Taymerin aktiv olduğunu yoxlayın:

bash
systemctl list-timers | grep apt

Artıq təhlükəsizlik yeniləmələri hər gün quraşdırılır. Vaxtaşırı cat /var/run/reboot-required ilə yenidən başlatmanın gözlənilib-gözlənilmədiyini yoxlayın.

2. SSH-ı məhdudlaşdırın

Yalnız açarlar

Açarınızın sudo istifadəçisi üçün işlədiyinə əmin olun (baxın: SSH açarları). Sonra:

bash
sudo tee /etc/ssh/sshd_config.d/10-hardening.conf >/dev/null <<'EOF'
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
LoginGraceTime 20
X11Forwarding no
AllowUsers deploy
EOF
sudo sshd -t && sudo systemctl reload ssh
  • AllowUsers SSH-ı adını çəkdiyiniz hesablarla məhdudlaşdırır. deploy sözünü öz istifadəçinizlə əvəz edin.
  • sshd -t faylı yoxlayır; heç nə çap etmirsə, sintaksis düzgündür.

Cari terminalı bağlamazdan əvvəl yeni terminaldan test edin.

Faktiki ayarları yoxlayın

Drop-in faylları ardıcıllıqla oxunur və ilk dəyər qalib gəlir. sshd-nin faktiki nədən istifadə etdiyini təsdiqləyin:

bash
sudo sshd -T | grep -E 'permitrootlogin|passwordauthentication|allowusers'

50-cloud-init.conf kimi cloud-init faylı PasswordAuthentication yes təyin edirsə, sizin 10- faylınız əvvəl oxunur və qalib gəlir.

3. UFW ilə standart olaraq rədd edən firewall

bash
sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw limit OpenSSH          # allow SSH, rate limit repeated attempts
sudo ufw allow 80,443/tcp       # only if you run a web server
sudo ufw enable
sudo ufw status numbered

ufw limit 30 saniyə ərzində altı və ya daha çox bağlantı açan ünvanı bloklayır, bu da skanerləri yavaşladır.

/etc/default/ufw faylında IPV6=yes təyin olunduqca (Ubuntu-da standartdır) UFW IPv6-nı da əhatə edir.

SSH-ı öz ünvanlarınızla məhdudlaşdırın

Sabit ünvandan qoşulursunuzsa, SSH-a yalnız oradan icazə verin:

bash
sudo ufw delete limit OpenSSH
sudo ufw allow from 198.51.100.0/24 to any port 22 proto tcp   # example range

Docker xəbərdarlığı

Docker öz iptables qaydalarını yazır və açılmış konteyner portları UFW-dən yan keçir. Konteynerləri localhost-a bağlayın (127.0.0.1:8080:80) və qarşısına reverse proxy qoyun, yaxud bulud firewall-unda süzün. Docker Compose bələdçisi bu yanaşmanı göstərir.

4. Qarşıya bulud firewall-u əlavə edin

Serverdən kənardakı firewall kimsə UFW-ni söndürsə belə işləməyə davam edir və bir qayda dəsti çoxlu serveri əhatə edə bilər. Wolkra-da firewall-lar stateful-dur, daxil olan və çıxan qaydaları dəstəkləyir, serverlərə və ya label seçicilərinə tətbiq olunur və pulsuzdur. Tipik qayda dəsti:

İstiqamət Protokol Port Mənbə
Daxil olan TCP 22 ofisinizin və ya VPN-inizin diapazonu
Daxil olan TCP 80, 443 istənilən
Daxil olan ICMP – istənilən

Addımlar üçün sənədlərdə firewall-lar səhifəsinə baxın.

5. Fail2ban ilə brute force-u bloklayın

bash
sudo apt install -y fail2ban python3-systemd
sudo tee /etc/fail2ban/jail.local >/dev/null <<'EOF'
[DEFAULT]
bantime  = 1h
findtime = 10m
maxretry = 5
backend  = systemd

[sshd]
enabled = true
EOF
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

backend = systemd jurnalı birbaşa oxuyur, Ubuntu 24.04 SSH loglarını məhz belə yazır. Özünüzü heç vaxt bloklamamaq üçün öz ünvanınızı [DEFAULT] bölməsindəki ignoreip parametrinə əlavə edin.

6. Dinləyən servisləri azaldın

Hər açıq port yamaq tələb edən bir şeydir. Onları siyahılayın:

bash
sudo ss -tulpn

Hər sətir üçün ona internetdən çatmağın lazım olub-olmadığını soruşun. Verilənlər bazaları, Redis və admin panellərinə adətən lazım deyil. Onları 127.0.0.1 və ya şəxsi şəbəkə ünvanına bağlayın və istifadə etmədiyiniz paketləri silin:

bash
sudo apt purge --autoremove <package>

7. Nüvəni və şəbəkə stekini qoruyun

Ubuntu-nun standart ayarları məntiqlidir. İctimai serverdə bir neçə əlavə ayar kömək edir:

bash
sudo tee /etc/sysctl.d/90-hardening.conf >/dev/null <<'EOF'
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.tcp_syncookies = 1
kernel.kptr_restrict = 2
kernel.dmesg_restrict = 1
EOF
sudo sysctl --system

Server trafiki yönləndirirsə, məsələn, VPN gateway kimi işləyirsə, redirect ayarlarını buraxın.

8. sudo-dan ehtiyatla istifadə edin

  • sudo-nu yalnız ehtiyacı olanlara verin: getent group sudo onları siyahılayır.
  • İnteraktiv hesablara heç vaxt NOPASSWD: ALL verməyin. Avtomatlaşdırma üçün parolsuz sudo-nu konkret əmrlərlə məhdudlaşdırın.
  • SSH açarla işləsə belə, sudo istifadəçinizə parol təyin edin: sudo passwd deploy.

9. Logları və girişləri izləyin

bash
last -n 20                          # recent logins
sudo journalctl -u ssh --since today
sudo journalctl -p err -b           # errors since boot

Fayl bütövlüyü və sürətli audit üçün Lynis yaxşı başlanğıcdır:

bash
sudo apt install -y lynis
sudo lynis audit system

O, möhkəmləndirmə indeksini və təkliflər siyahısını çap edir. Onlara əmr kimi deyil, ideya kimi baxın.

Wolkra konsolu hər server üçün CPU, disk və şəbəkə qrafiklərini göstərir (monitorinq). Trafikdə və ya CPU-da qəfil sıçrayış çox vaxt ələ keçirilmiş servisin ilk əlamətidir.

10. Yalnız serveri deyil, hesabı da qoruyun

Kimsə bulud hesabınıza daxil ola bilirsə, serverin möhkəmləndirilməsi boşa gedir. Wolkra konsolunda:

  • iki faktorlu autentifikasiyanı (TOTP) aktiv edin;
  • aktiv sessiyaları nəzərdən keçirin və köhnələrindən çıxış edin;
  • komanda üzvlərinə işə yarayan ən aşağı rolu verin;
  • mümkün olduqda yalnız oxuma hüquqlu, IP ilə məhdudlaşdırılmış və müddəti bitən API tokenlərindən istifadə edin.

Baxın: hesab təhlükəsizliyi və API tokenləri.

11. Ehtiyat nüsxə çıxarın və bərpanı yoxlayın

Təhlükəsizliyə bərpa da daxildir. Gündəlik ehtiyat nüsxələri və ya snapshot-ları aktiv edin və ən azı bir nüsxəni serverdən kənarda saxlayın. Sonra işlədiyini sübut etmək üçün bir dəfə yeni serverə bərpa edin. Ehtiyat nüsxə strategiyası bələdçisində tam plan var.

Yoxlama siyahısı

  • Avtomatik təhlükəsizlik yeniləmələri aktivdir
  • Yalnız SSH açarları, root girişi söndürülüb, AllowUsers təyin olunub
  • UFW standart olaraq rədd edir, yalnız lazımi portlar açıqdır
  • Qarşıda bulud firewall-u var, SSH məlum diapazonlarla məhdudlaşdırılıb
  • Fail2ban işləyir
  • ss -tulpn çıxışında gözlənilməz heç nə yoxdur
  • Sysctl möhkəmləndirməsi tətbiq olunub
  • sudo məhdudlaşdırılıb, bulud hesabında 2FA aktivdir
  • Ehtiyat nüsxələr aktivdir və bərpa yoxlanılıb

Qaydaları sərtləşdirərkən nəsə səhv getsə, server görünüşündəki brauzer konsolu və rescue rejimi sizi SSH olmadan geri daxil edir.

Tez-tez verilən suallar

Ubuntu serverini qorumaq üçün ən vacib addım hansıdır?

SSH açarlarından istifadə edin və parolla girişi söndürün. Yeni serverlərə hücumların çoxu avtomatlaşdırılmış parol təxminləridir və yalnız açarla giriş onları dayandırır.

Parollar söndürülübsə, Fail2ban lazımdırmı?

O qədər də kritik deyil, amma yenə də logdakı səs-küyü azaldır və skanerləri yavaşladır. Həmçinin veb girişləri və parol istifadə edən digər servislər üçün faydalıdır.

SSH portunu dəyişməliyəmmi?

Bu, logdakı səs-küyü azaldır, amma real təhlükəsizlik deyil. SSH-ı firewall ilə məlum mənbə ünvanlarına məhdudlaşdırmaq daha çox fayda verir.

UFW kifayətdir, yoxsa bulud firewall-u da lazımdır?

UFW serveri daxildən qoruyur. Bulud firewall-u trafiki çatmazdan əvvəl süzür və kimsə serverin öz qaydalarını pozsa belə işləyir. Hər ikisindən istifadə yaxşı standart seçimdir.

Bu addımlar Debian 12-də işləyirmi?

Demək olar ki, hamısı. Debian eyni paketlərdən istifadə edir; sudo və ufw yoxdursa, əvvəlcə onları quraşdırın.

Frankfurtda server işə salın

Hesab yaradın, balansı artırın və ayda €3.49-dan server işlədin, yalnız istifadə etdiyiniz saatlar üçün ödəyin. Bütün planlarda ölçülməyən trafik.