In vielen Fällen müssen wir mehrere Informationen zwischen Geräten übertragen, und die gängigste Methode, die seit mehr als 20 Jahren verwendet wird, ist die Verwendung des FTP-Protokolls (File Transfer Protocol) und FTP, das die Übertragung zwischen verbundenen Computern ermöglicht TCP auf Client/Server-Basis.
Bei FTP verwenden wir Port 20 und 21. Jetzt haben wir ein neues vordefiniertes Protokoll namens SFTP, in dem wir auf allen Servern aktiviert finden, die SSH unterstützen.
SFTP (SSH File Transfer Protocol) unterscheidet sich vom FTP-Typ, unterstützt jedoch alle FTP-Clients, die wir heute finden. Obwohl SFTP implementiert wurde, um eine Sicherheitsebene hinzuzufügen, stellt es eine Schwachstelle auf Zugriffsebene dar, da es als Standard Systembenutzern vollen Zugriff gewährt, um Dateien zu übertragen und die Shell zu verwenden.
Heute lehrt Solvetic, wie man CentOS 7 konfiguriert, um zu verhindern, dass ein bestimmter Benutzer SSH-Zugriff hat, mit der Freiheit, das System über das SFTP0-Protokoll zu manipulieren.
1. Benutzererstellung
Zuerst erstellen wir den Benutzer, dessen Zugriff durch SSH eingeschränkt wird. In diesem Fall nennen wir es Zugriff und führen Folgendes aus:
sudo adduser-ZugriffAls nächstes weisen wir dem neuen Benutzer ein Passwort zu, indem wir Folgendes ausführen:
sudo passwd zugriff
2. Erstellen des Verzeichnisses für die Dateiübertragung
Sobald unser Benutzer erstellt wurde, besteht der nächste Schritt darin, das Verzeichnis zu erstellen, in dem SFTP agiert, um den Zugriff zu verhindern, und dies muss mit bestimmten Parametern konfiguriert werden.
Wir werden ein Verzeichnis namens /var/sftp/uploads erstellen, in dem der /var/sftp-Teil der Root-Benutzer sein Besitzer ist und kein anderer Benutzer aktive Berechtigungen hat und im /var/sftp/uploads-Unterverzeichnis wird der Besitzer sein der neue Benutzerzugang. Wir erstellen das Verzeichnis mit der folgenden Zeile:
sudo mkdir -p/var/sftp/uploadsAls nächstes legen wir den Root-Benutzer als Eigentümer im angegebenen Verzeichnis fest:
sudo chown root: root / var / sftpWir erteilen dem Root-Benutzer Schreibrechte und lesen den anderen Benutzern im angegebenen Pfad:
sudo chmod 755 / var / sftp
Jetzt ändern wir den Besitzer von Uploads so, dass es der Benutzerzugriff ist, wir führen Folgendes aus:
sudo chown zugriff: access / var / sftp / uploads
3. Einschränken des Zugriffs auf ein Verzeichnis
In diesem Schritt werden wir sehen, wie Sie den Zugriff per Terminal auf den Benutzerzugriff beschränken, aber ob Dateien übertragen werden können. Dazu müssen wir den SSH-Server mit dem bevorzugten Editor vim oder nano im folgenden Pfad bearbeiten:
sudo nano / etc / ssh / sshd_configWir werden folgendes sehen:
Im letzten Teil der Datei fügen wir Folgendes hinzu:
Übereinstimmung Benutzerzugriff ForceCommand internal-sftp PasswordAuthentication ja ChrootDirectory / var / sftp PermitTunnel nein AllowAgentForwarding nein AllowTcpForwarding nein X11Forwarding nein
Wir speichern die Änderungen mit der Tastenkombination Strg + O und verlassen den Editor mit den Tasten Strg + X. Die verwendete Syntax impliziert Folgendes:
Match-BenutzerWeisen Sie den SSH-Server an, die Änderungen auf den dort angegebenen Benutzer anzuwenden.
ForceCommand internal-sftpZwingt den SSH-Server, SFTP auszuführen, um den Zugriff auf die Shell zu verhindern.
PasswortAuthentifizierung jaPasswort-Authentifizierung aktivieren
ChrootVerzeichnis / var / sftp /Es bezieht sich darauf, dass der angegebene Benutzer keinen Zugriff über den Pfad /var/sftp hinaus hat.
AllowAgentForwarding nein, AllowTcpForwarding nein. und X11Forwarding nichtDiese Optionen deaktivieren Portweiterleitung, Tunneling und X11-Protokollweiterleitung für den angegebenen Benutzer.
Sobald wir die Datei gespeichert haben, führen wir den folgenden Befehl aus, um die Änderungen in SSH zu übernehmen:
sudo systemctl Neustart sshd
4. Überprüfen der SSH-Verbindung
Schritt 1
Wenn dies konfiguriert ist, ist es an der Zeit, den Zugriff über SSH zu validieren und sicherzustellen, dass nur Dateiübertragungen möglich sind. Dazu gehen wir auf die Verbindung über SSH, was in diesem Fall der Fall ist.
[email protected]Nach Eingabe der Zugangsdaten sehen wir folgende Meldung:
Schritt 2
Damit haben wir verifiziert, dass die Verbindung über SSH geschlossen wird. Jetzt versuchen wir die Verbindung über das sftp-Protokoll:
[email protected]Durch Eingabe des Passworts sehen wir, dass die Verbindung erfolgreich ist und wir können Dateien übertragen:
Schritt 3
Dort können wir mit dem ls-Befehl die verfügbaren Verzeichnisse auflisten und sehen den von uns erstellten Uploads-Ordner:
Schritt 4
Dort können wir Informationen verschieben, aber wenn wir versuchen, mit cd zu einem der obigen Verzeichnisse zurückzukehren … erhalten wir keine Fehlermeldung, aber wir sehen, dass kein Verzeichnis aufgelistet werden kann:
So einfach können wir den Zugriff dank sftp einschränken.