Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   AntiDDos - АнтиДДОС (https://forum.antichat.xyz/forumdisplay.php?f=141)
-   -   Syn Attack (https://forum.antichat.xyz/showthread.php?t=166121)

Serzh CS 25.12.2009 22:01

Syn Attack
 
Ребят как защититься от Syn Attack на Ubuntu 9.04 ? ;)

svesve 25.12.2009 23:21

Цитата:

Сообщение от Serzh CS
Ребят как защититься от Syn Attack на Ubuntu 9.04 ? ;)


в консоле из под рута
Код:

#Уменьшаем возможность DoS при уменьшении таймаутов
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time
echo 1 > /proc/sys/net/ipv4/tcp_window_scaling
echo 0 > /proc/sys/net/ipv4/tcp_sack
echo 1280 > /proc/sys/net/ipv4/tcp_max_syn_backlog

# Включаем SYN COOKIES
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

echo "65535" > /proc/sys/net/ipv4/ip_conntrack_max

через iptables

Код:

### Цепь для сброса (DROP) флуд пакетов SYN-s ######
/sbin/iptables -N syn-flood
/sbin/iptables -A syn-flood -m limit --limit 100/second --limit-burst 150 -j RETURN
/sbin/iptables -A syn-flood -j LOG --log-prefix "SYN flood: "
/sbin/iptables -A syn-flood -j DROP


Serzh CS 26.12.2009 14:50

:mad: Атака попрежнему прокатывает ...
Если даже открыт 80 порт а вебсервера нету то атака всеравно идёт! :mad: :mad: :mad:

MAQUEEN 26.12.2009 15:18

Заходим под рут:

Код HTML:

1. cd /root/downloads или другая директория где вы храните файлы.
 
2. wget http://www.r-fx.ca/downloads/apf-current.tar.gz
 
3. tar -xvzf apf-current.tar.gz
 
4. cd apf-0.9.3_3/ или какая у вас там версия.
 
5. ./install.sh
Получите сообщение
 
.: APF installed
Install path: /etc/apf
Config path: /etc/apf/conf.apf
Executable path: /usr/local/sbin/apf
 
6. Редактируем конфиг: vi /etc/apf/conf.apf
Базовые настройки, читайте README  для полных настроек
 
Находим: DEVEL_MODE="1"
Заменяем на: DEVEL_MODE="0"

Удостоверяемся:

SYSCTL_SYN ="1"
SYSCTL_SYNCOOKIES="1"

 
7. Настраиваем порты
 
Приблизительно:
(Все это на ваше усмотрение)
 
Common ingress (inbound) ports (Входящие порты)
# Common ingress (inbound) TCP ports
IG_TCP_CPORTS="21,22,25,53,80,110,143,443,6000_7000"
#
# Common ingress (inbound) UDP ports
IG_UDP_CPORTS="53"
 
Common egress (outbound) ports (исходящие порты)
# Common egress (outbound) TCP ports
EG_TCP_CPORTS="21,25,80,443,43"
#
# Common egress (outbound) UDP ports
EG_UDP_CPORTS="20,21,53"
 
8. Запускаем
/usr/local/sbin/apf -s
 
Другием команды:
usage /usr/local/sbin/apf [OPTION]
-s|--start ............. загрузить правила файрвола
-r|--restart ........... перезагрузить
-f|--flush|--stop ...... остановить
-l|--list .............. показать правила
-st|--status ........... статус
-a HOST|--allow HOST ... добавить host (IP/FQDN) в allow_hosts.rules
-d HOST|--deny HOST .... добавить host (IP/FQDN) to deny_hosts.rules

или :
(iptables и apf должны быть установлены)
Загружаем (D)DoS-Deflate
Код HTML:

wget http://www.inetbase.com/scripts/ddos/install.sh
chmod 0700 install.sh
./install.sh


svesve 26.12.2009 16:31

2 MAQUEEN вообщето тоже самое я описал выше, без использования apf.


2 TC

tcpdump что показывает?
ботнет большой?? мжет проще перекрыть подсть?

Serzh CS 26.12.2009 22:50

Атакуют из нескольких подсетей ...

svesve 05.01.2010 17:58

Режь подсети и не парься

ntldr 28.02.2010 23:47

Вот мой фаер собственного сочинения. Долго мучался с защитой от флуда сырыми SYN пакетами, вроде как получилось. Не претендую на правильность, мой опыт в дебиане - 3 месяца.
Буду рад если кто-то дополнит ;)

PHP код:

iptables -#очищаем правила
iptables -X syn-flood #удаляем цепочку если она есть
iptables -A FORWARD -j DROP #запрещаем форвард пакетов, мы же не роутер
iptables -A INPUT -i lo -j ACCEPT # разрешаем все внутренние коннекты
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #Сразу же принимаем все пакеты по установленным соединениям (не секурно, но для производительности гуд)

iptables -N syn-flood # цепочка по обработке входящих соединений на 80 порт
iptables -A INPUT -p tcp --syn --dport 80 -m state --state NEW -j syn-flood # Если установлен только флаг SYN (обычно такими пакетами и флудят, они же являются первыми при "трехразовом рукопожатии"). В обработку идут только новые соединения
iptables -A syn-flood -p tcp -m connlimit --connlimit-above 10 -j DROP # запрещаем одновременный коннект с 1 айпи не более 10 раз
iptables -A syn-flood -p tcp -m limit --limit 5/--limit-burst 10 -RETURN # если этот пакет приходит не чаще 5 раз за секунду, то проверка пройдена.
iptables -A syn-flood -j DROP # иначе дропаем

iptables -A INPUT -p tcp --dport 80 ! --syn -m state --state NEW -j DROP # если новый пакет пришел в обход рукопожатия, то дропаем его

iptables -A INPUT -p tcp --dport 80 -j ACCEPT # теперь разрешаем вход на 80 порт

iptables -A INPUT --source 123.45.67.89 -j ACCEPT # Разрешаем себе любые соединения (123.45.67.89 - свой айпи) например чтобы управлять по ssh
iptables -A INPUT -j DROP # все остальные пакеты не проходят 


ntldr 01.03.2010 02:01

PHP код:

iptables -F
iptables 
-X syn-flood
iptables 
-A FORWARD -j DROP
iptables 
-A INPUT -i lo -j ACCEPT
iptables 
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables 
-N syn-flood
iptables 
-A INPUT -p tcp --syn --dport 80 -m state --state NEW -j syn-flood
iptables 
-A syn-flood -p tcp -m limit --limit 3/second --limit-burst 10 -RETURN
iptables -A syn-flood -j DROP


iptables 
-A INPUT -p tcp --dport 80 ! --syn -m state --state NEW -j DROP
iptables 
-A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 -j DROP

iptables 
-A INPUT -p tcp --dport 80 -j ACCEPT

iptables 
-A INPUT --source айпи.админа.оло.ло -j ACCEPT

iptables 
-A INPUT -j DROP 

p.s. вот эти правила правильнее. То есть, если идет более 10 SYN/секунду, то ограничиваемся 3 syn+ack от сервера, таким образом можно установить не более 10 соединений.
Тестил, пашет. Жаль, в iptables не предусмотрено автобанилки :(


Время: 13:29