avatar Ubuntu Настрока 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 off
ServerIdent 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 сервера

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

11 комментариев

avatar
Спасибо за мануал.
Возникла вот какая проблема:
Сначала настроил vsFTPd, как описано здесь
После этого сразу же настроил ProFTPd по данному мануалу, возможно нужно было выбрать что-то одно?

Проблема в том, что при попытке соединиться через SSL/TLS в Тотале выдает «530 Login incorrect». В файлзилле у меня в списке вообще нет варианта выбора FTPES, только FTP и SFTP, через которые тоже не коннектится.

Может быть в кто-то в курсе, в чем дело?
avatar
Может старая версия filezilla?!
avatar
3.5.3. Но не пускает и через ТС.
Подозреваю, что-то не так настроил с правами юзера или из-за того, что поставил и proftpd и vsftpd. Или они не конфликтуют?
avatar
еще как конфликтуют, они висят на одном порту, соответственно та служба которая запустилась первой работает, вторая отваливается с ошибкой при запуске
avatar
От лыха годына ( вот что значит, следовать мануалам без знания основ.
Подскажите, пожалуйста, команду для деактивации/удаления одного из демонов.
avatar
apt-get purge vsftpd
avatar
Я тоже поначалу в FileZilla не туда полез и получил в ответ «Network error: Connection refused».
Настраивайте так (v.3.6.0.2):
Протокол: FTP — File Transfer Protocol
Шифрование: Require explicit FTP over TLS
Тип входа: Нормальный

Для TotalCommander тоже все просто: закидываем ему в его корневой каталог 2 библиотечки для работы с OpenSSL (при установке чистого TC «из коробки» их там нет) отсюда.
В диалоговом окне нового подключения вбиваем только IP и ставим галочку на «SSL/TLS», этого будет достаточно.
avatar
Скажите, можно сделать так, чтоб 2 анонимных пользователей работали на разных айпи и смотрели в разные папки?
avatar
никаких проблем, просто включите анонимный доступ к FTP
avatar
я имею введу 2 анонимных
avatar
без разницы, все будет работать.
Есть что добавить? Регистрируйся и оставляй комментарии!