This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

ClamAV Cron Job
#1
Hallo! Eventuell könnt Ihr mir helfen.

1) Wenn man wöchentlich einen Job unter Linux starten möchte z.B. den clamav, wie würdet Ihr das machen? Cron oder über Systemd-Timer?

2) Wenn man Cron wählt und den Job mit @weekly (0 0 * * 0) definiert, liegt der Startzeitpunkt auf Sonntag 0:00Uhr. Was passiert, wenn der Rechner zu dieser Zeit nicht läuft? Wird der Job nachgeholt?

3) Kann man beim clamav einzelne Dateien vom Scannen ausschliessen? Wenn sie z.B. immer wieder falsch als infiziert erkannt werden.

Sorry, ich wusste nicht so recht wohin mit dieser Frage. Eine Linux Mint Frage ist es nicht. Aber es ist eigentlich auch keine Frage für den Serverbereich, jedenfalls nicht so richtig. Bei meiner Frage geht es aktuell um meinen Desktop-Rechner mit einem Manjaro-Linux drauf. Da ich Daten auch mit Windows-Rechnern austausche, möchte/muss ich verhindern, dass mein Rechner zur Virenschleuder wird.
Mein Heimatgrid: https://swissgrid.opensim.ch
Zitieren
#2
1. Cronjob. Die Cron-Daemons sind einfach deutlich länger als Systemd existent und damit reifer. Systemd will mir einfach viel zu viel auf einmal können, und daher habe ich mit dem Teil grundsätzlich so meine Probleme, denn damit wird es nicht alle Sachen gleich gut erledigen.
2. Das hängt von dem Cron-Daemon ab, den du einsetzt. Es gibt Crons, die das nachholen können, z.B. Anacron oder Fcron. Vixie-Cron dagegen kann es nicht.
3. Ja, Parameter --exclude und --exclude-dir.
Zitieren
#3
Also nur mal angenommen und gedacht:

Im Verzeichnis /etc/cron.weekly/ ein kleines Skript meinscan.sh erstellen:

#!/bin/sh
clamscan /

Mit chmod +x meinscan.sh ausführbar machen

So, habe es mal angelegt. Ob das so geht oder nicht - keine Ahnung - muss es testen.

Kann natürlich auch sein, dass ich falsch liege.

Ich scanne manuell mit clamscan /

Darüber diskutieren lohnt!
All done!
Zitieren
#4
Es macht keinen Sinn, sein komplettes Linux-System mit Clamav zu scannen. Clamav kann Sinn machen bei Emails und Verzeichnissen, wo Windows/Mac-Rechner darauf zugreifen. Sonst braucht man es nicht.

Wer sein Linux-System vor unbefugten Änderungen absichern will, der sollte sich mal tripwire, rkhunter und maldet ansehen.
Zitieren
#5
Genau, nach dem / folgt im Regelfall die Pfadangabe.
All done!
Zitieren
#6
@Bartholomew Gallacher
Ok, das --exclude-dir kannte ich. Das reine --exclude für Dateien hatte ich doch in den Manpages glatt überlesen.
Die Rootkits wie rkhunter habe ich schon im Focus. :-)

Jobs mit Cron einzurichten ist jedenfalls einfacher als einen System Timer. Das müsste ich mir jedenfalls erst aneignen.
Weisst Du ob der Cronnie Jobs nachholt?

@Lukas
Ob das so mit der Nutzung des Verzeichnisses "/etc/cron.weekly/" funktioniert, kann ich nicht sagen. Ich kenne nur die folgende Möglichkeit:

$ crontab -e

Dann editieren z.B.:
@weekly * * * * <command>

Auf der folgende Arch Linux Seite findet man die Einrichtung des clamav gut erklärt.
https://wiki.archlinux.org/title/ClamAV

Damit hab ich mir den folgenden Befehl zusammengebastelt:
sudo find / -type f -print0 | sudo xargs -0 -P $(nproc) clamscan --recursive --infected --exclude-dir='^/proc|^/sys|^/dev' > scan-log.txt
Das Problem damit ist, daß nicht nur das clamscan $(nproc)-mal in den Speicher geladen wird, sondern auch die Viruskennungen. Dabei werden bei mir 32GB RAM benutzt.

Daher benutze ich:
clamdscan --multiscan --fdpass / 2>&1 | grep FOUND > scan-log.txt
Das gibt zwar einige Fehlermeldungen die mit der Option --multiscan entstehen, aber es werden die selben angeblich infizierten Dateien gefunden. 15min und das gesamte System ist durchgescannt. Das Home-Verzeichnis, als Quelle von Dateien die Windows-Rechner zu sehen bekommen, möchte schon scannen. Da das mittlerweile deutlich grösser als der Rest ist, spielt es kaum eine Rolle bei / den Scan zu starten.

Es soll ja auch den einen oder anderen Linux Virus geben. Natürlich deutlich weniger als Windows-Viren. Ob diese Linux Viren in der freien Wildbahn zu finden sind, da gehen im Netz die Meinungen weit auseinander.
Das OnAccessScan sollte im Moment noch nicht benutzt werden, laut der Arch-Seite ist es noch nicht ausgereift. Aber ich glaube im Linux-Mint ist das auch noch nicht angekommen. :-)

Ansonsten finde ich das Paket "fangfrisch" sehr interessant. Damit ist es möglich Viruskennungen von Drittanbietern automatisch zu laden, und so die Erkennungsrate deutlich zu steigern.
https://rseichter.github.io/fangfrisch/#_configuration

Ich selbst habe dabei das folgende Angebot im Auge:
https://www.securiteinfo.com/services-cy...html?lg=de

Lukas, kann man eventuell den Namen des Threads in "ClamAV Cron Job" ändern?
Mein Heimatgrid: https://swissgrid.opensim.ch
Zitieren
#7
Ja, sehr gern - erledigt!
All done!
Zitieren
#8
Ich habe mich nun doch entschlossen, einen systemd Timer zum Starten eines Virusscan zu benutzen. Der Grund ist, man kann diese Timer so konfigurieren, daß sie verpasste Ereignisse nachholen. Das konnte ich unter Manjaro Linux mit dem Cronnie nicht klären, bzw. hier werden standardmässig systemd Timer benutzt. Der Cronnie ist zwar installiert aber nach der Installation nicht aktiv.

Um einen Timer zu erstellen müssen im Pfad "/lib/systemd/system" 2 Dateien erstellt werden. Eine virus-scan.timer die den Timer definiert, und eine virus-scan.service die durch den Timer ausgeführt wird. Die Namen der Dateien sind natürlich frei wählbar. Haben beide Dateien den selben Namen und nur unterschiedliche Erweiterungen, brauch der Timer den auszuführenden Service nicht explizit definieren. Wichtig ist der Eintrag "Persistent=true", dieser sorgt für das Nachholen. Das Schlüsselwort "Persistent" funktioniert aber nur zusammen mit dem Schlüsselwort "OnCalendar".

Ansonsten wird der Timer wie gewohnt aktiviert.
$ sudo systemctl enable virus-scan.timer
$ sudo systemctl start virus-scan.timer

/lib/systemd/system/virus-scan.timer:
============================
<code>
[Unit]
Description=Run a virus scan weekly.

[Timer]
OnCalendar=weekly
Persistent=true
Unit=virus-scan.service

[Install]
WantedBy=timers.target
</code>

/lib/systemd/system/virus-scan.service:
==============================
<code>
[Unit]
Description=Run a virus scan 10min(600s) after the system start.

[Service]
Type=simple
ExecStartPre=/bin/bash -c 'sleep 600 && /etc/clamav/virus-started.bash'
ExecStart=/usr/bin/clamdscan --multiscan --fdpass / &>/dev/null
TimeoutSec=1200
</code>

/etc/clamav/virus-started.bash:
========================
<code>
#!/bin/bash
PATH=/usr/bin

# Send an alert to all graphical users.
for ADDRESS in /run/user/* ; do
USERID=${ADDRESS#/run/user/}
/usr/bin/sudo -u "#$USERID" DBUS_SESSION_BUS_ADDRESS="unix:path=$ADDRESS/bus" PATH=${PATH} \
/usr/bin/notify-send -u critical -i dialog-warning "Clamav" "Scanning started."
done
</code>

PS: Ich habe am 29.04.2022 die Scripte aktualisiert.
Mein Heimatgrid: https://swissgrid.opensim.ch
Zitieren
#9
Danke Jules!
All done!
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste