Ist dieser Befehl für einen möglichst vollständige Virenerkennung ok? f-prot -ai -archive -collect -dumb -packed -list -report=/var/log/mein_fprot.log / Al
At 23:12 27.08.03 +0200, Al Bogner wrote:
Ist dieser Befehl für einen möglichst vollständige Virenerkennung ok?
f-prot -ai -archive -collect -dumb -packed -list -report=/var/log/mein_fprot.log /
Für welchen Zweck? Platte scannen? Mail scannen? Es sind ALLE Parameter, aber für den normalen Betrieb nicht sinnvoll. -collect macht nur auf Kollektionen Sinn in denen einige Viecher z.B. als image, aber nicht in ausführbarer Form hinterlegt sind. -dumb schaltet jegliche Intelligenz des Scanners ab, mit dem die Art der Datei ermittelt wird. (in eine EXE brauche ich nicht nach MACROS suchen...) -report überschreibt den Report, evtl willst du noch -append verwenden -archive mußt Du wissen, kostet viel Zeit, sollte daher nur gezielt verwendet werden, nicht im täglichen Scan. Wenn ein WÄCHTER da ist fällt die Infektion beim auspacken oder spätestens beim Benutzen der ausgepackten Datei auf. Gruß Matthias
Am Donnerstag, 28. August 2003 08:12 schrieb Matthias Jänichen:
Ist dieser Befehl für einen möglichst vollständige Virenerkennung ok?
f-prot -ai -archive -collect -dumb -packed -list -report=/var/log/mein_fprot.log /
Für welchen Zweck?
Platte scannen?
Zum Scannen einer HD, CD oder Floppy
Mail scannen?
Da bin ich noch nicht dahinter gekommen, wie man mit Amavis Nicht-Standard-Parameter einstellt.
Es sind ALLE Parameter, aber für den normalen Betrieb nicht sinnvoll.
Meinst du "alle" von der Manpage oder alle Parameter, die ich oben genannt habe? Alle von der Manpage ist klar.
-collect macht nur auf Kollektionen Sinn in denen einige Viecher z.B. als image, aber nicht in ausführbarer Form hinterlegt sind.
Was ist eine Kollektion? Ich denke da zB auch an ein Image, das mit mkisofs erstellt wurde.
-dumb schaltet jegliche Intelligenz des Scanners ab, mit dem die Art der Datei ermittelt wird. (in eine EXE brauche ich nicht nach MACROS suchen...)
Soweit ich es verstanden habe, ist "dumb" die einzige Möglichkeit nach Bootsektorviren zu suchen.
-report überschreibt den Report, evtl willst du noch -append verwenden
Daran habe ich auch schon gedacht, in Verbindung mit "list" werden die Dateien dann aber sehr groß, wenn da einige Hundertausend Dateien gescannt wurden.
-archive mußt Du wissen, kostet viel Zeit, sollte daher nur gezielt verwendet werden, nicht im täglichen Scan.
Eigentlich habe ich nicht vor täglich die HD zu scannen und die Scan-Zeit ist mir ziemlich egal. Die Mails werden via amavis/postfix gescannt und sonst nur dann, wenn eine fremde Datei ins System will und das passiert eher selten, am ehesten noch per Download oder CD, Floppys kommen eher nicht vor.
Wenn ein WÄCHTER da ist fällt die Infektion beim auspacken oder spätestens beim Benutzen der ausgepackten Datei auf.
Wie installiert man diesen Wächter und bremst der das System sehr? Wie bereits an anderer Stelle geschrieben, mache ich die Virenprüfung auf einem Linux-only-System und da will ich nur sicher gehen, dass ich einem Freund einen Download oder sonstiges nicht mit Virus auf CD brenne. Al
On Thursday 28 August 2003 10:24, you wrote:
Am Donnerstag, 28. August 2003 08:12 schrieb Matthias Jänichen:
Ist dieser Befehl für einen möglichst vollständige Virenerkennung ok?
f-prot -ai -archive -collect -dumb -packed -list -report=/var/log/mein_fprot.log /
Für welchen Zweck?
Platte scannen?
Zum Scannen einer HD, CD oder Floppy
Mail scannen?
Da bin ich noch nicht dahinter gekommen, wie man mit Amavis Nicht-Standard-Parameter einstellt.
BSP für amavis-perl: Im Script /usr/sbin/amavis muss man die Parameter direkt eintragen.
Es sind ALLE Parameter, aber für den normalen Betrieb nicht sinnvoll.
Meinst du "alle" von der Manpage oder alle Parameter, die ich oben genannt habe? Alle von der Manpage ist klar.
-collect macht nur auf Kollektionen Sinn in denen einige Viecher z.B. als image, aber nicht in ausführbarer Form hinterlegt sind.
Was ist eine Kollektion?
Eine Virensammlung das was die c't benutzt hat z.B. mit Image files von Boot-Viren
Ich denke da zB auch an ein Image, das mit mkisofs erstellt wurde.
Davon geht aber keine Primäre gefahr aus.
-dumb schaltet jegliche Intelligenz des Scanners ab, mit dem die Art der Datei ermittelt wird. (in eine EXE brauche ich nicht nach MACROS suchen...)
Soweit ich es verstanden habe, ist "dumb" die einzige Möglichkeit nach Bootsektorviren zu suchen.
Nein: -collect ! Boot und MBR Sektoren prüft fp linux eh nicht. Mit -dumb machst Du ihn dumm und unnötig langsam. -ai kann False Positives erzeugen, für Mail OK, im Wächter nie!
-report überschreibt den Report, evtl willst du noch -append verwenden
Daran habe ich auch schon gedacht, in Verbindung mit "list" werden die Dateien dann aber sehr groß, wenn da einige Hundertausend Dateien gescannt wurden.
dann laß doch -list weg. Der Parameter ist eh nur für AV-Tester gemacht worden, damit die sehen, ob alle Dateien angepackt wurden.
-archive mußt Du wissen, kostet viel Zeit, sollte daher nur gezielt verwendet werden, nicht im täglichen Scan.
-archive für Mail! (Zur Sicherheit, AMAVIS zerlegt das Zipfile eh selber) -packed ist default.
Eigentlich habe ich nicht vor täglich die HD zu scannen und die Scan-Zeit ist mir ziemlich egal. Die Mails werden via amavis/postfix gescannt und sonst nur dann, wenn eine fremde Datei ins System will und das passiert eher selten, am ehesten noch per Download oder CD, Floppys kommen eher nicht vor.
Wenn ein WÄCHTER da ist fällt die Infektion beim auspacken oder spätestens beim Benutzen der ausgepackten Datei auf.
Wie installiert man diesen Wächter und bremst der das System sehr? Wie bereits an anderer Stelle geschrieben, mache ich die Virenprüfung auf einem Linux-only-System und da will ich nur sicher gehen, dass ich einem Freund einen Download oder sonstiges nicht mit Virus auf CD brenne.
Alles auf den Seiten von RSBAC beschrieben. Docu lesen, kernel patchen (oder warten, bis der gepatchte da ist), Konfigurieren (MS nicht vergessen) .... Zur Performance von RSBAC sind auf der Seite Statistiken hinterlegt. Wie lange das Scannen dauert hängt vom Anti-Virus ab. Ein Deamon ist erheblich schneller. Aber auch die parameter spielen eine wichtige Rolle. Bei einem Wächter kommt es im wesentlichen darauf an, dass Dateien, die sofort ausgeführt werden können immer gescannt werden, während Archive im Wächter primär vernachlässigbar sind.
Am Donnerstag, 28. August 2003 11:45 schrieb Matthias Jänichen:
Da bin ich noch nicht dahinter gekommen, wie man mit Amavis Nicht-Standard-Parameter einstellt.
BSP für amavis-perl: Im Script /usr/sbin/amavis muss man die Parameter direkt eintragen.
Was bedeute BSP? Verstehe ich es richtig, dass du meinst in /usr/sbin/amavis zB einfach # FRISK F-Prot my $fprot = "/usr/local/bin/f-prot -archive"; einzutragen?
-report überschreibt den Report, evtl willst du noch -append verwenden
Daran habe ich auch schon gedacht, in Verbindung mit "list" werden die Dateien dann aber sehr groß, wenn da einige Hundertausend Dateien gescannt wurden.
dann laß doch -list weg. Der Parameter ist eh nur für AV-Tester gemacht worden, damit die sehen, ob alle Dateien angepackt wurden.
Gibt es eine andere Möglichkeit der "Fortschrittsanzeige"? Außerdem habe ich mit "append" ein Problem, dass dann ein simples Script nicht mehr richtig ausgibt, das ich für meine 11-jährige Tochter gebaut habe, denn grep listet dann auch die vorigen Scans. Das Script ist noch nicht richtig getestet, Verbesserungsvorschläge sind natürlich willkommen. Auf ihrem eigenen Rechner hat sie übrigens Root-Rechte. #!/bin/bash rm mein_antivir_fd.log rm mein_fprot_fd.log mount /dev/fd0 /media/floppy ls echo "--------------------------------------------------------" echo "Antivir Prüfung Start" echo "--------------------------------------------------------" antivir -s -v -z -allfiles -e -ren -dmdel -dmds -r1 -rfmein_antivir_fd.log \ -ra -lang=DE /media/floppy echo "--------------------------------------------------------" echo "F-Prot Prüfung Start" echo "--------------------------------------------------------" f-prot -ai -archive -collect -dumb -packed -list -report=mein_fprot_fd.log \ /media/floppy/ echo "________________________________________________________" echo "" echo " AB HIER GENAU LESEN !" echo "________________________________________________________" grep ALERT mein_antivir_fd.log grep Infection mein_fprot_fd.log echo "________________________________________________________" echo "ANTIVIR Prüfung Zusammenfassung" tail -n 9 mein_antivir_fd.log echo "F-PROT Prüfung Zusammenfassung" tail -n 11 mein_fprot_fd.log echo "________________________________________________________" echo "Kurzzusammenfassung" grep Alarme mein_antivir_fd.log grep Infected mein_fprot_fd.log grep Suspicious mein_fprot_fd.log umount /dev/fd0
Alles auf den Seiten von RSBAC beschrieben. Docu lesen, kernel patchen (oder warten, bis der gepatchte da ist), Konfigurieren (MS nicht vergessen)
Das sehe ich mir an, sobald ich den nächsten Samba-Server aufsetze. Al
At 12:40 28.08.2003 +0200, Al Bogner wrote:
Am Donnerstag, 28. August 2003 11:45 schrieb Matthias Jänichen:
Da bin ich noch nicht dahinter gekommen, wie man mit Amavis Nicht-Standard-Parameter einstellt.
BSP für amavis-perl: Im Script /usr/sbin/amavis muss man die Parameter direkt eintragen.
Was bedeute BSP?
zum Beispiel:
Verstehe ich es richtig, dass du meinst in /usr/sbin/amavis zB einfach
# FRISK F-Prot my $fprot = "/usr/local/bin/f-prot -archive";
einzutragen?
ja
-report überschreibt den Report, evtl willst du noch -append verwenden
Daran habe ich auch schon gedacht, in Verbindung mit "list" werden die Dateien dann aber sehr groß, wenn da einige Hundertausend Dateien gescannt wurden.
dann laß doch -list weg. Der Parameter ist eh nur für AV-Tester gemacht worden, damit die sehen, ob alle Dateien angepackt wurden.
Gibt es eine andere Möglichkeit der "Fortschrittsanzeige"?
Nee, ist ja auch nicht gewollt oder wie willst du das im CRON laufen lassen? Man kann da sicher was drumherumbasteln, tee, grep u.a sind dein Freund!
Hallo Al, hallo Leute, Am Donnerstag, 28. August 2003 12:40 schrieb Al Bogner:
[...]
Ein paar Anmerkungen zu Deinen Script:
#!/bin/bash rm mein_antivir_fd.log rm mein_fprot_fd.log
Du solltest immer den Pfad mit angeben. In dieser Form werden die Dateien mein_{antivir,fprot}_fd.log im aktuellen Verzeichnis gelöscht... Außderdem löscht man Temp-Dateien nach Beendigung des Scripts, nicht vor Beginn des nächsten Durchlaufs ;-) Ach so, zufällige Dateinamen sind auch empfehlenswert ;-) (man mktemp oder zumindest die PID des Scripts, also $$ im Dateinamen verwenden. Den Dateinamen solltest Du natürlich in einer Variablen speichern und die Dateien zum Schluss wieder löschen.)
mount /dev/fd0 /media/floppy ls
vom aktuellen Verzeichnis? Geschickter wäre wohl ls /media/floppy/ wenn ich den Sinn Deines Scripts richtig verstehe ;-)
echo "--------------------------------------------------------" echo "Antivir Prüfung Start" echo "--------------------------------------------------------" antivir -s -v -z -allfiles -e -ren -dmdel -dmds -r1 \ -rfmein_antivir_fd.log -ra -lang=DE /media/floppy
Antivir liegt in $PATH? Besser den absoluten Pfad verwenden und natürlich auch für die Logdatei den Pfad mit angeben ;-)
echo "--------------------------------------------------------" echo "F-Prot Prüfung Start" echo "--------------------------------------------------------" f-prot -ai -archive -collect -dumb -packed -list \ -report=mein_fprot_fd.log /media/floppy/
siehe oben ;-)
[...] grep Infected mein_fprot_fd.log grep Suspicious mein_fprot_fd.log
grep "Infected\|Suspicious" $fprot_logfile spart einen grep-Aufruf ;-) Gruß Christian Boltz --
Ist das sone Art wie cat sigdatei | grep suchstring? Oh nein - nicht schon wieder! Hilfeeee, Doktor! Ich sehe schon wieder so einen unnötigen cat ;-) [> Michael Raab und Jan Trippler in suse-linux]
Am Freitag, 29. August 2003 22:05 schrieb Christian Boltz:
Ein paar Anmerkungen zu Deinen Script:
Danke für die Reaktion. Ich lerne gern dazu :-)
#!/bin/bash rm mein_antivir_fd.log rm mein_fprot_fd.log
Du solltest immer den Pfad mit angeben. In dieser Form werden die Dateien mein_{antivir,fprot}_fd.log im aktuellen Verzeichnis gelöscht...
Das ist so beabsichtigt, denn: User1 führt zB eine Virenprüfung einer Floppy durch, dann soll die Log-Datei in seinem home-Verzeichnis sein, bei User2 ebenso und wenn root mal alles prüft, dann steht es eben in /root.
Außderdem löscht man Temp-Dateien nach Beendigung des Scripts, nicht vor Beginn des nächsten Durchlaufs ;-)
Auch Widerspruch, aber ich lasse mich gerne eines besseren belehren. Mein Script wertet eigentlich nur die wesentlichen Dinge der beiden log-Files aus und stellt es komprimiert dar. Es kann aber durchaus sein, dass man sich das logfile näher ansehen möchte. Lösche ich es am Ende meiens Scripts, dann wäre das nicht mehr möglich.
Ach so, zufällige Dateinamen sind auch empfehlenswert ;-) (man mktemp oder zumindest die PID des Scripts, also $$ im Dateinamen verwenden. Den Dateinamen solltest Du natürlich in einer Variablen speichern und die Dateien zum Schluss wieder löschen.)
Ok, den Dateinamen in eine Variable zu schreiben, macht Sinn. Bei so kurzen Scripts denke ich nie daran.
mount /dev/fd0 /media/floppy ls
vom aktuellen Verzeichnis? Geschickter wäre wohl ls /media/floppy/ wenn ich den Sinn Deines Scripts richtig verstehe ;-)
Das ls ist nur ein Überbleibsel eines Tests und gehört eigentlich eliminiert.
echo "--------------------------------------------------------" echo "Antivir Prüfung Start" echo "--------------------------------------------------------" antivir -s -v -z -allfiles -e -ren -dmdel -dmds -r1 \ -rfmein_antivir_fd.log -ra -lang=DE /media/floppy
Antivir liegt in $PATH? Besser den absoluten Pfad verwenden und natürlich auch für die Logdatei den Pfad mit angeben ;-)
Antivir liegt in /usr/bin/ Macht das wirklich Sinn? Ich habe es mittlerweile ein bißchen modifiziert und grep "could be infected" mein_fprot_sys.log sowie einige ander Kleinigkeiten geändert. Ich wundere mich nach wie vor, dass antivir und f-prot bei meinen News- und Cache-Scans unterschiedliche Viren (nicht) finden. Es gibt da so tolle "Linux-Typen", die einen Eicar als X-Comment in Postings schreiben, darauf reagiert zB f-prot, aber antivir nicht. IMO sollte aber Eicar per default gemeldet werden. Al
At 22:55 29.08.03 +0200, Al Bogner wrote:
Ich wundere mich nach wie vor, dass antivir und f-prot bei meinen News- und Cache-Scans unterschiedliche Viren (nicht) finden.
Die meisten Scanner sind so geschrieben, dass sie Viren nur in "ausführbarer" Form erkennen. Wenn die erst umgewandelt werden müssen, damit sie überhaupt aufgerufen werden und damit Schaden anrichten können, ist das akzeptabel.
Es gibt da so tolle "Linux-Typen", die einen Eicar als X-Comment in Postings schreiben, darauf reagiert zB f-prot, aber antivir nicht. IMO sollte aber Eicar per default gemeldet werden.
DAS liegt nun wieder an deinen Einstellungen. Wie ich schon früher geschhrieben habe, hast du mit DUMB jegliche obige Intelligenz abgeschaltet Es könnte dadurch sogar sein, daß Du einen EICAR in einer JPG findest. Die Konsequenz die Datei dann zu löschen, wie häufig eingestellt, führt dann zum verlust der JPG. Wahrscheinlich Unerwünscht. Wenn Du die Ergebnisse vergleichen willst, dann ohne -ai ohne -dumb Gruß Matthias
Hallo Al, hallo Leute, Am Freitag, 29. August 2003 22:55 schrieb Al Bogner:
Am Freitag, 29. August 2003 22:05 schrieb Christian Boltz:
Ein paar Anmerkungen zu Deinen Script:
Danke für die Reaktion. Ich lerne gern dazu :-)
#!/bin/bash rm mein_antivir_fd.log rm mein_fprot_fd.log
Du solltest immer den Pfad mit angeben. In dieser Form werden die Dateien mein_{antivir,fprot}_fd.log im aktuellen Verzeichnis gelöscht...
Das ist so beabsichtigt, denn:
User1 führt zB eine Virenprüfung einer Floppy durch, dann soll die Log-Datei in seinem home-Verzeichnis sein, bei User2 ebenso und wenn root mal alles prüft, dann steht es eben in /root.
Und woher weißt Du, dass der User gerade in seinem Homeverzeichnis ist? Das Script legt Dateien ohne Pfadangabe nämlich im _aktuellen_ Verzeichnis an und _nicht_ im Home (es sei denn, man ist zufällig gerade dort ;-) -> `pwd` != ~
Außderdem löscht man Temp-Dateien nach Beendigung des Scripts, nicht vor Beginn des nächsten Durchlaufs ;-)
Auch Widerspruch, aber ich lasse mich gerne eines besseren belehren. Mein Script wertet eigentlich nur die wesentlichen Dinge der beiden log-Files aus und stellt es komprimiert dar. Es kann aber durchaus sein, dass man sich das logfile näher ansehen möchte. Lösche ich es am Ende meiens Scripts, dann wäre das nicht mehr möglich.
Ah so, ist in diesem Fall ein Argument.
Ach so, zufällige Dateinamen sind auch empfehlenswert ;-) (man mktemp oder zumindest die PID des Scripts, also $$ im Dateinamen verwenden. Den Dateinamen solltest Du natürlich in einer Variablen speichern und die Dateien zum Schluss wieder löschen.)
Ok, den Dateinamen in eine Variable zu schreiben, macht Sinn. Bei so kurzen Scripts denke ich nie daran.
;-) Und was ist mit Zufalls-Dateinamen?
antivir -s -v -z -allfiles -e -ren -dmdel -dmds -r1 \ -rfmein_antivir_fd.log -ra -lang=DE /media/floppy
Antivir liegt in $PATH? Besser den absoluten Pfad verwenden und natürlich auch für die Logdatei den Pfad mit angeben ;-)
Antivir liegt in /usr/bin/ Macht das wirklich Sinn?
Kommt drauf an. Wenn das Script immer nur von Hand aufgerufen wird, ist es wohl unproblematisch (da würde die normale Benutzung der Shell stark eingeschränkt, wenn /usr/bin nicht im PATH liegt). Falls das Script allerdings per cron laufen soll, sollte man keine Annahmen über $PATH machen und immer hartcodierte Pfade einsetzen ;-)
Ich wundere mich nach wie vor, dass antivir und f-prot bei meinen News- und Cache-Scans unterschiedliche Viren (nicht) finden.
Tja, kein Programm ist perfekt.
Es gibt da so tolle "Linux-Typen", die einen Eicar als X-Comment in Postings schreiben,
*LoL*
darauf reagiert zB f-prot, aber antivir nicht. IMO sollte aber Eicar per default gemeldet werden.
Aber nur, wenn er als ausführbare Datei vorliegt, oder? In einem Mailheader ist er ja ungefährlich ;-) Gruß Christian Boltz -- Wenn man keine Vögel mag, ist es völlig in Ordnung, mit Kanonen auf Spatzen zu schiessen. [Ratti in suse-linux]
Am Sonntag, 31. August 2003 00:46 schrieb Christian Boltz:
Und woher weißt Du, dass der User gerade in seinem Homeverzeichnis ist? Das Script legt Dateien ohne Pfadangabe nämlich im _aktuellen_ Verzeichnis an und _nicht_ im Home (es sei denn, man ist zufällig gerade dort ;-) -> `pwd` != ~
1. Du hast recht, dass es nicht schön gelöst ist. Für mich und meine Tochter sollte es aber reichen. Ihr habe ich erklärt, dass sie eine Konsole aufmacht (dann ist man autmatisch in home, augenblicklich freue ich mich schon, wenn sie sich überhaupt ein paar Befehle wie cd merkt) und dann das Script aufruft. Ok, dann lass uns das Script mal verbessern. 2. Das Script fasst nur die wichtigen Zeilen auf der _Konsole_ zusammen und da ist es mal wichtig, dass es sich um ein neues log handelt, sodass die alten Meldungen nicht auch wieder angezeigt werden. In welchem Verzeichnis man ist, ist eigentlich egal, solange es beschreibbar ist. Was hältst du davoi ein "cd ~" davor zu geben? Dann verstreuen sich im Extremfall die logs nicht in diversen beschreibbaren Verzeichnissen oder würdest du ~ in den Pfad integrieren?
Ach so, zufällige Dateinamen sind auch empfehlenswert ;-) (man mktemp oder zumindest die PID des Scripts, also $$ im Dateinamen verwenden. Den Dateinamen solltest Du natürlich in einer Variablen speichern und die Dateien zum Schluss wieder löschen.)
Ok, den Dateinamen in eine Variable zu schreiben, macht Sinn. Bei so kurzen Scripts denke ich nie daran.
;-)
Und was ist mit Zufalls-Dateinamen?
Ich verstehe noch nicht, was du mit Zufalls-Dateinamen erreichen willst. Interessant ist normalerweise die letzte Virenprüfung und das logfile dazu hat einen eindeutigen Namen. Ein zufälliger Dateiname würde doch verwirren. Allerdings überlege ich mir die Ausgabe meines Scipts ab " AB HIER GENAU LESEN !" in eine datums- und uhrzeitbezogene Datei umzuleiten.
Antivir liegt in /usr/bin/ Macht das wirklich Sinn?
Kommt drauf an. Wenn das Script immer nur von Hand aufgerufen wird, ist es wohl unproblematisch (da würde die normale Benutzung der Shell stark eingeschränkt, wenn /usr/bin nicht im PATH liegt). Falls das Script allerdings per cron laufen soll, sollte man keine Annahmen über $PATH machen und immer hartcodierte Pfade einsetzen ;-)
Da bis jetzt die Ausgabe nur auf die Konsole erfolgt, macht ein cronjob nicht viel Sinn. Allerdings habe ich ein ähnliches Script für den Newsspool gemacht, das ich per cronjob aufrufe und da auch den Pfad nicht angegeben und es funktionierte. Ich werde mich in Zukunft daran halten. Kannst du mal ein Beispiel nennen, wo bzw. warum es da zu Problemen kommen kann.
Es gibt da so tolle "Linux-Typen", die einen Eicar als X-Comment in Postings schreiben,
*LoL*
Ich habe auch gelacht, aber manchmal nerven mich diese Dinge. Wäre es eigentlich auch möglich aufgrund des grep-Befehls ein lokales Mail zu versenden? Nehmen wir also an "grep Infected mein_fprot_sys.log" gibt etwas aus, dann soll (und nur dann) an den User x ein Mail mit dem Inhalt "grep Infection mein_fprot_sys.log" gesendet werden. Hintergrund: Dann kann ich nicht übersehen, wenn meine Tochter irgendwo von extern ein Virus mitgebracht hat. Al
Am Sonntag, 31. August 2003 11:30 schrieb Al Bogner: Hallo Al,
Wäre es eigentlich auch möglich aufgrund des grep-Befehls ein lokales Mail zu versenden?
Nehmen wir also an "grep Infected mein_fprot_sys.log" gibt etwas aus, dann soll (und nur dann) an den User x ein Mail mit dem Inhalt "grep Infection mein_fprot_sys.log" gesendet werden. Hintergrund: Dann kann ich nicht übersehen, wenn meine Tochter irgendwo von extern ein Virus mitgebracht hat.
Kleines Beispiel: echo "Advent, Advent der Server brennt \!" | mail -s "Warnung" \ user@mydomain.xyz So kannst Du Dir was basteln:-) MfG Th. Moritz -- Geisterfahrer sind oft sehr entgegenkommend!
Hallo Al, hallo Leute, Am Sonntag, 31. August 2003 11:30 schrieb Al Bogner:
Am Sonntag, 31. August 2003 00:46 schrieb Christian Boltz:
Und woher weißt Du, dass der User gerade in seinem Homeverzeichnis ist? Das Script legt Dateien ohne Pfadangabe nämlich im _aktuellen_ Verzeichnis an und _nicht_ im Home (es sei denn, man ist zufällig gerade dort ;-) -> `pwd` != ~
1. Du hast recht, dass es nicht schön gelöst ist. Für mich und meine Tochter sollte es aber reichen. Ihr habe ich erklärt, dass sie eine Konsole aufmacht (dann ist man autmatisch in home, augenblicklich freue ich mich schon, wenn sie sich überhaupt ein paar Befehle wie cd merkt) und dann das Script aufruft.
Ah so ;-) Du könntest natürlich auch ein Desktop-Icon anlegen, das mit dem Script verknüpft ist ([x] in Konsole öffnen). Dann bräuchtest Du am Ende des Scripts nur noch folgende zusätzliche Befehle, damit das Fenster nicht gleich wieder zuklappt: echo "Return drücken, um das Fenster zu schließen" read
Ok, dann lass uns das Script mal verbessern.
;-)
2. Das Script fasst nur die wichtigen Zeilen auf der _Konsole_ zusammen und da ist es mal wichtig, dass es sich um ein neues log handelt, sodass die alten Meldungen nicht auch wieder angezeigt werden.
Klar, das Logfile löschen bei Scriptbeginn ist in diesem Fall akzeptabel (wenn auch unüblich, aber wenn alle nur das übliche tun würden, wären wir immer noch Sklaven einer gewissen Firma aus Redmond ;-)
In welchem Verzeichnis man ist, ist eigentlich egal, solange es beschreibbar ist.
Eigentlich ja. Aber mit der Zeit sammeln sich Logdateien in diversen Verzeichnissen an...
Was hältst du davoi ein "cd ~" davor zu geben? Dann verstreuen sich im Extremfall die logs nicht in diversen beschreibbaren Verzeichnissen
Wäre eine Lösung.
oder würdest du ~ in den Pfad integrieren?
LOGFILE=~/fprot_log wäre obigem vorzuziehen.
Und was ist mit Zufalls-Dateinamen?
Ich verstehe noch nicht, was du mit Zufalls-Dateinamen erreichen willst.
Die sind unter Sicherheitsaspekten sinnvoll. Angenommen, Du änderst Dein Script irgendwann so, dass es die Logdateien mit befehl > $logfile überschreibt, anstatt sie vorher zu löschen, ist das Script recht anfällig gegen "böse" Symlinks, die zum Überschreiben einer wichtigen Datei führen...
Interessant ist normalerweise die letzte Virenprüfung und das logfile dazu hat einen eindeutigen Namen. Ein zufälliger Dateiname würde doch verwirren. Allerdings überlege ich mir die Ausgabe meines Scipts ab " AB HIER GENAU LESEN !" in eine datums- und uhrzeitbezogene Datei umzuleiten.
Auch eine Möglichkeit.
Antivir liegt in /usr/bin/ Macht das wirklich Sinn?
Kommt drauf an. Wenn das Script immer nur von Hand aufgerufen wird, ist es wohl unproblematisch (da würde die normale Benutzung der Shell stark eingeschränkt, wenn /usr/bin nicht im PATH liegt). Falls das Script allerdings per cron laufen soll, sollte man keine Annahmen über $PATH machen und immer hartcodierte Pfade einsetzen ;-)
Da bis jetzt die Ausgabe nur auf die Konsole erfolgt, macht ein cronjob nicht viel Sinn.
Naja, bei cron käme die Ausgabe dann eben per Mail ;-)
Allerdings habe ich ein ähnliches Script für den Newsspool gemacht, das ich per cronjob aufrufe und da auch den Pfad nicht angegeben und es funktionierte.
Ich werde mich in Zukunft daran halten. Kannst du mal ein Beispiel nennen, wo bzw. warum es da zu Problemen kommen kann.
Schreib mal echo $PATH in ein Script und führe es dann aus: - als User - als root - per Cronjob (Ausgabe kommt per Mail) Bei jeder dieser Varianten kommt ein anderer $PATH raus. /usr/bin und /bin _sollten_ zwar überall im PATH liegen, aber das weiß man nie sicher. Und es geht IMHO schneller, einmal korrekt alle Pfade vorzugeben, als hinterher die Fehler zu jagen ;-)
Es gibt da so tolle "Linux-Typen", die einen Eicar als X-Comment in Postings schreiben,
*LoL*
Ich habe auch gelacht, aber manchmal nerven mich diese Dinge.
Glaube ich ;-)
Wäre es eigentlich auch möglich aufgrund des grep-Befehls ein lokales Mail zu versenden?
Klar, wieso nicht?
Nehmen wir also an "grep Infected mein_fprot_sys.log" gibt etwas aus, dann soll (und nur dann) an den User x ein Mail mit dem Inhalt "grep Infection mein_fprot_sys.log" gesendet werden. Hintergrund: Dann kann ich nicht übersehen, wenn meine Tochter irgendwo von extern ein Virus mitgebracht hat.
Geht. Dabei nutzen wir einfach mal aus, dass grep den Exitstatus ($?) 1 verwendet, wenn keine passenden Zeilen gefunden wurden. Die geringste Änderung am Script sähe dann so aus: grep "Virus" $logfile && grep "Virus" | mail -s "Virusalarm" chef@home Das ist zwar im Prinzip nicht sehr performant (immerhin wird zweimal grep angestoßen), aber es geht. Außerdem produzierst Du so pro Logfile eine Mail, was auch unschön ist. Geschickter wäre wohl der folgende Konstrukt: ergebnis="`grep 'Virus' $logfile1 ; grep 'Virus' $logfile2`" test -n "$ergebnis" && { echo "ACHTUNG: der Virenscanner hat etwas gefunden!" echo "$ergebnis" echo "$ergebnis" | mail -s "Virusalarm" chef@home } Gruß Christian Boltz -- Aeh, ja. Ich gehe nicht davon aus, dass Du Deinen Brief direkt in Postscript verfasst :-) [Thomas Hertweck in suse-linux]
participants (5)
-
Al Bogner
-
Christian Boltz
-
Matthias Jänichen
-
Matthias Jänichen
-
Thomas Moritz