Εγκατάσταση και διαμόρφωση του TACACS+ με δρομολογητή Cisco στο Debian 8 Jessie


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

Αυτή η αρχή ασφαλείας είναι γνωστή ως AAA (Triple-A) ή Έλεγχος ταυτότητας, Εξουσιοδότηση και Λογιστική. Υπάρχουν δύο πολύ εξέχοντα συστήματα που προσφέρουν λειτουργικότητα AAA στους διαχειριστές για την ασφαλή πρόσβαση στις συσκευές και στα δίκτυα που εξυπηρετούν αυτές οι συσκευές.

RADIUS (Υπηρεσία χρήστη μέσω κλήσης απομακρυσμένης πρόσβασης) και TACACS+ (Terminal Access Controller Access-Control System Plus).

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

Το πλεονέκτημα του διαχωρισμού TACACS των συναρτήσεων AAA είναι ότι μπορεί να ελεγχθεί η ικανότητα ενός χρήστη να εκτελεί ορισμένες εντολές. Αυτό είναι πολύ επωφελές για οργανισμούς που επιθυμούν να παρέχουν στο προσωπικό δικτύωσης ή σε άλλους διαχειριστές IT διαφορετικά προνόμια εντολών σε πολύ αναλυτικό επίπεδο.

Αυτό το άρθρο θα περιγράψει τη ρύθμιση ενός συστήματος Debian που θα λειτουργεί ως σύστημα TACACS+.

Ρύθμιση περιβάλλοντος

    Το
  1. Debian 8 εγκαταστάθηκε και ρυθμίστε τις παραμέτρους με συνδεσιμότητα δικτύου. Διαβάστε αυτό το άρθρο σχετικά με τον τρόπο εγκατάστασης του Debian 8
  2. Διακόπτης δικτύου Cisco 2940 (Οι περισσότερες άλλες συσκευές Cisco θα λειτουργούν επίσης, αλλά οι εντολές στο διακόπτη/δρομολογητή ενδέχεται να διαφέρουν).

Εγκατάσταση του λογισμικού TACACS+ στο Debian 8

Το πρώτο βήμα για τη ρύθμιση αυτού του νέου διακομιστή TACACS θα είναι η απόκτηση του λογισμικού από τα αποθετήρια. Αυτό επιτυγχάνεται εύκολα με τη χρήση της εντολής ‘apt’.

# apt-get install tacacs+

Η παραπάνω εντολή θα εγκαταστήσει και θα ξεκινήσει την υπηρεσία διακομιστή στη θύρα 49. Αυτό μπορεί να επιβεβαιωθεί με διάφορα βοηθητικά προγράμματα.

# lsof -i :49
# netstat -ltp | grep tac

Αυτές οι δύο εντολές θα πρέπει να επιστρέψουν μια γραμμή που υποδεικνύει ότι το TACACS ακούει στη θύρα 49 αυτού του συστήματος.

Σε αυτό το σημείο το TACACS ακούει για συνδέσεις σε αυτό το μηχάνημα. Τώρα είναι ώρα να διαμορφώσετε την υπηρεσία TACACS και τους χρήστες.

Διαμόρφωση υπηρεσίας και χρηστών TACACS

Είναι γενικά καλή ιδέα να συνδέσετε τις υπηρεσίες σε συγκεκριμένες διευθύνσεις IP, εάν ο διακομιστής έχει πολλές διευθύνσεις. Για να ολοκληρώσετε αυτήν την εργασία, οι προεπιλεγμένες επιλογές δαίμονα μπορούν να τροποποιηθούν για να καθορίσετε μια διεύθυνση IP.

# nano /etc/default/tacacs+

Αυτό το αρχείο καθορίζει όλες τις ρυθμίσεις δαίμονα που πρέπει να ξεκινήσει το σύστημα TACACS. Η προεπιλεγμένη εγκατάσταση θα καθορίσει μόνο το αρχείο διαμόρφωσης. Προσθέτοντας ένα όρισμα ‘-B’ σε αυτό το αρχείο, μπορεί να χρησιμοποιηθεί μια συγκεκριμένη διεύθυνση IP για ακρόαση του TACACS.

DAEMON_OPTS="-C /etc/tacacs+/tac_plus.conf " - Original Line
DAEMON_OPTS="-C /etc/tacacs+/tac_plus.conf -B X.X.X.X " - New line, where X.X.X.X is the IP address to listen on

Ειδική σημείωση στο Debian: Για κάποιο λόγο, η προσπάθεια επανεκκίνησης της υπηρεσίας TACACS+ για την ανάγνωση των νέων επιλογών δαίμονα είναι ανεπιτυχής (μέσω επανεκκίνηση υπηρεσίας tacacs_plus).

Το πρόβλημα εδώ φαίνεται να είναι όταν το TACACS ξεκινά μέσω του σεναρίου init, το PID έχει οριστεί στατικά σε \PIDFILE=/ var/run/tac_plus.pid” ωστόσο, όταν το \-B X.X.X.X καθορίζεται ως επιλογή δαίμονας, το όνομα του αρχείου pid αλλάζει σε \/ var/run/tac_plus.pid.X.X.X.X”.

Δεν είμαι απολύτως σίγουρος αν πρόκειται για σφάλμα ή όχι, αλλά για να αντιμετωπίσετε προσωρινά την κατάσταση, μπορείτε να ορίσετε μη αυτόματα το PIDFILE στο σενάριο init αλλάζοντας τη γραμμή σε \PIDFILE=/var/run/tac_plus.pid.X.X.X.X όπου X.X.X.X είναι η διεύθυνση IP που πρέπει να ακούσει το TACACS και στη συνέχεια να ξεκινήσει την υπηρεσία με:

# service tacacs_plus start

Κατά την επανεκκίνηση της υπηρεσίας, η εντολή lsof μπορεί να χρησιμοποιηθεί ξανά για να επιβεβαιώσει ότι η υπηρεσία TACACS ακούει στη σωστή διεύθυνση IP.

# lsof -i :49

Όπως φαίνεται παραπάνω, το TACACS ακούει μια διεύθυνση IP σε μια συγκεκριμένη διεύθυνση IP όπως ορίζεται στο παραπάνω αρχείο προεπιλογών TACACS. Σε αυτό το σημείο πρέπει να δημιουργηθούν χρήστες και συγκεκριμένα σύνολα εντολών.

Η διαχείριση αυτών των πληροφοριών γίνεται από άλλο αρχείο: «/etc/tacacs+/tac_plus.conf». Ανοίξτε αυτό το αρχείο με ένα πρόγραμμα επεξεργασίας κειμένου για να κάνετε τις κατάλληλες τροποποιήσεις.

# nano /etc/tacacs+/tac_plus.conf

Σε αυτό το αρχείο πρέπει να βρίσκονται όλες οι προδιαγραφές TACACS (δικαιώματα χρήστη, λίστες ελέγχου πρόσβασης, κλειδιά κεντρικού υπολογιστή, κ.λπ.). Το πρώτο πράγμα που πρέπει να δημιουργηθεί είναι ένα κλειδί για τις συσκευές δικτύου.

Υπάρχει μεγάλη ευελιξία σε αυτό το βήμα. Ένα μόνο κλειδί μπορεί να διαμορφωθεί για όλες τις συσκευές δικτύου ή πολλά κλειδιά μπορούν να διαμορφωθούν ανά συσκευή. Η επιλογή εξαρτάται από τον χρήστη, αλλά αυτός ο οδηγός θα χρησιμοποιεί ένα μόνο κλειδί για λόγους απλότητας.

key = "super_secret_TACACS+_key"

Αφού διαμορφωθεί ένα κλειδί, θα πρέπει να δημιουργηθούν ομάδες που καθορίζουν τα δικαιώματα που θα εκχωρηθούν αργότερα στους χρήστες. Η δημιουργία ομάδων διευκολύνει πολύ την εκχώρηση αδειών. Παρακάτω είναι ένα παράδειγμα εκχώρησης πλήρους δικαιωμάτων διαχειριστή.

group = admins {
        default service = permit
        service = exec {
                priv-lvl = 15
        }
}

  1. Το όνομα της ομάδας καθορίζεται από τη γραμμή \group=admins” με τους διαχειριστές να είναι το όνομα της ομάδας.
  2. Η γραμμή \προεπιλεγμένη υπηρεσία=άδεια” υποδεικνύει ότι εάν μια εντολή δεν απορριφθεί ρητά, τότε επιτρέψτε την σιωπηρά.
  3. Η \service=exec { priv-lvl=15 }” επιτρέπει το επίπεδο προνομίων 15 σε λειτουργία exec σε μια συσκευή Cisco (επίπεδο προνομίων 15 είναι το υψηλότερο στον εξοπλισμό της Cisco).

Τώρα πρέπει να εκχωρηθεί ένας χρήστης στην ομάδα διαχειριστή.

user = rob {
       member = admins
       login = des mjth124WPZapY
}

  1. Η στροφή \user=rob επιτρέπει σε ένα όνομα χρήστη του rob να έχει πρόσβαση σε κάποιον πόρο.
  2. Το \member=admins λέει στο TACACS+ να αναφερθεί στην προηγούμενη ομάδα που ονομάζεται διαχειριστές για μια λίστα με το τι είναι εξουσιοδοτημένος να κάνει αυτός ο χρήστης.
  3. Η τελική γραμμή, \login=des mjth124WPZapY είναι ένας κρυπτογραφημένος κωδικός πρόσβασης για έλεγχο ταυτότητας αυτού του χρήστη (μη διστάσετε να χρησιμοποιήσετε ένα κράκερ για να βρείτε αυτό το εξαιρετικά \σύνθετο παράδειγμα κωδικού πρόσβασης) !

Σημαντικό: Είναι γενικά μια βέλτιστη πρακτική να τοποθετείτε κρυπτογραφημένους κωδικούς πρόσβασης σε αυτό το αρχείο και όχι σε απλό κείμενο, καθώς προσθέτει μια μικρή ασφάλεια σε περίπτωση που κάποιος διαβάστε αυτό το αρχείο και δεν πρέπει απαραίτητα να έχετε πρόσβαση.

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

# chmod o-r /etc/tacacs+/tac_plus.conf
# service tacacs_plus reload

Σε αυτό το σημείο η πλευρά του διακομιστή είναι έτοιμη για συνδέσεις από συσκευές δικτύου. Ας πάμε τώρα στον διακόπτη Cisco και ας τον διαμορφώσουμε ώστε να επικοινωνεί με αυτόν τον διακομιστή Debian TACACS+.