Настройка FTP-сервера (vsftpd)

Vsftpd является акронимом и его следует понимать как Very Secure FTP Daemon – очень защищенный FTP-сервер.

Процесс разделим на два этапа – установку и настройку.

Установка в Ubuntu:

В начале следует обновить информацию о репозиториях, обновить компоненты системы, перезагрузиться если требуется:

sudo apt-get update

sudo apt-get upgrade

sudo reboot

Теперь устанавливаем vsftpd:

sudo apt-get install vsftpd

Установка в CentOS:

Обновляем компоненты системы и перезагружаемся:

yum update

reboot

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

yum install vsftpd

Запускаем службу:

service vsftpd start

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

Настроим vsftpd

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

Ubuntu:

nano /etc/vsftpd.conf

CentOS:

nano /etc/vsftpd/vsftpd.confKопировать

Если в анонимном доступе нет необходимости, то первым делом исправляем это в конфигурационном файле. Для этого находим строчку:

anonymous_enable=YES

Заменяем YES на NO. В последних версиях Ubuntu это не требуется, но проверка не будет лишней.

Для анонимного доступа следует добавить директорию, указав параметр anon_root= с указанием созданной для анонимного доступа директории, а также no_anon_password=YES. В самом низу добавлена ссылка на статью, по настройке анонимного доступа через vsftpd.

Следует обратить внимание, что некоторые строки закомментированы, т.е. перед ними стоит знак # (решетка/шарп). Для того чтобы пользователи могли записывать файлы в директорию, следует раскомментировать строки (т.е. удалить в самом начале строки символ #):

local_enable=YES

write_enable=YES

Соответственно, если по умолчанию указан параметр NO, то заменяем на YES.

Чтобы пользователи не получили доступ в другие каталоги сервера, раскомментируем строку:

chroot_local_user=YES

Также, если по умолчанию указан параметр NO, то заменяем на YES.

Сохраняем конфигурационный файл и перезапускаем сервер командой:

service vsftpd restart

Проверяем запустилась ли служба:

service vsftpd status

Если все успешно, то система выведет соответствующее сообщение.

Иногда, при запуске, появляется сообщение “refusing to run with writable root inside chroot”. Данная ошибка появляется в последних версиях vsftpd, когда служба запускается не от пользователя root. Исправляем:

  1. Создаем пользователя:

adduser <USER_NAME>

  1. Добавляем пользователя в sudo:

adduser <USER_NAME> sudo

  1. Создаем директорию внутри пользовательской:

mkdir /home/<USER_NAME>/userfiles

  1. Меняем владельца каталога на root:

chown root:root /home/<USER_NAME>

  1. Перезапускаем службу:

sudo service vsftpd restart

Если подключение не удается – настраиваем файрволл.

В Ubuntu это делается с помощью ufw:

sudo ufw allow 20/tcp

sudo ufw allow 21/tcp

В CentOS, как и во всех остальных случаях, можно использовать iptables:

sudo iptables -A INPUT -p tcp --dport 20 -m state --state NEW,ESTABLISHED -j ACCEPT

sudo iptables -A OUTPUT -p tcp --sport 20 -m state --state ESTABLISHED -j ACCEPT

sudo iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT

sudo iptables -A OUTPUT -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT

Проверка соединения выполняется подключением к серверу, например, из окна браузера по ссылке вида: ftp://IP-address

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

Last updated