Pure-FTPd je bezplatný a lehký FTP server založený na Troll-FTPd, jehož vývoj začal v roce 2001 a běží na mnoha operačních systémech podobných Unixu, včetně Linuxu, *BSD, Solaris a HP-UX. Pure-FTPd má mnoho funkcí, jako jsou virtuální domény, domovský adresář chroot, virtuální uživatelé, podpora TLS/SSL, virtuální kvóta a mnoho dalších.
V tomto tutoriálu vám ukážu, jak nainstalovat a nakonfigurovat čistý ftpd na OpenSUSE Leap 42.1. Ukážu vám, jak nastavit čistý ftpd s TLS/SSL a poté nastavit virtuální uživatele.
Předpoklad
- OpenSUSE Leap 42.1
- Oprávnění uživatele root
- OpenSUSE, znalost Zypper
Krok 1 – Instalace a konfigurace SuSEfirewall2
SuSEfirewall2 je skript pro generování konfigurace firewallu v souboru '/etc/sysconfig/SuSEfirewall2'. Nainstalujeme SuSEfirewall2 a poté otevřeme porty pro SSH a službu FTP.
Nainstalujte SuSEfirewall2 pomocí Zypper:
zypper in SuSEfirewall2
Dále upravte konfigurační soubor '/etc/sysconfig/SuSEfirewall2' pomocí vim:
vim /etc/sysconfig/SuSEfirewall2
Přidejte nové služby ssh a FTP na řádek 253:
FW_SERVICES_EXT_TCP="ssh ftp"
Uložte a ukončete.
Nyní spusťte SuSEfirewall2 pomocí příkazu systemctl:
systemctl start SuSEfirewall2
Krok 2 – Instalace a konfigurace Pure-FTPd
V tomto kroku nainstalujeme pure-ftpd s OpenSSL pro konfiguraci TLS/SSL a nakonfigurujeme uživatele a skupinu pure-ftpd.
Nainstalujte aplikace pomocí Zypper, jak je znázorněno níže:
zypper in pure-ftpd openssl
Nyní přidejte novou skupinu 'ftpgroup “ a nového uživatele hlavního „uživatele FTP“ s názvem „ftpuser ' do skupiny.
groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /etc ftpuser
Přejděte do adresáře pure-ftpd a upravte konfigurační soubor 'pure-ftpd.conf' pomocí editoru vim:
cd /etc/pure-ftpd/
vim pure-ftpd.conf
Změňte hodnotu na řádku 81 na „ano“ pro deaktivaci anonymního uživatele.
NoAnonymous yes
Odkomentujte řádek 131 pro konfiguraci backendu. Pure-ftpd má podporu pro MySQL, PostgreSQL a LDAP jako backend, ale v tomto tutoriálu použijeme pro zálohování 'PureDB'.
PureDB /etc/pure-ftpd/pureftpd.pdb
Zakomentujte řádek PAMAuthentication, abyste zakázali ověřování PAM na řádku 141, protože jako zdroj ověřování použijeme PureDB.
#PAMAuthentication yes
Uložte a ukončete.
Krok 3 – Konfigurace TLS/SSL pro Pure-FTPd
Vygenerujte nový soubor certifikátu s vlastním podpisem v adresáři '/etc/ssl/private' pomocí příkazu openssl:
openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem -days 365
Změňte oprávnění souboru certifikátu na 0600:
chmod 600 /etc/ssl/private/pure-ftpd.pem
Dále se vraťte do adresáře pure-ftpd a upravte konfigurační soubor, abyste povolili podporu TLS/SSL pro klientské připojení.
cd /etc/pure-ftpd/
vim pure-ftpd.conf
Chcete-li povolit TLS, odkomentujte řádek 439.
TLS 1
Odkomentujte řádek 449 a přidejte novou možnost, aby byla bezpečnější.
TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:!SSLv3
Odkomentujte řádek 445 pro definování souboru certifikátu.
CertFile /etc/ssl/private/pure-ftpd.pem
Uložte a ukončete.
Nyní spusťte pure-ftpd pomocí příkazu systemctl:
systemctl start pure-ftpd
Krok 4 – Konfigurace virtuálních uživatelů
Pure-FTPd poskytuje funkce pro vytváření a používání virtuálních uživatelů namísto skutečných systémových (Linux) uživatelů. Pure-FTPd poskytuje několik ověřovacích backendů a konfigurace virtuálního uživatele závisí na backendu, který server používá. V kroku 2 jsme nastavili 'PureDB' jako backend.
Můžeme vytvořit nového virtuálního uživatele pomocí příkazu 'pure-pw', který poskytuje pure-ftpd. V tomto kroku vytvoříme nového virtuálního uživatele s názvem 'shiro' s adresářem '/srv/ftp/shiro' jako domovským adresářem ftp a uživatel je chrootován do tohoto adresáře, takže nemůže přistupovat k ostatním systémovým adresářům.
Vytvořte nového virtuálního uživatele pomocí pure-pw:
pure-pw useradd shiro -u ftpuser -d /srv/ftp/shiro
Vytvořte adresář pro virtuálního uživatele a změňte vlastníka tohoto adresáře na hlavního „uživatele FTP“.
mkdir -p /srv/ftp/shiro
chown -R ftpuser.ftpgroup /srv/ftp/shiro
Dále musíme uložit změny pomocí příkazu níže:
pure-pw mkdb
Nyní je uživatel shiro připraven k použití, k připojení k serveru můžeme použít FTPp z příkazového řádku nebo rozhraní FileZilla pro GUI.
Poznámka:
pure-pw má více možností příkazů, můžete použít 'pure-pw help ' zobrazíte všechny užitečné příkazy.
Krok 5 – Testování
K testování použiji příkaz FTP v terminálu. Otevřete terminál a zadejte „ftp“:
ftp
Dále zadejte ip serveru čistého ftpd:
open 192.168.43.69
Přihlaste se pomocí uživatele 'shiro' a hesla a poté stiskněte 'Enter'.
Zkuste nahrát soubor pomocí příkazu 'put':
put picture.png mypict.png
Nyní uvidíte soubor mypict.png na serveru s příkazem ls níže:
ls