четверг, 22 марта 2012 г.

Настрока ProFTPd для использования TLS в Ubuntu / Debian

Настройка ProFTPd довольно проста, сам сервер готов к работе сразу после установки, но если задача сделать более тонкую настройку, то придется немного покопаться.
Основная проблема FTP серверов в том, что передача данных, между ним и клиентом происходит в открытом виде, по этому злоумышленнику не составляет труда прослушав сеть, получить ваш логин и пароль доступа, а дальше он все сделает сам.
Для устранения этого, досадного, недостатка используется TLS-это позволяет осуществлять передачу данных в зашифрованном виде, что повышает безопасность.


Данное руководство не защитит ваши данные для входа от кражи, в случае если ваш основной рабочий компьютер заражен вирусами, а пароль вы сохранили в вашем FTP клиенте, так что- прежде чем вещать замок на форточку, постарайтесь обезопасить дверь.
В этой статье я постараюсь рассказать о том, как это настроить и использовать в повседневной работе.

Установка ProFTPd проста до безобразия, также вместе с ним установим openssl
sudo apt-get install proftpd openssl


Режим запуска выбираем standalone

Редактируем основной конфигурационный файл proftpd.conf
sudo nano/etc/proftpd/proftpd.conf


Для активации функции защищенной передачи данных добавим в него следующие строки

DefaultRoot ~
IdentLookups offServerIdent on "Secure FTP Server."


Далее нам необходимо сгенерировать SSL сертификат для нормальной работы TLS, который будем хранить в директории proftpd для лучшего понимания создадим директорию ssl где все и будет находиться.

sudo su

mkdir /etc/proftpd/ssl


Генерируем новый сертификат на 1 год, хотя, срок его действия, можно выбрать по своему смотрению

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]: Название страны State or Province Name (full name) [Some-State]: <-- Указываем область проживания
Locality Name (eg, city) []: <-- Название города
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Название организации (можно взять отбалды)
Organizational Unit Name (eg, section) []: <-- Название отдела в этой организации ( например: Отдел по борьбе с оборотнями в погонах ;)-только кратко  )
Common Name (eg, YOUR name) []: <-- доменное имя вашего сервера.
Email Address []: <-- адрес электронной почты


Все ваш самоподписанный сертификат готов и находится по адресу /etc/proftpd/ssl

Теперь нам необходимо включить возможность передачи данных по защищенному соединению.

nano /etc/proftpd/proftpd.conf


В конфигурационном файле необходимо найти строку Include /etc/proftpd/tls.conf по умолчанию она закомментирована.

Далее нам необходимо отредактировать файл /etc/proftpd/tls.conf 

nano /etc/proftpd/tls.conf


Остановимся на нем немного подробнее:
В этом файле необходимо отредактировать секцию <IfModule mod_tls.c> которая отвечает за функционал передачи данных, а также указывает на то, где находятся необходимые ключи и сертификаты.
В принципе все что там написано можно удалить и вписать все занова, но лучше, все что не нужно и дублирует наши записи закомментировать, строку ниже добавить в конец конфига.

<IfModule mod_tls.c>
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</IfModule>


Все готово!
Теперь необходимо перезапустить FTP сервер

/etc/init.d/proftpd restart


Для подключения можно использовать бесплатный FTP клиент Filezilla
настраиваем подключение

Настрока FileZilla client

Указываем IP адрес сервера или доменное имя логин и пароль для входа, а вот в типе сервера указываем: FTPES-FTP через явный TLS/SSL
Имейте в виду что остальные способы передачи данных будут отключены, а именно, передача в не зашифрованном виде- по этому если ваш FTP клиент не поддерживает использование TLS попасть на сервер будет не возможно!

После этого нам укажут на то, что у нас неизвестный сертификат -нормально, т.к. он у нас самоподписанный, а наш центр сертификации не входит в число доверенных, но на работоспособность это не повлияет.

Проверка сертификата FTP сервера

1 комментарий: