Перейти к содержимому

Информация

  • Добавлен: Sep 14 2015 12:17 AM
  • Дата обновления: Sep 14 2015 12:17 AM
  • Просмотров: 1965
  • Автор мануала: Steve Dogs & Pro
 


* * * * *
0 Рейтинг

Защита от DDoS | IP Tables

IP Tables и Защита от DDoS

Написано SteveDogs on Sep 14 2015 12:17 AM

IP Tables и Защита от DDoS


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


Вариант №1: Запрет захода со сторонних стран
  • Для облегчения польские девелоперы сделали скрипт.
  • [Скачиваем его] Обязательно настройте страны внутри скрипта!
  • Создаем папку /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 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 в интернете много, но не все вам нужны.
  • Эти правила адаптированы под LineAge2 сервера.
#!/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
Все, ваш сервер полностью готов.
  • 0
Powered by Tutorials 1.4.2 © 2017, by Michael McCune