|
Επόμενο Προηγούμενο Περιεχόμενα
Το LIDS αποτελείται από δύο κομμάτια: ένα (μεγαλούτσικο)
kernel patch, και ένα administration πρόγραμμα, το
lidsadm. Ας τα δούμε ξεχωριστά.
Παρέχει τις εξής extra παραμέτρους στον πυρήνα:
-
CONFIG_LIDS: όπως λέει και το όνομά του, ενεργοποίηση
του LIDS.
-
CONFIG_LIDS_HANGUP: κάθε φορά που κάποιο πρόγραμμα
προσπαθεί να κάνει κάτι που απαγορεύεται από το LIDS,
τότε η κονσόλα στην οποία το πρόγραμμα είναι attached
θα κλείνει.
-
CONFIG_LIDS_SA_EXEC_UP: κάθε φορά που εκτελείται ένα
πρόγραμμα μη προστατευμένο πριν μπει σε "λειτουργία" το
LIDS (κατά τη διάρκεια του boot προφανώς) θα
δημιουργείται ένα security alert.
-
CONFIG_LIDS_NO_EXEC_UP: με αυτή την επιλογή το LIDS θα
αρνηθεί να τρέξει μη προστατευμένα προγράμματα πριν
αυτό μπει σε "λειτουργία".
-
CONFIG_LIDS_INIT_CHILDREN_LOCK: με αυτή την επιλογή θα
προστεθεί η δυνατότητα να αποκλειστούν κάποια στιγμή
(την οποία επιλέγουμε εμείς) όλοι οι τρόποι για να
σκοτώσει κάποιος ένα process του οποίου το parent
process είναι η init.
-
CONFIG_LIDS_NO_FLOOD_LOG: Αν ένα μήνυμα του LIDS
επαναλαμβάνεται επί μακρόν, το LIDS θα σταματήσει να το
γράφει στα logs για να μην τα γεμίσει.
-
CONFIG_LIDS_PORT_SCAN_DETECTOR: Με αυτή την επιλογή θα
δημιουργηθεί μέσα στον kernel ένας port scanner
detector, και για κάθε port scan το LIDS θα καταγράφει
τα απαιτούμενα μηνύματα στα logs.
-
CONFIG_LIDS_TIMEOUT_AFTER_FLOOD: Είναι ο χρόνος τον
οποίο πρέπει να απέχουν μεταξύ τους δύο διαφορετικά
security alerts για να καταγραφούν.
-
CONFIG_LIDS_ALLOW_SWITCH: Με αυτή την επιλογή μπορεί να
"απενεργοποιηθεί" προσωρινά το LIDS.
-
CONFIG_LIDS_MAX_TRY: Πόσες φορές θα δεχθεί λάθος
password το LIDS πριν "κλειδώσει" για λίγο τη
δυνατότητα απενεργοποίησής του.
-
CONFIG_LIDS_TTW_FAIL: Πόση ώρα θα κρατάει το "κλείδωμα"
που λέγαμε πιο πάνω.
-
CONFIG_LIDS_REMOTE_SWITCH: Με αυτή η επιλογή, η
απενεργοποίηση θα είναι δυνατή και από απόμακρο
τερματικό, αλλιώς, μόνο από την κονσόλα.
-
CONFIG_LIDS_ALLOW_ANY_PROG_SWITCH: Κανονικά μόνο το
/sbin/lidsadm μπορεί να απενεργοποιήσει το LIDS αλλά με
αυτή την επιλογή, μπορούμε να επιτρέψουμε και σε άλλα
προγράμματα να κάνουν κάτι τέτοιο.
-
CONFIG_LIDS_RELOAD_CONF: Επιτρέπει την επανανάγνωση του
αρχείου ρυθμίσεων του LIDS χωρίς να χρειάζεται reboot.
-
CONFIG_LIDS_SA_THROUGH_NET: Με αυτή την επιλογή, τα
security alerts στέλνονται δια μέσω του δικτύου, και γι
αυτό πρέπει να οριστούν ορισμένες ρυθμίσεις, τις οποίες
θα δούμε παρακάτω.
-
CONFIG_LIDS_HIDE_KLIDS: Με αυτή την επιλογή, το process
του Lids θα κρύβεται από το /proc (άρα δεν θα φαίνεται
στα ps, top κλπ).
-
CONFIG_LIDS_NET_MAX_TRIES: Πόσες φορές θα προσπαθήσει
το LIDS να στείλει το security alert μέσω δικτύου.
-
CONFIG_LIDS_NET_TIMEOUT: Πόση ώρα θα είναι το timeoute
μεταξύ των προσπαθειών να σταλεί το μήνυμα μέσω
δικτύου.
-
CONFIG_LIDS_MSGQUEUE_SIZE: Πόσο μεγάλη να είναι η ουρά
των μηνυμάτων που θα σταλούν μέσω δικτύου. Μόλις
γεμίσει η ουρά, δεν θα καταγράφονται άλλα μηνύματα
(μέχρι να ξανααδειάσει προφανώς).
Το πρόγραμμα /sbin/lidsadm είναι απαραίτητο για να
μπορούμε να χρησιμοποιήσουμε σωστά και αποδοτικά το LIDS.
Δεν θα μπούμε βέβαια σε λεπτομέρειες χρήσης, θα πούμε
μόνο ότι με αυτό το πρόγραμμα:
-
μπορούμε να θέσουμε κάποια αρχεία και directories σε
read-only για όλες τις processes του συστήματος, ακόμα
και τις root-owned processes. Παράδειγμα το /usr/lib
-
μπορούμε να θέσουμε κάποια αρχεία σε append-only mode
(θυμηθείτε Windows-NT και permission to write), όπως
για παράδειγμα το /var/log/messages
-
μπορούμε να θέσουμε κάποια αρχεία σε hidden για όλες
τις processes, όπως το /etc/shadow...
-
...δίνοντας σε συγκεκριμένα προγράμματα το δικαίωμα να
τα διαβάζουν, όπως το /bin/login
-
μπορούμε να ορίσουμε τα capabilities που θα αφαιρέσουμε
από όλα τα προγράμματα, όταν θα κλειδώσουμε τον
πυρήνα, π.χ. το CAP_SYS_MODULE
-
μπορούμε να προσθέσουμε κάποια από αυτά που αφαιρέσαμε
globally, σε συγκεκριμένα executables
-
με τη δυνατότητα να γίνονται inherited στα child
processes
-
μπορούμε να απενεργοποιήσουμε προσωρινά το LIDS (για να
θέσουμε νέες ρυθμίσεις π.χ.)...
-
... και να το επανενεργοποιήσουμε αφού του ζητήσουμε να
διαβάσει το configuration ξανά
-
μπορούμε να "κρύψουμε" processes
-
ή μπορούμε να τα κάνουμε να αγνοούν το kill
Νομίζω ότι πιάσατε την κεντρική ιδέα. Υπάρχουν βέβαια
περιορισμοί. Συγκεκριμένα, τα file-attributes που
θέτουμε, τίθενται με βάση το inode, άρα δεν μπορούμε να
κλειδώσουμε το /etc directory και να περιμένουμε να
δουλεύει η εντολή passwd (η οποία αναδημιουργεί το
password file κάθε φορά, άρα αυτό αποκτά άλλο inode κάθε
φορά, συνεπώς ΔΕΝ μπορούμε να δώσουμε full privilege στην
εντολή passwd πάνω σε αυτό το αρχείο).
Επόμενο Προηγούμενο Περιεχόμενα
|
|
|
|