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
- 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í:
- Server Debian 11
- Přístup uživatele root k serveru nebo uživateli s přístupem root
- Přístup k internetu ze serveru
Obsah
- Zajištění aktuálnosti serveru
- Zajištění instalace služby SSH
- Vytváření uživatelů a skupin a přidávání potřebných adresářů
- Konfigurace služby ssh
- 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 apt update
sudo apt upgrade -y
2. Zajištění instalace služby SSH
Ověřte, že je nainstalováno ssh:
$ sudo apt install -y openssh-server
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
openssh-server is already the newest version (1:8.4p1-5).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Nyní, když je nainstalována, spusťte službu
sudo systemctl start sshd
Potvrďte jeho stav
$ sudo systemctl status sshd
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-12-03 10:18:03 UTC; 2 days ago
Docs: man:sshd(8)
man:sshd_config(5)
Process: 665 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
Main PID: 682 (sshd)
Tasks: 1 (limit: 4626)
Memory: 6.2M
CPU: 9.132s
CGroup: /system.slice/ssh.service
└─682 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
Dec 05 09:20:46 ip-10-2-40-122 sshd[14717]: Received disconnect from 221.181.185.94 port 47597:11: [preauth]
Dec 05 09:20:46 ip-10-2-40-122 sshd[14717]: Disconnected from authenticating user root 221.181.185.94 port 47597 [preauth]
Dec 05 10:34:30 ip-10-2-40-122 sshd[14797]: Received disconnect from 222.186.30.76 port 23207:11: [preauth]
Dec 05 10:34:30 ip-10-2-40-122 sshd[14797]: Disconnected from authenticating user root 222.186.30.76 port 23207 [preauth]
Dec 05 10:34:41 ip-10-2-40-122 sshd[14799]: Received disconnect from 221.181.185.151 port 18104:11: [preauth]
Dec 05 10:34:41 ip-10-2-40-122 sshd[14799]: Disconnected from authenticating user root 221.181.185.151 port 18104 [preauth]
Dec 05 11:11:54 ip-10-2-40-122 sshd[14830]: Received disconnect from 221.131.165.65 port 19729:11: [preauth]
Dec 05 11:11:54 ip-10-2-40-122 sshd[14830]: Disconnected from authenticating user root 221.131.165.65 port 19729 [preauth]
Dec 05 11:19:03 ip-10-2-40-122 sshd[14840]: Accepted publickey for admin from 105.231.148.146 port 60649 ssh2: RSA SHA256:nDQ1FMciYtGpPYjdOwbUTVg7kQxEFtAjoSdWulRilIA
Dec 05 11:19:03 ip-10-2-40-122 sshd[14840]: pam_unix(sshd:session): session opened for user admin(uid=1000) by (uid=0)
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 ksftpusers
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
New password:
Retype new password:
passwd: password 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
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2021-12-05 11:22:02 UTC; 12s ago
Docs: man:sshd(8)
man:sshd_config(5)
Process: 15292 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
Main PID: 15293 (sshd)
Tasks: 1 (limit: 4626)
Memory: 1.0M
CPU: 159ms
CGroup: /system.slice/ssh.service
└─15293 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
Dec 05 11:22:02 ip-10-2-40-122 systemd[1]: Starting OpenBSD Secure Shell server...
Dec 05 11:22:02 ip-10-2-40-122 sshd[15293]: Server listening on 0.0.0.0 port 22.
Dec 05 11:22:02 ip-10-2-40-122 sshd[15293]: Server listening on :: port 22.
Dec 05 11:22:02 ip-10-2-40-122 systemd[1]: Started OpenBSD Secure Shell server.
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]'s password:
Connected to 18.236.122.10.
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 sftp server v Debianu 11.