Я просмотрел довольно много руководств по установке, но не смог понять, как настроить VSFTPD для доступа только по локальной сети и ограничить доступ к одному каталогу (например, ~ / Downloads).
Если возможно, я даже не хочу раскрывать свое присутствие в Интернете. Любая помощь очень ценится.
ПК: Ubuntu Mate 19.04, 64-разрядная версия.
Это лучше всего сделано с правилами брандмауэра. Мы будем использовать ufw
несложный брандмауэр для этого.
Первый мы проверяем состояние [1 113]
sudo ufw status
, Если Вы видите Status: inactive
затем использовать следующую команду для включения ufw
:
sudo ufw enable
, Как описано в ссылке ниже мы позволим порты 20 и 21 для основного доступа VSFTPD. Мы не будем использовать простое правило ufw как:
sudo ufw allow ftp
, поскольку это предоставит доступ отовсюду. Для предоставления доступа только для LAN, мы будем использовать синтаксис усовершенствования:
sudo ufw allow from 192.168.0.0/24 to any port 20 proto tcp
sudo ufw allow from 192.168.0.0/24 to any port 21 proto tcp
Эти from 192.168.0.0/24
часть только для LAN. Ваш может отличаться. Некоторые домашние маршрутизаторы присваивают IP-адреса в диапазоне 192.168.0.x, и другие в диапазоне 192.168.1.x, где x между 2-255. /24
маска подсети говорит, что любое значение x в том диапазоне позволяется.
to any
средства любой IP-адрес, присвоенный этому компьютеру, хорошо. Так как этот компьютер не действует как маршрутизатор, эта установка хорошо.
port 20
(или 21
) порт, который открывает это правило.
Эти proto tcp
только [1 122], протокол (не udp
протокол) может использоваться.
, Если мы хотим добавить порты 990 и 40 000 - 50 000 портов к брандмауэру как в учебном руководстве ниже, мы можем использовать одну команду, чтобы сделать это:
sudo ufw allow from 192.168.0.0/24 to any port 990,40000:50000 proto tcp
я не знаю достаточно о IPv6 локальные адреса и маски подсети для записи ответа, который включает IPv6 ufw правила. Без любого Ipv6 позволяют правила любая попытка использовать адреса IPv6 для доступа ftp
, сайт будет отклонен.
ответы на этот вопрос предполагают, что не может быть легкого решения для IPv6: , Как я позволяю локальные подсети IPv6 в ufw?
Если это имеет значение, следующее позволяет синтаксис правила (на основе ответа на вышеупомянутый вопрос), принят [1 125]:
sudo ufw allow from fe80::/64 to any port 21 proto tcp
Это должно предоставить доступ ftp от локального для ссылки диапазона IPv6, которые запускаются с [1 126].
, Это очень хорошо описано в Цифровое Океанское Учебное руководство . Основные шаги воспроизводятся ниже:
В этом примере имя пользователя sammy
. Фундаментальное понятие является пользователем sammy
, не должен иметь доступа для записи к базовому каталогу доступного для пользователя каталога. Создайте ftp
папка, установите ее владение и обязательно удалите полномочия записи со следующими командами:
sudo mkdir /home/sammy/ftp
sudo chown nobody:nogroup /home/sammy/ftp
sudo chmod a-w /home/sammy/ftp
Затем, мы создаем каталог, где файлы могут быть загружены и присвоить владение пользователю:
sudo mkdir /home/sammy/ftp/files
sudo chown sammy:sammy /home/sammy/ftp/files
Следующий мы редактируем конфигурационный файл VSFTPD в нано:
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=YES
. . .
chroot_local_user=YES
. . .
user_sub_token=$USER
local_root=/home/$USER/ftp
. . .
, Когда мы будем сделаны, внося изменение, сохраните и выйдите из файла.
Затем мы создаем и добавляем нашего пользователя к файлу. We’ll используют флаг-a для добавления в файл:
echo "sammy" | sudo tee -a /etc/vsftpd.userlist
Funally мы перезапускаем демона для загрузки изменений конфигурации:
sudo systemctl restart vsftpd
Hope это помогает