SFTP je zkratka pro Secure File Transfer Protocol / SSH File Transfer Protocol, je to jedna z nejběžnějších metod, která se používá k bezpečnému přenosu souborů přes ssh z našeho lokálního systému na vzdálený server a naopak. Hlavní výhodou sftp je, že nepotřebujeme instalovat žádný další balíček kromě ‘openssh-server “, ve většině linuxových distribucí je balíček „openssh-server“ součástí výchozí instalace. Další výhodou sftp je, že můžeme uživateli umožnit používat pouze sftp, nikoli ssh.
Nedávno byl vydán Debian 10 s kódovým názvem ‚Buster‘, v tomto článku si ukážeme, jak nakonfigurovat sftp s prostředím podobným Chroot ‚Jail‘ v systému Debian 10. Prostředí podobné Chroot Jail zde znamená, že uživatelé nemohou přejít ze svých příslušných domovských adresářů nebo uživatelé nemohou měnit adresáře ze svých domovských adresářů. Níže jsou uvedeny podrobnosti o laboratoři:
- OS =Debian 10
- IP adresa =192.168.56.151
Pojďme se vrhnout na kroky konfigurace SFTP,
Krok:1) Vytvořte skupinu pro sftp pomocí příkazu groupadd
Otevřete terminál, vytvořte skupinu s názvem „sftp_users ” pomocí níže uvedeného příkazu groupadd,
[email protected]:~# groupadd sftp_users
Krok:2) Přidejte uživatele do skupiny ‚sftp_users‘ a nastavte oprávnění
V případě, že chcete vytvořit nového uživatele a chcete jej přidat do skupiny ‚sftp_users‘, spusťte následující příkaz,
Syntaxe: # useradd -m -G sftp_users
Předpokládejme, že uživatelské jméno je „Jonathan“
[e-mail chráněný]:~# useradd -m -G sftp_users jonathan
nastavte heslo pomocí následujícího příkazu chpasswd,
[e-mail chráněn]:~# echo "jonathan:" | chpasswd
V případě, že chcete přidat stávající uživatele do skupiny ‚sftp_users‘, pak spusťte pod příkazem usermod, předpokládejme, že již existující uživatelské jméno je ‚chris‘
[e-mail chráněný]:~# usermod -G sftp_users chris
Nyní nastavte požadovaná oprávnění pro uživatele,
[email protected]:~# chown root /home/jonathan /home/chris/
Vytvořte složku pro nahrávání v domovském adresáři uživatele a nastavte správné vlastnictví,
[chráněno e-mailem]:~# mkdir /home/jonathan/upload[chráněno e-mailem]:~# mkdir /home/chris/upload[e-mailem chráněno]:~# chown jonathan /home/jonathan/upload[chráněno e-mailem] :~# chown chris /home/chris/upload
Poznámka: Uživatelé jako Jonathan a Chris mohou nahrávat soubory a adresáře do složky pro nahrávání ze svých místních systémů.
Krok:3) Upravte konfigurační soubor sftp (/etc/ssh/sshd_config)
Jak jsme již uvedli, že operace sftp se provádějí přes ssh, takže jeho konfigurační soubor je „/etc/ssh/sshd_config “, Před provedením jakýchkoli změn bych navrhoval nejprve provést zálohu a poté upravit tento soubor a přidat následující obsah,
[chráněno e-mailem]:~# cp /etc/ssh/sshd_config /etc/ssh/sshd_config-org[chráněno e-mailem]:~# vim /etc/ssh/sshd_config………#Subsystem sftp /usr/lib/ openssh/sftp-serverSubsystem sftp internal-sftpMatch Group sftp_users X11Forwarding no AllowTcpForwarding no ChrootDirectory %h ForceCommand internal-sftp……
Uložte a ukončete soubor.
Chcete-li provést výše uvedené změny v efektu, restartujte službu ssh pomocí následujícího příkazu systemctl
[e-mail chráněn]:~# systemctl restart sshd
Ve výše uvedeném souboru „sshd_config“ jsme zakomentovali řádek, který začíná „Subsystem“ a přidali nový záznam „Subsystem sftp internal-sftp“ a nové řádky jako,
„Match Group sftp_users“ –> To znamená, že pokud je uživatel součástí skupiny ‚sftp_users‘, aplikujte na tento záznam pravidla, která jsou zmíněna níže.
“ChrootDierctory %h ” –> Znamená to, že uživatelé mohou měnit adresáře pouze v rámci svých příslušných domovských adresářů, nemohou překračovat své domovské adresáře, nebo jinými slovy můžeme říci, že uživatelé nemají povoleno měnit adresáře, ve svých adresářích získají prostředí podobné jai a mohou Nepřistupovat do adresářů žádného jiného uživatele a systému.
„ForceCommand internal-sftp ” –> Znamená to, že uživatelé jsou omezeni pouze na příkaz sftp.
Krok:4) Otestujte a ověřte sftp
Přihlaste se k jakémukoli jinému systému Linux, který je ve stejné síti jako váš sftp server, a poté zkuste ssh sftp server přes uživatele, které jsme namapovali ve skupině ‚sftp_users‘.
[[e-mail chráněn] ~]# ssh [e-mail chráněný][heslo chráněné e-mailem]:Zápis se nezdařil:Přerušené potrubí[[e-mail chráněn] ~]# ssh [chráněný e-mail][heslo chráněné e-mailem]:Zápis se nezdařil:Přerušené potrubí[[email chráněn] ~]#
Výše potvrzuje, že uživatelé nemají povoleno SSH, nyní zkuste sftp pomocí následujících příkazů,
[[chráněno e-mailem] ~]# sftp [chráněno e-mailem][heslo uživatele chráněno e-mailem]:Připojeno k 192.168.56.151.sftp> ls -ldrwxr-xr-x 2 root 1001 6 1001 6 1001 6 1 0-4 pkgs-rw-r--r-- 1 kořen 1001 155 září 14 07:52 devops-actions.txtdrwxr-xr-x 2 1001 1002 > 4:219Zkusme stáhnout soubor pomocí sftp ‘get ‘ příkaz
SFTP> Získejte DEVOPS-ACCICE.TXTFETCHING /DEVOPS-ACTIONS.txt k DEVOPS-ACCIONS.TXT / DEVOPS-ACCIONS.txt 100% 155 0.2kb / s 00:00SFTP> SFTP> CD / Etcckloud ne Stat Vzdálený soubor :Žádný takový soubor nebo adresář sftp> cd /rootNelze zjistit vzdálený soubor:Žádný takový soubor nebo adresář sftp>Výše uvedený výstup potvrzuje, že jsme schopni stáhnout soubor z našeho sftp serveru na místní počítač a kromě toho jsme také testovali, že uživatelé nemohou měnit adresáře.
Zkusme nahrát soubor pod „nahrát “,
sftp> cd upload/sftp> vložte metricbeat-7.3.1-amd64.deb Nahrávání metricbeat-7.3.1-amd64.deb do /upload/metricbeat-7.3.1-amd64.debmetricbeat-7.3.1-amd64.deb 100 % 38 MB 38,4 MB/s 00:01sftp> ls -l-rw-r--r-- 1 1001 1002 40275654 14. září 09:18 PM/41p.–7.07To potvrzuje, že jsme úspěšně nahráli soubor z našeho místního systému na server sftp.
Nyní otestujte server SFTP pomocí nástroje winscp, zadejte adresu IP serveru sftp spolu s přihlašovacími údaji uživatele,
Klikněte na Přihlásit a poté zkuste stáhnout a nahrát soubory
Nyní zkuste nahrát soubory do složky pro nahrávání,
Výše uvedené okno potvrzuje, že nahrávání také funguje dobře, to je vše z tohoto článku. Pokud vám tyto kroky pomohou nakonfigurovat SFTP server s prostředím chroot v Debianu 10, podělte se o své názory a komentáře.
Jak nainstalovat VirtualBox 5.1 na Debian 9 (Stretch) Jak nainstalovat Ansible (Automation Tool) na Debian 10 (Buster)Debian