Limit prędkości/pakietów na adres IP

Zombie
vps, zarządzanie
Szymonjjay
Szymonjjay

Dzień dobry Chcę zabezpieczyć serwer przed zapychaniem łącza i przychodzę do was z zapytaniem: Czy ktoś umie lub czy posiada ktoś jakieś gotowe rozwiązanie na ustawienie sztywnego limitu prędkości lub też limit przesyłanych pakietów dla każdego pojedyńczego połączonego z osobna IP z serwerem VPS? Byłbym wam bardzo wdzięczny.

Axerr
Axerr

Masz na myśli transfer plików czy pojedyncze pakiety? IPTables powinno dać radę.

Szymonjjay
Szymonjjay

Pakiety. Jak ktoś wyśle więcej niż jest ustawione to serwer je odrzuci.

Axerr
Axerr

sudo iptables -N PACKET-LIMIT sudo iptables -A PACKET-LIMIT -m limit --limit 50/s --limit-burst 0 -j ACCEPT sudo iptables -A PACKET-LIMIT -j DROP sudo iptables -A INPUT -j PACKET-LIMIT Tutaj masz przykład 50 pakietów na sekundę, reszta jest odrzucana przez serwer.

Szymonjjay
Szymonjjay

Bardzo dziękuje, ale pomyślałem, że może ktoś wysłać mniej pakietów, ale dużo dużo większych. Da się jakoś ustawić maksymalną wielkość?

Axerr
Axerr

Dodawanie takich ograniczeń za pomocą iptables może być trudne. Spróbuj zedytować/napisać/znaleźć jakąś wtyczkę (która sprawdzałaby wielkość pakietu i odrzucała go) do aplikacji/gry którą chcesz zabezpieczyć.

SystemZ
SystemZ Admin lvlup.pro

Axerr:

Dodawanie takich ograniczeń za pomocą iptables może być trudne.

Niekoniecznie, wystarczy to wyliczyć jeśli znamy protokół i chcemy blokować po ilości pakietów w czasie. @Nieznajomy11 masz jakieś konkretne dane odnośnie wielkości pakietów? Domyślam się że chodzi tu o MC

Axerr:

Spróbuj zedytować/napisać/znaleźć jakąś wtyczkę (która sprawdzałaby wielkość pakietu i odrzucała go) do aplikacji/gry którą chcesz zabezpieczyć.

To jest zdecydowanie mniej wydajne, prawdopodobnie taka sytuacja ma już właśnie miejsce i silnik gry po prostu nie wyrabia.

Nieznajomy11
Nieznajomy11 Moderator forum.lvlup.pro

SystemZ:

masz jakieś konkretne dane odnośnie wielkości pakietów? Domyślam się że chodzi tu o MC

Wszystko zależy od ustawionej kompresji, same pakiety przy normalnym ustawieniu to zazwyczaj długość do około 1200 bajtów, ale bywa i czasami powyżej 2000. Wszystko zależy od typu pakietu i treści, są np. pakiety z książkami jako itemek albo pakiet zmiany zawartości, które mogą mieć dużo więcej. Jeśli jakiś plugin dorzuca NBT, to itemki mogą mieć też inny rozmiar i wpłyną na pakiety.

Generalnie moim zdaniem niekoniecznie to pomoże z atakami, przy takim ustawieniu "na sucho". To samo ten limit ilości pakietów po stronie iptables jest całkowicie bez sensu, klient na lagu może przyspamić 2000 pakietów ruchu i nie będzie to problem, ale już tyle samo pakietów "groźniejszego typu" ubije serwer całkowicie albo na parę sekund.

Szymonjjay
Szymonjjay

Masz może jakiś lepszy pomysł?

Szymonjjay
Szymonjjay

Wydaje mi się, że ustawienie limitu prędkości pobierania i wysyłu Klient <-> Serwer będzie najlepszym rozwiązaniem. Wiem, że można to zrobić globalnie dla całego interfejsu sieciowego, ale nie dla każdego z osobna przy użyciu tc. Może zna ktoś z was jakiś gotowy skrypt na takowy limit?

system
system

Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.