Page 1 of 3
Защита от DDoS apache+nginx
Posted: Thu Feb 06, 2014 10:23 pm
by akifievaa
Может кто из опытных подсказать как эффективней всего настроить
защиту от DDoS на конфигурации сервера apache+nginx?
VPS с памятью 512 МБ.
Делал нагрузку на него с помощью LoadImpact - 250 подключений в 1 минуту - сервер ложится.
(установлена CMS 1C-Bitrix demo интернет-магазин)
Где что в конфигах подкрутить чтобы он не ложился а просто отрубал подключения?
Самое интересное, что витрина после атаки не грузится вообще а вот в панель заходит.
Httpd по информации жрет 82120 MB ::)))))
Re: Защита от DDoS apache+nginx
Posted: Fri Feb 07, 2014 1:55 am
by Alligator
От ddos с 512мб никак защититься невозможно, только от dos. Ограничить запросы можно через iptables или nginx. Ограничение через nginx на форуме уже обсуждалось
тут . Количество запросов и коннектов подбирается индивидуально для проекта.
Re: Защита от DDoS apache+nginx
Posted: Fri Feb 07, 2014 6:41 am
by akifievaa
Господа, большая просьба выложите свои конфиги с настройкой NGINX по вышеописанным инструкциям.
Вроде сделал как по инструкции (но походу все таки не так), все равно MySQL падает если F5 секунд 30 держать, 503 страница даже не появляется.
Могу дать SSH под рут к серверу для прямой правки конфигов. Сервак экспериментальный. Прежде чем настраивать нормальную версию надо
путем пробный настроить.
UPD
еще поставил DDOS deflate но он по факту от падения Mysql не спасает
Re: Защита от DDoS apache+nginx
Posted: Fri Feb 07, 2014 7:58 am
by Alligator
У меня такие лимиты. Да и в общем для большинства серверов этого будет достаточно.
Code: Select all
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn perip 4;
limit_conn_status 503;
limit_req_zone $binary_remote_addr zone=dyn:10m rate=8r/s;
limit_req zone=dyn burst=10;
limit_req_status 503;
Re: Защита от DDoS apache+nginx
Posted: Fri Feb 07, 2014 8:14 am
by akifievaa
отписал в личку
Re: Защита от DDoS apache+nginx
Posted: Fri Feb 07, 2014 8:52 am
by imperio
Сразу хочу заметить, что если будет сильная ddos атака, программная защита не спасёт.
Поможет только защита на уровне сетевого оборудования.
Re: Защита от DDoS apache+nginx
Posted: Fri Feb 07, 2014 9:00 am
by akifievaa
Это все понятно. Но от F5 сервак держать обязан.
Re: Защита от DDoS apache+nginx
Posted: Fri Feb 07, 2014 9:13 am
by imperio
все равно MySQL падает
А какая ошибка появляется?
Какая ОС?
Предоставляйте больше сведений, когда пишите об ошибке
Скорее всего мускуль падает из-за нехватки памяти
Re: Защита от DDoS apache+nginx
Posted: Fri Feb 07, 2014 1:36 pm
by demian
для 512 оперативы
для CentOS (для дебиана чуть поменяются пути)
Code: Select all
/etc/my.comf
#####
# From mysql 5.5 low memory use 231M
#####
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
max_connections=70
max_user_connections=30
wait_timeout=10
interactive_timeout=50
slow_query_log = 0
long_query_time= 5
log-queries-not-using-indexes
slow_query_log_file=/var/log/mysql/log-slow-queries.log
key_buffer_size = 8M
myisam_sort_buffer_size = 4M
join_buffer_size = 512K
read_buffer_size = 512K
sort_buffer_size = 1M
table_cache = 2048
thread_cache_size = 128
max_allowed_packet = 16M
query_cache_limit = 2M
query_cache_size = 8M
tmp_table_size = 16M
#innodb_use_native_aio = 0
innodb_file_per_table
innodb_buffer_pool_size = 8M
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
включить при загрузки iptables
на вскидку
Code: Select all
/etc/sysconfig/iptables
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [16807:31509796]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -m state --state NEW -m recent --rcheck --seconds 6000 --name BLOCK --rsource -j DROP
-A INPUT -p tcp -m tcp --dport 21 -m state --state NEW -m hashlimit --hashlimit-above 2/min --hashlimit-burst 2 --hashlimit-mode srcip --hashlimit-name BLOCK -m recent --set --name BLOCK --rsource -j DROP
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --rcheck --seconds 6000 --name BLOCK --rsource -j DROP
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m hashlimit --hashlimit-above 2/min --hashlimit-burst 2 --hashlimit-mode srcip --hashlimit-name BLOCK -m recent --set --name BLOCK --rsource -j DROP
-A INPUT -p tcp -m tcp --dport 22 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -m limit --limit 600/min --limit-burst 100 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -m state --state NEW -m limit --limit 600/min --limit-burst 100 -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 1/sec -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit --limit 1/sec -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -j DROP
-A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j DROP
-A INPUT -j REJECT --reject-with icmp-host-prohibited
как то так
Re: Защита от DDoS apache+nginx
Posted: Fri Feb 07, 2014 1:53 pm
by demian
есть еще пару вариантов, в том числе на базе nginx+iptables... но не покатят ибо потребуют больше ресурсов...