Strona podręcznika UFW wspomina, że może dla mnie ustawić ograniczenie szybkości iptables:
ufw obsługuje ograniczanie szybkości połączenia, co jest przydatne do ochrony przed atakami typu brute-force login. ufw odmawia połączenia, jeśli adres IP próbował zainicjować 6 lub więcej połączeń w ciągu ostatnich 30 sekund. Szczegółowe informacje można znaleźć na stronie http://www.debian-administration.org/articles/187 . Typowe zastosowanie to:
ufw limit ssh/tcp
Niestety jest to cała dokumentacja, którą udało mi się znaleźć. Chciałbym pozostać przy UFW i nie używać bardziej skomplikowanych poleceń iptables (aby zachować „nieskomplikowanie”).
Jak powinienem użyć ufw, aby ograniczyć cały ruch przychodzący (a więc nie wychodzący) na porcie 80 do 20 połączeń na 30 sekund? Jak wyłączyć ograniczenie prędkości dla portów od 30000 do 30005? Czy ograniczenie prędkości jest domyślnie włączone dla wszystkich portów?
iptable
, jeśli tak, to iptable jest backendem ufw.Jak wspomniano w poprzednim poście, możesz dostosować user.rules. Potrzebuję mojego limitu szybkości połączenia smtp do 12 połączeń w 6 sekund. Najpierw dodałem regułę, jak pokazano poniżej. Uwaga: dodaje to regułę limitu domyślnie pozwalającą na 6 w 30 sekund
i edytowałem /lib/ufw/user.rules (przechowuję niestandardową kopię tego pliku z wieloma innymi poprawkami), jak pokazano poniżej ...
źródło
limit prędkości można zmienić w pliku reguł ufw, który można znaleźć /lib/ufw/user.rules. domyślnie nie ma limitów włączonych dla wszystkich portów. każdy port należy dodać ręcznie lub edytując plik user.rules.
źródło
Warto wskazać możliwe niezamierzone konsekwencje korzystania z funkcji LIMIT ufw.
Załóżmy, że jako pierwszą regułę ufw wprowadzono ogólny limit portu 22 / tcp:
przy założeniu, że wszelkie połączenia działające poniżej limitu można nadal filtrować, postępując zgodnie z regułami ufw i wreszcie domyślną polityką „odmawiaj (przychodzące)”.
Przynajmniej dla ufw 0,35 to założenie byłoby błędne. W rzeczywistości logika LIMIT IN natychmiast przyjmuje wszelkie dane wejściowe, które nie zostały odrzucone przez kryterium limitu.
W psuedocode logika LIMIT to
if CONDITION then DENY else ACCEPT
podczas gdy inne reguły ufw wydają się mieć logikę:
if CONDITION then (DENY|ACCEPT) else continue to next rule
.Osobiście odkryłem, że jest to nieoczekiwane zachowanie dla ufw LIMIT, które odkryłem tylko niespodziewanie znajdując wiele prób logowania do portu 22 w pliku dziennika systemu, które nigdy nie powinny się zdarzyć z powodu przefiltrowania przez inne reguły ufw.
Szczegóły potwierdzenia zachowania
Odpowiednie wiersze kodu iptables wstawionego przez ufw są następujące:
Powyższą listę można utworzyć za pomocą
Pierwsze dwie linie są następujące po sobie,
ufw-user-input
co można potwierdzić za pomocąźródło