PAM - Pluggable Authentication Modules

Support HackTricks

Basic Information

PAM (Pluggable Authentication Modules) λειτουργεί ως μηχανισμός ασφαλείας που επαληθεύει την ταυτότητα των χρηστών που προσπαθούν να αποκτήσουν πρόσβαση σε υπηρεσίες υπολογιστή, ελέγχοντας την πρόσβασή τους με βάση διάφορα κριτήρια. Είναι παρόμοιο με έναν ψηφιακό φύλακα, διασφαλίζοντας ότι μόνο οι εξουσιοδοτημένοι χρήστες μπορούν να αλληλεπιδρούν με συγκεκριμένες υπηρεσίες, ενώ ενδεχομένως περιορίζουν τη χρήση τους για να αποτρέψουν υπερφορτώσεις του συστήματος.

Configuration Files

  • Τα συστήματα Solaris και UNIX συνήθως χρησιμοποιούν ένα κεντρικό αρχείο ρύθμισης που βρίσκεται στο /etc/pam.conf.

  • Τα συστήματα Linux προτιμούν μια προσέγγιση καταλόγου, αποθηκεύοντας ρυθμίσεις συγκεκριμένων υπηρεσιών εντός του /etc/pam.d. Για παράδειγμα, το αρχείο ρύθμισης για την υπηρεσία σύνδεσης βρίσκεται στο /etc/pam.d/login.

Ένα παράδειγμα ρύθμισης PAM για την υπηρεσία σύνδεσης μπορεί να μοιάζει με αυτό:

auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_nologin.so
auth sufficient /lib/security/pam_ldap.so
auth required /lib/security/pam_unix_auth.so try_first_pass
account sufficient /lib/security/pam_ldap.so
account required /lib/security/pam_unix_acct.so
password required /lib/security/pam_cracklib.so
password required /lib/security/pam_ldap.so
password required /lib/security/pam_pwdb.so use_first_pass
session required /lib/security/pam_unix_session.so

Διαχείριση Πεδίων PAM

Αυτά τα πεδία, ή ομάδες διαχείρισης, περιλαμβάνουν auth, account, password, και session, καθένα υπεύθυνο για διαφορετικές πτυχές της διαδικασίας αυθεντικοποίησης και διαχείρισης συνεδριών:

  • Auth: Επικυρώνει την ταυτότητα του χρήστη, συχνά ζητώντας έναν κωδικό πρόσβασης.

  • Account: Διαχειρίζεται την επαλήθευση λογαριασμού, ελέγχοντας συνθήκες όπως η συμμετοχή σε ομάδες ή περιορισμοί ώρας.

  • Password: Διαχειρίζεται τις ενημερώσεις κωδικών πρόσβασης, συμπεριλαμβανομένων ελέγχων πολυπλοκότητας ή πρόληψης επιθέσεων λεξικού.

  • Session: Διαχειρίζεται ενέργειες κατά την έναρξη ή το τέλος μιας συνεδρίας υπηρεσίας, όπως η τοποθέτηση καταλόγων ή η ρύθμιση περιορισμών πόρων.

Έλεγχοι Μονάδας PAM

Οι έλεγχοι καθορίζουν την αντίδραση της μονάδας σε επιτυχία ή αποτυχία, επηρεάζοντας τη συνολική διαδικασία αυθεντικοποίησης. Αυτοί περιλαμβάνουν:

  • Required: Η αποτυχία μιας απαιτούμενης μονάδας οδηγεί σε τελική αποτυχία, αλλά μόνο μετά τον έλεγχο όλων των επόμενων μονάδων.

  • Requisite: Άμεσος τερματισμός της διαδικασίας σε περίπτωση αποτυχίας.

  • Sufficient: Η επιτυχία παρακάμπτει τους υπόλοιπους ελέγχους της ίδιας ομάδας εκτός αν αποτύχει μια επόμενη μονάδα.

  • Optional: Προκαλεί αποτυχία μόνο αν είναι η μοναδική μονάδα στη στοίβα.

Παράδειγμα Σεναρίου

Σε μια ρύθμιση με πολλαπλές μονάδες auth, η διαδικασία ακολουθεί αυστηρή σειρά. Αν η μονάδα pam_securetty βρει τον τερματικό σύνδεσης μη εξουσιοδοτημένο, οι συνδέσεις root αποκλείονται, ωστόσο όλες οι μονάδες εξακολουθούν να επεξεργάζονται λόγω της κατάστασης "required". Η pam_env ρυθμίζει τις μεταβλητές περιβάλλοντος, ενδεχομένως βοηθώντας στην εμπειρία του χρήστη. Οι μονάδες pam_ldap και pam_unix συνεργάζονται για να αυθεντικοποιήσουν τον χρήστη, με την pam_unix να προσπαθεί να χρησιμοποιήσει έναν προηγουμένως παρεχόμενο κωδικό πρόσβασης, ενισχύοντας την αποδοτικότητα και την ευελιξία στις μεθόδους αυθεντικοποίησης.

Αναφορές

Support HackTricks

Last updated