Здравствуйте.
Есть сайт на сервере со связкой "Apache+Nginx". Появилась необходимость закрыть доступ к сайту через публичные прокси. Как это лучше сделать?
Была идея заблокировать через .htaccess, но чёрные списки IP довольно большие – не вызовет ли это торможение?
DanielOlivo: Кстати, можно даже с помощью iptables гибко управлять тем, что вы хотите показать заблокированным клиентам, если делать не DROP, а REDIRECT --to-port $dstPortNumber. Тогда в nginx пропишете server {port: nnnn;}, а там уже показывайте что хотите, сюда придут только те пользователи, которых iptables перенаправил.
iptables при среднем и большом количестве правил (например, блокировок) начинает тормозить. ipset даже при большом количестве адресов для блокировки работает быстро.
Поэтому лучше использовать не чисто iptables, а iptables+ipset,
И кстати обратите внимание, что в Ipset есть возможность добавлять адреса в базу на какой-то временной промежуток. Например Вы можете добавить IP адрес на месяц. Месяц он будет блокироваться, а потом удалиться из базы. И еще ipset (про iptable не помню) при перезагрузке правила и адреса, введенные из командной строки сбрасывает. Поэтому, если Вы хотите, чтобы после перезагрузки правила сохранялись, нужно об этом позаботится. Это решаемо. Как это сделать, почитайте в интернете.