|
|
|
|
|
VSFTPDFTP server s podporou SSLV dnešní době je samozřejmostí, že většina aplikací používá šifrovanou komunikaci a tak není žádným překvapením, že i vsftpd podporuje protokol SSL respektive TLS, který je dnes upřednostňován. V CentOSu máme ušetřenou práci tím, že RPM balíček v něm obsažený je již kompilován s podporou SSL. Pro soukromé účely obvykle stačí použít sám sebou ("self signed") podepsaný certifikát, případně certifikát podepsaný vlastní certifikační autoritou. Pro komerční použití je vhodné mít certifikát podepsaný nějakou veřejnou (důvěryhodnou) certifikační autoritou. Self signed certifikátSám sebou podepsaný certifikát (s platností na 10 let) vyrobíme následujícím příkazem: openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \ -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
V souboru Je dobré nastavit bezpečná práva na tomto souboru s certifikátem, tedy: chmod 600 /etc/vsftpd/vsftpd.pem
Sám sebou podepsaný certifikát není úplně plnohodnotný a k tomu se staví i
některé klientské aplikace. Například linuxový klient gftp se odmítne se
serverem vsftpd spojit dokud v jeho konfiguraci (gftp) nevypneme
defaultní volbu "Verify SSL Peer". Toto nám však pomůže jen na přihlášení
přes šifrovaný protokol, pokud bychom chtěli i data posílat šifrovaně
(direktiva Invalid response '5' received from server. Pro podporu SSL nebo lépe TLS ve vsftpd nám stačí přidat do konfiguračního souboru tyto direktivy: ssl_enable=YES ssl_tlsv1=YES rsa_cert_file=/etc/vsftpd/vsftpd.pem force_local_logins_ssl=YES force_local_data_ssl=NO
Volba Certifikát podepsaný vlastní certifikační autoritou
Nejprve si vytvoříme vlastní certifikační autoritu. V CentOSu budeme mít práci
zase trochu ulehčenou díky tomu, že součástí RPM balíčku openssl jsou i skripty
připravené na generování certifikátů. Tyto skripty se nacházeji v adresáři
Ještě před samotným generováním certifikační autority si můžete upravit
konfigurační soubor countryName_default = CZ stateOrProvinceName_default = Stredocesky kraj localityName_default = Prague 0.organizationName_default = Tachec organizationalUnitName_default = admin Vlastní certifikační autoritu vytvoříme následujícím příkazem: cd /usr/share/ssl/misc ./CA -newca
Zadáme heslo a vyplníme všechna potřebná pole. Pole
Druhým krokem bude vytvořit žádost o podepsání certifikátu - certifikační
žádost (certificate signing request). Pokud chcete mít certifikát podepsaný
nějakou veřejnou certifikační autoritou, tak můžete tuto vygenerovanou
žádost dané autoritě předat spolu s vašimi údaji, které si ověří a za poplatek
vám vytvoří podepsaný certifikát. Nám postačí, že si certifikační žádost
podepíšeme naší výše vytvořenou certifikační autoritou. Ještě před
vygenerováním certifikační žádosti je dobré udělat pár úprav ve skriptu
$REQ -new -keyout newreq.pem -out newreq.pem $DAYS na $REQ -new -nodes -keyout newreq.pem -out newreq.pem $DAYS Certifikační žádost pak můžeme vytvořit následujícím způsobem: ./CA -newreq
Pozor, zde již musíme vyplnit pole Posledním krokem je podepsání certifikační žádosti naší certifikační autoritou, což se provede následovně: ./CA -sign
Budete vyzvání k zadání hesla, což je heslo, které jsme nastavovali při
generování certifikační autority a po potvrzení údajů máme hotovo. Certifikát
nalezneme v souboru Informace v certifikátu si můžeme ověřit tímto příkazem: openssl x509 -in certs/server.crt -noout -text A to zda je certifkát validní pro autentizaci serveru ověříme jedním z níže uvedených příkazů: ./CA -verify openssl verify -purpose sslserver -CAfile demoCA/cacert.pem newcert.pem VSFTPD vyžaduje, aby byl soukromý klíč a certifikát v jednom souboru, takže budeme muset udělat ještě drobné úpravy. Soukromý klíč máme v certifikační žádosti a můžeme si jej dát do samostatného souboru a to takto: openssl rsa -in newreq.pem -out server.key Následně spojíme tento soukromý klíč s certifikátem: cat newcert.pem server.key > vsftpd-cert-key.pem
A zbytek už je jednoduchý, stačí certifikát s klíčem nakopírovat například
do adresáře chmod 600 /etc/vsftpd/vsftpd-cert-key.pem Nezapomeňte také po sobě uklidit v adresáři, kde jste si generovali dané věci a nastavit práva tak, aby dané soubory nemohl nikdo zneužít. Samotná konfigurace VSFTPD je stejná jako při self signed certifikátu, tedy: ssl_enable=YES ssl_tlsv1=YES rsa_cert_file=/etc/vsftpd/vsftpd-cert-key.pem force_local_logins_ssl=YES force_local_data_ssl=YES
Volby
Naposledy změněno: 11.2.2007 10:40
|
|
|
© 2006-2008 o.k.
|
|