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
Ссылки
Get new posts in your inbox
No spam. Unsubscribe anytime.