
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.