VSFTPD - Настроить доступ по определенному диапазону IP адресов

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

getref
Сообщения: 14

VSFTPD - Настроить доступ по определенному диапазону IP адресов

Сообщение getref »

Уважаемые, помогите пожалуйста. Имеется каталог /home/ftp/, в нем еще 3 каталога: "full access", "incoming", "pub".
Необходимо реализовать задачи:
1) чтобы можно было логиниться на ftp под anonymous
2) определенный диапазон адресов, например 192.168.1.1/24 имел полный доступ к каталогу "ftp", т.е ему были бы видны все подкаталоги каталога "ftp"
3) определенный диапазон адресов, например 10.10.10.1/24 имел доступ только к каталогам "incoming" и "pub"

Каталог "ftp" един для всех адресов.
Вот дерево:
/home/...
/ftp/... (каталог доступен как 192.168.1.1, так и 10.10.10.1)
/full access/ (каталог доступен только 192.168.1.1)
/incoming/ (каталог доступен как 192.168.1.1, так и 10.10.10.1)
/pub/ (каталог доступен как 192.168.1.1, так и 10.10.10.1)

Вот мой листинг конфига "vsftpd.conf":

Код: Выделить всё

#Если опция включена сервер стартует в независимом от inetd/xinetd режиме "standalone mode". В этом случае он сам заботится о прослушивании и определении входящих соединений.

listen=YES

#Разрешает или запрещает вход анонимных пользователей. Если разрешено, пользователи с именами ftp и anonymous распознаются как анонимные пользователи

anonymous_enable=YES

#Если опция установлена, vsftp не спрашивает пароль у анонимных пользователей, позволяя им подключаться сразу

no_anon_password=YES

#Разрешает FTP команды изменяющие файловую систему. Такие команды как: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE, SITE.

write_enable=YES

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

anon_upload_enable=YES

#Включение этой опции, позволяет анонимным пользователям создавать новые каталоги в соответствии с определенными для этого условиями. Для того чтобы это работало опция write_enable должна быть включена, и анонимный пользователь должен иметь права на запись в данном каталоге

anon_mkdir_write_enable=YES

#Если выбрано YES, анонимные пользователи могут выполнять операции записи отличные от загрузки на сервер и создания каталогов, такие как удаление и переименование. Это обычно не рекомендуется, но все таки такая возможность присутствует для полноты

anon_other_write_enable=YES

#Значение накладываемой маски на создаваемые анонимными пользователями файлы. Замечание! Если вы решили указать цифровое значение, надо помнить о нулевом "0" префиксе, иначе значение будет рассмотрено как десятизначное

anon_umask=0007

#Маска файлов назначаемая при загрузке файлов на сервер. При желании возможно изменить на 0777 если есть необходимость сделать исполняемыми загружаемые на сервер файлы

file_open_mode=0777

#В этой опции можно указать банер-строку выводимую на экран клиента при подключении к серверу

ftpd_banner=TEST FTP

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

anon_root=/home/ftp

#Если включено, журнал будет включать детальные отчеты о закачках на сервер, и закачках с сервера (uploads, downloads). По умолчанию, этот файл будет располагаться в /var/log/vsftpd.log

xferlog_enable=YES

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

ls_recurse_enable=NO

#Если включить, ASCII режим передачи данных будет разрешен при download

ascii_download_enable=NO

#При включении, специальные FTP команды известные как "async ABOR" будут разрешены. Только плохо продуманные FTP клиенты используют эту функцию. В добавок эта функция неудобна в управлении, поэтому отключена по умолчанию. К сожалению, некоторые FTP клиенты могут зависать в момент отмены передачи, если эта функция выключена. Если это происходит можно попробовать включить эту функцию

async_abor_enable=YES

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

one_process_model=YES

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

idle_session_timeout=120

#Максимальный временной промежуток в секундах, разрешенного замирания процесса передачи данных. Если перерыв превышен, соединение с удаленным клиентом отбрасывается

data_connection_timeout=300

#Максимальное время в секундах для выделения подключения с PASV стилем передачи данных

accept_timeout=60

#Максимальное время в секундах, отведенное на выделение соединения PORT стиля передачи данных

connect_timeout=60


Пожалуйста, очень прошу, как можно подробней :)
Спасибо сказали:
Аватара пользователя
Jampire
Сообщения: 163
ОС: Gentoo Linux amd64 || x86

Re: VSFTPD - Настроить доступ по определенному диапазону IP адресов

Сообщение Jampire »

Насколько я помню, vsftpd не позволяет такое делать. Попробуйте pure-ftpd.
Человек, говорящий, что это невозможно сделать, не должен мешать тому, кто это делает.
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: VSFTPD - Настроить доступ по определенному диапазону IP адресов

Сообщение rm_ »

C vsftpd можно попробовать нечто подобное реализовать разве что несколькими копиями vsftpd на разных портах с разными конфигами.
Спасибо сказали:
getref
Сообщения: 14

Re: VSFTPD - Настроить доступ по определенному диапазону IP адресов

Сообщение getref »

C vsftpd можно попробовать нечто подобное реализовать разве что несколькими копиями vsftpd на разных портах с разными конфигами


расскажите подробней пжл :)
Спасибо сказали:
getref
Сообщения: 14

Re: VSFTPD - Настроить доступ по определенному диапазону IP адресов

Сообщение getref »

Насколько я посню, vsftpd не позволяет такое делать. Попробуйте pure-ftpd


т.е. pure-ftpd умеет?
Спасибо сказали:
Аватара пользователя
Jampire
Сообщения: 163
ОС: Gentoo Linux amd64 || x86

Re: VSFTPD - Настроить доступ по определенному диапазону IP адресов

Сообщение Jampire »

getref писал(а):
21.01.2010 21:03
т.е. pure-ftpd умеет?

Да. Возможно потребуется немного подкорректировать дерево, если вы не хотите, чтобы урезанные пользователи не видели каталог full access.
Человек, говорящий, что это невозможно сделать, не должен мешать тому, кто это делает.
Спасибо сказали:
Аватара пользователя
Frank
Сообщения: 1059
ОС: Ubuntu, Debian

Re: VSFTPD - Настроить доступ по определенному диапазону IP адресов

Сообщение Frank »

getref писал(а):
21.01.2010 20:13
Пожалуйста, очень прошу, как можно подробней :)

1) /etc/vsftpd.conf, вписываем:

Код: Выделить всё

tcp_wrappers=YES

2) /etc/hosts.allow, вписываем:

Код: Выделить всё

vsftpd : 192.168.1.1/32 : setenv VSFTPD_LOAD_CONF /etc/vsftpd_1.conf
vsftpd : 10.10.10.1/32 : setenv VSFTPD_LOAD_CONF /etc/vsftpd_2.conf
vsftpd : ALL : setenv VSFTPD_LOAD_CONF /etc/vsftpd.conf

3) копируем /etc/vsftpd.conf в /etc/vsftpd_?.conf и настраиваем каждую копию под нужды.
4) ...
5) PROFIT!!
Изображение
Спасибо сказали:
getref
Сообщения: 14

Re: VSFTPD - Настроить доступ по определенному диапазону IP адресов

Сообщение getref »

И каким образом это ограничит пользователей из подсети 10.10.10.1 попасть в каталог /full access/ ?
Спасибо сказали:
Аватара пользователя
4yKoTkA
Сообщения: 183
ОС: Gentoo GNU/Linux.FreeBSD

Re: VSFTPD - Настроить доступ по определенному диапазону IP адресов

Сообщение 4yKoTkA »

Может глупость, но всё-же.. А нельзя ли запустив два денона на разных портах, с помощью iptables редиректить с 21-го нужные диапазоны куда следует?
Да, а почему не сделать просто ограничение прав по узверям, или у вас определённые узвери навечно прикованы к определённым компам?
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: VSFTPD - Настроить доступ по определенному диапазону IP адресов

Сообщение IMB »

Я подобное решил запуском через xinet.d, ну а доступ к директориям легко решается через именные конфиги.
Спасибо сказали:
getref
Сообщения: 14

Re: VSFTPD - Настроить доступ по определенному диапазону IP адресов

Сообщение getref »

Я подобное решил запуском через xinet.d, ну а доступ к директориям легко решается через именные конфиги


т.е на каждого юзера свой конфиг?
Если так, то не пойдет, т.к. юзверей большое количество и предпологается фтп анонимный
Спасибо сказали:
getref
Сообщения: 14

Re: VSFTPD - Настроить доступ по определенному диапазону IP адресов

Сообщение getref »

А нельзя ли запустив два демона на разных портах, с помощью iptables редиректить с 21-го нужные диапазоны куда следует?


расскажите подробней пожалуйста :) Только постигаю Линух
Спасибо сказали:
Аватара пользователя
4yKoTkA
Сообщения: 183
ОС: Gentoo GNU/Linux.FreeBSD

Re: VSFTPD - Настроить доступ по определенному диапазону IP адресов

Сообщение 4yKoTkA »

getref писал(а):
22.01.2010 09:57
т.е на каждого юзера свой конфиг?
Если так, то не пойдет, т.к. юзверей большое количество и предпологается фтп анонимный


Но политики всего две?
1) Часть юзеров имеет доступ на чтение в ../ftp/pub, на запись в ../ftp/imcoming, и не видит больше ничего.
2) Часть юзеров имеет доступ и на чтение, и на запись в ../ftp , и ниже.

При этом превая часть юзеров анонимна.
Я правильно понял?
Спасибо сказали:
Аватара пользователя
Frank
Сообщения: 1059
ОС: Ubuntu, Debian

Re: VSFTPD - Настроить доступ по определенному диапазону IP адресов

Сообщение Frank »

getref писал(а):
22.01.2010 07:47
И каким образом это ограничит пользователей из подсети 10.10.10.1 попасть в каталог /full access/ ?

А в конфиге /etc/vsftpd_2.conf будет упоминание о /full access/ ? Если не будет, то и не попадут.
Изображение
Спасибо сказали:
getref
Сообщения: 14

Re: VSFTPD - Настроить доступ по определенному диапазону IP адресов

Сообщение getref »

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

Re: VSFTPD - Настроить доступ по определенному диапазону IP адресов

Сообщение getref »

2 4yKoTkA необходимо, чтобы пользователи пришедшие с 10.10.10.0, увидели в своем броузере только "incoming" и "pub". А пользователи пришедшие с 192.168.1.0 увидели полное дерево каталога "ftp", т.е "full access", "incoming", "pub"

Каталог "ftp" един для всех адресов.
Вот дерево:
/home/
......../ftp/ (каталог доступен как 192.168.1.1, так и 10.10.10.1)
............/full access/ (каталог доступен только 192.168.1.1)
........../incoming/ (каталог доступен как 192.168.1.1, так и 10.10.10.1)
......../pub/ (каталог доступен как 192.168.1.1, так и 10.10.10.1)
Спасибо сказали:
Аватара пользователя
Frank
Сообщения: 1059
ОС: Ubuntu, Debian

Re: VSFTPD - Настроить доступ по определенному диапазону IP адресов

Сообщение Frank »

man vsftpd.conf

Код: Выделить всё

       deny_file
              This option can be used to set a pattern for filenames (and direc‐
              tory  names  etc.)  which should not be accessible in any way. The
              affected items are not hidden, but any attempt to do  anything  to
              them  (download,  change  into  directory, affect something within
              directory etc.) will be denied. This option is  very  simple,  and
              should  not  be used for serious access control - the filesystem’s
              permissions should be used in preference. However, this option may
              be useful in certain virtual user setups. In particular aware that
              if a filename is accessible by a variety of names (perhaps due  to
              symbolic  links  or  hard  links), then care must be taken to deny
              access to all the names.  Access will be denied to items if  their
              name  contains the string given by hide_file, or if they match the
              regular expression specified by  hide_file.   Note  that  vsftpd’s
              regular  expression matching code is a simple implementation which
              is a subset of full regular expression functionality.  Because  of
              this,  you will need to carefully and exhaustively test any appli‐
              cation of this option. And you are recommended to  use  filesystem
              permissions  for  any  important  security  policies  due to their
              greater reliability. Supported regex syntax is any number of *,  ?
              and  unnested  {,}  operators. Regex matching is only supported on
              the last component of a path, e.g. a/b/? is supported but a/?/c is
              not.  Example: deny_file={*.mp3,*.mov,.private}

              Default: (none)

+ hide_file
Изображение
Спасибо сказали:
getref
Сообщения: 14

Re: VSFTPD - Настроить доступ по определенному диапазону IP адресов

Сообщение getref »

1) /etc/vsftpd.conf, вписываем:

Код: Выделить всё

tcp_wrappers=YES


vsftpd перестает запускаться вообще. Вот, что пишет:

Код: Выделить всё

Starting vsftpd startproc:  exit status of parent of /usr/sbin/vsftpd: 1
                                                                      failed
Спасибо сказали:
getref
Сообщения: 14

Re: VSFTPD - Настроить доступ по определенному диапазону IP адресов

Сообщение getref »

как исправить положение подскажите пжл.
Спасибо сказали:
Аватара пользователя
Frank
Сообщения: 1059
ОС: Ubuntu, Debian

Re: VSFTPD - Настроить доступ по определенному диапазону IP адресов

Сообщение Frank »

Поэтому и рекомендуется указывать свой дистрибутив. В вашем, похоже, vsftpd собран без поддержки tcp wrappers. Исправить это можно пересборкой vsftpd из исходников с соответствующим конфигурированием.
Изображение
Спасибо сказали:
getref
Сообщения: 14

Re: VSFTPD - Настроить доступ по определенному диапазону IP адресов

Сообщение getref »

Open Suse 11.2
Исправить это можно пересборкой vsftpd из исходников с соответствующим конфигурированием

а как пересобрать? :rolleyes:
Спасибо сказали:
getref
Сообщения: 14

Re: VSFTPD - Настроить доступ по определенному диапазону IP адресов

Сообщение getref »

ну подскажите пожалуйста, как перекомпилить с поддержкой tcp_wrappers.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: VSFTPD - Настроить доступ по определенному диапазону IP адресов

Сообщение sash-kan »

getref писал(а):
13.04.2010 14:31
UP
у нас на форуме это не принято.

getref писал(а):
09.02.2010 08:05
как перекомпилить с поддержкой tcp_wrappers
./configure --help
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
getref
Сообщения: 14

Re: VSFTPD - Настроить доступ по определенному диапазону IP адресов

Сообщение getref »

2) /etc/hosts.allow, вписываем:

vsftpd : 192.168.1.1/32 : setenv VSFTPD_LOAD_CONF /etc/vsftpd_1.conf
vsftpd : 10.10.10.1/32 : setenv VSFTPD_LOAD_CONF /etc/vsftpd_2.conf
vsftpd : ALL : setenv VSFTPD_LOAD_CONF /etc/vsftpd.conf


т.е. файлов должно быть 3?

vsftpd.conf
vsftpd_1.conf
vsftpd_2.conf
Спасибо сказали: