Таким образом, я прочитал много отчетов из Juniper, содержащей некоторые стратегии предотвращения DOS. Я не надеюсь предотвращать любого, в частности, а скорее просто гарантировать, что сеть максимально лучше всего защищена.
Но я не склонен к конфигурациям copy+paste, которые я нашел онлайн, полностью не зная последствий.
У меня есть EX4200, находившийся в Интернете со многими общедоступными подсетями, всеми в их собственных VLAN с RVIs каждый.
Это - один пример, который я нашел...
term tcp-dos-protect-1 {
from {
protocol tcp;
tcp-flags "syn&!ack";
}
then policer tcp-dos-policer;
}
term tcp-dos-protect-2 {
from {
protocol tcp;
tcp-flags "fin|rst";
}
then policer tcp-dos-policer;
}
...
policer tcp-dos-policer {
filter-specific;
if-exceeding {
bandwidth-limit 500k;
burst-size-limit 15k;
}
then discard;
}
Теперь, это конкретное правило влияло бы на подлинный трафик? Под тяжелым состоянием сети - это только начало бы отбрасывать подлинный трафик или делает это действительно только блок "плохой" трафик?
Если вы не знаете, сколько данных обслуживает ваша среда, этот фильтр не должен вызывать никаких проблем. Он устанавливает жесткое ограничение на tcp-инициализации и флаги завершения / сброса на уровне 500 Кбит / с. Чтобы достичь этого предела, вам нужно будет обслуживать несколько миллионов новых TCP-запросов в секунду. Даже если некоторые хорошие пакеты действительно достигают этого жесткого предела, они просто отбрасываются, а затем повторяют попытку через несколько секунд.
Это также (к сожалению) верно для людей, пытающихся атаковать ваши серверы. Если один хост может инициировать несколько тысяч подключений к одному из ваших серверов каждую секунду, у вас все равно будут проблемы.
В отношении этих фильтров следует отметить то, что это очень грубый способ ограничения трафика; другими словами, он ограничен, но эффективен . Это хорошо для того, чтобы убедиться, что через вашу сеть не проходит ненужный трафик, но технологии веб-серверов (например, mod_security
, mod_evasive
и т. Д.) Всегда будут более интеллектуальными работа по управлению нагрузкой на сервер и выяснению того, с чем он должен и чего не должен работать.
В приведенном выше примере человек, пытающийся повторить соединение на этих уровнях, будет заблокирован на заранее определенный период времени. Максимум, что вы потеряете, - это минимальная пропускная способность и достаточный объем обработки для закрытия соединения.