< meta name="referrer" content="origin">
Home » Linux » CentOS » Установка и настройка vsftpd на CentOS 7

Установка и настройка vsftpd на CentOS 7

Меня попросили в разделе с заказами написать статью на тему ftp сервера. Я планировал ее написать ранее, но все откладывал, а теперь решил сделать это. В качестве примера я возьму ftp сервер — vsftpd, систему — CentOS 7. Рассмотрю несколько разных вариантов настройки — простой и более сложный.

Введение

По моим наблюдениям, популярность ftp серверов с каждым годом падает. Сам я очень редко им пользуюсь и на свои сервера чаще всего не устанавливаю. Так как я работаю с серверами, к которым имею доступ по ssh, необходимости в ftp нет, использую SFTP.

Серьезную конкуренцию ftp создали облачные сервисы для хранения файлов. Чтобы кому-то передать файл, достаточно его расшарить на облачном хранилище и отправить человеку ссылку.

Тем не менее, в некоторых случаях может понадобиться ftp сервер. Доступ к такому серверу часто дают тогда, когда нужно, чтобы к вам кто-то что-то закачал большого объема. Так же ftp доступ дают некоторые хостинг компании, когда вы у них заказываете сервер для бэкапов. Например, ihor, которым я постоянно пользуюсь, предлагает услугу пространство для бэкапа именно по протоколу ftp.

Так что хоть ftp и потерял популярность, но не перестал быть актуальным. Рассмотрим настройку ftp сервера на примере vsftpd. Сделаем несколько конфигураций:

  1. Самая быстрая и простая. В качестве пользователей ftp будут системные пользователи.
  2. Более сложная конфигурация, где пользователи будут виртуальные, хранить их будем в отдельном файле.
  3. Вариант с виртуальными пользователями, но хранить мы их будем в mysql базе.

Работать будем на следующем сервере:

Настройка ftp на Centos 7

Простая настройка ftp в CentOS 7

Если у вас уже есть готовый сервер, то сразу приступайте к установке vsftpd. Если нет, то рекомендую две подходящие статьи для предварительной подготовки: подробная установка centos 7 и базовая настройка сервера.

Начинаем традиционно с обновления системы:

# yum -y update

Устанавливаем vsftpd:

# yum -y install vsftpd

Переходим к настройке. Я использую следующую схему работы ftp сервера с системными пользователями. Пользователю root разрешаю ходить по всему серверу. Всем остальным пользователям только в свои домашние директории. Анонимных пользователей отключаю.

Очистим каталог /etc/vsftpd, нам ничего не нужно из того, что там есть по-умолчанию. Можете сохранить куда-нибудь оригинальный конфиг, нам он не понадобится.

# rm -rf /etc/vsftpd/*

Открываем конфиг сервера /etc/vsftpd/vsftpd.conf

# mcedit /etc/vsftpd/vsftpd.conf

и приводим его к следующему виду vsftpd.conf. Не вывожу файл сюда, чтобы не растягивать страницу, конфигов в статье будет много. В файле даны подробные комментарии к каждому параметру.

Создаем необходимых пользователей, файлы и каталоги для установленной конфигурации. Добавим тестового пользователя ftp в систему:

# useradd -s /sbin/nologin ftp-user
# passwd ftp-user

Пользователя создаем без оболочки. Тут сразу можно указать в качестве домашней директории необходимый каталог, в котором будет работать пользователь. Я специально этого не делаю, чтобы продемонстрировать работу пользовательских настроек в отдельном файле. Пользователь будет создан со стандартным домашним каталогом в /home, но при работе по ftp он будет направлен в другой каталог, который мы ему укажем через файл пользовательских настроек vsftpd.

Создаем каталог для персональных настроек пользователей:

# mkdir /etc/vsftpd/users

В каталоге можно будет создать отдельно файлы с именами пользователей и передать им персональные параметры. Для примера создадим файл с именем пользователя ftp-user и укажем его домашний каталог:

# touch /etc/vsftpd/users/ftp-user
# echo 'local_root=/ftp/ftp-user/' >> /etc/vsftpd/users/ftp-user

Не забываем создать этот каталог и назначить ему владельца:

# mkdir /ftp && chmod 0777 /ftp
# mkdir /ftp/ftp-user && chown ftp-user. /ftp/ftp-user/

Создаем файл c пользователями, которым можно выходить за пределы домашнего каталога:

# touch /etc/vsftpd/chroot_list

Добавляем туда рута:

# echo 'root' >> /etc/vsftpd/chroot_list

Создаем файл со списком пользователей ftp, которым разрешен доступ к серверу:

# touch /etc/vsftpd/user_list
# echo 'root' >> /etc/vsftpd/user_list && echo 'ftp-user' >> /etc/vsftpd/user_list

Этим списком мы можем ограничить доступ к ftp серверу системных пользователей, которым туда ходить не нужно. Осталось только создать файл для логов:

# touch /var/log/vsftpd.log && chmod 600 /var/log/vsftpd.log

Все готово для работы. Добавляем vsftpd в автозагрузку и запускаем:

# systemctl enable vsftpd
# systemctl start vsftpd

Проверяем, запустился ли он:

# netstat -tulnp | grep vsftpd
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 19505/vsftpd

Все в порядке, можно подключаться клиентом.

Прежде чем начнете проверять подключение, убедитесь, что у вас настроен firewall. Либо выключите его, либо настройте для разрешения подключений по ftp. Узнать как правильно настроить iptables для работы ftp сервера можно в отдельной статье, посвященной настройке iptables. Там есть все необходимые пояснения и примеры.

Я зашел пользователем root и смог прогуляться по всей файловой системе.

Подключение к vsftpd серверу

Пользователь ftp-user ограничен своим домашним каталогом, указанном в индивидуальном файле с параметрами. Выйти за его пределы он не может. В лог файле отражены все действия пользователей на сервере: загрузка и скачивание файлов.

Обращаю внимание, что это мой опыт работы с vsftpd. Давать доступ системному руту по ftp ко всей файловой системе весьма опасно, нужно пользоваться осторожно. Я уже точно не помню, зачем я так делал, остались заметки с давних времен. Рассматривайте это просто как демонстрацию возможностей и используйте эти функции так, как вам нужно.

Настройка vsftpd с виртуальными пользователями

Рассмотрим вариант, когда пользователи ftp сервера не должны пересекаться с локальными. В данном примере будут работать только виртуальные пользователи. Я мельком проверил, можно ли настроить и тех и других, оказалось, что можно. Но там надо аккуратно с правами разбираться и со списками разрешенных пользователей. Я решил, что не буду описывать эту ситуацию, так как не очень представлю, когда она может пригодиться. Если кому-то надо, то на базе этой статьи он сам сможет разобраться.

Чтобы авторизовать виртуальных пользователей, установим дополнительный пакет compat-db:

# yum -y install compat-db

На всякий случай сохраните оригинальный pam.d файл, если захотите снова вернуться к системным пользователям:

# cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.orig

Нужно изменить pam файл /etc/pam.d/vsftpd, приведя его к следующему виду:

# mcedit /etc/pam.d/vsftpd
auth required pam_userdb.so db=/etc/vsftpd/virt_users
account required pam_userdb.so db=/etc/vsftpd/virt_users
session required pam_loginuid.so
# mcedit /etc/vsftpd/vsftpd.conf

Рисуем следующий конфиг для vsftpd vsftpd.conf Создаем файл с виртуальными пользователями:

# touch /etc/vsftpd/virt_users

Добавляем туда в первую строку имя пользователя, во вторую его пароль. В конце не забудьте перейти на новую строку, это важно. Файл должен быть примерно таким:

ftp-virt1
password1
ftp-virt2
password2

Сохраняем файл и генерируем локальное хранилище учеток:

# db_load -T -t hash -f /etc/vsftpd/virt_users /etc/vsftpd/virt_users.db

У вас должен появиться файл virt_users.db.

Нужно создать каталоги для этих пользователей:

# mkdir /ftp/ftp-virt1 /ftp/ftp-virt2

Для папки /ftp надо назначить соответствующего владельца, от которого ftp сервер будет пускать виртуальных пользователей:

# chown -R ftp. /ftp

На этом настройка виртуальных пользователей ftp закончена. Перезапускаем vsftpd и пробуем залогиниться:

# systemctl restart vsftpd

Я набросал небольшой скрипт, чтобы было удобно добавлять новых пользователей, предлагаю воспользоваться:

# mcedit /etc/vsftpd/add_virt_user.sh
#!/bin/sh

echo -n "Enter name of virtual user: "
read virtuser

echo -n "Enter password: "
read virtpass

mkdir /ftp/$virtuser
chown ftp. /ftp/$virtuser
touch /etc/vsftpd/users/$virtuser

echo "$virtuser" >> /etc/vsftpd/virt_users
echo "$virtpass" >> /etc/vsftpd/virt_users

db_load -T -t hash -f /etc/vsftpd/virt_users /etc/vsftpd/virt_users.db

Делаете файл исполняемым и запускаете:

# chmod 0700 /etc/vsftpd/add_virt_user.sh
# /etc/vsftpd/add_virt_user.sh
Enter name of virtual user: ftp-virt2
Enter password: 123456

Все, пользователь добавлен, можно сразу им заходить. Вот так легко и просто настраиваются виртуальные пользователи в vsftpd. Рассмотрим теперь третий вариант, когда эти пользователи хранятся в mysql базе.

Хранение vsftpd пользователей в mysql

Настройка не отличается от предыдущего раздела. Конфиг один в один совпадает. Изменится только файл в pam.d. Но перед тем, как его изменить, выполним подготовительные настройки. Первым делом нам понадобится mariadb, устанавливаем ее:

# yum install -y mariadb mariadb-server

Запускаем и добавляем ее в автозагрузку:

# systemctl start mariadb
# systemctl enable mariadb.service

Выполняем скрипт первоначальной настройки mysql:

# /usr/bin/mysql_secure_installation

Подробнее о настройке mysql рассказано в статье про настройку web сервера на centos. Если вам в будущем понадобится веб сервер, можете сразу его настроить, а заодно поставить phpmyadmin, дальнейшие действия проще будет выполнить там. Но я сейчас не буду на этом останавливаться, сделаем все в консоли.

Подключаемся к mysql:

# mysql -u root -p

Создаем пользователя и базу данных для хранения учетных записей пользователей ftp:

> CREATE DATABASE vsftpd;
> GRANT SELECT ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY '12345';
> FLUSH PRIVILEGES;
vsftpd имя пользователя и базы
12345 пароль пользователя

Создаем таблицу учеток:

> USE vsftpd;
> CREATE TABLE `accounts` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` VARCHAR( 30 ) NOT NULL ,
`pass` VARCHAR( 50 ) NOT NULL ,
UNIQUE (`username`)
) ENGINE = MYISAM ;
Обратите внимание на кавычки при копировании. Если будут ошибки в синтаксисе mysql, вам нужно будет их удалить и проставить заново.

Создадим сразу одного пользователя:

> INSERT INTO accounts (username, pass) VALUES('ftp-mysql', md5('123'));
ftp-mysql имя пользователя
123 пароль

Список пользователей можно посмотреть с помощью команды:

> select * from accounts;
+----+-----------+----------------------------------+
| id | username | pass |
+----+-----------+----------------------------------+
| 1 | ftp-mysql | 202cb962ac59075b964b07152d234b70 |
+----+-----------+----------------------------------+
1 row in set (0.01 sec)

Выходим из консоли mysql и создаем каталог для нового пользователя:

# mkdir /ftp/ftp-mysql && chown ftp. /ftp/ftp-mysql

Для авторизации пользователей vsftpd через mysql нам необходимо установить pam_mysql. Тут я столкнулся серьезной проблемой. Во-первых, в стандартном репозитории его нет. Раньше он был в репозитории epel, но начиная с 7-й версии его оттуда убрали. Причина в том, что он очень старый, 2008-го года или еще раньше, если я не ошибаюсь. С тех пор он не обновляется. В centos решили, что этот модуль уже не нужен, он морально устарел, а хранить учетные записи в mysql плохая идея. В тренде сейчас ldap, надо там хранить учетки. В принципе, это разумно. Но отказываться от привычной mysql все равно не хочется.

Мне пришлось прилично загуглиться в буржунет и найти там информацию. Я узнал, что для CentOS 7 подойдет вот эта версия pam_mysql-0.7-0.16.rc1.fc20.x86_64.rpm. Было очень много битых ссылок, но все же я нашел рабочую. На всякий случай сохраняю ее у себя. Так что ставим модуль pam_mysql для centos 7 с моего сайта:

# rpm -Uvh //serveradmin.ru/files/pam_mysql-0.7-0.16.rc1.fc20.x86_64.rpm

Теперь редактируем файл /etc/pam.d/vsftpd. В интернете много примеров конфигурации. Опытным путем собрал рабочий вариант:

# mcedit /etc/pam.d/vsftpd

session optional pam_keyinit.so force revoke
auth required pam_mysql.so user=vsftpd passwd=12345 host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=3
account required pam_mysql.so user=vsftpd passwd=12345 host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=3

Сохраняем файл, перезапускаем на всякий случай vsftpd и пробуем зайти свежесозданным пользователем.

# systemctl restart vsftpd

У меня все получилось. Если будут какие-то проблемы, то смотрите в первую очередь на работу mysql_pam в логе /var/log/audit/auditlog. У меня были такие ошибки, когда я настраивал авторизацию и она не работала:

type=USER_AUTH msg=audit(1459442408.756:724): pid=21483 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:authentication grantors=? acct="ftp-mysql" exe="/usr/sbin/vsftpd" hostname=192.168.1.100 addr=192.168.1.100 terminal=ftp res=failed'

После правильной настройки, появились такие записи:

type=CRED_ACQ msg=audit(1459442810.698:735): pid=21564 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:setcred grantors=pam_mysql acct="ftp-mysql" exe="/usr/sbin/vsftpd" hostname=192.168.1.100 addr=192.168.1.100 terminal=ftp res=success'

В логе /var/log/secure тоже может быть полезная информация. У меня было так:

Mar 31 19:39:44 vsftpd[21475]: pam_mysql - MySQL error(Unknown column 'passwd' in 'field list')

С пробелами в строках была путаница, пока не исправил, не работало ничего. Но потом все заработало.

На этом у меня сегодня все. Можно скрипт набросать для удобного добавления пользователей в базу, но мне уже лениво. Может кто-нибудь другой в комментариях поделится.

Заключение

Мы подробно рассмотрели вопрос использования vsftpd сервера с различной настройкой учетных записей. По мне удобнее всего работать с виртуальными пользователями в локальной не mysql базе. Но если используется какая-нибудь панель управления сервером, то удобно засунуть всех пользователей в базу.

Когда я настраивал публичный хостинг, то использовал самописные скрипты для создания каталогов виртуальных хостов, добавления настроек в апач и создание пользователей ftp с доступом к своим сайтам.  Там без ftp не обойтись, так как его постоянно просят веб мастера. В планах есть написать статью на эту тему, но пока руки не доходят.

Видео


Помогла статья? Есть возможность отблагодарить автора

Дополнительные материалы по CentOS

Рекомендую полезные материалы по CentOS:
Настройки системы
  • Установка
  • Базовая настройка
  • Настройка времени
  • Настройка сети
  • Настройка репозиториев
  • Настройка iptables
Установка CentOS 7 в конфигурации minimal или netinstall с загрузочной флешки или по сети на диск или raid раздел.
Базовая настройка CentOS 7 для работы с любым функционалом. Приведены практические советы по улучшению безопасности и удобства администрирования.
Как установить точное время на сервере CentOS, настроить часовой пояс, синхронизировать время с помощью ntpdate и ntpd и другое.
Подробное описание настройки сети в CentOS 7 - задать ip адрес, dhcp, отключить ipv6, dns, hostname, статические маршруты и др.
Установка репозиториев epel, rpmforge и др. Добавление, удаление, обновление rpm репозиториев в CentOS.
Рассмотрены основные моменты настройки iptables в Centos 7 - установка, добавление правил, проброс портов, nat, логирование и д.р.
Настройка программных комплексов
 
  • Прокси сервер
  • Шлюз
  • Asterisk
  • Asterisk+Freepbx
  • Сервер VPN
  • Web сервер Apache
  • Web сервер Nginx
  • Почтовый сервер
Подробное описание настройки прокси сервера на базе CentOS 7 со связкой squid+AD+sams2, реализован запрет доступа по url и группам пользователей.
Простая и быстрая настройка шлюза на базе CentOS 7 для организации доступа в интернет из локальной сети.
Описание установки и настройки asterisk - популярной современной sip атс. Описан расширенный функционал, покрывающий большинство потребностей стандартного офиса в современной телефонии.
Подробное описание установки voip сервера asterisk и панели управления freepbx на CentOS 7.
Установка и настройка OpenVPN сервера на CentOS для объединения офисов и подключения удаленных пользователей
Настройка web сервера CentOS 7 на базе связки http сервера apache, php и сервера db mysql, или коротко - установка lamp.
Установка и настройка высокопроизводительного web сервера на базе nginx и php fpm. В качестве кэша используется APC.

Описание установки и настройки почтового сервера iRedMail на основе готовой сборки на CentOS 7. Обзор основных возможностей и рекомендации по настройке.

Самостоятельная настройки почтового сервера postfix + dovecot а так же дополнительных полезных модулей для полноценной и удобной работы почты.

Размышления на тему выбора почтового сервера для малых и средних компаний.

Настройка отдельных программ
 
  • Zabbix
  • Phpmyadmin
  • Webmin
  • Ruby
  • Обновление php
  • Vsftpd
  • Bind
  • Unison
  • Observium
  • Syslog-NG
Видео и подробное описание установки и настройки Zabbix 3.2, а также установка агентов на linux и windows и подключение их к мониторингу.
Подробное описание установки и настройки панели управления phpmyadmin на веб сервер apache и nginx под управлением Centos 7.
Подробное описание установки и настройки Webmin на CentOS 7 для удаленного подключения и управления сервером.
Подробное описание установки языка Ruby последней версии на веб сервер под управлением CentOS 7.
Подробное описание установки или обновления php 7 на CentOS 7. Рассмотрен вариант отката обновления и возврата на php 5.6 или 5.4.
Подробное описание с видео установки и настройки ftp сервера vsftpd, примеры с локальными и виртуальные пользователями в mysql.
Настройка DNS сервера BIND (Named) в CentOS 7. Рассмотрены наиболее популярные конфигурации, в том числе подробное логирование.
Установка Unison в CentOS 7 для двухсторонней синхронизации файлов.
Инструкция по установке и настройке сервера мониторинга Observium на CentOS 7. В качестве примера в конце добавлено одно устройство для мониторинга.
Настройка сервера для централизованного сбора логов с удаленных устройств и серверов с помощью программы syslog-ng.
Разное
  • Настройка ssl в Apache
  • Бэкап с помощью rsync
Настройка работы веб сервера apache с виртуальными хостами по протоколу https с использованием бесплатного ssl сертификата.
Подробное описание настройки бэкапа с помощью rsync на примере скрипта инкрементного архива на системе Centos, Debian, Ubuntu, Windows.

20 комментариев

  1. Здравствуйте!
    Сделал всё, как написано в первой части статьи — «Простая настройка ftp в CentOS 7»
    Вот что выдаёт:
    ———————————————————————
    [root@localhost vsftpd]# service vsftpd start
    Redirecting to /bin/systemctl start vsftpd.service
    Job for vsftpd.service failed because the control process exited with error code. See «systemctl status vsftpd.service» and «journalctl -xe» for details.
    [root@localhost vsftpd]# systemctl status vsftpd.service
    ● vsftpd.service — Vsftpd ftp daemon
    Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
    Active: failed (Result: exit-code) since Thu 2016-06-16 23:51:06 EEST; 53s ago
    Process: 2176 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=2)

    Jun 16 23:51:06 localhost.localdomain systemd[1]: Starting Vsftpd ftp daemon…
    Jun 16 23:51:06 localhost.localdomain systemd[1]: vsftpd.service: control process exited, code=exited status=2
    Jun 16 23:51:06 localhost.localdomain systemd[1]: Failed to start Vsftpd ftp daemon.
    Jun 16 23:51:06 localhost.localdomain systemd[1]: Unit vsftpd.service entered failed state.
    Jun 16 23:51:06 localhost.localdomain systemd[1]: vsftpd.service failed.
    ———————————————————————

    Подскажите, в какую сторону копать…

    • Надо лог посмотреть системный и vsftpd, может там будут подсказки, в чем ошибка.

  2. Виктор

    Тоже самое выдал

    • у меня было тоже самое, но после того как я в ручную сделал copy/paste из предоставленного автором файла в свой файл настроек(через putty), то почти все заработало, а почти потому, что нужно настроить se linux, я его просто отключил
      П.С. Автор спасибо за твои работы, не раз выручали

  3. Всё сделал копипастом (первую часть, мне больше и не надо для стягивания архива), попробовал зайти рутом через Yummy FTP Pro, пишет неверный пароль… как он может быть неверным еcли я с ним сижу в SSH и делаю FTP? )))
    ftp-user тоже на свою папку пишет неверный пароль
    Что я не так сделал?

  4. Карен Григорьевич

    В iptables попробуй добавить правило на открытие 21 порта tcp. Мне помогло =)

  5. Здравствуйте, стал поклонником вашего сайта, сначала rsync’у у Вас учился, теперь FTP. Вроде все просто, главная проблема в том что если указываю домашний каталог пользователя «от имени которого подключается виртуальный пользователь» — вижу структуру папок, могу удалять, создавать, копировать и пр… Если указываю другую папку в файле /etc/vsftpd/users/ftproot то подключаюсь, а структуры нет, и ничего скопировать не могу, хотя вижу что папка подключилась та.
    Все конфиги копировать не буду чтобы не растягивать.
    /etc/vsftpd/vsftpd.conf

    # Разрешить подключаться виртуальным пользователям
    guest_enable=YES

    # Системный пользователь от имени котрого подключаются виртуальные
    guest_username=admroot

    # Виртуальные пользователи имеют те же привелегии, что и локальные
    virtual_use_local_privs=YES

    # Автоматическое назначение домашнего каталога для виртуальных пользователей
    #user_sub_token=$USER
    #local_root=/ftp/$USER
    # Запрещает подключение анонимных пользователей
    anonymous_enable=NO

    # Каталог, куда будут попадать анонимные пользователи, если они разрешены
    #anon_root=/ftp

    # Разрешает вход для локальных пользователей
    local_enable=YES

    # Разрешены команды на запись и изменение
    write_enable=YES
    # Включение специальных ftp команд, некоторые клиенты без этого могут зависать
    async_abor_enable=YES

    # Локальные пользователи по-умолчанию не могут выходить за пределы своего домашнего каталога
    chroot_local_user=YES

    # Разрешить список пользователей, которые могут выходить за пределы домашнего каталога
    chroot_list_enable=YES

    # Список пользователей, которым разрешен выход из домашнего каталога
    chroot_list_file=/etc/vsftpd/chroot_list

    # Разрешить запись в корень chroot каталога пользователя
    allow_writeable_chroot=YES

    # Директория с настройками пользователей
    user_config_dir=/etc/vsftpd/users

    # Маска прав доступа к создаваемым файлам
    local_umask=022

    # Порты для пассивного режима работы
    pasv_min_port=54988
    pasv_max_port=55000

    /etc/vsftpd/users/admroot
    local_root=/media/CentOS7_Disk2/BackUp/
    /etc/vsftpd/users/ftproot
    local_root=/media/CentOS7_Disk2/BackUp/

    /etc/vsftpd/chroot_list
    ftproot
    admroot

    Подключаюсь под пользователем ftproot, если в файле /etc/vsftpd/users/ftproot — /home/admroot/ — все видится, если /media/CentOS7_Disk2/BackUp/ — пустая папка.
    разрешения вроде похожи:
    /home/admroot/
    total 60
    drwx——. 15 admroot admroot 4096 May 31 08:19 .
    drwxr-xr-x. 3 root root 21 Jun 5 06:16 ..
    -rw——-. 1 admroot admroot 22685 Jun 5 12:20 .bash_history
    -rw-r—r—. 1 admroot admroot 18 Dec 6 23:19 .bash_logout
    -rw-r—r—. 1 admroot admroot 193 Dec 6 23:19 .bash_profile
    -rw-r—r—. 1 admroot admroot 231 Dec 6 23:19 .bashrc
    drwxrwxr-x. 10 admroot admroot 193 May 23 04:16 .cache
    drwxrwxr-x. 17 admroot admroot 4096 May 25 11:42 .config
    drwxr-xr-x. 2 admroot admroot 6 Jun 6 03:12 Desktop
    drwxr-xr-x. 2 admroot admroot 6 May 23 03:33 Documents
    drwxr-xr-x. 2 admroot admroot 6 May 23 03:33 Downloads
    -rw——-. 1 admroot admroot 16 May 23 03:33 .esd_auth
    -rw——-. 1 admroot admroot 2178 May 31 03:03 .ICEauthority
    -rw——-. 1 admroot admroot 35 May 26 11:25 .lesshst
    drwx——. 3 admroot admroot 19 May 23 03:33 .local
    drwxr-xr-x. 2 admroot admroot 6 May 23 03:33 Music
    drwxr-xr-x. 2 admroot admroot 6 May 23 03:33 Pictures
    drwxr-xr-x. 3 admroot admroot 39 Jun 5 11:08 Public
    drwx——. 2 admroot admroot 125 Jun 1 10:10 .ssh
    drwxr-xr-x. 2 admroot admroot 6 May 23 03:33 Templates
    drwxr-xr-x. 2 admroot admroot 6 May 23 03:33 Videos
    -rw——-. 1 admroot admroot 573 May 31 08:19 .viminfo
    drwx——. 2 admroot admroot 35 May 23 03:33 .vnc

    /media/CentOS7_Disk2/BackUp/
    total 16
    drwxrwxrwx. 3 admroot admroot 4096 Jun 5 11:34 .
    drwxr-xr-x. 7 root root 4096 Jun 5 05:21 ..
    drwxrwxrwx. 3 admroot admroot 4096 Jun 5 11:37 df
    -rwxrwxrwx. 1 admroot admroot 5 Jun 5 11:34 er.conf

    Подскажите пожалуйста.

    • При этом я вижу структуру файлов, могу зайти даже в корневые каталоги /etc/ /dev/ и пр. но папки которым сам назначал права и владельца нет

  6. Может будет кому полезно:
    При подключении на клиенте появлялась ошибка «500 OOPS: failed to open vsftpd log file» или что-то похожее. Файл действительно был пуст, права -rw——-., юзер root, группа root.
    Остановил vsftpd, удалил лог-файл, запустил vsftpd. После этого подключение прошло успешно. Лог-файл, указанный в конфиге, появился сам, видимых отличий в правах доступа к нему я не нашёл, логи в него пишутся.

  7. Никита

    Неужели этот мега безопасный фтпсервер не умеет банить айпи при неверном логине\пароле?

    • Это не задача ftp сервера. Если нужен бан по ip, то это без проблем настраивается с помощью iptables+fail2ban. Для анализа нужно брать лог файл /var/log/vsftpd.log.

      • Никита

        Ага, спасибо, так и сделал. Просто видел возможность банить прямо из фтп на proftd.
        Кстати, как насчёт веб морды для vsftpd? Есть что-то вменяемое? Webmin модуль устарел не выйдя из беты. А это баженное весьма https://github.com/Tvel/VsftpdWeb

  8. Владимир

    Тестирую первый способ с системным пользователями. Захотелось мне включит анонимуса и столкнулся с такимответм сервера «500 OOPS: vsftpd: refusing to run with writable root inside chroot() » Пните меня в сторону правильного решения сей задачи!

    • Эта ошибка неплохо гуглится. Вариантов может быть много. Сходу мне приходит в голову мысль о том, что анонимус чрутится в директорию, к которой у него нет доступа.

      • Владимир

        Ну, когда я оставляю закоментированой строку «anon_root=/ftp» ошибка исчезает и анонимуса кидает вкаталог «/var/ftp» и он там только гость

        • А права на папку /ftp какие? Для доступа анонимусов надо сделать ей права 777 и проверить.

          • Владимир

            Так в том то и дело что проверил и перепроверил права на папку. /то первое что я сделал перед тем как написать. И ls -l показывает что на /ftp стоит «drwxrwxrwx»

  9. Владимир

    Протестировал виртуальных пользователей. Это так задумано что пользователи созданные с помощью скрипта не могут ничего создать у себя в папке или скрипт недоделанный? Ладно если бы все пользователи юзали один каталог задумка была бы интересной, а так…

Добавить комментарий

Ваш e-mail не будет опубликован.