Advertisement
Guest User

Untitled

a guest
Apr 4th, 2020
313
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.73 KB | None | 0 0
  1. ipset=/sbin/ipset
  2. iptables=/sbin/iptables
  3. route=/etc/acl
  4. zone=zones
  5.  
  6. wgetd="wget -q -c --retry-connrefused -t 0"
  7.  
  8. if [ ! -d $zone ]; then mkdir -p $zone; fi
  9.         echo "Downloading country ip ranges..."
  10.         $wgetd http://www.ipdeny.com/ipblocks/data/countries/all-zones.tar.gz && tar -C $zone -zxvf all-zones.tar.gz >/dev/null 2>&1 && rm -f all-zones.tar.gz >/dev/null 2>&1
  11.  
  12.  
  13. # Какой порт защищать
  14. port=25565
  15.  
  16.  
  17. # Блокировать линукс подключения? true/false. Оно будет блокировать  большинство атак (с использованием прокси).
  18. block_linux_connections=true
  19.  
  20. limit_global_connections=true
  21. limit_global_connections_max=300
  22.  
  23. # Limit new connections per second. This is highly useful when Лимит новых подключений в секунду, это опция очень полезна
  24. # когда кто то начинает подрубать атаку, потому что это просто делает его атаку буквально бесполезной.
  25.  
  26. # Не полагайтесь только на эту настройку, так как это не исправит проблему полностью,
  27. # просто будет отсекать подозрительные IP-адресов.
  28. burstconns=15
  29.  
  30. Запланированная функция: Белый список плагинов
  31. timeout=900
  32.  
  33. # Эта настройка позволяет сделать белый список стран игроков, которые всегда смогут подключиться к вашему серверу.
  34. # А люди из других стран будут иметь ограниченную возможность подключиться.
  35. #
  36. # Полезные команды:
  37. # Очистить белый список: sudo ipset flush whitelist
  38. # Очистить прокси: sudo ipset flush proxies
  39. #
  40.  
  41. # Создание белого списка в пакете IPSET (установить apt-get install ipset или yum -y install ipset)
  42.  
  43.  
  44. echo "Preparing ipset configuration"
  45. $ipset -F
  46. $ipset -N -! proxies hash:net maxelem 150000 timeout $timeout
  47. $ipset -N -! whitelist hash:net maxelem 1000000
  48.  # This is where you select which countries you want whitelisted. It's really important.
  49.  for ip in $(cat $zone/{ro,md,fr,de,ie,gb,it,at,tr,bg,es}.zone); do
  50.   $ipset -A whitelist $ip
  51.  done
  52.  
  53. # Подготовка системы BotManager
  54.  
  55. # Шаг 1. Создаём и очищаем новую таблицу "BotManager"
  56. $iptables -N BotManager
  57. $iptables -F BotManager
  58.  
  59. # Шаг 2. Проверка максимального количества подключений, чтобы ослабить атаку.
  60. $iptables -A BotManager -p tcp --dport $port -m set --match-set proxies src -j DROP
  61. $iptables -A BotManager -p tcp --dport $port -m set --match-set whitelist src -j ACCEPT
  62. $iptables -A BotManager -p tcp --dport $port --syn -m limit --limit $burstconns/s -j ACCEPT
  63. $iptables -A BotManager -p tcp --dport $port --syn -j DROP
  64.  
  65. # Добавление таблицы BotManager в iptables и на всякий случай удаление (если таблица уже добавлена).
  66. $iptables -D INPUT -p tcp -j BotManager
  67. $iptables -A INPUT -p tcp -j BotManager
  68.  
  69. if $block_linux_connections ; then
  70.     $iptables -A INPUT -p tcp -m tcp --syn --tcp-option 8 --dport $port -j REJECT
  71.     echo 'Blocked linux connections!'
  72. fi
  73.  
  74. if $limit_global_connections ; then
  75.     $iptables -I INPUT -p tcp --dport $port -m state --state NEW -m limit --limit $limit_global_connections_max/s -j ACCEPT
  76.     echo 'Limited global connections!'
  77. fi
  78.  
  79. echo "Firewall applied successfully."
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement