LINUXSOFT.cz Přeskoč levou lištu

ARCHIV



   

> FTP Server s podporou TLS

Tímto krátkým článkem bych chtěl navázat na povídání o Ftp Serveru ProFTPD a jen stručně jej doplnit o možnost zabezpečení.

29.3.2005 06:00 | Petr | Články autora | přečteno 8720×

Úvodem ...

Cílem tohoto článku je doplnit povídání o FTP Serveru, které začal Martin Pruša. Jelikož se dnes komunikace neobejde bez pořádného zabezpečení, rozhodl jsem se reagovat na vydaný článek tím, že jej doplním o možnost provozovat FTP server s podporou TLS a stručně vysvětlím jak tuto vlastnost aplikovat.

Kde najít Proftpd s podporou tls a jak instalovat

Archiv se zdrojovými soubory najdete zde. Stáhnete, rozbalíte a klasickou trojkombinací configure make a make install nacpete do svého počítače. Jen než s těmito otřepanými kroky začnete, nahlédněte do podadresáře modules adresáře ProFTPd-x.x.x-tls, zdali je zdrojový soubor mod_tls.c přítomen. Vyhnete se tím zbytečných rozpaků nad neúspěšnou kompilací. Také ověřte přítomnost OpenSSL knihoven, bez kterých by kompilace rovněž neproběhla. Máte-li vše potřebné, pak spusťte první z trojce příkazů s následujícími parametry:

#./configure –with-modules=mod_tls –sysconfdir=/etc

Druhým parametrem dosáhneme toho, že konfigurační soubor proftpd.conf bude uložen v adresáři /etc (ne v /usr/local/etc) jak by nastalo v případě implicitního nastavení. Dále stačí prosté make a make install. Poslední z příkazů zařídí, že se do adresáře /usr/local/sbin uloží démon serveru proftpd a další zkompilované nástroje(tak jak bylo uvedeno v předešlém povídání).

Konfigurace TLS

Pro aktivaci tls šifrování musíme do konfiguračního souboru připsat direktivu, která vypadá obdobně jako u konfigurace serveru Apache. Příklad konfigurace může vypadat takto:

<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/ftpd/tls.log
#TLSProtocol TLSv1
TLSProtocol SSLv3

# Are clients required to use FTP over TLS when talking to this server?
TLSRequired on

# Server's certificate
TLSRSACertificateFile /etc/ssl/private/ftpd-rsa.pem
TLSRSACertificateKeyFile /etc/ssl/private/ftpd-rsa-key.pem

# Authenticate clients that want to use FTP over TLS?
#TLSVerifyClient off
TLSOptions NoCertRequest
</IfModule>
  • TLSEngine on/off – direktiva pro aktivaci/deaktivaci ssl/tsl. (Použití: Tato direktiva se obvykle použije vně direktivy VirtualHost i Global).
  • TLSLog file – direktiva pro určení plné cesty k log souboru. (Použití: VirtualHost, Global, Parametr: Plná cesta k souboru).
  • TLSProtocol protokol – direktiva pro nastavení použití protokolu při vytváření spojení.(Parametr: podporován je TLSv1 protokol a SSLv2,3).
  • TSLRequired on/off/ctrl/data – direktiva, která definuje použití tsl buď na komunikační nebo datový kanál, popřípadě oba dva najednou. (Parametr: on/off – zapnutá/vypnutá podpora tsl pro oba kanály, ctrl/data – použití tsl na komunikační nebo datový kanál).
  • TLSRSACertificateFile, TLSRSACertificateKeyFile – direktiva pro určení souboru s certifikátem a privátním klíčem serveru.(Použití: VirtualHost, Global)
  • TLSVerifyClient on/off – direktiva, pro dotázání na klientův certifikát. Pokud modul certifikát přijme, vytvoří spojení s klientem, v opačném případě spojení ukončí. Pokud je direktiva nastavená na on pak server ověřuje klientův certifikát, pokud je direktiva nastavená na off toto opatření server neprovádí. Ověřování klientova certifikátu lze vypnout parametrem NoCertRequest v direktivě TLSOptions.

Spuštění Serveru

Server spustíme příkazem:

# ./proftpd

Před samotným spuštěním musíme mít vygenerován příslušný certifikát a privátní klíč. Využijeme k tomu rozhraní Openssl knihovny. Následující příkaz nám vygeneruje certifikát a privátní klíč.

#openssl req -new -x509 -days 365 -nodes -out ftpd-rsa.pem -keyout ftpd-rsa-key.pem

A pokud chcete využít dsa šifrování pak příkaz pro vygenerování certifikátu a klíče bude následující:

#openssl dsaparam -out dsap-tmp 1024 #openssl req -newkey dsa:dsap-tmp -x509 -days 365 -nodes -out ftpd-dsa.pem -keyout ftpd-dsa-key.pem

Soubory můžete uložit kamkoliv. Je potřeba v konfiguraci serveru k příslušným parametrům doplnit správnou cestu k těmto vygenerovaným souborům. Jen stručně k certifikátu. Jedná se o tzv. Self Signed Certificate, certifikát, který jsme si sami podepsali. Pokud by jsme chtěli certifikát podepsaný některou ze společností, která tyto certifikáty vlastní nebo která certifikáty podepisuje, musíme si připravit hodně nadutou peněženku. A proto nám pro vlastní použití bude stačit výše zmíněná varianta vygenerování self signed certifikátu a privátního klíče.

FTP Klienti s podporou šifrované komunikace

Aby jsme mohli požívat zabezpečený protokol, potřebujeme nejen podporu ze strany serveru, ale i ze strany klienta. Vybral jsem tři zástupce, u kterých je příslušná vlastnost podporována.

Ftp-tls a lftp - klienti pro konzolové použití. Jejich kompilace je opravdu jednoduchá a příkazy netřeba nijak zvlášť rozebírat. Pro připojení k serveru stačí napsat příkaz:

#ftp host

kde host je server ke kterému se chcete připojit. Výstup pak vypadá přibližně takto:

Connected to localhost.
220 ProFTPD 1.2.9rc1 Server (ProFTPD Default Installation) [mandrake10]
234 AUTH TLS successful
[Starting SSL/TLS negotiation...]
WARNING: Server's certificate is self signed.
[Subject: C = CZ, ST = x, L = x, O = x, OU = x, CN = x, emailAddress = x]
[Issuer: C = CZ, ST = x, L = x, O = x, OU = x, CN = x, emailAddress = x]
[Cipher: DHE-DSS-AES256-SHA (256 bits)]
Name (localhost:root): user
331 Password required for user.
Password:
230 User user logged in.
Remote system type is UNIX.
Using binary mode to transfer files.

Obdobné je i použití klienta lftp. Potom co se povede klienta zkompilovat stačí se k serveru přihlásit pomocí příkazu:

#lftp localhost -u user_name

kde parametr user_name je jméno uživatele, který má povolen přístup na serveru.

IglooFTP PRO

Vlastní kompilací klienta nebo instalaci některého z binárních balíčků nechám na jindy. Teď se zaměřím jen na nastavení šifrované komunikace. Nastavení najdete v menu Options položka Preferences a záložka Security. Tady je důležitou volbou Protocol, Encrypt a Method pro nastavení Password Encryption.

Protocol - zvolíte typ protokolu podle toho který je podporován serverem. Oba zmíněné servery podporují TSLv1 i SSLv2 a v3.

Encryption – zde nastavíme pro co se má šifrování použít. Možnosti jsou:

  • No Encryption – ftp příkazy i datový přenos nejsou kódovány
  • Commands – ftp příkazy jsou šifrovány, pokud nemohou být šifrovány server spojení ukončí.
  • Commands (if posiible) – stejně jako v případě Commands ale pokud server šifrování příkazů nepodporuje neukončí spojení a bude pokračovat v nešifrovaném režimu.
  • Commands, Transfers – šifrování ftp příkazů i přenosu dat, pokud nemohou být oba kanály šifrovány spojení se serverem se ukončí
  • Commands(if possible), Transfers(if posiible) – Pokud není podporováno šifrování ani jednoho z kanálů (komunikační, datový) server klienta neodpojí a bude dál pokračovat v přihlašovací proceduře v nešifrovaném režimu.
  • Password Encryption Method – MD4, MD5, SHA1, No Encryption, Auto

Auto – tuto volbu doporučuji pokud nevíte jakou metodu zvolit (která je podporována serverem).

Nastavení uložíte kliknutím na tlačítko save. Vyplníte-li pak položky FTP Host, User a Password, měl by se klient bezpečně přihlásit na váš server. Během přihlašovacího procesu se klient dotáže na přijmutí/odmítnutí server certifikátu tak jak je ukázáno na obrázku. Po přijmutí certifikátu už na vás vyskočí jen okno s úspěšným přihlášením k serveru.

Závěrem ....

Doufám, že se problematika mnohým osvědčí i v praxi a pomůže ke zlepšení bezpečnosti. Pokud by chtěl někdo vyzkoušet podporu TLS i u jiných FTP serverů, mohou vyzkoušet např. server wu_ftpd.

Odkazy:

Verze pro tisk

pridej.cz

 

DISKUZE

Vsftp 29.3.2005 10:44 o.k.




Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

28.11.2018 23:56 /František Kučera
Prosincový sraz spolku OpenAlt se koná ve středu 5.12.2018 od 16:00 na adrese Zikova 1903/4, Praha 6. Tentokrát navštívíme organizaci CESNET. Na programu jsou dvě přednášky: Distribuované úložiště Ceph (Michal Strnad) a Plně šifrovaný disk na moderním systému (Ondřej Caletka). Následně se přesuneme do některé z nedalekých restaurací, kde budeme pokračovat v diskusi.
Komentářů: 1

12.11.2018 21:28 /Redakce Linuxsoft.cz
22. listopadu 2018 se koná v Praze na Karlově náměstí již pátý ročník konference s tématem Datová centra pro business, která nabídne odpovědi na aktuální a často řešené otázky: Jaké jsou aktuální trendy v oblasti datových center a jak je optimálně využít pro vlastní prospěch? Jak si zajistit odpovídající služby datových center? Podle jakých kritérií vybírat dodavatele služeb? Jak volit vhodné součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně datové centrum spravovat? Jak co nejlépe eliminovat možná rizika? apod. Příznivci LinuxSoftu mohou při registraci uplatnit kód LIN350, který jim přinese zvýhodněné vstupné s 50% slevou.
Přidat komentář

6.11.2018 2:04 /František Kučera
Říjnový pražský sraz spolku OpenAlt se koná v listopadu – již tento čtvrtek – 8. 11. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma umění a technologie, IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář

4.10.2018 21:30 /Ondřej Čečák
LinuxDays 2018 již tento víkend, registrace je otevřená.
Přidat komentář

18.9.2018 23:30 /František Kučera
Zářijový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 20. 9. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář

9.9.2018 14:15 /Redakce Linuxsoft.cz
20.9.2018 proběhne v pražském Kongresovém centru Vavruška konference Mobilní řešení pro business. Návštěvníci si vyslechnou mimo jiné přednášky na témata: Nejdůležitější aktuální trendy v oblasti mobilních technologií, správa a zabezpečení mobilních zařízení ve firmách, jak mobilně přistupovat k informačnímu systému firmy, kdy se vyplatí používat odolná mobilní zařízení nebo jak zabezpečit mobilní komunikaci.
Přidat komentář

12.8.2018 16:58 /František Kučera
Srpnový pražský sraz spolku OpenAlt se koná ve čtvrtek – 16. 8. 2018 od 19:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát jsou tématem srazu databáze prezentaci svého projektu si pro nás připravil Standa Dzik. Dále bude prostor, abychom probrali nápady na využití IoT a sítě The Things Network, případně další témata.
Přidat komentář

16.7.2018 1:05 /František Kučera
Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

31.7.2023 14:13 / Linda Graham
iPhone Services

30.11.2022 9:32 / Kyle McDermott
Hosting download unavailable

13.12.2018 10:57 / Jan Mareš
Re: zavináč

2.12.2018 23:56 / František Kučera
Sraz

5.10.2018 17:12 / Jakub Kuljovsky
Re: Jaký kurz a software by jste doporučili pro začínajcího kodéra?

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2024) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze