Домашний ftp сервер linux

Как поднять ftp сервер на Linux

Одним из самых практичных и хорошо известных протоколов выгрузки файлов на удаленный сервер является File Transfer Protocol (проще говоря, FTP). Этот инструмент нельзя причислять к списку современных разработок, но с актуальностью его применения трудно поспорить. Многие веб-мастера используют данный протокол для создания хранилища информации и управления файлами.

В данном материале пойдет речь о мельчайших нюансах установки и дальнейшей настройке конфигураций FTP-сервера на ПК.

В текущем примере фигурируют ОС Ubuntu, Debian, Centos и один из надёжнейших FTP-серверов под названием VSFTPD. Альтернативой последнему также способен послужить FTP-сервер Very Secure FTP Daemon.

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

Установка ФТП-сервера

Данную программу можно взять из официального репозитория. Первым делом пользователю необходимо произвести обновление перечня пакетов в репозиториях.

Второй мерой будет непосредственно сама установка инструмента. Воспользуйтесь терминалом и перейдем в режиме суперпользоволя:

Процесс установки немного отличается от разных версиях Линукс, поэтому рассмотрим их отдельно.

Для Debian / Ubuntu:

# apt install vsftpd

# yum install vsftpd

# dnf install vsftpd

По окончанию процесса установки важно не упустить один важный момент: самостоятельное включение сервиса vsftpd.

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

На практике это делается следующим образом:

# systemctl start vsftpd

# systemctl enable vsftpd

Важно! При добавлении инструмента в Linux нередко возникают различные помехи и сложности. Одной из распространенных преград становится фаервол ufw — для Centos и iptables для Debian / Ubuntu.

Чтобы решить текущую проблему, пользователю достаточно открыть порты «20» и «21». После этого процесс установки программы продолжится в нормальном режиме.

Чтобы открыть порты, следует выполнить несколько простых действий. Они будут рассмотрены ниже.

Для фаерволла ufw, по умолчанию используется в операционной системе Centos.

# ufw allow 20/tcp

# ufw allow 21/tcp

Для iptables, по умолчанию используется в операциооных системах Debian и Ubuntu.

# iptables -A INPUT -p tcp -m tcp —dport 21 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp —dport 20 -j ACCEPT

После этого процесс установки программы можно считать завершенным. Однако впереди пользователя ожидает процесс настройки компонентов ФТП сервера, установленного для ОС Линукс. Правильные настройки программы – это гарант безопасной работы с системой, поэтому каждому юзеру Линукс следует быть внимательным при дальнейшем изучении нашего материала.

Важно! Установленная программа уже имеет выставленные стандартные настройки, за счет параметров которых FTP-сервер может начинать выполнение своих прямых «обязанностей». Именно это нередко провоцирует халатность со стороны владельцев Линукс. Многие пользователи считают, что настройки по умолчанию выставлены правильно, и менять эти параметры вовсе не обязательно. Дескать, зачем тратить лишнее время, если программа работает.

Но не все так просто, как это может показаться на первый взгляд. Основная загвоздка кроется в том, что подобный режим работы FTP-сервера в производственных сетях – крайне небезопасная затея. Этого нельзя допускать! Именно поэтому мы приступаем к разбору настроек компонентов программы.

Настройка ФТП

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

Это послужит некой перестраховкой на тот случай, если что-то пойдет не поп плану, и будет целесообразным вернуть всё на свои первоначальные места. Копируем данные:

# cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

Затем необходимо запустить редактор для открытия скопированного файла. Это можно сделать благодаря применению данной команды:

Далее потребуется внести некоторые правки в исходный файл.

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

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

Теперь нужно разрешить вход для локальных юзеров Linux. Для этого выполните следующее действие:

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

Так как FTP-сервер начнет образовывать новые файлы, необходимо указать для них другое значение. А именно:

Чтобы юзер системы мог осуществить выбор определенного каталога после прохождения «registration», потребуется включить соответствующее сообщение:

Читайте также:  Картридер драйвер windows 10 asus

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

Это не может быть случайный порт.

Измените текущие параметры в файле следующим способом:

Затем измените параметр, отвечающий за ожидание входящих соединений. Это делается очень просто:

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

Всё это делается с целью повышения уровня безопасности системы. Каких-либо конкретных рекомендаций в этом вопросе быть не может, поскольку всё слишком индивидуально. Пользователю остается лишь отыскать нужные команды для коррективов тех или иных параметров программы.

Как надёжно защитить данные в Linux

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

К чему это приведет, если объяснять простыми словами? Система продолжит передавать данные по FTP-серверу, но поверх SSL-протокола. Лишь этот нюанс отличает новые параметры настроек от параметров, установленных по умолчанию.

Вопрос: как включить FTPS-режим в Линукс?

Ответ: для этих целей понадобится специальная директива. Она указана ниже:

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

Эти данные необходимо заменить в обязательном порядке. Дело в том, что активация режима FTPS для FTP-сервера без ключей и сертификатов является невозможным, поэтому их нужно сгенерировать заново, под свой ПК или сервер.

Заключение

Процесс установки и настройки конфигураций FTP-сервера в Линукс – вполне реальная и легко выполнимая задача для тех, кто умеет безоговорочно следовать инструкциям. Все необходимые базовые рекомендации даны в этой статье.

Еще раз хотим напомнить о важности внесения новых параметров в настройки программы.

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

Источник

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

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

FTP (протокол передачи файлов) — это стандартный сетевой протокол, используемый для передачи файлов в удаленную сеть и из нее. Для Linux доступно несколько FTP-серверов с открытым исходным кодом. Наиболее известными и широко используемыми являются PureFTPd , ProFTPD и vsftpd . Мы будем устанавливать vsftpd (Very Secure Ftp Daemon), стабильный, безопасный и быстрый FTP-сервер. Мы также покажем вам, как настроить сервер, чтобы ограничить пользователей их домашним каталогом и зашифровать всю передачу с помощью SSL / TLS.

Хотя FTP — очень популярный протокол, для более безопасной и быстрой передачи данных следует использовать SCP или SFTP .

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

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

Служба ftp автоматически запустится после завершения процесса установки. Чтобы проверить это, распечатайте статус службы:

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

Настройка vsftpd

Конфигурация сервера vsftpd хранится в файле /etc/vsftpd.conf

Большинство настроек сервера хорошо документированы внутри файла. Чтобы узнать обо всех доступных вариантах, посетите страницу документации vsftpd.

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

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

1. Доступ по FTP

Мы разрешим доступ к FTP-серверу только локальным пользователям. Найдите anonymous_enable и local_enable и убедитесь, что ваша конфигурация соответствует приведенным ниже строкам:

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

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

3. Chroot jail

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

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

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

    Метод 1. — Рекомендуемый вариант — оставить включенной функцию chroot и настроить каталоги FTP. В этом примере мы создадим ftp внутри дома пользователя, который будет служить uploads каталогом и каталогом загрузки с возможностью записи для загрузки файлов:

Используйте эту опцию, только если вы должны предоставить своему пользователю доступ с правом записи к его домашнему каталогу.

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

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

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

Читайте также:  Аналог everything для linux

5. Ограничение входа пользователя

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

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

6. Защита передачи с помощью SSL / TLS

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

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

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

Мы сгенерируем 2048-битный закрытый ключ и самозаверяющий SSL-сертификат, который будет действителен в течение десяти лет:

И закрытый ключ, и сертификат будут сохранены в одном файле.

После создания SSL-сертификата откройте файл конфигурации vsftpd:

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Если пользователь, которому вы хотите предоставить доступ по FTP, уже существует, пропустите 1-й шаг.
  • Если вы установили allow_writeable_chroot=YES в своем файле конфигурации, пропустите 3-й шаг.
  1. Создайте нового пользователя с именем newftpuser :
  2. Добавьте пользователя в список разрешенных пользователей FTP:
  3. Создайте дерево каталогов FTP и установите правильные разрешения :

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

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

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

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

Выполните следующие команды, чтобы создать /bin/ftponly и сделать его исполняемым:

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

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

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

Вывод

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

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

Домашний сервер. Часть 2. FTP, Samba и rTorrent

Пришло время организовывать файловое хранилище, как внутри сети так и снаружи. Данная статья является продолжением первой части, посвященной настройки WiFi роутера на Вашем домашнем сервере. Все жесткие диски с Вашего домашнего компьютера(кроме системного) можно перенести на сервер, поскольку скорость передачи данный колеблется в районе 10-20 мегабайт в секунду [данный параметр еще и очень сильно зависит от модели Вашего жесткого диска], да и кстати, давно уже пора для системного диска покупать SSD накопители.

FTP Server.
Существует множество ftp серверов для linux, много хороших, много плохих, но есть лучший [естественно, что это субъективное мнение, и лучший он для меня] и это vsftpd. Его мы и будем рассматривать.
Скачать его можно из стандартных репозитариев OpenSUSE, выполнив в терминале команду:

Теперь перейдем к описанию. Это консольный ftp server, у него нет GUI [графическая оболочка], поэтому вся настройка происходит в одном единственном конфиге, по адресу /etc/vsftpd.conf.
Вот пример рабочего конфига:

В приведенном выше конфиге нет заморочек для распределения прав доступа отдельным пользователям, отдельных папок. Всё довольно просто и лаконично, настроил один раз и пользуешься [пользуются]. Vsftpd был выбран, потому что у него лучшая система настройки прав доступа, которая подразделяется на два вида: внутренняя, системная аутентификация и внешняя, с отдельным конфигурационным файлом для распределения прав доступа, но при этом, пользователи всё также берутся из системы.

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

Рисунок 1. Выставление прав
На этом собственно всё.

Samba.
Хотите всегда иметь под рукой файловое хранилище всех коллекций и всего прочего с ноутбука, с домашнего компьютера, с телефона, с планшета? Поехали.

Изначально, при стандартной установке системы OpenSUSE всё что нужно для установки и настройки samba на сервере уже предустановлено. Поэтому перейдем непосредственно к настройке. Поскольку доступ из под ОС Windows в качестве «Подключения сетевого диска» будет доступен только внутри Вашей локальной сети [для интернета есть ftp сервер, да и к тому же, вывешивать самбу в интернет крайне не безопасно, а мы же, — «ЗА СЕКЬЮРНОСТЬ. УРА!»] поэтому настройки будут крайне банальны и просты в понимании. Есть два [известных мне и адекватных на мой взгляд] настройки самбы, это через, всё тот самый, конфигурационный файл и при помощи утилиты — WebMin. Это дико-крутая штука, особенно для тех, кто не любит ковырять конфиги [но и здесь есть свои ньюансы]. В данной статье не будем останавливаться на средствах «для ленивых«, поэтому продолжаем. Мы будем рассматривать рабочий конфиг файл. Находится он по адресу: /etc/samba/smb.conf. Вот он:

Также, дополнительную настройку можно выполнить через встроенный в YaST GUI samba.

Того пользователя, что мы указали в самом начале конфига, в данном примере это пользователь nobody, необходимо создать непосредственно в системе. Задать ему необходимые права (дома, имеет смысл поставить полные права, на создание, удаление, редактирование всех файлов и папок (т.е. права 777). Также, если Вы столкнетесь с ситуацией, когда по какой-то причине станет невозможным удаление/создание файлов в какой-либо из папок на сервере, то выполните команду:

Разберем её, на всякий случай:
chmod — команда установки прав.
777 — собственно права, в буквенном обозначении означают rwx, rwx, rwx — права чтение, запись, выполнение для владельца, группы(где состоит владелец), всех.
-R — ключ рекурсии, для того чтобы команда выполнилась не только для той папки(и файлов, находящихся в ней), которую Вы указали в /path, но и для всех под-папок и файлов в них тоже.
/path — путь до папки, на которую необходимо установить права. Аналогичная команда соответствует FTP серверу, если возникли похожие проблемы. Да, и надо оговориться, что если возникают подобные проблемы, то скорей всего проблема кроется в пользователях созданных в системе, а точнее в правах, выданных на использование их домашних директорий.

rTorrent.
Полу-автоматизированный торрент клиент.
На самом деле, это обычный торрент клиент, но, возможности настройки которого, очень богаты разнообразием. Сейчас мы с Вами разберём одну очень полезную функцию данного клиента. Представьте, Вы уже настроили самбу на Вашем домашнем сервере, файловое хранилище, находящееся на сервере подключена к Вашему компьютеру как Сетевой Диск, Вы открываете Ваш сетевой диск, открываете папку torrents, там открываете папку music и перемещаете туда все торрент файлы с музыкой, которые Вы хотите скачать и… всё, ложитесь спать. На утро уже будут скачены и проверены хеши всех торрентов, что Вы туда положили (тут конечно всё зависит от того сколько торрентов Вы хотите скачать, какой у них вес и какова ширина Вашего интернет канала). Нравится? Вот и я балдею уже как пол года, от этой функции.
Давайте разбираться.
Вам надо установить rtorrent, выполняем следующую команду в терминале:

После того, как Вы скачали и установили торрент-клиент rtorrent, необходимо произвести настройку клиента. Настройка программы осуществляется при помощи конфигурационного файла .rtorrent.rc, размещаемого в домашнем каталоге пользователя. (По умолчанию файл .rtorrent.rc отсутствует. Его нужно создавать самостоятельно. Привожу пример с подробными комментариями рабочего конфига:


Рисунок 2. Главное окно программы rTorrent

Собственно и все. Далее хитрый приём, — открываем консоль и пишем(можно и по ssh зайти на сервер):
screen rtorrent
Далее, в терминале откроется торрент-клиент, там же Вы его можете настроить и отладить дополнительно. Теперь нажимаем волшебные комбинации клавиш Ctrl+A затем Ctrl+D и консоль радостно Вас оповестит, что:
[detached]


Рисунок 3. «Заскринивание» процесса программы rTorrent.

Это говорит о том, что процесс Вашего торрент-клиента «закринин», то есть выполняется, но его при этом не видно. Для тех, адептов, кому всегда, всё интересно, может прочесть вот здесь про данную утилиту обременять голову такими вещами (хотя, они очень интересные и познавательные, и применяются часто) принудительно я не хочу.
Если Вам понадобилось заного открыть клиент, пишем:

ВАЖНО: Если Вы хотите запускать торрент-клиент под рутом(root, т.е. через команду sudo) то, необходимо конфиг файл создавать в корневом каталоге пользователя root, а также, screen -r необходимо выполнять также, под тем же пользователем, под которым Вы ее «заскринили».
Таким образом, у Вас в фоне всегда будет висеть торрент-клиент, который будет качать и раздавать ровно столько, сколько будет работать Ваш сервер.

На этой «важной» ноте, я хочу закончить данную статью. Спасибо за внимание, и да, пользуйтесь поисковиком Google, он молодец!

Если ошибся топиком, подскажите куда перенести.

Источник

Читайте также:  Windows 1251 для linux
Оцените статью