Linux Inside
70
T
ο Arkose είναι μία εφαρμογή που μας επιτρέπει να δημι-
ουργούμε «απομονωμένα δοχεία» για την εκτέλεση των
εφαρμογών μας. Σκεφτείτε το σαν ένα διαφανές μπου-
κάλι, όπου τρέχουμε μία οποιαδήποτε εφαρμογή με ασφά-
λεια, για να παρατηρήσουμε τι κάνει, χωρίς να διατρέξουμε
κίνδυνο. Βασίζεται στην ιδέα του «sandbox», δηλαδή ενός
κουτιού όπου ένα παιδί μπορεί να παίζει εύκολα με την άμμο
του χωρίς να λερώνει το χώρο. Όσοι είστε γονείς, ξέρετε τι
εννοώ!
Για ευνόητους λόγους, αυτή η λογική του sandbox έχει με-
ταφερθεί και στον κόσμο των υπολογιστών. Πολλές φορές
χρειαζόμαστε έναν ασφαλή χώρο για να τρέξουμε εφαρμο-
γές σε απομόνωση από το υπόλοιπο λειτουργικό σύστημα και
φυσικά από το σύστημα με τα πολύτιμα αρχεία μας. Αυτή τη
λογική του sandbox υλοποιεί με επιτυχία το Arkose [1], που
αναπτύσσει ο Stéphane Graber, σε Python. Τεχνικά, το Arkose
βασίζεται στις ίδιες τεχνικές με το LXC (Linux Container) [1],
δηλαδή στα namespaces του πυρήνα Linux [3] που επιτρέ-
πουν την απομόνωση των πόρων του συστήματος, αλλά και
στο Cgroups [4]. Τα τελευταία επιτρέπουν τον περιορισμό
των πόρων και έτσι το Arkose μπορεί να κάνει σωστά τη δου-
λειά του. Αν σας φαίνονται… σανσκριτικά όλα αυτά, μην πτοή-
στε! Στην πράξη, όπως θα δείτε, το Arkose είναι μία εφαρμο-
γή φτιαγμένη για να τη χειρίζεται τόσο ο προχωρημένος όσο
και ο αρχάριος χρήστης. Στόχος του είναι η απλότητα και γι'
αυτό δεν δίνει τη συνήθη πλειάδα επιλογών παραμετροποίη-
σης που προσφέρουν παρόμοιες εφαρμογές. Αντίθετα, επι-
τρέπει να τρέξετε μία εφαρμογή σε sandbox με ένα κλικ από
το γραφικό περιβάλλον ή με μία απλή εντολή στο τερματικό.
Πώς δουλεύει
Πριν δούμε το Arkose στην πράξη, ας αναλύσουμε λίγο
πώς δουλεύει. Στην ουσία, η εφαρμογή αξιοποιεί το aufs, ένα
overlay σύστημα αρχείων που προέρχεται από το UnionFS. H
αρχική δουλειά του aufs είναι να προσομοιώνει εγγραφές σε
μη εγγράψιμα μέσα, όπως CD (γι' αυτό χρησιμοποιείται συ-
χνά στα Linux Live CDs). Στην περίπτωση του Arkose, το aufs
προσομοιώνει την πρόσβαση στο τοπικό σύστημα αρχείων,
ώστε η εφαρμογή που τρέχουμε κάθε φορά να μην καταλα-
βαίνει ότι τρέχει μέσα σε ένα απομονωμένο δοχείο.
Για να γίνουν όλα αυτά όμως, το Arkose αξιοποιεί και ένα
χαρακτηριστικό του πυρήνα Linux, το Cgroups, που έχει εν-
σωματωθεί στον kernel από την έκδοση 2.6.24 και μετά. Το
Cgroups επιτρέπει ουσιαστικά στον πυρήνα να ομαδοποιεί
διεργασίες και να τις τρέχει μαζί. Έτσι, ο scheduler τις αντιμε-
τωπίζει ως μία μοναδική διεργασία με προφανή πλεονεκτήμα-
τα. Στην πράξη, αυτό το χαρακτηριστικό του πυρήνα Linux
μας επιτρέπει να επιλέγουμε με κάποιον τρόπο δύο ή περισ-
σότερες διεργασίες και να τις μετατρέπουμε σε μία κλειστή
ομάδα, στην οποία αναθέτουμε κάποιους πόρους. Στη συνέ-
χεια, το τμήμα του πυρήνα που ασχολείται με τη διαχείριση
της μνήμης απομονώνει αυτή την ομάδα από το υπόλοιπο σύ-
στημα, περιορίζοντας αποτελεσματικά εφαρμογές που δεν εί-
ναι και τόσο «οικονομικές» στον τομέα της κατανάλωσης μνή-
μης... Μάλιστα, αν τα Cgroups είναι ενεργοποιημένα στον πυ-
ρήνα, τότε το Linux θα τα χρησιμοποιεί για να διαχειρίζεται
όλους τους πόρους, είτε αφορούν διεργασίες του χρήστη εί-
τε διεργασίες του πυρήνα.
Εγκατάσταση
Ας αφήσουμε όμως τη θεωρία, για να περάσουμε στην
πράξη. Η εγκατάσταση του Arkose σε διανομές Debian και ει-
δικά στο Ubuntu είναι πανεύκολη, μια και τα πακέτα υπάρ-
χουν στο αποθετήριο Universe. Στην πράξη το μόνο που έχε-
τε να κάνετε είναι να τρέξετε το Κέντρο Λογισμικού και να ψά-
ξετε για το πακέτο arkose.
Επιλέξτε το πακέτο «Arkose – Desktop Application
Sandboxing» και πατήστε Install. Θα ζητηθεί ο προσωπικός
κωδικός σας, οπότε πληκτρολογήστε τον και περιμένετε να
τελειώσει η εγκατάσταση. Αντίστοιχα για εγκατάσταση από το
τερματικό, θα έπρεπε να δώσετε την εντολή:
sudo apt-get install arkose arkose-gui
Η έκδοση που εγκαθίσταται με αυτόν τον τρόπο είναι η
1.5.1, που είναι η πιο πρόσφατη τη στιγμή που γράφονται αυ-
τές οι γραμμές. Σημειώστε ότι χρειάζεται να έχετε πυρήνα
2.6.36 τουλάχιστον με ενσωματωμένο aufs. Στο Ubuntu 12.04
δεν θα έχετε κανένα πρόβλημα.
Λειτουργία
Αφού τελειώσαμε με την εγκατάσταση, είναι καιρός να δού-
με… τι ψάρια πιάνει το Arkose. Για να τρέξουμε το γραφικό
περιβάλλον του, πηγαίνουμε στο μενού Εφαρμογές>Εργα-
Του Δημήτρη Καλαμαρά <dkalamaras@gmail.com>
Linux Labs – Arkose
Ένα από τα ατού του Linux είναι η ασφάλεια.
Ωστόσο, εάν κατεβάζετε συχνά εφαρμογές και
σκριπτάκια από τυχαίες ιστοσελίδες στο Διαδίκτυο,
διατρέχετε κίνδυνο, καθώς δεν ξέρετε τι ακριβώς
κάνει ο κώδικάς τους. Τη λύση δίνει το Arkose, που
περιορίζει την εκτέλεση μίας εφαρμογής σε ένα
κλειστό περιβάλλον.
Εργαλεία:
Arkose
Δυσκολία:
URL:
launchpad.net/arkose
Ιστοσελίδα
Arkose
Ο Δημήτρης περνάει την ώρα του δοκιμάζοντας διανομές και προγράμματα.
Arkose: Περιορίστε τις εφαρμογές σας!
Το ένα και μοναδικό παράθυρο για την εκτέλεση
εφαρμογών στο sandbox του Arkose.
1