Linux servera pārbaude uz vīrusiem: ClamAV un rkhunter

Linux serveri var pārbaudīt ar diviem rīkiem: ClamAV meklē ļaunatūras failus pēc parakstiem, bet rkhunter — rutkitus, apmainītus sistēmas binārfailus un aizdomīgus iestatījumus. Zemāk — abu instalēšana, skenēšanas palaišana un rezultātu analīze.

Kad veikt pārbaudi

Skenējiet serveri, ja pamanāt neparastu slodzi, izejošu surogātpastu, nezināmus procesus vai pēc uzlaušanas. Regulāra pārbaude pēc grafika ir laba profilakse publiski pieejamiem VPS.

1. daļa. ClamAV — antivīruss

Instalēšana

apt update
apt install -y clamav clamav-daemon

Datubāzu atjaunināšana

Apturiet atjaunināšanas dēmonu, atjauniniet manuāli, pēc tam palaidiet to atpakaļ:

systemctl stop clamav-freshclam
freshclam
systemctl start clamav-freshclam

Skenēšana

Pārbaudīt mājas mapes un tīmekļa sakni rekursīvi, rādot tikai inficētos failus:

clamscan -r -i /home /var/www

Noderīgi karogi:

  • -r — rekursīvi;
  • -i — tikai inficētie;
  • --remove — dzēst atrasto (uzmanīgi!);
  • --move=/root/quarantine — pārvietot karantīnā.

Drošāk ir pārvietot karantīnā, nevis dzēst:

mkdir -p /root/quarantine
clamscan -r -i --move=/root/quarantine /var/www

Ātra visas sistēmas skenēšana

clamscan -r -i --exclude-dir="^/sys" --exclude-dir="^/proc" /

Mapes /proc un /sys ir virtuālas — tās izslēdzam.

2. daļa. rkhunter — rutkitu meklēšana

Instalēšana

apt install -y rkhunter

Atjaunināšana un bāzes momentuzņēmums

rkhunter --update
rkhunter --propupd

--propupd saglabā sistēmas failu etalona kontrolsummas. Izpildiet to tikai uz garantēti tīras sistēmas.

Pārbaudes palaišana

rkhunter --check --skip-keypress

Rkhunter pārbaudīs sistēmas binārfailus, zināmos rutkitus, failu tiesības, slēptos procesus un portus. Rezultāts — failā /var/log/rkhunter.log.

Apskatīt tikai brīdinājumus:

grep -i warning /var/log/rkhunter.log

Brīdinājumu analīze

Ne katrs brīdinājums nozīmē inficēšanos. Biežas kļūdainas atbildes: atjauninātas pakotnes (mainījušās kontrolsummas), slēpti faili kā /dev/.udev. Pēc likumīgas sistēmas atjaunināšanas vēlreiz izpildiet rkhunter --propupd, lai atjaunotu etalonu.

Papildus: chkrootkit

Otrs rutkitu skeneris savstarpējai pārbaudei:

apt install -y chkrootkit
chkrootkit

Automatizācija ar cron

Iknedēļas pārbaude ar atskaites nosūtīšanu uz e-pastu. Izveidojiet /etc/cron.weekly/security-scan:

#!/bin/bash
freshclam
clamscan -r -i /var/www /home >> /var/log/clamscan.log
rkhunter --update
rkhunter --check --skip-keypress --report-warnings-only

Padariet to izpildāmu:

chmod +x /etc/cron.weekly/security-scan

Ko darīt, ja kaut kas atrasts

  1. Izolējiet serveri — ierobežojiet izejošo trafiku ar ugunsmūri.
  2. Nedzēsiet pierādījumus uzreiz, izveidojiet momentuzņēmumu vai dublējumu.
  3. Pārbaudiet aktīvos procesus (ps aux), savienojumus (ss -tulpn) un cron uzdevumus.
  4. Nopietnas inficēšanās gadījumā drošāk ir pārinstalēt sistēmu no tīra attēla un atjaunot datus no pārbaudītas rezerves kopijas.

Pakotņu integritātes pārbaude

Inficēšanās bieži apmaina sistēmas binārfailus. Debian/Ubuntu sistēmā pārbaudiet uzinstalēto pakotņu kontrolsummas:

apt install -y debsums
debsums -s

Izvade parādīs failus, kuru summas nesakrīt ar pakotnes etalonu. RPM sistēmās analogs ir rpm -Va.

Atvērto portu un procesu audits

Ļaunatūra parasti atstāj klausošos portus vai slēptus procesus. Pārbaudiet manuāli:

ss -tulpn
ps auxf

Aizdomīgi izejošie savienojumi:

ss -tp state established

Pārbaudiet plānotāja uzdevumus, kur bieži slēpjas autopalaišana:

crontab -l
ls -la /etc/cron.* /etc/cron.d
cat /etc/crontab

Autopalaišanas un lietotāju pārbaude

Jauni vai nezināmi lietotāji ar UID 0 ir trauksmes signāls:

awk -F: '($3 == 0) {print}' /etc/passwd

Ieslēgto systemd servisu saraksts:

systemctl list-unit-files --state=enabled

Meklējiet vienības ar dīvainiem nosaukumiem un palaišanas ceļiem mapēs /tmp vai /dev/shm.

Regularitāte ir svarīgāka par vienreizēju pārbaudi

Viena pārbaude noķer tikai to, kas jau ir iekļuvis. Īsta aizsardzība ir regularitāte: iknedēļas skenēšana ar cron (piemērs augstāk), aktuāli sistēmas atjauninājumi (apt update && apt upgrade), ugunsmūris, izslēgta pieteikšanās ar paroli SSH un svaigas rezerves kopijas atsevišķā krātuvē.

Biežāk uzdotie jautājumi

ClamAV vai rkhunter — ko izvēlēties? Abus: ClamAV meklē ļaunatūras failus, rkhunter — rutkitus un apmaiņas. Tie viens otru papildina.

Rkhunter rāda daudz kļūdainu brīdinājumu — vai tas ir normāli? Jā, pēc pakotņu atjaunināšanas. Atjauniniet etalonu ar komandu rkhunter --propupd uz tīras sistēmas.

Vai skenēšana noslogo serveri? Pilna diska skenēšana noslogo CPU un I/O. Palaidiet to pēc grafika ne pīķa stundās.

Vai var uzticēties ClamAV karogam --remove? Uzmanīgi: iespējamas kļūdainas atbildes. Labāk --move uz karantīnu un manuāla pārbaude.

Vai tas garantē, ka serveris ir tīrs? Neviens rīks nedod 100% garantiju. Turiet rezerves kopijas un atjauniniet sistēmu — tas ir drošības pamats.


Drošība sākas ar pareizu infrastruktūru. Paņemiet VPS drošībai un VPN vai VPS nomu. Regulāru auditu un aizsardzību uzstādīs Serveru administrēšana.

Kristaps Bērziņš