Proftpd настройка прав
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- проходил мимо
- Сообщения: 2
- Зарегистрирован: 2009-05-25 16:27:56
Proftpd настройка прав
Добрый день.
Необходимо настроить Proftpd специальным образом.
Есть организация которая выкладывает файлы для клиентов на FTP в один каталог. Как можно настроить доступ к этому каталогу для клиентов, чтоб они могли выкачать файл только по ссылке (пример --ftp://xxx.yy.ua/test.txt) и не имели права видеть остальные файлы в каталоге. Пользователи в Proftpd записаны в файл (не системные). Спасибо !
Необходимо настроить Proftpd специальным образом.
Есть организация которая выкладывает файлы для клиентов на FTP в один каталог. Как можно настроить доступ к этому каталогу для клиентов, чтоб они могли выкачать файл только по ссылке (пример --ftp://xxx.yy.ua/test.txt) и не имели права видеть остальные файлы в каталоге. Пользователи в Proftpd записаны в файл (не системные). Спасибо !
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: Proftpd настройка прав
запрети доступ на чтение для папки с файлами
Код: Выделить всё
%chmod +r test
%ls test/
1.sh ff ubstr
%chmod -r test
%ls test/
ls: : Permission denied
%cat test/1.sh
#!/bin/sh
SDIR=/usr/home/zg/test/ff
DDIR=/some/dir
ls -1 ff | awk '{print substr($1,1,4), substr($1,5,2), substr($1,7,2), $1}' | while read YEAR MONTH DAY FILE
do
DIR=$DDIR/$YEAR/$MONTH/$DAY
echo "[-d \"$DIR\"] || mkdir -p \"$DIR\""
echo "mv $SDIR/$FILE $DIR/$FILE"
done
%
-
- проходил мимо
- Сообщения: 2
- Зарегистрирован: 2009-05-25 16:27:56
Re: Proftpd настройка прав
Пример хороший. Тоесть клиент вбив --ftp://xxx.yy.ua/test.txt в брайзере и введая пароль скачает файл test.txt,
зайдя на --ftp://xxx.yy.ua/ не увидит не одного файла? А что должно быть прописано в proftpd.conf ?
зайдя на --ftp://xxx.yy.ua/ не увидит не одного файла? А что должно быть прописано в proftpd.conf ?
-
- мл. сержант
- Сообщения: 124
- Зарегистрирован: 2007-11-06 17:07:27
- Откуда: Москва
Re: Proftpd настройка прав
А если так попробовать. В proftpd.conf
Код: Выделить всё
<Directory /путь до папки>
<Limit LIST>
DenyAll
</Limit>
</Directory>
Последний раз редактировалось AzureZ 2009-05-26 9:18:26, всего редактировалось 1 раз.
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: Proftpd настройка прав
ему система не даст списка фалойв, но это крайне нежелательный вариант, лучше попробуй, как AzureZ советует.Evgen Vasko писал(а):зайдя на --ftp://xxx.yy.ua/ не увидит не одного файла?
-
- мл. сержант
- Сообщения: 89
- Зарегистрирован: 2009-12-23 21:22:15
Re: Proftpd настройка прав
господа, подскажите плиз
имеем Proftpd на роутере
из домашней сети файлы из FTP качаются нормально, а из внешней пишет Permission denied!
на маленьких файлах, до 300 килобайт, не заметно, успевает скачать, если больше, вот такая лажа.
сначала не мог понять почему не качает большие файлы, потом попробовал тотал командер и вижу Permission denied
прямых указаний сетей в конфигах Proftpd нету...
имеем Proftpd на роутере
из домашней сети файлы из FTP качаются нормально, а из внешней пишет Permission denied!
на маленьких файлах, до 300 килобайт, не заметно, успевает скачать, если больше, вот такая лажа.
сначала не мог понять почему не качает большие файлы, потом попробовал тотал командер и вижу Permission denied
прямых указаний сетей в конфигах Proftpd нету...
- baton4eg
- сержант
- Сообщения: 274
- Зарегистрирован: 2009-10-11 14:36:35
- Контактная информация:
Re: Proftpd настройка прав
конфиг proftpd.conf в студию
и можно посмотреть /var/log/proftp-transfer.log и error.log на предмет ошибоки и что происходит
в sockstat можно посмотреть 21 порт
и можно посмотреть /var/log/proftp-transfer.log и error.log на предмет ошибоки и что происходит
в sockstat можно посмотреть 21 порт
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих файлов вообще нет!" (c)
"Я ем руками, она вилкой и ножом, я бью вилкой и ножом, она руками" (с)
"Я ем руками, она вилкой и ножом, я бью вилкой и ножом, она руками" (с)
-
- мл. сержант
- Сообщения: 89
- Зарегистрирован: 2009-12-23 21:22:15
Re: Proftpd настройка прав
конфиг
дело в том, что заходит на FTP из внешки нормально, и файлы видит, и даже закачивать можно, а скачать обратно можно только файлы которые сам закачивал, другие нет... сказал бы права на файлы виноваты, но из домашней сети те же файлы скачиваются нормально.
дело в том, что заходит на FTP из внешки нормально, и файлы видит, и даже закачивать можно, а скачать обратно можно только файлы которые сам закачивал, другие нет... сказал бы права на файлы виноваты, но из домашней сети те же файлы скачиваются нормально.
Код: Выделить всё
#
# For more informations about Proftpd configuration
# look at : http://www.proftpd.org/
#
# This is a basic ProFTPD configuration file (rename it to
# 'proftpd.conf' for actual use. It establishes a single server
# and a single anonymous login. It assumes that you have a user/group
# "nobody" and "ftp" for normal operation and anon.
# Конфиг proftpd - 2010-21-01
# имя сервера - показывается коннектящимся клиентам
ServerName "Main FTP servant :)"
# тип сервера (даже не тип самого сервера, а тип его запуска,
# standalone/inetd - сам или через inetd)
ServerType standalone
# смысл следующей директивы такой: если клиент коннектится не на имя
# а на IP или на виртуальный хост, не описанный в конфиге, то при
# установке в `off` он получит отлуп, если же установлено `on` то
# он будет обслужен `сервером по-умолчанию`
DefaultServer on
# e-mail администратора (по идее для каждого ВиртуалХоста его можно
# поставить разный - но я делаю один сервер без извращений с
# виртуальными хостами)
ServerAdmin plohish@server.net
# файло где хранится инфа о сессиях
#ScoreboardFile /var/run/proftpd.scoreboard
# порт на котором работает сервер
Port 21
#PassivePorts 49152 65534
# Маска с которой создаются новые файлы (не совсем маска - маска получается
# из этого значения, путём его вычитания из 777 - т.е. в даном случае получится
# маска 755)
Umask 022
# Максимальное число `детей` (работает только в standalohe режиме)
# необходимо для защиты от атак типа `отказ в обслуживании` да и
# от перегрузки сервера поможет :)
MaxInstances 30
# Юзер от которого работает сервер
User ftp
# группа, под которой работает сервер
Group ftp
#Перекодировка на лету
LangEngine on
UseEncoding KOI8-R CP1251
# Тип авторизации (на самом деле - в каком виде хрянятся
# пароли в БД - в данном случае - открытым текстом)
SQLAuthTypes Plaintext
# Кого и как аутентифицируем - on - всех и вся :)
# Но - если поставить `on` то он ломится в БД за группами.
# мне группы никчему. Посему поставил `users`
SQLAuthenticate users
# инфа для соединения с MySQL сервером:
# имя_базы_данных@хост_где_MySQL:порт имя_пользователя пароль
SQLConnectInfo proftpd@localhost:3306 name pass
# в каком порядке вернёт поля запрос - первое поле, это
# имя таблицы, где лежат пользователи
SQLUserInfo `users_table` `username` `password` `uid` `gid` \
`homedir` `shell`
# должен ли быть у юзера (для того, чтобы он мог коннектится),
# `реальный` shell описанный в /etc/shells
RequireValidShell off
# лог файл работы с SQL
#SQLLogFile /var/log/proftpd.log
# Вот тут моя натура склонная к ведению логов на всё в
# БД MySQL смогла разыграться на полную катушку :)
# Записываем удачные логины в БД. Общий смысл такой - создаём
# именованую кверю, с указанием что мы должны сохранять
SQLLog PASS counter_login
SQLNamedQuery counter_login UPDATE "`last_login`=UNIX_TIMESTAMP(), \
`login_count`=`login_count`+1 WHERE \
`username`='%u'" `users_table`
# пишем неудачные логины в БД
SQLLog ERR_PASS counter_err
SQLNamedQuery counter_err UPDATE "`last_err_login`=UNIX_TIMESTAMP(), \
`err_login_count`=`err_login_count`+1 WHERE \
`username`='%U'" `users_table`
# логируем что сохраняет и тащщит с сервера:
# переменные
# %u - имя пользователя (с которым залогинился)
# %f - полный путь и имя файла который был скачан
# %b - число байт, которые были скачаны
# %h - имя клиента (из DNS), если не удалось разрешить - IP
# %a - IP-адрес клиента
# %m - имя команды полученной от клиента (RETR/STOR)
# %T - время (секунд) ушедшее на передачу файла клиенту
SQLLog RETR,STOR log_story_transfer
SQLNamedQuery log_story_transfer INSERT "'',\
UNIX_TIMESTAMP(),'%u',\
'%f', '%b', '%h', \
'%a', '%m', '%T'" \
`xfer_table`
# записываем ошибки при сохранении и чтении файлов
# (в одну строку не влезли - но работает и в таком виде :))
SQLLOG ERR_RETR,ERR_STOR,ERR_DELE,ERR_RMD,ERR_RNTO\
log_err_modify
SQLNamedQuery log_err_modify INSERT "'',\
UNIX_TIMESTAMP(),\
'%u', '%f', '%h', \
'%a', '%m'" `xfer_errors`
# если вылезет проблема, типа тормозов при подключении
# (в момент установления коннекта `задумывается` на 10-20 секунд)
# то раскомментируйте следующие две строки
UseReverseDNS off
IdentLookups off
# если надо чтобы ВСЕ пользователи по ftp были ограниченны
# своей домашней директорией, то надо раскомментировать
# следующую строку:
#DefaultRoot ~
# у меня хитрее сделано - себе я разрешил шариться по всему серверу
# а остальных за`chroot`ил. Если, например, надо чтобы пользователи
# могли по серверу шариться а анонимоусы нет, то надо указать !users
# также можно указать определённую группу.
DefaultRoot ~ !pppppp
#AllowOverwrite on
#AllowRetrieveRestart on
#AllowStoreRestart on
#AllowForeignAddress on
# Директории
<Directory ~>
AllowOverwrite on
AllowRetrieveRestart on
AllowStoreRestart on
<Limit Write>
AllowAll
</Limit>
<Limit READ>
AllowAll
</Limit>
</Directory>
<Anonymous /data/ftp/pub>
# пользователь от которого анонимоусы шарятся
User ftp
# группа анонимоусов
Group ftp
# альясы ананонимоусов (можно будет входить как ftp, а
# не anonymous)
UserAlias anonymous ftp
# максимально число анонимоусов
MaxClients 10 "Sorry, max %m users - try again later"
<Limit WRITE>
AllowUser ppppppp
DenyAll
</Limit>
</Anonymous>
-
- мл. сержант
- Сообщения: 89
- Зарегистрирован: 2009-12-23 21:22:15
Re: Proftpd настройка прав
извините, ошибся, даже те файлы которые сам закачивал, скачать нельзя... (из внешней сети) начинается скачка, и тут же пермишн дениед!
из домашней сети, под тем же именем и паролем, запросто всё работает... чудеса...
из домашней сети, под тем же именем и паролем, запросто всё работает... чудеса...
Код: Выделить всё
May 2 09:57:52 plohish proftpd[6762]: plohish.com (192.168.100.240[192.168.100.240]) - USER user: Login successful.
May 2 09:59:06 plohish proftpd[6762]: plohish.com (192.168.100.240[192.168.100.240]) - notice: user user: aborting transfer: Permission denied
May 2 09:59:10 plohish proftpd[6762]: plohish.com (192.168.100.240[192.168.100.240]) - notice: user user: aborting transfer: Permission denied
May 2 09:59:23 plohish proftpd[6762]: plohish.com (192.168.100.240[192.168.100.240]) - notice: user user: aborting transfer: Permission denied
May 2 09:59:32 plohish proftpd[6762]: plohish.com (192.168.100.240[192.168.100.240]) - notice: user user: aborting transfer: Permission denied
May 2 10:01:11 plohish proftpd[6762]: plohish.com (192.168.100.240[192.168.100.240]) - FTP session closed.
-
- мл. сержант
- Сообщения: 89
- Зарегистрирован: 2009-12-23 21:22:15
Re: Proftpd настройка прав
так, из за чего происходит косяк понял, вот правила ipfw
если убрать nat1, proftpd начинает нормально работать из внешней сети, но тогда весь nat пропадает...
подскажите плиз что нужно сделать?
Код: Выделить всё
внутрення сетевуха fxp0
внешня сетевуха fxp1
${FwCMD} -f flush
# Правила для loopback
${FwCMD} add allow ip from any to any via lo0
${FwCMD} add deny ip from any to 127.0.0.0/8
${FwCMD} add deny ip from 127.0.0.0/8 to any
# Разрешаем обмен пакетами TCP через локальный интерфейс
${FwCMD} add allow tcp from any to any out via fxp0
# Правила nat-a, проброс портов
${FwCMD} nat 1 config log if fxp1 reset same_ports redirect_port tcp МАШИНКА_ВНУТРИ:порт1 порт1 redirect_port udp МАШИНКА_ВНУТРИ:порт2 порт2
${FwCMD} add nat 1 ip from any to any via fxp1
# Правила nat-а для локальный сети (правила шлюза)
${FwCMD} nat 2 config ip ВНЕШНИЙ_IP log
${FwCMD} add nat 2 ip from ВНУТРЕННЯЯ_СЕТЬ to ВНЕШНЯЯ_СЕТЬ
подскажите плиз что нужно сделать?
-
- мл. сержант
- Сообщения: 89
- Зарегистрирован: 2009-12-23 21:22:15
Re: Proftpd настройка прав
вяло как то нынче на форуме...
сам спросил - сам ответил...
добавил до nat
в proftpd прописал порты для пассива 50000-50100
всё заработало, всем спасибо
сам спросил - сам ответил...
добавил до nat
Код: Выделить всё
${FwCMD} add allow tcp from any to me 21,50000-50100
${FwCMD} add allow tcp from me to any keep-state
всё заработало, всем спасибо