Si të instaloni dhe përdorni SFTP në serverët Linux


SFTP ose SSH File Transfer Protocol është një metodë për transferimin e sigurt të të dhënave midis dy kompjuterëve dhe më shumë. FTP-ja e tij që funksionon në krye të protokollit SSH dhe përfiton nga siguria e tij dhe mbështet plotësisht vërtetimin e tij.

Në ditët e sotme, rekomandohet përdorimi i SFTP në vend të protokollit të vjetër FTP ose FTP/S. SFTP është i sigurt si parazgjedhje sepse kështu funksionon SSH. Nga pikëpamja e sigurisë, SFTP ju mbron gjithashtu nga nuhatja e fjalëkalimit dhe sulmi njeri në mes (MiTM).

Ashtu si SSH, SFTP gjithashtu mbron integritetin e të dhënave tuaja duke përdorur funksionin e enkriptimit dhe hash kriptografik. Gjithashtu, ai mbështet metoda të shumta të vërtetimit të sigurta, duke përfshirë vërtetimin me fjalëkalim dhe çelësa. Gjithashtu, redukton portin e hapur të serverit në rrjetin e jashtëm, sepse funksionon në të njëjtin port si protokolli SSH.

Parakushtet

Në këtë udhëzues, do të mësoni se si të konfiguroni serverin SFTP në një sistem Linux. Gjithashtu, do të mësoni komandën bazë të klientit sftp.

Më poshtë është mjedisi aktual për zbatimin:

  • Një server Linux - mund të përdorni Debian, Ubuntu, CentOS, Fedora, Rocky ose çdo shpërndarje tjetër Linux.
  • Sigurohuni që paketat OpenSSH të jenë të disponueshme në sistemin tuaj Linux.
  • Klienti SFTP - linja e komandës sftp ose çdo klient GUI sipas dëshirës tuaj.

Verifikoni paketat OpenSSH

Për të konfiguruar një server SFTP, duhet të keni të instaluar paketat OpenSSH në sistemin tuaj Linux. Pothuajse të gjithë serverët Linux Distribution kanë paketat OpenSSH të instaluara si parazgjedhje. Por, në rast se nuk e keni paketën OpenSSH në sistemin tuaj, mund ta instaloni atë nga depoja zyrtare.

1. Për t'u siguruar që paketat OpenSSH janë instaluar në sistemin tuaj Linux, përdorni komandën e mëposhtme.

Për serverët Debian ose Ubuntu, mund të përdorni komandën dpkg më poshtë.

dpkg -l | grep ssh

Më poshtë është prodhimi nga sistemi ynë Debian.

ii  libssh2-1:amd64               1.9.0-2                        amd64        SSH2 client-side library
ii  openssh-client                1:8.4p1-5                      amd64        secure shell (SSH) client, for secure access to remote machines
ii  openssh-server                1:8.4p1-5                      amd64        secure shell (SSH) server, for secure access from remote machines
ii  openssh-sftp-server           1:8.4p1-5                      amd64        secure shell (SSH) sftp server module, for SFTP access from remote machines

Kolona e parë ii do të thotë se paketa është instaluar. Paketa openssh-sftp-server është instaluar në sistemin Debian/Ubuntu.

Për përdoruesit e RHEL/CentOS/Fedora/Rocky Linux/AlmaLinux, mund të përdorni komandën rpm si më poshtë.

rpm -qa | grep ssh

Krijo grup dhe përdorues

Në këtë hap, do të krijoni një grup dhe përdorues të ri për serverin SFTP. Përdoruesit brenda këtij grupi do të lejohen të hyjnë në serverin SFTP. Dhe për arsye sigurie, përdoruesit e SFTP nuk mund të hyjnë në shërbimin SSH. Përdoruesit e SFTP aksesojnë vetëm serverin SFTP.

1. Ekzekutoni komandën e mëposhtme për të krijuar një grup të ri sftpgroup.

sudo groupadd sftpgroup

2. Krijo një përdorues të ri sftpuser duke përdorur komandën e mëposhtme.

sudo useradd -G sftpgroup -d /srv/sftpuser -s /sbin/nologin sftpuser

Opsionet e detajuara:

  • -G : shtoni automatikisht përdoruesin në sftpgroup.
  • -d : specifikoni drejtorinë kryesore për përdoruesin e ri.
  • -s : vendos standardin për përdoruesin e ri në /sbin/nologin, që do të thotë se përdoruesi nuk mund të hyjë në serverin SSH.

3. Më pas, krijoni fjalëkalimin për përdoruesin sftpuser duke përdorur komandën e mëposhtme.

passwd sftpuser

Shkruani fjalëkalimin tuaj të fortë dhe përsërisni, më pas shtypni Enter për të konfirmuar.

Për të shtuar më shumë përdorues, përsëritni fazat numër 2 dhe 3, dhe më e rëndësishmja, të gjithë përdoruesit e SFTP duhet të jenë në grupin sftpgroup pa qasje shell përmes SSH.

Konfiguro drejtorinë e burgut Chroot

Pas krijimit të një grupi dhe përdoruesi të ri, duhet të krijoni dhe konfiguroni drejtorinë chroot për përdoruesit e SFTP.

1. Për përdoruesin sftpuser, direktoria e re kryesore do të jetë në /srv/sftpuser. Ekzekutoni komandën e mëposhtme për ta krijuar atë.

mkdir -p /srv/sftpuser

2. Për të konfiguruar chroot për përdoruesin sftpuser, duhet të ndryshoni pronësinë e drejtorisë në rrënjën e përdoruesit, por të mbeteni grupi për t'u lexuar dhe ekzekutuar pa qasje në shkrim.

Ndryshoni pronësinë e drejtorisë në rrënjë të përdoruesit duke përdorur komandën e mëposhtme.

sudo chown root /srv/sftpuser

Jepini grupit leje për të lexuar dhe ekzekutuar, por jo për të shkruar.

sudo chmod g+rx /srv/sftpuser

3. Më pas, krijoni një direktori të re të dhënash brenda direktorisë /srv/sftpuser dhe ndryshoni pronësinë e asaj direktorie data në përdoruesin sftpuser.

mkdir -p /srv/sftpuser/data
chown sftpuser:sftpuser /srv/sftpuser/data

Deri më tani, më poshtë detajet e konfigurimit për direktorinë e përdoruesve SFTP.

  • Direktoria /srv/sftuser është direktoria kryesore e paracaktuar.
  • Përdoruesi sftpuser nuk mund të shkruajë në drejtorinë /srv/sftpuser, por mund të lexojë brenda asaj direktorie.
  • Përdoruesi sftpuser mund të ngarkojë skedarë në serverin SFTP në drejtorinë /srv/sftpuser/data.

Aktivizo SFTP në serverin SSH

Për të aktivizuar serverin SFTP në OpenSSH, duhet të modifikoni konfigurimin SSH /etc/ssh/sshd_config.

1. Ndryshoni konfigurimin ssh /etc/ssh/sshd_config duke përdorur nano ose vim.

sudo nano /etc/ssh/sshd_config

2. Komento konfigurimin e mëposhtëm për të çaktivizuar veçorinë e pavarur sftp-server.

#Subsystem      sftp    /usr/lib/openssh/sftp-server

3. Ngjitni konfigurimin e mëposhtëm në fund të rreshtit.

Subsystem sftp internal-sftp

Match Group sftpgroup
     ChrootDirectory %h
     X11Forwarding no
     AllowTCPForwarding no
     ForceCommand internal-sftp

Ruani konfigurimin dhe dilni.

Konfigurimi i detajuar:

  • Në vend të përdorimit të nënprocesit sftp-server, po përdornim sftp-in e brendshëm.
  • Serveri SFTP i aktivizuar për grupin sftpgroup.

4. Për të aplikuar një konfigurim të ri, rinisni shërbimin ssh duke përdorur komandën e mëposhtme.

sudo systemctl restart sshd

Serveri SFTP është gati dhe i aksesueshëm dhe funksionon në të njëjtën port si shërbimi SSH.

Hyni në serverin SFTP

Në anën e klientit, ne do të përdorim linjën e komandës sftp, e cila është instaluar si parazgjedhje në shumicën e shpërndarjeve Linux. Por, mund të përdorni gjithashtu një klient tjetër të linjës së komandës ose klient FTP GUI si FileZilla, Cyberduck, etj.

1. Për t'u lidhur me serverin SFTP, ekzekutoni komandën sftp si më poshtë.

sftp 

Nëse serveri juaj SFTP dhe/ose SSH funksionon në portën e personalizuar, mund të përdorni komandën sftp si më poshtë.

sftp -P PORT 

Shkruani fjalëkalimin për sftpuser.

2. Pasi të jeni lidhur me serverin SFTP, ekzekutoni komandën e mëposhtme.

Shfaq direktorinë e punës së shtegut aktual dhe listo të gjithë skedarët dhe drejtoritë e disponueshme.

pwd
ls

3. Ngarko një skedar lokal në serverin SFTP në drejtorinë /, i cili do të rezultojë si leja e refuzuar, sepse është drejtoria chroot.

put /path/to/file/on/local /

4. Ngarko një skedar lokal në drejtorinë /data/ në serverin SFTP. Nëse konfigurimi juaj është i saktë, skedari juaj do të ngarkohet në drejtorinë /data/.

put /path/to/file1/on/local1 /data/
put /path/to/file2/on/local /data/

5. Tani kontrolloni skedarët e disponueshëm në drejtorinë /data duke përdorur komandën e mëposhtme.

ls /data/

Dhe do të shihni skedarin tuaj të ngarkuar në serverin SFTP.

konkluzioni

urime! Ju keni konfiguruar me sukses serverin SFTP në sistemin Linux. Ky lloj konfigurimi mund të aplikohet në shumicën e sistemeve Linux me OpenSSH të instaluar në krye të tij. Gjithashtu, keni mësuar se si të vendosni direktorinë chroot për përdoruesit e SFTP dhe keni mësuar komandën bazë të klientit sftp.