[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
[Скрипты] Защищающие в случае Досс / DDoS-атаки.
ПацаныДата: Суббота, 01.11.2014, 15:21 | Сообщение # 1
Группа: Удаленные
Сообщений: 50079





Внимание: Работа с IPT на удаленной машине весьма опасна, не заблокируйте себе доступ к серверу
Вариант №1: 
Запрет захода со сторонних стран

*Для облегчения польские девелоперы сделали скрипт.
Создать скрипт count.sh с содержанием :
#!/bin/bash ###Запрет захождение на сервер из определенных стран### ISO="af cn al dz as ad ao ai aq ag am aw au at az kh cm cv cf cg co in it zm zw" ### переменные среды, установите ваши если пути у вас иные ### IPT=/sbin/iptables WGET=/usr/bin/wget EGREP=/bin/egrep ### Не советую редактировать. ZONEROOT: папка куда установится скрипт, если ее нет сам создаст### SPAMLIST="countrydrop" ZONEROOT="/root/ddos" DLROOT="http://www.ipdeny.com/ipblocks/data/countries" [ ! -d $ZONEROOT ] && /bin/mkdir -p $ZONEROOT $IPT -N $SPAMLIST for c in $ISO do tDB=$ZONEROOT/$c.zone $WGET -O $tDB $DLROOT/$c.zone BADIPS=$(egrep -v "^#|^$" $tDB) for ipblock in $BADIPS do $IPT -A $SPAMLIST -s $ipblock -j DROP done done $IPT -I INPUT -j $SPAMLIST $IPT -I OUTPUT -j $SPAMLIST $IPT -I FORWARD -j $SPAMLIST exit 0 Обязательно настройте страны внутри скрипта!

*Создаем папку /root/ddos
*Вводим: chmod +x count.sh
*Можем настроить страны для которых мы запрещаем соединение, они настраиваются в самом файле, открываем и редактируем.
*Вводим: cd /root/ddos && ./count.sh
*Запустили, скрипт внес изменения в IPtables

P.S: в большинстве случаев досят из азии, в основном китай. (самые дешевые сервера для ботнета)

Вариант №2: 
Настройка соединений

*Так как на одного пользователя приходится — одно соединение с сервером, логично сделать ограничение.
*Для этого воспользуемся "connlimit" модом.
*Вводим: apt-get install user-mode-linux
*Теперь с помощью этого мода ограничим кол-во соединений на порт логина
*Вводим: iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 20 -j REJECT
*--connlimit-above 20 — означает, что на логин приходится постепенно 20 соединений и не более
*На гейм-сервер думаю не актуально ставить такое ограничение, при досе свободные места забьются и никто не зайдет
*А вот на порт mysql советуют поставить
*Вводим: iptables -A INPUT -p tcp --syn --dport 3306 -m connlimit --connlimit-above 30 -j REJECT
*Вводим:

Вариант №3: 
Установка правил

*Правил для IPTables в интернете много, но не все вам нужны.
*Использовались правила с allcheats, которые создавались специально для сервера.
#!/bin/shIPT=/sbin/iptablesUNIPORTS=«1024:65535»INET_IFACE=«eth0» $IPT -F$IPT -X$IPT -A INPUT -i lo -j ACCEPT$IPT -A OUTPUT -o lo -j ACCEPT$IPT -A OUTPUT -o eth0 -j ACCEPT$IPT -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT$IPT -A INPUT -i eth0 -p tcp --dport 2106 -j ACCEPT$IPT -A INPUT -i eth0 -p tcp --dport 3306 -j ACCEPT$IPT -A INPUT -i eth0 -p tcp --dport 7777 -j ACCEPT$IPT -A INPUT -p ICMP -i eth0 -j ACCEPT$IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 1024:65353 --sport 53 -j ACCEPT$IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE --dport 1024:65535 -j ACCEPT --sports 80,443! --syn$IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 1024:65535 --sport 21 -j ACCEPT! --syn$IPT -A INPUT -i eth0 -p tcp --dport 2106 -m state --state NEW -m connlimit --connlimit-above 20 -j REJECT$IPT -P INPUT DROP нимание: скрипт работает только для подключения eth0

*Установим эти правила
*Создаем файл .sh
*Пусть он будет расположен здесь: /root/server/ipt.sh
*Заполняем его нашими правилами(см. выше)
*Выдаем ему права на выполнение:
*Вводим: cd /root/server
*Вводим: chmod +x ipt.sh
*И запускаем:
*Вводим:
 sh ./ipt.sh
 
  • Страница 1 из 1
  • 1
Поиск: