World of Warcraft



 
 
 
 
 
Король Линч Баннер Король Линч
 
 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
[HOWTO] Защита сервера от DoS
У вас  Дата: Воскресенье, 13.03.2011, 12:26 | Сообщение # 1
Virus







         Фракция:Орда
         Сообщений: 281
         Репутация: []
 
         Статус:

Сначала пару примечаний:
1. ОС GNU/Linux и основанные на этом ядре дистрибутивы (повторяю еще раз для тех кто в танке)
2. Все команды (буду обозначать их символом #) выполняются из под суперпользователя.
3. У меня проверено и работает, но я не несу ответственности за возникшие у Вас проблемы.
4. То, что тема создана в этом разделе не значит, что такое возможно только на эмуляторах тринити. Эмуляторы сюда вообще отношения как такового не имеют.

Итак, сначало узнаем ИП плохого человека, который вас Ддосит
# netstat -anp | grep 'tcp\|udp' | cut -d: -f1| sort | uniq -c
Эта команда покажет нам все ИП-адресса подключенные к нашей машине. ИП-адресс с наибольшем количеством подключений, скорее всего, и является нашим ддосером.
Примечание - ИПы 0.0.0.0/8 и 127.0.0.0/8 являются замкнутыми интерфейсами и мы их не берем во внимание.

Посте того, как мы получили его ИП мы можем проделать пару операций:

Бан ИП-адресса:
Мы можем забанить ИП обидчика, что бы все пакеты, которые он посылал, разрушались не проходя интерфейс.
# iptables -A INPUT -s ИП_ОБИДЧИКА -j REJECT
После чего сохраняем примененные правила
# service iptables save
Прелесть опции REJECT в том, что в отличии от DROP сервер не обрабатывает пакет, а потом блокирует, а блокирует сразу. Соответственно экономит ресурсы.

Ограничить количество подключений на определенный порт:
# iptables -A INPUT -p tcp -m tcp --dport ПОРТ -m connlimit --connlimit-above КОЛИЧЕСТВО_ПОДКЛЮЧЕНИЙ --connlimit-mask 32 -j DROP
# iptables -A INPUT -p tcp -m tcp --dport ПОРТ --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
После чего сохраняем примененные правила
# service iptables save
Это позволяет ограничить подключение в серверу мира\авторизации. В результате чего злоумышленник не сможет открыть кучу фиктивных подключений, которые заполнят весь порт, и игрокам не останется места.

Запрет сканирования портов.
# iptables -P INPUT DROP
# iptables -P OUTPUT ACCEPT
# iptables -A INPUT -p all -i ИНТЕРФЕЙС -j ACCEPT
# iptables -A OUTPUT -p all -o ИНТЕРФЕЙС -j ACCEPT
# iptables -A INPUT -m recent --rcheck --seconds ВРЕМЯ_БАНА_В_СЕК --name STOPSCAN -j DROP
# iptables -A INPUT -p tcp -m multiport ! --dports ПОРТ1,ПОРТ2, ПОРТn -m recent --set --name STOPSCAN -j DROP
# iptables -A INPUT -p tcp --syn --dport ПОРТ1 -j ACCEPT
# iptables -A INPUT -p tcp --syn --dport ПОРТ2 -j ACCEPT
# iptables -A INPUT -p tcp --syn --dport ПОРТn -j ACCEPT
# iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A OUTPUT -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
При такой настройке iptables все запросы идущие НЕ на порты которые мы разрешили (ПОРТ1, ПОРТ2, и тд) будут блокировани на ВРЕМЯ_БАНА_В_СЕК, а вместе с запросами будет блокирован и ИП адресс отправителя.
После чего сохраняем примененные правила
# service iptables save

Вообще, блокирование сканирования портов и ограничение количества подключений на них должно в большей мере вас обезопасить от DoS атаки и мелких DDoS атак, но, к сожалению, от флуд атаки обезопасить себя нелегко своими силами, так как даже если пакеты будут блокированы, они все равно забивают Ваш интернет канал.

Всем спасибо. Позже, может. допишу еще пару интересносней



Незаймёт много премени


Сообщение отредактировал Virus - Понедельник, 14.03.2011, 18:04
 
У вас  Дата: Воскресенье, 13.03.2011, 20:57 | Сообщение # 2
Adam_Monro







         Фракция:Орда
         Сообщений: 53
         Репутация: []
 
         Статус:

Quote (Virus)
Вот как-то вечером решил написать скромный ман

Quote (Virus)
Дата: Воскресенье, Сегодня, 12:26 |
 
  • Страница 1 из 1
  • 1
Поиск:

Баннер
 
World-All.net © 2026