у меня есть защищенный паролем каталог с сотнями пользователей в htpasswd файле.
я хочу позволить загрузку файлов на этих условиях:
я видел сотни статей и вопросов о том, как ограничить количество Соединений на основе IP. но ни один на основе User
. разъясниться a User
я обращаюсь к a valid-user
в htpasswd
файл.
пример: позволяет говорят, что у меня есть htpasswd с читающими пользователями:
simon:$apr1$oL5flt.H$ayy6GOm0TblhH3lJXqf9o0
john:$apr1$JLGdTKlz$72ImnSlauIsCRV4lkrqE3/
и я добавил require valid-user
к htaccess.
john
подключения для получения file.zip от 192.168.2.8
с 1 соединением. (позволить)john
устанавливает еще 31 связь с в общей сложности 32 (или любое число действительно) от 192.168.2.8
. (позвольте) [потому что IP уже соответствует активным соединениям]john
подключения от 192.168.2.9
получить любой файл прежде, чем закрыть предыдущие соединения. (отклоните) [потому что активные соединения имеют другой IP]simon
подключения от 192.168.2.8
(тот же IP как активные соединения), не (позвольте) [никакие другие соединения от simon]john
от 192.168.2.8
загрузка концов file.zip
john
от 192.168.2.9
хочет загрузить файл (позволяют).заранее спасибо.
Использовать iptables? Возможно, это не идеально, но я надеюсь, что это укажет вам правильное направление. Если у вас несколько виртуальных хостов, где вы не хотите этого ограничения, вам, возможно, придется разместить его на отдельном IP или немного поиграть с назначением.
/sbin/iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 1 -j REJECT --reject-with tcp-reset