Поиск по сайту:

Как настроить ProFTPd для использования SFTP вместо FTP


Статус: устарело

В этой статье рассматривается версия Ubuntu, которая больше не поддерживается. Если вы в настоящее время используете сервер под управлением Ubuntu 12.04, мы настоятельно рекомендуем обновить или перейти на поддерживаемую версию Ubuntu:

  • Обновите Ubuntu до версии 14.04.
  • Обновление Ubuntu 14.04 до Ubuntu 16.04
  • Перенесите данные сервера в поддерживаемую версию.

Причина:

Смотрите вместо этого:

Введение

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

ProFTPd — это популярный FTP-сервер, который можно настроить для использования протокола SFTP, безопасной альтернативы FTP, вместо FTP. Эта статья покажет вам, как настроить ProFTPd для использования этого протокола, чтобы избежать небезопасности FTP.

Мы покажем вам, как настроить это на Ubuntu 12.04 VPS, но большинство дистрибутивов должны работать аналогичным образом.

Установить ProFTPd

Программное обеспечение ProFTPd находится в репозиториях Ubuntu по умолчанию. Мы можем установить его, набрав:

sudo apt-get update && sudo apt-get install proftpd

Выберите «автономный» при появлении запроса во время установки.

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

sudo nano /etc/proftpd/proftpd.conf

Измените параметр ServerName, чтобы он соответствовал вашему доменному имени или IP-адресу.

ServerName      "yourDomainOrIPAddress"

Удалите # перед параметром DefaultRoot, чтобы раскомментировать его:

DefaultRoot     ~

Сохраните и закройте файл.

Настройте доступ по SFTP с помощью ProFTPd

Теперь нам нужно настроить службу для использования SFTP.

Файл по умолчанию ищет дополнительную конфигурацию в подкаталоге conf.d. Мы создадим там файл, чтобы включить использование SFTP:

sudo nano /etc/proftpd/conf.d/sftp.conf

ProFTPd может принимать конфигурацию с тем же форматированием, что и Apache. Если вы знакомы с Apache, это должно показаться вам знакомым. Если вы не знакомы, это легко понять.

Скопируйте и вставьте в файл следующее:

<IfModule mod_sftp.c>

        SFTPEngine on
        Port 2222
        SFTPLog /var/log/proftpd/sftp.log

        # Configure both the RSA and DSA host keys, using the same host key
        # files that OpenSSH uses.
        SFTPHostKey /etc/ssh/ssh_host_rsa_key
        SFTPHostKey /etc/ssh/ssh_host_dsa_key

        SFTPAuthMethods publickey

        SFTPAuthorizedUserKeys file:/etc/proftpd/authorized_keys/%u

        # Enable compression
        SFTPCompression delayed

</IfModule>

Деконструкция конфигурации SFTP

Давайте разобьем файл на составные части, чтобы лучше понять его.

Весь раздел заключен в теги IfModule, чтобы убедиться, что параметры конфигурации применяются только в том случае, если модуль SFTP доступен (а он есть).

  • SFTPEngine on: Включает возможность SFTP для сервера.
  • Порт 2222: указывает порт, на который будут приниматься SFTP-соединения. Поскольку SSH уже ищет соединения на порту 22, нам нужен другой порт.
  • SFTPLog: настраивает расположение файла журнала, который будет создан.
  • SFTPHostKey: эти две строки указывают на ключи хоста SSH. Так сервер идентифицирует себя для клиентов. По большей части линии, которые мы использовали, должны быть правильными.
  • SFTPauthMethods: эта строка настраивает сервер так, чтобы он только принимал соединения с ключами SSH.
  • SFTPAuthorizedUserKeys: этот параметр указывает расположение ключей SFTP, которые можно использовать для аутентификации кого-либо. Часть %u заменит имя аутентифицирующего пользователя.
  • SFTPCompression delayed: устанавливает механизм сжатия, который будет использоваться во время передачи файлов.

Настройка аутентификации на основе ключа

ProFTPd может использовать ключи SSH для аутентификации пользователей, но ключи должны быть преобразованы для использования формата RFC4716. К счастью, пакет SSH имеет возможность конвертировать эти файлы изначально.

Начните с создания каталога для размещения этих файлов:

sudo mkdir /etc/proftpd/authorized_keys

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

<пред>

Если у вас есть несколько пользователей и вам нужно разделить их учетные данные для входа в систему, вам придется использовать фактический открытый ключ вместо файла author_keys, например:

<пред>

Вы можете добавить столько ключей, сколько захотите.

Когда вы закончите, перезапустите сервер ProFTPd:

sudo service proftpd restart

Отключить доступ SFTP на порту SSH

Теперь, когда мы включили SFTP через ProFTPd, мы можем отключить его на обычном порту SSH. Это позволит нам настроить доступ пользователей и заблокировать то, что каждый пользователь может видеть и манипулировать через ProFTPd, не беспокоясь о том, что люди смогут покинуть свои домашние каталоги.

Откройте файл конфигурации SSHD:

sudo nano /etc/ssh/sshd_config

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

Subsystem sftp /usr/lib/openssh/sftp-server

Поставьте решетку (#) перед ним, чтобы закомментировать строку:

# Subsystem sftp /usr/lib/openssh/sftp-server

Сохраните и закройте файл.

Теперь перезапустите сервер SSH, чтобы изменения вступили в силу:

sudo service ssh restart

Соединение с клиентом

Существует множество FTP-клиентов, которые мы можем использовать для подключения к нашему серверу. Хорошие также реализуют возможности SFTP. Мы покажем, как подключиться через FileZilla, который доступен на всех основных платформах.

Откройте настройки FileZilla. Найдите раздел «SFTP» в меню слева.

Нажмите «Добавить ключевой файл» и перейдите к местоположению вашего закрытого ключа. Обычно он находится в ~/.ssh/id_rsa. Возможно, вы получите сообщение о том, что FileZilla преобразует его. в поддерживаемый формат.

Нажмите «ОК», чтобы выйти из настроек.

В главном интерфейсе введите sftp://, а затем имя домена или IP-адрес вашего сервера в поле «Хост». Поместите свое имя пользователя в поле «Имя пользователя» и заполните порт, который вы выбрали для поля «Порт»:

Нажмите «Быстрое подключение», и FileZilla автоматически подключится с помощью ваших ключей SSH.

Заключение

Теперь ваш сервер должен быть настроен на прием SFTP-соединений, управляемых ProFTPd. Вы можете настроить программное обеспечение для управления пользователями и запретными областями. В общем, FTP следует избегать любой ценой из-за отсутствия надлежащей безопасности.

Джастин Эллингвуд