Nastavte SFTP a Zabraňte SSH na Ubuntu 20.04. SFTP (Secure File transfer Protocol), bezpečný způsob přenosu souborů na servery pomocí šifrovaných připojení SSH. Všechny servery s SSH budou mít ve výchozím nastavení povoleno SFTP.
V této příručce se dozvíte, jak omezit přístup SFTP k adresáři pro konkrétního uživatele a zabránit přístupu SSH.
Toto nastavení je testováno na virtuálním počítači s operačním systémem Ubuntu 20.04. Tento tutoriál by tedy měl fungovat na všech serverech s Ubuntu.
Předpoklady
SSH přístup k serveru s právy sudo.
Krok 1:Vytvořte nového uživatele
Vytvořte nového uživatele, který má přístup SFTP k provádění určitých akcí v konkrétním adresáři.
sudo adduser username
Budete vyzváni k nastavení hesla a dalších volitelných podrobností, které můžete nastavit nebo je ignorovat.
Pokud chcete používat přihlašování založené na klíčích SSH, podívejte se, jak nastavit přístup SSH na vašem Ubuntu.
Krok 2:Nastavení přístupu SFTP
Chcete-li nastavit přístup SFTP, musíte nakonfigurovat správná oprávnění k adresáři, nadřazený adresář nového adresáře, který se chystáte vytvořit, by měl vlastnit root a ne jiní uživatelé.
Například pokud se chystáte vytvořit adresář s názvem /sftp/folder
, sftp
adresář by měl vlastnit root a folder
adresář by měl vlastnit konkrétní uživatel kdo k němu má přístup.
Vytvořte adresáře.
sudo mkdir -p /sftp/folder
Nakonfigurujte správná oprávnění.
sudo chmod 755 /sftp sudo chown root:root /sftp sudo chmod -R 755 /sftp/folder sudo chown username:username /sftp/folder
Krok 3:Zabraňte přístupu SSH a omezte přístup SFTP
Nyní můžeme upravit konfiguraci SSH, abychom uživateli zabránili v přístupu k SSH a omezili uživatele na přístup pouze do konkrétního adresáře.
Upravte svůj konfigurační soubor SSH.
sudo nano /etc/ssh/sshd_config
Přidejte následující na konec souboru.
Match User username ForceCommand internal-sftp PasswordAuthentication yes ChrootDirectory /sftp PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no
Match User
říká serveru SSH, aby použil následující příkazy pouze na zadaného uživatele.ForceCommand internal-sftp
vynutí serveru SSH, aby po přihlášení spustil server SFTP a zabránil přístupu SSH.PasswordAuthentication yes
umožňuje ověření hesla pro tohoto uživatele. Pokud používáte přihlašování založené na klíčích SSH, můžete zabránit ověřování na základě hesla nastavením hodnoty nano
.ChrootDirectory /sftp
zajišťuje, že uživatel nebude mít povolen přístup k ničemu mimo/sftp
adresář.AllowAgentForwarding no
,AllowTcpForwarding no
aX11Forwarding no
deaktivuje přesměrování portů, tunelování a předávání X11.
Stiskněte CTRL + X
následuje Y
a poté ENTER
pro uložení a ukončení souboru.
Nyní jsou konfigurace, které umožňují pouze SFTP přístup a brání SSH přihlášení pro uživatele.
Restartujte službu SSH, aby se změny projevily.
sudo systemctl restart sshd
Další podrobnosti o konfiguraci přístupu pro více uživatelských jmen naleznete v tomto průvodci nastavením Chroot.
Krok 4:Ověřte nastavení SFTP
Zkuste se přihlásit k serveru pomocí podrobností SFTP pomocí příkazu SSH. Bude vám odepřen přístup k SSH.
ssh [email protected]_ip
Obdržíte výstup podobný tomu níže.
Output This service allows sftp connections only. Connection to server_ip closed.
Nyní ověřte pomocí příkazu sftp.
sftp [email protected]_ip
Nyní byste měli být přihlášeni k serveru a mít přístup do adresáře, který jste dříve nakonfigurovali.
Output Connected to server_ip sftp>
Použijte ls
příkaz pro výpis adresářů uvidíte adresář s názvem folder
jste vytvořili a nakonfigurovali oprávnění.
sftp> ls
Output folder
Závěr
Nyní jste se naučili, jak nastavit SFTP a zabránit SSH přístupu uživatele přes konkrétní adresář.
Díky za váš čas. Pokud narazíte na jakýkoli problém nebo zpětnou vazbu, zanechte prosím komentář níže.