Мой Squid (3.1.20 на Ubuntu 13.04) подвергается DDoS-атаке (около 1000 различных IP-адресов).
Я использую базовую аутентификацию, и все эти запросы получают ОТКЛОНЕННЫЙ ответ, но все же увеличивают нагрузку на сервер.
Как я могу защититься от DDoS-атаки на Squid?
Как насчет использования fail2ban с фильтром squid?
Есть пример конфигурации Вот:
# Fail2Ban configuration file for squid
#
# Author: Jackie Craig Sparks
#
# $Revision: 728 $
#
[INCLUDES]
# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf
[Definition]
_daemon = squid
# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
# host must be matched by a group named "host". The tag "<HOST>" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P<host>[\w\-.^_]+)
# Values: TEXT
#
failregex = \d{0,10}.*\d{0,3}\ .* \ \d <HOST> TCP_DENIED\/407 .*$
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =
Если вы можете настроить Squid для привязки только к localhost и доступа к нему через туннель SSH (или через VPN, если это возможно), вы измените поверхность атаки на что-то, что должно иметь меньшее влияние на производительность. Я бы использовал iptables для ограничения скорости входящих SSH-подключений, обращающихся к нему через SSH (на самом деле это именно то, что я делаю со своим собственным кешем Squid).