Μετάβαση στο περιεχόμενο

Διαχείριση σχολικού εργαστηρίου/iTALC

Από Βικιβιβλία

Το iTALC είναι λογισμικό διαχείρισης σχολικού εργαστηρίου που επιτρέπει τον απομακρυσμένο έλεγχο των υπολογιστών των μαθητών.


iTALC needs to have the Client Application running, and a pair of keys set up in order to launch. If you've been following closely, this should already be done.


Ρυθμίσεις στον εξυπηρετητή

[επεξεργασία]
  • Κάνουμεε λήψη του πακέτου italc server,italc client
  • Ανοίγουμε ένα τερματικό και δίνουμε την εντολή: sudo ica -role teacher -createkeypair
    • Θα δημιουργηθούν ένα δημόσιο και ένα ιδιωτικό κλειδί κρυπτογράφησης στου καταλόγου /etc/italc/keys/private/teacher/key και /etc/italc/keys/public/teacher/key .
    • Επειδή όμως τα κλειδιά αυτά δημιουργούνται με δικαιώματα που επιτρέπουν την ανάγνωση του μόνο από τον root χρήστη ( -r--r----- ) πρέπει να αλλάξουμε τις άδειες πρόσβασης.
    • Ένας τρόπος είναι να δημιουργήσουμε το group χρηστών italc και να προσθέσουμε σ'αυτό τους χρήστες που θα είναι χρήστες του italc server. Κατόπιν πρέπει να αλλάξουμε ανάλογα τις άδειες του κλειδίου.
      • Από τη γραμμή εντολών
        • $sudo groupadd italc (επαληθεύουμε με $less /etc/group)
        • $ sudo usermod -a -G italc username (θα πρέπει να υπάρχουν και ο χρήστης και το group για να εκτελεστεί σωστά η εντολή αυτή) (επαλήθευση: παραδόξως δεν αντανακλάται άμμεσα η αλλαγή σε εντολές τερματικού πχ id , groups , less /etc/passwd κτλ)
        • sudo chgrp -R italc /etc/italc/keys/private (εδώ αλλάζουμε την ομάδα που ανήκει το ιδιωτικό κλειδί)
        • sudo chmod -R o-rwx /etc/italc/keys/private (εδώ αφαιρούμε τα δικαιώματα από όσους χρήστες δεν ανήκουν στην ομάδα italc -r--r----- 1 root italc )
      • Με το gnome βοήθημα Χρήστες και ομάδες' ( $sudo users-admin )


Την πρώτη φορά που θα προσπαθήσετε να εκτελέσετε το italc θα εμφανιστούν παράθυρα λάθους. Το σημαντικό είναι ότι πρέπει στον εξυπηρετητή να έχουμε ξεκίνησει και ένα πελάτη με:

$ica

Αλλά και ο πελάτης πιθανώς να εμφανίσει μηνύματα λάθος. Όπως ότι η θύρα 5800 είναι χρησιμοποιημένη.(could not start ISD server: The bound address is already in use). Στο ubuntu 9.04 είδαμε ότι αυτόματα προστέθηκε η εκκίνηση του πελάτη. Οπότε θα δοκιμάσουμε μια επαννεκκίνηση!

Το επόμενο σημαντικό βήμα είναι να μεταφέρουμε στους ΗΥ πελάτες το δημόσιο κλειδί. Αυτό για ένα μικρό δίκτυο μπορεί να γίνει και με ένα απλό φλασάκι. Για ποιό exteme περιπτώσεις δοκιμάζουμε το scp. Προσοχή να αντιγράψετε το key στον κατάλογο /etc/italc/keys/public/teacher


Οι εντολές εκτελέστηκαν σε XUbuntu 10.04 , σε stand-alone πελάτες (όχι LTSP στήσιμο)

Βασικές έννοιες

[επεξεργασία]

Τα βασικά προγράμματα είναι:

  • ο πελάτης ica Ο πελάτης πρέπει να εκτελείται στους υπολογιστές που θέλουμε να ελέγχουμε από μακρυά με το iTalc. Ο πελάτης αυτός (ως προς το iTalc) περιέχει και έναν VNC-εξυπηρετητή . O εξυπηρετητής VNC του ica τρέχει πίσω από τη θύρα 5900 η οποία μπορεί να αλλάξει με την παράμετρο -ivsport port. Προσέξτε ότι υπάρχει και το σενάριο ica-launcher το οποίο θα χρησιμοποιήσει το avahi.
  • το πρόγραμμα διαχείρησης των πελατών: italc. Υπάρχει και σενάριο italc-launcher το οποίο θα κάνει χρήση του avahi.
  • Ποιός είναι ο πελάτης; : Οπότε από την οπτική του iTalc που έχει κεντρικό ρόλο στη διαχείριση της τάξης μπορούμε να αποκαλέσουμε τους άλλους ΗΥ ,όπου εκτελείται το ica , πελάτες. Όμως από την πλευρά του ica ο iTalc αποτελεί πελάτη που θα ζητήσει πρόσβαση στον framebuffer του ΗΥ όπου εκτελείται. Συνεπώς προσοχή στην ορολογία!

Το iTalc υποστηρίζει ρόλους. Όπως διαβάζουμε και στο iTalc βίκι (στις συχνές ερωτήσεις-FAQ),ο μηχανισμός των ρόλων είναι χρήσιμος για να περιορίζουμε την πρόσβαση στους πελάτες.

Μπορούμε πχ σε ένα σχολείο ο ρόλος διαχειριστής να έχει πρόσβαση σε όλους του υπολογιστές αλλά ο ρόλος δάσκαλος να έχει πρόσβαση μόνο στους ΗΥ του εργαστηρίου/τάξης του.(Αυτό το επιτυγχάνουμε με το να έχει σε κάθε εργαστήριο ο δάσκαλος δικό του ιδιωτικό/δημόσιο κλειδί στον υπολογιστή στην τάξη ή εργαστήριό του έχοντας μοιράσει το δημόσιο κλειδί στους ΗΥ της τάξης του)

Το iΤalc υποστηρίζει τους ρόλους "teacher(Δάσκαλος)", "admin(Διαχειριστής)", "supporter(Βοηθός)" και "other(άλλος)". Αυτοί οι ρόλοι εμφανίζονται σαν ορίσματα στην εντολή ica -role rolename -createkeypair και στις ρυθμίσεις του iΤtalc.

Αν πχ δημιουργήσουμε κλειδιά για τον ρόλο supporter και μεταφέρουμε το δημόσιο κλειδί στους υπολογιστές που θέλουμε να έχει πρόσβαση αυτή η ομάδα χρηστών τότε αν επιλέξουμε από τις ρυθμίσεις του iTalc τον ρόλο αυτόν θα έχουμε πρόσβαση μόνο στους πελάτες που γνωρίζουν το δημόσιο κλειδί του ρόλου αυτού. Του οποίου ρόλου το ιδιωτικό κλειδί θα πρέπει να είναι στον υπολογιστή που εκτελείται το iTalc.

Άρα το σημαντικό για να κατανοήσουμε πότε το iTalc θα έχει πρόσβαση σε κάποιον ΗΥ ή όχι είναι να ξέρουμε το ρόλο με τον οποίο εκτελείτε (αλλάζει από την οθόνη ρυθμίσεων ) καθώς και να ξέρουμε σε ποιούς υπολογιστές του δικτύου μας έχουμε αποθηκευμένο το δημόσιο κλειδί του ρόλου αυτού.

Από την πλευρά του πελάτη
[επεξεργασία]

Αν δούμε την λίστα των διεργασιών που εκτελούνται σε κάποιον πελάτη θα δούμε και την διεργασία ica -noshm -isport 5800 -ivsport 5900 -role other . Τι σημαίνει όμως ο προσδιορισμός ρόλου από την πλευρά του πελάτη; Και πως επηρεάζει τη σύνδεση μας από τον κεντρικό διαχειρηστή iTalc ;

Αν εκτελείται τον πελάτη ica σας με ρόλο other (που είναι το προκαθορισμένο) τότε το iTalc θα μπορέσει να αποκτήσει πρόσβαση στον υπολογιστή χωρίς να ερωτηθεί ο χρήστης. Αυτό μπορείτε να το ελέγξετε αν τερματίσετε τον πελάτη ica και δώσετε την εντολή: $ sudo ica-launcher teacher.. Τότε θα δείτε ότι αν προσπαθήσει να συνδεθεί το iTalc με τον πελάτη αυτόν πριν του επιτραπεί η πρόσβαση θα εμφανιστεί ένα σχετικό πλαίσιο διαλόγου που θα ρωτάει τον χρήστη αν επιτρέπει την πρόσβαση από το iTalc. Αυτό θα συμβεί και για τους ρόλους του διαχειριστή και βοηθού. Οπότε για υπολογιστές μαθητών μπορούμε να αφήσουμε την προκαθορισμένη ρύθμιση ρόλου που είναι other.

Στο παράδειγμα αυτό ,όπου ο πελάτης ica εκτελείται υπό τον ρόλο teacher παρατηρούμε επίσης ότι ο διαχειριστής italc μπορεί να συνδεθεί μόνο υπό τους ρόλους teacher , other. ενώ πχ αν ρυθμίσουμε το iTalc σε ρόλο διαχειριστή θα πάρουμε στον πελάτη το μήνυμα 'Somebody tried to access this computer but could not authenticate itself successfully'. Αν και αυτό είναι λογικό αφού θα χρησιμοποιούνται διαφορετικά κλειδιά για την ταυτοποίηση από italc και ica εκατέρωθεν, στην περίπτωση όμως italc[other] και ica[teacher] δεν είναι σημασιολογικά τόσο ξεκάθαρο γιατί επιτρέπεται τελικά η πρόσβαση στον ica πελάτη. Μια απάντηση είναι ότι όταν ο διαχειριστής υιοθετεί τον ρόλο other παρακάμπτεται η ταυτοποίηση σε επίπεδο κλειδιών η εξετάζεται αν ταιριάζει κάποιο από τα διαθέσιμα κλειδιά.Όμως είναι επίσης ενδιαφέρον ότι iTalc[admin] δεν μπορεί να συνδεθεί με ica[other] . Δηλαδή ο italc[admin|teacher|supporter] προσπαθεί να συνδεθεί μόνο με χρήση κλειδιού στον αντίστοιχο κατάλογο /etc/italc/keys/private/[teacher|admin|supporter] οπότε ο ica[other] πρέπει να έχει αντίστοιχο δημόσιο κλειδί στον αντίστοιχο φάκελο.

Συνοψίζωντας: Με ica[other] (προκαθορισμένος ρόλος του ica) o ica πελάτης εφόσον γίνει πρώτα ταυτοποίηση θα δεχτεί τη σύνδεση χωρίς να ρωτήσει το χρήστη του ΗΥ στον οποίο εκτελείται. Σχετικά με το αν όμως γίνει η ταυτοποίση έχουμε τα παρακάτω ενδεχόμενα (υποθέτουμε ότι έχουμε δυο υπολογιστές,και στον έναν εκτελείται το italc[Χ] όπου Χ ο ρόλος που επιλέξαμε από την οθόνη ρυθμίσεων του italc και στον άλλο ΗΥ εκτελείται ο ica[x] : όπου Χ ρόλος που μπορεί να τεθεί μέσω γραμμής εντολών όταν εκκινείται ο ica (πχ $ ica-launcher teacher].

  • iTalc[teacher] --> ica[other]     θα γίνει ταυτοποίηση εφόσον υπάρχει το ίδιο δημόσιο κλειδί για τον teacher στους αντίστοιχους καταλόγους των δυο υπολογιστών .
  • iTalc[admin] --> ica[other]     θα γίνει ταυτοποίηση εφόσον υπάρχει το ίδιο δημόσιο κλειδί για τον admin στους αντίστοιχους καταλόγους των δυο υπολογιστών .
  • iTalc[support] --> ica[other]     θα γίνει ταυτοποίηση εφόσον υπάρχει το ίδιο δημόσιο κλειδί για τον support στους αντίστοιχους καταλόγους των δυο υπολογιστών .
  • iTalc[other] --> ica[other]     Εφόσον υπάρχει κάποιος ρόλος από τους admin,teacher.support για τον οποίο μπορεί να γίνει ταυτοποίηση θα επιτευχθεί η σύνδεση , ειδάλλως όχι.

Αυτό μπορείτε να το διαπιστώσετε αν πχ μετονομάσετε όλα τα δημόσιο κλειδιά που έχετε μοιράσει στην πλευρά ενός ica πελάτη πχ $ sudo mv key foo . Θα δείτε ότι δεν επιτυχγάνεται σύνδεση από τον iTalc και μάλιστα στο τερματικό από το οποίο ξεκινήσατε τον ica-launcher θα δείτε ότι γίνεται μια συνεχόμενη προσπάθεια για ταυτοποίηση. Με το που επαναφέρεται το σωστό όνομα του αρχείου η σύνδεση θα επιτευχθεί.

Ας δούμε και την αντίθετη περίπτωση:

  • iTalc[teacher] --> ica[teacher|admin|support]     θα γίνει ταυτοποίηση εφόσον υπάρχει το ίδιο δημόσιο κλειδί για τον teacher στους αντίστοιχους καταλόγους των δυο υπολογιστών .. Σαν να αγνοείται δηλαδή ο καθορισμός ρόλους στο ica (όσο αφορά το κομμάτι της πιστοποιήσης).
  • iTalc[admin] --> ica[teacher|admin|support]     θα γίνει ταυτοποίηση εφόσον υπάρχει το ίδιο δημόσιο κλειδί για τον admin στους αντίστοιχους καταλόγους των δυο υπολογιστών . Σαν να αγνοείται δηλαδή ο καθορισμός ρόλους στο ica (όσο αφορά το κομμάτι της πιστοποιήσης).
  • iTalc[support] --> ica[teacher|admin|support]     θα γίνει ταυτοποίηση εφόσον υπάρχει το ίδιο δημόσιο κλειδί για τον support στους αντίστοιχους καταλόγους των δυο υπολογιστών . . Σαν να αγνοείται δηλαδή ο καθορισμός ρόλους στο ica (όσο αφορά το κομμάτι της πιστοποιήσης).
  • iTalc[other] --> ica[teacher]     θα γίνει ταυτοποίηση και σύνδεση εφόσον υπάρχει το ίδιο δημόσιο κλειδί για τον teacher στους αντίστοιχους καταλόγους των δυο υπολογιστών .Δηλαδή ο ica[teacher] λέει είμαι προσβάσιμος μόνο από τον ρόλο teacher. Παρόμοια για ica[admin],ica[support]

Δηλαδή αν έχουμε iTalc[admin|teacher|support] τότε το iTalc απαιτεί για την ταυτοποίηση το ζεύγος των κλειδιών μόνο στον ρόλο που όρισε και ο προσδιορισμός ρόλου στον πελάτη ica αγνοείται (με μόνη διαφορά ότι ο ica θα ζητήσει άδεια από το χρήστη για τη σύνδεση αφού δεν είναι other). Αν έχουμε όμως iTalc[other] τότε ο ρόλος του ica αποκτά σημασία!!

Άρα ο προδιορισμός του ρόλου από την πλευρά του πελάτη (σαν όρισμα στο ica ή ica-launcher) αφορά και το ποιό δημόσιο κλειδί θα χρησιμοποιηθεί και το αν θα επιτραπεί η πρόσβαση χωρίς ερώτηση ). Ενω ο προσδιορισμός του ρόλου από την πλευρά του iTalc αφορά το ποιό ιδιωτικό-δημόσιο κλειδί θα χρησιμοποιηθεί.

Εγκατάσταση στο Εξυπηρετητή

[επεξεργασία]

Λήψη πακέτων italc-server , italc-client. Σε ένα τερματικό εκτελούμε την εντολή: $ sudo ica -role teacher -createkeypair Η εντολή αυτή θα δημιουργήσει κλειδία στον κατάλογο keys /etc/italc/keys Εμείς αντιγράφουμε σε ένα αποσπόμενο αποθηκευτικό μέσο το αρχείο /etc/italc/keys/public/teacher/key . Αυτό θα μεταφέρουμε σε κάθε πελάτη όπως θα δούμε σε λίγο.

Για να ξεκινήσουμε τον πρόγραμμα διαχείρισης - ελέγχου τον πελατών ακολουθούμε τα εξής βήματα: $ su teacher Κωδικός: ********** $ italc-launcher

Εναλλακτικά μπορούμε να δοκιμάσουμε να ξεκινήσουμε τον πελάτη από το βασικό μενού Εφαρμογές -> Σύστημα ->ITalc master interface , αλλά στην περίπτωση μου δεν μπορούσε να συνδεθεί με τους πελάτες.


Εγκατάσταση και εκκίνηση στον κάθε Πελάτη

[επεξεργασία]

Λήψη πακέτου italc-client

Μεταφέρουμε από το αποσπόμενο μέσο του το αρχείο key (που δημιουργήσαμε στον διακομιστή) στον φάκελο /etc/italc/keys/public/teacher και αλλάζουμε τα δικαιώματά του με:

  • $ cd /etc/italc/keys/public/teacher
  • $ sudo chmod 777 key

Για να εκκινείται ο italc-client σε κάθε πελάτη δημιουργούμε ένα init σενάριο ως εξής:

  • $ cd /etc/init.d
  • $ sudo nano italcclient //και προσθέτουμε μόνο την γραμμή:
   ica-launcher &
  • $ sudo chmod +x italcclient
  • $ update-rc.d italcclient defaults

Χρήση italc

[επεξεργασία]

Ξεκινώντας τον διακομιστή θα παρατηρήσουμε ότι δεν γίνεται αυτόματα αναγνώρηση των ΗΥ που άνοιξαν μετά την εκκίνηση του διακομιστή. Στην περίπτωση αυτή μια άκομψη αλλά λειτουργική λύση είναι η επανεκκίνηση του διακομιστή.


Η λειτουργικότητα που παρέχεται είναι :

  • Κλείδωμα πελατών
  • Λειτουργία επίδειξης (η εικόνα του διακομιστή μεταδίδεται σε όλους τους πελάτες ,σε fullscreen είτε σε παράθυρο)
  • Αποστολή μηνυμάτων.
  • Βοήθεια χρηστών. (συνδεόμαστε με έναν πελάτη και βοηθάμε τον μαθητή, δυστυχώς δεν λειτούργεί πάντα τέλεια στο στήσιμο που περιγράφω εδω, συγκεκριμένα μου έτυχε να γίνεται σύνδεση αλλά να μην μπορεί να μεκινηθεί το ποντίκι από τον διακομιστή παρά ελάχιστες φορές με σπασμωδική κίνηση)
  • Τερματισμός/Εκκίνηση/Επανεκκίνηση (δεν λειτούργησε).


Ρυθμίσεις iTalc

[επεξεργασία]
Ρυθμίσεις iTalc

Όπως βλέπουμε και στην εικόνα δεξιά μέσα από την καρτέλα ρυθμίσεων (προσβάσιμη από το μικρό κάθετο μενού ) μπορούμε να ρυθμίσουμε :

  • Το διάστημα μεταξύ ενημερώσεων . Όσο ποιό συχνές ενημερώσεις έχουμε τόσο μεγαλύτερο bandwidth του δικτύου μας καταλαμβάνει το iTalc.
  • Την ποιότητα της κατάστασηςεπίδειξης. Παρόμοια όσο ποιό υψηλή είναι τόσο μεγαλύτερο bandwidth του δικτύου μας καταλαμβάνει το iTalc.
  • Στοιχεία της διεπαφής όπως τις επεξηγήσεις που εμφανίζονται σε συνεφάκια όταν αφήσουμε τον δείκτη του ποντικιού πάνω από ένα στοιχείο της διεπαφής του iTalc, ή τις λέξεις που εμφανίζονται στα κουμπιά ενεργειών.
  • Τον ρόλο μας. Μπορούμε να επιλέξουμε έναν από τους : Δάσκαλος , Διαχειριστής , Βοηθός , Άλλος. Ανάλογα με τον ρόλο που θα επιλέξουμε το iTalc θα επιχειρήσει να χρησιμοποιήσει το ανάλογο ιδιωτικό κλειδί που πρέπει να έχουμε δημιουργήσει και να έχουμε μεταφέρο το αντίστοιχο δημόσιο τους πελάτες που θέλουμε πρόσβαση.

Συνδέσεις

[επεξεργασία]