Tento kurz popisuje instalaci a konfiguraci ProFTPD na CentOS 7.2 Server. ProFTPD je FTP démon pro operační systémy Unix a Linux a je distribuován pod licencí GNU Public License (GPL).
1 předběžná poznámka
Tento výukový program je založen na serveru CentOS, takže před pokračováním v tomto výukovém programu byste měli nastavit základní instalaci serveru CentOS 7.2. Systém by měl mít statickou IP adresu. V tomto návodu používám jako svou IP adresu 192.168.1.100 a jako název hostitele server1.example.com.
2 Instalace a konfigurace ProFTPD
2.1 Instalace:
Vyžadujeme software z úložiště EPEL, povolte jej následovně:
yum -y install epel-release
Poté importujte klíč EPEL GPG:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
a aktualizujte balíčky:
yum -y update
ProFTPD a OpenSSL nainstalujeme následovně:
yum install -y proftpd openssl proftpd-utils
Musíme službu spustit a povolit, aby se spouštěla automaticky při startu.
systemctl start proftpd.service
systemctl enable proftpd.service
Pokud máte nainstalovanou bránu firewall, nakonfigurujte bránu firewall pomocí firewall-cmd, aby otevřel port FTP:
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
Verzi ProFTPD můžeme zkontrolovat následovně:
proftpd -v[[e-mail chráněný] ~]# proftpd -v
ProFTPD verze 1.3.5b
[[e-mail chráněný] ~]#
2.2 Vytváření uživatelů ProFTPD
Vytvořím skupinu ftpgroup a uživatelského tom pro ProFTPD. Nastavím /ftpshare jako domovský adresář pro uživatele tom.
groupadd ftpgroup
Dále přidám uživatele srijan do ftpgroup:
useradd -G ftpgroup tom -s /sbin/nologin -d /ftpshare
passwd tom
[[email protected] ~]# passwd tom
Changing password for user srijan.
New password: <--ftppassword
Retype new password: <--ftppassword
passwd: all authentication tokens updated successfully.
[[email protected] ~]#
Nastavte oprávnění pro adresář ftpshare:
chmod -R 1750 /ftpshare/
Nyní jsme připraveni na připojení ProFTPD. Spojení ale ještě nejsou zašifrovaná, to vyřešíme v další kapitole.
3 Povolení TLS v ProFTPD
Chcete-li povolit TLS v ProFTPD, otevřete /etc/proftpd/proftpd.conf. Před úpravou souboru je lepší zálohovat původní soubor a poté soubor upravit pomocí nano.
cp -pf /etc/proftpd.conf /etc/proftpd.conf.bak
nano /etc/proftpd.conf
Přidejte a upravte řádky, jak je znázorněno červeně.
[...]
DefaultRoot ~ !adm PassivePorts 6000 6100
[...]
#<IfDefine TLS> TLSEngine on TLSRequired on TLSRSACertificateFile /etc/pki/tls/certs/proftpd.pem TLSRSACertificateKeyFile /etc/pki/tls/certs/proftpd.pem TLSCipherSuite ALL:!ADH:!DES TLSOptions NoCertRequest TLSVerifyClient off TLSRenegotiate ctrl 3600 data 512000 required off timeout 300 TLSLog /var/log/proftpd/tls.log # <IfModule mod_tls_shmcache.c> # TLSSessionCache shm:/file=/var/run/proftpd/sesscache # </IfModule> #</IfDefine>
[...]
Přidal jsem porty 6000 a 6100 pro povolení pasivního režimu ftp, podobně povolím pasivní režim prostřednictvím služby CentOS firewalld takto:
firewall-cmd --add-port=6000-6100/tcp --permanent
firewall-cmd --reload
Stav portů můžeme zkontrolovat následovně:
firewall-cmd --list-ports
[[email protected] ~]# firewall-cmd --list-ports
6000-6100/tcp
[[email protected] ~]#
Navíc musíme říci SELINUXu, aby povolil čtení/zápis souborů.
setsebool -P allow_ftpd_full_access=1
Abychom mohli používat TLS, musíme vytvořit SSL certifikát. Vytvořím jej v /etc/pki/tls/certs, SSL certifikát můžeme vygenerovat následovně:
openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem
[[email protected] certs]# openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem
Generování 1024bitového soukromého klíče RSA
..................................+++ +++
.........++++++
zápis nového soukromého klíče do '/etc/pki/tls/certs/proftpd.pem'
- ----
Budete požádáni o zadání informací, které budou začleněny
do vaší žádosti o certifikát.
Chystáte se zadat to, co se nazývá rozlišovací jméno nebo DN .
Je zde poměrně dost polí, ale některá můžete nechat prázdná
U některých polí bude výchozí hodnota,
Pokud zadáte '.', pole zůstane prázdné.
-----
Název země (2 písmenný kód) [XX]:<--DE
Název státu nebo provincie (celý název) []:<-- Hamburku
Název lokality (např. město) [Výchozí město]: <-- Luneberg
Název organizace (např. společnost) [Výchozí společnost Ltd]:<-- Howtoforge
Název organizační jednotky (např. sekce) []:<-- Vývoja
Běžný název (např. vaše jméno nebo název hostitele vašeho serveru) []:<-- server1.example.com
E-mailová adresa []:<-- [e-mail chráněný]
[[email protected] certs]#
Uveďte výše uvedené hodnoty červeně podle svého výběru, právě jsem uvedl příklad.
Nyní z bezpečnostních důvodů učiním certifikáty čitelné pouze následovně:
chmod 0440 /etc/pki/tls/certs/proftpd.pem
Nakonec restartujte službu ProFTPD následovně:
systemctl restart proftpd.service
K serveru ProFTPD se můžeme připojit pomocí softwaru Filezilla, pro připojení k serveru musíte mít na klientském počítači nainstalovanou aplikaci Filezilla. Otevřete Filezillu a zadejte podrobnosti takto:
Podrobnosti budou:
Host =192.168.1.100
Protokol =FTP
Uživatel = tom
Port =může být prázdný, pokud jste jej nepřizpůsobili na jiný port než 21
Heslo =ftppassword (právě vytvořeno výše)
Poznámka:Protože jsme ve výše uvedeném kroku zašifrovali naše připojení, budeme používat šifrování s Vyžadovat explicitní FTP přes TLS
Pokud jste nenakonfigurovali TLS, můžete použít Použít prostý FTP
Požádá o důvěryhodnost certifikátu, stiskněte OK
Bude připojen ke sdílenému adresáři FTP pomocí připojení TLS.
4 Anonymní ftp přístup v ProFTPD
Můžeme vytvořit anonymní ftp účet v ProFTPD, stačí přidat tyto řádky do konfiguračního souboru ProFTPD:
nano /etc/proftpd.conf
A přidejte tyto řádky na konec souboru.
[...]
###Anonymous share##### <Anonymous ~ftp> User ftp Group ftp UserAlias anonymous ftp DirFakeUser on ftp DirFakeGroup on ftp MaxClients 10 <Directory *> <Limit WRITE> DenyAll </Limit> </Directory> </Anonymous>
Nyní musíme restartovat službu FTP:
systemctl restart proftpd.service
Nyní se připojte přes Filezilla k účtu anon následovně:
Poznámka:Protože jsme ve výše uvedeném kroku zašifrovali naše připojení, budeme používat šifrování s Vyžadovat explicitní FTP přes TLS
Pokud jste nenakonfigurovali TLS, můžete použít Použít prostý FTP
Stiskněte Připojit.
Jsme úspěšně připojeni k serveru s anonymním uživatelem.
Gratulujeme! Nyní jsme úspěšně nakonfigurovali prostředí serveru ProFTPD v CentOS 7.2 :)
5 odkazů
- CentOS:http://www.centos.org/
- ProFTPD:http://www.proftpd.org/