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

Get €20/$20 free credit!

Valid until: 31 December 2026 Valid for: 3 months and only for new customers
Configure now
Want to contribute?

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

Find out more