Im letzten Artikel dieser Serie haben wir überprüft So richten Sie eine Samba-Freigabe über ein Netzwerk ein die aus mehreren Arten von Betriebssystemen bestehen können. Wenn Sie nun die Dateifreigabe für eine Gruppe von Unix-ähnlichen Clients einrichten müssen, denken Sie automatisch an die Netzwerkdateisystem, oder NFS für kurz.
In diesem Artikel werden wir Sie durch den Verwendungsprozess führen Kerberos-basiert Authentifizierung für NFS Anteile. Es wird davon ausgegangen, dass Sie bereits einen NFS-Server und einen Client eingerichtet haben. Wenn nicht, lesen Sie bitte NFS-Server installieren und konfigurieren – Hier werden die erforderlichen Pakete aufgelistet, die installiert werden müssen, und erklärt, wie Sie die Erstkonfigurationen auf dem Server durchführen, bevor Sie fortfahren.
Außerdem möchten Sie beides konfigurieren SELinux und Firewalld um die Dateifreigabe über NFS zu ermöglichen.
Das folgende Beispiel geht davon aus, dass Ihr NFS Aktie befindet sich in /nfs In box2:
# semanage fcontext -a -t public_content_rw_t "/nfs(/.*)?" # restorecon -R /nfs. # setsebool -P nfs_export_all_rw an. # setsebool -P nfs_export_all_ro on.
(bei dem die -P Flag zeigt Persistenz über Neustarts hinweg an).
Vergessen Sie zum Schluss nicht:
1. Erstellen Sie eine Gruppe namens nfs und füge die hinzu nfsniemand Benutzer darauf, dann ändern Sie die Berechtigungen des /nfs Verzeichnis zu 0770 und sein Gruppeneigentümer zu nfs. Daher, nfsniemand (die den Client-Anforderungen zugeordnet ist) hat Schreibberechtigungen für die Freigabe) und Sie müssen es nicht verwenden kein_root_squash in dem /etc/exports Datei.
# groupadd nfs. # usermod -a -G nfs nfsnobody. # chmod 0770 /nfs. # chgrp nfs /nfs.
2. Ändern Sie die Exportdatei (/etc/exports) wie folgt, um nur den Zugriff von zu ermöglichen box1 mit Kerberos Sicherheit (sec=kb5).
Notiz: dass der Wert von anongid wurde auf die eingestellt GID des nfs Gruppe, die wir zuvor erstellt haben:
Exporte – NFS-Freigabe hinzufügen
/nfs box1(rw, sec=krb5,anongid=1004)
3. Re-Export (-R) alle (-ein) die NFS-Freigaben. Hinzufügen von Ausführlichkeit zur Ausgabe (-v) ist eine gute Idee, da es hilfreiche Informationen zur Fehlerbehebung des Servers liefert, wenn etwas schief geht:
# exportfs -arv.
4. Starten Sie den NFS-Server und die zugehörigen Dienste neu und aktivieren Sie ihn. Beachten Sie, dass Sie nicht aktivieren müssen nfs-Sperre und nfs-idmapd weil sie beim Booten automatisch von den anderen Diensten gestartet werden:
# systemctl restart rpcbind nfs-server nfs-lock nfs-idmap. # systemctl aktivieren rpcbind nfs-server.
In diesem Handbuch verwenden wir die folgende Testumgebung:
Notiz: das Kerberos Der Dienst ist für das Authentifizierungsschema von entscheidender Bedeutung.
Wie Sie sehen können, ist die NFS Server und die KDC werden der Einfachheit halber auf demselben Computer gehostet, obwohl Sie sie auf separaten Computern einrichten können, wenn mehr verfügbar sind. Beide Maschinen sind Mitglieder der meinedomain.com
Domain.
Zu guter Letzt, Kerberos erfordert mindestens ein grundlegendes Schema der Namensauflösung und die Netzwerkzeitprotokoll Dienst sowohl im Client als auch im Server vorhanden sein muss, da die Sicherheit der Kerberos-Authentifizierung teilweise auf den Zeitstempeln von Tickets basiert.
Um die Namensauflösung einzurichten, verwenden wir die /etc/hosts Datei auf Client und Server:
host-Datei – DNS für Domain hinzufügen
192.168.0.18 box1.mydomain.com box1. 192.168.0.20 box2.mydomain.com box2.
In RHEL 7, chrony ist die Standardsoftware, die verwendet wird für NTP Synchronisation:
# yum installiere chrony. # systemctl starte chronyd. # systemctl chronyd aktivieren.
Sichergehen chrony tatsächlich die Zeit Ihres Systems mit Zeitservern synchronisiert, möchten Sie vielleicht den folgenden Befehl zwei- oder dreimal ausgeben und sicherstellen, dass der Offset näher an Null kommt:
# Chronisches Tracking.
Um das einzurichten KDC, installieren Sie die folgenden Pakete auf beiden Server und Klient (lassen Sie das Serverpaket im Client weg):
# yum update && yum install krb5-server krb5-workstation pam_krb5.
Bearbeiten Sie nach der Installation die Konfigurationsdateien (/etc/krb5.conf und /var/kerberos/krb5kdc/kadm5.acl) und ersetzen Sie alle Instanzen von beispiel.com (Klein- und Großbuchstaben) mit meinedomain.com
wie folgt.
Erstellen Sie nun die Kerberos Datenbank (bitte beachten Sie, dass dies eine Weile dauern kann, da dies ein gewisses Maß an Entropie in Ihrem System erfordert. Um die Sache zu beschleunigen, habe ich ein anderes Terminal geöffnet und ausgeführt ping -f localhost für 30-45 Sekunden):
# kdb5_util create -s.
Als nächstes aktivieren Sie Kerberos durch das Firewall und starten / aktivieren Sie die zugehörigen Dienste.
Wichtig: nfs-sicher muss auch auf dem Client gestartet und aktiviert werden:
# Firewall-cmd --permanent --add-service=kerberos. # systemctl start krb5kdc kadmin nfs-secure # systemctl enable krb5kdc kadmin nfs-secure
Als nächstes verwenden Sie die kadmin.local Tool, erstellen Sie einen Administrator-Prinzipal für root:
# kadmin.local. # addprinc-root/admin.
Und füge die hinzu Kerberos Server zur Datenbank:
# addprinc -randkey host/box2.mydomain.com.
Das gleiche mit dem NFS Service für beide Kunden (box1) und Server (box2). Bitte beachten Sie, dass ich im Screenshot unten vergessen habe, es zu tun box1 vor dem Aufhören:
# addprinc -randkey nfs/box2.mydomain.com. # addprinc -randkey nfs/box1.mydomain.com.
Und Ausfahrt durch Eingabe von Verlassen und drücken Sie die Eingabetaste:
Rufen Sie dann das Kerberos-Ticket-Granting-Ticket für root/admin ab und cachen Sie es:
# kinit-root/admin. # kliste.
Der letzte Schritt vor der eigentlichen Verwendung Kerberos speichert in a keytab Datei (auf dem Server) die Principals, die berechtigt sind, die Kerberos-Authentifizierung zu verwenden:
# kadmin.local. # ktadd host/box2.mydomain.com. # ktadd nfs/box2.mydomain.com. # ktadd nfs/box1.mydomain.com.
Mounten Sie schließlich die Freigabe und führen Sie einen Schreibtest durch:
# mount -t nfs4 -o sec=krb5 box2:/nfs /mnt. # echo "Hallo von Tecmint.com" > /mnt/greeting.txt.
Lass uns jetzt abmontieren die Freigabe, benennen Sie sie um keytab Datei im Client (um zu simulieren, dass sie nicht vorhanden ist) und versuchen Sie erneut, die Freigabe zu mounten:
# umount /mnt. # mv /etc/krb5.keytab /etc/krb5.keytab.orig.
Jetzt können Sie die NFS Teilen mit Kerberos-basiert Authentifizierung.
In diesem Artikel haben wir die Einrichtung erklärt NFS mit Kerberos Authentifizierung. Da es viel mehr zu diesem Thema gibt, als wir in einem einzigen Leitfaden abdecken können, können Sie gerne online nachsehen Kerberos-Dokumentation Und da Kerberos, gelinde gesagt, etwas knifflig ist, zögern Sie nicht, uns über das untenstehende Formular eine Nachricht zu senden, wenn Sie auf ein Problem stoßen oder Hilfe beim Testen oder bei der Implementierung benötigen.