Как установить FTP-сервер с VSFTPD на Ubuntu 18.04
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-й шаг.
- Создайте нового пользователя с именем newftpuser:sudo adduser newftpuser
- Добавьте пользователя в список разрешенных пользователей FTP:echo «newftpuser» | sudo tee -a /etc/vsftpd.user_list
- Создайте дерево каталогов 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.
Настройка FTP-сервера на примере Ubuntu Linux
Настройка 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.
Как установить FTP сервер на Ubuntu VPS
В этом руководстве расскажем, как установить 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
Вы получите уведомление требующее подтверждения, нажмите Y и 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 или 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
У нас ничего не получится. Теперь попробуем войти от имени нашего тестового пользователя, и всё заработает как нужно.
Обратите внимание, что опасно давать пользователям доступ на запись в их домашнюю папку. Делайте это, только если уверены в том, что это необходимо и безопасно.
Настройка домашних папок пользователей
Чтобы хоть как-то обойти проблемы с безопасностью, вы можете использовать другую папку вместо домашней для предоставления её пользователю. Сначала создадим такую папку для нашего пользователя:
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.pemrsa_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 завершена.
Выводы
Настройка и использование FTP-сервера в Ubuntu Linux
Библиотека сайта 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, но этот вопрос мы обсудим в следующий раз.