clamav

Alapvető biztosnsággal kapcsolatos kérdések, megoldások
Avatar
nocsak
Hozzászólások: 348
Csatlakozott: 2014.09.29. 15:01

clamav

Hozzászólás Szerző: nocsak »

Üdv!

Első ismerkedésem a crontabbal:
MX Linux alá:
clamav és vagy clamtk telepítése után:
Terminálból:

sudo crontab -e

1-es gomb (nano)

Kód: Egész kijelölése

*/15 * * * * /home/username/shellscript.sh
ctrl+s
ctrl+x
majd leellenőriz:

sudo crontab -l

aztán a shellscript.sh tartalma:

Kód: Egész kijelölése

#!/bin/bash

szatyor=""
szatyor="$HOME/filelist.txt"
szatyorba=""
szatyorba="$HOME/filelist_uniq.txt"


if [[ -f "$szatyor" ]];then
rm "$szatyor" && echo "$szatyor removed"
else
echo "$szatyor was not exist"
fi
if [[ -f "$szatyorba" ]];then
rm "$szatyorba" && echo "$szatyorba removed"
else
echo "$szatyorba was not exist"
fi


for pid in `ps auxwww | awk '{print $2}'`; do readlink -f /proc/$pid/exe | awk '{print $1}' >> "$szatyor"; done


cat "$szatyor" | sort | uniq > "$szatyorba"
echo "Number of unique Executables in Memory: "
wc -l "$szatyorba"

echo "starting scan" && clamscan -i --file-list="$szatyorba" --log="/var/log/clamav/clamscan_szatyor.log"

echo "Complete!"
jelez=""
jelez="$(cat /var/log/clamav/clamscan_szatyor.log | grep "Infected" | sort -r | head -n1 | cut -d":" -f2 | cut -f2 -d" ")"
csiga=""
csiga="$(wc -l $szatyorba)"


cp /home/username/.Xauthority /root/.Xauthority
export DISPLAY=":0.0"

if [[ "$jelez" > "0" ]]; then


xmessage -title "infected processes" "Infected file(s), running process(es) found !!!

this window will close itself
" -timeout 40 &
else

xmessage -title "clean processes" "All running $csiga processes are clean.
this window will close itself
" -timeout 40 &
fi



És akkor a dolgok kifejtése:

Ez a shell szkript a már jól ismert továbbgondolt clamscan MX Linuxra átírt változatának továbbfejlesztett cron-osított változata...

Ez az összes éppen futó binárist leellenőrzi, és a kimeneti log illetve fájllista alapján dob a végén xmessage-t függően a fertőzött fájlok számának találatától melyek 40 mp után automatikusan felszívódnak. Két fontos pontja van a szkriptnek amit mindenkinek maga kell szerkesztenie az a benne lévő cp parancsnál a username, illetve a DISPLAY változó értéke, előfordulhat ugyanis, hogy az :1 vagy :2 lesz. Az username -t mindenki arra a username-re írja át aminek az X szerverén meg kívánja jelentetni az xmessage-ket és futtatni óhajtja a shellscript.sh -t... mivel a szkript MX univerzális elképzelhető, hogy más hasonszőrű disztró(k) alatt is bevethető. A cron feladat fent említett megoldása minden egész 15 perc eltelte után lefuttatja a mögötte álló szkriptet sudo crontab -e esetén root jogkörrel.

Eredményes víruskergetést! ;)

Avatar
nocsak
Hozzászólások: 348
Csatlakozott: 2014.09.29. 15:01

Re: clamav

Hozzászólás Szerző: nocsak »

Kód: Egész kijelölése

#!/bin/bash
getta=""
getta="/var/log/clamav/clamscan_szatyor.log"
szatyor=""
szatyor="$HOME/filelist.txt"
szatyorba=""
szatyorba="$HOME/filelist_uniq.txt"
gedda=""
gedda="$HOME/viruses"


if [[ -f "$szatyor" ]];then
rm "$szatyor" && echo "$szatyor removed"
else
echo "$szatyor was not exist"
fi
if [[ -f "$szatyorba" ]];then
rm "$szatyorba" && echo "$szatyorba removed"
else
echo "$szatyorba was not exist"
fi
if [[ -f "$getta" ]]; then

rm "$getta"
echo "$getta deleted!"
fi
if [[ ! -d "$gedda" ]]; then

mkdir -p "$gedda"
echo "$gedda created folder"
fi

for pid in `ps auxwww | awk '{print $2}'`; do readlink -f /proc/$pid/exe | awk '{print $1}' >> "$szatyor"; done


cat "$szatyor" | sort | uniq > "$szatyorba"
echo "Number of unique Executables in Memory: "
wc -l "$szatyorba"

echo "starting scan" && clamscan -i --file-list="$szatyorba" --log="$getta"

echo "Complete!"
jelez=""
jelez="$(cat $getta | grep "Infected" | sort -r | head -n1 | cut -d":" -f2 | cut -f2 -d" ")"

cselez=""
cselez="$(cat $getta | grep "FOUND" | cut -d":" -f1 | sort | uniq)"

cp /home/username/.Xauthority /root/.Xauthority
export DISPLAY=":0.0"

if [[ "$jelez" > "0" ]]; then


xmessage -title "infected processes" "Infected file(s), running process(es) found !!!


" &

printf "$cselez" | xargs killall -s9 & 
tesztelek=$!
wait "$tesztelek"
xmessage -title "KILLED" "

ALL infected processes killed !!!
" &
printf "$cselez" | xargs -I {} mv {} "$gedda" && xmessage -title "MOVED" "

ALL infected processes moved to $gedda !!!
" &


else
echo "OK"

fi
No...
Hát, kicsit megint tovább irogattam a dolgot, ezúttal ha van FOUND avagy infected files, akkor csokorba gyűjtöm őket a $cselez változóba vagy sztringbe és annak alapján ráuszítok egy killall -s9 -et xargs segítségével. Aztán meg még move-olom is őket root jogkör esetén a $HOME/viruses mappába ami a /root/viruses mappa lesz.

Mivel nincs futó vírusom (eddig) ezért ezt az elágazást nem tudtam tesztelni... de a killall önmagában működött és a move is az xargs-zal.

a wait-tel a végén bevárom amíg a killall lezajlik, majd jön a move és az xmessagek.

Lévén, hogy a ClamWin tud unload infected files from memory opciót sőt memory scan-t is, így itt ez a megoldás az ez, meg ugye a + move...

A clam logot minden szkript indulásnál törlöm, így nem lesz káosz. Mindig az utolsó log a legutóbbi scan eredménye.

Eza (cron) szkript csak akkor küld xmessage-t ha gond van, egyébként nem fog zavarni.

Válasz küldése

Vissza: “Biztonság, antivírus, megoldások”