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+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!
