• Страница 1 из 1
  • 1
Модератор форума: Dimitro, LightInDarkness  
Форум » Управление пиратскими серверами » Средства, статьи, обсуждения управления пиратскими серверами » [HOWTO] Защита сервера от DoS (Зачищаем сервер на основе GNU/Linux.)
[HOWTO] Защита сервера от DoS
iUnro
root@localhost
Вот как-то вечером решил написать скромный ман, как защитить WoW сервер, который стоит на GNU/Linux, от DoS. Так как на этом форуме нет разделов посвященных ОС или ПО, решил сделать тему здесь.
Скажу сразу, что это лишь примеры и скромные советы, а потому с помощью этого мана Вы сможете защитится только от DoSa обидевшихся на Вас игроков или конкурентов. От ботнета он не спасет (от ботнета пока ничего не спасает, так как ботнет в 100000 маших может "зафлудить" магистраль в 100гбит/c).


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

Итак, сначало узнаем ИП плохого человека, который вас Ддосит
# netstat -ntu | awk '{print $5}'| cut -d: -f1 | sort | uniq -c | sort -nr | more
Эта команда покажет нам все ИП-адресса подключенные к нашей машине. ИП-адресс с наибольшем количеством подключений, скорее всего, и является нашим ддосером.
Примечание - ИПы 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 атак, но, к сожалению, от флуд атаки обезопасить себя нелегко своими силами, так как даже если пакеты будут блокированы, они все равно забивают Ваш интернет канал.

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

Источник: Интернет.
Сообщение # 1 отредактировано iUnro - Среда, 20.07.2011, 18:36
Форум » Управление пиратскими серверами » Средства, статьи, обсуждения управления пиратскими серверами » [HOWTO] Защита сервера от DoS (Зачищаем сервер на основе GNU/Linux.)
  • Страница 1 из 1
  • 1
Поиск: