pure-ftpd и разграничение по IP
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- Zedik
- сержант
- Сообщения: 283
- Зарегистрирован: 2007-01-20 22:30:57
- Откуда: 127.0.0.1
pure-ftpd и разграничение по IP
хочу сделать разграничение обращения на фтп сервер по IP:
ftp://10.0.0.9 -> /var/ftp/software
ftp://194.80.50.40 -> /var/ftp/shareware
===
где то читал что нужно добавить линки /etc/~10.0.0.9 и /etc/~194.80.50.40 которые вели бы соответственно в нужные каталоги, но что то не выходит.
кто может подсказать?
FreeBSD 6.2 + pure-ftpd-1.0.21_1
ftp://10.0.0.9 -> /var/ftp/software
ftp://194.80.50.40 -> /var/ftp/shareware
===
где то читал что нужно добавить линки /etc/~10.0.0.9 и /etc/~194.80.50.40 которые вели бы соответственно в нужные каталоги, но что то не выходит.
кто может подсказать?
FreeBSD 6.2 + pure-ftpd-1.0.21_1
Услуги хостинговой компании 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/
- Alex Keda
- стреляли...
- Сообщения: 35413
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
- Zedik
- сержант
- Сообщения: 283
- Зарегистрирован: 2007-01-20 22:30:57
- Откуда: 127.0.0.1
Re: pure-ftpd и разграничение по IP
да и сабж реален...сейчас под линуксом крутится (до меня был поставлен)...да только вот сам никак не могу дальше разрулить...lissyara писал(а):proftpd может
сейчас ftp://194.80.50.40 -> /var/ftp/shareware правильно отрабатывает, а вот ftp://10.0.0.9 -> /var/ftp/software логиниится, но выдает пустоту...
пс. а чем proftpd лучше? он более гибкий в настройке? позволяет ли proftpd выставлять ограничения на размер поддиректорий?
- kolesya
- сержант
- Сообщения: 191
- Зарегистрирован: 2006-10-17 15:54:01
- Откуда: Украина, Киев
Re: pure-ftpd и разграничение по IP
Код: Выделить всё
root@# cat pureftpd-mysql.conf.sample | grep IP
# Optional : MySQL server name or IP. Don't define this for unix sockets.
# \I is replaced by the IP address the user connected to.
# \R is replaced by the IP address the user connected from.
# \D is replaced by the remote IP address, as a long decimal number.
root@#
- kolesya
- сержант
- Сообщения: 191
- Зарегистрирован: 2006-10-17 15:54:01
- Откуда: Украина, Киев
Re: pure-ftpd и разграничение по IP
Конфиги покажи ... (без конкретных адресов в конфиге(ах) )
pureftpd на системных учетках или ( mysql or postgres or <че_нить_другое> ) ?
pureftpd на системных учетках или ( mysql or postgres or <че_нить_другое> ) ?
- Zedik
- сержант
- Сообщения: 283
- Зарегистрирован: 2007-01-20 22:30:57
- Откуда: 127.0.0.1
Re: pure-ftpd и разграничение по IP
на мысль то наводит.....но пока только на мысль
учетки хранятся в мускле.
pure-ftpd.conf
pureftpd-mysql.conf
в данном случае ограничивается подключение на тот или иной IP. А мне хочется чтобы доступ был и по внутреннему и по внешнему IP для одного и того же юзера. но в зависимости на какой адрес он обращается, он отправляется в соответствующий каталог. а сейчас у меня по внешнему IP отправляется с каталог с данными,а при обращении по внутреннему IP он отправляется в какой то пустой каталог... 

учетки хранятся в мускле.
pure-ftpd.conf
Код: Выделить всё
ChrootEveryone yes
# TrustedGID 100
BrokenClientsCompatibility no
MaxClientsNumber 15
Daemonize yes
MaxClientsPerIP 5
VerboseLog no
DisplayDotFiles yes
AnonymousOnly no
NoAnonymous no
SyslogFacility ftp
DontResolve yes
MaxIdleTime 4
MySQLConfigFile /usr/local/etc/pureftpd-mysql.conf
LimitRecursion 2000 8
AnonymousCanCreateDirs no
MaxLoad 4
PassivePortRange 60000 65000
AntiWarez yes
Umask 133:022
MinUID 1000
AllowUserFXP no
AllowAnonymousFXP no
ProhibitDotFilesWrite no
ProhibitDotFilesRead no
AutoRename no
AnonymousCantUpload no
AltLog stats:/var/log/pureftpd.log
AltLog w3c:/var/log/pureftpd.log
MaxDiskUsage 99
CustomerProof yes
PerUserLimits 2:5
IPV4Only yes
FileSystemCharset koi8-r
ClientCharset cp1251
Код: Выделить всё
MYSQLSocket /tmp/mysql.sock
MYSQLUser ftproot
MYSQLPassword 11111
MYSQLDatabase baseftp
MYSQLCrypt md5
MYSQLGetPW SELECT Password FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
MYSQLGetUID SELECT Uid FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
MYSQLGetGID SELECT Gid FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
MYSQLGetDir SELECT Dir FROM users WHERE User="\L" AND Status="1" AND IPServer="\I" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
MySQLGetQTAFS SELECT QuotaFiles FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
MySQLGetQTASZ SELECT QuotaSize FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
MySQLGetRatioUL SELECT ULRatio FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
MySQLGetRatioDL SELECT DLRatio FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")

- kolesya
- сержант
- Сообщения: 191
- Зарегистрирован: 2006-10-17 15:54:01
- Откуда: Украина, Киев
Re: pure-ftpd и разграничение по IP
не помню точно какая опция
, но в конфиге пурфтп можно включить логирование SQL-запросов и ответов, которые отправляет и получает пурфтп.

- kolesya
- сержант
- Сообщения: 191
- Зарегистрирован: 2006-10-17 15:54:01
- Откуда: Украина, Киев
Re: pure-ftpd и разграничение по IP
покажи под это дело записи по узеру скажем: EXAMPLERMYSQLGetDir SELECT Dir FROM users WHERE User="\L" AND Status="1" AND IPServer="\I" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
считаем, что пользователь активный и имеет доступ "спереди" и "сзади"

типа результат
Код: Выделить всё
select * from users where user='EXAMPLER'
- Zedik
- сержант
- Сообщения: 283
- Зарегистрирован: 2007-01-20 22:30:57
- Откуда: 127.0.0.1
Re: pure-ftpd и разграничение по IP
Код: Выделить всё
mysql> select * from users where user='pain';
+-------+----------------------------------+------+------+-------------------------+------------+-----------+-------------+-------------+-----------+---------+--------+---------+---------+----------+
| User | Password | Uid | Gid | Dir | QuotaFiles | QuotaSize | ULBandwidth | DLBandwidth | Ipaddress | Comment | Status | ULRatio | DLRatio | IPServer |
+-------+----------------------------------+------+------+-------------------------+------------+-----------+-------------+-------------+-----------+---------+--------+---------+---------+----------+
| pain | 111 | 1005 | 1005 | /var/ftp/data/pain | 0 | 0 | 0 | 0 | * | | 1 | 0 | 0 | 10.0.0.9 |
+-------+----------------------------------+------+------+-------------------------+------------+-----------+-------------+-------------+-----------+---------+--------+---------+---------+----------+
1 row in set (0.00 sec)
- kolesya
- сержант
- Сообщения: 191
- Зарегистрирован: 2006-10-17 15:54:01
- Откуда: Украина, Киев
Re: pure-ftpd и разграничение по IP
если зайти так ftp://pain:111@10.0.0.9/ то ты будеш юзером pain и хомяком будет /var/ftp/software
а если ftp://pain:111@194.80.50.40/ то ты будеш анонимом,
см в конфиге
должен возвращать две записи (для твоей схемы)
где поле IPServer для юзера pain должны быть 194.80.50.40 и 10.0.0.9
а если ftp://pain:111@194.80.50.40/ то ты будеш анонимом,
см в конфиге
Код: Выделить всё
NoAnonymous no
Код: Выделить всё
select * from users where user='pain';
где поле IPServer для юзера pain должны быть 194.80.50.40 и 10.0.0.9
