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

Как установить Proftpd с TLS на Ubuntu 15.04


На этой странице

  1. Предпосылки
  2. Установите Proftpd и OpenSSL.
  3. Настройка Proftpd
  4. Добавить пользователя FTP
  5. Настройка TLS в Proftpd
  6. Тестирование

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

FTP является небезопасным протоколом, поскольку все пароли и все данные передаются в открытом виде (как обычный текст). Используя TLS, вся связь может быть зашифрована, что делает FTP безопасным протоколом для передачи файлов. В этой статье описывается, как настроить proftpd с TLS на сервере Ubuntu 15.04.

Предпосылки

  1. Сервер Ubuntu 15.04, 64-разрядная версия
  2. привилегии sudo/root

Что мы будем делать в этом уроке:

  1. Установите Proftpd и OpenSSL.
  2. Настройка Proftpd
  3. Настроить пользователя
  4. Настройка TLS с помощью proftpd
  5. Тестирование

Установите Proftpd и OpenSSL

Proftpd и OpenSSL доступны в репозитории Ubuntu и могут быть установлены с помощью команды apt. Как обычно с командами установки, мы запускаем команду apt через sudo, чтобы запустить ее с привилегиями root:

sudo apt-get install -y proftpd openssl

Когда начнется установка, вам будет предложено запустить Proftpd как службу inetd или как отдельную службу. Выберите автономный вариант здесь, а затем ОК.

Настроить Proftpd

После установки Proftpd вам придется изменить некоторые файлы конфигурации. Файл конфигурации Proftpd находится в каталоге /etc/proftpd/. Я отредактирую файл proftpd.conf с помощью редактора nano.

cd /etc/proftpd/
nano proftpd.conf

В строке ServerName измените имя на свое имя хоста или домен:

ServerName                      "myhostname"

Раскомментируйте DefaultRoot:

# Use this to jail all users in their homes
DefaultRoot   		~

и перезапустите Proftpd:

systemctl restart proftpd

Добавить пользователя FTP

Существует два распространенных способа доступа к FTP-серверу:

1. Анонимный FTP, FTP-сервер предоставляет доступ любому без необходимости иметь учетную запись пользователя и пароль.
2. Доступ с помощью имени пользователя и пароля только для тех пользователей, у которых есть учетная запись пользователя и пароль, которые могут получить доступ к FTP-серверу.

Я настрою вариант 2 здесь. Анонимный FTP был популярен в начале эры Интернета, но сегодня анонимные FTP-серверы используются настолько часто, что этот вариант можно использовать только в закрытых средах, таких как домашняя или корпоративная сеть.

Прежде чем создавать пользователя для Proftpd, добавьте /bin/false в файл /etc/shells.

echo "/bin/false" >> /etc/shells

и теперь вы создадите пользователя с домашним каталогом, к которому он получит доступ по FTP. Я отключу доступ к оболочке для этого пользователя, назначив ему оболочку \/bin/false\, чтобы гарантировать, что он не сможет войти в систему по SSH. Мое имя пользователя называется \yuuki\, пожалуйста, замените yuuki на свое имя пользователя в следующей команде.

adduser --home /home/yuuki --shell /bin/false yuuki

Приведенная выше команда создаст нового пользователя с именем yuuki с домашним каталогом /home/yuuki/ и без доступа к оболочке /bin/false.

А теперь настройте Proftpd, чтобы разрешить пользователю yuuki доступ к FTP-серверу.

cd /etc/proftpd/
nano proftpd.conf

добавьте эту конфигурацию, чтобы разрешить пользователю yuuki входить в систему и загружать/загружать файл в/из своего домашнего каталога /home/yuuki :

<Directory /home/yuuki>
Umask 022 022
AllowOverwrite off
     <Limit LOGIN>
        AllowUser yuuki
        DenyALL
     </Limit>
     <Limit ALL>
        Order Allow,Deny
        AllowUser yuuki
        Deny ALL
    </Limit>
    <Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD>
    AllowUser yuuki
    Deny ALL
    </Limit>
</Directory>

а затем перезапустите Proftpd.

systemctl restart proftpd

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

Настроить TLS в Proftpd

Чтобы использовать TLS, вам необходимо создать сертификат SSL. Я сгенерирую сертификат SSL с помощью команды OpenSSL:

openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt  -nodes -days 365

Команда создаст файл сертификата proftpd.crt в каталоге /etc/ssl/certs/ и файл ключа сертификата proftpd.key в каталоге /etc/ssl/private/.

Измените права доступа к файлам сертификатов на 600, чтобы запретить доступ другим пользователям:

chmod 600 /etc/ssl/certs/proftpd.crt
chmod 600 /etc/ssl/private/proftpd.key

Теперь вернитесь в каталог Proftpd и настройте Proftpd на использование сгенерированного сертификата SSL.

cd /etc/proftpd/
nano proftpd.conf

Раскомментируйте строку tls:

Include /etc/proftpd/tls.conf

Сохраните его и отредактируйте файл tls:

nano tls.conf

Раскомментируйте все эти строки:

TLSEngine                               on
TLSLog                                  /var/log/proftpd/tls.log
TLSProtocol                             SSLv23

TLSRSACertificateFile                   /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile                /etc/ssl/private/proftpd.key

TLSOptions                              NoCertRequest

TLSVerifyClient                         off

TLSRequired                             on

Сохранить и выйти. Последний шаг — перезапустить сервер Proftpd:

systemctl restart proftpd

Тестирование

Чтобы проверить конфигурацию, попробуйте подключиться к FTP-серверу с помощью FTP-клиента. Здесь я использую FileZilla. Заполните IP-адрес сервера, имя пользователя, пароль и порт:

Server IP : 192.168.1.108
username : yuuki
Password ******
Port : 21

а затем нажмите Быстрое подключение. Вам будет предложено подтвердить SSL-сертификат, просто нажмите «ОК».