Android

Jak nastavit ftp server s vsftpd na centos 7

How to Setup an FTP Server in Windows 7 - AvoidErrors

How to Setup an FTP Server in Windows 7 - AvoidErrors

Obsah:

Anonim

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:

/etc/vsftpd/vsftpd.conf

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 .

/etc/vsftpd/vsftpd.conf

write_enable=YES

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.

/etc/vsftpd/vsftpd.conf

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ář ftp uvnitř uživatelského domova, který bude sloužit jako chroot a adresář pro nahrávání souborů pro nahrávání souborů.

    /etc/vsftpd/vsftpd.conf

    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.conf

    allow_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:

/etc/vsftpd/vsftpd.conf

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 :

/etc/vsftpd/vsftpd.conf

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:

sudo systemctl restart vsftpd

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:

firewall-cmd --reload

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.
  1. 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 centos