Ubuntu ftp for windows domain

Skip to content

VSFTPD — Kerberos authentication

VSFTPD — Kerberos authentication

Would you like to learn how to configure the VSFTPD service Kerberos authentication on Active Directory? In this tutorial, we are going to show you how to authenticate VSFTPD users using the Active Directory from Microsoft Windows and the Kerberos protocol.

• Ubuntu 20.04
• Ubuntu 19.10
• Ubuntu 18.04
• VSFTPD 3.0.3

In our example, the domain controller IP address is 192.168.15.10.

In our example, the FTP server IP address is 192.168.0.200.

Tutorial Windows — Domain Account Creation

• IP — 192.168.15.10
• Operacional System — WINDOWS 2012 R2
• Hostname — TECH-DC01

We need to create at least 1 account on the Active Directory database.

The ADMIN account will be used to login on the VSFTPD server.

On the domain controller, open the application named: Active Directory Users and Computers

Create a new account inside the Users container.

Zabbix active directory account

Create a new account named: admin

Password configured to the ADMIN user: kamisama123

This account will be used to authenticate on the VSFTPD server.

active directory admin account
zabbix active directory admin properties

Repeat this process and create a new account named TEST01.

Congratulations, you have created the required Active Directory account.

VSFTPD — Kerberos authentication on the Active Directory

• IP — 192.168.15.11
• Operational System — Ubuntu 20
• Hostname — VSFTPD

Set a hostname using the HOSTNAMECTL command.

Edit the HOSTS configuration file.

Add the domain controller IP address and hostname.

Install the list of required packages to enable the Kerberos authentication.

On the Graphic installation, perform the following configuration:

• Kerberos realm — TECH.LOCAL
• Kerberos server — TECH-DC01.TECH.LOCAL
• Administrative server — TECH-DC01.TECH.LOCAL

You need to change the domain information to reflect your Network environment.

Edit the Kerberos configuration file.

Here is the file, before our configuration.

Here is the file, after our configuration.

You need to change the domain information to reflect your Network environment.

You have finished the required Kerberos configuration.

Tutorial Ubuntu — Installing VSFTPD

Install the required packages.

Edit the PAM configuration file.

Here is the file content, before our configuration.

Here is the file content, after our configuration.

Search for the VSFTPD service configuration file

Edit the VSFTPD service configuration file

Add the following lines at the end of this file.

Here is the file content, before our configuration.

Here is the file content, after our configuration.

The CHROOT feature will prevent users from getting out of their HOME directory.

To exclude a user from the CHROOT feature, add its username into the list file.

Here is the file content.

In our example, we excluded the account named TEST01.

Enable the VSFTPD service to start automatically during boot.

Keep in mind that we are performing only the authentication using the Kerberos protocol.

The user account must exist locally.

Use the following command to create a user account locally on the FTP server.

Congratulations! You have finished the VSFTP server authentication using Kerberos.

Tutorial Ubuntu — Testing the VSFTPD installation

In our example, the user account named TEST01 was excluded from the CHROOT feature.

We excluded this account by adding the username to the CHROOT list file.

On a remote computer, download the WINSCP software and try to connect to the FTP server.

FTP Server Connection

Use the Active Directory password to authenticate the FTP users.

The Account named TEST01 will be able to access directories outside its HOME directory.

Linux FTP Server

The Account named ADMIN will not be able to access directories outside its HOME directory.

FTP Server chroot

Congratulations! You successfully tested the VSFTPD installation on Ubuntu Linux.

VirtualCoin CISSP, PMP, CCNP, MCSE, LPIC22020-10-06T02:31:35-03:00

Related Posts

Page load link

This website uses cookies and third party services.

Ok

  • Как установить FTP Server Ubuntu vsftpd
  • Как настроить FTP-сервер на Ubuntu
  • Как включить защищённое соединение SSL/TLS
  • Как создать FTP-пользователей и дать и доступ
  • Как настроить работу брандмауэра

В статье мы расскажем, как установить FTP-сервер на Ubuntu 16.04, 18.04 и 20.04. Кроме установки, мы покажем, как выполняется настройка FTP-сервера на Ubuntu, а именно: как установить защищённое подключение SSL/TLS, как создать пользователей и дать им доступ, а также как настроить брандмауэр.

FTP — протокол передачи файлов между устройствами в сети. В дистрибутиве Ubuntu можно использовать FTP-серверы: vsftpd, proftpd, wu-ftpd и pureftpd. Мы рассмотрим, как установить самый быстрый и безопасный сервер — vsftpd Ubuntu. 

Как установить FTP Server Ubuntu vsftpd

1. Обновите базу данных доступных пакетов: 

sudo apt update

2. Установите vsftpd:

sudo apt install vsftpd

3. Проверьте статус работы сервера:

sudo systemctl status vsftpd

Если сервер запущен, вы увидите статус active (running):

4. Добавьте службу в автозагрузку: 

sudo systemctl enable vsftpd

Готово, вы установили vsftpd на Ubuntu Server.

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

Конфигурационный файл vsftpd — /etc/vsftpd.conf. Чтобы его настроить: 

1. Создайте копию исходного файла конфигурации:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.copy

2. Откройте файл конфигурации:

sudo nano /etc/vsftpd.conf

3. Добавьте в файл директивы с указанными параметрами. Настройте работу сервера по IPv4:

listen=YES

listen_ipv6=NO

Запретите доступ анонимным пользователям:

anonymous_enable=NO

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

local_enable=YES

Разрешите пользователям работать с файлами:

write_enable=YES

Назначьте права новым файлам:

local_umask=022

Включите сообщение для пользователя при входе: 

dirmessage_enable=YES

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

use_localtime=YES

Настройте логирование операций:

xferlog_enable=YES

Настройте передачу данных по 20 порту:

connect_from_port_20=YES

Укажите директорию для хранения логов:

xferlog_file=/var/log/vsftpd.log

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

xferlog_std_format=YES

Дайте доступ пользователям только к своим домашним каталогам:

chroot_local_user=YES

allow_writeable_chroot=YES

Включите поддержку авторизации PAM:

pam_service_name=vsftpd

Разрешите вход только пользователям из файла userlist

userlist_enable=YES

userlist_file=/etc/vsftpd.userlist

userlist_deny=NO

4. Сохраните файл при помощи CTRL+S, а затем закройте редактор комбинацией CTRL+X

Готово, настройка FTP-сервера в операционной системе завершена. 

Как включить защищённое соединение SSL/TLS

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

1. Сгенерируйте сертификат: 

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

2. Откройте конфигурационный файл vsftpd:

sudo nano /etc/vsftpd.conf

3. Для директив rsa_cert_file и rsa_private_key_file присвойте пути к файлу сертификата vsftpd.pem:

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

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

4. Включите SSL:

ssl_enable=YES

5. Сохраните файл при помощи CTRL+S, а затем закройте редактор комбинацией CTRL+X

6. Перезапустите FTP-сервер:

sudo systemctl restart vsftpd

Готово, вы настроили защищенный ФТП-сервер на Убунту. 

Как создать FTP-пользователей и дать и доступ

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

1. Укажите имена пользователей в файле /etc/vsftpd.userlist. Откройте этот файл: 

sudo nano /etc/vsftpd.userlist

2. Введите имена пользователей. Один пользователь — одна строка.

3. Сохраните файл при помощи CTRL+S, а затем закройте редактор комбинацией CTRL+X.

Готово, существующие пользователи получили доступ. 

Если вы хотите создать новых пользователей:

1. Создайте пользователя на веб-сервере: 

sudo useradd username

Вместо username введите имя пользователя. 

2. Задайте пароль новому пользователю:

sudo passwd username

3. Дайте пользователю FTP-доступ. Для этого добавьте его имя в /etc/vsftpd.userlist:

echo «user» | sudo tee -a /etc/vsftpd.userlist

Готово, вы создали пользователей FTP и дали им доступ для подключения. 

Как настроить работу брандмауэра

Разрешите FTP-подключения к VPS/VDS для брандмауэра UFW. Для этого: 

1. Откройте порты 20, 21, 22, 990 и диапазон 40000-50000 для TCP-подключений:

sudo ufw allow 20/tcp

sudo ufw allow 21/tcp

sudo ufw allow OpenSSH

sudo ufw allow 990/tcp

sudo ufw allow 40000:50000/tcp

2. Перезагрузите брандмауэр:

sudo ufw disable

sudo ufw enable

3. Проверьте  статус UFW:

sudo ufw status

Готово, вы настроили брандмауэр. Теперь вы можете подключиться к виртуальному серверу по FTP.

В некоторых предыдущих публикациях мы уже упоминали в разных контекстах подключение к серверам по FTP, но как это делается подробно не разбирали. Исправим же сегодня это упущение, рассказав о том, как вообще происходит обмен данными по FTP, как настроить FTP-сервер на примере машины, управляющейся Windows 10, а также о способах подключения, наибольшее внимание уделив продукту FileZilla.

Для начала дадим определение FTP. Эта аббревиатура разворачивается как «file transfer protocol» – т.е. речь идет об особом протоколе по которому можно удаленно передавать данные в интернете. В основе протокола лежит клиент-серверная архитектура, позволяющая задействовать разные каналы обмена данными и командами. При этом передача осуществляется с помощью конкретного соединения, устанавливающегося через 21 TCP-порт, который является одним из основных протоколов в сетях TCP/IP.

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

  • Активный режим. Здесь клиент передает серверу свой IP и номер порта, через который будут передаваться данные, после чего устанавливается соединение. Происходит подключение сервера к заданному узлу и запускается процесс обмена файлами.
  • Пассивный режим. Часто клиент защищен межсетевым экраном (брандмауэром), фильтрующим входящий трафик, и в силу этого не может принять входящее подключение. Тогда он посылает запрос к серверу, ответом на который становится IP-адрес сервера и номер TCP-порт, после чего клиент производит по ним подключение и запускается сессия по обмену данных.

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

  • Поточный режим. Является дефолтным. Данные передаются непрерывным потоком, никак не обрабатываясь протоколом. Данные разбиваются уже TCP на сегменты конкретного размера.
  • Блочный режим. Протокол делит данные на кластеры, каждому из которых присваивается свой заголовок, номер, размер и другие характеристики.
  • Сжатый. Если передаваемый файл слишком велик, то протокол сжимает его RLE-методом кодирования длин серий (run-length encoding).

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

Создание и настройка FTP-сервера на Windows 10

Теперь, когда мы рассказали об основных принципах передачи данных по FTP, поговорим о том, как создать собственный FTP-сервер. В качестве примера мы рассмотрим персональный компьютер, находящийся под управлением ОС Windows 10. Сразу отметим, что сделать это можно как с помощью встроенных инструментов операционной системы, так и с помощью внешних утилит, одной из наиболее распространенных считается FileZilla Server. При выбранной схеме в качестве сервера будет выступать жесткий диск вашей пекарни. Т.е. именно на нем будет находиться файловое хранилище, удаленный доступ к которому по FTP-протоколу можно будет настроить.

В общем случае создание FTP-сервера — достаточно трудоемкая задача, справиться с которой могут только опытные пользователи. Тем не менее, на Windows 10 этот процесс существенно упрощают встроенные инструменты, благодаря которым разобраться в создании сервера при некоторой дотошности смогут даже рядовые юзеры.

Рассмотрим же подробно инструкцию, неукоснительно следуя которой можно создать и настроить FTP-сервер на своем персональном компьютере.

  • Шаг 1. По дефолту в Windows 10 FTP-сервер выключен. Для его активации необходимо зайти в раздел «Программы», а затем кликнуть на «Включение» или отключение компонентов Windows. В диалоговом окне «Компоненты Windows» потребуется развернуть узел Службы IIS. Разверните узел «FTP-сервер», установив флажки «FTP-сервер» и флажок «Служба FTP», а затем нажмите кнопку «ОК».
  • Шаг 2. Переходим в корень «Панели управления» и находим там раздел «Администрирование». Перед вашими глазами окажется россыпь файлов, среди которых нужно будет найти «Диспетчер служб IIS». Два раза кликаем левой кнопкой мыши, в открывшемся окне слева находим вкладку, озаглавленную как «Сайты». Нажимаем правую кнопку мыши и ищем строку «Добавить FTP-сайт». Нажав на нее, вбиваем путь к создаваемому серверу (это может быть диск «C» или иной раздел винчестера).
  • Шаг 3. Настраиваем параметры привязки. В качестве айпишника выставляем значение «Все свободные», выбираем порт «21», ставим галки в полях «Запускать сайт FTP автоматически» и «Без SSL».
  • Шаг 4. Теперь нужно настроить доступы. Как уже говорилось выше, он может быть анонимным и тогда получить доступ к вашему диску сможет любой пользователь, а может — защищен логином и паролем (в настройках этот вариант обозначен как «Обычный»). Обратите внимание, что создавая собственный FTP-сервер, на ПК нужно активировать протокол передачи данных в межсетевом экране. Для этого нужно перейти в раздел «Дополнительные параметры» брандмауэра и выдать там необходимые разрешения.
  • Шаг 5. Все, сервер создан. Осталось решить, кто из пользователей компьютера будет иметь к нему прямой доступ. Переходим по пути «Панель управления» => «Администрирование => «Управление компьютером» и правой кнопкой мыши вызываем меню, в котором находим строчку «Создать группу». Здесь можно добавить учетки желаемых пользователей, после чего потребуется зайти в свойства группы и во вкладке «Безопасность» добавить созданную группу в список, после чего нажать кнопку «Изменить». Финиш, настройки доступа к FTP-серверу на вашей пекарне завершены: можно приступать к обмену файлами.

Как установить FTP-сервер на Linux

Также надо сказать несколько слов о том, как FTP-сервер устанавливается на Linux. Операционки этого семейства позволяют подключать несколько распространенных FTP-серверов, например proftpd, wu-ftpd, pureftpd и vsftpd. Итак, как настроить vsftpd-сервер — «very secure», один из самых шустрых и безопасных с поддержкой IPv6 и SSL?

Рассмотрим мы это на примере сборки 20.04 Ubuntu, однако по той же схеме это можно сделать для дистрибутивов версий 18.04 и 16.04: отлаживаем, подключаем защищенное соединение SSL/TLS, выдаем пользователям доступ по FTP и настраиваем межсетевой экран. Теперь рассмотрим эти шаги подробнее.

  • 1 этап: устанавливаем vsftpd. В терминале выполняем команду «sudo apt-get install vsftpd», которая запускает установку нужного ПО на VPS-сервер. Когда все файлы скачаны, в распоряжении юзера оказывается уже с конфигурированная программа. Часть настроек безопасности предустановлена, однако их нужно допиливать вручную: так по умолчанию подключаться к вашему vsftpd можно анонимно, чего вам наверняка хотелось бы избежать.
  • 2 этап: отладка vsftpd на Ubuntu. Ищем н сервере конфиг sudo nano /etc/vsftpd.conf, открываем, в нем находим строку «Anonymous_enable», в которой меняем значение с «да» на «нет», чтобы перекрыть кислород анонимусам: «anonymous_enable=NO».
    Затем производим раскомментирование еще нескольких строк: убираем знак «#» из начала строк нескольких опций («local_enable», «write_enable», «chroot_local_user») и меняем их значение, дописав в конец «=YES».
    После этого нужно сохранить изменения в конфиге и выйти из файла. Чтобы при работе без root-доступа не возникало ошибки запуска последних версий нужно выполнить еще три вещи: зарегистрировать нового пользователя, выдать ему админский доступ и создать новую директорию внутри пользовательской домашней директории. После этого вы производите замену владельца этой директории на нового root-пользователя.
    Если вам понадобится что-либо поменять во вложенной директории «files», не забудьте сохранить его и перезагрузить vsftpd, выполнив «sudo service vsftpd restart».
    Осталось настроить фаерволл. В Ubuntu 16.04 и других упомянутых сборках это делается так: межсетевой экран перезапускается последовательным вводом «sudo ufw disable» => «sudo ufw enable», затем на порты для входящих подключений вешаются правила: «sudo ufw allow 20/tcp» => «sudo ufw allow 21/tcp».
  • 3 этап: получаем доступ к FTP-серверу. Когда FTP-сервер Linux установлен, подключаемся к нему через консоль или адресную строку в браузере. В первом случае в терминале выполняется команда ftp в сочетании с доменным именем или IP-адресом сайта: ftp example.com. Во-втором случае в браузер вбивается название ftp-протокола и домен или айпишник сервера: ftp://example.com. Осталось вспомнить пользовательские кредсы (логин-пароль) и можно заходить в свою директорию. В конце работы в консоли нужно набрать «exit» для выхода.

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

Существует огромное число таких утилит: FAR, Total Commander, Xlight FTP Server и т.д. Однако ниже мы сосредоточимся на работе с самым популярным из этих приложений, известным как FileZilla Server.

FileZilla Server: настройка FTP и порядок работы

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

FileZilla очень удобен в работе т.к. предлагает гибкую систему настройки параметров, отвечающих задачам практически любого пользователя. Интерфейс также весьма интуитивен: рабочая область состоит из нескольких окон, слева находится дерево каталогов с файлами на компьютере клиента, справа — разделы с файлами на сервере, к которому клиент подключается.

В верхней части интерфейса находится панель быстрого подключения, которая позволяет подключаться к серверам на одну сессию после заполнения строк «хост» (айпишник или имя домена), «имя пользователя» (логин по которому вы входите в панель управления) и «пароль». В качестве порта указывается стандартный «21», затем нужно кликнуть на кнопку «Быстрое соединение» и вуаля — настройка FTP-соединения произведена, можно приступать к загрузке файлов на хостинг или скачивания оттуда чего-то необходимого вам на локальной машине.

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

  • Шаг 1. Нажимаете Ctrl+S или заходите в меню «Файл», откуда вызываете «Менеджер сайтов» и в появившемся окне кликаете на «Новый сайт».
  • Шаг 2. Заполняете все появившиеся поля (все те же «хост», «имя пользователя» и «пароль»).
  • Шаг 3. В качестве типа входа выбираете «Нормальный» и вбиваете логин.
  • Шаг 4. Во вкладке «Настройки передачи» выбираете «Пассивный» режим.
  • Шаг 5. После ввода данных нажимаете «Соединиться» и ждете несколько секунд, пока не произойдет подключение к сайту через FileZilla.

Важно отметить, что для повышения секьюрности не стоит сохранять в приложениях пароли: если в ваш компьютер проникнут злоумышленники, то через FileZilla они смогут получить доступ и к данным сервера, с которым вы соединяетесь по FTP. Лучше не лениться вводить пароль каждый раз вручную, для чего тип входа следует изменить с «Нормального» на «Запрос пароля».

Теперь, когда профиль доступа создан, можно приступать к работе с файлами на удаленном сервере. После подключения с ними можно выполнять все те же операции (создание, редактирование, копирование, удаление и т.д.), что и своем на локальном компьютере. Чтобы загрузить что-либо на сервер достаточно или кликнуть правой кнопкой мыши на нужные файлы в левой части экрана FileZilla и вызвать опцию «Закачать на сервер» или еще проще — перетащить эти файлы в нужный каталог в правой части экрана по методу drag-and-drop. Прогресс копирования будет отображаться в баре в нижней части экрана.

Для редактуры файлов достаточно открыть их с помощью стандартных программ, установленных на компьютере напрямую из файлового каталога сервера (правый раздел экрана FileZilla). После сохранения изменений в этих программах файлы будут автоматически обновляться на сервере.

Заключение

Подытоживая, можно сделать следующие выводы. FTP-протокол является одним из наиболее удобных форматов обмена данными между клиентами и серверами. Создать собственный FTP-сервер можно практически в любой операционной системе; примерный механизм мы рассмотрели на примере Windows 10, в которую встроены все необходимые инструменты. Тем не менее, несмотря на простоту, это довольно кропотливый процесс и гораздо удобнее настраивать FTP-сервера и подключаться к ним с помощью специализированных программ. Самой популярной из них является FileZilla Server, однако на рынке существует немало альтернативных решений: Total Commander, FAR-manager и т.д. Клиенты Максиплейс, арендующие место на наших серверах получают квалифицированную поддержку: в частности наши инженеры помогут вам настроить FTP-доступ к файлам, которые вы доверяете нам и гарантируют его бесперебойность.

In this tutorial we will learn how to use vsftpd on Linux to make Ubuntu machine run as ftp server and transfer files over wifi on local network.

On many occasion you need to copy and backup files locally from one computer to other. Using physical disk like flash drive or external hard drive is not always feasible due to many constraints such large file size, external drive availability.

  1. Setup
  2. Install VSFTP demon on Ubuntu
  3. Configure VSFTPD for uploads (Optional)
  4. Configure Ubuntu firewall for FTP
  5. Configure Windows Firewall
  6. Initiate FTP session using Windows command line
  7. Initiate FTP connection using ftp client on windows
  8. Understanding Security Aspects — Firewall and Services

Setup

We can take advantage of machines being on same network to achieve file transfer.

To follow this guide you should have access to following

  • Ubuntu Machine
  • Windows Machine
  • Both machines connected over same network using ethernet or wifi

How to install VFTP on Ubuntu

Open Terminal to get and install vsftp demon from official ubuntu repository.

sudo apt-get install vsftpd

Above command will install vsftp demon which means it will always be running in background upon machine startup using init.

Use following commands to check vsftp service

sudo service vsftpd status

If service is running then above command will output status of service with all spawned vsftp process ids.

Alternatively you can also check vsftp process with grep

ps -ef | grep vsftp

How to configure VSFTP for Uploads

This step is optional but if you want to allow uploads from remote machine to your ubuntu server then follow below configuration.

After installation vsftp will create configuration file at path /etc/vsftpd.conf. This file should be owned by root and should have default vsftp configuration. By default VSFTP will not allow ftp uploads; to enable it uncomment line write_enable=YES

# Uncomment this to enable any form of FTP write command.
write_enable=YES

Note that /etc/vsftpd.conf would be owned by root, to make any changes in configuration do. sudo vim /etc/vsftpd.conf or sudo gedit /etc/vsftpd.conf

Restart vsftpd demon once configuration is completed.

sudo service vsftpd restart

Check status after restart.

sudo service vsftpd status

How to configure Ubuntu firewall for FTP

By default ubuntu shall be running firewall known as uncomplicated firewall (ufw). Default firewall rules will not allow any outside connection.

To open ftp port on this firewall use following commands.

Check firewall status using

sudo ufw status

Firewall should be active and running. If it’s not active then enable the same using following command to make your machine secure.

You can keep it disable if you have such requirement, however it’s recommended to keep it on. sudo ufw enable

To open ftp port 21 use following command

sudo ufw allow ftp or sudo ufw allow 21

This will add firewall rule to accept ftp connections from other machine on network. After adding ftp rule you should have following entries in your firewall. sudo ufw status


Status: active
To                         Action      From
--                         ------      ----
21/tcp                     ALLOW       Anywhere                  
21/tcp (v6)                ALLOW       Anywhere (v6)     

Configure Windows Firewall

Firewall should permit you to initiate ftp session from windows machine. Search for Windows Firewall in start menu to open firewall configuration window.

Since we are going to use one time ftp we will disable firewall and reenable it once ftp is done. Depending upon which network you are connected to Home or Public you can disable firewall like below.

Screenshot : Disable Windows Firewall

Note that disabling complete firewall is not recommended. If you are going to use ftp server regularly from windows machine then please create firewall rules under Windows Firewall with Advanced Security on Port 21

Initiate FTP session using Windows command line

Once we are done with required configurations we can initiate first ftp connection from windows command line. First get IP address of machine hosting FTP server using command ifconfig on ubuntu machine. Use eth0 inet address if you are connected with ethernet cable. For wireless connection use inet address of wlan0 interface. My ubuntu machine have following local IP 192.168.2.102.

ifconfig


eth0      Link encap:Ethernet  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wlan0     Link encap:Ethernet  
          inet addr:192.168.2.102  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:24006 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8312 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:12996852 (12.9 MB)  TX bytes:1224374 (1.2 MB)

To initiate connection open command prompt on windows and use following command. ftp 192.168.2.102

It will ask for username and password. Username will be same name as the ubuntu user (techmonger in my case) and password will the ubuntu’s system password of user.

windows cmd ftp login vsftpd ubuntu

To get file from ubuntu ftp server, navigate to directory and use get command like below.

ftp>get filename

To upload file from windows machine to ftp server, put command like below.

ftp>put filename

To terminate ftp session use bye.

ftp>bye

Initiate FTP connection usign ftp client on windows

By now you would agree that doing ftp from windows command prompt is bit tedious. We can use ftp client such as winscp or filezilla to get GUI for ftp operations.

Use hostname as IP address of ftp server (192.168.2.102 in my case) and same credentials as those of ubuntu user.

Like below you can initiate connection from filezilla. You can use drag and drop to download and upload files from windows machine.

windows filezilla ubuntu vsftp

FTP Security Aspects — Firewall and Services

All ftp connections will be initiated in plain text. You should only use above method if you are in local network and have complete control over network. For encrypted connections use sftp or ftps.

  • Remove firewall rule from ubuntu once ftp requirement is over.

  • sudo ufw deny ftp or sudo ufw deny 21

  • Enable Winows firewall once ftp requirement is over.

  • Stop vsftp demon if ftp is no longer needed to save system resources. It will also make your system less vulnerable.

    sudo service vsftpd stop

Conclusion : You can make your ubuntu machine to run as ftp server and can transfer files locally. You do not need SMB (server message block) for file transfer between linux machine and windows machine over network.

Попробуйте настроить FTP-сервер по нашей инструкции — мы расскажем, как установить FTP-сервер на Ubuntu 20.04, настроить сервер vsftpd и подключить защищённое FTP-соединение простым способом. Инструкция также подойдет для дистрибутива Ubuntu версий 18.04 и 16.04.

С FTP-сервером можно работать благодаря одному из базовых протоколов интернета — FTP. В операционной системе Ubuntu можно подключить такие популярные FTP-серверы, как: proftpd, wu-ftpd, pureftpd и vsftpd. Мы рассмотрим, как установить vsftpd Ubuntu — один из самых быстрых и безопасных серверов.

Чтобы начать работу с FTP-сервером vsftpd, установите и настройте его. Затем подключите защищённое соединение SSL/TLS, назначьте доступ FTP-пользователям и настройте брандмауэр. В инструкции ниже мы подробно описали каждый из этих этапов.

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

Чтобы установить на Ubuntu server vsftpd:

  1. 1.

  2. 2.

    Установите FTP-сервер vsftpd:

  3. 3.

    Проверьте работоспособность сервера:

    sudo systemctl status vsftpd

    Если сервер активен, в выводе появится надпись active:



    вывод
    FTP server Ubuntu

  4. 4.

    Добавьте службу в автозагрузку:

    sudo systemctl enable vsftpd

Готово, вы установили FTP-сервер vsftpd.

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

Настройте сервер vsftpd через файл конфигурации — /etc/vsftpd.conf. Для этого:

  1. 1.

    Скопируйте оригинальный файл с настройками в файл /etc/vsftpd.conf.original:

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

    Откройте конфигурационный файл:

    sudo nano /etc/vsftpd.conf
  3. 3.

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

    • Настройте сервер для запуска:

    и

    • Настройте доступ к FTP-серверу, чтобы разрешить вход только локальным пользователям:

    и

    • Разрешите пользователям работать в файловой системе (загружать и удалять файлы):
    • Назначьте права для новых файлов:
    • Настройте сообщение о выборе каталога после регистрации:
    • Разрешите серверу использовать локальный часовой пояс:
    • Настройте запись всех передач файлов в лог:
    • Настройте порт 20 для передачи данных:
    • Задайте путь хранения логов и их формат:
    xferlog_file=/var/log/vsftpd.log

    и

    • Откройте пользователям доступ только к своим домашним каталогам командами:

    и

    allow_writeable_chroot=YES
    • Настройте возможность использования PAM-сервиса:
    • Разрешите аутентификацию на FTP-сервере только тем пользователям, которые указаны в файле userlist с помощью команд:
    userlist_file=/etc/vsftpd.userlist

    и

  4. 4.

    Сохраните и закройте файл сочетанием клавиш Ctrl+X и Y.

Готово, вы настроили FTP-сервер.

Подключение защищенного соединения SSL/TLS

Для настройки защищённой FTP-передачи с помощью SSL/TLS нужен SSL-сертификат. Вы можете использовать уже существующий сертификат или создать самоподписанный. Чтобы настроить защищенное соединение через самоподписанный SSL-сертификат:

  1. 1.

    Сгенерируйте SSL-сертификат. Этой командой будет создан сертификат сроком действия 10 лет и 2048-битный закрытый ключ. Они будут храниться в файле vsftpd.pem.

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

    Откройте конфигурационный файл vsftpd.conf:

    sudo nano /etc/vsftpd.conf
  3. 3.

    Найдите директивы rsa_cert_file и rsa_private_key_file. Присвойте им значения пути к файлу vsftpd.pem командами:

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

    и

    rsa_private_key_file=/etc/ssl/private/vsftpd.pem
  4. 4.

    Разрешите использование протокола SSL:

  5. 5.

    Сохраните и закройте файл сочетанием клавиш Ctrl+X и Y.

  6. 6.

    Перезапустите сервер:

    sudo systemctl restart vsftpd

Готово, вы настроили защищённое соединение.

Создание FTP-пользователей и предоставление доступа

Если у вас уже созданы FTP-пользователи, дайте им доступ:

  1. 1.

    Добавьте имена FTP-пользователей в созданный ранее файл /etc/vsftpd.userlist. Для этого откройте файл командой:

    sudo nano /etc/vsftpd.userlist

    Затем введите имена пользователей — в одной строке вводите одно имя.

  2. 2.

    Сохраните и закройте файл сочетанием клавиш Ctrl+X и Y.

Готово, вы назначили доступ FTP-пользователям.

Если таких пользователей ещё нет, сначала создайте их:

  1. 1.

    Создайте нового пользователя:

  2. 2.

    Назначьте ему пароль:

    Где user — имя пользователя.

  3. 3.

    Предоставьте FTP-доступ пользователю. Добавьте его имя в файл /etc/vsftpd.userlist:

    echo "user" | sudo tee -a /etc/vsftpd.userlist

Готово, вы создали FTP-пользователей и назначили им доступ.

Настройка работы брандмауэра

Если вы используете брандмауэр (firewall) UFW, разрешите FTP-трафик. Для этого:

  1. 1.

    Откройте порты 20, 21, 22, 990 и зарезервируйте диапазон портов 40000-50000 командами:

    sudo ufw allow 40000:50000/tcp
  2. 2.

  3. 3.

    Проверьте работоспособность UFW:

Готово, вы открыли брандмауэр для работы по FTP. Теперь вы можете проверить соединение через FTP-клиент FileZilla и приступить к работе с сервером.

Итак, вы узнали, каким способом можно быстро установить и настроить защищенный фтп-сервер на Убунту.

Помогла ли вам статья?

Спасибо за оценку. Рады помочь 😊


 👍

  • Uac windows 10 отключить для одной программы
  • Ubuntu desktop remote desktop from windows
  • Tweaking com windows repair русификатор
  • Uac windows 10 не работает
  • U001h r3b драйвер windows 10