Как установить Proftpd с TLS на Ubuntu 15.04
На этой странице
- Предпосылки
- Установите Proftpd и OpenSSL.
- Настройка Proftpd
- Добавить пользователя FTP
- Настройка TLS в Proftpd
- Тестирование
FTP (протокол передачи файлов), вероятно, самый популярный способ загрузки файлов на сервер. ProFTPD — популярный и легко настраиваемый FTP-сервер для систем Linux, поддерживающий шифрование SSL/TLS.
FTP является небезопасным протоколом, поскольку все пароли и все данные передаются в открытом виде (как обычный текст). Используя TLS, вся связь может быть зашифрована, что делает FTP безопасным протоколом для передачи файлов. В этой статье описывается, как настроить proftpd с TLS на сервере Ubuntu 15.04.
Предпосылки
- Сервер Ubuntu 15.04, 64-разрядная версия
- привилегии sudo/root
Что мы будем делать в этом уроке:
- Установите Proftpd и OpenSSL.
- Настройка Proftpd
- Настроить пользователя
- Настройка TLS с помощью proftpd
- Тестирование
Установите 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-сертификат, просто нажмите «ОК».