Για κάθε χρήστη στο σύστημά μας υπάρχουν τρία password Hashes, τα οποία παράγονται από τον ίδιο κωδικό: Το UserPassword, το οποίο χρησιμοποιεί το PAM (Password Authentication Module) του Unix και το οποίο είναι HASHED με τον αλγόριθμο SSHA, και τα Nt και Lm Passwords που χρησιμοποιεί το SAMBA για να ταυτοποιήσει τους χρήστες που συνδέονται από Windows workstation. Η επιλογή στο smb.conf: password sync = yes, έχει ως στόχο να αναγκάζει τον εξυπηρετητή SAMBA να τροποποιεί τα Nt και Lm HASHES, κάθε φορά που ο χρήστης αλλάζει το SSHA Hash του. Γενικότερα για να παράγουμε τα 3 αυτά HASH από κονσόλα, μπορούμε να χρησιμοποιήσουμε τα ακόλουθα script:
#!/usr/bin/perl
use Crypt::SmbHash;
$password="12345678";
ntlmgen($password, $lm, $nt);
print "sambaLMPassword: $lm\n";
print "sambaNTPassword: $nt\n";
Και
#!/usr/bin/perl
use Digest::SSHA;
use MIME::Base64;
if ($ARGV[0] eq "") {
printf STDERR "usage: ssha.pl PASSWORD\n";
exit 1;
}
$pass = Digest::SSHA->new;
$pass->add($ARGV[0]);
$pass->add('%s');
print '{SSHA}' . encode_base64($pass->digest . 'salt' ,'') . "\n";
Σε αυτό το σημείο θα τροποποιήσουμε τα configuration αρχεία του PAM, ώστε οι χρήστες που δημιουργούμε μέσω SAMBA+LDAP, να μπορούνε να συνδέονται με SSH στο PDC LDAP. Καταρχήν ανοιγουμε το configuration file του SSH, /etc/sshd/sshd.conf και τοποθετούμε το εξής:
Use pam=yes
Στη συνέχεια τροποποιούμε το αρχείο /etc/nsswitch.conf ως εξής:
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat ldap
group: compat ldap
shadow: compat ldap
hosts: files dns ldap wins
networks: files dns ldap wins
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
Μετά εγκαθιστούμε τα πακέτα libnss-ldap και libpam-ldap:
#apt-get install libnss-ldap libpam-ldap
τροποποιούμε αρχικά τα configuration files του libnss-ldap ως εξης:
Στο αρχείο /etc/libnss-ldap.secret Γράφουμε το password του cn=admin,dc=myhost,dc=mydomain,dc=gr το εξυπηρετητή LDAP:
*********
Το αρχείο αυτό πρέπει να έχει δικαιώματα 600. Μετά τροποποιώ το αρχείο των ρυθμίσεων του libnss-ldap, /etc/libnss-ldap.conf ως εξής:
# The distinguished name of the search base.
base dc=myhost,dc=mydomain,dc=gr
# The LDAP version to use (defaults to 3
# if supported by client library)
ldap_version 3
# The distinguished name to bind to the server with
# if the effective user ID is root. Password is
# stored in /etc/libnss-ldap.secret (mode 600)
# Use 'echo -n "mypassword" > /etc/libnss-ldap.secret' instead
# of an editor to create the file.
rootbinddn cn=admin,dc=myhost,dc=mydomain,dc=gr
# The port.
# Optional: default is 389.
port 389
Τροποποιούμε τα configuration files του libpam-ldap ως εξης:
Στο αρχείο /etc/pam-ldap.secret Γράφουμε το password του cn=admin,dc=myhost,dc=mydomain,dc=gr το εξυπηρετητή LDAP:
*********
Το αρχείο αυτό πρέπει να έχει δικαιώματα 600. Μετά τροποποιώ το αρχείο των ρυθμίσεων του libpam-ldap, /etc/pam-ldap.conf ως εξής:
# The distinguished name of the search base.
base dc=myhost,dc=mydomain,dc=gr
# The LDAP version to use (defaults to 3
# if supported by client library)
ldap_version 3
# # The distinguished name to bind to the server with
# if the effective user ID is root. Password is
# stored in /etc/pam_ldap.secret (mode 600)
rootbinddn cn=admin,dc=myhost,dc=mydomain,dc=gr
# The port.
# Optional: default is 389.
port 389
Πλέον έχω ρυθμίσει τις βιβλιοθήκες για την ταυτοποίηση του PAM μέσω LDAP. Τώρα μένει να πω στο PAM να χρησιμοποιήσει αυτές τις βιβλιοθήκες. O NSCD είναι ένας δαίμονας ο οποίος αποθηκεύει προσωρινά στην cache του τις αναζητητήσεις του NSS (Name Service Lookups), περιορίζοντας τις αναζητήσεις στο LDAP και βελτιώνοντας τις επιδόσεις του συστήματος. Εγκαθίσταται ως εξής:
#apt-get install nscd
#/etc/init.d/nscd start
και δεν χρειάζεται καμία ρύθμιση, άλλα πρέπει κάθε φορά που αλλάζω κωδικούς, ομάδες ή υπολογιστές στο LDAP, να ανανεώνω την cache:
#nscd --invalidate=passwd
#nscd --invalidate=groups
#nscd --invalidate=hosts
και να μεγαλώσω των αριθμό των ανοιχτών file descriptors του Linux:
#echo 16384 > /proc/sys/fs/file-max
Τα configuration files του PAM βρίσκονται στο φάκελο /etc/pam.d. Από αυτά τα αρχεία ρυθμίζω ώστε να περιέχουν τα εξής:
- /etc/pam.d/common-password
password sufficient pam_ldap.so type=network use_authtok first_pass
password sufficient pam_unix.so type=machine nullok obscure min=4 max=8 md5
password required pam_deny.so
- /etc/pam.d/common-auth
auth sufficient pam_ldap.so
auth sufficient pam_unix.so nullok_secure use_first_pass
auth required pam_deny.so
- /etc/pam.d/common-session
session required pam_unix.so
session optional pam_foreground.so
και
- /etc/pam.d/common-account
account sufficient pam_ldap.so
account required pam_deny.so
Πλέον μπορούμε να συνδεθούμε με τον ίδιο χρήστη και στο PDC του LDAP μέσω SSH. H ταυτοποίηση του χρήστη γίνεται μέσω του libpam ενώ η αναζήτηση του χρήστη και της ομάδας γίνεται μέσω του libnss. Σε περίπτωση που είναι ενεργοποιημένο το winbind, το NSS παρακάμτεται από αυτό και το SAMBA αναζητά το maping μέσω winbind.
| < Προηγούμενο | Επόμενο > |
|---|















nice
nice
Borse Designer,Gucci Sito Ufficiale http://www.guccioutletsito2012....
Borse Designer,Gucci Sito Ufficiale conosciuto per essere il miglio...