PowerScale OneFS: SFTP configureren en chroot instellen
Samenvatting: In dit document wordt beschreven hoe u toegang tot het PowerScale cluster via SFTP (Secure File Transfer Protocol) kunt toestaan.
Instructies
In dit document wordt beschreven hoe u toegang tot het PowerScale cluster via SFTP kunt toestaan. Er zijn enkele beperkingen en overwegingen waarmee u rekening moet houden bij het starten van dit proces.
- Gebruikers/groepen die SFTP-toegang nodig hebben, moeten beschikken over de
ISI_PRIV_LOGIN_SSHprivileges die aan de gebruiker zijn gekoppeld. - SSH- en SFTP-toegang werkt alleen binnen de systeemzone.
- Niet alle ssh-configuratieopties zijn beschikbaar; PowerScale ondersteunt Match- en Subsystem-instructies over de
isi ssh modifyOpdrachtset.
Buiten deze factoren werkt PowerScale net als elke andere FreeBSD OpenSSH server. Controleer de OpenSSH-versie op een cluster met de opdracht ssh -V.
Voor hulp bij het instellen van rollen en bevoegdheden, raadpleegt u de CLI- of webbeheerhandleidingen voor uw release onder het gedeelte 'Beheerrollen en bevoegdheden'.
Controleren of een gebruiker/groep ISI_PRIV_LOGIN_SSH
Controleer of de gebruiker in kwestie ISI_PRIV_LOGIN_SSH. Hieronder ziet u een voorbeeld met de standaard admin-gebruiker.
p930-1# isi auth mapping token admin | grep "LOGIN_SSH"
ISI_PRIV_LOGIN_SSH
Als er geen uitvoer is, moet de gebruiker worden toegewezen aan een rol die dat privilege bevat. Meer informatie over hoe u dit kunt doen, vindt u in onze beheerhandleidingen voor uw relevante release onder Beheerdersrollen en -privileges.
Basic SFTP-toegang voor lokale gebruikers
Na verificatie van de juiste bevoegdheden moeten gebruikers SFTP-toegang hebben tot delen van het bestandssysteem op basis van hun token voor gebruikerstoewijzing.
p930-1# sftp admin@localhost
(admin@localhost) Password:
Connected to localhost.
sftp> dir
sftp> cd ..
sftp> dir
admin ftp
Basic Chroot SFTP-toegang
Om een gebruiker te beperken tot een specifieke subset van het bestandssysteem, gebruikt u OpenSSH's ChrootDirectory functionaliteit binnen een Match-instructie. Dit zorgt ervoor dat de client zijn inlogpad ziet als / en zorgt ervoor dat ze die subset van het bestandssysteem niet kunnen verlaten. ChrootDirectory heeft echter wel strikte vereisten voor directory-rechten op het hele pad naar de ChrootDirectory dat elke directory in het pad Posix-machtigingen heeft van root:wheel drwxr-xr-x Voor meer details hierover, zie de OpenSSH maintainers man pagina.
Hier volgt een algemene overeenkomstverklaring voor het implementeren ChrootDirectory. De eerste twee regels zijn vereist voor ChrootDirectory zonder ondersteunende bestanden. De tweede twee regels beperken de mogelijkheid van een gebruiker om te profiteren van TCPForwarding van X11Forwarding-functies binnen OpenSSH.
Match Group admin
ChrootDirectory /ifs/sftp
ForceCommand internal-sftp"
X11Forwarding no
Hieronder ziet u een basisvoorbeeld van het voorbereiden van een pad voor chroot wanneer overeenkomende gebruikers kunnen schrijven naar de /ifs/sftp/home Directory. root:wheel Is eigenaar van de directory's /ifs als /ifs/sftp, met machtigingen ingesteld op 755 voor ChrootDirectory Terwijl /ifs/sftp/home Heeft machtigingen van 777, waardoor de gebruiker schrijftoegang heeft.
p930-1# isi auth settings acls modify --calcmode-group=group_only --calcmode-owner=owner_only
p930-1# mkdir -p /ifs/sftp/home
p930-1# chmod 755 /ifs/
p930-1# chmod 755 /ifs/sftp
p930-1# chmod 777 /ifs/sftp/home
p930-1# isi ssh settings modify --match="Match Group admin
dquote> ChrootDirectory /ifs/sftp
dquote> ForceCommand internal-sftp"
p930-1# sftp admin@localhost
(admin@localhost) Password:
Connected to localhost.
sftp> ls
home
sftp> pwd
Remote working directory: /
Meerdere Match Strings configureren
Het is gemakkelijker om meerdere overeenkomsten in een bestand te beheren en ze vervolgens door te geven aan onze isi ssh Opdrachten. Het gebruik van dit proces zorgt ervoor dat sshd Valideert het bestand en past de wijziging alleen toe als deze geldig is.
Hieronder staan voorbeelden van succes en mislukking.
p930-1# cat /ifs/sshMatches
Match Group admin
ChrootDirectory /ifs/sftp
ForceCommand internal-sftp
X11Forwarding no
Match All
X11Forwarding no
p930-1# sshd -t -f /ifs/sshMatches && isi ssh settings modify --match="$(cat /ifs/sshMatches)"
p930-1# sshd -t -f /ifs/sshMatchBad && isi ssh settings modify --match="$(cat /ifs/sshMatchBad)"
Missing Match criteria for Allk
/ifs/sshMatchBad line 6: Bad Match condition
Overeenkomen met tekenreeksoverwegingen.
Bij het instellen van Match Strings kan elke gebruikers- of groepsidentifier worden gebruikt waarvan het cluster op de hoogte is. Het verwijzen naar Active Directory-groepen kan dus met RFC2307 worden gedaan door domain\user.
Als een gebruiker niet naar het juiste pad of de juiste instellingen in een tekenreeks van Match User routert, controleert u of de gebruiker met de opdracht kan worden opgezocht in het cluster isi auth mapping token <username> gebruikersnaam uit je Match String halen.
Als een gebruiker niet naar het juiste pad of de juiste instellingen in een Match Group-tekenreeks routert, controleert u met de opdracht of de gebruiker lid is van de betreffende groep isi auth mapping token <username> | grep <groupname>.
Geef een gebruikersnaam op en neem de groepsnaam uit de tekenreeks.
Hieronder ziet u een voorbeeld van een gebruiker die niet correct naar een pad routert vanwege een fout in de instructie van de wedstrijdgroep. Gebruiker stateroot niet goed werkt terwijl de gebruiker prodroot corrigeer de fout in de groepsnaam die wordt gebruikt in de instructie Match Group om dit op te lossen.
p930-1# isi auth mapping token stageroot | grep "LOGIN_SSH"
ISI_PRIV_LOGIN_SSH
p930-1# isi auth mapping token prodroot | grep "LOGIN_SSH"
ISI_PRIV_LOGIN_SSH
p930-1# cat /ifs/sshMatches
Match Group Stage-Root-SFTP
ChrootDirectory /ifs/home/Stage-Root
X11Forwarding no
ForceCommand internal-sftp
Match Group Prod-Root
ChrootDirectory /ifs/home/Prod-Root
X11Forwarding no
ForceCommand internal-sftp
p930-1# isi auth mapping token stageroot | grep "Stage-Root-SFTP"
p930-1# isi auth mapping token prodroot | grep "Prod-Root"
Name: Prod-Root
p930-1# isi auth mapping token stageroot | grep "Stage-Root"
Name: Stage-Root
Legacy-configuraties
Vóór OneFS 8.2 kon dezelfde functionaliteit worden bereikt, maar de isi ssh commando bestond nog niet. In plaats van isi ssh settings modify --match="" Bewerk het bestand /etc/mcp/templates/sshd_config met dezelfde Match Strings die de bovenstaande stappen zouden gebruiken. Voeg ze toe aan het einde van /etc/mcp/templates/sshd_config.
De gegeven instructies zouden moeten werken voor OneFS-versies vóór OneFS 8.2, maar configuratieaanpassingen die op deze manier worden uitgevoerd, worden verwijderd na een upgrade naar een OneFS-versie met API-ondersteuning (Application Programming Interface). Gebruikers die SFTP-toegang gebruiken, hebben nog steeds de volgende ISI_PRIV_LOGIN_SSH Voorrecht.