In veel gevallen moeten we meerdere informatie tussen apparaten overbrengen en de meest gebruikelijke manier om dit te doen, die al meer dan 20 jaar aan de gang is, is het gebruik van het FTP-protocol (File Transfer Protocol) en FTP waarmee overdracht tussen aangesloten computers mogelijk is. TCP neemt de client / server-basis.
Bij FTP gebruiken we poort 20 en 21. Nu hebben we een nieuw voorgedefinieerd protocol genaamd SFTP waarin we vinden dat alle servers die SSH ondersteunen ingeschakeld zijn.
SFTP (SSH File Transfer Protocol) verschilt van het FTP-type, hoewel het alle FTP-clients ondersteunt die we tegenwoordig tegenkomen. Hoewel SFTP is geïmplementeerd om een beveiligingslaag toe te voegen, vormt het een kwetsbaarheid op toegangsniveau omdat het, als standaard, volledige toegang verleent aan systeemgebruikers om bestanden over te dragen en de Shell te gebruiken.
Vandaag leert Solvetic hoe CentOS 7 moet worden geconfigureerd om te voorkomen dat een bepaalde gebruiker SSH-toegang heeft met de vrijheid om het systeem te manipuleren via het SFTP0-protocol.
1. Gebruikers aanmaken
Eerst maken we de gebruiker aan waarvan de toegang wordt beperkt door SSH, in dit geval noemen we het toegang, we voeren het volgende uit:
sudo addgebruikerstoegangVervolgens wijzen we een wachtwoord toe aan de nieuwe gebruiker door het volgende uit te voeren:
sudo passwd-toegang
2. De map maken voor bestandsoverdracht
Nadat onze gebruiker is gemaakt, is de volgende stap het maken van de map waarin SFTP zal werken, waardoor toegang wordt voorkomen en dit moet met bepaalde parameters worden geconfigureerd.
We zullen een map maken met de naam / var / sftp / uploads waarin het deel / var / sftp, de rootgebruiker de eigenaar zal zijn en geen enkele andere gebruiker actieve machtigingen heeft en in de submap / var / sftp / uploads zal de eigenaar zijn de nieuwe gebruikerstoegang. We maken de directory met behulp van de volgende regel:
sudo mkdir -p / var / sftp / uploadsVervolgens stellen we de rootgebruiker in als de eigenaar in de aangegeven map:
sudo chown root: root / var / sftpWe verlenen schrijfrechten aan de rootgebruiker en lezen voor aan de andere gebruikers in het aangegeven pad:
sudo chmod 755 / var / sftp
Nu wijzigen we de eigenaar van uploads zodat het de gebruikerstoegang is, we voeren het volgende uit:
sudo chown-toegang: access / var / sftp / uploads
3. Toegang tot een directory beperken
In deze stap zullen we zien hoe we de toegang per terminal kunnen beperken tot de gebruikerstoegang, maar of het mogelijk is om bestanden over te dragen. Hiervoor moeten we de SSH-server bewerken met de voorkeurseditor, vim of nano, in het volgende pad:
sudo nano / etc / ssh / sshd_configWe zullen het volgende zien:
In het laatste deel van het bestand voegen we het volgende toe:
Match Gebruikerstoegang ForceCommand internal-sftp WachtwoordAuthenticatie ja ChrootDirectory / var / sftp PermitTunnel nee AllowAgentForwarding nee AllowTcpForwarding nee X11Forwarding nee
We slaan de wijzigingen op met de toetsencombinatie Ctrl + O en verlaten de editor met de toetsen Ctrl + X. De gebruikte syntaxis houdt het volgende in:
Gebruiker matchenVertel de SSH-server om de wijzigingen toe te passen op de daar aangegeven gebruiker.
ForceCommand internal-sftpDwingt de SSH-server om SFTP uit te voeren om toegang tot de Shell te voorkomen.
WachtwoordAuthenticatie jaWachtwoordverificatie inschakelen
ChrootDirectory / var / sftp /Het verwijst naar het feit dat de aangegeven gebruiker geen toegang heeft buiten het / var / sftp-pad.
AllowAgentForwarding nee, AllowTcpForwarding nee. en X11Forwarding nietDeze opties schakelen port forwarding, tunneling en X11 protocol forwarding uit voor de opgegeven gebruiker.
Nadat we het bestand hebben opgeslagen, voeren we de volgende opdracht uit om de wijzigingen in SSH toe te passen:
sudo systemctl herstart sshd
4. De SSH-verbinding verifiëren
Stap 1
Als dit is geconfigureerd, is het tijd om de toegang via SSH te valideren en te verifiëren dat alleen bestandsoverdrachten mogelijk zijn. Hiervoor gaan we via SSH naar de verbinding die in dit geval zal zijn.
ssh [email protected]Nadat we de toegangsgegevens hebben ingevoerd, zien we het volgende bericht:
Stap 2
Hiermee hebben we geverifieerd dat de verbinding via SSH wordt afgesloten. Nu zullen we de verbinding proberen met behulp van het sftp-protocol:
sftp [email protected]Door het wachtwoord in te voeren, zullen we zien dat de verbinding is gelukt en kunnen we bestanden overzetten:
Stap 3
Daar kunnen we de opdracht ls gebruiken om de beschikbare mappen weer te geven en we zullen de uploadmap zien die we hebben gemaakt:
Stap 4
Daar kunnen we informatie verplaatsen, maar als we proberen terug te keren naar een map hierboven met behulp van cd … krijgen we geen foutmelding, maar we zien dat er geen map kan worden vermeld:
Zo simpel is het dat we de toegang kunnen beperken dankzij sftp.