Bildiğiniz gibi bütün şifreler ve bütün veriler clear text iletildiği için FTP çok güvensiz bir protokoldür.Ancak TLS kullanılarak bütün haberleşme şifreli hale getirilebilir.Şimdi bunun nasıl yapılacağına bir bakalım.
Başlamadan önce bir ön bilgi olarak
sunucu ismi(hostname)=sunucu1.example.com
IP adresi=192.168.4.10 olduğunu varsayalım.
1. Öncelikle kuruluma başlamak için root yetkisi gerekli
sudo su
2. ProFTPd ve OpenSSL kurulumu
TLS için OpenSSL gereklidir.ProFTPd ve OpenSSL kurulumunu aşağdaki komutla yapıyoruz.
aptitude install proftpd openssl
ProFTPd yi hangi modda çalışacağına dair soruya
Run proftpd: <-- standalone
Güvenlik sebebiyle ProFTPd ayar dosyası olan /etc/proftpd/proftpd.conf dosyasında bazı değişiklikler yapıyoruz.
vi /etc/proftpd/proftpd.conf
[...] DefaultRoot ~ IdentLookups off ServerIdent on "FTP Server ready." [...]
3. TLS için SSL sertifika oluşturulması
mkdir /etc/proftpd/ssl
Aşağıdaki şekilde SSL sertifikası üretebiliriz.
openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem
Country Name (2 letter code) [AU]: <-- Enter your Country Name (e.g., "TR").
State or Province Name (full name) [Some-State]: <-- Enter your State or Province Name.
Locality Name (eg, city) []: <-- Enter your City.
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Enter your Organization Name (e.g., the name of your company).
Organizational Unit Name (eg, section) []: <-- Enter your Organizational Unit Name (e.g. "IT Department").
Common Name (eg, YOUR name) []: <-- Enter the Fully Qualified Domain Name of the system (e.g. "sunucu1.example.com").
Email Address []: <-- Enter your Email Address.
State or Province Name (full name) [Some-State]: <-- Enter your State or Province Name.
Locality Name (eg, city) []: <-- Enter your City.
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Enter your Organization Name (e.g., the name of your company).
Organizational Unit Name (eg, section) []: <-- Enter your Organizational Unit Name (e.g. "IT Department").
Common Name (eg, YOUR name) []: <-- Enter the Fully Qualified Domain Name of the system (e.g. "sunucu1.example.com").
Email Address []: <-- Enter your Email Address.
Dikkat: Common Name için mutlaka hostname yazılmalı.(sunucu1 değil sunucu1.example.com)
4.ProFTPd için TLS'nin aktif edilmesi
ProFTP de TLS'nin aktif edilmesi için proftpd.conf içerisinde tls.conf Include edilir.
vi /etc/proftpd/proftpd.conf
[...] # # This is used for FTPS connections # Include /etc/proftpd/tls.conf [...]
ve daha sonra
TLSEngine on TLSLog /var/log/proftpd/tls.log TLSProtocol SSLv23 TLSOptions NoCertRequest AllowClientRenegotiations TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem TLSVerifyClient off TLSRequired on
Eğer TLSRequired on ise sadece TLS bağlantılarına izin veriyorsunuz demektir.
TLSRequired off ise TLS ve non-TLS bağlatılarına izin verilebilir.