Aug 14, 2010

Ενεργοποίηση του ClamAV όταν τοποθετούμε ένα usb flash στο Ubuntu

Αν και εμείς οι χρήστες του Linux με την κατάλληλη παραμετροποίηση μπορούμε να θωρακίσουμε σε μεγάλο βαθμό την υποδομή μας, σε ένα εταιρικό περιβάλλον είναι αρκετά πιθανόν να "δανειστούμε" κάποιον ιό από ένα Windows μηχάνημα, που έπειτα να τον μεταφέρουμε σε άλλες μηχανές του ίδιου λειτουργικού.

Στην περίπτωσή μου, ο συνηθέστερος τρόπος ανταλλαγής αρχείων με Windows-based συναδέλφους είναι διαμέσου flash usb sticks. Τα βήματα που ακολουθούν, βασίζονται στο Ubuntu 10.04 (Lucid Lynx) και αναφέρονται στο πώς μπορούμε να ελέγξουμε για μολυσμένα αρχεία κάθε φορά που προσαρτούμε ένα usb stick.

Καταρχήν, ως αντιβιοτικό, πρόκειται να χρησιμοποιήσουμε το ClamAV (http://www.clamav.net) που βρίσκεται στα αποθετήρια του Ubuntu αλλά και των υπολοίπων μεγάλων διανομών (πχ openSuSE). Έπειτα από την εγκατάσταση του ClamAV, δημιουργείται ένας δαίμονας που ενημερώνει αυτόματα τη λίστα των ιών προς καταπολέμηση, ωστόσο δεν δημιουργείται καμία διαδικασία ελέγχου αρχείων χωρίς τη δική μας παρέμβαση. Ειδικά για τα συστήματα αρχείων των usb sticks, συνήθως θα τα βρούμε κάτω από τον κατάλογο /media στα σύγχρονα Linux συστήματα. Και το κλειδί για την ανίχνευση του γεγονότος της εισαγωγής ενός usb, βρίσκεται στη διεργασία του συστήματος udev που μας επιτρέπει την κατασκευή πολύ ευέλικτων πολιτικών διαχείρισης.

Στον κατάλογο λοιπόν /etc/udev/rules.d/ δημιουργούμε ένα νέο αρχείο (ως root φυσικά), πχ το 99-clamscanusb.rules με τα ακόλουθα περιεχόμενα:

ACTION=="add", BUS=="scsi", KERNEL=="sd[c-z]*", RUN+="/usr/local/share/bin/clamavscan.sh"

Πρόκειται για έναν κανόνα που ορίζει πως θα εκτελεστεί ένα πρόγραμμα, οποτεδήποτε γίνεται προσάρτηση μια συσκευή SCSI με αναγνωριστικό sd[c-z] (και αυτό γιατί χρησιμοποιώ δυο δίσκους, sda και sdb που θέλω να τους αποκλείσω από την εμβέλεια ισχύος του κανόνα) Περισσότερα για την σύνταξη αυτών των εντολών θα βρείτε στο http://reactivated.net/writing_udev_rules.html. Το τελικό κομμάτι της προσπάθειάς μας, αφορά την ενεργοποίηση του anti virus για την νέα συσκευή, γράφοντας ένα script σαν και αυτό:

#!/bin/bash

export_file=/tmp/clamav.$$


clamscan -r --bell --no-summary -i /media > $export_file

if [ `cat $export_file | wc -l` -gt 0 ]; then

mail root > $export_file

fi



που εκτελεί το ClamAV και αναλαμβάνει να στείλει ένα email στον root σε περίπτωση εύρεσης ενός μολυσμένου αρχείου.

No comments: