• Новые темы в этом разделе публикуются автоматически при добавлении файла в менеджер ресурсов.
    Ручное создание новых тем невозможно.

Мануал IP Tables и Защита от DDoS

Deversant

Знаменитый
Участник
Сообщения
19
Розыгрыши
0
Репутация
4
Реакции
6
Баллы
1 285
Внимание: работа с 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=" " [ ! -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
Большинстве случаев ддосят из азии, в основном китай там самые дешевые сервера для ботнета

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

Так как на одного пользователя приходится - одно соединение с сервером, логично сделать ограничение.
Для этого воспользуемся "connlimit" модом.
Вводим: apt-get install user-mode-linux
Теперь с помощью этого мода ограничим кол-во соединений на порт логина
Вводим: iptables -A INPUT -p tcp --syn --dport 2106 -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: Установка правил

Правил для IP Tables в интернете много, но не все вам нужны.
Эти правила адаптированы под Lineage II сервера.
#!/bin/sh
IPT=/sbin/iptables
UNIPORTS="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 ACCE
PT
$IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE --dport 1024:65535 -j AC
CEPT --sports 80,443 ! --syn
$IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 1024:65535 --sport 21 -j ACCE
PT ! --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
Все, ваш сервер полностью готов.
 

блин клас пасиба теперь меня никто не пробьёт! 🐥
 
Может быть кому то пригодиться :)
 
Бесполезная вещь, совершенно, это даже не защита от DDoS, эту настройку должен иметь каждый сервер в сети интернет.
Что мешает изменить на любой другой интерфейс, например на ens123 ?
INET_IFACE="eth0"
Внимание: скрипт работает только для подключения eth0

Правил для IP Tables в интернете много, но не все вам нужны.
Эти правила адаптированы под Lineage II сервера.
#!/bin/sh
IPT=/sbin/iptables
UNIPORTS="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 $INET_IFACE -j ACCEPT
$IPT -A INPUT -i $INET_IFACE -p tcp --dport 22 -j ACCEPT
$IPT -A INPUT -i $INET_IFACE -p tcp --dport 2106 -j ACCEPT
$IPT -A INPUT -i $INET_IFACE -p tcp --dport 3306 -j ACCEPT
$IPT -A INPUT -i $INET_IFACE -p tcp --dport 7777 -j ACCEPT
$IPT -A INPUT -p ICMP -i $INET_IFACE -j ACCEPT
$IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 1024:65353 --sport 53 -j ACCE
PT
$IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE --dport 1024:65535 -j AC
CEPT --sports 80,443 ! --syn
$IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 1024:65535 --sport 21 -j ACCE
PT ! --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


Лучше уже так тогда.
 
Последнее редактирование:
Можно конечно любой только нужно указать какое именно подключение имеется
 
Может быть кому то пригодиться :)
К сожалению, Вы опоздали с этим гайдом лет на 10-15.
Уже в году 2010 (а то и раньше) были скрипты из г*вна и палок для syn spoof флуда, от которых нельзя было задефаться просто настройкой правил iptables, а включение syn cookies приводило к 100% утилизации CPU.
У меня, к примеру, было такое:


В то время выдавало около 160kpps
 
мне кажется 10 правил в CHR от микротыка больше профита даст чем это)))

А вообще без понимания OSI можно даже не писать подобное в 2021, потому что если будет понимание руки до написания такого не потянутся
 
От
К сожалению, Вы опоздали с этим гайдом лет на 10-15.
Уже в году 2010 (а то и раньше) были скрипты из г*вна и палок для syn spoof флуда, от которых нельзя было задефаться просто настройкой правил iptables, а включение syn cookies приводило к 100% утилизации CPU.
У меня, к примеру, было такое:

*** Скрытый текст не может быть процитирован. ***
В то время выдавало около 160kpps
Если подтюнить немного, то от школьников с софтом вполне защитит :)
А от DDOS защиты нет вринципе (если не иметь ввиду услуг третих лиц).
 
this is for vps with proxy reverse tcp?
 
Назад
Сверху Снизу