Андрей Смирнов
Время чтения: ~8 мин.
Просмотров: 9

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

Настройка GNU/Linux Debian

В этой статье я опишу настройку FTP сервера на базе Debian 5 (Lenny). Будем использовать vsftpd. VSFTPD (Very Secure FTP Daemon) — как следует из названия, очень защищённый демон FTP, с хорошей производительностью, поддерживаются: IPv6, SSL, виртуальные пользователи, есть контроль скорости полосы пропускания. На vsftpd работают ftp.debian.org, ftp.freebsd.org, ftp.suse.com, ftp.openbsd.org, ftp.gnu.org, ftp.kernel.org, ftp.gnome.org, ftp.gimp.org, ftp.rpmfind.net, ftp.linux.org.uk, ftp-stud.fht-esslingen.de, gd.tuwien.ac.at, ftp.sunet.se, ftp.ximian.com, ftp.engardelinux.org, ftp.sunsite.org.uk, ftp.isc.org, ftp.redhat.com.

В статье будут описаны несколько конфигураций:

  • Простая конфигурация. Анонимные пользователи имеют доступ только на чтение. Для записи информации на FTP сервер используется пользователь ftpuser. Разрешён доступ локальных пользователей к своим домашним каталогам.
  • Более сложная конфигурация. Анонимные пользователи всё так же имеют доступ только на чтение. Локальные пользователи не используются. Вместо них используются виртуальные пользователи, учётные записи которых хранятся в MySQL. Каждому виртуальному пользователю можно задать свои параметры работы с FTP. Используется PAM авторизация.
  • Более защищённая конфигурация. Анонимные пользователи не используются. Используются только виртуальные пользователи, учётные записи которых хранятся в MySQL. Для каждого пользователя можно задать свою конфигурацию. Используется SSL.

Простая конфигурация FTP сервера

#aptitude install vsftpd

При этом создаются:

  • Системный пользователь ftp, который добавляется в группу nogroup
  • Домашняя директория пользователя ftp — /home/ftp. Интересная особенность: при установке пакета выдаётся сообщение о том, что домашний каталог НЕ создаётся!
  • Создаётся файл /etc/ftpusers. В нём перечислены пользователи, которым запрещён доступ к FTP.

Пользователь ftp не будет работать с FTP сервером, но он нужен для его корректной работы. Так как директория FTP сервера будет располагаться в /var/ftp, то изменим домашнюю директорию для пользователя ftp:

# usermod -d /var/ftp ftp

Удалим прежнюю директорию этого пользователя:

# rmdir /home/ftp

Теперь настроим пользователя, у которого будут права записи в корневую директорию FTP сервера:

Cоздаём группу ftpuser

# addgroup ftpuser

Создаём пользователя ftpuser, добаляем его в группу ftpuser и устанавливаем домашним каталогом директорию FTP сервера, а так же меняем пароль

#useradd -d /var/ftp -g ftpuser ftpuser

#passwd ftpuser

Создаём директорию FTP сервера и устанавливаем права:

# mkdir /var/ftp

# chmod 555 /var/ftp

# chown root:ftpuser /var/ftp

Создаём публичный каталог.

# mkdir /var/ftp/pub

# chown ftpuser:ftpuser /var/ftp/pub

Конфигурационный файл vsftpd располагается в /etc/vsftpd.conf. Сделаем его резервную копию.

#cp /etc/vsftpd.conf /etc/vsftpd.conf_old

Теперь очистим /etc/vsftpd.conf, откроем текстовым редактором:

# cat /dev/null > /etc/vsftpd.conf

# vim /etc/vsftpd.conf

и напишем:

# Запускать vsftpd в независимом режиме

listen=YES

# Делаем анонимный доступ

anonymous_enable=YES

# Анонимные входят без пароля

no_anon_password=YES

# Анонимные будут попадать в публичную директорию

anon_root=/var/ftp/pub

anon_umask=022

# Разрешаем вход локальным пользователям с правом записи в домашних директориях

local_enable=YES

write_enable=YES

local_umask=022

# Локальные пользователи будут входить только в свои домашние каталоги

chroot_local_user=YES

chroot_list_enable=NO

# Сообщения будут записываться в собственный журнал

xferlog_enable=YES

xferlog_file=/var/log/vsftpd.log

Теперь перестартуем vsftpd:

/etc/init.d/vsftpd restart

Если всё работает как надо и сервер будет использоваться не только локально, то добавим ещё несколько строк после listen:

# Установки публичного FTP

max_clients=100

max_per_ip=10

hide_ids=YES

idle_session_timeout=600

data_connection_timeout=120

dirmessage_enable=YES

ftpd_banner=Welcome!

Скачать готовый конфигурационный файл можно по следующей ссылке.

А мы переходим к более сложной конфигурации ftp сервреа

Помните, что у нас вы можете не только купить готовый сайт или заказать его разработку, но и подобрать подходящий тариф поддержки сайта, заказать продвижение сайта в поисковых системах, а так же зарегистрировать домен в одной из двухсот доменных зон и выбрать недорогой тариф хостинга! Айтишник РУ

Об авторе:

Меня зовут Андрей Золкин. Из более, чем пятнадцати лет работы в сфере информационных технологий, десять лет работаю с системами, базирующимися на открытом исходном коде. На страницах сайта Aitishnik.Ru веду блоги по CMC Joomla и Debian GNU/Linux.

Ещё статьи о Debian

    • Настройка сети в Debian 9

      В этой статье я опишу простую настройку сети для сервера под управлением ОС Debian 9 (Stretch). Эта статья является переработкой моей более ранней статьи «Настройка сети в Debian». Она была справедлива для версий старше Debian 9. В Debian 9 многое…

    • Настройка обновлений в Debian

      После установки Debian Linux и настройки сети я рекомендую приступить к настройке обновлений. Для обновления и установки пакетов в Debian используются утилиты apt и aptitude. Независимо от того, какой из этих утилит Вы будете…

    • Настройка SSH в Debian

      Довольно часто, администрирование сервера на базе Linux происходит посредством удалённого доступа. А основным способом удалённого администрирования является администрирование с помощью SSH. Об этом и пойдёт речь в этой статье. Данная…

    • Настройка FTP сервера. Конфигурация с шифрованием SSL…

      Теперь изменим нашу конфигурацию ftp сервера следующим образом: анонимные пользователи не используются. Используются только виртуальные пользователи, учётные записи которых хранятся в MySQL. Для каждого пользователя можно задать свою…

    • Интерактивный режим aptitude

      В первой части статьи рассказывалось об управлении пакетами с помощью aptitude в режиме командной строки. Теперь рассмотрим интерактивный режим этой программы. Управление программой производится с клавиатуры. Для входа в интерактивный…

    • Локальный хостинг на XAMPP в Debian

      Эта статья своим появлением обязана блогу о Joomla 3. В блоге о Joomla в числе прочего рассматривается возможность создания локального хостинга на домашнем компьютере под управлением операционной системы Windows. Организация домашнего хостинга производится с помощью пакета XAMPP. Этот…

Суббота, 26 апреля 2014 г.Рубрика: Linux -> Без рамкиМетки: DigitalOcean | soft | vsftpd | web | советы | хостингПросмотров: 46654

Серверные компоненты настроены, полезный инструмент (phpMyAdmin) для администрирования MySQL установлен и защищен извне. Не хватает только ftp сервера. Все уже привыкли загружать файлы на хостинг при помощи FTP клиентов, поэтому ничего не остается, как установить и настроить на своем виртуальном сервере поддержку FTP.

Под linux создано огромное количество ftp-серверов, но мне нравится vsftpd. Он прост в установке и прекрасно справляется со своими задачами. Для установки vsftpd в окне терминала выполни команду:

apt-get install vsftpd

Установка vsftpd в Debian 7 занимает буквально две минуты.

Настройка vsftpd

Все настройки vsftpd хранятся в файле /etc/vsftpd.conf. Откроем его в редакторе nano и внесем несколько корректив:

nano /etc/vsftpd.conf

Первое, что необходимо сделать в файле настроек – установить запрет на подключение анонимных пользователей. Находим опцию “anonymous_enable” и прописываем ей значений “NO”. Затем сними комментарий с опции “local_enable” и “write_enable”. Первая опция разрешает использовать для входа на сервер пользователям, которые зарегистрированы в системе. Вторая разрешает пользователям выполнять любые FTP-команды записи.

Последним действие в конфигурационном файле будет снятие комментария с опции chroot_local_user. Если ей установлено значение «Yes» (по умолчанию оно и установлено), все системные пользователи будут находиться в пределах chroot и не смогут получить доступ к другим директориям сервера.

Сохраняем изменения (ctrl+o) и закрываем файл (ctrl+x). Теперь попробуем протестировать работу FTP сервера. Для этого создадим нового пользователя и сделаем в его домашней директории папку, к которой он будет иметь возможность получить доступ по FTP.

Добавление нового пользователя выполняется командой adduser. Попробуем создать нового пользователя user:

adduser user

Утилита создания пользователя задаст несколько вопросов (пароль, различные вспомогательная информация). Вопросы с запросом вспомогательной информации (phone, room number и т.д.) можешь игнорировать, нажимая клавишу “Enter”. Предположим, что пользователь создан, теперь добавим новую группу webusers и включим в нее пользователя user:

groupadd webusers usermod -G webusers user

Если прямо сейчас перейти в директорию /home, то мы увидим, что в ней появилась папка для недавно созданного нового пользователя. Создадим в домашней директории пользователя две новые папки:

mkdir /home/user/www mkdir /home/user/logs

В первой будут храниться файлы доступные снаружи (это будет директория хоста), а вторую будем использоваться для хранения логов. Теперь нам надо сменить владельца для созданных папок. Мы их создавали из под root, поэтому сейчас владельцем является супер пользователь. Смена владельца выполняется командой chown:

chown user:webusers /home/user/www chown user:webusers /home/user/logs chmod 555 /home/user

На этом все подготовительные действия завершены. Остается только перезапустить FTP сервер и попробовать подцепиться к нему каким-нибудь клиентом. Перезапуск службы vsftpd выполняем традиционным способом:

service vsftpd restart

Тестируем настроенный vsftpd сервер

В качестве теста попробуем соединиться встроенным в Windows консольным ftp клиентом с нашим ftp-сервером. Открываем CMD и вбиваем команду:

После установки соединения, программа у тебя запросит ввести логин/пароль. Вводи сюда данные созданного пользователя. Пройдя процесс аутентификации, ты можешь начать отправлять ftp команды. Например, команда dir запрашивает список директорий с ftp сервера. Выполнив ее, ты увидишь, что на сервере доступно две папки – www и logs.

На этом, установку и настройку vsftpd считать оконченной.

Другие статьи по настройке LAMP

  • Устанавливаем и защищаем phpMyAdmin в Debian 7
  • Установка и настройка vsftpd в Debian 7
  • Запрещаем пользователю доступ по SSH в Debian 7
  • Пример оптимального конфига для mySQL и проверка таблиц БДПадает MySQL? Как настроить SWAP в Debian 7

Используемые источники:

  • https://www.aitishnik.ru/linux/ftp-server-debian.html
  • http://iantonov.me/page/ustanovka-i-nastrojka-vsftpd-v-debian-7

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации