сегодня мы запустили apachebench на нашем сервере для его стресс-тестирования. Конечно, наша система достигла пика, а количество операций ввода-вывода на диске было огромным. Можем ли мы избежать того, чтобы другие люди запускали такие «тесты» или какие-то атаки, чтобы подвергнуть нашу систему нагрузке?
Мы запускаем apache на centos, iptables работает. Не совсем уверены, как лучше всего избежать этой проблемы?
Вы можете использовать recent
модуль с iptables для блокировки запросов, которые приходят быстро с определенного IP. Вот статья с некоторыми примерами. Если вы подвергаетесь большему количеству DoS-атак, которые перегружают вашу полосу пропускания, вам может потребоваться вмешательство интернет-провайдера, когда это произойдет. Основная тема, которую вы хотите изучить, - это атаки типа «отказ в обслуживании» (DoS).
IPTables может ограничивать количество подключений в секунду для каждого хоста источника. xinetd
также имеет аналогичный функционал; но я не думаю, что стоит запускать его перед Apache. Конечно, DDOS-атака обойдет это ограничение (это первая буква «D»). В этот момент файлы cookie и некоторые ограничения на маршрутизаторе будут предохранять ваш компьютер от сбоя, но служба все равно пострадает.
Для того, чтобы наша сеть была насыщена, требуется 6 четырехъядерных процессоров, работающих ab с одной из наших головных узлов кеш-памяти Varnish. С лаком вроде нет проблем. Мы могли бы модернизировать нашу машину Varnish до соединения 10g и задействовать больше машин, но какой в этом смысл?
Если один экземпляр ab разрушает ваш сервер, вы можете проанализировать свой webapp / stack. ab тестирует только одну страницу, что действительно должно быть одной из самых простых вещей в мире для любого веб-приложения.
Что произойдет, если вы получите эквивалентный объем реального трафика, имитирующий тест ab, сокрушивший ваш сервер?