GNU/Linux >> Znalost Linux >  >> Cent OS

Zabezpečené nastavení serveru ProFTPD na CentOS 7 s TLS

Cíl

Cílem je nejprve nakonfigurovat základní server ProFTPD na CentOS 7. Jakmile budeme mít základní nastavení FTP serveru, přidáme pasivní režim FTP a zvýšíme zabezpečení přidáním Transport Layer Security (TLS).

Nakonec přidáváme volitelnou anonymní konfiguraci, která umožní anonymnímu uživateli přihlásit se na FTP server bez uživatelského jména a hesla.

Verze operačního systému a softwaru

  • Operační systém: – Vydání CentOS Linux 7.5.1804
  • Software: – ProFTPD verze 1.3.5e

Požadavky

Privilegovaný přístup k vašemu systému Ubuntu jako root nebo přes sudo je vyžadován příkaz.

Obtížnost

STŘEDNÍ

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
  • $ – dané linuxové příkazy, které mají být spouštěny jako běžný neprivilegovaný uživatel

Pokyny

Základní konfigurace FTP

Začněme základní instalací a konfigurací ProFTP serveru. To zahrnuje instalaci, definici pravidel brány firewall a testování klienta.

Nastavení serveru

FTP server ProFTPD je součástí úložiště EPEL. Prvním krokem je proto povolit úložiště EPEL a poté nainstalovat server ProFTPD:

# yum install epel-release
# yum install proftpd

Dále spusťte server ProFTPD a potvrďte jeho správný start kontrolou otevřeného portu 21

# service proftpd start
# ss -nlt

Dále musíme vložit celek do brány firewall serveru, abychom umožnili příchozí provoz na portu 21

# firewall-cmd --add-port=21/tcp --permanent
# firewall-cmd --reload 

Pro potvrzení otevřeného příchozího portu 21 provést:

# firewall-cmd --list-ports

Konfigurace Basig FTP serveru pomocí ProFTPD na CentOS 7

V této fázi se každý stávající uživatel systému může přihlásit pomocí FTP k nově nakonfigurovanému serveru ProFTPD. Volitelně můžeme vytvořit nového uživatele, např. lubos s přístupem do adresáře /var/ftp-share :

# useradd lubos -s /sbin/nologin -d /var/ftp-share
# passwd lubos
# chmod -R 750 /var/ftp-share
# setsebool -P allow_ftpd_full_access=1

Připojení klienta

V tomto okamžiku bychom měli být schopni provést FTP připojení ze vzdáleného klientského počítače. Nejjednodušší test je použít ftp příkaz.

Vzhledem k tomu, že náš server ProFTPD lze vyřešit pomocí ftp.linuxconfig.org název hostitele a uživatel lubos existuje provést:

$ ftp ftp.linuxconfig.org
Connected to ftp.linuxconfig.org.
220 FTP Server ready.
Name (ftp.linuxconfig.org:lubos): lubos
331 Password required for lubos
Password:
230 User lubos logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 
POZNÁMKA:Upozorňujeme, že v tuto chvíli můžeme vytvářet pouze „Aktivní připojení FTP“! Jakýkoli pokus o vytvoření „pasivního připojení FTP“ se nezdaří.

Konfigurace FTP v pasivním režimu

Nastavení serveru

Chcete-li, aby náš FTP server akceptoval i pasivní připojení FTP, proveďte následující příkazy, které povolí pasivní připojení na rozsahu dočasných portů registrovaných IANA:

echo "PassivePorts 49152 65534" >> /etc/proftpd.conf

Restartujte server ProFTPD:

# service proftpd restart

Otevřete bránu firewall pro porty v rozsahu 49152-65534 :

# firewall-cmd --add-port=49152-65534/tcp --permanent
# firewall-cmd --reload

Zkontrolujte, zda byly porty správně otevřeny:

# firewall-cmd --list-ports

Nakonfigurujte server ProFTPD pro příjem pasivních FTP připojení.

Připojení FTP klienta

Stejně jako dříve můžeme nyní otestovat pasivní připojení FTP pomocí ftp příkaz. Ujistěte se, že tentokrát použijete -p možnost, jak je uvedeno níže:

$ ftp -p ftp.linuxconfig.org
Connected to ftp.linuxconfig.org.
220 FTP Server ready.
Name (ftp.linuxconfig.org:lubos): lubos
331 Password required for lubos
Password:
230 User lubos logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,1,111,209,252).
150 Opening ASCII mode data connection for file list
226 Transfer complete
ftp> 

Vše funguje podle očekávání!

Zabezpečte server FTP pomocí protokolu TLS

Nastavení serveru

V případě, že plánujete používat váš FTP server mimo vaši lokální síť, je doporučeno použít nějaký druh šifrování. Naštěstí je konfigurace ProFTPD s TLS extrémně snadná. Nejprve, pokud ještě není k dispozici, nainstalujte openssl balíček:

# yum install openssl

Dále vytvořte certifikát pomocí následujícího příkazu. Jedinou požadovanou hodnotou je Common Name což je název hostitele vašeho FTP serveru:

# openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem
Generating a 1024 bit RSA private key
...++++++
.......++++++
writing new private key to '/etc/pki/tls/certs/proftpd.pem'
-----
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) []:ftp.linuxconfig.org
Email Address []:

Dále jako uživatel root otevřete /etc/sysconfig/proftpd pomocí svého oblíbeného textového editoru a změňte:

FROM:
PROFTPD_OPTIONS=""
TO:
PROFTPD_OPTIONS="-DTLS"

Jakmile budete připraveni, restartujte server ProFTPD:

# service proftpd restart

Připojení klienta

Tentokrát používáme FileZilla jako našeho FTP testovacího klienta:

Vytvořte nové připojení FTP. Chcete-li otestovat TLS, ujistěte se, že jste vybrali správné Encryption a Logon Type .

FTP klient vás upozorní na Unknown Certificate . Zaškrtněte Always Trust a stiskněte OK .

Šifrované připojení TLS bylo úspěšné.

Konfigurace anonymního uživatele FTP

Nastavení serveru

Chcete-li umožnit anonymnímu uživateli přihlásit se k serveru FTP, otevřete /etc/sysconfig/proftpd pomocí svého oblíbeného textového editoru a změňte:

FROM:
PROFTPD_OPTIONS="-DTLS"
TO:
PROFTPD_OPTIONS="-DTLS -DANONYMOUS_FTP"

Výše předpokládáme, že jste již dříve povolili TLS. Až budete připraveni, restartujte FTP server:

# service proftpd restart

Připojení klienta

Používání FileZilla jako našeho FTP testovacího klienta:

Jako Logon Type vyberte Anonymous

Anonymní připojení FTP bylo úspěšné.

Příloha

Blokovat/odmítat přístup uživatele FTP

V případě, že potřebujete zablokovat/odmítnout přístup k FTP serveru kterémukoli systémovému uživateli, přidejte jeho uživatelské jméno do /etc/ftpusers . Jedno uživatelské jméno na řádek. Pokud tak učiníte, jakýkoli pokus uživatele o přihlášení selže s 530 chyba přihlášení:

$ ftp ftp.linuxconfig.org
Connected to ftp.linuxconfig.org.
220 FTP Server ready.
Name (ftp.linuxconfig.org:lubos): lubos
331 Password required for lubos
Password:
530 Login incorrect.
Login failed.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

Cent OS
  1. Server ProFTPD

  2. Nastavte IPSec VPN Server s Libreswan na CentOS 8

  3. Jak nainstalovat FTP server na CentOS 7

  1. Jak nainstalovat FTP server na CentOS 7 s VSFTPD

  2. Jak nastavit FTP server s VSFTPD na Ubuntu 20.04

  3. Jak nastavit FTP server s VSFTPD na Ubuntu 18.04

  1. Zabezpečte Apache pomocí Lets Encrypt na CentOS 7

  2. Jak nastavit FTP server s VSFTPD na CentOS 7

  3. Zabezpečte Apache pomocí Lets Encrypt na CentOS 8