Назад | Перейти на главную страницу

Правило ограничения подключения Proftpd пользователем

В настоящее время мы определяем в Глобальный Объем нашего сервера 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), который также может помочь в этой области.

Надеюсь это поможет!