Tento tutoriál poskytuje čtenářům pokyny, jak nainstalovat a nakonfigurovat ftp server VSFTPD na serveru RHEL 8 / CentOS 8. Tato příručka začne nejprve základní výchozí konfigurací, ke které přidáme zabezpečenou konfiguraci TLS, anonymní přístup a konfiguraci pasivního režimu.
V tomto tutoriálu se naučíte:
- Jak nainstalovat ftp server VSFTPD.
- Jak otevřít bránu firewall pro příchozí připojení FTP.
- Jak zabezpečit FTP připojení pomocí TLS.
- Jak povolit anonymní připojení.
VSFTPD ftp připojení na RHEL 8 / CentOS 8 Server/Workstation.
Požadavky na software a použité konvence
Kategorie | Požadavky, konvence nebo použitá verze softwaru |
---|---|
Systém | RHEL 8 / CentOS 8 |
Software | vsftpd:verze 3.0.3 |
Jiné | Privilegovaný přístup k vašemu systému Linux jako root nebo prostřednictvím sudo příkaz. |
Konvence | # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel |
Základní pokyny pro konfiguraci VSFTPD krok za krokem
V této sekci jednoduše nainstalujeme ftp server VSFTPD, otevřeme porty firewallu a otestujeme připojení.
- Nainstalujte balíček VSFTPD.
vsftpd
balíček lze nainstalovat pomocí správce balíčků dnf:# dnf install vsftpd
- Udělejte si kopii a zkontrolujte výchozí konfigurační soubor VSFTPD. Nejprve vytvořte kopii původního konfiguračního souboru:
# mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_orig
Začněme čistým konfiguračním souborem:
# grep -v ^# /etc/vsftpd/vsftpd.conf_orig > /etc/vsftpd/vsftpd.conf
Váš nový
/etc/vsftpd/vsftpd.conf
konfigurace by měla vypadat podobně jako níže: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 listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES
- Spusťte démona VSFTPD a nastavte jej na spuštění po restartu:
# systemctl start vsftpd # systemctl enable vsftpd
- Otevřete port FTP brány firewall 21 příchozí připojení:
# firewall-cmd --zone=public --permanent --add-service=ftp # firewall-cmd --reload
- Otestujte připojení FTP ze vzdáleného hostitele pomocí
ftp
příkaz. K přihlášení použijte své přihlašovací údaje běžného uživatele. Například vytvořte připojení FTP k hostitelirhel8-ftp.linuxconfig.org
:# ftp rhel8-ftp.linuxconfig.org Connected to rhel8-ftp.linuxconfig.org. 220 (vsFTPd 3.0.3) Name (rhel8-ftp.linuxconfig.org:lubos): linuxconfig 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp>
Tím končí základní konfigurace a testování VSFTPD. V další části přidáme vrstvu zabezpečení konfigurací našeho ftp serveru VSFTPD pomocí TLS.
Zabezpečení VSFTPD pomocí připojení TLS krok za krokem
V této části jednoduše nainstalujeme ftp server VSFTPD, otevřeme porty brány firewall a otestujeme připojení.
- Nainstalujte OpenSSL. Tento balíček může být již dostupný ve vašem systému RHEL8. Pro instalaci OpenSSL spusťte:
# dnf install openssl
- Vygenerujte certifikát s vlastním podpisem nebo použijte svůj stávající certifikát. V tomto příkladu vygenerujeme soukromý klíč
vsftpd.key
a podepsaný certifikátvsftpd.crt
. Budete vyzváni k zodpovězení některých otázek. Většinu z nich můžete ponechat jako výchozí kroměCommon Name
:# openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/vsftpd.key -x509 -days 365 -out /etc/pki/tls/certs/vsftpd.crt Generating a RSA private key ..................+++++ ....+++++ writing new private key to '/etc/pki/tls/private/vsftpd.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]: State or Province Name (full name) []: Locality Name (eg, city) [Default City]: Organization Name (eg, company) [Default Company Ltd]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []:rhel8-ftp.linuxconfig.org Email Address []: #
- Nakonfigurujte VSFTPD pro šifrované připojení TLS. Otevřete svůj stávající VSFTPD
/etc/vsftpd/vsftpd.conf
konfiguraci a přidejte k existujícím řádkům následující konfiguraci:rsa_cert_file=/etc/pki/tls/certs/vsftpd.crt rsa_private_key_file=/etc/pki/tls/private/vsftpd.key ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO require_ssl_reuse=NO ssl_ciphers=HIGH
- Restartujte VSFTPD:
# systemctl restart vsftpd
- Otestujte ftp připojení TLS VSFTPD.
POZNÁMKA
Upozorňujeme, že pokud neotevřete příslušné porty na firewallu vašeho serveru RHEL 8, nebudete v tomto okamžiku schopni vytvořit pasivní ftp připojení ze vzdáleného hostitele.Použijte FTP klienta, který podporuje připojení TLS, jako je například FileZilla:
Navazování TLS připojení k VSFTPD ftp RHEL 8 serveru. Připojeno k serveru VSFTPS RHEL 8 se zabezpečeným připojením TLS.
Vše se zdá být v pořádku. V další části přidáme funkci pasivního připojení k našemu ftp serveru VSFTPD.
Přidání pasivního režimu do VSFTPD pokyny krok za krokem
- Otevřete svůj stávající VSFTPD
/etc/vsftpd/vsftpd.conf
konfiguraci a přidejte k existujícím řádkům následující konfiguraci:pasv_enable=YES pasv_min_port=10000 pasv_max_port=10100
- Restartujte VSFTPD:
# systemctl restart vsftpd
- Otevřete rozsah portů brány firewall pro pasivní porty:
# firewall-cmd --permanent --zone=public --add-port=10000-10100/tcp # firewall-cmd --reload
Povolte anonymní přístup VSFTPD pokyny krok za krokem
- Otevřete svůj stávající VSFTPD
/etc/vsftpd/vsftpd.conf
konfiguraci a změňteanonymous_enable
aallow_anon_ssl
řádků naYES
:anonymous_enable=YES allow_anon_ssl=YES
- Restartujte VSFTPD:
# systemctl restart vsftpd
Příloha
Pro vaše pohodlí finální /etc/vsftpd/vsftpd.conf
konfigurační soubor je uveden níže:
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
rsa_cert_file=/etc/pki/tls/certs/vsftpd.crt
rsa_private_key_file=/etc/pki/tls/private/vsftpd.key
ssl_enable=YES
allow_anon_ssl=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
pasv_enable=YES
pasv_min_port=10000
pasv_max_port=10100