Установки и настройка FTP-сервера в Ubuntu

Содержание

Как установить FTP-сервер с VSFTPD на Ubuntu 18.04

Установки и настройка FTP-сервера в Ubuntu
FTP (протокол передачи файлов) – это стандартный сетевой протокол, используемый для передачи файлов в удаленную сеть и из нее. Для более безопасной и быстрой передачи данных используйте SCP.

Для Linux доступно множество FTP-серверов с открытым исходным кодом.

 Самыми популярными и широко используемыми являются PureFTPd, ProFTPD и vsftpd. В этой статье мы будем устанавливать vsftpd. Это стабильный, безопасный и быстрый FTP-сервер.

 Мы также покажем вам, как настроить vsftpd для ограничения доступа пользователей к их домашнему каталогу и шифрования всей передачи с помощью SSL/TLS.

Хотя эта статья написана для Ubuntu 18.04, такие же инструкции применяются к Ubuntu 16.04 и любому дистрибутиву на базе Debian, включая Debian, Linux Mint и Elementary OS.

Предпосылки

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

Установка vsftpd на Ubuntu 18.04

Пакет vsftpd доступен в репозиториях Ubuntu. Чтобы установить его, просто выполните следующие команды:

sudo apt updatesudo apt install vsftpd

Служба vsftpd автоматически запустится после завершения процесса установки. Проверьте его, распечатав статус службы:

sudo systemctl status vsftpd

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

* vsftpd.service – vsftpd FTP server Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2018-10-15 03:38:52 PDT; 10min ago Main PID: 2616 (vsftpd) Tasks: 1 (limit: 2319) CGroup: /system.slice/vsftpd.service `-2616 /usr/sbin/vsftpd /etc/vsftpd.conf

Настройка vsftpd

Сервер vsftpd можно настроить, отредактировав файл /etc/vsftpd.conf. Большинство настроек задокументированы внутри файла конфигурации. Для всех доступных вариантов посетите официальную страницу vsftpd.

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

Начните с открытия файла конфигурации vsftpd:

sudo nano /etc/vsftpd.conf

1. Доступ к FTP

Мы разрешаем доступ к FTP-серверу только локальным пользователям, находим директивы anonymous_enable и local_enable и проверяем соответствие вашей конфигурации следующим строкам:

/etc/vsftpd.conf

anonymous_enable=NOlocal_enable=YES

2. Включение загрузки

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

/etc/vsftpd.conf

write_enable=YES

3. Chroot

Чтобы пользователи FTP не могли получить доступ к каким-либо файлам вне своих домашних каталогов, раскомментируйте настройку chroot.

/etc/vsftpd.conf

chroot_local_user=YES

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

  • Метод 1. – Рекомендуемый способ разрешить загрузку – включить chroot и настроить FTP-каталоги. В этой статье мы создадим каталог ftp внутри home пользователя, который будет служить chroot и записываем каталог uploads для загрузки файлов./etc/vsftpd.confuser_sub_token=$USERlocal_root=/home/$USER/ftp
  • Метод 2. Еще один вариант – добавить следующую директиву в файл конфигурации vsftpd. Используйте этот параметр, если вы должны предоставить доступ к записи для своего пользователя в свой домашний каталог./etc/vsftpd.confallow_writeable_chroot=YES

4. Пассивные FTP-соединения

vsftpd может использовать любой порт для пассивных FTP-соединений. Мы укажем минимальный и максимальный диапазон портов, а затем откроем диапазон в нашем брандмауэре.

Добавьте в файл конфигурации следующие строки:

/etc/vsftpd.conf

pasv_min_port=30000pasv_max_port=31000

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

/etc/vsftpd.conf

userlist_enable=YESuserlist_file=/etc/vsftpd.user_listuserlist_deny=NO

Когда эта опция включена, вам необходимо явно указать, какие пользователи могут войти, добавив имена пользователей в файл /etc/vsftpd.user_list (по одному пользователю в строке).

6. Обеспечение передачи с помощью SSL/TLS

Чтобы шифровать FTP-передачи с помощью SSL/TLS, вам необходимо иметь сертификат SSL и настроить FTP-сервер для его использования.

Вы можете использовать существующий сертификат SSL, подписанный доверенным центром сертификации, или создать самоподписанный сертификат.

Если у вас есть домен или поддомен, указывающий на IP-адрес FTP-сервера, вы можете легко создать бесплатный сертификат SSL для шифрования.

В этой статье мы сгенерируем самоподписанный сертификат SSL с помощью команды openssl.

Следующая команда создаст 2048-битный закрытый ключ и самоподписанный сертификат, действительный в течение 10 лет. Как закрытый ключ, так и сертификат будут сохранены в одном файле:

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Теперь, когда создан SSL-сертификат, откройте файл конфигурации vsftpd:

sudo nano /etc/vsftpd.conf

Найдите директивы rsa_cert_fileи rsa_private_key_file, измените их значение pam в пути к файлу и установите директиву ssl_enable на YES:

/etc/vsftpd.conf

rsa_cert_file=/etc/ssl/private/vsftpd.pemrsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES

Если не указано иное, FTP-сервер будет использовать только TLS для обеспечения безопасных подключений.

Перезапустите службу vsftpd

После того, как вы закончите редактирование, файл конфигурации vsftpd (исключая комментарии) должен выглядеть примерно так:

/etc/vsftpd.conf

listen=NOlisten_ipv6=YESanonymous_enable=NOlocal_enable=YESwrite_enable=YESdirmessage_enable=YESuse_localtime=YESxferlog_enable=YESconnect_from_port_20=YESchroot_local_user=YESsecure_chroot_dir=/var/run/vsftpd/emptypam_service_name=vsftpdrsa_cert_file=/etc/ssl/private/vsftpd.pemrsa_private_key_file=/etc/ssl/private/vsftpd.pemssl_enable=YESuser_sub_token=$USERlocal_root=/home/$USER/ftppasv_min_port=30000pasv_max_port=31000userlist_enable=YESuserlist_file=/etc/vsftpd.user_listuserlist_deny=NO

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

sudo systemctl restart vsftpd

Открытие брандмауэра

Если вы используете брандмауэр UFW, вам необходимо разрешить FTP-трафик.

Чтобы открыть порт 21( порт команд FTP), порт 20( порт данных FTP) и 30000-31000(диапазон пассивных портов), выполните следующие команды:

sudo ufw allow 20:21/tcpsudo ufw allow 30000:31000/tcp

Чтобы избежать блокировки, мы откроем порт 22:

sudo ufw allow OpenSSH

Перезагрузите правила UFW, отключив и снова включив UFW:

sudo ufw disablesudo ufw enable

Чтобы проверить выполнение изменений:

sudo ufw statusStatus: active To Action From– —— —-20:21/tcp ALLOW Anywhere 30000:31000/tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20:21/tcp (v6) ALLOW Anywhere (v6) 30000:31000/tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)

Создание пользователя FTP

Чтобы протестировать наш FTP-сервер, мы создадим нового пользователя.

  • Если у вас уже есть пользователь, которому вы хотите предоставить FTP-доступ, пропустите 1-й шаг.
  • Если вы установили allow_writeable_chroot=YES в своем файле конфигурации, пропустите 3-й шаг.
  1. Создайте нового пользователя с именем newftpuser:sudo adduser newftpuser
  2. Добавьте пользователя в список разрешенных пользователей FTP:echo “newftpuser” | sudo tee -a /etc/vsftpd.user_list
  3. Создайте дерево каталогов FTP и установите правильные разрешения:sudo mkdir -p /home/newftpuser/ftp/uploadsudo chmod 550 /home/newftpuser/ftpsudo chmod 750 /home/newftpuser/ftp/uploadsudo chown -R newftpuser: /home/newftpuser/ftp

    Как обсуждалось в предыдущем разделе, пользователь сможет загружать свои файлы в каталог ftp/upload.

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

Отключение доступа к оболочке

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

Чтобы отключить доступ к оболочке, мы создадим новую оболочку, которая просто напечатает сообщение, сообщающее пользователю, что их учетная запись ограничивается только доступом к FTP.

Создайте оболочку /bin/ftponly и сделайте ее исполняемой:

echo -e '#!/bin/shecho “This account account is limited to FTP access only.”' | sudo tee -a /bin/ftponlysudo chmod a+x /bin/ftponly

Добавьте новую оболочку в список допустимых оболочек в файл /etc/shells

echo “/bin/ftponly” | sudo tee -a /etc/shells

Измените оболочку пользователя на /bin/ftponly:

sudo usermod newftpuser -s /bin/ftponly

Заключение

В этой статье вы узнали, как установить и настроить безопасный и быстрый FTP-сервер в вашей системе Ubuntu 18.04.

, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник: https://andreyex.ru/ubuntu/kak-ustanovit-ftp-server-s-vsftpd-na-ubuntu-18-04/

Настройка FTP-сервера на примере Ubuntu Linux

Установки и настройка FTP-сервера в Ubuntu

Настройка FTP-сервера на примере Ubuntu Linux В данной статье будет показано, как выполняется настройка FTP сервера на Ubuntu Linux. Статья подходит пользователям Виртуального сервера Ubuntu. Для передачи файлов используется протокол FTP (File Transfer Protocol), поэтому мы будем настраивать ни что иное, как FTP-сервер.

Выбор FTP-сервера 

На базе Linux/UNIX разработано очень много различных FTP-серверов, а именно: proftpd, pure-ftpd, wu-ftpd, vsftpd. Какой из них выбрать?

Если вам нужно максимум настроек и максимальная гибкость, тогда нужно выбрать proftpd. Это настоящий монстр (в хорошем смысле этого слова) по сравнению с остальными. 

Vsftpd (Very Secure FTP Daemon) позиционируется как простой, но очень защищенный FTP. Обслуживает официальные репозитарии ftp.debian.org, ftp.redhat.com, ftp.openbsd.org, ftp.freebsd.org и других дистрибутивов.

Если настройка FTP сервера Ubuntu выполнена правильно, и есть надежда на лучшую защищенность, он вроде бы работает чуть быстрее — вот что можно сказать о vsftpd.

Серьезное ограничение vsftpd — он не позволяет в системе одновременную регистрацию обычных и анонимных клиентов. 

Если у вас совсем простой проект и вам нужен сервер, который практически не нужно настраивать, тогда ваш выбор — pure-ftpd. Сервер простенький, но на production-серверах его использовать не рекомендуется. 

Самый древний вариант — wu-ftpd. Старый и «дырявый». По причине его почтенного возраста и не очень совершенной безопасности не рекомендуется к использованию. Оптимальным вариантом на сегодняшний день является сервер proftpd. Настройка FTP сервера Ubuntu такого типа требует знаний, но это наиболее гибко настраиваемое и при этом защищенное решение. 

Установка FTP-сервера 

Для установки proftpd нужно установить одноименный пакет, который имеется во всех дистрибутивах Linux. Введите команду: 

apt install proftpd

Рис. 1. Установка FTP-сервера

Конфигурационные файлы сервера хранятся в каталоге /etc/proftpd. Основной конфигурационный файл называется proftpd.conf и будет рассмотрен далее. 

Управление и настройка FTP сервера Ubuntu выполняется с помощью команд: 

# service proftpd start # service proftpd restart # service proftpd stop # service proftpd status

Первая команда, как обычно, запускает сервер, вторая — перезапускает, третья — останавливает. Последняя команда показывает состояние сервера. Когда серверу «плохо», с помощью этой команды можно узнать, что ему «не нравится». Пока запускать сервер не нужно. 

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

Далее — небольшое практическое руководство, необходимое чтобы была выполнена настройка FTP сервера Ubuntu. Первым делом нужно исправить директиву DefaultRoot так:

DefaultRoot ~

Для каждого пользователя его домашний каталог станет его корневым каталогом. Это означает, что клиент не сможет выйти за пределы его домашнего каталога и прочитать ваши системные конфигурационные файлы. 

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

В глобальной секции можно ограничить доступ только пользователям вашей виртуальной сети, для этого потребуется дополнительная настройка FTP сервера Ubuntu. Это можно сделать путем ограничения операции LOGIN, например: 
der deny, allow DenyAll Allow from 10.0.0.

IP-адрес виртуальной сети можно посмотреть в разделе Сети панели управления Xelent. Если у вас несколько виртуальных сетей, нужно указать IP-адрес сети, к которой подключен настраиваемый сервер. 

Рис. 2. IP-адрес виртуальной сети 

Конечно, такое ограничение допустимо только, если вы создаете FTP-сервер для нужд компании. Если вы собираетесь предоставлять доступ всем желающим, например, создаете хостинг-сервер, то ограничивать регистрацию клиентов не нужно. 

Теперь поговорим об аутентификации пользователей. В большинстве случаев вам будет удобнее использовать для аутентификации саму систему: 

AuthOrder mod_auth_unix.c

Если FTP-пользователей немного (пусть даже около сотни), тогда в Linux настройка FTP сервера делается проще. При желании можно использовать аутентификацию PAM: 

AuthOrder mod_auth_pam.c* mod_auth_unix.c

Когда же пользователей очень много (несколько сотен или тысяч), удобнее для аутентификации использовать MySQL. В этом случае учетные записи FTP-пользователей будут храниться не в /etc/passwd, а в отдельной таблице MySQL. Такой вариант настройки выходит за рамки этой статьи и будет непременно рассмотрен в следующих наших статьях. Следите за нашим блогом. 

Ускорить аутентификацию может отключение следующих директив: 

IdentLookups off UseReverseDns off

Первая строка отключает Ident-запросы (давно уже не используются), вторая — запрещает разрешать IP-адреса пользователей в доменные имена. При желании вы всегда сможете разрешить IP-адрес в доменное имя вручную, если вам это будет нужно. Зато при частом использовании сервера отключив разрешение IP-адресов, вы существенно повысите скорость работы сервера. 

Директива TimeoutLogin задает, сколько времени можно потратить пользователю на аутентификацию. По умолчанию — 60 секунд. Представьте ситуацию. Пользователь подключается к серверу. Сервер просит его ввести логин. Пользователь его вводит. Затем пользователь долго и нудно вспоминает свой пароль.

Если с момента подключения прошло 60 секунд, а пользователь так и не ввел пароль, то он отключается. Но кто сейчас вводит пароль вручную? Обычно он сохраняется в FTP-клиенте таком как Total Commander, Filezilla. Программа вводит пароль моментально, поэтому нечего ждать 60 секунд.

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

TimeoutLogin 20

В Ubuntu установка FTP сервера позволяет указать, сколько клиентов могут подключаться с одного и того же IP-адреса. Если вы настраиваете корпоративный сервер, то, очевидно, с одного IP-адреса может подключаться только один клиент: 

MaxClientsPerHost 1

Но если вы настраиваете FTP-сервер, к которому будут подключаться пользователи Интернета, нужно помнить о NAT. Представьте, что есть другая локальная сеть с одним реальным IP-адресом (как правило, реальный IP-адрес есть только на шлюзе).

Получается, что к вашему серверу могут подключиться несколько пользователей из этой сети и у всех них будет одинаковых IP-адрес, хотя сами пользователи будут разные. Обычно такие ситуации — редкие, поэтому можно ограничиться 2–3 клиентами.

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

Здесь решать вам, в Ubuntu установка FTP сервера позволяет настраивать и этот параметр. Пока установим ограничение на уровне 3 пользователей с одного IP-адреса:

MaxClientsPerHost 3

Максимальное число одновременных клиентов задается директивой MaxInstances. Для предотвращения DoS-атак лучше не устанавливать большие значения для этого параметра: 

MaxInstances 20 С другой стороны, если выполняется Ubuntu установка FTP сервера хостинг-провайдера, на котором будет 1000 пользователей, а вы разрешили одновременную работу всего двадцати пользователям, может возникнуть ситуация, когда пользователи не смогут войти на сервер. Тогда придется увеличивать это число. Насколько — нужно смотреть по ситуации и по количеству пользователей. Теоретически можно увеличить это значение до 10% от количества пользователей, например: 
MaxInstances 100

Об оперативной памяти можно особо не заботиться, proftpd довольно экономно ее использует. Каждый процесс proftpd занимает около 2.5 Мб, следовательно, 100 процессов займут всего 250 Мб. Самое страшное — это загрузка процессора.

При закачке одного файла один процесс proftpd занимает от 10 до 30% процессорного времени одного ядра. Вот и считаем, что если даже один процесс расходует 10% процессорного времени одного ядра, всего 10 процессов «сожрут» одно ядро процессора.

40 одновременных процессов окажут ощутимое влияние даже на четырехядерный процессор. Вот поэтому в настройках по умолчанию и рекомендует не превышать значение 30 для этого параметра. Также довольно интересный параметр MaxClientsPerUser. Означает, сколько соединений может создать один пользователь.

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

MaxClientsPerUser 1 «Only one connection at a time».

Когда выполняется настройка FTP сервера Ubuntu server, первый параметр этой директивы — число соединений. Второй — сообщение об ошибке, которое будет выведено.

Если у клиента медленное или нестабильное соединение, бывает так, что он может начать передачу файла, но потом связь может оборваться. Можно задать тайм-аут, определяющий, сколько нужно ждать в такой ситуации до разъединения.

Медленные и нестабильные соединения уходят в прошлое, поэтому можно понизить время ожидания с 5 минут (300 секунд) до 2 минут: 

TimeoutStalled 120 Это делается специально, чтобы процесс proftpd завершился как можно быстрее и не занимал драгоценное процессорное время. 

Максимальная продолжительность сессии с момента аутентификации задается директивой TimeoutSession. По умолчанию эта настройка FTP сервера Ubuntu server составляет 1 час, чего вполне хватит даже для загрузки больших файлов.

Например, при относительно низкой скорости загрузки в 1 Мбайт/с файл размером 1 Гб загрузится примерно за 1024 секунды. То есть за одну такую сессию пользователь сможет загрузить три таких файла.

Думаю, этого более, чем достаточно. 

Если облака для вас
не просто теория

Широкий спектр услуг по выделенным северам

и мультиклауд-решениям

Анонимные пользователи 

По умолчанию секция Anonymous, разрешающая вход анонимных пользователей, выглядит так (все комментарии переведены на русский язык):

      # Limit LOGIN

      #

      #     Order Allow,Deny

      #     Allow from .examples.net,113.141.114.1

      #     Deny from All

      #

      # Ограничиваем WRITE везде, запрещаем запись полностью

            DenyAll

      # LoginPasswordPrompt — будем ли отображать приветствие или нет

      LoginPasswordPrompt off

      # DirFakeMode — прячем настоящие разрешения файлов/каталогов

      DirFakeMode 0640

      # DirFakeUser — прячем настоящих владельцев файлов/каталогов

      DirFakeUser On

      # DirFakeGroup — скрываем настоящую группу файла/каталога

      DirFakeGroup On

      # Для анонимного входа можно использовать как имя anonymous, так и ftp

      UserAlias         anonymous ftp

      # Максимальное число одновременных анонимных пользователей

      MaxClients        10

      # Максимальный размер получаемого файла

      #MaxRetrieveFileSize    512 Mb

      # Ограничиваем скорость передачи данных до 255 Кайт/с

      #TransferRate APPE,RETR,STOR,STOU  255

            # Файл 'welcome.msg' будет отображаться при входе, а файл '.message' при

      # каждом новом изменении каталога

      DisplayLogin            welcome.msg

      DisplayChdir            .message

      # Далее следует закомментированная секция Directory, позволяющая указать

      # параметры каталога. В данном случае ограничивается доступ к каталогу

      # pub. Получить доступ к нему могут только сети .examples.net и с IP

# 113.141.114.1

      #

      # 

      #     Order Allow,Deny

      #     Allow from .examples.net,113.141.114.1

      #     Deny from All

      # 

      #

      # Следующая секция содержит параметры каталога uploads, который обычно

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

# Если вам нужна такая возможность, раскомментируйте эту секцию

# Мы запретили чтение этого каталога, но разрешили загрузку в

# него файлов

      #

      # 

            DenyAll

      # 

      # 

            AllowAll

      # 

      #

При желании вы можете расскомментировать необходимые вам строки. Поскольку последняя директива Directory закомментирована, то анонимные пользователи не смогут загружать в каталог uploads файлы. Если нужно разрешить это действие, директиву Directory нужно раскомментировать: 

       
            DenyAll
       
       
            AllowAll
       
     

Доступ на запись разрешен всем (AllowAll), но мы рекомендуем открыть его только пользователям нашей виртуальной сети — так безопаснее: 

       
            DenyAll
       
       
            DenyAll
            Allow from 10.0.0.
       
     

Также в секции Limit LOGIN можно задать ограничение, позволяющее регистрироваться анонимным пользователям только с вашей виртуальной сети, как было показано ранее. 

Как все будет готово, запустим сервер: 

# service proftpd start 

После запуска просмотрим его состояние (рис. 3): 

# service proftpd status 

Рис. 3. FTP-сервер запущен 

На этом все. Если у вас что-то не получилось, обращайтесь в техническую поддержку Xelent.

Источник: https://www.xelent.ru/blog/nastroyka-ftp-servera-na-primere-ubuntu-linux/

Как установить FTP сервер на Ubuntu VPS

Установки и настройка FTP-сервера в Ubuntu

В этом руководстве расскажем, как установить FTP сервер на VPS с ОС Ubuntu. Будем использовать сервер vsftpd, который считается самым быстрым и безопасным FTP сервером для UNIX-систем.

FTP или File Transfer Protocol – протокол приема и передачи файлов в сети. Используя модель клиент/сервер и безопасность SSL/TLS, FTP позволяет пользователям обмениваться файлами с удаленными компьютерами безопасно, эффективно и надежно, передавая данных по протоколу TCP/IP.

FTP работает подобно HTTP или SMTP, с единственным отличием, что он ответственен за безопасную передачу данных от отправителя к получателю, а не веб-страницы с сервера к пользователю или электронного письма через интернет. В этом руководстве рассмотрено создание FTP сервера на ОС Ubuntu версии 16.04.

Примечание: Текущее руководство основывается на версии ОС Ubuntu 16.04. Но вы можете применить те же шаги по созданию FTP сервера на Ubuntu 14.04.

Шаг 1 – Установка Vsftpd

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

sudo apt-get update

Дождитесь завершения всех процессов и вы увидите подтверждающее сообщение:

Затем установим демон vsftpd следующей командой:

sudo apt-get install vsftpd

Вы получите уведомление требующее подтверждения, нажмите и Enter для продолжения установки.

По завершению установки, сделаем бэкап оригинального файла конфигурации, чтобы начать с чистого файла настроек:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original

Теперь мы можем переходить к следующему шагу и настраивать фаервол.

Шаг 2 – Разрешение FTP трафика на фаерволе

Чтобы позволить серверу FTP, развёрнутому на ОС Ubuntu взаимодействовать с внешним миром, нужно настроить путь через фаервол. Для начала посмотрим включён ли фаервол. Запустите следующую команду для определения статуса:

sudo ufw status

Если вы увидите такое сообщение:

ufw: command not found

Это значит, что фаервол не установлен и можно перходить к следующему шагу.

Если же на выходе будут показаны правила или сообщение о том, что фаервол активен, нужно определить, как он будет обрабатывать FTP-трафик.

Давайте сделаем следующее, откроем порты 20 и 21 для трафика FTP; порты 40000-50000 будут зарезервированы, как диапазон пассивных портов, который в конечном итоге будет установлен в файле конфигурации; порт 990 будет использоваться, когда TLS будет включен. Выполним следующие команды:

sudo ufw allow 20/tcpsudo ufw allow 21/tcpsudo ufw allow 990/tcpsudo ufw allow 40000:50000/tcp

Теперь посмотрим на статус:

Результат будет выглядеть где-то так:
Output Status: active To                         Action      From —                              ——      —- 990/tcp                    ALLOW       Anywhere 20/tcp                     ALLOW       Anywhere 21/tcp                     ALLOW       Anywhere 40000:50000/tcp            ALLOW       Anywhere 20/tcp (v6)                ALLOW       Anywhere (v6) 21/tcp (v6)                ALLOW       Anywhere (v6) 990/tcp (v6)               ALLOW       Anywhere (v6) 40000:50000/tcp (v6)       ALLOW       Anywhere (v6)

Теперь, все необходимые порты открыты и доступны для нас и мы можем переходит к следующему шагу.

Шаг 3 – Создание каталога пользователя

На третьем шаге создания Ubuntu FTP сервера, нужно выбрать пользователя, который будет подключатся по FTP. Для этого создадим нового пользователя, выполнив такую команду:

sudo adduser alex

Заполните пароль и другие детали, когда запросит. В идеале, с точки зрения безопасности, FTP должен быть ограничен одним специальным каталогом. Vsftpd использует chroot для создания этой защиты. Со включённым chroot, локальный пользователь ограничивается его домашним каталогом (по умолчанию).

Однако, может оказаться, что из-за защиты vsftpd, пользователь не сможет ничего создавать в каталоге. Мы не убираем права на запись в домашнем каталоге, вместо этого мы сделаем каталог ftp, который будет вести себя как chroot вместе с сохранением способности к записи, что будет позволять хранить файлы.

Используйте такую команду для создания каталога FTP:

sudo mkdir /home/alex/ftp

Установите права владения:

sudo chown nobody:nogroup /home/alex/ftp

Наконец, удалите права на запись:

sudo chmod a-w /home/alex/ftp

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

sudo ls -la /home/alex/ftp

На выходе мы увидим приблизительно это:

total 8 dr-xr-xr-x 2 nobody nogroup 4096 Jun 29 11:32 . drwxr-xr-x 3 alex   alex    4096 Jun 29 11:32 ..

На следующем этапе мы создадим файл, содержащий каталоги и права доступа к ним:

sudo mkdir /home/alex/ftp/files sudo chown alex:alex /home/alex/ftp/files

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

echo “vsftpd sample file” | sudo tee /home/alex/ftp/files/sample.txt

Шаг 4 – Настройка vsftpd

Чтобы продолжить устанавливать FTP сервер на Ubuntu VPS, нам нужно настроить vsftpd и наш FTP-доступ. В этом руководстве мы разрешим одному пользователю подключаться по FTP, используя локальную консоль.

Необходимая для этого двух этапная настройка уже установлена в конфигурационном файле (vsftpd.conf).

Вначале проверьте, чтобы настройки в файле совпадали с указанными ниже, используя команду nano:

sudo nano /etc/vsftpd.conf. . . # Allow anonymous FTP? (Disabled by default). anonymous_enable=NO # # Uncomment this to allow local users to log in. local_enable=YES . . .В этом же файле, продолжим удаляя # включаем write_enable:
. . . write_enable=YES . . .

Chroot также раскоментируем, чтобы убедиться, что пользователь, подключившийся по FTP имеет доступ к файлам внутри разрешённой директории:

. . . chroot_local_user=YES . . .

Несколько новых значений будут также нужны для добавления вручную. Вы можете просто вставить их в конец файла. Вначале, user_sub_token добавим к пути каталога local_root. Это позволит конфигурации работать с текущим пользователем и любым другим пользователем, который будет добавлен позже:

user_sub_token=$USER local_root=/home/$USER/ftp

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

pasv_min_port=40000 pasv_max_port=50000

В этом руководстве мы планируем дать доступ индивидуальной основе, поэтому давайте установим настройки так, чтобы дать доступ только тем пользователям, которые непосредственно добавлены в список:

userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO

Флаг userlist_deny отвечает за переключение логики, когда он установлен в “NO”, только те пользователи, которые есть в списке имеет доступ. По завершению нажмите CTRL+X и подтвердите сохранения изменений в файле.

В завершение, продолжим создание и добавление нашего пользователя в файл:

echo “alex” | sudo tee -a /etc/vsftpd.userlist

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

cat /etc/vsftpd.userlist

Вывод должен быть “alex”, как показано на скриншоте:

Перезапустите демона, используя следующую команду, чтобы запустить изменения настроек:

sudo systemctl restart vsftpd

Шаг 5 – Делаем защищенный FTP

По умолчанию, FTP не делает никакого шифрование данных, поэтому мы будем использовать TLS/SSL, чтобы позаботиться о безопасности. В качестве первого шага нам нужно создать SSL сертификат и использовать его для защиты Ubuntu FTP сервера. Для начала выполним следующую команду:

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

Флаг –days делает сертификат действующим в течение года и мы включаем 2048-битный приватный ключ RSA в этой же команде. Когда запросит нужные данные введите их в предоставленном поле.

После создания сертификата ещё раз откройте конфигурационный файл:

sudo nano /etc/vsftpd.conf

В конце файла есть строка с “_rsa”. Закомментируйте эти две строки:

# rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem# rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key Вместо этого мы направим конфиг файл на сертификат, который мы создали. Добавьте такие строки:
rsa_cert_file=/etc/ssl/private/vsftpd.pemrsa_private_key_file=/etc/ssl/private/vsftpd.pem

Теперь мы включим SSL и убедимся, что только пользователи со включённым SSL могут с нами связываться. Измените значение ssl_enable на YES:

ssl_enable=YES

Теперь добавьте следующие строки для продолжения создания защиты (это запретить какие-либо анонимные соединения с использованием SSL):

allow_anon_ssl=NOforce_local_data_ssl=YESforce_local_logins_ssl=YES

Настройте TLS используя:

ssl_tlsv1=YESssl_sslv2=NOssl_sslv3=NO

Здесь мы добавим ещё 2 опции. Во-первых, повторное использование SSL не будет необходимым, потому что это может привести к разрывам у большого количества клиентов. Во-вторых, мы будем использовать высокозащищенный код шифрования, что будет означать, что длина ключа соответствует (или больше, чем) 128 бит.

require_ssl_reuse=NOssl_ciphers=HIGH

Сделаем ещё раз перезапуск, для вступления изменений в силу:

sudo systemctl restart vsftpd

Прекрасно! Вот вы и настроили FTP сервер на вашем Ubuntu VPS для работы с протоколом SSL/TLS.

Шаг 6 – Проверка подключения, используя FileZilla

Сегодня FTP клиенты поддерживают настройку шифрования TLS, поэтому это прекрасная возможность проверить, работает ли наш Ubuntu FTP сервер как следует. Чтобы проверить соединение, будем использовать FileZilla FTP клиент. Для начала запустите FileZilla, нажатием на иконку Site Manager.

Нажмите на кнопку New Site в появившемся окне начните заполнять данные о Ubuntu FTP сервере.

Заполните необходимые поля информацией о недавно созданном Ubuntu FTP сервере. Так как мы настроили его с использованием TLS, мы может отметить настройку шифрования в “explicit FTP over TLS” положение. Окончательное окно настроек выглядит так:

Как только настроите, нажимайте Connect и появится окошко с запросом для введения пароля пользователя FTP.

В заключение вам нужно будет подтвердить SSL сертификат на вашем FTP сервере на Ubuntu VPS.

После подтверждения, корневой root-каталог с тестовым файлом появятся на вашем экране.

Это всё! Теперь вы можете производить любую передачу файлов с вашего компьютера на Ubuntu FTP сервер и обратно.

Установка FTP на Ubuntu 16.04

Установки и настройка FTP-сервера в Ubuntu

FTP или File Transfer Protocol – это достаточно древний, но в то же время надёжный и проверенный протокол выгрузки файлов на удалённый сервер или их скачивания. Также иногда этот протокол применяется веб-мастерами для управления файлами или организации хранилища данных.

В этой статье мы рассмотрим, как выполняется установка FTP на Ubuntu 16.04, как настроить все необходимые компоненты, в том числе и защищённое соединение. Мы будем использовать FTP-сервер VSFTPD или Very Secure FTP Daemon, который обеспечивает самую надёжную защиту от уязвимостей.

Установка FTP Ubuntu

Программа доступна из официальных репозиториев, поэтому установка FTP на Ubuntu Server 16.04 не должна вызвать проблем. Сначала обновите список пакетов в репозиториях, затем установите саму программу:

sudo apt update
$ sudo apt install vsftpd

Когда установка будет завершена, вам необходимо включить сервис vsftpd, поскольку он не будет запущен по умолчанию, а также добавить службу в автозагрузку:

sudo systemctl start vsftpd
$ sudo systemctl enable vsftpd

Если у вас установлен фаервол ufw, а такая ситуация возникает, когда вы пытаетесь установить FTP на Ubuntu Server, нужно открыть порты 20 и 21 для нормальной работы. Чтобы это сделать, выполните команды:

sudo ufw allow 20/tcp$ sudo ufw allow 21/tcp

$ sudo ufw status

Установка FTP Ubuntu завершена, но теперь вам осталось настроить всё необходимое для обеспечения безопасной работы. Никогда не используйте FTP-сервер с настройками по умолчанию в производственных сетях, это небезопасно.

Настройка FTP Ubuntu

Теперь перейдём к настройке. Нам нужно поменять всего несколько параметров, чтобы полностью защитить ваш FTP-сервер. Сначала мы рассмотрим самые очевидные настройки: отключения анонимного входа и так далее. Сначала необходимо скопировать оригинальный файл настроек, чтобы в случае проблем вернуть всё как было:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

Затем откройте файл в редакторе:

sudo vi /etc/vsftpd.conf

Затем добавьте такие настройки. Вам нужно будет найти и изменить значения указанных строк, добавлять новые, если они уже есть, не стоит. Сначала отключаем анонимный вход:

anonymous_enable = NO

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

local_enable = YES

ля авторизованных пользователей разрешаем команды, позволяющие изменять файловую систему:

write_enable = YES

Установим значение umask для новых файлов, создаваемых по FTP:

local_umask = 022

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

dirmessage_enable = YES

Записывать в лог файл все транзакции по передаче файлов и использовать стандартный формат лога:

xferlog_enable = YES
xferlog_std_format=YES

Использовать порт 20 для передачи данных вместо случайного, это нужно для нормальной работы фаервола:

connect_from_port_20 = YES

Указываем, что нужно ожидать входящих соединений:

listen=YES

Использовать PAM-сервис vsftpd:

pam_service_name=vsftpd

На завершение разрешим аутентификацию только пользователей, перечисленных в файле userlist:

userlist_enable = YES

Указываем файл с нашими виртуальными пользователями:

userlist_file=/etc/vsftpd.userlist

По умолчанию таким пользователям запрещён вход в систему, но мы хотим совсем обратное, поэтому добавьте такую строчку:

userlist_deny=NO

При входе пользователей на FTP-сервер, они могут работать только в корневом каталоге FTP. Если вы хотите, чтобы пользователи были ограничены только своей домашней папкой, то необходимо раскомментировать эти строчки:

chroot_local_user = YES
allow_writeable_chroot = YES

Первая строчка указывает, что нужно разместить пользователя в изолированном домашнем каталоге, а вторая, что ему можно разрешить запись в этот каталог. Настройка FTP Ubuntu почти завершена, сохраните изменения в конфигурационном файле и перезапустите vsftpd:

sudo systemctl restart vsftpd

Тестирование vsftpd

Сервер готов, но система настроена ещё не полностью. Сначала создадим нашего тестового пользователя с помощью useradd:

sudo useradd -m -c “Test User” -s /bin/bash testuser
$ sudo passwd testuser

Поскольку мы хотим подключаться от его имени к FTP-серверу, то нам нужно добавить его в vsftpd.userlist:

echo “testuser” | sudo tee -a /etc/vsftpd.userlist
$ cat /etc/vsftpd.userlist

Теперь самое время подключится к нашему FTP-серверу и проверить, как там всё работает. Попробуем войти от имени анонимного пользователя:

У нас ничего не получится. Теперь попробуем войти от имени нашего тестового пользователя, и всё заработает как нужно.

Обратите внимание, что опасно давать пользователям доступ на запись в их домашнюю папку. Делайте это, только если уверены в том, что это необходимо и безопасно.

Настройка домашних папок пользователей

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

sudo mkdir -p /home/testuser/ftp/files

Уберём право на запись для папки ftp:

sudo chown nobody:nogroup /home/testuser/ftp
$ sudo chmod a-w /home/testuser/ftp

Затем дайте необходимые полномочия пользователю на запись в подпапку.

sudo chown -R testuser:testuser /home/testuser/ftp/files
$ sudo chmod -R 0770 /home/testuser/ftp/files/

Теперь вернёмся к конфигурационному файлу vsftpd.conf. Сначала закомментируйте строчку:

 allow_writeable_chroot = YES

Теперь добавьте такие строчки:

user_sub_token = $USER
local_root=/home/$USER/ftp

Первая из них добавляет переменную $USER, в которой содержится имя пользователя, а вторая задаёт корневую папку для каждого пользователя. Осталось снова перезапустить FTP-сервер:

sudo systemctl restart vsftpd

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

Настройка защищенного соединения

Установка FTP на Ubuntu 16.04 завершена, но в наше время небезопасно использовать открытую передачу данных через сеть. Всё, что только возможно, необходимо шифровать. Поэтому мы рассмотрим, как настроить защищённое соединение для vsftpd. Сначала создадим папку и сгенерируем сам сертификат, который будем использовать:

sudo mkdir /etc/ssl/private
$ sudo openssl req -x509 -nodes -days 720 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/private/vsftpd.pem

Затем нужно разрешить доступ к портам защищённого соединения FTP с фаерволе UFW:

sudo ufw allow 990/tcp$ sudo ufw allow 40000:50000/tcp

$ sudo ufw status

И осталось внести несколько правок в настройку самого FTP-сервера. Нам нужно включить ssl_enable и отключить поддержку шифрования sslv2 и sslv3, оставляем только tlsv1:

ssl_enable=YESssl_tlsv1=YESssl_sslv2=NO

ssl_sslv3=NO

Далее раскоментируйте такие строки:

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.key

Запретите вход анонимных пользователей по SSL:

allow_anon_ssl=NOforce_local_data_ssl=YES

force_local_logins_ssl=YES

Теперь установим самый сложный шифр SSL:

ssl_ciphers=HIGH

И настроим диапазон портов для передачи данных:

pasv_min_port=40000
pasv_max_port=50000

Осталось перезагрузить наш сервис:

sudo systemctl restart vsftpd

Теперь тестируем, что у нас получилось:

Как видите, мы уже не можем авторизоваться с помощью утилиты ftp. FTP-сервер выдаёт, что мы обязаны использовать шифрование. Поэтому для тестирования применим FileZilla:

Теперь все данные будут передаваться по зашифрованному соединению. Установка  FTP-сервер Ubuntu завершена.

Выводы

Источник: https://losst.ru/ustanovka-ftp-na-ubuntu-16-04

Настройка и использование FTP-сервера в Ubuntu Linux

Установки и настройка FTP-сервера в Ubuntu

Библиотека сайта rus-linux.net

Оригинал: How to setup and use FTP Server in Ubuntu Linux Lubos Rendek 28 января 2013 годаПеревод: А. Кривошей

Дата перевода: ноябрь 2013 г.

Практически каждый пользователь, хотя бы иногда работающий в интернете, сталкивался с FTP. В данном руководстве детально и пошагово описывается, как устанавливать FTP-сервер в Ubuntu Linux.

Мы покажем, как установить его в нормальном и автономном режимах, а также как обеспечить его безопасность.

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

2. Соглашения

Далее в этой статье мы будем говорить просто об FTP-сервере, подразумевая vsFTPd.

3. Что такое FTP

Для тех, кто не знаком с FTP, ниже представлено краткое описание его возможностей. FTP расшифровывается как File Transfer Protocol.

Название подразумевает, что этот протокол используется для передачи файлов или директорий с одного хоста на другой по сети – как локальной, так и через интернет.

Главные возможности vsFTPd: настройки для виртуальных IP, виртуальные пользователи, сетевые или автономные операции, большой спектр пользовательских настроек, регулирования пропускной способности канала, настройка лимитов по IP, поддержка IPv6 и шифрования (с помощью SSL).

4. Установка FTP-сервера в Ubuntu

Как всегда в Ubuntu и системах на ее основе, установка FTP-сервера выполняется одной командой. Откройте терминал и введите:

$ sudo apt-get install vsftpd

После выполнения этой команды сервер будет установлен и запущен.

Setting up vsftpd (2.3.5-1ubuntu2) …vsftpd start/running, process 1891

5.1. Автономный режим

По умолчанию vsftpd запускается в автономном режиме, в котором запускаемая на сервере служба использует собственный стартовый скрипт, называемый демоном. В случае vsftpd это /etc/init.d/vsftpd. Данный автономный демон в момент старта службы FTP берет управление нею на себя. Демон vsftpd предоставляет администратору несколько команд для управления FTP-сервером vsftpd:

start или stop – используется для запуска или остановки ftp-сервера.
status – выводит подробную информацию о текущем состоянии вашего FTP-сервера.
restart – это альтернатива последовательности из остановки и запуска сервера.

Если сервер уже остановлен, команда restart запустит его.
reload – эта команда позволяет перезагрузить и применить все новые настройки. Ее отличие от restart заключается в том, что применение новых настроек производится без остановки сервера.

Для запуска, перезагрузки и применения новых настроек используется утилита service:

$ sudo service vsftpd start

Такой синтаксис применяется для выполнения всех команд.

5.2. Нормальный режим

Другой подход к запуску vsftpd – это нормальный режим, в котором за работу службы отвечает суперсервер xinetd. Для запуска сервера vsftpd в нормальном режиме необходимо сначала установить суперсервер xinetd:

$ sudo apt-get install xinetd

Приведенная выше команда устанавливает и запускает суперсервер xinetd. В случае, если он у вас уже установлен, эта команда не нужна.Далее, создайте файл vsftpd в директории /etc/xinetd.d/ со следующим содержимым:

service ftp{ disable = no socket_type = stream wait = no user = root server = /usr/sbin/vsftpd per_source = 5 instances = 200 no_access = 10.1.1.10 banner_fail = /etc/vsftpd.busy log_on_success += PID HOST DURATION log_on_failure += HOST}

В то же время вы можете изменять любые опции, чтобы настроить суперсервер в соответствии со своими требованиями.Опции, на которые стоит обратить внимание:

server – введите в командной строке “$ which vsftpd”, чтобы узнать правильный путь.

no_access – все хосты с IP-адресами, указанными в этой директиве, будут блокированы.
banner_fail – здесь можно указать путь к текстовому файлу, содержимое которого будет показано для любых блокированных IP-адресов.

Далее нам необходимо отредактировать конфигурационный файл FTP-сервера /etc/vsftpd.conf, заменив строку

на

Эта директива даст команду FTP-серверу не открывать никаких портов, полностью перепоручив их суперсерверу xinetd. Перед тем, как запустить сервер в нормальном режиме, убедитесь, что демон vsftpd отключен:

$ sudo service vsftpd stop

Теперь можно запустить FTP-сервер в нормальном режиме с помощью команды:

$ sudo service xinetd restart

Чтобы убедиться в нормальной работе FTP-сервера, протестируйте и откройте порт 21 с помощью команды netstat:

$ netstat -ant | grep 21tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN

6. Создание первого подключения по FTP

Независимо от того, запустили ли вы FTP-сервер в автономном, или в нормальном режиме, вы можете создать первое локальное ftp-подключение. По умолчанию vsftpd разрешает автономный доступ, поэтому при создании нашего первого тестового подключения в качестве имени пользователя мы будем использовать anonymous. Для этого просто введите команду ftp с аргументом localhost:

$ ftp localhostConnected to localhost.220 (vsFTPd 2.3.5)Name (localhost:root): anonymous331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp>ftp> quit221 Goodbye.

Успешное подключение подтверждает, что FTP-сервер в локальной системе настроен правильно. Но перед тем, как перейти к более тонким настройкам, необходимо протестировать FTP-сервер и с нескольких удаленных хостов.

7. Настройка FTP-сервера

В этом разделе мы рассмотрим некоторые базовые примеры опций конфигурации vsftpd.

Примечание: при внесении любых изменений в настройки FTP-сервера не забудьте воспользоваться командой restart/reload, чтобы активировать их.

7.1. Настройка пользовательского доступа

vsftpd позволяет оставить только анонимный доступ, либо позволить пользователям, прописанным в файле /etc/passwd или в соответствующем списке, аутентифицироваться.

7.1.1. Анонимный доступ к FTP

По умолчанию FTP-сервер vsftpd настроен только для анонимного доступа. Если это то, что вам нужно, вы можете облегчить жизнь анонимным пользователям, отключив необходимость ввода пароля.

Наиболее безопасный вариант для FTP-сервера – не разрешать пользователям идентифицироваться с паролем в виде простого текста. Для отключения необходимости ввода пароля анонимными пользователями необходимо в конфигурационном файле /etc/vsftpd.

conf установить значение “NO” для директивы no_anon_password:

7.1.2. Доступ локальных пользователей по FTP

Теперь ваш сервер должен запрещать любой доступ за исключением пользователя anonymous. Чтобы позволить авторизоваться всем пользователям, указанным в файле /etc/passwd, необходимо изменить значение директивы local_enable в файле /etc/vsftpd.conf. Ее значение по умолчанию – “NO”.

Теперь любой пользователь, указанный в файле /etc/passwd, сможет авторизоваться, используя свой пароль.

$ ftp localhostConnected to localhost.220 (vsFTPd 2.3.5)Name (localhost:root): lubos331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp> quit221 Goodbye.

7.1.3. Список доступа пользователей

Сначала создадим список доступа, используемый сервером vsFTPd. Обычно вы можете задать его в директории /etc/. Создайте файл с произвольным именем и перечислите в нем всех пользователей, которым вы хотите разрешить или запретить доступ. Например, давайте создадим новый список с единственным пользователем “lubos”:

echo lubos > /etc/vsftpd.userlist

Далее, определим новый список пользователей в конфиграционном файле /etc/vsftpd.conf и активируем директиву userlist_enable:

userlist_file=/etc/vsftpd.userlistuserlist_enable=YESТаким образом всем пользователям, перечисленным в файле /etc/vsftpd.userlist, будет отказано в доступе к FTP-серверу.
$ ftp localhostConnected to localhost.220 (vsFTPd 2.3.5)Name (localhost:root): lubos530 Permission denied.Login failed.ftp>

Чтобы разрешить доступ всем пользователям, перечисленным в файле /etc/vsftpd.userlist, установите значение “NO” для директивы userlist_deny. При этом вы открываете доступ только пользователям, перечисленным в /etc/vsftpd.userlist. Каждое имя пользователя в этом файле должно располагаться на отдельной строке.

7.2. Смена номера порта

По умолчанию любой FTP-сервер слушает стандартный порт 21 для аутентификации пользователя и порт 20 для передачи данных. vsFTPd не является исключением. Для смены прослушиваемого по умолчанию порта используется директива listen_port в файле /etc/vsftpd.conf. Например, для смены порта на 2121 просто добавьте следующую директиву в ваш конфигурационный файл:

После чего перезапустите FTP-сервер.

Однако это применимо к только к vsFPTd, работающему в автономном режиме. В случае, если ваш FTP-сервер запущен в нормальном режиме с с использованием суперсервера xinetd, и вы хотите изменить порт по умолчанию на 2121, найдите в файле /etc/services строку FTP и замените 21 на 2121, после чего перезапустите xinetd.

$ sudo service xinetd restart

Теперь, как вы можете убедиться, FTP-сервер слушает порт 2121:

$ netstat -ant | grep 2121tcp 0 0 0.0.0.0:2121 0.0.0.0:* LISTEN

7.3. Другие опции конфигурации

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

max_clients – эта опция задает максимальное количество пользователей, одновременно использующих FTP-сервер. 0 означает неограниченное количество пользователей.
max_per_ip – задает максимальное количество пользователей с одного IP-адреса.
download_enable – если ее значение – NO, любой запрос на скачивание будет отклонен.

8. Заключение

На сегодняшний день vsFTPd имеет 125 опций конфигурации. Это делает его очень гибким в настройке и в то же время простым в использовании и администрировании.

Хотите ли вы использовать его дома, в пределах корпоративной сети, или на удаленном сервере, вы можете быть уверены, что vsFTPd полностью удовлетворит ваши нужды.

Кроме того, vsFTPd позволяет активировать sftp, но этот вопрос мы обсудим в следующий раз.

Если вам понравилась статья, поделитесь ею с друзьями:

Источник: http://rus-linux.net/MyLDP/server/ftp.html

Поделиться:
Нет комментариев

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

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.