#1 10.02.09 09:09
Есть ли способ бороться syn flood на удалённом vds?
преамбула: достался ресурс, оказался проблемный что просто плакать хочется. сначала был шаред хостинг и дос, хостер сразу попросил удалится с хостинга. взял дешёвый vds, с помощью mod_evasive и iptables избавился от доса, благо он был не большой. и вот теперь, судя по описанию в интернете, началась syn flood атака.
стоит запустить апач, начинают дублироваться демоны httpd и буквально за минуту
cat /proc/net/ip_conntrack | wc -l
3556
кусок netstat -ptu
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 w-research.ru:http ::ffff:119.42.68.4:21852 TIME_WAIT -
tcp 0 284 w-research.ru:ssh ::ffff:87.241.:neveroffline ESTABLISHED 1994/0
tcp 0 0 w-research.ru:ssh ::ffff:87.241.195:firepower ESTABLISHED 2040/1
tcp 0 0 w-research.ru:http ::ffff:119.42.68.4:20086 TIME_WAIT -
tcp 0 0 w-research.ru:http ::ffff:119.42.70.84:22050 TIME_WAIT -
tcp 0 0 w-research.ru:http ::ffff:119.42.68.4:20089 TIME_WAIT -
tcp 0 0 w-research.ru:http ::ffff:119.42.68.4:20090 TIME_WAIT -
tcp 0 0 w-research.ru:http ::ffff:119.42.68.4:20068 TIME_WAIT -
tcp 0 0 w-research.ru:http ::ffff:119.42.68.4:20069 TIME_WAIT -
tcp 0 0 w-research.ru:http ::ffff:119.42.68.4:20067 TIME_WAIT -
tcp 0 12421 w-research.ru:http ::ffff:90.15:sns-dispatcher LAST_ACK -
tcp 0 0 w-research.ru:http ::ffff:119.42.70.84:20052 TIME_WAIT -
tcp 0 0 w-research.ru:http 203-144-218-206.stati:45591 TIME_WAIT -
tcp 0 1 w-research.ru:http ppp-58-9-99-10.revip2.:item FIN_WAIT1 -
tcp 0 0 w-research.ru:http ::ffff:119.42.68.4:21556 TIME_WAIT -
tcp 0 0 w-research.ru:http ::ffff:119.42.68.4:21821 TIME_WAIT -
tcp 0 0 w-research.ru:http ::ffff:119.42.70.84:20072 TIME_WAIT -
tcp 0 0 w-research.ru:http ::ffff:119.42.70.84:20073 TIME_WAIT -
tcp 0 0 w-research.ru:http ::ffff:119.42.70.84:20091 TIME_WAIT -
tcp 0 0 w-research.ru:http 203-144-218-206.stati:59585 TIME_WAIT -
tcp 0 12421 w-research.ru:http ::ffff:90.151.194.:ii-admin LAST_ACK -
tcp 0 501 w-research.ru:http wiera.ektf.hu:ncl LAST_ACK -
tcp 0 501 w-research.ru:http wiera.ektf.hu:wusage LAST_ACK -
tcp 0 501 w-research.ru:http wiera.ektf.hu:fmpro-fdal LAST_ACK -
tcp 0 501 w-research.ru:http wiera.ektf.hu:orbiter LAST_ACK -
tcp 0 0 w-research.ru:http 203-144-218-206.stati:50853 TIME_WAIT -
tcp 0 501 w-research.ru:http wiera.ektf.hu:cvspserver LAST_ACK -
tcp 0 501 w-research.ru:http wiera.ektf.h:opequus-server LAST_ACK -
tcp 0 12421 w-research.ru:http ::ffff:90.151.194.75:4talk LAST_ACK -
tcp 0 12421 w-research.ru:http ::ffff:90.151.194.:whosells LAST_ACK -
Заметил что вчера STATE был SYN_RECV, сегодня же LAST_ACK
существует ли способ боротся с такого рода атакой на vds? если учесть что нельзя допустим пересобрать ядро для того что бы работало --limit в iptables
Offline
#3 10.02.09 09:19
Re: Есть ли способ бороться syn flood на удалённом vds?
и ещё способы ,которым я частично победил первый дос, может из этих способов можно что-нибудь выжать:
1. mod_evasive. в его конфиге указал DOSSystemCommand "/usr/bin/sudo /sbin/iptables -I INPUT 1 -s %s -j DROP" (когда айпи попадает в блеклист я его фаерволом добивал). попало штук 50 айпи.
2. mod_geoip. с помощью этого мода я дал доступ только для RU.
Offline
#5 10.02.09 16:16
Re: Есть ли способ бороться syn flood на удалённом vds?
а таки поставить nginx в качестве фронт-энда перед апачем?
http://sysoev.ru/nginx/docs/example.html типа вот так... глядишь, этого хватит, а там и надоест.
вот ещё нарыл бородатых советов на лоре
имхо нужен модуль который умеет ограничивать TCP-SYN per ip address. теоретически можно сделать с помошью модулей recent + limit :
iptables -A INPUT -i $inetdev -m recent --name syn-flood --rcheck -j DROP
iptables -A INPUT -i $inetdev -p tcp --syn --dport 80 -j syn-flood
iptables -N syn-flood
iptables -A syn-flood -m limit --limit 10/second -j RETURN
iptables -A syn-flood -m recent --name syn-flood --set -j DROP
http://www.linux.org.ru/books/HOWTO/pac … WTO-7.html
Исправлено VS (10.02.09 16:36)
Offline
#8 11.02.09 11:28
Re: Есть ли способ бороться syn flood на удалённом vds?
вот такая идейка появилась.
проверяем куки nginx'ом, если есть определёная печенька с определёным значением, то проксируем запрос на апач, если нет, то работает nginx выдавая страничку типо "Что бы получить доступ до ресурса нужно получить инвайт" и форму для ввода мыла и ввода кода инвайта. В письме отправляем код инвайта. Юзер вводит код, получает печеньку и редиректица на ресурс.
Offline
#10 11.02.09 14:39
Re: Есть ли способ бороться syn flood на удалённом vds?
Печенюшки обходятся
или в ядре не включены?
проверяем куки nginx'ом, если есть определёная печенька с определёным значением, то проксируем запрос на апач,
вот именно что-то вроде этого народ и мутит - апач работает только с нормальными запросами, а nginx чихпыхается с мусором.
А вот с мылами и кодами инвайта это перебор имхо. всё равно что не работает сайт.
Offline
#11 12.02.09 01:14
#12 12.02.09 07:36
#13 15.02.09 16:00
#14 17.02.09 23:23
#15 18.02.09 00:10
#16 18.02.09 16:09
#17 18.02.09 16:15
#18 18.02.09 16:40
#19 18.02.09 16:51
#20 18.02.09 16:53
#21 18.02.09 16:59
#22 19.02.09 00:33
#23 20.02.09 09:30
#24 21.02.09 02:00
#25 21.02.09 07:21
Re: Есть ли способ бороться syn flood на удалённом vds?
Кста, в линуксе тоже шейпить трафик легко) tc в помощь) И не надо особо ничего доставлять)
Исправлено Com[N-Line] (21.02.09 07:21)
Offline
#26 21.02.09 17:01
#27 23.02.09 09:06
#28 23.02.09 12:55
Re: Есть ли способ бороться syn flood на удалённом vds?
rmir, как только со фряхой разберсь так сразу посмотрю что есть линух))
Да и еще моя фря 7.0 релиз сказазала что options TCP_DROP_SYNFIN такого она не знает и ядро с такой опцией компитлить не будет...у нее это стоит уже или ей что то еще надо?
Исправлено Wic (23.02.09 12:57)
Offline

