GNU/Linux >> Znalost Linux >  >> Arch Linux

Jak nastavit SFTP server na Arch Linuxu

File Transfer Protocol je standardní komunikační protokol používaný pro přenos počítačových souborů ze serveru na klienta v počítačové síti.

FTP dnes není populární, protože postrádá zabezpečení. Když je soubor odeslán pomocí tohoto protokolu, data, uživatelské jméno a heslo jsou sdíleny v prostém textu, což znamená, že hacker může k těmto informacím přistupovat s minimálním nebo žádným úsilím. Aby byla data v bezpečí, musíte použít upgradovanou verzi FTP, jako je SFTP.

SFTP Secure File Transfer Protocol je protokol pro přenos souborů, který poskytuje bezpečný přístup ke vzdálenému počítači za účelem zajištění zabezpečené komunikace. Využívá SSH – Secure Socket Shell a je často také označován jako ‚Secure Shell File Transfer Protocol‘.

Související obsah

  • Jak pracovat s klientem SFTP v systému Linux – 10 příkazů sftp
  • Jak nastavit server SFTP na serveru Debian 11
  • Stahování souborů ze serveru SFTP pomocí skriptu python
  • Seznam, nahrávání a stahování souborů ze serveru SFTP pomocí golang
  • Jak nastavit server SFTP na serveru OpenSUSE Leap 15.3
  • Jak nainstalovat a nastavit sftp server v Ubuntu 20.04
  • Jak nastavit server SFTP na serveru CentOS 8 /RHEL 8

Předpoklady

Chcete-li postupovat podle této příručky, ujistěte se, že máte následující:

  1. Počítač Arch Linux
  2. Přístup uživatele root k serveru nebo uživateli s přístupem root
  3. Přístup k internetu ze serveru

Obsah

  1. Zajištění aktuálnosti serveru
  2. Zajištění instalace služby SSH
  3. Vytváření uživatelů a skupin a přidávání potřebných adresářů
  4. Konfigurace služby ssh
  5. Ověření, že nastavení funguje podle očekávání

1. Zajištění aktuálnosti serveru

Než budete pokračovat, ujistěte se, že je váš systém aktuální. Pomocí tohoto příkazu obnovíte systémové balíčky a aktualizujete je.

sudo pacman -Syyu

2. Zajištění instalace služby SSH

Ověřte, že je nainstalováno ssh:

$ sudo pacman -Qi openssh
Name            : openssh
Version         : 8.6p1-1
Description     : Premier connectivity tool for remote login with the SSH protocol
Architecture    : x86_64
URL             : https://www.openssh.com/portable.html
Licenses        : custom:BSD
Groups          : None
Provides        : None
Depends On      : glibc  krb5  openssl  libedit  ldns  libxcrypt  libcrypt.so=2-64  zlib  pam
Optional Deps   : xorg-xauth: X11 forwarding
                  x11-ssh-askpass: input passphrase in X
                  libfido2: FIDO/U2F support
Required By     : None
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 5.79 MiB
Packager        : Giancarlo Razzolini <[email protected]>
Build Date      : Mon 19 Apr 2021 11:32:46 AM UTC
Install Date    : Thu 03 Jun 2021 03:23:32 AM UTC
Install Reason  : Explicitly installed
Install Script  : Yes
Validated By    : Signature

Pokud ssh není nainstalováno, nainstalujte pomocí tohoto příkazu:

sudo pacman -S openssh

Nyní, když je nainstalována, spusťte službu

sudo systemctl start sshd

Potvrďte jeho stav

$ sudo systemctl status sshd
● sshd.service - OpenSSH Daemon
     Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: disabled)
     Active: active (running) since Fri 2021-12-03 10:19:02 UTC; 17min ago
   Main PID: 467 (sshd)
      Tasks: 1 (limit: 4606)
     Memory: 5.0M
     CGroup: /system.slice/sshd.service
             └─467 sshd: /usr/bin/sshd -D [listener] 0 of 10-100 startups

Dec 04 14:53:30 ip-10-2-40-103 sshd[13109]: Unable to negotiate with 141.98.10.246 port 34078: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:53:42 ip-10-2-40-103 sshd[13111]: Unable to negotiate with 141.98.10.246 port 38674: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:53:53 ip-10-2-40-103 sshd[13115]: Unable to negotiate with 141.98.10.246 port 43268: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:54:05 ip-10-2-40-103 sshd[13117]: Unable to negotiate with 141.98.10.246 port 47864: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:54:17 ip-10-2-40-103 sshd[13119]: Unable to negotiate with 141.98.10.246 port 52460: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:54:41 ip-10-2-40-103 sshd[13123]: Unable to negotiate with 141.98.10.246 port 33418: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:54:53 ip-10-2-40-103 sshd[13127]: Unable to negotiate with 141.98.10.246 port 38014: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:55:05 ip-10-2-40-103 sshd[13129]: Unable to negotiate with 141.98.10.246 port 42614: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 15:16:10 ip-10-2-40-103 sshd[13191]: Received disconnect from 61.177.173.21 port 60983:11:  [preauth]
Dec 04 15:16:10 ip-10-2-40-103 sshd[13191]: Disconnected from authenticating user root 61.177.173.21 port 60983 [preauth]

3. Vytváření uživatelů a skupin a přidávání potřebných adresář

Dále zajistíme přítomnost potřebných uživatelů v systému. V mém případě bych chtěl mít uživatele sftp doma jako /srv/sftp

Pojďme vytvořit domovskou stránku /srv/sftp pomocí tohoto příkazu:

sudo mkdir /srv/sftp

Poté vytvořte zastřešující skupinu pouze pro SFTP

sudo groupadd sftpusers

Poté vytvořte uživatele pouze sftp s názvem citizix:

sudo useradd -G sftpusers -d /srv/sftp/citizix -s /sbin/nologin citizix

Výše uvedené možnosti dělají následující:

  • -G sftpusers :Vytvořte uživatele, připojte jej k sftpusers skupina
  • -d /srv/sftp/citizix :Nastavte domovský adresář jako /srv/sftp/citizix
  • -s /sbin/nologin :Nechceme, aby se uživatel přihlásil, takže žádný přihlašovací shell ssh
  • Nakonec zadejte uživatelské jméno citizix

Poté přidejte heslo k vytvořenému uživateli pomocí tohoto příkazu:

$ sudo passwd citizix
Changing password for user citizix.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

3. Konfigurace služby ssh

Nyní, když jsme nainstalovali potřebný software a vytvořili uživatele a skupiny, pojďme nakonfigurovat ssh.

Ujistěte se, že je povoleno ověřování heslem pro ssh. Zde upravte konfigurační soubor /etc/ssh/sshd_config :

sudo vim /etc/ssh/sshd_config

Pak se ujistěte, že tento řádek není komentován:

PasswordAuthentication yes

Dále musíme přidat pravidla pro uživatele v sftpusers skupinu považovat za sftp. Upravte konfigurační soubor:

sudo vim /etc/ssh/sshd_config

Přidejte tento obsah na konec souboru:

Match Group sftpusers  
    X11Forwarding no  
    AllowTcpForwarding no  
    ChrootDirectory /srv/sftp
    ForceCommand internal-sftp

Poté restartujte sshd a znovu načtěte konfiguraci:

sudo systemctl restart sshd

Ověřte, že sshd běží podle očekávání:

$ sudo systemctl status sshd
● sshd.service - OpenSSH Daemon
     Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: disabled)
     Active: active (running) since Sat 2021-12-04 15:48:19 UTC; 18s ago
   Main PID: 14269 (sshd)
      Tasks: 1 (limit: 4606)
     Memory: 892.0K
     CGroup: /system.slice/sshd.service
             └─14269 sshd: /usr/bin/sshd -D [listener] 0 of 10-100 startups

Dec 04 15:48:19 ip-10-2-40-103 systemd[1]: Started OpenSSH Daemon.
Dec 04 15:48:19 ip-10-2-40-103 sshd[14269]: Server listening on 0.0.0.0 port 22.
Dec 04 15:48:19 ip-10-2-40-103 sshd[14269]: Server listening on :: port 22.

4. Ověření, že nastavení funguje podle očekávání

Po úspěšném vytvoření uživatele a přidání konfigurací sftp otestujeme nastavení pomocí příkazu:

❯ sftp [email protected]
[email protected]10.2.11.8's password:
Connected to 10.2.11.8.
sftp>

Nyní máme sftp server zprovozněn a spuštěn s uživatelem nakonfigurovaným!

Uživatelé se budou moci přihlásit k serveru a přistupovat k souborům a adresářům umístěným v jejich domovském adresáři. Pokud chcete uživateli poskytnout jiné adresáře mimo jeho vlastní adresář, ujistěte se, že má uživatel dostatečná práva pro přístup. Tyto adresáře a soubory musí být v adresáři sftp – /srv/sftp .

Příklad:pokud chci, aby uživatel měl přístup do adresáře /srv/sftp/paymentfiles , proveďte následující:

Vytvořte adresář

sudo mkdir /srv/sftp/paymentfiles

Poté přiřaďte uživatele (citizix ) přístup tak, že jim udělíte adresář:

sudo chown citizix:sftpusers /srv/sftp/paymentfiles

To je vše. Uživatelé by nyní měli mít přístup.

Závěr

V této příručce se nám podařilo nastavit server sftp na serveru Archlinux.


Arch Linux
  1. Jak nastavit SFTP server na Rocky Linux/CentOS 8 Server

  2. Jak nastavit SFTP server na Debian 11 Server

  3. Jak nastavit SFTP server na OpenSUSE Leap 15.3 Server

  1. Jak nastavit dedikovaný server Minecraft na Linuxu

  2. Jak nastavit linuxové chroot vězení

  3. Jak nastavit server Wekan Kanban na Linuxu

  1. Jak nainstalovat Arch Linux

  2. Jak nakonfigurovat Chroot SFTP Server v Linuxu

  3. Jak nainstalovat VirtualBox na Arch Linux