LINUX.ORG.RU
решено ФорумAdmin

Оптимизация iptables и возможно ли это в данном случае

 , ,


0

1

Здравствуйте, имеются игровые сервера, обмен между игроком и сервером построен полностью на UDP протоколе. 1111,2222,3333 - игровые порты (3 сервера). Поднят туннель(pptpd) между windows и linux в качестве шлюза используется linux.

123.4.152.14 - IP сервера linux

10.1.0.2 - remoteip windows

10.1.0.1 - localip linux

Правила iptables
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t raw -X
iptables -t mangle -F
iptables -t mangle -X
iptables -t raw -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

iptables -t raw -A PREROUTING -i eth0 -p udp -m multiport --dports 1111,2222,3333 -m string --from 26 --to 40 --string «zzz» --algo bm -j DROP
iptables -t raw -A PREROUTING -i eth0 -p udp -m multiport --dports 1111,2222,3333 -m length --length 0:43 -j DROP

iptables -t nat -A POSTROUTING -s 10.1.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -d 123.4.152.14 -p tcp --dport 3389 -j DNAT --to-destination 10.1.0.2
iptables -t nat -A POSTROUTING -d 10.1.0.2 -p tcp --dport 3389 -j SNAT --to-source 10.1.0.1
iptables -t nat -A PREROUTING -d 123.4.152.14 -p udp -m multiport --dports 1111,2222,3333 -j DNAT --to-destination 10.1.0.2
iptables -t nat -A POSTROUTING -d 10.1.0.2 -p udp -m multiport --dports 1111,2222,3333 -j SNAT --to-source 10.1.0.1

Проблема в том, во время ddos когда на правиле по содержимому «zzz» начинает дропаться UDP flood атака. Легитимный трафик входящий с 4mbs, сокращается до 1,2 mbs из-за этого появляются дикие десинхроны играть на сервере невозможно. CPU почти не грузится при атаке, другого флуда нет, только этот. Атака около 50-70k pps.
Может увеличить очередь UDP пакетов можно как-нибудь?



Последнее исправление: novice_user_linux (всего исправлений: 1)

Вы проверяли, что у вас гигабитный канал?

Если у вас нет дропов на счётчиках сетёвки, то больше, до вашего -j DROP, пакетам теряться негде. Очередь UDP пакетов ничего не даст.

mky ★★★★★
()
Ответ на: комментарий от mky

Должен быть канал 1GB, может посоветуете что-нибудь конфиги какие-нибудь подкрутить? Весь ддос дропается как и сказал выше в правиле по содержимому, и при этом легитимный трафик сильно урезается, что-то сомневаюсь что канала не хватает.
root@Debian-87-jessie-64-minimal ~ # speedtest
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Hetzner (123.4.152.14)...
Selecting best server based on latency...
Hosted by HillCom Solutions (Alsfeld) [62.87 km]: 2.571 ms
Testing download speed........................................
Download: 867.17 Mbits/s
Testing upload
speed..................................................
Upload: 242.31 Mbits/s

novice_user_linux
() автор топика
Ответ на: комментарий от mky

root@Debian-87-jessie-64-minimal ~ # lshw -class network
*-network
description: Ethernet interface
product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:03:00.0
logical name: eth0
version: 09
serial: 50:46:5d:4d:1e:36
size: 1Gbit/s
capacity: 1Gbit/s
width: 64 bits
clock: 33MHz

novice_user_linux
() автор топика
Ответ на: комментарий от novice_user_linux

speedtest это хорошо, но это tcp.

Если есть возможность, попробуйте посмотреть, что происходит с udp-каналом с помощью iperf. Дефолтных 50 Мбит/с вполне достаточно, чтобы выяснить, есть ли потери пакетов и out-of-order.

И я бы советовал добавть в iptables правила ради счётчиков:

iptables -I FORWARD -d 10.1.0.2 -p udp
iptables -I OUTPUT -p gre

И сделать раз в секунду запись в файл вывода команд:

ip -s link show dev eth0
iptables -L -n -v -x

и потом посмотреть изменение значения счётчиков (посекундный тарфик) в обычном режиме и при DOS. Если у вас получится, что число пакетов по счётчику на интерфейсе близко к ″-j DROP″ + ″FORWARD″, а счётчик в ″FORWARD″ близок к счётчику в ″OUTPUT″, то, значит всё, что пришло на сетёвку, обработалось и ушло в pptp тунель.

mky ★★★★★
()
Ответ на: комментарий от mky

Есть предположение, что у hetzner сетевая карта не справляется с таким pps, что если взять дедик в ovh с antiddos? Получится ,что игроки все с России, сервер игровой работает в hetzner, шлюз будет в ovh , что можете сказать про такую связку?)

novice_user_linux
() автор топика
Ответ на: комментарий от novice_user_linux

для начала нужно отказаться от pptp.

Если на обоих серверах есть белый ip, то использовать двойной nat (snat+dnat)

vel ★★★★★
()
Ответ на: комментарий от novice_user_linux

Можно и без ната, gretap позволяет поднять полноценный L2-линк (словно сервера связаны ethernet-кабелем напрямую), если у серверов белые адреса и между ними могут ходить GRE-пакеты: https://habrahabr.ru/post/227859/

lizard ★★★
()
Ответ на: комментарий от novice_user_linux
iptables -t nat -A PREROUTING  <игровой_траффик> -j DNAT --to-destination <адрес_оффтопика>
iptables -t nat -A POSTROUTING -d <адрес_оффтопика> -j SNAT --to-source <адрес_линукса>

НО! для оффтопика все будут приходить с адреса линукса.

vel ★★★★★
()
Ответ на: комментарий от vel

iptables -t nat -A POSTROUTING -s 10.1.0.0/24 -o eth0 -j MASQUERADE

iptables -t nat -A PREROUTING -d 123.4.152.14 -j DNAT --to-destination 10.1.0.2
iptables -t nat -A POSTROUTING -d 10.1.0.2 -j SNAT --to-source 123.4.152.14

123.4.152.14 - IP сервера linux

Сейчас идет ddos это видно по легитимному трафику низкому, на linux дропов и ддос трафика нет, ничего не проходит. В firewall у hetzner разрешили ,что нужно другое все в блоке. Видимо у них на фильтрах все оседает и проходит только 1\3 часть легитимного трафика. Дело не в pptpd, придется менять хостинг. Спасибо всем за помощь

novice_user_linux
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.