В настоящее время мы определяем в Глобальный Объем нашего сервера ProFTPd следующие строки:
# Allow max 3 unauthenticated connections by IP
MaxConnectionsPerHost 3 "Sorry, you may not connect more than (%m) times."
# Allow max 3 authenticated connections by IP
MaxClientsPerHost 3 "Sorry, the maximum number clients (%m) from your host are already connected."
# Allow max 10 connection by user
###### MaxClientsPerUser 10 "Sorry, there is already (%m) other connection for this account."
Он работает как обслуживаемый, но мы хотели бы разрешить некоторым (не всем) аутентифицированным пользователям (или IP-адресам в качестве недостатка) открывать больше соединений, чем указано выше.
Возможно ли это с ProFTPd?
Да -> любая помощь будет оценена.
Нет -> Может быть, есть какой-нибудь другой бесплатный FTP-сервер производственного уровня, например PureFTP или vsftpd, который соответствует этим требованиям?
Да, это возможно, используя mod_ifsession
с <IfUser>
и <IfClass>
разделы.
Используя <IfUser>
раздел, вы должны определить пользовательские разделы, например:
<IfUser user1, user2, user3>
# Special users get special treatment
MaxConnectionsPerHost 30
MaxClientsPerHost 30
MaxClientsPerUser 100
<IfUser>
<IfUser AND !user1, !user2, !user3>
# All other users get the normal treatment
MaxConnectionsPerHost 3
MaxClientsPerHost 3
MaxClientsPerUser 10
</IfUser>
Если у вас много пользователей, вы также можете рассмотреть возможность использования группы а не отдельные имена пользователей, а <IfGroup>
раздел.
Для ограничений по IP-адресу / диапазону я бы рекомендовал использовать ProFTPD классы. С классами и <IfClass>
раздел от mod_ifsession
, вы можете сделать что-то вроде этого:
<Class special-ips>
From 1.2.3.4
From a.b.c.d
</Class
<IfClass special-ips>
# Clients from the special class get special treatment
MaxConnectionsPerHost 30
MaxClientsPerHost 30
MaxClientsPerUser 100
</IfClass>
<IfClass !special-ips>
# All other clients get the normal treatment
MaxConnectionsPerHost 3
MaxClientsPerHost 3
MaxClientsPerUser 10
</IfClass>
Обратите внимание, что это очень хорошая идея для определения обоих правил "соответствия" и правила "несоответствия".
ProFTPD Подключение ACLS howto также охватывает эту тему и упоминает другие модули (например mod_wrap2
, mod_geoip
), который также может помочь в этой области.
Надеюсь это поможет!