How to Setup an FTP Server in Windows 7 - AvoidErrors
Obsah:
- Předpoklady
- Instalace vsftpd na CentOS 7
- Konfigurace vsftpd
- 1. FTP přístup
- 2. Povolení nahrávání
- 3. Chroot vězení
- 4. Pasivní připojení FTP
- 5. Omezení přihlášení uživatele
- 6. Zabezpečení přenosu pomocí SSL / TLS
- Restartujte službu vsftpd
- Otevření Firewallu
- Vytvoření FTP uživatele
- Zakázání Shell Access
- Závěr
FTP (File Transfer Protocol) je standardní síťový protokol klient-server, který umožňuje uživatelům přenášet soubory do a ze vzdálené sítě.
Pro Linux je k dispozici několik FTP serverů s otevřeným zdrojovým kódem. Nejoblíbenější a nejrozšířenější jsou PureFTPd, ProFTPD a vsftpd.
V tomto tutoriálu nainstalujeme vsftpd (Very Secure Ftp Daemon) na CentOS 7. Jedná se o stabilní, bezpečný a rychlý FTP server. Ukážeme vám také, jak nakonfigurovat vsftpd tak, aby omezoval uživatele na jejich domovský adresář a šifroval celý přenos pomocí SSL / TLS.
Pro bezpečnější a rychlejší přenos dat použijte SCP nebo SFTP.
Předpoklady
Před pokračováním v tomto kurzu se ujistěte, že jste přihlášeni jako uživatel s právy sudo.
Instalace vsftpd na CentOS 7
Balíček vsftpd je k dispozici ve výchozích úložištích CentOS. Chcete-li jej nainstalovat, zadejte následující příkaz:
sudo yum install vsftpd
Po instalaci balíčku spusťte démona vsftpd a povolte jeho automatické spuštění v době spuštění:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
Můžete ověřit, že služba vsftpd je spuštěna vytištěním jejího stavu:
sudo systemctl status vsftpd
Výstup bude vypadat podobně jako níže, což ukazuje, že služba vsftpd je aktivní a běží:
● vsftpd.service - Vsftpd ftp daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2018-11-22 09:42:37 UTC; 6s ago Main PID: 29612 (vsftpd) CGroup: /system.slice/vsftpd.service └─29612 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
Konfigurace vsftpd
Konfigurace služby vsftpd zahrnuje úpravu konfiguračního souboru
/etc/vsftpd/vsftpd.conf
. Většina nastavení je dobře zdokumentována uvnitř konfiguračního souboru. Všechny dostupné možnosti najdete na oficiální stránce vsftpd.
V následujících částech projdeme některá důležitá nastavení potřebná pro konfiguraci bezpečné instalace vsftpd.
Začněte otevřením konfiguračního souboru vsftpd:
sudo nano /etc/vsftpd/vsftpd.conf
1. FTP přístup
Umožníme přístup k FTP serveru pouze místním uživatelům, najdeme direktivy
anonymous_enable
a
local_enable
a ověříme, zda vaše konfigurace odpovídá níže uvedeným řádkům:
anonymous_enable=NO local_enable=YES
2. Povolení nahrávání
Chcete-li povolit změny v souborovém systému, například nahrávání a mazání souborů, odkomentujte nastavení
write_enable
.
3. Chroot vězení
Zabraňte uživatelům FTP přístupu k jakýmkoli souborům mimo jejich domovské adresáře zrušením
chroot
směrnice.
chroot_local_user=YES
Ve výchozím nastavení, když je povolena chroot, vsftpd odmítne nahrát soubory, pokud je adresář, do kterého jsou uživatelé zamčeni, zapisovatelný. Tím je zabráněno zranitelnosti zabezpečení.
Použijte jednu z níže uvedených metod a povolte nahrávání, když je povolena chroot.
-
Metoda 1 - Doporučenou metodou pro povolení nahrávání je udržování chrootu povoleno a konfigurace adresářů FTP. V tomto tutoriálu vytvoříme adresář
/etc/vsftpd/vsftpd.confftp
uvnitř uživatelského domova, který bude sloužit jako chroot a adresář pro nahrávání souborů pro nahrávání souborů.user_sub_token=$USER local_root=/home/$USER/ftp
Metoda 2. - Další možností je přidání následující směrnice do konfiguračního souboru vsftpd. Tuto možnost použijte, pokud musíte uživateli udělit přístup k zápisu do svého domovského adresáře.
/etc/vsftpd/vsftpd.confallow_writeable_chroot=YES
4. Pasivní připojení FTP
vsftpd může použít jakýkoli port pro pasivní připojení FTP. Určíme minimální a maximální rozsah portů a později tento rozsah otevřeme v našem firewallu.
Do konfiguračního souboru přidejte následující řádky:
/etc/vsftpd/vsftpd.conf
pasv_min_port=30000 pasv_max_port=31000
5. Omezení přihlášení uživatele
Chcete-li povolit pouze určitým uživatelům přihlášení k serveru FTP, přidejte za řádek
userlist_enable=YES
řádky:
userlist_file=/etc/vsftpd/user_list userlist_deny=NO
Pokud je tato možnost povolena, musíte explicitně určit, kteří uživatelé se budou moci přihlásit přidáním uživatelských jmen do souboru
/etc/vsftpd/user_list
(jeden uživatel na řádek).
6. Zabezpečení přenosu pomocí SSL / TLS
Chcete-li šifrovat přenosy FTP pomocí SSL / TLS, musíte mít certifikát SSL a nakonfigurovat server FTP, aby jej používal.
Můžete použít existující certifikát SSL podepsaný důvěryhodnou certifikační autoritou nebo vytvořit certifikát s vlastním podpisem.
V tomto tutoriálu vygenerujeme SSL certifikát s vlastním podpisem pomocí příkazu
openssl
.
Následující příkaz vytvoří 2048bitový soukromý klíč a certifikát s vlastním podpisem platný 10 let. Soukromý klíč i certifikát budou uloženy ve stejném souboru:
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
Po vytvoření certifikátu SSL otevřete konfigurační soubor vsftpd:
sudo nano /etc/vsftpd/vsftpd.conf
Najděte
rsa_cert_file
a
rsa_cert_file
, změňte jejich hodnoty na cestu k souboru
pam
a nastavte direktivu
ssl_enable
na
YES
:
rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES
Pokud není uvedeno jinak, FTP server použije k zabezpečení připojení pouze TLS.
Restartujte službu vsftpd
Po dokončení úprav by měl konfigurační soubor vsftpd (bez komentářů) vypadat asi takto:
/etc/vsftpd/vsftpd.conf
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES userlist_file=/etc/vsftpd/user_list userlist_deny=NO tcp_wrappers=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES
Uložte soubor a restartujte službu vsftpd, aby se změny projevily:
Otevření Firewallu
Chcete-li otevřít port
21
(port příkazu FTP), port
20
(datový port FTP) a
30000-31000
(rozsah pasivních portů), zadejte následující příkazy:
sudo firewall-cmd --permanent --add-port=20-21/tcp
sudo firewall-cmd --permanent --add-port=30000-31000/tcp
Znovu načtěte pravidla brány firewall zadáním:
Vytvoření FTP uživatele
Abychom otestovali náš FTP server, vytvoříme nového uživatele.
- Pokud již máte uživatele, kterému chcete udělit přístup FTP, přeskočte 1. krok. Pokud v konfiguračním souboru nastavíte
allow_writeable_chroot=YES
přeskočte 3. krok.
-
Vytvořit nového uživatele s názvem
newftpuser
:sudo adduser newftpuser
Dále budete muset nastavit uživatelské heslo:
sudo passwd newftpuser
Přidejte uživatele do seznamu povolených uživatelů FTP:
echo "newftpuser" | sudo tee -a /etc/vsftpd/user_list
Vytvořte strom adresáře FTP a nastavte správná oprávnění:
sudo mkdir -p /home/newftpuser/ftp/upload
sudo chmod 550 /home/newftpuser/ftp
sudo chmod 750 /home/newftpuser/ftp/upload
sudo chown -R newftpuser: /home/newftpuser/ftp
Jak je uvedeno v předchozí části, uživatel bude moci nahrát své soubory do adresáře
ftp/upload
.
Nyní je váš FTP server plně funkční a měli byste být schopni připojit se k serveru pomocí libovolného FTP klienta, který lze nakonfigurovat tak, aby používal šifrování TLS, jako je FileZilla.
Zakázání Shell Access
Ve výchozím nastavení bude mít uživatel při vytváření uživatele, pokud není výslovně uvedeno, přístup na server SSH.
Chcete-li zakázat přístup do shellu, vytvoříme nový shell, který jednoduše vytiskne zprávu sdělující uživateli, že jejich účet je omezen pouze na FTP přístup.
Spusťte následující příkazy k vytvoření shellu
/bin/ftponly
a jeho spuštění.
echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly
echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly
sudo chmod a+x /bin/ftponly
Připojte nový shell k seznamu platných prostředí v souboru
/etc/shells
:
echo "/bin/ftponly" | sudo tee -a /etc/shells
Změnit shell uživatele na
/bin/ftponly
:
sudo usermod newftpuser -s /bin/ftponly
Stejným příkazem můžete změnit prostředí ostatních uživatelů, kterým chcete dát pouze FTP přístup.
Závěr
V tomto tutoriálu jste se naučili, jak nainstalovat a nakonfigurovat zabezpečený a rychlý FTP server v systému CentOS 7.
ftp centosJak nastavit a používat ftp server na Androidu
Chcete přenášet soubory ze zařízení Android do počítače bez kabelu USB? Vyzkoušejte metodu FTP serveru pro bezdrátové sdílení souborů mezi Androidem a PC.
Jak nastavit ftp server pomocí vsftpd na debian 9
V tomto tutoriálu instalujeme vsftpd. Je to stabilní, bezpečný a rychlý FTP server. Také vám ukážeme, jak nakonfigurovat vsftpd tak, aby omezoval uživatele na jejich domovský adresář a šifroval celý přenos pomocí SSL / TLS.
Jak nastavit ftp server pomocí vsftpd na Ubuntu 18.04
V tomto tutoriálu instalujeme vsftpd. Je to stabilní, bezpečný a rychlý FTP server. Také vám ukážeme, jak nakonfigurovat vsftpd tak, aby omezoval uživatele na jejich domovský adresář a šifroval celý přenos pomocí SSL / TLS.