FTP сервер · 3 min read · Dec 16, 2025

Как установить Pure-FTPd с TLS и виртуальными пользователями на OpenSUSE Leap 42.1

Pure-FTPd — это бесплатный и легковесный FTP-сервер, основанный на Troll-FTPd, разработка которого началась в 2001 году, и он работает на многих Unix-подобных ОС, включая Linux, *BSD, Solaris и HP-UX. Pure-FTPd имеет множество функций, таких как виртуальные домены, chroot домашний каталог, виртуальные пользователи, поддержка TLS/SSL, виртуальная квота и многое другое.

В этом руководстве я покажу вам, как установить и настроить pure-ftpd на OpenSUSE Leap 42.1. Я покажу вам, как настроить pure-ftpd с TLS/SSL, а затем настроить виртуальных пользователей.

Предварительные требования

  • OpenSUSE Leap 42.1
  • Привилегии root
  • Знание OpenSUSE, Zypper

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

SuSEfirewall2 — это скрипт для генерации конфигурации брандмауэра в файле ‘/etc/sysconfig/SuSEfirewall2’. Мы установим SuSEfirewall2, а затем откроем порты для SSH и FTP-сервиса.

Установите SuSEfirewall2 с помощью zypper:

zypper in SuSEfirewall2

Далее отредактируйте конфигурационный файл ‘/etc/sysconfig/SuSEfirewall2’ с помощью vim:

vim /etc/sysconfig/SuSEfirewall2

Добавьте новые службы ssh и FTP в строку 253:

FW_SERVICES_EXT_TCP="ssh ftp"

Сохраните и выйдите.

Теперь запустите SuSEfirewall2 с помощью команды systemctl:

systemctl start SuSEfirewall2

Шаг 2 - Установка и настройка Pure-FTPd

На этом шаге мы установим pure-ftpd с OpenSSL для конфигурации TLS/SSL и настроим пользователя и группу pure-ftpd.

Установите приложения с помощью zypper, как показано ниже:

zypper in pure-ftpd openssl

Теперь добавьте новую группу ‘ftpgroup‘ и нового пользователя для главного ‘FTP пользователя’, названного ‘ftpuser‘, в группу.

groupadd ftpgroup  
useradd -g ftpgroup -d /dev/null -s /etc ftpuser

Перейдите в директорию pure-ftpd и отредактируйте конфигурационный файл ‘pure-ftpd.conf’ с помощью редактора vim:

cd /etc/pure-ftpd/  
vim pure-ftpd.conf

Измените значение в строке 81 на ‘yes’, чтобы отключить анонимного пользователя.

NoAnonymous                 yes

Уберите комментарий в строке 131, чтобы настроить бэкенд. Pure-ftpd поддерживает MySQL, PostgreSQL и LDAP в качестве бэкенда, но в этом руководстве мы будем использовать ‘PureDB’ в качестве бэкенда.

PureDB                        /etc/pure-ftpd/pureftpd.pdb

Закомментируйте строку PAMAuthentication, чтобы отключить PAM-аутентификацию в строке 141, так как мы будем использовать PureDB в качестве источника аутентификации.

#PAMAuthentication             yes

Сохраните и выйдите.

Шаг 3 - Настройка TLS/SSL для Pure-FTPd

Сгенерируйте новый самоподписанный сертификат в директории ‘/etc/ssl/private’ с помощью команды openssl:

openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem -days 365

Измените права доступа к файлу сертификата на 0600:

chmod 600 /etc/ssl/private/pure-ftpd.pem

Далее вернитесь в директорию pure-ftpd и отредактируйте конфигурационный файл, чтобы включить поддержку TLS/SSL для клиентского соединения.

cd /etc/pure-ftpd/  
vim pure-ftpd.conf

Уберите комментарий в строке 439, чтобы включить TLS.

TLS                      1

Уберите комментарий в строке 449 и добавьте новую опцию для повышения безопасности.

TLSCipherSuite           HIGH:MEDIUM:+TLSv1:!SSLv2:!SSLv3

Уберите комментарий в строке 445, чтобы определить файл сертификата.

CertFile                 /etc/ssl/private/pure-ftpd.pem

Сохраните и выйдите.

Теперь запустите pure-ftpd с помощью команды systemctl:

systemctl start pure-ftpd

Шаг 4 - Настройка виртуальных пользователей

Pure-FTPd предоставляет функции для создания и использования виртуальных пользователей вместо реальных системных (Linux) пользователей. Pure-FTPd предоставляет несколько бэкендов аутентификации, и конфигурация виртуального пользователя зависит от бэкенда, используемого сервером. На шаге 2 мы установили ‘PureDB’ в качестве бэкенда.

Мы можем создать нового виртуального пользователя с помощью команды ‘pure-pw’, предоставленной pure-ftpd. На этом шаге мы создадим нового виртуального пользователя по имени ‘shiro’ с каталогом ‘/srv/ftp/shiro’ в качестве домашнего каталога ftp, и пользователь будет chrooted в этот каталог, чтобы он не мог получить доступ к другим системным каталогам.

Создайте нового виртуального пользователя с помощью pure-pw:

pure-pw useradd shiro -u ftpuser -d /srv/ftp/shiro

Создайте каталог для виртуального пользователя и измените владельца этого каталога на главного ‘FTP пользователя’.

mkdir -p /srv/ftp/shiro  
chown -R ftpuser.ftpgroup /srv/ftp/shiro

Далее мы должны сохранить изменения с помощью команды ниже:

pure-pw mkdb

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

Примечание:

pure-pw имеет больше командных опций, вы можете использовать ‘pure-pw help‘, чтобы увидеть все полезные команды.

Шаг 5 - Тестирование

Я буду использовать команду FTP в терминале для тестирования. Откройте терминал и введите “ftp”:

ftp

Затем введите IP-адрес сервера pure-ftpd:

open 192.168.43.69

Войдите с пользователем ‘shiro’ и паролем, а затем нажмите ‘Enter’.

Попробуйте загрузить файл с помощью команды ‘put’:

put picture.png mypict.png

Теперь вы увидите файл mypict.png на сервере с помощью команды ls ниже:

ls

FTP соединение

Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.