Get Rewarded! We will reward you with up to €50 credit on your account for every tutorial that you write and we publish!

Установка и настройка ProFTPD

profile picture
Author
Hetzner Online
Published
2019-03-08
Time to read
4 minutes reading time

Введение

ProFTPD — это FTP-сервер для Linux, который позволяет пользователям передавать данные на свой сервер и с него через FTP-клиент (загрузка/выгрузка файлов). Здесь следует еще раз отметить, что FTP по умолчанию работает полностью незашифрованным и все пароли и т.д. передаются в виде открытого текста, что делает протокол FTP небезопасным протоколом.

Все действия, описанные в данном руководстве, были выполнены на Debian Squeeze. Помимо общей настройки и обеспечения безопасности программного обеспечения, также описано использование явного шифрования.

Шаг 1 — Установка и настройка

Первоначальная установка ProFTPD производится при помощи установки пакета proftpd при помощи пакетного менеджера:

apt-get install proftpd

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

nano /etc/proftpd/proftpd.conf

Мы ищем следующие значения и должны отредактировать их соответствующим образом или добавить их, если их нет:

DefaultRoot ~
UseReverseDNS off
IdentLookups off
ServerName "123.123.123.123 FTP Server"
ServerType standalone
DenyFilter \*.*/
RequireValidShell on

В случае, если вы будете добавлять TLS (шифрование на основе сертификата), то в конец файла надо дополнительно добавить следующее:

Include /etc/proftpd/tls.conf

Краткое объяснение некоторых из вышеперечисленных параметров:

  • DefaultRoot: гарантирует, что все пользователи изолированы в своем домашнем каталоге и не могут свободно перемещаться в структуре папок на сервере.
  • ServerName "xxx": имя сервера, отображаемое вместе с кодом 220 при подключении FTP-клиента.
  • ServerType standalone: сервер работает не с inetd, а как автономный сервер.
  • DenyFilter используется для устранения проблемы безопасности.
  • RequireValidShell on: для входа пользователя через FTP у него должна быть действительная оболочка, то есть интерпретатор команд пользовать, указанный в /etc/passwd должен быть также указан и в /etc/shells.

Если это еще не было сделано, сделайте /bin/false действительной оболочной. Этот шаг очень прост. Откройте файл /etc/shells и просто добавьте в конец файла следующую строку:

/bin/false

Если вы используете nano: нажмите сочетание клавиш Ctrl+X и подтвердите сохранение с помощью Y. Оболочка /bin/false теперь известна системе. Прежде чем мы сделаем что-нибудь еще, нам нужно перезапустить ProFTPD:

/etc/init.d/proftpd restart

Шаг 2 — Создание пользователя для FTP

Теперь создаем нового пользователя. В этом примере мы предполагаем, что это пользователь upload, домашний каталог которого находится в /home/upload.

adduser --home /home/upload --shell /bin/false upload

Затем появится запрос пароля — введите желаемый пароль. После этого мы можем протестировать соединение с сервером (например, при помощи FTP-клиента с открытым исходным кодом "FileZilla").

В журнале клиента должна появиться запись, похожая на эту:

220 ProFTPD 1.3.3a Server (Your server name) ::ffff:xx.xx.xx.xx]

Это означает, что сервер ProFTPD готов к работе.

Шаг 3 — явное шифрование с помощью TLS (необязательно)

Как уже упоминалось в разделе о настройке, для TLS шифрования должна быть include-ссылка на файл /etc/proftpd/tls.conf:

Include /etc/proftpd/tls.conf

Создадим соответствующий файл, если это еще не было сделано, и отредактируем его.

touch /etc/proftpd/tls.conf && nano /etc/proftpd/tls.conf

В файл мы вводим следующее содержимое:

<IfModule mod_tls.c>
TLSEngine                  on
TLSLog                     /var/log/proftpd/tls.log
TLSProtocol                SSLv23
TLSOptions                 NoCertRequest
TLSRSACertificateFile      /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile   /etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient            off
TLSRequired                on
</IfModule>

Теперь надо создать сертификат для ProFTPD. Если у вас есть свой (например, заказанный в Hetzner), укажите в конфигурационном файле путь к нему. Если у вас нет сертификата, который обычно очень дорог и подписан "доверенным" сайтом, вы должны создать его самостоятельно. Для этого в Debian необходимо установить пакет openssl.

apt-get install openssl

Используйте следующие команды для создания сертификата в указанной выше директории:

mkdir /etc/proftpd/ssl
openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem

Команда OpenSSL запросит некоторую информацию:

Country Name (2 letter code) [AU]: DE
State or Province Name (full name) [Some-State]: Bayern
Locality Name (eg, city) []: Munich
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Company XYZ
Organizational Unit Name (eg, section) []: IT Department
Common Name (eg, YOUR name) []: server.host.com
Email Address []: root@host.com

Важно на запрос Common Name ввести. Если у вас нет домена, введите имя хоста, назначенное Hetzner (параллельно IP). Например: static.xx-xx-xx-xx.your-server.de.

Перезапустите ProFTPD и настройте FileZilla выбрав Требовать FTP через TLS (явный). Конфигурация TLSRequired on означает, что любые попытки подключения через обычный FTP-порт 21 автоматически отклоняются.

Вывод

Теперь у вас есть установленный PROFTPD, настроенный на работу с защищенными соединениями.

Want to contribute?

Get Rewarded: Get up to €50 in credit! Be a part of the community and contribute. Do it for the money. Do it for the bragging rights. And do it to teach others!

Report Issue

Discover our

Dedicated Servers

Configure your dream server. Top performance with an excellent connection at an unbeatable price!

Want to contribute?

Get Rewarded: Get up to €50 credit on your account for every tutorial you write and we publish!

Find out more